Ruby

gem、bundlerでproxyを使う方法

新しいPCでRubyの環境構築をしていたらこんなエラーが... $ gem install pg ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/gems/pg-0.14.1.gem) どうやらht…

VimでRubyをリファクタリング出来るよ

2012-03-07 - longicornの日記でVim+RopeでPythonのリファクタリングが出来るようになったので、今回はRubyのリファクタリングも出来るようになったので、Ruby版も書いておきます。 インストール github:vim-ruby-refactoring matchit.zip の2つが必要です。…

RubyKaigi2011参加した感想

最後のRubyKaigiで自分にとっては最初のRubyKaigiでした。 参加した切っ掛けは開催場所。歩いて10分とか参加しない訳が無い。 概要はこのあたりを見て、詳しく知りたければ、はてぶで検索すれば良いかと。 http://gihyo.jp/news/report/01/rubykaigi2011/000…

Rubyって開発者が少ないんだ

RubyKaigi2010を前に、「RubyKaigi2009で見たRubyコミュニティの悩み、価値観、変化」を記す: ITジャーナリスト星暁雄の"情報論"ノート へー、といったところ。 最近プライベートのプログラミングが充実していないから、ちょっとソースコードを追うのも良い…

rmemoバグ修正

2010-08-19 - longicornの日記の修正。 どうも、Stringクラスに新しいメソッドが入ったぽい? Stringクラスを継承したクラスを作っていたら、たまたまそのメソッドとかぶって無限ループ->スタック足りない、という流れっぽい。 まあ、単純なバグなので修正し…

Ruby1.9.2リリース

リリースきましたね。 まずは、関係者はお疲れさまでした。有難う。 で、早速つかったら、自分のrmemoでスタックが深いってエラーが orz。 stack level too deep (SystemStackError) 週末にでも直すか。

福岡県が「組み込み向けRuby」の開発を行うと発表 | スラド デベロッパー

LLでmatzさんが話していた内容の事だと思う。 Rubyチップとかどうなんだろう。 LLは組み込み系で使わない事はないんだけど、やっぱりあまり合わない気がする。 LLで厭なのは実行時にエラーが出る部分。Cとかのコンパイラ系だと絶対チェックする部分もLLだと…

OptionParserで引数を2つとれない?

