NCSA Mosaicを日本語化して使う@2022 (OUCC advent 2022寄稿記事その2)


NCSA Mosaic 30周年おめでとう!(早い)

Mosaicとは、世界で初めてテキストと画像の同一ウインドウ表示を実現したブラウザです。1993年に登場したこのブラウザはその後、Netscape(FireFox)にシェアを奪われましたが、Netscapeの開発者はMosaicの開発者そのものですし、Mosaic自身はその後InternetExploreの基礎として使われました。

こんな歴史の中にあるソフトですが、30年たった今でも動作可能なソースが入手可能なのです。え、ロマンやばくないですか?

日本語化とか

実は最近(2022年中)に、unicodeに対応したらしいのですが、残念ながらデフォルトのフォントには日本語がありません。ついでにIMでの日本語入力も効きません。そういうもんですよね。英語圏の人間にこの苦しみは理解できないでしょう。

つまりソースに書かれたフォントの記述を全部unifontに置き換えればいいだろう。果たして国際化の観点の無い化石ソフトがちゃんとユニコードを扱えるのか?といか何もいじらなくてもmake通らないぞ?

環境: Linux thinkDebian0 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux

色々なところでフォントが指定されいますが、以下のところだけで十分ですね。
日本語入力を実現するには、ロケールを扱わないといけません。幸いに(?)X11版MosaicはXlibとXmotifを使用しており、Xmotifは国際化に対応しているので(使用策定に日本のメーカーが入っていることがここまでありがたいとは)、最低限の処理を追加します。

これ以外のフォントをいじったり、フォント設定のミスが原因で表示されないのを勘違いして、文字表示ルーチンを追ってロケール対応の関数に変えてみたりして大変に苦しみましたが、結果としてXmotifのロケール処理という光明を得ることが出来ました。はなから処理を理解しているわけでも無いですし、軽くフォントいじればいいやとか甘く見ていたら痛い目見ました。何やっているんだろうね。

もう一個知ったのは、make cleanの重要性。これしないとソースを変更してもオブジェクトファイルが更新されないので、ソースとバイナリの整合性が取れなくなって詰みます。makeのワークフローをあまり理解していなかったツケがきました。試しに別のソースを一からいじってみたら、日本語入力出来なくなって絶望しました。よく修正箇所見つけられたなと思う。

完成したソースはgithubに置いておきました。本当はライセンス的に怪しいですが。

プロキシとか

Moaicは端から多言語対応ではないブラウザ*(富士通開発のInfoMosaicは日本語対応で文字コードの自動判定も行えた)対応版が存在した)なので、文字コードの判別は出来ません。つまり全てのページをUTF-8だと思って解釈するわけですが、ここに問題があります。JavaScriptもTLS1.x以降も対応してないので、最近のページは殆ど表示できません。表示できるのは90~00年代初期のページですね。が、そういう日本語サイトは例外なくShift-JISで書かれています。だからSJJISをUTF-8に変換するプロキシが必要ですね。そこで、日本製プロキシサーバーDeleGateの登場です。良くつかわれるSquidにはその機能はありません。長年文字に苦しんできた日本人らしい。

$ ./dg9_9_13 -P8081 SERVER=http MOUNT="/* https://serv:8880 /*" CHARCODE=UTF-8 ADMIN=admin CHARCODE=UTF-8 CHARCODE=UTF-8:tosv -fv

使い方あっているかわからないけど、Mosaicと一緒に起動しておきましょう。プロキシはブラウザのguiから設定出来ますが、標準の設定ファイルのパスを変えないと保存出来ません(後述)。

.Xresourcesの設定

最後に設定をしましょう。
$ vim ~/.Xresources
Mosaic*HomeDocument: http:\/\/frogfind.com/
Mosaic*imageViewInternal: True
Mosaic*proxySpecfile:   /path/to/proxy

一行目でホームページを設定frogfind.comは古いブラウザ向けに色々変換してくれる軽量な検索エンジンです。Mosaicで使うとURLがおかしくなるのでちょっと使いづらい*(変にアポストロフィが入る)ですが、google.comよりはましだし、デフォルトのホームページはリンク切れてますし。URLなのにエスケープしないといけないのウケる。 二行目は、画像表示に関する設定。デフォルトが表示しない、なんですよね。 三行目は、プロキシ設定ファイルのパス。書き込みのパーミッションがあるところにしましょう。

スクリーンショット

モバイル低速回線でのネットサーフィンにもおすすめのfrogfind.com weboneのようなレトロブラウザ向けプロキシを使えばもっといいかもしれない。theoldnet.comとかもいい感じ。

文字コードだけ気をつければhttp://google.comも使える。リンク先は殆ど表示出来ないけど。

最大のウリの画像の混在(mosaic)表示

OUCCのホームページもfrogfindの力でこんなにシンプルに。

意外ににも阿部寛のホームページはそのままでは表示できない。frameタグが解釈出来ないからである。(table属性は多分1997年のHTML 3.2から)Mosaicがやってきた1993年の世界は、よく言われる”古のウェブ”のはるか先史の時代であった。