Ruby言語やLinuxのネタが多いです。
March 01, 2004 [おもひで]
■ [Ruby-GNOME] ドキュメントが足りない
ruby-talkより。
On the subject of ruby-gtk2, the absence of (sufficient) docs is a shame, and the raw GTK docs don't always help.
うーん、そうですか。RubyのGUI Toolkitバインディングの中では結構そろってる方だと思うんだけどなぁ。といっても、サポートしているライブラリ全体からすると微々たるモノか。APIリファレンスにしてもRuby/GTK分はほとんど終わったとはいえ、まだまだ未完だし。
■ 最初見たときはそのエラソーな態度にカチンときたけど、まぁ、これが普通の(特に初学者の)感覚なんだろうなぁ。
いや、普通というと語弊があるかな。むしろ、面と向かってこういう書き方をする人ってのは少数派だよな。多くの人は、「開発が大変なんだろうけど」とか、そういった前置きくらいはするからな。
■ まぁ、それはそれとして、なんだかんだ言ってもJava(AWT,Swing)とかMFCとかってやっぱりドキュメントが充実してるしなぁ。
ちと腰を落ち着けてドキュメント書くか...。でもあまり時間ないし(T_T)。
■ やっぱり開発者(ドキュメント等も含め)の絶対数が少なすぎるんだよなぁ。
誰かドキュメントだけでも手伝いません?
March 02, 2004 [おもひで]
■ [Ruby] ObjectPool by さかいさん
元々、オレの作ったものを使ってみて、いろいろ問題がありそうなところを直していったら別物になったというモノ(^^;)。
オレのより全然良いのでオレの方は公開取りやめようかな。RAAのエントリも一度削除した方が良いのかしらん。
それとも同じ名前でそのままメンテナンスも引き継ぎます? > さかいさん
■ にしても、オレが公開するRuby関連のライブラリでさかいさんの手が入っていないのはないな。Ruby-GNOME2しかり、Ruby-GetText-Packageしかり(^^;)。
■ [Misc] orkut
なにやら方々で話に出てるので何モノかと思ってたんだけど、一緒に仕事してる人から招待されたので入ってみた....。
が、しかし。いったい、これでオレに何をしろと????(オヤヂ化?)
■ [Ruby] 予約語の扱い
Ruby/GLibではプロパティ値からアクセッサ(foo=, set_foo, foo)というメソッドを自動生成するんだけど、そのときに予約語が入っている場合を想定していなかった。
irb(main):011:0> RUBY_VERSION
=> "1.9.0"
irb(main):012:0> def if=(val); p val; end
=> nil
irb(main):013:0> if = 10
SyntaxError: compile error
(irb):13: syntax error
if = 10
^
from (irb):13
irb(main):014:0> self.if = 10
10
=> 10
irb(main):015:0>
irb(main):001:0> RUBY_VERSION
=> "1.6.8"
irb(main):002:0> def if=(val); p val; end
SyntaxError: compile error
(irb):2: parse error
def if=(val); p val; end
^
(irb):2: parse error
from (irb):2
irb(main):003:0>
■ というわけで、今までCVS版のRubyを使っていたので気づかなかったんだけど1.6系でRuby-GNOME2は動かなかったのね...。いかにテストできていないかバレバレだ(^^;)。まぁ、見つけちゃった以上、なおさんといかんなぁ。
#そろそろ1.6系は捨てたいというのがホンネなんだけど。
March 03, 2004 [おもひで]
■ [Ruby] (続)予約語
ささださんの解。なるほど、例外を捕捉するやり方は気づきませんでした。予約語のテーブルを持たせていちいち比較するより効率も良さそうですね(試してないけど)。Ruby側の仕様追加等も気にする必要ないですし。さっそくいただきますです。
■ そうそう、昨日「プロパティ値からアクセッサを自動生成する」と書きましたが、該当する部分の機能は「set_foo(v) からfoo=(v)を自動生成する」の間違いでした。前者の機能もあるんですけどね。
March 07, 2004 [おもひで]
■ [Ruby-GNOME2] SF.jp
またメンテかー。ちと多すぎるなぁ。借りてる身なのであまりえらそうなことはいえないけど、よりによって今日とは。
■ [Ruby-GNOME2] Ruby-GNOME2-0.9.0 is out!
リリースしました。Ruby/ATKが加わり全部で15個のライブラリになりました。でかい。
ちょっと期間が空いちゃってますが、その分いろいろ追加・改善されてます。是非おためしください。
■ どわー、リリースした後に気づいたのですが、1点、大きな変更点をHighlightsに書くの忘れてました。
Ruby/Libglade2がカスタムウィジェットを使うことができるようになってます。詳しくはlibglade/sample/custom.rbを見てください。
■ にしてもSF.jpまだメンテ中かぁ。うーむ。
March 08, 2004 [おもひで]
■ [Ruby-GNOME2] Ruby/GLib2
Laurentが、#gnomefr (irc)で、signals/propertiesの自動変換などRuby/GLib2の評判が良かったよーとわざわざメールをくれました。
それからRubyのオブジェクトとGObject/GBoxed/GEnums/GTypesの変換方法も良いよねという話をしました。
個人的にはこだわって時間をかけた部分だと思ってるので、こういってもらえると素直にうれしいです、うん。
ってえらそうなこと言ってますが、実はほとんどさかいさんが設計・実装したんですよね。ホントすごいことです。LaurentもSakai-san is a very talented programmer.と言うとりました。まぁ、そういうLaurentのパワーもすごいんだよね。あっという間にRuby/GStreamer, Ruby/Libgdaという2つのライブラリを実装してくれたばかりかチュートリアルとかも書いてくれてるわけだし。
■ Laurentは来月のLibr'East (in Paris)でRuby/GLibについて話したいと言ってます。
彼は、先月のFOSDEM2004でもNikolaiと一緒にRuby-GNOME2(Ruby/GTK2, Ruby/Libglade2, Ruby/GStreamer, Ruby/GnomeVFS)のチュートリアルを受け持ったそうです。もう立派なRuby-GNOME2エバンジェリストですね。
March 09, 2004 [おもひで]
■ [Ruby-GNOME2] またしても大バグ
が見つかりました。しかもデグレです....(しくしく)。
今週末バグフィクス版(0.9.1)をリリースしたいと思いますので何かありましたらそれまでにどうぞ。
#最近、こればっかりだな...(T_T)。
■ [Ruby-GNOME2] Win32対応
今までは私自身Cygwinでしかコンパイルの確認等していなかったのですが、まじめにMinGW対応することにしました。できたバイナリは、いわゆるRuby Installer版でも利用できると思います。
CVSには反映させましたので、これも0.9.1には入れたいと思います。
ついでに一応、コンパイル手順を書いてみました。こちら。追試希望です。
#日本語版の方のサイトに書き込んだのすごく久しぶりかも(^^;)。
■ ところで、相変わらずmswin32とmsvcrtとmingw版の差がわからん....。結局、バイナリの生成方法が違うだけで同じバイナリが動かせるんだよね?
March 10, 2004 [おもひで]
■ [Ruby] (続)mswin32版とmingw32版の違い
うささん、たむらさん、あおきさん、情報ありがとうございました。なるほどすっきりしました。Ruby-GNOME2の方の記述で不正確なところがあったので修正しておきました。
■ [Ruby-GNOME2] gsysview
dpkgに含まれるalternativesやdiversion,statoverrideをGUIで表示するツール、なんだそうです。Ruby/GTK2を使っていただいています。
■ [tDiary] ツッコミ時にエラー
by あおきさん。実はちょっと前から出てるの気づいてたのですが、ツッコミ自体はできるのでとりあえずほっといてます。ちと落ち着いたらバージョン上げもやらないとなー、と思いつつだらだらきてしまいました。
今、再度確認してみたのですが、腰を落ち着けないと原因を追えそうにないのでちと先送りします。
まぁ、気にせずつっこんでください(^^;)。
■ そういや、ここのtDiaryのバージョンは1.5.4.20030606なので、考えてみたらもう少しで一年が経つんだよなぁ。
せっかくだから、一周年記念あげ、ということにしようか(^^;)。
March 11, 2004 [おもひで]
■ [Ruby-GNOME2] ORE-0,1,0
Ruby Editor for Gnomeだそうです。Ruby/GTK2とRuby/GtkSourceView(改)を使っています。
Ruby/GtkSourceViewを使うとこういったエディタは簡単にできます。
試してみてはいかがでしょう。
■ ...というものの、実はRuby/GtkSourceViewは長らくメンテナンスされていないので現在のGtkSourceViewの安定版(?)である0.7.1ではコンパイルすらできません。Ruby/GtkSourceView(改)と書いたのは、OREの作者のArchitが独自にその辺を修正していくつかメソッドを追加したモノを使っているからです。
そのArchitからの強いプッシュがあったこともあるのですが、最近、Ruby/GtkSourceViewがあまりにもメンテナンスされていないので、私の方で引き取ることにしました。実際はLaurentがメンテナを立候補してくれたのでLaurentに任せることになりそうです。
そんなわけで、近々、GtkSourceView-0.7.1でコンパイルできるモノをリリースできると思います。
■ それにしても、ruby-talkで変なところ(開発コード)でケチがついちゃったのは残念。なんでそんな変な名前にしたのかなぁ。
March 14, 2004 [おもひで]
■ [Ruby-GNOME2] Ruby-GNOME2-0.9.1
リリースしました。バグフィクスとWin32対応、あとRuby/Libgdaが安定版であるlibgda-1.0.3をサポートするようになりました。
Win32版に関してはバイナリも用意しました。詳しくはSFのダウンロードのページを見てください。
■ [Misc] TODO
・Ruby-GNOME2: Ruby/GtkSourceView全面的にソース,API見直し
・Ruby-GNOME2: 新rbbrリリース
・Ruby-GNOME2: Ruby-GNOME2-1.0.0に向けての動きをまとめる
・Ruby-GNOME2: Ruby/GLibのGType関連直し
・Ruby-GNOME2: Ruby/GConfの例外処理見直し
・Ruby-GNOME2: Ruby/PangoのAPI再確認
・Ruby-GNOME2: Statusページで元ライブラリのバージョン単位に進捗がわかるようにする
・Ruby-GNOME2: その他いろいろ
・tDiary: disp_referre.rb(旧)にいただいたパッチ吸収
・Hiki: リンク元表示プラグインにいただいたパッチ吸収
・ObjectPoolさかいさん版吸収
■ だ、ダメだ、おわらん...(T_T)。
March 21, 2004 [おもひで]
■ [Ruby-GNOME2] Supporting internationalization (i18n) in Ruby/Libglade
Ruby/Libgladeから複数の言語表示をサポートする方法。なるほどこうやるのかー(^^;)。
でも、なぜか日本語使うと文字コード変換時にエラーが出るんだよな。なんでだろう。
■ [Ruby-GNOME2] Supporting internationalization (i18n) in Ruby/Libglade 続き
やっぱりbindtextdomainはどこかでやらないといけない気がする。うーむ。
■ [Hiki] リンク元表示プラグイン-1.1
リリースしました。生駒さんにいただいたパッチ(Hiki 0.7-devel-20040310で動かなくなっていた)を当てた他、結果の表示順がおかしかったのを修正したり、対象検索エンジンを強化したりしてみました。
■ [tDiary] CVS追従
ツッコミ時にエラーが出る件を直すため、ほぼ1年ぶりにtDiaryをバージョンアップしてみた。
ツッコミも無事出来るようになったので、みなさん、ふるってツッコんでみてください(うそ)。
■ [tDiary] 本日のリンク元表示プラグイン(旧)-2.4.1
リリースしました。伊藤さんにいただいたパッチ(Googlebotのロボットよけが出来ていない不具合の修正)の他、いくつか検索エンジンを引っかける正規表現を改善しています。
なお、これはtDiary標準の同名のプラグインとは別モノですので注意してください。
■ [Ruby] ObjectPool-0.2.0
リリースしました。さかいさんのobjectpool.rbをそのままいただきました。
March 23, 2004 [おもひで]
■ [Ruby-GNOME2] Supporting internationalization (i18n) in Ruby/Libgladeの日本語
オレの勘違いだった。localeがja_JP.UTF-8なら文字化けしないや。
余計な変換をLibglade内部でしちゃってるのかな。
■ [Ruby-GNOME2] bind_textdomain_codeset()が呼ばれてない
なるほど。確かに。ということでためしてみたらビンゴでした。
助かりました。> 安部さん
でも、bindtextdomain()はLibglade側でやるけど文字コードの指定はアプリ側で、なんて中途半端な気がするなぁ。
まぁ英語圏の人には関係ないのか。
March 25, 2004 [おもひで]
■ [Ruby-GNOME2] GC + Gtk::Widget#destroy
MLで指摘されたんだけど、ウィジェットはいつGCの対象になるべきなのだろう。
require 'gtk2'
class Test
def hoge
win = Gtk::Window.new.show_all
nil
end
end
Gtk.init
Test.new.hoge
GC.start
Gtk.main
■ ここで、winはローカル変数なんだから、hogeを呼び出した後で(ウィジェット自体)GCされるべきじゃないの、というのが指摘内容。RubyのオブジェクトとしてはGCされるのかもしれないのだけどウインドウは表示されたままだ。
Rubyオブジェクトの生死のスコープと完全に一致させる必要があるなら、このタイミングでウィジェット自体を破壊(Gtk::Widget#destroyを内部的に呼び出す)してあげないといけないのかもしれない。
でも、それはそれでいろいろ問題ありそうだなー。
March 26, 2004 [おもひで]
■ [Ruby-GNOME2] Ruby-GetText-Package-0.5.5
バグ見つけたので修正版をリリースしました。この次のrbbrではこのバージョンが必須となる予定(^^;)。
一応、Win32版のバイナリも用意はしたのだけど、インストーラが無いからちと使いづらい(自分でコピーする必要がある)。もう少しどうにかしないとだな...。
March 28, 2004 [おもひで]
module Hoge
@@storage = Array.new
end
class Test
include Hoge
def initialize
@@storage << 10 #ここがNG。
end
end
Test.new
■ アクセッサが必要と言うことなので以下のように修正:
module Hoge
@@storage = Array.new
def data
@@storage.pop
end
def set_data(val)
@@storage.push(val)
end
end
class Test
include Hoge
def initialize
set_data(10)
data #使うとき
end
end
Test.new
■ 今回は前回にもあった日本語、英語、フランス語の他、ベラルシアン語、ドイツ語、イタリア語、韓国語、ポルトガル語(pt_BR)、スペイン語、ウェールズ語、と10言語リソースを用意しました。
私の知る限り、Rubyで最もL10n化が進んだアプリケーションの1つと言えると思います。Ruby-GetText-Packageのメンテナとしてもうれしい限りです。
#表示するAPIドキュメントは英語(ri)、日本語(refe)しかないのですが(^^;)。
■ それから、画像イメージをあえてWinXP上で取りました。Windowsを使われてる方がこれを見てRuby/GTK2を使ってもらえたらいいなぁと言うわけです。
今まで出てたフォント周りのWarningもほとんど出なくなったので、Windowsでも使いやすくなったんじゃないかと思います。
March 29, 2004 [おもひで]
■ [Hiki] チュートリアル向けリンク生成プラグイン-1.0
久々にHiki用のプラグインを作りました。
よくあるWWWチュートリアルにあるようなPrev/Up/Home/Nextリンクを生成するプラグインです。
実行結果はこんな感じ。
チュートリアル書いてる人は是非使ってみてください....ってめちゃくちゃニッチだな(^^;)。

▲ たむら [いろんな意味で耳がイタイ。 # ごめんよ〜]
▲ むとぽん [いやいや、たむらさんはじめいろいろフォローしていただいてる方々には感謝してます。 私も含め、みなさん本業や他の趣味..]