昨日、GTK+を含むGNOME関連ライブラリのRubyバインディング集Ruby-GNOME2のバージョン0.17.0が公開されました。(もう少し細かい変更点が書かれたアナウンス)
このリリースの目玉はRuby 1.8.7対応です。
以前のバージョンである0.16.0をRuby 1.8.7で動かすと、以下のようなメッセージとともに落ちてしまいます。*1
[BUG] object allocation during garbage collection phase
0.17.0では上記の問題を解決し、Ruby 1.8.7でも動作するようになっています。
他にも、フリーなマルチメディアフレームワークであるGStreamer 0.10.xへの対応など新機能が追加されています。
RubyでGUIを作成したいときは、Ruby-GNOME2を試してみてください。
アナウンスメールにもありますが、Ruby-GNOME2プロジェクトでは協力してくれる方を募集しています。例えば、バインディングを開発してくれる方、ドキュメントを書いてくれる方、英語のドキュメントを日本語化してくれる方、リリース作業をしてくれる方などを募集しています。
興味のある方はruby-gnome2-devel-ja MLまでお願いします。
*1 暫定的な対処法はGC.disableでした。
多数のユーザを抱える企業や大学などでは、ユーザの情報をディレクトリサーバに保存していることが多いと思われますが、Thunderbirdには、そのようなディレクトリサーバにLDAP(Lightweight Directory Access Protocol)で接続して必要な情報を取得する機能があります。具体的には、Thunderbirdでは以下の場面でLDAPが利用できます。
これらの機能をテストするためには、当然ながらディレクトリサーバを用意する必要があります。ここでは、インストールが簡単な「ApacheDS」を利用して、Windows XP環境下でThunderbirdでのLDAP関連機能をテストする手順を解説します。
ApacheDS(Apache Directory Server)は、Webサーバ「Apache」で有名なApache Foundationで開発されているオープンソースのディレクトリサーバです。Windows用にはインストーラが用意されており、特別な知識が無くてもインストールしてすぐに利用を始められます。
Apache Directoryプロジェクトではディレクトリサーバの内容をGUIで管理する「Apache Directory Studio」というEclipseベースのツールも開発されています。これを使って、テストのためのダミーのユーザ情報をディレクトリサーバに登録します。
6から10の操作を繰り返して、さらに何人分かユーザ情報を登録します。「uid」はユーザの識別子となりますので、他と重複しない値を入力してください。
なお、9のステップで「RDN:」欄の右にある「+」ボタンをクリックして入力欄を増やすと以下の操作が期待通りには動かなくなる場合がありますので、ここでは必ず「uid」のみを設定して下さい。
ここまでで入力した情報を、Thunderbirdで実際に利用してみましょう。
これで、Thunderbirdでディレクトリサーバに接続する準備が整いました。
試しに、ディレクトリサーバの内容をアドレス帳として表示してみましょう。アドレス帳ウィンドウの左のアドレス帳一覧から「ApacheDS」を選んで、ウィンドウ右上の検索欄に先ほど登録したダミーのユーザの名前やメールアドレスの一部を入力します。ディレクトリサーバに接続するためのパスワードの入力を求められますので、「secret」(ApacheDSに最初から用意されているサンプル設定のディレクトリサーバのパスワードです)と入力すると、ダミーのユーザ情報のうち今入力した文字列にヒットした物がリストアップされます。また、新規にメール作成ウィンドウを開き、宛先の入力欄に先ほど登録したユーザの名前の先頭数文字を入力すると、該当するユーザのメールアドレスが補完候補として表示されます。
以上で、基本的な手順の解説は終わりです。LDAP関連の各種の隠し設定をテストする場合などに利用してみると良いでしょう。
2008/09/26にマルチプラットフォームで動作するベクトルベースの グラフィックライブラリであるcairo 1.8.0がリリースされました。また、同日のうちにcairoを Rubyから利用するためのライブラリ rcairo 1.8.0が リリースされました。([ruby-list45520] [ANN] rcairo 1.8.0 )rcairo 1.8.0はcairo 1.8.0に対応しています。rcairoの基本的 な使い方はるびまの記事「cairo: 2 次元画像描画ライブラリ」 にまとまっ ています。
ちなみに、誰も気づいていないかもしれませんが、cairoの最新API への対応は各種言語バインディングの中ではrcairoが最速です。
cairo 1.8.0ではテキストの扱いが改良されています。例えば、テキ ストを検索、選択、コピペできるようなPDFを出力するようになって います。また、「ユーザフォント」という機能が導入されています。
「ユーザフォント」はその名の通り、ユーザ(cairoを使う開発者) 独自のフォントを定義・利用できる機能です。利用例として、SVGフォ ントやFlashフォントなど標準化されていないフォーマットのフォン トの実装があげられています。通常は利用することはないと思いま すが、cairoがより広く利用される機会を増やす機能になるかもし れません。
もちろん、rcairoでは「ユーザフォント」もサポートしています。
rcairoには、cairoのバインディングだけではなく、rcairo独自の cairoをもっと便利に使うための機能が追加されています。例えば、 Cairo::Color もそのひとつです。
rcairoをもっと便利に使えるようにするためには、レンダリングエ ンジンのような機能が必要だと考えています。例えば、以下のよう にすれば表を描画できるというような機能を考えています。
1 2 3 4 5 |
table = Cairo::Table.new(:width => 400) table << Cairo::Table::Header.new("column1", "column2", "column3") table << Cairo::Table::Row.new("1x1 value", "1x2 value", "1x3 value") table << Cairo::Table::Row.new("2x1 value", "2x2 value", "2x3 value") context.show_table(table) |
現在考えているサポートしたい描画対象は以下の通りです。もし興 味があったらぜひ手伝ってください。