Ruby言語やLinuxのネタが多いです。
December 29, 2002
■ [Ruby-GNOME2] Ruby-GNOME2-0.2 and rbbr-0.2 are now available!
リリースしました。いろいろと機能アップしてますし、バグもいくつかつぶしてますので是非おためしください。
December 29, 2003
■ [Fedora] yum update
してみたらリブートできなくなった。てかリブート中にFileSystemがread-onlyになって書き込めないというエラーが出まくって先に進まなくなる。
なぜだろうと悩んだ挙句、/etc/fstabのLABEL=/とかのLABEL指定をデバイス指定(/dev/hda2 / ...とか)に直したら動いた。うーむ。
■ [Fedora] ATOK Xをインストール
JustSystemのATOK XサポートページにあるRedHat9の参考情報を元にインストールしてみた。あり?パネルが開かないのー。
httをkillして/usr/lib/im/locale/ja/atokserver/atokx_clientを起動してみたところ、以下のエラーが出る。
$/usr/lib/im/locale/ja/atokserver/atokx_client jp.co.justsystem.atok12.AtokPaletteAux: relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices jp.co.justsystem.atok12.SystemLineAux: relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices jp.co.justsystem.atok12.LookupAux: relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices
■ このXListInputDevicesというのは/usr/X11R6/libXi.soにあるみたいなんだけど、lddでlibgdk-1.2.so.0を見てもこいつがリンクされてない。
しょうがないので、/usr/lib/im/locale/ja/atokserver/atokx_clientの最初のほうに以下を追加。
export LD_PRELOAD=/usr/X11R6/lib/libXi.so
■ うん、OKみたい。
■ [Fedora] Ruby周り
ruby(CVS), ruby-gnome2, racc-1.4.4-all, ruby-gettext-package-0.8.1, refe-0.8.0, rbbr-0.5.1をインストール。おおむね良好。
ただ、refe-0.8.0が文字化け。ロケールがja_JP.UTF-8だもんなー。
$refe String#dump |iconv -feuc-jp -tutf-8
■ こうすればいけるけど面倒くさいか。rbbr使えば問題ないのでみんなrbbrに移行だ!
(注)移行といってもrbbrはrefeのGUI Frontendなのでrefeをインストールする必要はあります。
■ [Fedora] ATOK X
変換候補を選択するところで文字化け。そういや、これ前にもあったな。
/usr/lib/im/locale/ja/atokserver/atokx_clientの最初のほうに以下も追加。
LANG="ja_JP.eucJP"
GNOME Terminalで日本語入力すると文字化けするなぁ。しょうがないか。UTF-8対応版のATOK Xってでないのかしらん。
viは日本語入力できるのか。あ、でもfileencodingはUTF-8なのかぁ。これはviが内部的にEUC-JPからUTF-8に変換かましてるってことなのかな?
■ [Fedora] XINE
DVD Videoプレイヤー、他にもいろんな動画フォーマットに対応しているらしい。DVDドライブ買ったのでせっかくだからトライしてみた。
libdvdcssというのが別途必要とのことなのでVideoLANからいただいてきた。
早速、半年くらい前に「いつか見よう」と思って衝動買いしてしまった、うちにある唯一のDVD Videoである Jaco Pastorius Live In Montrealを聴いてしまった。うーん、グレイト。
実は驚くことに(?)DVDプレイヤーの類(もちろんプレステ2も)はオレんちに存在しなかったんだよね。買おうかなぁと思ってたんだけど滅多に使わないし。
XINEの出来も良い(ってか一般的なDVDプレイヤーというのがどういうものか知らないんで実はよくわからないのだけどね)のでもうしばらくこれでイイや。
■ [Fedora] Matrox Millennium P650用のOpenGLサポート
P650用のX用ドライバってMatrox社が自社開発してるんだけど、現在リリースされているBETA 1.1.0 17dec03(RedHat9.0用)は残念ながらOpenGLの最適化がされていない。
でも、実は現在開発中のベータ版があって、それを申し込む(上記ドライバを申し込む際に欲しいかどうか聞かれる)と別途OpenGLサポートバージョンのドライバの在処をメールしてくれる。
んで、インストールしてみてglxgearsの結果を比べてみた。
(旧:XFree86-Mesa-libGL) 775 frames in 5.0 seconds = 155.000 FPS 838 frames in 5.0 seconds = 167.600 FPS 918 frames in 5.0 seconds = 183.600 FPS (新:Matrox版) 2751 frames in 5.0 seconds = 550.200 FPS 2966 frames in 5.0 seconds = 593.200 FPS 2968 frames in 5.0 seconds = 593.600 FPS
おー、だいぶ違うじゃありませんか。これは入れるべし。
■ そうそう、最初インストールしたとき、glxgearsが異常終了した。
結局、Matrox製のlibGL.so.1.3.0がうまく読み込めなかったのが原因のようで、/usr/X11R6/lib/tls/libGL.so.1.2をlibGL.so.1.3.0のシンボリックリンクにしたらうまく動いた。こんな感じ。
# pwd /usr/X11R6/lib/tls [root@linux tls]# ls -l 合計 5360 lrwxrwxrwx 1 root root 12 12月 28 22:08 libGL.so.1 -> libGL.so.1.2 lrwxrwxrwx 1 root root 14 12月 30 02:53 libGL.so.1.2 -> libGL.so.1.3.0 -rwxr-xr-x 1 root root 352013 10月 25 07:14 libGL.so.1.2.old -rwxr-xr-x 1 root root 5116184 12月 30 02:38 libGL.so.1.3.0
■ ちなみに、libGL.so.1.2はlibGL.so.1.2.oldにコピーした。libGL.so.1自体をlibGL.so.1.3.0のシンボリックリンクにしても良さそうなんだけど、なんか別のところ(/usr/lib/tls/libGL.so.1)からシンボリックリンクを1.2の方に張られているようなのでやめた。
December 29, 2005
■ [Ruby] Ruby-GetText-Package-1.1.0
リリースしました。今回は2つの点を大きく強化しました。
1つは、メンテナンスのしやすさの強化、そしてもう一つはRuby on Railsサポートの強化です。
■ まず、メンテナンスのしやすさの強化、ですが、L10n化されたアプリケーションの開発を継続して行う場合に、とにかく重要になるのがメンテナンスのしやすさです。
Ruby-GetText-Packageを使わない場合(例えば、HikiやtDiaryもそうなのですが)、各ロケール毎にあるファイル(カタログファイル:ロケール毎になくても良いですが)を、ローカライズしたい文字列が増えるたびに自分で追加したり、変更していかなければならないでしょう。このことは小さなアプリケーションではあまり問題にならないとは思いますが、比較的大きなアプリケーションではとても煩雑でいらいらする作業です。
Ruby-GetText-Packageではrgettextというコマンドを用いてローカライズ対象の文字列を自動抽出できるようになっています。
でも、これだけだと実はまだ足りません。
アプリケーションがアップデートされる度に、以前のカタログファイルとの差分というものをマージしてくれるようなツールが必要になります。
Ruby-GetText-Packageでは、現状、GNU GetTextに入っているmsgmergeというツールを使うことを想定しています。
このツールはかなり強力に過去のバージョンと新しいバージョンの差分を抽出してくれます。
この機能までサポートできて初めて、L10nライブラリ(というより文字列のローカライズに限定されますが)としてはまともに機能するようになります。
■ 上記の機能までは今までのRuby-GetText-Packageでもサポートできていたのですが、毎回手作業で、rgettext/msgmergeを使うのはかなり面倒くさい作業なため、実際には、アプリケーション開発者がさらにrgettext/msgmergeを使ったshellスクリプトやsetup.rb向けの設定ファイルなどを書いていました。
今回のリリースで用意した'gettext/utils'は、GetText.create_mofiles, .update_ppofilesという二つの関数を提供しますが、この2つを使うとこれらの手間がほとんどかからないようになります。詳しくは「HOWTO maintain po/mo filesを参照してください。
#今のところ英語版しか用意できてません。
■ もう一つの機能がRuby on Railsのサポート、とりわけ、ActiveRecordのサポートの強化です。
Ruby on Railsでは、データベースのカラム名(やモデルのクラス名)をそのまま表示文字列としてエラーメッセージなどに使っています。
しかし、それらはもちろん日本語であるはずもなく、エラーメッセージとして出力されたところで「わけわからん」メッセージになっています。
この問題に対し、Rubyist Magazine 12号でも紹介されているActiveHeartではset_field_nameという関数を追加することで、一つ一つ指定できるようにしてこの問題に対応しようとしています。
これに対し、Ruby-GetText-Packageでは、rgettextで全ての該当する文字列をmsgidと言う形で抽出するようになり、それらを使うことができるようになりました(それらはApplicationControllerと同じテキストドメインとして扱われ、各modelファイルにtextdomain等の記述をする必要はありません)。
つまり、開発者自身が「全く手を加えずに」、Ruby on Railsのapp/model/を翻訳対象にできます。
#もちろん、po以下に抽出されたカラム名などは、それぞれ翻訳する必要があります。
なお、デフォルトのエラーメッセージについてもローカライズされますので、実はRubyist Magazine 12号の内容のうち、TransSid、Iso2022jpMailer以外の多くはRuby-GetText-Packageが提供する機能と重複します。ActiveHeartの内容はあくまでも日本語化であって地域化ではないので、上記の重複する機能についてはぜひともRuby-GetText-Packageを使うことをオススメします。
■ それから、Ruby-GetText-Packageの翻訳状況ですが、いろいろな人が手をあげてくれたものの、結局は、Czech, Dutch, French, German, Japanese, Korean, Portuguese(Brazil), Spanishの8言語のみが最新としてアップデートされるにとどまりました。ItalianやSwedishのバージョンは以前のままです。しかしながら、上記8言語については先述したデフォルトのエラーメッセージなども全て翻訳済みですので、多くの人が恩恵にあずかれるのではないかと思っています。
■ [Ruby] Ruby-GetText-Packageの新規ドキュメント
まだ、英語版しか用意できていませんが、ここ最近、Ruby-GetText-Package周りでいくつかドキュメントを用意したので紹介します。誰か翻訳してくれませんか?(いや、まぢで)
- documents for Translators
翻訳者向けドキュメント。あなたが開発者であれば、翻訳者にメールを出すときにこのURLを参考にしてね、と書いて出すといろいろとスムーズに翻訳作業が進むかもしれません。 - HOWTO maintain po/mo files
先述したとおり、翻訳ファイルをメンテナンスするための便利なHOWTOです。 - HOWTO for Ruby on Rails
Ruby on Rails向けのドキュメントです。本家にあるUsing Gettext To Translate Your Rails Application よりもシンプルにしてみました。Using...の方も私の方でアップデートかけて作者には送ってあるのでそのうちアップデートされるとは思いますが、今のところこのドキュメントが最新になります。Using... に書いてあるような1.0.0の状況と1.1.0の状況ではかなり違いがありますので、これから始める人はこちらを試してみてください。
December 29, 2006
■ [Ruby-GNOME2] Ruby-GNOME2-0.16.0.0 リリース
遅ればせながらリリースしました。年内に間に合ったよ。ほっ。
GTK+-2.10をサポートしてます。印刷機能やステータスバーに載せるトレイアイコン、その他諸々の機能が追加されています。ぜひ試してみてくださいね。
あ、そうそう、Ruby/Libgda, Ruby/GStreamerをリリースから外します。これらは長らくメンテナンスされておらず、また、最新のLibgda, GStreamerではコンパイルできなくなっています。ほとんど使われてないみたいですし、ま、いっかなと。必要な人はぜひメンテナに立候補してくださいね(なかなかいねーだろーなー)。
■ [Ruby] mkmf.rbのpkg_configメソッド
ruby-talkを見て気づいたんだけど、mkmf.rbってpkg_configっていうメソッドがあるんだねー。初めて知ったよ(Rubyリファレンスマニュアルにも書いてないし、RDoc化もされてないみたいだし、しょうがないよね(なげやり))。
実はRuby-GNOME2は自前のpkg-config.rbというもので同様の機能を提供してるんだよなー。最もpkg-configを使うであろうRuby-GNOME2プロジェクトがruby自身が提供しているpkg_configを使っていないっつーのはちとイケてないような気もするが・・・。ま、いっか。見なかったことにしよう(苦笑)。

▲ 通りすがり [FedoraがFedraになっているのは「敢えて」でしょうか?]
▲ むとぽん [おっとスペルミスです。直しました。]