ハングアップの日々

2004年 6月分

2004/06/29

 この前、カーネルデバッガをインストールして少し試用したりしていたが、単にドライバのデバッグメッセージを見るだけならば、DebugView を使うという手もあるようだ。ローカルや LAN 経由で使えるというのは良さそうだ。

2004/06/28

 Mozilla メーラーには以前から不満な点があったのだが自分で直してみることにした。Mozilla メーラーは、スペースキーや N を押すことで、未読記事を読み進めることができる。しかしどういう訳か、左のペインでアカウント(メールサーバ)を選択している時には、Space や N が効かない。これが非常に不満だったので、どんな場合でも Space や N で未読記事を読み進めることができるようにしてみた。
 Mozilla メーラーの UI は、chrome ディレクトリ内の messenger.jar というファイルに納められている。これを解凍し、grep などを使って怪しいところを探し出した。しかし、chrome ディレクトリ内にあるのは XUL コンポーネントだけである。XUL 以外のソースコードも参照する必要が出てきたので、http://lxr.mozilla.org/mozilla/ を使ってソースコードを調べた。
 結局 mail3PaneWindowCommands.js, mailWindowOverlay.js, msgViewNavigation.js の 3ファイルを書き換えることで、アカウントを選択している時にも Space や N が効くようになった。Mozilla 1.7 のメーラー用のパッチを公開しておく。(messenger_1.7_win.patch)

 昨日行ったサイトの完全移転作業の効果が一部ではあるがもう現れた。旧サイトの各ページには、Google の「個々のページを削除する」 にしたがって、ページの登録削除のためのメタタグを埋め込んだのだが、旧サイトの「ハングアップの日々」は既に Google から登録削除されてしまったようだ。(それ以外のコンテンツはまだ残っているようである。) おそらく純粋にタイミングの問題なのだろうが、24時間も経たずに更新が反映されたのには驚いた。

