hns - 日記自動生成システム - Version 2.19.8

日記@韜晦する朴念仁


先月 2003年07月 来月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい

検索式:


2003年07月21日(月) 旧暦6月22日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

フリーのソフトウェアとは?

すばらしい.\.より.


XFree86 Synaptics TouchPad Driver

ねぎ式 より.


Glib Objectシステム

gnome.gr.jpで公開された模様. 誤訳等があったら教えて下さい.

それにしても,改めて ここ とか見ると相花さんの作業量はすさまじい.


sylpheed-gtk2

あまりにad-hocな事をやってるので,(特にShift JIS環境で) たまにヘッダが化ける.早く直さないとなぁ...

もともとWanderlust *1 ユーザーなのでだんだんモチベーションが上がらなくなってきた. あかんなぁ...こんなことじゃあかんなぁ...

*1: Wanderlustが現れていなかったら,Linuxを常用環境にしていたかすら 怪しいくらいの中毒患者.

Webブラウザでサムネイル

タブじゃなくて,そのまま縦か横に並べてサムネイルの下にタイトルを表示するだけで 十分便利じゃないでしょうか? *2 強いて言うならば画像ビューア,あるいはKonquerorの 設定ウィンドウのようなインターフェースで.

あと,サムネイルが縦長すぎるのが前から気になっています. webnailとかを見ても,もう少し縦を縮めても十分機能するのではないかと思います.

KDEならば今のIE系タブブラウザ並みの物を再現するのも楽だと思うので, とりあえず動くものを公開するだけでも非常に意義があると思います *3

私の以前の成果もどこかに置いておいたほうがええかな...?

*2: もちろん,クリックするとページ切り替え
*3: それを参考にもっと高機能で実用的なタブブラウザを作る者が現れるかもしれないし, Konqerorでは(KDE標準のファイラという地位も兼ねる限り)最大公約数的な物以上には なり得ないと思いますし.

XEmbedとGtkIMContext

最近 Evolution-1.4 を使い始めたのだけど,メール作成で preedit 文字列を 表示する事ができない.gtkhtml をいじってさくさくっと表示可能に...しようと 思ったのだが,文字列を表示しようとすると固まってしまう. なんじゃそりゃって事で gdb -p pid で覗いてみると,xim の中で select(2) で止まってる.なんじゃそりゃ?

じゃあ他の IM ならどうよ?て事で uim-anthy で入力してみると,キープレスが2度発生 しているようで,文字列がダブって表示されてしまう.

ここで気になるのは,bonobo を経由している点.ひょっとして XEmbed *4 まわりのキーイベント処理の実装に問題があるのでは?という事で,Nautilus を立ち上げて Nautilus 内の Epiphany で GtkIMContextXIM を使ってみると, ものの見事に固まってしまう...うーん.

