随感録 (1999年7月)

 ふらふらと生きる日々。

1999.07.27(火)

 右手首が痛い。腱鞘炎みたい。とりあえず湿布で凌ぐ。

1999.07.26(月)

(2012.3) ページを分けて、加筆・修正しました; 親指シフト (NICOLA) の薦め

--
 epingle 0.4.2を試す。

  • epingle自体は国際化されてない。完成度もあまり高くない。
  • packの仕方がgtk+っぽくなく,座標を指定するタイプ。

 出来はgladeの方がかなり良い。

1999.07.24(土)

 井上さん<inoue@ainet.or.jp>という方からemacs 20用のXIMパッチをすでに書いている旨のメールをもらった。

http://www.ainet.or.jp/~inoue/software/emacs-xim/
から取ってきてみる。うーん,着想は私と同じながら,こっちの方がよくできてる。井上さんはパッチのエレガントさを気にしてるようだけど,独立に同じ結論に達したのだから,いいんでないかなぁ。

--
 昼に寿司屋へ行く。美味しいじゃない。美味しいお寿司ってほんとーーに久しぶり。一見さんお断りではないようだから場所を記すと,鳴尾御影線と宮川の交差点のところ。

1999.07.22(木)

 emacs 20.4のXIMパッチを書いた。20.3のときにも挑戦してそのときは失敗しているが,今回はうまく動くみたい。

 が,フォント設定が分かんないので,本当に動いてるかは不明だったり。入力中は化け化けなんだが保存すると大丈夫なんで,いいとは思うが,どうなんだろ。

--
 ふくらはぎが肉離れ気味。

1999.07.20(祝)

 Q's Nicolatter for Linux 0.9.4公開。

1999.07.19(月)

 近頃のPC上の出来事。

 Linux kernelを2.2.10にした。互換性が若干心配だったが,全然問題なし。プリンタが最初使えなかったが,カーネルにそれっぽいオプションを組み込んで再構築したらおっけー。明らかにネットワーク回りが速くなってる。これは良い。

 nicolatterのXEmacs問題は気にしないことにした。XFree86をhackして詳細なログを取るようにしても全然原因が分からなかったが,kinput2, xwnmoでも同様に問題が発生することが判明。こりゃ,きっとIM側の問題じゃないんだわ。

 nicolatterは私的にリリース(v1.0)基準に近づきつつある印象。すでに十分使えてるという話も聞く。

--
 乱歩を読む。100年も経ってないのに日本語が違う。

1999.07.18(日)

 最近は別に変わらない日常。朝から図書館へ行って,4,5時間勉強する日々。試験は8月3日,スケジュール的に苦しい。そろそろ真面目に仕事も探さないと。

 今日は元町でGパンを1本購入。私って基本的にスリムしか履かないんだが,最近スリムって流行らないのかなぁ,全然ないんでやんの。まぁ,適当に生地の薄いのを選ぶ。

1999.07.10(土)

 昨日は21:30ぐらいに眠ってしまったらしい。気づいたら6:30すぎ。外が明るくなっててちょっと驚いた。疲れてたのかなぁ?

 出かけるまで間があったので,メールチェックだけする。

 あー,linux-tech ML,まだワードラップの話(ではないが)続いてるよ。随分引っぱるなぁー。というか,考え直す必要があるとか議論する必要がある,とだけ言って,自分の意見を表明しないのは止めてほしい。

 私は実装の容易さも重視して,コンピュータでどのように処理するのが適当か,という視点で話しているのに,日本語の多言語的性質とか言われても困るし。

 検討したのは禁則処理の話。禁則処理といっても幅が広いが,一応,行のうちどこで折り返すことができるか決定する処理,としておく。

 最初はラテン文字の単語,数字など分割できない場所を決めるだけでいいんじゃないか,と考えた。マルチスクリプトな文字集合を内部表現に用いて,ラテン文字,数字,開き括弧などを表で持てば十分。

 Unicodeなら,General CategoryがLuまたはLlはラテン文字でこれが続くと単語になる。Ndは数字,Nlも数字。Psは開き括弧などでこの直後では折り返せない,Peは閉じ括弧など。

 しかし,1999.07.06に,はて,この方法を全世界の任意の言語に適用してもいいんだろうか? と疑問に思ったらしい。私は世界の言語に精通してるわけではないからそういう状況になりうるか知らないが,ある言語にとって相応しい禁則処理の方法が別の言語にとって望ましくない,ということもあるんではないか?

 なので,禁則処理の方法を一つにして常にこれを使うのではなく,ロケールによって切り替えるようにした方がいい。

 いきなりロケールで,と書いたが,ここは検討を要す。例を挙げる。

