灯台下暗し -カッターナイフで恐竜を腑分けした記録-

仕事で携帯向けアプリを書いて、趣味で携帯電話を買い、趣味で同人小説を書いて、何もしていません。

誰かが一頑張りするべきとき

2005-05-19 01:05:55 | Mozilla
今、[Bug 157967] Make Gecko interoperate better with advanced typography systems such as ATSUI, Uniscribe, Pango & STSF で大事で面白い話をしています。ここで日本語を話す人が参加しないと、近い未来の Firefox/Thunderbird のα版で日本語が表示できなくなるかも知れない話を。

討論の題名は、Windows や Linux 含め UNIX や Mac OS X での文字表示の国際化をプラットフォームの機能を生かすものに変えよう、という意味です。変えればいいじゃないか、と言うだけなら簡単な話です。かなり作り直しが必要で滅多にできることではなく、いざ作り替えようとなった今こそよく考えなければならないんです。本当に、作り直しなんですよ。

ここで、説明のために意味のとれない一段落を置いてみますね。

This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. This is a pen. This is aペン. ...

上の段落を現在の Firefox/Thunderbird が表示するときには、改行しそうにない位置で分割して文字列の幅を求めて行を折り返しています。まず決められたフォントで "This" がどのくらいの幅になるかプラットフォームに確認して、空白を入れて、次に "is" がどのくらいの幅になるか確認して、"a" がどのくらいの幅になるか確認して、そのまま "pen" を横に書けたらいいけれども画面の端(あるいはテーブルの端)に来ているようだと改行してから "pen" の幅を確認して。

この方法は簡単だけど、それで正しく表示しようとすると Firefox/Thunderbird が世界の言語にかなり精通していないといけない訳です。まず改行していい位置も変わります。"pen" の途中で改行するとおかしいけれども「ペン」の間には改行が入れられますから、その違いを知っていなければなりません。さらに空白の開け方・詰め方が変わります。「aペン」を日本語で書くときには "a" と「ペン」に微妙に空白を入れたいですが、それを Firefox/Thunderbird が知らないと空白を開けられません。そんなこんなで、ある程度読めるようにするには楽だけれど、きれいに表示しようとすると地獄の道です。実際、あんまりきれいに表示できていません。

そんな話を、現代のデスクトップシステムはプラットフォームが持っています。Windows なら Uniscribe、Linux 含め UNIX では GTK+ 上の Pango、Mac OS X では ATSUI、という機能がそれを受け持ちます。これらは大体似た作りをしています。少なくとも一段落全てを先にプラットフォームに渡して欲しいということです。

先の段落だと "This is a pen. This is aペン. This is a ..." をプラットフォームに渡します。すると「a と pen の間に改行をいれて、a と ペン の間に空白をいれて...」とひとしきり考えた後、結果全体をアプリケーションに返します。アプリケーションはその結果を全部覚えておいて、後で表示するときに使う、というのがマナーです。

「This の幅がこれで、is の幅がこれで...」と動かしたらどうなるか。プラットホームは一応は文句言わずに動きますが、とても遅いです。それは嫌がらせじゃありません。段落全部任せてくれるときと同じように考え込んでしまうのです。

現状の Firefix/Thunderbird はいわば単語ごとの幅の確認しかしないのを、段落を一気に計算する動きに変えないとプラットフォームの国際化機能は使いこなせません。その話がようやく動き始めました。

しかし日本からコードを書いたり少なくともこの話に参加する人がほとんどいません、これはとても危険なことです。正直な話、欧米のプログラマに日本語は読めません。日本語が読めないプログラマが日本語の表示のバグに気付くことはありません。無料のソフトウェアだから「日本人は金持ちだから日本語に対応すると売れるぞ」という動機も発生しないので、もともと言葉を知っている人がプログラミングしないと勉強してプログラミングしようという気もなりません。

すると、チェックは欧米の言語だけになされて、日本語を表示してみたらダメダメだったということが起きても全く不思議はないんです。このままでは。

日本人プログラマだって他の言語で起きるバグは分からない訳ですから他人のことをとやかく言えませんし。

私は気持ちだけあるのでにわか勉強中。しかし追いつける方が不思議です。今はまだ、アジるだけ。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Volari には NVIDIA DVD Decoder が似合う

2005-05-17 22:51:20 | Weblog
これがしゃれになりません。

気がつけば NVIDIA DVD Decoder の要求システムが


  • NVIDIA GeForce™シリーズ、GeForce FXシリーズ、またはGeForce 6 シリーズなど、DirectX Video Acceleration (DXVA)互換性のグラフィクスプロセッサをサポート



と、nVidia 製でない GPU をサポートするものに改められていました。

NVIDIA DVD Decoder のすばらしい点は


  • Microsoft Video Mixing Renderer 7および9



なので、前口上が本当ならとっても Volari 向き。

早速インストールしてみたら、動くわ、きれいだわ。食わず嫌いを直して損のないソフトです、Volari ユーザにとって。PowerDVD 6.0 Deluxe なんかで喜んでる場合じゃありませんでした。

インストールしてみろ。とにかくインストールしてみろ。(30日間は無料お試しができるのでご安心を)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

作り話「浪人生、落第生」、「人形の懺悔」追加

2005-05-15 22:45:51 | 同人誌
フィクション置き場 (フィクション置き場(WAP 版)) に、作り話を二つ追加しました。


浪人生、落第生
説教、その一。高校生が読むには不道徳なプロットにしてしまいました。
人形の懺悔
説教、その二。フィクションとして読むぶんにはロボット三原則が嫌いで、破るとしたら第三条からと決めていました。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

CGI を復旧させるのに技術が足りず

