Ruby言語やLinuxのネタが多いです。
July 04, 2004 [おもひで]
■ [Ruby] Ruby-GetText-Package-0.6.0 released
リリースした。なんか、ますますリリース作業に時間がかかるようになってきてしまった....。いつになっても苦手な作業だ。
■ さて、今回の目玉は、対象文字列を抽出してpoファイルを生成してくれるrgettextが、rubyのソースだけではなくGlade-2の生成したXMLファイル(.gladeファイル)からも直接poファイルを生成できるようになったことだ。
rgettextは複数のソース、.gladeファイルをまとめて指定できるので、ソースがXMLだろうがrubyのソースだろうが関係なく1つのpoファイルにまとめることができるようになった。
■ これで、Ruby-GNOME2で国際化アプリを作るときの最後の障害が排除できた....かな?
■ 以前、Ruby-GetText-PackageをRubyで再実装するときに、どうせ車輪の再発明をするくらいなら出力ファイルであるmoファイルをGNU GetTextのバイナリフォーマット互換にせずに、XMLかなんか(当時はYAMLが無かった)で表現した方が良いのではないかと一時期悩んだこともあった。
#ってか実装までしたんだよなー。
でも、最近は、Ruby/Libglade2等のようにGNU GetTextのmoファイルが前提となるようなライブラリがあることを知ったので、このmo互換路線は結果的には良かったなぁという気がしてきた。あまりいろいろなフォーマットが乱立するのもどうかなと思うしね。
■ おっと。こういう書き方すると、Ruby-GetText-PackageはまるでRuby-GNOME2のためのライブラリと思われる人もいるかもしれないけど、そうではないつもり。
是非、他のツールキット、コンソールアプリ、なんでも良いんだけど国際化をする際には使ってみて欲しいなぁ。
#とはいっても、moファイルの読み込み等で起動時のオーバーヘッドが
#あるので、CGIなんかには向かないかも知れないんだけどね。
■ あ、そうそう、もう一つ改善したところとして、rgettextが以下のようなフォーマットもサポートできるようになった(はず)。オレはあまり気にしない方なんだけど、案外、要望が多かったんだよな。
str1 = _("aaa
bbb
ccc")
str2 = _("aaa"
"bbb"
"ccc")
str3 = _("aaa") + foo + _("bbb")
July 10, 2004 [おもひで]
■ [Misc] 文章公開システムとしての Wiki - ょゎさん
を読んで、実はオレも似たようなことを考えてたことを思い出した。
■ と言ってもオレが考えたのはもっと単純で「著者とコメントを入れる人(読者)」の役割を明確に分けて考えると言うもの。著者のみが文書を編集でき、コメントを入れる人は文書自体を編集できるわけではない。
■ システム的には、アクセス権つきのWikiで、その上に、wemaみたいな感じで付箋紙の形でコメントをつけることができる、という感じ。
wemaで付箋紙が追加されるとメールでWikiに書き込みできる人に通知が行くので、そのコメントを順次吸収して行くと。
■ 実際、Hikiにプラグインとしてwemaをくっつけちゃうような感じでちゃちゃちゃとやればできそうな気がするんだけど、今、自分がとっても忙しいので取り掛かれず。誰かやってくんないかなー。
July 12, 2004 [おもひで]
■ [Ruby-GNOME2] サンプルスクリプト3題
3つのサンプルスクリプトが同時に公開されました。どれもこれもすばらしい。一見の価値アリです。
■ Analog Clock by Geoff Youngs
Ruby/GnomeCanvas2, Ruby/GNOME2を使った簡単な時計プログラムです。きれいですよ。
■ Scrolling Credits display by Geoff Youngs
こちらもGeoffの作品。テキストが縦にエンドロールが流れるように表示されるものです。こちらもきれい。Ruby/GnomeCanvas2, Ruby/GNOME2。
■ Tabbed Notebook MDI by Sam Stephenson
いわゆるタブ用のコンテナウィジェット。Mozillaやgedit等のタブと同様の動きをするウィジェットで、きちんとシグナルなんかも出して(emitして)くれる本格派で実用的なウィジェット。Ruby/GTK2
■ Samが、どうしてこういうウィジェットがGTK+にないんだろう、と嘆いていたけど、そういったウィジェットであっても、Ruby-GNOME2ならこれだけお手軽に作ることができるのだ、という好例だと思う。
こういうPure Ruby-GNOME2なウィジェットを集めたお手軽拡張ライブラリを作りたいなぁ。
July 20, 2004 [おもひで]
■ [Ruby-GNOME2] Rabbit-0.0.1
Ruby/GTK2によるプレゼンテーションツール by 須藤さん (via lrz's diary)
すげー。ここまでRuby/Pangoを使う人がいるとは正直考えてなかった(汗)。
■ ちなみに、サンプル用のsample/rabbit.rdはEUC-JPなファイルなのでUTF-8に変換してから使わないとダメみたい。例えば以下のようにすると試すことができる。是非試してみて!
$ cd sample/ $ iconv -f euc-jp -t utf-8 rabbit.rd |rabbit
July 22, 2004 [おもひで]
■ [Ruby] Ruby-GetText-Package-0.6.1
リリースしました。インストールできないという不具合があったのに、対応が大変遅くなってしまいました。ご迷惑おかけした方がいらしたらすみませんでした。
■ 今回はWin32版に簡単なインストーラをつけてみました。今までは自分でコピーする必要があって結構面倒臭かったんですが、今度は、DOS Promptでruby install.rbとすれば一通りインストールされると思います。
■ なかださんに指摘されたヒアドキュメントに未対応の件ですが、まだ対応できてません。ちと試してみたんだけどダメでした。腰を落ち着けてやらないとダメみたい。
July 25, 2004 [おもひで]
■ [Ruby-GNOME2] 天元
GNU Goのフロントエンド by Laurent。次から次へとよくやるなー、すごい。
ちなみに、Laurentは「ヒカルの碁」というアニメを見て碁を覚えようと思ったらしい。
■ そうそう、天元見て気づいたんだけど、Gdk::Pixbuf.newがSVGファイルを読み込めるなんて知らなかった...(汗)。
-+- | <=>
July 30, 2004 [おもひで]
■ [Ruby] RPA-base
Ruby Production Archiveだそうだ。rpmみたいなもの?
なんか作者の人から、ObjectPoolをrpa化しないかい?っていう誘いのメールが来た(なぜRuby-GetText-PackageではなくObjectPoolなんだ...(-o-;))。なんかメンドッチーのでとりあえず無視。ちなみにGemsとやらとは違うの?誰かその辺のことまとめてる人いないかな〜、日本語で(夏なので英語読むのが辛くなって来てる(^^;))。
■ ところで、rpa化する場合、以下のようなinstall.rbを書くらしい。
require 'rpa/install'
class Install_objectpool < RPA::Install::PureRubyLibrary
name "objectpool"
version "0.2.0-1"
classification Library.Development
build do
installdocs %w[COPYING COPYING.ja ChangeLog README]
installdocs "docs/html/en", "html/en", true
installdocs "docs/html/ja", "html/ja", true
installtests %w[test.rb]
installmodules %w[objectpool.rb]
end
description <<EOF
Enables sharing of instantiated objects.
ObjectPool provides a mechanism for pooling objects and resources.
EOF
end
■ なんか、青木さんのsetup.rbに体が馴染んでしまったオレ的には、installxxxxとかいう感じでインストール対象を指定してること自体が面倒臭い。ホント、ディレクトリ構造固定で良いじゃん!って思う。
■ パッケージ管理するなら、青木さんのsetup.rbはそのままで、ルートディレクトリにXMLファイル(YAMLでも良いけど)を作って上記のような情報を書くだけでうまくやってくれるものにしてくれないかなー。
っつーか、別にRuby専用のものを作らずともrpmとかでいいじゃん、とか思うんだけどなぁ。ダメ?

Before...
▲ むとぽん [Thanks ;)]
▲ なかだ [ヒアドキュメントはダメですか。 $ rgettext -v /usr/bin/rgettext 1.12 (200..]
▲ むとぽん [そこまで考えてませんでした...(^^;)。]