今までこんな感じで使っていた。 parser.on("-h", "--hoge STRING", String, "OptionParserのテスト"){|get_arg| p get_arg } で、STRINGの部分が2つ欲しいという修正が必要になった。 parser.on("-h", "--hoge STRING1 STRING2", String, String, "OptionPa…

virtualenvの代わりのRip

忘れそうなのでメモ。 後日作業をする。Pythonのvirtualenvとpipの代わりにRipというのが開発されている。 http://github.com/defunkt/rip

CUIでのメモツール、rmemo更新

まあ自分しか使っていないんだけど、以前作ったメモツールを更新した。 職場で使っていると、Macで問題が起きたり、微妙に使い辛い点が出てきた部分を修正した。 もし奇特にも使う方がいればURLはこちら。 git://github.com/longicorn/rmemo.git

Gauche or Ruby + PostScriptにハマり出した

いまさらだけど、ここ数日PostScriptが結構面白くRubyやGaucheから色々遊んでいる。 お絵描きが色々できるからCとかで触るような低レベル以外ではこれだけで満足かも。

一気にアップデート

まずはRuby。 Rubyにヒープオーバーフローの脆弱性、修正版をリリース | OSDN Magazine バグが有ったらしいのでアップデート。 今まで使っていたのが、p243で今回がp376なので結構パッチがあたっているのかな。 あと、Gaucheが0.9になったのでこれもアップデ…

Dir.mkdirはmkdirでmkdir -pではない

http://d.hatena.ne.jp/longicorn/20091115#p1 で作ったツールを修正していて気づいた、というか思い出した。 ディレクトリを作るなんてあまりしないので忘れていたよ。忘れないためにメモっておく。 解決するにはFileUtilsのmkdir_pを使用すれば良い。 危う…

p、ppを使うと1.9と1.8で動作が微妙に違う

これは仕様なのか? #hoge.rb #!/usr/bin/env ruby #-*- encoding: utf-8 -*- require 'pp' class Array def hoge self.map do |v| v*2 end end def hoge2 p ary = self.map do |v| v*2 end ary end def hoge3 ary = self.map do |v| v*2 end p ary ary end d…

Dir.globやDir.foreachの処理順番

1.9での話。 どうもファイル/ディレクトリ名順で表示するのではなく、状態変更時刻順で表示しているっぽい? sortを使えばファイル/ディレクトリ名順に出来るけど妙な動作だな。

メモツール公開

前回書いてアップするといった件。 名前は安直にrmemo。 READMEとかもかなり適当に作っているけど、どうせ自分しか使わないし問題ない。 git://github.com/longicorn/rmemo.git スクリプトはこれでgitがあればいつでも取得できるけどメモデータはどうしよう…

1.9で最近出るようになっているエラーの対処方法メモ

ちょっと前からRubyを動かすと出てくるようになったこのエラーだけど、自分の1.8時代に作ったスクリプトが原因かと思っていたら本体のoptparse.rbに問題があったぽいのでメモ。 /opt/ruby1.9.1/lib/ruby/1.9.1/optparse.rb:326: warning: regexp match /.../…

今まで使っていた自作メモツールを完全に書き換えた

このツールはRubyの勉強用に作ったツールで、結局Ruby最初の作品だけど未だに使っている。 ただ、パッチ当てがかなり増えて、動作も重くなってきたのでここ2、3年新規に作り直しを考えていたけど面倒くさくて手つかずの状態。 なにが面倒くさいかというと機…

標準CSVライブラリが意外と早い

ここの所時間があるので、以前作ったのをベースに自前で同じ機能を作ってみたんだけど、1.9についている標準のCSVライブラリは意外と早い。自前で作ったのよりも数倍早かった。 あとビックリしたのは、FasterCSVを入れるとバージョンチェックに引っかかって…

自作ツールの1.9への移行の流れ

自作ツールの1.9への移行して少しの修正で移行出来たのでメモ。 大体この辺りの対応で何とかなるはず。 まずはruby1.9の最新版へ移行 これは1.9がまだ開発が進んでいるので、古いものだとバグがあるので念のために移行する。 1.9での問題が有る部分を警告さ…

CPU温度でPCをシャットダウン

http://alfalfa.livedoor.biz/archives/51510441.htmlをみて怖くなってきたのでチョロッと作成した。 #!/usr/bin/env ruby # -*- encoding: UTF-8 -*- class String def grep(reg) ret = [] self.each_line do |line| ret << line if reg =~ line end ret en…

Ruby1.9.1をアップデートしてみた

久しぶりに本家を覗いたらp129にまでアップされていたのでアップデートしてみた。 ちなみに現在使っているのはp0。 微妙に速くなったような気がする。気のせい?

CSVライブラリの作成

標準ライブラリのCSVクラス見たいなのが作りたかったので練習に作ってみた。 まあ作った理由の半分は必要が有ったからだけど。 標準ライブラリでは自前で以下のような動作ができる。 #csv.rbからコピペ CSV.open("path/to/file.csv", "wb") do |csv| csv << …

るびまがきた

メモ。 1.9.1リリースに合わせて色々情報がのっている。 http://jp.rubyist.net/magazine/?0025

1.9.1で日本語を含むスクリプトがエラー

日本語を含むとエラーになる。 $ ./hoge.rb ./rdic.rb:71: invalid multibyte char (US-ASCII) ./rdic.rb:71: invalid multibyte char (US-ASCII) 検索するとどうやら「マジックコメント」で文字コードの指定が必要らしい。 #!/usr/bin/env ruby # -*- encod…

1.9.1が出てる

中の人お疲れさまです。 早速インストールしてみたら既存スクリプトが動かねー。 eregexがないとかregexp関係でエラーが。 ちょっと直さないとなあ。 当分は1.8系と1.9系を両方使いながら移行かな。

ビット表示スクリプト2

前回のスクリプトを実際に使っていたら不満が出てきたので修正。 不満点は実際に使ってみるとビットのシフト計算がどうしても必要になってくる。 けど計算してからスクリプトを使うのは使い勝手が悪い。 そこでevalを使えるように修正。これなら引数に計算式…

ビット表示スクリプト

組み込み系の仕事をしているとビット操作がどうしても多くなってくる。 けどアセンブラやCとかでいじる場合には値を直で設定してやることも多い。 こんなかんじで。 volatile char *hoge = 0x1234; *hoge = 0xabcd; けどハードウェア仕様書は各ビット毎に0,1…

RubyでOS判定

http://d.hatena.ne.jp/longicorn/20081126#p2 で書いた単純なバージョン管理ソフトを作りだしたんだけど、ファイルの置き場所とかでOS判定があった方がいいなということで作ってみた。 http://jp.rubyist.net/magazine/?0017-CodeReview#l17 を参考にしたの…

lambdaとProcは動作が微妙に異なる

これは知らないと意外とハマるかも。 実行環境はこんな感じ。 $ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] 以下のプログラムを実行する。 def hoge lam = lambda{return 3} prc = Proc.new{return 4} p lam.call p "lambda called" p pr…