2005-05-15 21:56:20 | Weblog
WWW 公開者としての底が浅いことに気付かされる出来事が終わりました。サーバのハードウェアトラブル以来止まっていた私設 BBS を復旧させられなかったんです。

BBS を実現するソフトのデータ構造を全く把握していなかったんです。CGI の中で RuBBS というソフトを使っていました。それを間借り(ユーザアカウントだけ発行してもらって)していた OpenBSD (すみません、バージョン忘失)上で動かしていたのに、過去記事が BerkeleyDB 1.85 (Hash) で保存されていたことを全く知らなかったんです。

ハードウェアトラブルでシステムが入れ替わったときに間借りした Debian Linux のマシンにスクリプトと過去記事データを入れたら、BerkeleyDB のフォーマットが古すぎて読めませんでした。読もうとすると libc5 のインストールからスタートという事態になってしまって...

技術的にも資源的にも私の手持ちは解決には足りませんでした。BerkeleyDB というフォーマットを初めて認識しましたし、読む環境を作ろうにも遊んでいるマシンがありません。時間とお金をやりくりして VMware Workstation 4.5.2 のゲスト OS に SuSE Linux 9.2 (FTP 版)をインストールして、教えてもらった Perl スクリプトで動かそうとしたら、DB_File がファイルの読み込みに失敗しました。するとファイルの破損と環境の不備の両にらみで問題を切り分けなければなりませんが、私にはもう無理です。

過去記事の復旧をあきらめ、大きな顔をすることもあきらめました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

気丈な人です

2005-05-10 22:33:16 | Weblog
飲みに誘ってくださってありがとうございます。健一さんの写真を撮ったカメラの 2m ぐらい後ろに私がいます。

その時 JAYER さんに Blog を書き始めたことを教えてもらいました。

JAYER さんはいつものように気勢が良かったので元気な人だと思っていたら、Blog には現状のつらさを口にしているのを見て、違う姿を見た気がします。何も見ていなかったと自分が情けなくなります。
コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Volari ユーザは Media Player Classic を使うべし

2005-05-07 16:57:31 | Weblog
DVD-Video を PC できれいに見たい、そんな普通の感情を「専用回路があるようだから」と XGI Volari V8 で叶えようとしたことから要らない苦労が始まりました。今日はとりあえずのまとめ。

Volari シリーズに登載されている Cipher Video Processor (PDF ファイル)にはデインタレース機能(家電の液晶テレビで I/P 変換と呼ばれる機能)が搭載されていることになっていますが、皆がつまずくのは DVD プレイヤーソフトが対応してくれないこと。だから無かったことになるか誇大広告という扱いになります。

調べてみると、コツさえつかめば使えるようになります。

「Windows の動画再生補助機能は DirectX の DxVA (Video Accelelator)が統一することに Microsoft が決めていて、対応していなければ無いのも同じ」と言われますが、DirectX にハードウェアデインタレース機能をサポートする API があります。ただし VMR9 からの機能として。VMR9 は名前の通り DirectX 9 からの機能ですが、その上 XP でしか利用できず、トラブルを起こすマシンの方が多いくらいなので、大抵の DVD プレイヤーでは使わない設定になっています。そこを、いかに強引に VMR9 を使用させるかです。

簡単で確実なのが Media Player Classic を使うことでした。Windows Media Player 6.4 をパクったと見なされるソフトですが、設定項目に細かいところが多いのがいいです。とりあえず設定してみて、うまくいかなければ戻すことができます。

私の元でうまくいったのは次の環境

Video Card: XGI Volari V8 256MB AGP
Video Driver: Volari-ReactorDriver-XP 1.08WHQL
MB: ASUS A7N8X-E Deluxe (nVidia nForce 2)
GART driver: 4.36 WHQL (nForce Unified Driver 5.10)
MPEG2 decoder: PowerDVD 6.0 Deluxe
Player: Media Player Classic 6.4.8.4 (en)
CPU: Athlon XP 2600+ (1913 MHz)

Media Player Classic "Options" -> "Playback" -> "Output" の設定
DirectShow Video: VMR9 (renderless)
"VMR7/9 (renderless)" & "DirectX 7/9" settings: Use texture surfaces and render video in 3D
Resizing: Bilinear
Lock back-buffer before Presenting: ON (変更した記憶無し)

要するに DirectX 9 を目一杯欲張った設定です。

(プログレッシブでない)DVD-Video を再生してみると、そこそこいいデインタレースをします。動いているところは甘めですが、歌番組の字幕ではコントラストの高い表示をします。Cipher Video Processor は Volari V3XT 以上なら搭載されているので、私の場合には Volari V8 を買う必要はありませんでした。でも、そんな人なら普通はオンボードビデオを使うんでしょうね。

ビデオカードを買い直さなくて済みました。

[追伸]
すみません、よく調べずに嘘をつきました。

> VMR9 は名前の通り DirectX 9 からの機能ですが、その上 XP でしか利用できず

VMR-9 は DirectX 9 がサポートするプラットフォームなら XP でなくとも利用できます。XP でしか利用できないのは VMR-7 でした。
Features of VMR
(2005-05-08 01:00)

[追伸 その2]
すみません、嘘ついてばっかりです。

ハードウェアのデインタレース機能は、VMR-9 だけでなく、VMR-7 でも利用できます。
Setting Deinterlace Preferences

ということは VMR-7 を使える (Microsoft 純正) Windows Media Player でも理屈としては大丈夫なわけで。

この記事そのものが勘違いだったということ、だろうなあ。

でも、Windows Media Player 10 で動かしてみると、上記のマシンで FPS が 30 を切っているような...
(2005-05-08 01:18)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする