よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

November 01, 2004

[Ruby] Ruby Quiz #5 Sokoban

テーマが倉庫番だったので興味深く注目してたんだけど、どれもRuby(ってかOO)っぽくないと思うのは気のせいだろうか。模範解答(?)はこれなんだろうけど...。

#うーん、オレがダメなのか?

[Ruby-GNOME2] GRUMER by 神山さん

お気楽DVDビデオエンコードスクリプトだそうです。Ruby/GTK2を使っていただいています。

[Misc] うーん

なんつーか、あれなんだよなぁ。もう。


November 01, 2005

[Ruby-GNOME2] 大バグ・・・アゲイン(T_T)

全面的にメモリリークしてることが判明....(T_T)。

ものすごくお恥ずかしいバグだ。0.14.1を出す必要がありそう。

自分への戒めのために今回のバグについてメモしておく。

このバグは0.14.0で作り込んでしまったバグで、元々は前回のこの問題に対処しようとしたもの。

前回の考察で、全てのメソッド毎にこういった改修をやるのはものすごく大変なので代替案が無いかなぁ、と思って探していたところ、これだっ!とひらめいたのが0.14.0での実装....なんだけどこれがダメだったわけよ。なんで気づかないかなー、オレ。

で、具体的には、

「GLib::Objectが生成された際に、とにかくRubyのグローバルなHash変数にその値を保持する。g_object_unrefが呼ばれてリファレンスカウンタが0になったタイミングでRubyのHash変数からもオブジェクトを削除するようにする。」

という実装。

当時は、Gtk::Object#destroyやg_object_unrefなんかが呼ばれるタイミングで削除できるから問題ない、と思ってしまっていたし、なんとなくテストしている範囲では大丈夫だった(ような気がした)ので問題ないと思ってたんだけど、実はg_object_unrefが呼び出されるタイミングって、RubyオブジェクトがGCされるタイミングなわけで、それってグローバルなHash変数に保持する以上、GCされないんだよね。うぬぬ。なぜ気づかなかったんだ....。

やはり、前回のこの問題をきちんと考えないといけないんだろうなぁ。

[Ruby-GNOME2] G_RELATIVE2

前回の考察でG_RELATIVE2を使う、と書いてある。ちょっと実装見直してみたけど、このまま使うのは正直しんどいなぁ。

名前も含めて考え直さないとだね...。


November 01, 2006

[Ruby] The Ruby Way Second Edition

頂戴した。実は、First EditionのRuby/GTKをRuby/GTK2(Ruby-GNOME2)にアップデートしたのと(12.2 Ruby/GTK2 14ページ)、Internationalizationの"4.3 Using Message Catalogs"でRuby-GetText-Packageについての執筆(8ページ)を担当させていただいたんだよね。といってもだいぶ修正されているけど(英語力の無さを痛感(苦笑))。でも、英語はともかく、Ruby/GTK2の部分でオレが書いたサンプルを意図的に変更している部分があったりするのがちょっと残念かなぁ(Obsolete扱いのGtk.initがサンプルに復活してる)。サンプルを変更するなら事前に相談して欲しかった。Ruby-GetTextの部分も?な説明が追加されてたりするし・・・。上手に情報を伝えるのってホント難しいね(日本語・英語に限らず)。

まぁ、でも、Ruby界で最もメジャーな本の一つの執筆に協力できたのは素直にうれしい。さらには、これをきっかけにRuby-GNOME2, Ruby-GetText-Packageがさらにメジャーになってくれるとうれしいなー。

TRW2 with MP945-VX

しっかし、この本、ものすごく厚い。通勤中に読もうと思ったんだけどあきらめた。ライド・オン・Rails Ruby on Railsを徹底攻略かんたんRuby on RailsでWebアプリケーション開発を足した位の厚さ。ニューPC(MP945-VX)を圧倒するでかさ!(←実はここを軽く自慢したかった(笑))。

本日のツッコミ(全2件) [ツッコミを入れる]

kdmsnr [げ。そんなに厚いんですか。PDFでしか見てなかったので。]

むとう [いやぁ、ホント厚いですよね。びっくりですよ(笑)。]


追記