秋葉原に行ったが、なぜか日曜恒例の歩行者天国がやっていない。雨が降っていたわけでもないのにどうしたのだろうと思っていたのだが、もしかしてタトゥーのプロモーションビデオのゲリラ撮影を防止するためだったのではないだろうか?(参考)
RIX という会社の USB 2.0 HUB (型番 RX-PF2H4V) を \1,980 にて購入。2年ほど前の製品らしいが USB 2.0 HUB でこの値段はなかなかないだろう。セルフパワーモード専用というのがちょっと気になる点ではある。パッケージ裏の説明文で、内蔵を内臓と表記している(しかも3ヶ所も)のが間抜けである。動作チェックはまだしていない。
密かに(?) bsscroll.pl をバージョンアップ。まともな Perl の解説書が手元にないので少々苦労している。まともな解説書を1つ買っておくべきか?
J2SDK 1.4.2 が公開されたので早速インストール。Win95 は動作保証外だが、一応動いているようである。NetBeans 3.5 がバンドルされたバージョンも公開されていた。こちらも試しに入れてみた。インストーラで文字化けが発生していた。J2SDK のインストール先を変更できないのが気になった。Sun ONE Studio とは違って fastjavac は同梱されていなかった。NetBeans 3.5 をインストールした目的は、fastjavac の最新版が含まれているかを確かめることだったので、全くの無駄になってしまった。
昨日の Mozilla 1.4 RC1 以降で BackSpace で逆スクロールできるようにする方法を Perl を使って自動化してみた。Perl を使ってプログラムを書いてみたのは今回が初めてなので少々苦労した。できあがったのが bsscroll.pl である。Perl, zip32.exe, unzip32.exe に Path を通しておき、bsscroll.pl を Mozilla インストール先の chrome ディレクトリにコピーしてから、コマンドラインから perl bsscroll.pl を実行すれば、それだけで、BackSpace による逆スクロールが使えるようになる。(必要に応じて XUL.mfl を削除する必要があるが。) Mozilla は 1.5 から Mozilla Firebird をベースとした物になるので、一体どれだけの期間このスクリプトが有効か、甚だ疑問であるが、とりあえず、Mozilla 1.4 の正式版に対しては、このスクリプトは使えるだろうと信じている。(少なくともそうでなければ苦労してスクリプトを書いた意味がない。)
Mozilla 1.4 RC3 を DL してきた。BackSpace に関する userHTMLBindings.xml の記述が無視されるのは、RC2 と同じだった。印刷すると画像の色がおかしくなるのは、FinePrint という印刷に使っているソフトとの間の問題だったようである。ただ、Mozilla 1.2 まではこのソフトを使っても問題はなかったのだが。
BackSpace で逆スクロールできるようにしようとしたのだが、この前と少し違うことをしようとしたら罠にはまってしまった。そこで再度やり方をまとめておこうと思う。拙作の undll.exe を zip32.exe, unzip32.exe にリネームした物を用意して、コマンドラインから以下の手順で実行すればよい。なお Mozilla をインストールしたディレクトリを %Mozilla% として表記してある。
%Mozilla%> cd chrome %Mozilla%\chrome> unzip32 -x comm.jar comm\ %Mozilla%\chrome> (エディタで comm\content\navigator\navigator.js を編集) %Mozilla%\chrome> cd comm %Mozilla%\chrome\comm> zip32 -r -0 ..\comm.jar *.*
あとは必要に応じて XUL.mfl を削除してから Mozilla を起動すればよい。しかし、sed などを使えば、エディタで navigator.js を編集する部分も自動化できそうな物だが・・・。
Mozilla 1.4 RC2 でも印刷すると画像部分が水色っぽく変色するのはそのままだった。このバグは一体いつになったら直るのやら。
Mozilla 1.4 RC2 で BackSpace による逆スクロールができないかを引き続き調べてみた。cmd_handleBackspace の処理がどこで行われているか調べてみると、chrome/comm.jar!/content/navigator/navigator.js の BrowserHandleBackspace() で行われていることが分かった。BrowserHandleBackspace() の中に
if (!typeAhead || !typeAhead.backOneChar()) { BrowserBack(); }
という記述があるので、
if (!typeAhead || !typeAhead.backOneChar()) { //BrowserBack(); goDoCommand("cmd_scrollPageUp"); }
と書き換えたところ、BackSpace で逆スクロールができるようになった。ここで注意すべきなのは Mozilla を起動する前に XUL キャッシュを削除しなければならないという点である。XUL のキャッシュはプロファイルディレクトリ内の XUL.mfl というファイルである。XUL.mfl を削除しないと、上記の変更が反映されないのである。また、当然、comm.jar を解凍して中のファイルを変更したら、それを再度 comm.jar にアーカイブしないと変更は反映されない。(なお、chrome ディレクトリ内の *.jar ファイルは無圧縮の zip アーカイブである。) 再アーカイブするのが面倒なときは、comm.jar を chrome/comm ディレクトリに解凍して、chrome/chrome.rdf の中の
c:baseURL="jar:resource:/chrome/comm.jar!/content/navigator/"
などといった記述を
c:baseURL="resource:/chrome/comm/content/navigator/"
と書き換えるとよい。こうすれば解凍されたファイルを書き換えるとそれがそのまま反映されるようになる。(当然 XUL キャッシュのクリアは必要だが。)
なぜ BackSpace による逆スクロールにこだわるのか書いておこうと思う。普通は画面のスクロールには PageDown/PageUp (ROLL UP/ROLL DOWN) を使うだろう。しかし、キーボードによって PageDown/PageUp のキー配列は違っていたりする。まず、PC-98 は ROLL UP/ROLL DOWN は左右に並んでいるが、AT 機のフルキーボードでは上下に並んでいる。すっかり PC-98 に慣れてしまったので、AT 機の配列はいまだに違和感がある。さらに FIVA などの小型ノートなどでは、Fn + ↓/↑ というように複数のキーを同時に押さないとならなかったりする。同時押しをしないといけないだけでも面倒なのに、Fn + ↓/↑ だと片手では押せないのでますます不便である。やはり、画面のスクロールはキー1つでできるのが理想である。その点、Space/BackSpace による画面スクロールは、どんなキーボードでも(HHK などごく一部の特殊な物を除いて)キーの位置は変わらない上に、複数のキーの同時押しもする必要がないという点で非常に都合が良いのである。また、指をホームポジションからほとんど動かす必要がないというのも重要なポイントである。Mozilla 1.3 以降では IE の真似をして、Space/Shift+Space によるスクロールもできるようになったのだが、やはり同時押しが必要というのは面倒である。何より致命的なのが、Linux, FreeBSD などでは Shift+Space が日本語入力の ON/OFF に使われているため、逆スクロールには使えないという点である。このように各種のキーボード、OS で全く同じように使える Space/BackSpace によるスクロールは非常に便利なのである。
Mozilla 1.4 RC2 を DL してきた。1.4 RC1 で BackSpace による逆スクロールができなくなっていたのはそのままだった。chrome/comm.jar!/content/navigator/platformNavigationBindings.xul (mozilla ディレクトリ内の chrome/comm.jar アーカイブ内の content/navigator/platformNavigationBindings.xul) を見てみると、
<!-- Supporting IE forward and back accelerators out of courtesy to transitioning IE users --> <!-- Backspace is also used by type ahead find --> <key keycode="VK_BACK" command="cmd_handleBackspace"/> <key keycode="VK_BACK" command="Browser:Forward" modifiers="shift"/>
という記述が見つかった。"type ahead find" というのが何なのか分からなかったが、"type ahead find" と「戻る」を cmd_handleBackspace で処理しているようだ。この行をコメントアウトしてみたところ、BackSpace を押しても前のページには戻らなくなった。しかし、userHTMLBindings.xml の記述は無視されているようで、BackSpace を押しても逆スクロールはしてくれなかった。
"type ahead find" が何なのかが分かった。Mozilla の画面内でそのまま文字を打ち込むと、その文字列を含むリンクを検索できるという機能である。もちろん、リンクを検索した状態で Enter キーを押せばそのままリンク先に飛ぶことができる。インクリメンタル検索になっており、当然 BackSpace が使えるようになっている。なかなか便利そうな機能である。1.4 からの新機能かと思ったのだが、1.3 にもこの機能は既に搭載されていた。
FIVA の ATOK が直った。省入力候補機能に使われている、ATOKRH.BIN に問題があったようである。DOS モードで削除したところ無事に動作するようになった。ATOK を再インストールした際には、正常に動作している ATOKRH.BIN をコピーしていたはずなのだが・・・。
以前から気になっていたことを調べてみた。やはり「クロックアップ」は和製英語だったようだ。ということで、ファイル名も変更。
Sun ONE Studio 4 update 1 (旧称 Forte for Java)と J2SDK 1.4.1_03 を DL してきた。Sun ONE Studio 付属の fastjavac は build #532 となっており、手持ちの物(build #531)よりも新しかった。Sun ONE Studio 自体は Celeron 700MHz でも重かったので使う予定はない。今まで通り、fastjavac だけを使わせてもらうこととしよう。
なんだか FIVA の ATOK の様子がおかしい。「変」と入力しようとしたら、ATOK が落ちた。正確には、「hen」と入力し、画面には「へn」と表示された次の瞬間、ATOK が落ちた。他の言葉では問題ない。辞書が壊れたかと思い、正常に動作している辞書を上書きコピーしたが、症状は改善されない。ATOK を再インストールしてみたが、それでも直らない。変だ。
AT 互換機のマザーボードを1枚購入。ABIT ST6E。
UIDE-133/98-A 到着。とりあえず箱を開けて中身を確認しただけ。
Nr 用の純正 HDD マウンターが \300 で売られているのを発見。外ねじにも対応していたので、とりあえず1つ確保。I-O DATA HDNb-2G のケースの方がしっかりしている。
Nr15 をしばらく使ってみた。バッテリーの持ちは 40〜50分程度だった。使っている途中に突然動作が止まってしまったり、メモリカウントが途中で止まってしまったりすることがあったりと、少々動作が怪しい。困ったことだ。
「PC-9801 解析マニュアル[第0巻]」という本が大学の図書館の廃棄本コーナーに置いてあった。発行は 1983年。20年も前の本だった。PC-98 は互換性が高いとはいえ、さすがに古すぎて役に立たなさそうだったが、ただなのでとりあえずもらっておいた。読んでみると、ところどころに時代を感じさせるような表現が出てくる。BIOS の解説だけではなく、当時の PC-98 に使われていた各種 LSI の仕様まで載っていたのは面白い。
Mozilla 1.4 RC1 で BackSpace による逆スクロールができなくなってしまった。userHTMLBindings.xml などをいろいろいじってみたが、うまくいかない。バグなのか、仕様変更なのか? どちらにしろ、これは重大な問題だ。
先月の spam メールの集計結果。まず、着信拒否となった spam は、おそらく 100〜200通程度。着信拒否にならなかった spam は 289通。そのうち Spam Mail Killer で削除できたものは 259通(89%)。4月の spam 削除率が 75% だったことを考えると先月の 89% という値はかなりの進歩であるが、それでも削除できなかったものが 31通もあるわけで何とかしたいところである。誤削除をゼロにしつつ、spam の削除率を上げるのはなかなか難しい。誤削除がゼロでなくても良いのなら、簡単に spam 削除率を上げることも可能だが、やはりそれは良くない。
秋葉原に行ったところ、偶然にも PC-98 界の有名人 M 氏と遭遇。