この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2004年8月)

2004年8月2日

台風10号 初回投稿日時: 2004年08月02日00時41分06秒
最終更新日時: 2004年08月02日00時41分36秒
カテゴリ: 雑談
固定リンク: id=2004080201
リンク元: 0件
SNS: (list)

なかなかにすごい台風だったようで、吉野川を含む近所の河がかなり増水していました。

昨日は今年に入ってから導入したBSデジタルでは初めての電波障害が発生して、アニスパにゲスト出演していたJAM Projectのインタビュー部分がバッサリ……。 やはり、ラジオのインフラとしてもっとも強いのはインターネットラジオかもしれません(BSのラジオも映像付きというアドバンテージはありますが、それなら低ビットレートでもっと動くラジオの方が良いかもしれません)。

2004年8月8日

VMWare購入 初回投稿日時: 2004年08月08日01時07分01秒
カテゴリ: Software
固定リンク: id=2004080800
リンク元: 0件
SNS: (list)

VMWareを購入しました。このソフト、IEの各バージョンのテストに使えるので、前々から欲しかったんですが、MozillaのIMEのテスト環境整備を兼ねて購入に踏み切りました。

実際使ってみると使用感はRealVNCよりも軽くてストレスは全くなし(Athlon 2800+、メモリ1G)。あとはWin9xを手に入れるだけです。

Bug 3618 overflow: auto|scroll;のスクロールバーはキー、マウスホイールで操作できない 初回投稿日時: 2004年08月08日11時52分32秒
カテゴリ: Mozilla Core
固定リンク: id=2004080801
リンク元: 0件
SNS: (list)

MozillaのUIに関する重大なバグだった、このバグも、ようやく修正された。

このバグの修正のおかげでページ全体をoverflow: auto;等と指定しているサイトでもホイールを使ったスクロールが可能となった。

2004年8月9日

Bug 3618 overflow: auto|scroll;のスクロールバーはキー、マウスホイールで操作できない #2 初回投稿日時: 2004年08月09日00時17分41秒
最終更新日時: 2004年08月09日00時30分23秒
カテゴリ: Mozilla Core
固定リンク: id=2004080900
リンク元: 4件
SNS: (list)

昨日のこのバグの修正に副作用がある模様。

良い方ではLocation barのドロップダウンリストもホイールでスクロールできるようになっている(Bug-org 97283で言及あり)。また、リストボックスやTEXTAREA要素にフォーカスを合わせなくてもホイールでのスクロールができるようになった。

それに対して、Bookmarkの各フォルダにあたるサブメニューではホイールで内容が少しだけスクロールされてしまうようになった。また、コンボボックス等のドロップダウンリストが表示されている時に、そのドロップダウンリスト以外の場所でホイールを回すと、ドロップダウンリストがスクロールせずにこれが閉じて、そのマウスのポイントしている領域がスクロールされるようになってしまった。

2004年8月10日

MSNメッセンジャーでhttpプロトコルのURLをクリックしてもMozillaが起動しない 初回投稿日時: 2004年08月10日22時48分43秒
カテゴリ: IE Mozilla Core Software
固定リンク: id=2004081000
リンク元: 0件
SNS: (list)

MSNメッセンジャーでURLをクリックすると強制でIEが起動してくるので、ぐぐってみると、詳細に調査されたページを発見

Mozillaとしては.htmの関連づけをきちんと行っていないのでこの問題が発生している模様。バグとしてあげるべきか……

2004年8月12日

空白類は圧縮されます 初回投稿日時: 2004年08月12日20時30分34秒
カテゴリ: HTML
固定リンク: id=2004081201
リンク元: 0件
SNS: (list)

素人さんですか?

<LI>「ほげほげ.rar                                    .exe」や
ほげほげ.zip                                    .exe」のように、
間に長いスペースを加えることによって、

2004年8月14日

Bug 3859 標準のブラウザにしたとき、スタートメニューのコンテクストメニュー設定に non-ASCII を設定すると文字化けする 初回投稿日時: 2004年08月14日00時47分43秒
カテゴリ: Firefox
固定リンク: id=2004081400
リンク元: 0件
SNS: (list)

日本語化されたFirefoxをWindowsXP上でデフォルトブラウザにした際に、スタートメニュー(非クラシック)上のコンテキストメニューにある"Firefox Options"にあたるメニューが文字化けするというバグ。

ANSIしか扱えないが、とりあえず修正された。

Unicodeへの本格対応はMZLUが実装されてからとなるが問題は無い。