2004/06/27

 このサイトを完全に member.nifty.ne.jp から homepage3.nifty.com に移転することにした。しかし、せっかく 8月 31日までは member.nifty.ne.jp が使えるので、個々のページに移転通知を表示することにした。(たとえば、http://member.nifty.ne.jp/k-takata/mysoft/icc.html を表示すると、http://homepage3.nifty.com/k-takata/mysoft/icc.html へ自動的に飛ぶようにした。) しかし、HTML ファイルは 130個以上あるので手作業でやるのは馬鹿げている。そこでちょっとしたスクリプトを書いてみた。(sitemove.pl)

 ActivePerl 5.8.4 build 810 が公開されていた。とりあえず DL しておいた。

 このサイトのプログラムリスト等の部分を枠で囲って表示するようにしてみようと思い、style.css

pre.list {
    border-width: 1px;
    border-style: solid;
    border-color: #0066CC;
}

と書いてみたところ、NC4.8 では pre エレメント内が改行されなくなってしまった。これでは何のための pre エレメントだか分からない。@import を使って、NC4.x では枠を表示せず、それ以外のブラウザでは枠を表示するようにしてみた。
 Mozilla では、pre エレメント内にウィンドウの幅で収まりきらない行があると、枠の表示が変になるのがちょっと気になる。かなり前からのバグのはずだが、一体いつになったら改善されるのだか。IE だと枠はまともだが pre エレメント内のフォントが小さくなってしまった。謎だ。

2004/06/26

 Mozilla では、ほとんどのウィンドウは Ctrl+W で閉じることができるのだが、なぜかダウンロードマネージャだけは Ctrl+W で閉じることができない。(2ch を見ていると Ctrl+W で閉じれると主張している者もいるが真偽は不明。) 以前から不便に思っていたので、対策を調べてみることにした。download manager missing close window (ctrl + w) keyboard shortcut には一応対策が書かれているのだが、Mozilla 1.5 Beta 以降では使えないようである。
 いろいろいじった結果、対策が判明した。chrome\comm.jar 内の content/communicator/downloadmanager/downloadmanager.xul の先頭部分に

<?xml-stylesheet href="chrome://communicator/skin/"?>

<!DOCTYPE window [
<!ENTITY % downloadManagerDTD SYSTEM "chrome://communicator/locale/downloadmanager/downloadmanager.dtd">
%downloadManagerDTD;
<!ENTITY % downloadProgressDTD SYSTEM "chrome://global/locale/nsProgressDialog.dtd" >
%downloadProgressDTD;
]>

という部分があるが、これを

<?xml-stylesheet href="chrome://communicator/skin/"?>

<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>

<!DOCTYPE window [
<!ENTITY % downloadManagerDTD SYSTEM "chrome://communicator/locale/downloadmanager/downloadmanager.dtd">
%downloadManagerDTD;
<!ENTITY % utilDTD SYSTEM "chrome://communicator/locale/utilityOverlay.dtd" >
%utilDTD;
<!ENTITY % downloadProgressDTD SYSTEM "chrome://global/locale/nsProgressDialog.dtd" >
%downloadProgressDTD;
]>

に書き換えたらダウンロードマネージャでも Ctrl+W が効くようになった。ついでに Ctrl+Q も効くようになった。(downloadmanager_1.7_win.patch)

 Mozilla の chrome ディレクトリ内にあるファイルをいじってカスタマイズする際の注意点を書いておく。
 chrome ディレクトリ内にはユーザーインターフェイス (UI) を記述したファイルが納められており、ほとんどは .jar という拡張子が付いている。jar ファイルの実体はただの zip ファイルでこれを解凍すると、実際に UI を記述しているファイルが出てくる。*.jar を解凍した時に出てくる一番上のディレクトリは、content, skin, locale のいずれかになっているが、content 以下には動作やキー割り当てを記述したファイルが含まれており、skin 以下には見た目(スキン)を記述したファイルが含まれており、locale 以下には言語に依存したメッセージが含まれている。
 動作をカスタマイズするには content ディレクトリ内のファイルをいじればよい。content ディレクトリ内には、拡張子が .xul や .js などのファイルがあるが、基本的には、*.xul でキー割り当てやメニューの構成などを記述し、*.js で実際の動作を記述する。ちなみに Mozilla の動作の記述のほとんどは comm.jar に納められており、前述のダウンロードマネージャの動作もこの中に納められている。
 動作記述を変更し、それが意図したとおりに動作するかを確認するには、変更したファイルを圧縮して元の .jar ファイルの中に納めればよいのだが、動作記述を変更するたびにファイルを圧縮するのは面倒である。実はファイルを再圧縮せずにそのまま変更を反映させる方法がある。ここでは、comm.jar ファイル内のファイルを変更する場合を示す。まず、chrome ディレクトリ内に comm というディレクトリを作って、その中に comm.jar を解凍する。次に、chrome ディレクトリ内の chrome.rdf というファイルの中に、

  <RDF:Description RDF:about="urn:mozilla:package:communicator"
                   c:baseURL="jar:resource:/chrome/comm.jar!/content/communicator/"
                   c:locType="install"
                   c:displayName="Communicator Shared"
                   c:author="mozilla.org"
                   c:name="communicator"
                   c:localeVersion="1.7"
                   c:skinVersion="1.5"
                   c:hasOverlays="true">
    <c:selectedSkin RDF:resource="urn:mozilla:skin:classic/1.0:communicator"/>
    <c:selectedLocale RDF:resource="urn:mozilla:locale:en-US:communicator"/>
  </RDF:Description>

などと書かれている部分があるので、それを、

  <RDF:Description RDF:about="urn:mozilla:package:communicator"
                   c:baseURL="resource:/chrome/comm/content/communicator/"
                   c:locType="install"
                   c:displayName="Communicator Shared"
                   c:author="mozilla.org"
                   c:name="communicator"
                   c:localeVersion="1.7"
                   c:skinVersion="1.5"
                   c:hasOverlays="true">
    <c:selectedSkin RDF:resource="urn:mozilla:skin:classic/1.0:communicator"/>
    <c:selectedLocale RDF:resource="urn:mozilla:locale:en-US:communicator"/>
  </RDF:Description>

というように書き換える。c:baseURL="jar:resource:/chrome/comm.jar!/〜" という部分を c:baseURL="resource:/chrome/comm/〜" に書き換えるわけである。その後で、Mozilla のプロファイルディレクトリの中の XUL.mfl というファイルを削除してから、Mozilla を再起動すれば、動作記述の変更がすぐに反映される。ちなみに、XUL.mfl というファイルは、chrome ディレクトリ内の UI 記述 (XUL) をキャッシュしているファイルである。このキャッシュファイルは、*.jar ファイルに変更があった場合は、自動的に更新されるのだが、*.jar を解凍した状態では、個々のファイルに変更があっても自動的に更新されることはないようである。そのために、この場合は XUL.mfl を一度削除する必要があるのである。

 古本屋で「ページ記述言語PostScript チュートリアル&クックブック」という本を見つけたので買っておいた。姉妹本の「ページ記述言語PostScript プログラム・デザイン」もあったが、こちらは買わなかった。これらの姉妹本にはもう 1冊「ページ記述言語PostScript リファレンスマニュアル 第2版」というものもあるのだが、これは置いていなかった。ちなみに PostScript の言語仕様は、英語なら、PostScript LANGUAGE REFERENCE third edition が公開されている。

2004/06/22

 REX-CFU1 の実験のためにカーネルデバッガを使ってみることにした。La13 を実験マシンにしようと思い、これで試してみることにした。まず、La13 とホストマシンの Ls312 を RS-232C のクロスケーブルで接続する。接続には、以前自作した変換ケーブルを使った。次に、Win98DDK の src\pc98\bin にある wdeb98.exe を La13 の \windows\system にコピーする。ホストマシンでは rterm98.exe を実行し、La13 で wdeb98.exe を実行すると、メッセージが表示された。どうやら動いているようだ。ただ、通信速度はどちらのマシンも 115.2kbps に対応しているはずなのだが、最高でも 19.2kbps しか使えなかった。
 通信速度を変えたりして何度か La13 を再起動していたら、なぜか APM が正しく動作しなくなってしまった。これによって、バッテリーが認識されなくなり、サスペンドも使えなくなってしまった。
 よく調べると、再起動を高速に行えるようにするため、config.sys に HSB を組み込んだのが原因だった。HSB を外すと APM が使えるようになった。しかし、HSB を組み込んだといっても、環境を保存するために

device=hsb.exe VC Y-

としていただけなのだが。

2004/06/19

 TECH I Vol.21 「改訂新版 PCIバス&PCI-Xバスの徹底研究」 と C Magazine の 7月号を購入。TECH I Vol.21 は今までとは違って背表紙の色が青になっていたので、最初は気付かなかった。C Magazine は OS の作成について書かれていたのでおもしろそうに思って買った。

 Mozilla 1.7 をインストールした。2ch で左のフレームのリンクをクリックしても、右のフレームにリンク先ページが表示されなくなっていた。仕様変更があったそうだ。user.js に

user_pref("docshell.frameloadcheck.disabled", true);

と書いたところ、2ch がまともに見れるようになった。この設定が何を意味しているのかは知らない。

2004/06/18

 REX-CFU1 の素性を詳しく知る方法はないかと調べていたが、「デバイスマネージャにデバイス ID などを表示させるには?」というものを見つけたので試してみた。コマンドラインから

> set devmgr_show_details=1
> start devmgmt.msc

として実行したところ、確かにデバイスのプロパティに [詳細] タブが追加された。(上記ページでは set devmgr_show_details = 1 というように = の両側にスペースがあるが、実際には = の両側にスペースを入れてはいけない。) この方法は、WinXP 以外では使えないというのがちょっと残念である。
 実際に REX-CFU1 の詳細を調べてみると、cfu1_wxp.txt のようになった。

 Mozilla 1.7 をダウンロードした。インストールはまだしていない。

2004/06/15

 Firefox 0.9 をインストールしてみた。BackSpace で逆スクロールできるように、bsscroll.pl を使ってみた。全く修正することなくそのまま使えた。

2004/06/14

 Mozilla 1.7 RC3 をインストールした。

2004/06/13

 「チューニングのためのJavaVM講座」という記事を見つけた。なかなかおもしろい。
 -XX:+PrintCompilation や -XX:+CITime といったオプションで動的コンパイルの情報を表示させることができるそうである。java -help ではこれらのオプションは表示されないので、全く知らなかった。Java HotSpot VM Options に詳しい説明がある。

2004/06/10

 Sun ONE Studio はさらに Sun Java Studio と改称されていたようだ。Sun Java Studio の評価版を入手すれば、fastjavac の最新版が入手できるのではないかと思ったのだが、Sun Java Studio Standard 5 update 1 のダウンロードファイルのサイズが 200MB もあったので、DL するのは止めた。

2004/06/09

 Shunji 氏jFD の作者)の依頼を受けて、JF で使っている FastFile にパッケージ名を設定した。(詳細は jFD開発したりしなかったり日誌(2004-06-06) に。) Java では、パッケージ名として、ドメイン名を逆にしたものを使うことが推奨されているが、自分のドメインは持っていないので、メールアドレスを逆にしたものをパッケージ名にしてみた。しかし、パッケージ名を設定するとディレクトリが無駄に深くなってしまうのはどうも気に入らない。ディレクトリを掘らずにパッケージ名を設定する方法はないものだろうか。

