Ruby

相変わらず

ref:Perl, Python, Ruby の比較 以前の指摘で、一部訂正されたみたいなんだけど、相変わらずだったりするようで。 Perl: 引数をフラットなリストに変換して値渡し。参照渡しをするにはプロトタイプを用いる。少し複雑。 Python: 参照渡し。ただし、変更不能…

ディレクトリ構造を保ったままフィルタ

ファイルをスクリプトで加工する、なんてことはよくあることなんだけど、最近、ディレクトリ以下のファイルに対して処理をして、別のディレクトリに出力したいってケースが多かったりする。 たとえば、 from/foo/00 from/foo/01 from/bar/00 from/bar/01てい…

YARV + REXML

YARV*1 の性能を REXML で試してみる。2MBytes ほどの XML を parse。 % ruby -v ruby 1.8.5 (2006-08-25) [i686-linux] % ruby1.9 -v ruby 1.9.0 (2007-02-15 patchlevel 0) [i686-linux] % cat test.rb #!/usr/bin/env ruby require 'rexml/document' ARGV…

Ruby の trunk がものすごい更新されている。

svn up したらものすごい数のファイルが更新された。なんだこれは、と思ったが良く見たら単にまとめて svn:eol-style を設定しているだけだし。 無駄にびっくりしてしまった。

特異クラス

rubyco(るびこ)の日記 - 疑問:特異クラスの構文の不思議のまつもとさんのコメントから 余談ですが、実は「特異クラス」という単語の適切な英訳はまだ見つかっていません。日本起源の言語ならではの問題ですね。 現在、「singleton class」と「eigenclass…

「Perl, Python, Ruby の比較」があまりにもいい加減な件

ref:Perl, Python, Ruby の比較 ref:はてなブックマーク - Perl, Python, Ruby の比較 ref:はてなブックマーク - Perl, Python, Ruby の比較 ちょっと遅くなったが以前宣言したとおり、書いておく。 「Perl, Python, Ruby の比較」はどうも調査が足りないの…

クリップボードの内容をJavaプログラム用に加工する

Unit Test なんかで複数行にわたるちょっと大きな文字列をソースコード中に埋め込みたい場合があるんだけど、Java にはヒアドキュメントとかないので、いちいちエスケープしたりするのが面倒。 ということで、Ruby でクリップボードの文字列を Java のコード…

REXML と ElementTree のパース時間

Ruby で REXML で2MB弱のXMLをパースしてみるとえらく待たされるように感じたのでちょっと Python2.5 の ElementTree とパースの速度を比較してみた。 % time ruby test.rb test.xml ruby test.rb test.xml 5.67s user 0.09s system 99% cpu 5.771 total% ti…

プログラミングスキルの向上しにくい人

梅村研のWebサーバにログインしてDocumentRoot以下を覗いていると、ふと妙なRubyで書かれたCGIスクリプトがあった。 ちらっと見てみたら、 if @palam.phase ==nil then @palam.phase = "db" endってコードがあった。 ああ、もう「お前はRubyプログラミングを…

リリーススケジュールの問題では?

「期日通りのリリース」を選ぶか「期日は遅れるがいくつかバグが少ないリリース」を選ぶか、だ。 期日通りのリリースには社会的信用を勝ちえるというメリットがある。 一方、バグにはその存在自身に社会的信用を失わせる働きがある。もちろん「期日通りにバ…

Rubyのensure節

http://rubyist.g.hatena.ne.jp/gaba/20060803/1154622044 http://subtech.g.hatena.ne.jp/secondlife/20060804/1154700185 書籍に else はあまり役に立ちませんとか書いてあったけど、ensure の方がいらなくね? end の後ろに書いておけばヨクネ? とか思う…

inf-rubyメモ

そういや、inf-rubyって、あまり使ったことなかったなぁ、ということで使い方メモ。 設定 inf-ruby.el の先頭に説明があるので、そのとおりにすれば良い。 (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t) (setq auto-mode-alist…