日本語の文章で突然
Das ist eine Frage schwer zu beantworten.
とかでてきたらどうする?

 2行目はどう見ても日本語ではないから,1, 3行目は日本語の禁則処理,2行目は日本語ではない何か(笑)の禁則処理を適用するのが望ましい。

 人間ならそれが何語で書かれているか,おおむね確かに判断することができるが,コンピュータに判断させるのは難しい。コンピュータがあらゆる言語の特徴,出現する語の辞書を持っていれば可能かもしれないが,フリーソフトでそういうのは寡聞にして知らない。

 文字から言語を特定できれば簡単だが,あいにく文字から言語を特定することはできない。例で2行目はASCIIの範囲しか使ってないが,英語ではない。

 なので,コンピュータが自然言語を理解できるようになるまで,人間がここからここまではこの言語と明示的に指定してやる必要がある。

 さて,どうやって言語を指定するかだが,国際化の枠組みならロケールによるしかない。別に他の仕組みを作ってもいいが,すでにあるものを使う方が手間が少ない。

 ロケールモデル,すなわち国際化の枠組みによる場合,テキスト全体で一つの言語しか指定できないという重大な制約があることに注意しないといけない。すなわち上記の例を日本語と指定すると,当然2行目も日本語とするしかない。もちろん,コンピュータの処理上日本語とするというだけで自然言語として日本語と主張するのではない。

 多言語の枠組みによる場合は2行目をドイツ語と指定できるが,その場合でも明示的に指定しなければならないことに変わりはない。

 で,ここまできてやっと日本語の禁則処理はどうしよう,という話になるんだが,それはまた今度。

1999.07.06(火)

 昨日の話。外出たとき,ゲームセンターでドラムのゲームが置いてあるのを発見。1回だけ,と思ってやってみる。

 凹んだ。

1999.07.04(日)

 図書館で『vi入門』が目に留まったので,ちょっと借りてきた。

--
 アダルトサイトで,実行ファイルをダウンロードさせて,国際電話を掛ける方法がある。たしか前にテレビでもこのネタを見たような。

 で,Windowsの場合,普通の実行ファイルもWebページに貼られたactivexコンポーネントも,いったん実行してしまえば何でもできるので,素性の不明なファイルは(どんなに有益かもしれなくても)実行できない。

 UNIXでも実行したユーザーのファイルを消すことができるから,程度の問題。システムのクラッシュはできないから,マシはマシだが。

 セキュリティ・ポリシー(*1)を定めて,実行するときにどのポリシーで実行するか選択できたらいいのに,と思う。そういうシステムってすでにあるのかもしれないが。

*1: 例えば,実行ファイルのあるディレクトリの子ディレクトリは書き換え可能,実行したユーザー所有のファイルは読み込みのみ可能,ネットワークアクセス不可,とか

1999.07.03(土)

 Linux版にこらった0.9.0を公開。主にローマ字入力関連を修正。1999.07.01

1999.07.02(金)

 QILM 2.62を公開。細かな修正。ところでこれ使ってる人っているの? 私的には重宝してるから別にいいんだけど,感想とか全く来ないのは寂しい。

--
 私がUnicodeやだなーと思う理由。

(1) 文字当たりバイト数が固定ではない。

 Unicodeは合字があるから,UCS-4でも1文字につき4オクテットとは限らない。ワイド文字が便利なのはどこで切っても大丈夫なことだが,ワイド文字コードとしてUnicodeを使うと,安心できない。

 UCS-2ではサロゲートペアがあるから,合字でなくても2オクテットでないことがある。

(2) statelessでない。

 Unicodeは言語タグ(*1)を使ってCJKを区別するので,バイト(=4オクテット)列から任意のバイトを取り出したときに文字を特定できない。Unicode的にはCJKは包摂されていてデザイン差と見なすという話もあるが,それはもっとダメ。

 ワイド文字コードとして使うためには,他に(3) 前後の文字によって字形が変わる場合でも異なるコードを与えてはならない,というのもあるんだが,Unicodeでこれがどうなっているかは知らない。

2000.03.06追記
 Unicodeはおおむね文字にコードを与えているので,これは大丈夫。互換領域は字形にコードを与えているものがあって,注意が必要。

*1: そもそもC欄,J欄,K欄というのは言語ではなく,地域なんだが。

1999.07.21追記
 C, J, K欄は地域でなく言語。日本で中国語をUnicodeで書くときC欄を使うし,逆も然り。JIS X 0208が日本語と限定できない(キリール文字などが含まれる)のと混同してたんだと思う。

1999.08.18追記。

2000.03.06追記。

1999.07.01(木)

 今日はLinux版にこらったのローマ字関連に手を入れた。

 にこらったのローマ字仮名変換は「kyo」->「きょ」のとき[Backspace]で「きょ」を消せるように,各音節の長さを記録している。ところが仮名漢字変換したときに音節の区切りと文節の区切りが一致するとは限らない。で,一致しないときは音節を分割するようにした。

 あとはCannaで長ローマ字(M式など)を使えるようにした。