Ruby言語やLinuxのネタが多いです。
July 18, 2005 [おもひで]
■ [Fedora] Core 4
まとまった時間が取れたので自宅PCをFedora Core 4にしてみた。
ATOKもJUSTSYSTEMの情報を参考にして無事起動できた。公式サイトに情報が載ることは良いことだ。
July 24, 2005 [おもひで]
■ [Ruby-GNOME2] 次のリリース
来週に新しいバージョンをリリースしようと考えていろいろと作業してみた。
あまり、手を入れていない割にはいろいろと修正が必要だった。
ただでさえRuby拡張ライブラリは、Rubyのバージョンへの追随、オリジナルのライブラリのバージョンへの追随、が必要になってくるから、放置しておくといずれ使えなくなってしまうという宿命を背負っているんだけど、こと、Ruby-GNOME2に関しては関係するライブラリがてんこもりなので厳密な追随はムリ。
まぁ、でも、今回はできる限りのことをやろうということで、
Fedora Core1, 3, 4, Vine 3.1, RedHat8の環境を作ってコンパイルしてみた。これで、Ruby-1.6.8, 1.8.x, GTK+-2.0.6 - 2.6.77, GNOME-2.0.x - 2.10.0の環境で、大体動くはず。もちろん、元々GNOME-2.8.xの環境しかサポートしてないライブラリとかもあるのでそれはそのままなんだけどね。
あとは、Ruby-GNOME2のコンパイルがうまくいかないらしいUbuntuとWin32を試してヨシとしよう。でも、大変だな、こりゃ。
July 26, 2005 [おもひで]
■ [Ruby-GNOME2] 64bit環境では動かない?
うーむ、そうかもしれないけど、正直、64bit環境持ってないのでよくわからないッス。
誰か、デバッグ環境用に64bitマシンくれないかなぁ、タダで。ついでにMacOS Xも。って、そんなムシのイイ話ないか...。
ってか、持ってる人がパッチ作って送ってくれるのが一番なんだけどなぁ。
July 30, 2005 [おもひで]
■ [Ruby-GNOME2] 64bit環境
今回の件をレポートしてくれたJoeと何回かメールでやりとりしたところ、彼が彼のマシンにアカウント作って提供してくれた。ラッキー。ssh -X ってやるとXプロトコルも通せるのね。知らんかった。
そんなわけで、一通り(といっても、彼のマシンに入っていなかった一部ライブラリは確認できていないんだけど)のライブラリについては、サンプルの動作確認をすることができた。あと、rbbrも。
何点か不具合がわかったけど、ほとんどkouさんの指摘範囲での修正で済んだので良かった良かった。網羅はできてないけどそれは追々直していくしかないよね。
これからもアカウント使わせてくれると嬉しいのだけどどうなることやら。
とは言ってもさすがにXが遅いんだよなぁ。でもコンパイルは異様に早かった。うらやますぃ。やっぱり64bitマシン欲しくなってきたなぁ。
■ さて、リリース準備に取りかかりますか。明日から(苦笑)。
July 31, 2005 [おもひで]
■ [Ruby-GNOME2] Ruby-GNOME2-0.13.0 is out!
リリースしました。いやー、いつもながら大変だー、こりゃ。
大変だっただけに良いものになってるはず!?
みなさん、特に学生さんは一人1スクリプト、夏休みの宿題と言うことで!
もちろん、提出先は私で!
....冗談です。まぁ、ともかくRuby-GNOME2を使ってみてくださいな。最近、Webプログラミングに押されまくりではありますが、GUIプログラミングも結構楽しいですよ。
■ にしても。Win32はとりあえず32bit版のバイナリを用意したけど近い将来は64bit版も用意しなきゃいけなくなるんだろうなぁ。この作業、誰かやってくれないかしらん。
■ [Ruby] Ruby-GNOME2 + Ruby-GetText-Packageメモ
オレが過去に作った何点かのRuby-GetText-Package対応アプリケーションやruby-glade-create-templateでは、以下のような仕掛けを入れてある。これで、Ruby-GetText-Packageが無い環境であっても、一応は英語でアプリを起動することができる。
begin
require 'gettext'
rescue LoadError
unless defined? GetText
module GetText
module_function
def _(msgid); msgid; end
def N_(msgid); msgid; end
def n_(msgid, msgid_plural, n)
n == 1 ? msgid : msgid_plural
end
def s_(msgid, div = '|')
if index = msgid.rindex(div)
msgid = msgid[(index + 1)..-1]
else
msgid
end
end
def bindtextdomain(domainname, path = nil, locale = nil, charset = nil)
end
end
end
end
■ Ruby-GetText-PackageのメンテナでもあるオレにとってはRuby-GetText-Package必須で!と言いたいところだが、Ruby-GNOME2のメンテナであるオレにとってはこうすることで少しでもアプリケーションの依存関係を(必要でないならば)減らしていける工夫は大切だと思ってもいる。
■ 一方、Ruby-GNOME2でL10n化しようとすると、Ruby-GetText-Packageはほぼデファクトスタンダードになっている。
(1) 過去のGNU GetTextとGTK+の関係の延長でRubyでも似たようなインタフェースが慣れてる。
(2) msgmergeなど、メンテナンスを考えるとGetTextはとっても有利。
(3) LibgladeがGetTextの仕組みで動作するので、少なくともLibgladeを使ってL10n化を考えるとGetTextの仕組みが必須。ならばあえて別のL10n化の仕組みを入れるまでもない。
(4) どちらもメンテナがオレ(^^;)
などが理由に挙げられる。ってか(2)(3)が大きなアドバンテージだろうな。
■ で、次のRuby/GLib(のglib2.rb)に、上記コードをそのまま入れてしまうのはどうだろう、と思うに至った。
であれば、Ruby-GNOME2ベースのアプリケーションは、何も気にせずGetTextの仕組みを用いたコードを書くことができ、それはもちろん、GetTextが無い環境でも動作するわけだ。英語圏の人はわざわざRuby-GetText-Packageなんて入れたくないだろうしね。
デメリットといえば、L10n化の仕組みが完全にRuby-GetText-Packageに依存するようになるってことだと思うけど、現時点では有力な対抗馬もいないことだし、ムリに使わなくても大丈夫だし、まぁ、よしとするかな。
もう一つのデメリットは、このコードの後にrequire 'gettext'すると、-wオプション付きでそのスクリプトを実行したときに"warning: method redefined"というWarningが出ることか...。こっちはちょっとイヤだなぁ。なんか回避策無いかな。
■ そうそう、このコード、Ruby-GetText-Packageにも含めた方が良いかもね。miscとかいうディレクトリ作ってそこに置けば良いのかな。

▲ のりつぐ [gtk/sample/gtk-demo/main.rb が 1.6.x で動きません。#to_symがないからのよう..]
▲ むとう [なるほど。ご報告ありがとうございます。]