2004/06/08

 Spam Mail Killer で 1件誤削除発生。削除されたメールはただのメールニュースなので痛手はなかったが。しかし、知人リストに登録してあるメールアドレスのはずなのに・・・。謎だ。

 久しぶりに Java プログラムを書くことになった。(本当は JF を何とかしたいところだが、今回は JF ではない。) CF-R2C でコンパイルしてみたが、javac を使ってもそこそこの速度でコンパイルしてくれる。(簡単なプログラムで 1〜4秒程度) しかし、もっと速くコンパイルできないものかと思い、IBM 製の高速コンパイラ jikes を試してみた。同じプログラムが 0.4秒程度でコンパイルできた。しかし、jikes を使う場合、-bootclasspath オプションを使って、Java のシステムクラスファイルの場所を指定しないといけないようである。コンパイルのたびにこんな長ったらしいオプションを指定するのは面倒なので、fjavac を jikes に対応させることにした。Sun ONE Studio (旧 Forte for Java)に付属の fastjavac は、もはや無料で入手することはできないはずなので、その点から見ても fjavac を jikes に対応させておくのは意義があるだろう。

2004/06/07

 TECH I シリーズ 新刊の Vol.21 「改訂新版 PCIバス&PCI-Xバスの徹底研究」 はおもしろそうだ。