........直さなきゃだめ?(TOT

弄る前は,GtkHTML はなんで preedit_changed だけ実装してないんだろうと 思ったのだけど,そういう事だったのか...また地雷を踏んでしまったなぁ...

あと,Mozilla や Epiphany はメニューで IM を選ぶ事ができない?

*4: bonobo の問題か GtkPlug & GtkSocket の問題か,あるいは GtkIMContext の問題かはまだよくわかんない.

この記事へのツッコミ(全2件) [ ツッコミを入れる ]

Re: XEmbedとGtkIMContext by tkng    2003/07/22 15:06
 epiphanyはアドレスバーのところでIMを選択できます。Mozillaはいまのところ無理ぽ...
Re: XEmbedとGtkIMContext by あほ    2003/07/22 21:40
なるほど,その手がありましたか.しかしよく考えると,普通に実装するとclient_windo...

2003年07月22日(火) 旧暦6月23日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

JasPer Software

フリーのJPEG2000ライブラリ. 最近gtk-devel-listで話題になってる.

フリーと言ったけど,Licenseはまだ読んでない.

まあたぶん,何を今更という感じなんだろうけど(わら


GtkHTMLとGtkIMContext

よく見ると微妙に全然違った(なんだそりゃ). htmlengine_freeze() が gtk_im_context_reset() を呼ぶのか. しかも html_engine_insert_object() するときにこれらを呼んでないと, サクっと落ちてくれる.あちこち直さないと駄目っぽい. GtkIMContextXIM がフリーズするまでのプロセスはまだ掴めてないし... *1 思ったより面倒だな.

XEmbedが無関係かどうかもまだわかんね... *2 とりあえず半分は自分のせいらしい(^^;

つかこんな事に時間使ってられないので,しばらく放置決定...

誰が使うかわからない use_preedit=FALSE:

じゃあ当面は gtk_im_context_set_use_preedit() で use_preedit = FALSE にしておこうか *3 ,という考えが浮かんだが,どうやらこのモードでマトモに動いてくれる IM は windows にしか存在しないらしい(笑) *4

シングルバイト圏の人にも最低限の実装はしてもらえるように, やはり IM 作成者は use_preedit = FALSE もしっかり実装しておかんとダメという事ですかね. < お前が言うな

uim:

uim では一見まともに動いている *5 のですが,これはこれでおかしいので何故だろうと思って見てみると, uim では reset が実装されていないんですね. uim はまだあまり理解してないんですが,これも問題があるのでは? 最低限,preedit 文字列をクリアして preedit_changed シグナルを発行しないと 駄目な気がしますが,どうでしょう? あと,preedit_start や preedit_end は発行しなくていいのかな?

*1: 直す必要があるのかどうかはわからんけど,まあフリーズするよりは 警告発してリターンとかのほうがマシだろ.
*2: Embeded Mozillaも固まるって事は,無関係では無い気がするけど.
*3: まさか自分が使う事になるとは(笑)
*4: xim はセグメンテーションフォルトで落ちるし,ざっと見た感じ他の IM はマトモに実装していない.
*5: 2重に表示されるとか言ってたのは忘れて下さい(ぉ

この記事へのツッコミ(全1件) [ ツッコミを入れる ]

Re: GtkHTMLとGtkIMContext by tkng    2003/07/22 23:47
 uimのresetとかexitの関数のスカスカ具合は確かに気になってはいた のですが、これ...

2003年07月23日(水) 旧暦6月24日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

GtkIMContext

妄想メモ岩本さんのメモ へのリンクとActiveIMMのリンク集を加えておいた.

uim:

公開するのは構わない のですが,現状のものを見ても返ってワケが分からないと思うので,やめておきます.

簡単に説明すると,私はGtkHTMLの修正において preedit_changed ハンドラの中で無意識に gtk_im_context_reset()を呼んでいた *1 ため xim が誤動作を起こしていたわけなのですが, uim が何事もなかったかのように普通に日本語を入力できてしまうのはなぜだろう? ということです.

少なくとも私が uim に対して指摘した事はシンプルで, リファレンスマニュアルに記載されているような動作 が期待されるのではないでしょうか?という事です.

Notify the input method that a change such as a change in cursor
position has been made. This will typically cause the input method
to clear the preedit state.

今回の件ようにクライアント側が不適切な(?)操作をした場合に immodule がどう振舞うべき なのかはちょっとまだよく分からないのですが,少なくとも reset が実装されていないのは おかしい気がします.現状の uim では,クライアントが意識的に preedit を終了することが できないのではないかと思います.

im_module_exit()がスカスカなのは,現状では問題無いと思います.

この記事は今晩辺り補完するかもしれません(しないかもしれません)が, 自分でクライアントコードを書いてみると色々見えてくるかもしれません. あと,ライブラリが気まぐれな動作をするのはまずいと思います. 仕様にあいまいな点があるならば,開発者(仕様策定者)を問いただすくらいの 姿勢が必要ではないかと思います. (私もimimeで間違った実装をしていた(今も一部間違っている)ので, 猛省しなければいけません)

*1: さらにその中で preedit_changed と commit シグナルが発生するので 余計ワケがわからない.

GtkIMContext

あとでもう少しまともな返答をするかもしれませんが,何点か指摘しておきます.

resetについて:

resetはシグナルではない.ただの virtual method.

preedit_changedハンドラ内でのresetのcallについて:

preedit_changedハンドラの中でresetを呼んで良いものなのでしょうか?

常識的に考えれば呼ぶべきでは無い *2 .今回は,(他の関数を通じて自分の知らない間に) 実行してしまった結果,uim で reset が実装されていない事に気が付いた, 気が付いたので,これはどうなのでしょう?と問うてみただけの話. preedit_changedの中でresetを呼ぶ話に関しては今回の私の指摘には ほとんど関係なく,別の話なので,今回はひとまず置いておきたい.

resetは実装すべきか?:

私は 「reset は実装すべき」みたいな事を言ったが,これは表現が悪かった. 実のところは,仕様 *3 もリファレンスの記載も極めてあいまいであるため分からない. あいまいということは,実装者は何をしても良いという解釈もあり得る (だからこそ開発者に問うべきだと言った). ただ,GtkIMContext開発者は

Notify the input method that a change such as a change in cursor
position has been made. This will typically cause the input method
to clear the preedit state.
という動作を期待しているようだし, これを実装しなければクライアントが意図的にpreeditを終了することができないので, 私は実装すべきだと思った *4 .少なくとも uim はリファレンスに記載されている(すなわち,ユーザーが期待する) 動作を無視している *5 *6

Windowsでの実装について:

実際Windowsではそうなっています

ワードパッドやIEのフォーム入力等ではそうはなっていない. これらでは現在のGtkIMContextXIMと同様の実装になっている.

第一,特定の一実装例だけを挙げるのは意味が無い.

マウスプレス時の挙動について:

その場合の適切な動作は新しいカーソルの位置にpreeditをもっていく事でしょうし

それはtkngさん個人の希望に過ぎない.であるため

同時にGtk+の方にも修正を加える必要がある

その前に,仕様(みたいな何か)を変えるというコンセンサスを取らなければいけない. これはマルチバイト圏においても意見が分かれる可能性が十分にあるので, そんな簡単な話ではない *7

*2: と私は思う.
*3: これがC++ならば,純粋仮想関数であるか無いかで見分ける事ができるかもしれませんが...
*4: しかし,必ずしもpreeditを終了*しなければならない*とはどこにも書いていない.
*5: iiimcf-gtkは /* TODO */ となっている. imhangleはGtkIMContextXIMと同様の実装になっている. im-jaでは単にクリアしている?(実際の挙動はまだ見てない).
*6: 田畑氏が実装されたときにこのがドキュメントが存在していたかどうかは 定かではない.
*7: ちなみに私の意見は,単純にプリエディットをクリアするようにして欲しい.

2,3日見ない間に

なんか大変な事になってた.お大事に...



2003年07月24日(木) 旧暦6月25日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

GtkIMContext

テストコードを書いて色々試してみる.



2003年07月25日(金) 旧暦6月26日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

最近

明らかにキャラクター変わってるよなぁ (;´Д`) > 俺



2003年07月26日() 旧暦6月27日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

GdkEventKey

imimeでうっかりevent->stringをcommitしてた.

The only correct way to handle text input of text is using input methods
(see GtkIMContext), so this field is deprecated and should never be used. 
(gdk_unicode_to_keyval() provides a non-deprecated way of getting an
approximate translation for a key.) 

あちこちに鬼門があるな...何が真実なのかワケわかんなくなってくる(^^;

GdkWin32の実装ならば,これでも動くといえば動くが...

つか:

よく考えると, filter_key_press の仕様そのものに問題があるような気もするが...

ってことで:

とりあえずよくわかんね(ぉ
もうちっとよく考えないことには...


肉の日

結局大したものはリリースできそうにない. すまん... > zoeさん

なんとか次の肉の日には...


メッセージ

送った.我ながら,こんな些細な事に対して,しかも自分の事を棚に上げて, 大袈裟な指摘だとは思う.しかし,今回だけは急がねばならないと思ったので... ご無礼をお許し下さい > 関係者の方々


The Glib Object system

0.7.0まで進んでる...



2003年07月27日() 旧暦6月28日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

imime

微妙な修正とか,テストコードの追加とか. 標準ウィジェットだけではテストケースとしては不十分のようなので,オリジナルウィジェットも 書く予定(これも本家に提案できるくらいのクオリティを目指すつもりでやろう,うん).

妄想メモ もちょこっと修正



2003年07月28日(月) 旧暦6月29日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

GUI Toolkits for The X Window System

Freshmeatにスレが立ってた.

おいらの好きそうなネタだ(わら

GTK:

GDKバックエンド部分がダイナミックローディングになって, 状況に合わせて勝手切り替えてくれると嬉しいんだけどな.

まあGTK+層にも一部ウィンドウシステム依存な箇所があるので,そんなに単純じゃないけど.

speed improvements:

はぁ?

まあでも:

一応国際化はスバラシイし,そこそこどんな環境でも動くし, 言語バインディングもイパーイあるし,何だかんだ言っても良くできてるよな.

Win32 port unstable:

確かに胸を張って安定してるとは言えんだろうけど,おいらはそこそこ常用してしまって いるけどなぁ.昔のマシンだと遅すぎて死ねるけど.

Qt:

洗練度と完成度から言えばもう勝負あったという気はしないでもない *1 .ドキュメントの質の点でも.

やっぱり1次ドキュメントがしっかりしてないと,あちこちで悲劇を生み出すよ...

GTK+/GNOMEは良い意味でも悪い意味でも素人臭い *2 気がする. Qt/KDEは良い意味でも悪い意味でも玄人臭く,楽ではあるけど,ある意味退屈.

Tcl/Tk:

あまりプログラムが書けなかった *3 頃は良く使ってた. いい加減邪魔なので全部GTKに置き換えたいなぁ.

って,もう既に全部置き換えちゃってるかも. 消しても支障無さそう?(わら

*1: オープンソースの場合は「明確な死」が無いので,もっと長期的な視点で見ないと なんとも言えないけど.統合デスクトップ環境も然り.
*2: 玄人なら簡単に諦めてしまう(KPartsの諦めっぷりとか)ような事に果敢に挑戦しては 四苦八苦しているという感じ.
*3: 今は書けるのかと言われると,藁ってごまかす鹿

前にも何度か書いてるけど

おいらコンピューター嫌いなのですよ.


何も手につかない

とりあえず,メンテナンスを約束してる奴から片付けていかないとなぁ...



2003年07月29日(火) 旧暦7月1日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

うぉ!

Graz工大からアクセスが!

いや,なんでこんな事で驚くのか,誰にも分からんだろうけど(w


風博士

肉の日なのでリリースした.

prefs.js:

が保存されないというバグを見つけてたのだけど,肉の日なので焦ってリリースしてしまった. リリースしてすぐ直ってしまった(TOT

まぁ:

zoeさんじゃないので次の肉の日を待たずにリリースするかも.



2003年07月30日(水) 旧暦7月2日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

2003年07月31日(木) 旧暦7月3日 [n年日記]

体重:?Kg 体温:?度 睡眠:?時間

風博士

設定ウィンドウを一通り動くようにした.


GtkIMMultiContext

gtk_im_context_set_use_preedit() で use_preedit=FALSE にしても IM を変えると 元に戻るのはやっぱりバグで,GtkIMMultiContext でフラグを持つべきだという話が gtk-i18nリストで出ている.


この記事へのツッコミ(全3件) [ ツッコミを入れる ]

Re: GtkIMMultiContext by 岩本一樹    2003/07/31 01:45
やはりそうでしたか。 でも仕様が直るまではuse_preedit=FALSEが使えないことには変...
Re: GtkIMMultiContext by あほ    2003/07/31 02:22
> GTK+がText maidみたいにカーソルの上にウインドウを出して表示すべきだと 私も...
Re: GtkIMMultiContext by あほ    2003/07/31 03:16
set_cursor_locationなんかもGtkIMContextでデフォルトの実装を持っていて 良いような...

翻訳の更新

なかなか進まない.