Translation for Gtk# document.

日本の mono デベロッパが集う Mono Japanese Wiki で宣言しておきながら、忙しくて手つかずだった gtk-sharp 関連のドキュメント の翻訳を始める。
内容やその構成は、GTK+-2.0 チュートリアル とほぼ同等だけど、文章的にはそれほど多くない。というか、かなり端折っているような気がするが….:
Gtk# チュートリアル (未だ翻訳中)
ついでに、monodoc 向けに新しいドキュメント・アーカイブ monohb.zip などをリビルドしインストールしてみた:
monodoc-20050531.png
おや? サンプル・プログラムの画像は表示されていないようだ…:$
monodoc-2-20050531.png
こっちは表示されるな。makefile を修正しないとダメかな?

GPass2, a long road.

今年の始めから、暇な時間を見つけつつ、GObject の型システムを使いながら、あれやこれやとクラス (型) を作っては捨て、作っては捨てと、なかなか思い通りのクラス構成ができずに四苦八苦していたけど、なんとかまとまりつつある。遠い昔に使った UML で表現すると、こんな感じかな (今ひとつ線の意味が分からないが):
GPass2-Classes.png
GObject から派生するのが GpsObject。全ての始まりはここから。そして GpsCollection クラスが、パスワード・ファイル毎に作られるクラス。このクラスで1個だけ作られるのが GpsAccountManager で、実際にアカウント情報を表現する GpsAccount のインスタンスを複数保持する。GpsApplication クラスは GTK+ のインタフェースを作るときに一緒に使うクラス。
直接、GObject の型システムで実装しているので、なんかクラス図なるものでうまく表現できなのが、このシステムの欠点だなぁ。
さらに、このシステムに合わせて、お決まりの2つの構造体やシグナルやプロパティを実装し、マーシャラーを追加するなど、実際のアプリケーションの機能を実装する前に型システム自身を作るだけでも大変な労力だ。ということで、全くパスワードを管理する機能には手を付けられない。このあたりを自動化できれば良いのだが。
まだまだ、先は長い :()
GPass2 リポジトリ

Anjuta back.