2004/06/06

 TECH I Vol.14 のサンプルプログラム (CARDBUS.EXE) を使って、REX-CFU1 の素性を調査。CARDBUS.EXE は PC-98 では動かないようなので FIVA で動かしてみたがハングアップしてしまった。仕方がないので CF-R2C で動かした。出力結果は cfu1.txt のようになった。(妙にスペルミスが多いのが気になる。) PC カードの IO ポートは CIS に記されているポートの中から使用可能なものを選んで使うらしい。出力結果を見ると、260h - 267h, 280h - 287h, 2A0h - 2A7h, 2C0h - 2C7h が列挙されている。IRQ の方はどうなっているのかまだよく理解していない。どれでも使えるのだろうか。

2004/06/05

 REX-CFU1 が売られているのを発見。初めて実物を見た。実験用に買ってしまった。しかし使えもしないものに \12,390 も出してしまうとは・・・。コンパクトフラッシュアダプタ (CF TypeII) も併せて購入。
 REX-CFU1 のコネクタの形状がどこかでよく見た形状だ。100Base-TX の PC カードのコネクタを挿してみたところ、挿さってしまった。実は手持ちの 100Base-TX の PC カードは、4つのうち 3つがこの形状である。
 久しぶりに TECH I Vol.14 「PCカード/メモリカードの徹底研究」を読んでいる。

2004/06/04

 WinXP では、アプリを開いたり閉じたりするたびに、タスクバーがアニメーションするが、以前から非常に鬱陶しく思っていた。止める方法はないかと軽くググってみたが見つからない。regedit で探してみるとすぐに見つかった。

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"TaskbarAnimations"=dword:00000001

という値があるのでこれを 0 に変更すればよい。
 よく調べると、システムのプロパティ → 詳細設定 → パフォーマンス(設定) の「タスクバーボタンをスライドする」で設定できるようだ。

 a2ps の出力を PDF に変換する方法はないのか調べていたら、こんなやりとりを発見。やはり Distiller では変換できないようだ。ここでのやりとりに倣って、ghostscript を使って PDF への変換を試してみたが、どうもうまくいかない。

2004/06/03

 ICC の BigDrive 対応版の実験中。仕様書にも書いてあるように、SET MAX ADDRESS で容量を変更したドライブの容量を SET MAX ADDRESS EXT で元に戻すことはできないようだ。逆もまた同様である。なぜそういう仕様になっているのだろうか。

2004/06/01

 先月の spam メールの集計結果。着信拒否になった spam が少なくとも 3484通。着信拒否にならなかった spam が 607通。そのうち Spam Mail Killer で削除できた spam は 582通(95.8%)。SMK で削除できなかった spam がずいぶん多かった。Mozilla メールの Junk Mail Controls の精度も妙に落ちている気がする。SMK をすり抜けた spam のほとんどが、Mozilla メールでも spam でないと判断されてしまった。困ったことだ。

 Cygwin 用 a2ps 日本語対応版のバイナリパッケージを Cygwin のインストーラを使って、インターネットから直接インストールできるようにするための方法を調べてみた。ローカルで試したときと同じディレクトリ構造のままアップロードしたら、そのままインストールできた。さて、このまま公開しても良いものだろうか。

 Vim の文字化けはようやく解決した。ファイルの中に不正な文字が含まれていたのが原因だったようだ。Shift_JIS で 0x825E という文字コードの文字 (?) があったのだが、これを削除したところ、文字化けはなくなった。.vimrc にも少し問題があったので更新しておいた。

 雑誌で qemu というエミュレータの存在を知った。日本語情報は qemu - osdev-j などからたどれる。
 上記サイトからリンクされている VMware の背中Virtual Floppy Driver, Virtual Disk Driver はおもしろそうなツールである。ソースコードも公開されていたので DL しておいた。後で読んでみたい。


Copyright (C) 2004 K.Takata