Bug 3846 デフォルトブラウザ設定時に DDE が適切に設定されない 初回投稿日時: 2004年08月14日00時56分31秒
カテゴリ: Firefox
固定リンク: id=2004081401
リンク元: 0件
SNS: (list)

Firefoxがデフォルトブラウザに設定される際にDDE設定が修正されないため、その前のブラウザの設定がカス残りしていた問題。

修正されたが、初期値が"%1",,0,0,,,,となってしまったため、外部アプリケーションでリンクをクリックした際に、そのURLは新しいウインドウで開かれてしまう。これを修正するにはComment 17にあるように手作業で設定を行う必要がある。

MozillaのDDEに関するより詳しい情報はNetscape4.x以前の資料を参考にして欲しい。Mozillaでは実装されていないトピックも多いので、注意。

Bug 3925 label要素内にフォームコントロールがある場合、そのフォームコントロールがフォーカスを得た時にlabel要素の指定するコントロールにフォーカスを移動させるべきではない(e-casioでクレジットカード払いしようとしてもフォーカスが奪われてフォームを設定できない) 初回投稿日時: 2004年08月14日00時59分39秒
カテゴリ: HTML Mozilla Core
固定リンク: id=2004081402
リンク元: 0件
SNS: (list)

アクセシビリティに関わるバグなので、Webページの作成者は注意。

2004年8月16日

絵文字フォントとHTMLの関係 初回投稿日時: 2004年08月16日00時48分48秒
最終更新日時: 2004年08月16日03時30分53秒
カテゴリ: HTML
固定リンク: id=2004081600
リンク元: 5件
SNS: (list)

最近、為になるような情報が全然無いので、えむもじらのシンボルフォントのまとめを技術的に解説して、少し、このWeblogに肉をつけておきましょう(笑)

最初に謝っておきます。ごめんなさい。Web標準普及プロジェクトに追記した内容は間違ってます。まだ文字コードにあまり詳しくない時に記述したので誤解を記述してました。こちらで書く情報の方が正確です。(訂正しておかなくては……)

では本題。HTMLというのはISO 10646、いわゆるUnicodeで処理すべきであることはもう説明の必要も無いかと思います。これに従うという意味合いと、アプリケーションの国際化のためにMozillaやOperaといったアプリケーションはUnicodeを処理基準として設計されています。それに対してlevelさんの検証結果を見る限り、IEはそのような設計ではないようです。じゃ、どういった設計なのかということですが、いまいちその詳細がパッと見では分かりません。しかし、最終処理であるテキストの表示処理は、Win32SDKでANSIと呼ばれるCPに依存した処理が行われているようです。つまり、日本語の場合はCP932、Shift_JISのWindows版で処理されていると思われます。

このように、IEの処理はいまいち分からないのですが、Mozilla/Operaの表示結果は非常に分かり易い素直な結果です。理由はこの後述べますが、Mozilla/Operaの表示が普通の結果です。では、levelさんが検証に使われたテストケースを引用しておきましょう。これを元に解説してみます。

<font face="Wingdings">JKL</font>

この例はUnicode変換を行うことで次のように記述しなおせます。

<font face="Wingdings">&#x4A;&#x4B;&#x4C;</font>

Unicodeにおいて、U+004AU+004BU+004CというのはBasic Latinにあたります。

さて、ここでWin32プログラミングについての話をしておきましょう。Win32プログラムはフォントの情報をWin32APIを介して取得できます。その中にフォントに含まれるグリフの情報を示すCharSetという情報があります。この情報は複数のフラグの組み合わせで取得することができ、その種類の中にISO 8859-1の文字列を表すANSI_CHARSET、(特殊)記号を表すSYMBOL_CHARSETというものがあります。

文字表示をUnicodeに完全に対応させるにはひとつのフォントだけで表示しようとするのは賢明ではありません。ひとつのフォントで全ての文字列を含んでいることはまず、無いからです。しかし、実用レベルで考えるなら、CharSet単位でなら、その範囲の文字を全て持っていると仮定できます(逆に言えば、そうでは無いフォントは使い物にならない)。これだけの情報があればWin32プログラムの文字表示の仕組みが分かってくると思います。

さて、話を元に戻してみましょう。上記例で表示しようとした文字はなんだったでしょうか? そう、UnicodeのBasic Latinです。これはCharSetで言うと、ANSI_CHARSETにあたります。上記例を表示しようとするロジックを机上でシミュレートしてみましょう。

まず、利用するフォントはWingdingsという指定があります。ここでプログラムはWingdingsANSI_CHARSETが含まれているのか確認する必要があります。すると、WingdingsANSI_CHARSET持っていません