すっかりとなりを潜めていた Anjuta DevStudio の安定版 (v1.2 系) と開発版 (v2.0 系) が、先週リリースされた
安定版がリリースされたのはこの頃だから、かれこれ1年くらい空きがあったか。Lead-Developer の Nabaさん (インド人)、去年の今頃は仕事が忙しく手をつけている暇がなかったとか。掲示板なんかで、世界中から催促され、まじめにプロジェクトを手放そうか迷っていたようだ。というか、クレジット見れば分かるが、開発者が少なくて大変だ、こりゃ (当時はもっと少ない)。また、その当時は開発版のブランチも作ってアナウンスしたもんだから、ユーザの期待も大きくなるか。
安定版、開発版ともに、糞な Scintilla を使っているので、エディタでは XIM は使えません :$。安定版の方は、昔作ったパッチ、使えますが、開発版はダメ。
ja.po も、こんな状態では、ちょっと翻訳するのが辛い :(:

% intltool-update ja
..................................................................................................................
..................................................................................................................
..................................................................................................................
.................................. 完了.
952 個の翻訳メッセージ, 593 個の翻訳があいまいです, 369 個の未訳のメッセージ.

ということで、リリースが上がって、もう少しマシな状態になってから、作業するか放置するか決めよう (どちらにしても、すぐに完訳状態にはもっていけない)。リリース・ノートにもあるように、開発版は安定版に上書きインストールするので別の prefix にするしかない。完成度は期待しない方が良い。GConf 設定情報も restore できないので、毎回同じような状態に持って行くのが辛い。安定版を失うリスクを考えれば、インストールしないのが吉。
さらに、Glade3 も requires するが、こっちは、従来版からインタフェースが変更されているが (いくつか抜けあり) 、まだ期待できるレベルではない:
anjuta-2.0-20050522.png
GOCBuilder を使って GObject のテンプレートを生成したり、CVS の他に Subversion も利用できるようになり、これらの機能は全て、プラグイン・モジュール形式になった。
glade-3-20050522.png
見た感じ、従来版とは、パレット・ウィンドウのインタフェースが変わったぐらいの違いしかない。
とりあえず、Anjuta-2.0 自身を除く、関連するパッケージの ja.po は更新しておいた:
gdl-ja.po
gnome-build-ja.po
glade3-ja.po

Around the G.Planet.

そういえば昔、FootNotes でも同じようなタイトルで、Planet GNOMEの主要なトピックを月一くらいの間隔で紹介していたっけ。
G210リリース前までは開発版で取り込まれた機能とかが頻繁にBloggingされていたので、そういう動きや面白いトピックの概要を把握するのに、結構重宝していたが。
また、復活してもらえるとうれしいな。
ということで、個人的に気になった最近のトピックをかいつまんでみる:
Background Channels
(元ネタ: Bryan Clark の “Desktop Ninja“)
なんとなく、GNOME Art からヒントを得たっぽい、Background Channelswebcal:// みたいに XML RSS フィード形式で提供される bgchannel:// サービスを使って、インターネット上からデスクトップの背景画像を取得して、適用するもの。仕様の詳細は ここ。テストコードとサンプル・サーバが提供されているので、どんなものか試してみることが可能。だけど、Python スクリプト 。PyGTKgnome-python で痛い目に遭い過ぎているので、最近は自然にPython系GNOMEアプリを避けてしまうな :$
Java-gnome and GTK#
(元ネタ: Seth Nickell の “Language differences *shrug*“)
A walk in the park with Java-gnome and GTK# で、Java と C# で記述した UI ウィジットのコードを並べながら観察できる。ぱっと見、目をきょろきょろさせながら比較するほど違いはない。C#の設計構想からすると、当たり前と言えば当たり前だけど。まぁ、個人的には言語よりも monoJVM といった仮想マシンの世界の方が気になる。
Subversion migration
(元ネタ: James Henstridge の “12 May 2005“)
Miguel が再び火を付けた CVS から Subversion への移行 (gnome-hackers@ のメーリングリスト)。実際に実のある議論は Gnome Summit で行われるらしい。mono のリポジトリは既に Subversion に移行しているので、その辺も影響しているような提案だ。
Memory Usage Debugging
(元ネタ: Mark McLoughlin の “Memory Usage Debugging“)
desktop-devel@ のメーリングに投稿された The hall of bloat に対する彼の返信。G28からG210にアップグレードした結果、起動時間が短くなっただけでなく、メモリ消費量も大幅に減ったのに、なぜか gnome-panel だけが増えているという報告に対する、デバッグ手順を含めた解説。
なかなか面白い。GLibc 付属の pmap (プロセスのメモリ・マッピングを表示するツール) を使い、anonymous なマッピングの中に10Mのメモリ・チャンクを発見し、何の共有ライブラリが握っているのかを strace を使って探っている。
最終的には、冒頭にあるように ORBit の IO thread (デフォルトのスタックサイズが 10MB!!) が原因ということが判明した。対応策は ulimit/limitPTHREAD_STACK_MIN を小さくしておくというテンポラリなもの。
Userland 側でのメモリ使用量を解析する手順としては見習うものがある。
今度、自分の環境で試してみよう。

% gnome-session-remove gnome-panel
% GNOME_PANEL_DEBUG=1 strace gnome-panel 2>foo.log

AbiWord v2.4.0
(元ネタ: Marc ‘uwog’ Maurer の “AbiWord v2.3.0 Released“)
まだあったのか、と言われそうな GNOME Office の一つ。2.4 系に向けた開発版が最近リリースされた。やはり OpenOffice.org の影に隠れてしまうスィートだけど、まだまだガンバルようだ。個人的にはLinux を使うようになってから、ワープロなんか何年かに1度くらいしか必要としないし、ましてや MS Office なんか使う機会もないけど、OpenOfficeをビルドするよりはマシなので試してみる (というか、サンプル表示するための Doc 文書がないので、インターネット上から拾ってきた :() :
abiword-230-20050513.png

GOCBuilder 0.1.3.

リリースしておく。変更点としては:
アクセラレータ・キーの追加
.glade ファイルで GtkLabel オブジェクトのプロパティ use_underline を True にし、同じくプロパティ label のデータをアンダースコアつきに変更するだけ。コードの修正は一切なし。
情報ダイアログの追加
いわゆる GtkAboutDialog の追加。.glade ファイルに GtkHButtonBox と clicked イベント・ハンドラを追加して各種プロパティ (ストック・アイコンなど) を設定する。そして、イベント・ハンドラのコールバックを記述する。さらに、E-メールアドレスやホームページの URL を処理するために、GTK+-2.6 から導入された gtk_about_dialog_set_email_hook()gtk_about_dialog_set_url_hook() をそれぞれ実装した。ここで登録するハンドラは、デスクトップで使用しているメーラやウェブ・ブラウザを開くようにするために libgnomevfsgnome_vfs_url_show() を実装する。それだけ。
gocbuilder-20050509.png