flex lifeのインストアの後にCDをチェック。
久しぶりにイージーリスニングコーナーも見てみる。
まずは適当にイージーリスニングコーナーで2枚。
- eastern bloom / capyba-land
- カノン / Hymn of Grace
続いてはJ-POPコーナー。お、organs cafeまだ活動してたんだ、などと思いつつ、やっぱり適当に購入。ロボピッチャーがCD出してるのも知らなかった……。
flex life at Tower Records 梅田
久しぶりに聞くflex lifeはTowerでのインストアライブ。アルバム「japonica」の発売記念で。
前に聞いたときやアルバムはバンド編成でしたが、今日は二人だけで。ボーカルとギターで。
二人だけのシンプルな構成も、曲やボーカルのパワーが素直に届いてきていい感じ。力強く聞こえてくるリズムとメロディとボーカル。短いながらもしっかりと楽しんできました。
uim系のIMを使ったことがないだけじゃ、あれなんで、そのうち使ってみるとして、まずはソースを軽く読んでみることにした。知らないままにいろいろ書いても仕方がない。
まずは変換エンジンの切り替え関連。
Cのソースはuim直下。scheme系はscm直下にあるのか。簡単な変換はschemeだけで実装して、複雑なものはCの方でライブラリを読むと。
だが、この作りだと、変換エンジンがpluggableにはなってないようだ。新たに(複雑な)変換エンジンを作っても、uimの再コンパイルがいるのか。この辺りのインターフェースは中途半端だな。Anthyはどうせuim専用みたいなものなんだから、uimのソースにAnthyに依存する部分なんかなくてもすむような作りにしておいた方がいいだろうに。
ところで、uimはライブラリでのIMの実装であるため、Anthyなどもライブラリの形で実装されているようだ。(こちらのソースは未読)
ということは辞書は複数プロセスのメモリ空間に読み込まれる?辞書の学習内容のプロセス間の同期はどうなってる?
と思ったら、anthy-agentとか、anghy-dic-toolとかあるのか。この辺、内部構造をまた調べておこう。
さて、uimに戻るけど、全体的な構造としては、ライブラリでの実装にするツケがヘルパーアプリやanthyのコマンドとかに出てきていると言えるのだろうか。このあたりはもうすこしよく勉強してからか。
とりあえず、気になった点。コーディングしている人が、get_c_string()関数の仕様をよく把握していないような。
たとえば、uim-util.cの「return strdup(get_c_string((LISP)str));」なんてのはもろメモリーリークに繋がるコーディングだし、
uim-func.cのim_register_im()あたりも動作的には問題なさそうだが、効率的には気になるなぁ。まあ、こちらはそうたくさん呼ばれる関数ではなさそうなのでパフォーマンスにも大きな影響はないだろうけど。
gtk+のimmoduleに続き、Qtにもimmoduleを実装しようという動きがある。
これでgtk+, QtというX11向けの二大ToolkitにInput Methodの動的切り替えの機能が実装されていくわけだが、個人的な考えとしてはこれらは技術的には面白いものの、ユーザのためになる機能なのかということに関しては疑問点を持たざるを得ない。
というのは、次のような問題があるからである。
* gtk+, Qtではそれぞれimmoduleと名前がついているにも関わらず、両者に互換性はない。
* そのため、それぞれ別々に設定が必要である。
* IMの動的切り替え機構はToolkitへの実装であるため、変更作業は基本的にアプリケーション単位である。ユーザーは多くの場合デスクトップ環境単位での切り替えを望むと考えるため、そのための機構の実装か、デスクトップの再起動が必要となる。
こういうことを考えていくと、最終的にはToolkitの外での統一的なIM-APIと、IMマネージャというべきアプリの作成が必要なのだろうと思う。もっとも、IM-APIとしてはIIIMFやuimがそれとなろうとしていたのだろうが、両者にはその作業をするという雰囲気が感じられない。IMの決定打がないがためのimmoduleなのだろうが、ユーザの使い勝手のアプローチもない状態で、今後新しい実装の出現がないことを祈る。
XIM, IIIMF, uimとX11用のInput Methodにはいくつかあるものの、どうもそれらの差がよくわかってない。
XIMはだめなものとして、IIIMF, uimが出てきているとはわかるのだが、具体的にそれらの利点がよくわからないし、XIMではなく、IIIMFやuimにnativeに対応していこうという動きももう一つ見えない。
今ところ、X11関係はimmoduleに向かっていっているようだけれど、それの是非はともかく、IMについてまとめてみることにした。
なお、利用経験はXIMのみ。IIIMF, uimについてはWebで検索した結果からの推測となる。不明点も多く、誤解している点もあると思うので指摘をいただけるとありがたい。