Unicode対応のフォントビューアで確認するとわかるのですが、WingdingsBasic Latinにあたる領域に絵文字を持っているのですが、CharSetにはANSI_CHARSETのフラグを持ちません。つまり、Win32プログラムから見ると、このフォントはBasic Latinのグリフを持っていないのです。

では、シミュレーションを再開しましょう。Wingdingsが持っているフラグはSYMBOL_CHARSETですのでBasic Latinの表示には使えません。そこで、ANSI_CHARSETフラグを持つ別のフォントを探すことになります。この探すロジックはプログラミングに依存しますが、通常、ユーザが設定しているフォントをまず調べます。すると、普通、常用されるようなフォントはANSI_CHARSETフラグを持っているので、そのフォントを代替フォントとして利用し、描画を行うことができます。ほら、そうすると、Mozilla/OperaのようにJKLと表示されたでしょう?

なんだかノリが変になってきましたが、こういうことです。要約すると、

  1. 表示しようとした文字はANSI_CHARSETにあたる、"JKL"
  2. その表示に指定されたフォントはWingdings
  3. WingdingsはCharSetにSYMBOL_CHARSETしか持たない
  4. WingdingsJKLの表示には使えない
  5. 代わりのフォントを探すと、通常はアルファベットのJKLというグリフを持つフォントが見つかり、そのフォントで表示を行う

となります。

2004年8月17日

透過ウインドウがWindows2000以降でのみサポートされている理由 初回投稿日時: 2004年08月17日12時15分02秒
最終更新日時: 2004年08月17日12時18分11秒
カテゴリ: Mozilla Core Software
固定リンク: id=2004081700
リンク元: 0件
SNS: (list)

ところで、なんでWindows2000以降限定なのかというと、アルファ付きPNGやopacityによる半透明指定への対応のためなんでしょうな。

SetLayeredWindowAttributesをサポートしているのがWindows2000以降だからですね。

2004年8月25日

Re: Slashdottedではないけれど 初回投稿日時: 2004年08月25日02時20分56秒
最終更新日時: 2004年08月25日10時01分30秒
カテゴリ: WebStudio 雑談
固定リンク: id=2004082500
リンク元: 4件
SNS: (list)

中野さんの対処は、その当時のIEユーザーの気分を万人に味合わせるための策略だろうか(謎)

残すコンテンツの基準を単純にMozilla、特にBugzilla/Bugzilla-jpに関するものに絞ったためです。 コメント系は残す価値が少ないものが大半でしたし、技術的に価値のある(リンクが多かった)トピックは新たに、より濃く文書化しなおした方が良いだろうというのがその理由です(ごく一部に例外はありますが)。

かの騒動のトピックは残そうか、どうしようか迷いましたが、「今さら読むヤツいねーだろ」というのと、「我ながら熱くなってレスを返すターゲットの取捨選択に失敗してるなぁ」といった観点から削除することにしました。(ここがapplication/xhtml+xmlになっている理由を誤解というか、「何故」を調べようともせずに、IE弾きだとか的はずれな意見を言う人もいたし、それを前提に私にレスをつけたつもりでいた、さらに重症な人の文書もありました。そういった単なる誹謗中傷の文書をもう見たくもなかったというのも理由の一つですが。)

それはさておき、Webですから、リンク切れなんてのもある訳です。今回のように。 ですから、適度に引用していれば別に私の記事が残っていなくても追いかけられるのではないかと思います。 追いかけられないところは、適度な引用ができていない、ということで、文書の書き方がまずいように思えます。 元記事を見た筆者にとっては、自分の頭の中で引用できているために連続した話になっていたけど、筆者以外にとっては、その当時から読みにくかった文書だったのかもしれません。

それと、個人的にはリンク切れを管理しきれないリンク集を作るというのも至極無責任に思える今日この頃です。 リンク集を作る以上、公開している間はそのコンテンツに作者は責任を持つべきかと思います。(流石に文書中のリンク全てを、とは言えませんが、リンク集のように、リンクしていること自体がコンテンツの内容である場合はその管理が必要だと思います。)

2004年8月27日

2004年8月31日

4D++ ( 2 Wheels + 5 Buttons ) ドライバ Ver.7.64 リリース 初回投稿日時: 2004年08月31日12時32分17秒
カテゴリ: Software
固定リンク: id=2004083100
リンク元: 0件
SNS: (list)

A4 Tech社のWOP-35を使っているのですが、WinXP SP2ではブルースクリーンが出て起動すらしませんでした。今回のアップデートでそのバグが修正されてます。A4 Tech社のマウスを使っている人は要注意です。SP2をあてる前にドライバを更新しておきましょう。