Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ って今頃かよって感じだけど、松の内は正月だからいいんだよ!
_ 去年は1.9.0が無事じゃなくリリースされた年だった。
今年はちゃんと使える1.9.1がリリースされるといいなあ。とか他人事のように。
_ さて、mswin32/64に関して今年の展望を言うと、今年こそは内部使用APIのWide化という作業が発生するはず。本当は去年の秋〜冬にやるつもりだったんだけど、本体のm17n化があんな感じだったので...
m17nはぼちぼち落ち着いてきたので、UTF-16なEncoding/transcodeが入ったら作業に入ることになると思う。でもこれって誰が入れてくれるんだろうか?
6月くらいまでにカタ付けたいんだけどなあ。
_ というわけで、まずはUTF-16エンコーディングサポートが入らないと話が始まらないのでruby-devで相談してみた。
どうやらさしあたっての結論のようなものに到達した感じ。
_ さて、さしあたって早期の対応が望まれるのはファイル名関連のWide化だろうと思われる。
とりあえずの確認のためにXP上でサロゲートペアを使ったファイル名のファイルを作成してみたが、Explorer等で正しく表示されないだけで、ファイル名自体はちゃんと予定通り書き込まれたり取ってこれたりするらしい。
_ 仕事してる間に、UTF-32とセットで小人さんが入れてくれた。わーい。
ちょっとコンパイル通らなかったりしたので小人さんと二人で慌ててデバッグしたのは内緒だ。
enc/transの方は近いうちにMartin先生がやってくださるらしい。
_ 珍しく、Windows版でCursesを使う記事なんてものがある。
いやまあもちろんサンプルプログラムはWindowsじゃなくても動くんだけど。
_ しかし最後にhpricot使うところでひっくり返った。
実はhpricotは私が1.9.0-0のリリース前にrubygemsのテストに使用して、いかにrubygemsがつかえねーかを認識したものである(あ、これFUDなのでそこんとこよろしく)。
だって1.9でgem install hpricotしたら1.8用のバイナリをインストールするんだもん。マジで使えない。そしてこれを回避する方法はない。
おまけに、害はないものの、インストールされるバイナリのパスが、.../i686-linux/hpricot.so
だったりもする。だれがLinuxやねん。
_ というわけで、trunk使いで常にドッグフードを食べ続けている私にとっては最後のサンプルはまったく動かないのであった。
つーか単語のサンプルを拾ってくるのにdel.icio.usのタグを拾ってくるというのもいくらなんでもどうかと思うのだが。
というわけで、この部分を
def get_from_remote unless @words @words = open("あるURLでUNIX系OSに普通あるwordsをHTTPで公開").read.split end @words.chioce end
と書き換えてみた。あ、Array#choice
は1.9専用なので1.8の人は@words[rand(@words.size)]
あたりで。
_ その結果が[ruby-dev:32987]。なんでやねーん。
_ とか書いたらまた問題を踏んだ。
この日記にRubyのコードを貼る時、ripperで解析して色をつけたりしてるわけだが、ripperにどんなencodingのソースを入力として与えても、解析結果として得られるtokenのencodingがASCII-8BITになっちゃうという。
中田さんと相談して直したが、いやはや。
_ その過程で気付いたのだが、いつの間にかまたshebang行の-K
オプションが効かなくなってるな。
前に直してもらったはずだが、なんでだ。
_ というわけで、この件も直してもらった。
ついでに、shebang行よりコマンドラインオプション指定の方が強くなった。というか、なんで今まで逆だったかの方が謎。
被捕捉アンテナ類
[Ant]
[Antenna-Julia]
[Rabbit's Antenna]
[Ruby hotlinks]