言ってここまであれやこれやの問題を解決してきたが、これはもういやになった。読み込むバイト数を勘定してみるとだいたい1000バイトでこけているようだ。この1000という数字に何か意味があるかどうかわからない。言ってもこのまま公開するのもなあ。思って最後の(そして結構最低の)手段をとった。読み込むファイルを分割したのである。手動で「だいたい1000バイト以内」に区切って読み込む。人間プログラミングで疲れてくるとこういうばかげた解決手段をとるものである。だいたいこういうときにやった解決手段は後からみると、「なんだこれ」ということで、お払い箱になる。従ってプログラミングでもなんでも、正当な手段を用いて問題を解決するのでなければ問題の解決にはならない。道徳の授業の内容のようだが、私のプログラミングに関する経験からするとこれは正しい。今であればこういったことも言える。Browerができあがったのでご機嫌であった。サーバーにアップロードしてテストするとなんとか動く。めでたしめでたしということで忘れようとした。ところがそこでまた別の問題につきあたったのである。今回作ったものは動くのはいいがあまりにも制約が多いアプレットになってしまった。世の中の過半数を占めるNetscapeのユーザーには私のページが読めないのである。これが簡単に解決されるとは思えない。なれば次善の策として、HTMLで書いたリンク集も併せて設置することが必要である。これであれば「好きな人はJavaでみてください。便利かもしれませんよ」と言うことができるわけである。そこでまたもや疲れている私は妙な解決方法をとることになった。アプレット専用のリンクのデータを読み込んでアプレットがHTMLのファイルを吐き出すような仕組みを作ったのである。これは一見うまくうごくように思えた。実際プログラム自体はちゃんと動いてブラウザでちゃんと表示できるHTMLファイルを吐き出したのである。私はここではたと詰まった。この「ファイル出力機能をどこから起動したらいいんだろう?」アプレットにボタンをつければ、別にファイルの出力などしたくない人が、妙なJavaメッセージが出力されるのをみて驚くことになる。(アプレットからはローカルにファイル出力ができないので、Javaメッセージとして出力するようにしたのである)。だいたい誰もが使用しないボタンなどつけるのはいやだ。するとたとえば既存のリストとかボタンに変なコールバックをつけるか。それにしてもなんとなくスマートでない。そんなにリンク集の更新は多くないだろうから、そのたびにコードを変更してHTMLファイル出力関数を呼んだり呼ばなかったりすればいいや。いうことで、本質的な問題から目をそらしてまたもや問題を先送りしようとしたのである。この解決方法はものの2日ももたなかった。リンク集の更新が私が思ったよりも頻繁に行われることが判明したのである。おまけにLinkBrower専用のファイルの更新は結構面倒だということがわかった。調子にのって追加していくといつ1000バイトを越えるかもしれないのである。だいたい人間が1000バイトを越えるかどうかチェックするなんて言うのは本末転倒だ。数を数えるなんてのはコンピュータのほうが人間の100000000倍も得意なのに。そこで前から薄々感じていた解決方法に直面することになった。LinkBrower専用のファイルをマスターとしてそこからHTMLファイルを吐き出すのではなく、HTMLをマスターとして、そのデータを読み込んでLinkbrowerに表示させてはどうか?だいたいデータを2カ所に持つとろくなことはないのである。同じ意味をもつデータであれば一カ所に集めるべきだ。いままでこの可能性をうすうす感じながら実行しなかったか?いままでのファイル読み込みルーチンは基本的にreadLineで一行ずつ読み込んでデータを処理していた。ところがどうもHTMLファイルというのは、一行になにがはいるか、についてはほとんど意に介していないように思える。いくつかの設定を一行にかこうが、何行かに分けて記述しようが結果は同じでなくてはならない。すると、HTMLファイルを読み込んで処理するためにはreadLineをすてて、一文字ずつ読み込んでいく処理に変更しなくてはならない。私はreadLineを非常に愛していたので、そこから離れるのはつらかった。この際贅沢はいっていられない。参考書をひっくり返し、あれこれサンプルプログラムを作ったりして。HTMLファイルから読み込みLinkBrowerに表示することに成功したのである。ここで私はまた別の問題から目をそらしているのである。例の1000バイトの問題である。この時点でなんとなく私は開き直っていた。人はHTMLバージョンの方を読むだろう。多少ファイルが切れていたってどうってことはない。わかる人は、まあコンセプトだけで「ふーん」と思ってくれるだろう。それと私はファイルが切れることに関していくつか自分に対するいいわけをみつけていたのである。1000バイトが問題だと思っていたが、ローカルファイルを読み込む場合でもファイルがとぎれることがあることがわかった。内容をちょっと変えるとファイルがとぎれなくなったりするのである。いうことはきっとこれは私のせいではない。Javaの環境のせいだ。やってすぐ問題をソフトウェア環境のせいにするのはろくなプログラマではない証拠だ。私が使用していたMRJ2.0はまだPreviewバージョンであるし、、バグが残っているからPreviewというのである。そうだそうに違いない。いうわけであっさりとその問題を忘れることにした。4.0をダウンロードした。これにはMicrosoftのJavaがついていて、そちらでテストしてみようと思ったのである。結構な時間をかけた後になんとかセットアップに成功して。しながらサーバー上のリンク集にアクセスしてみると、ほーらみろ。ファイルは切れずにちゃんと読み込める。わたしのせいじゃないもんね。喜んではいられなかった。なんとまた画面が変わっていることに気がついたのである。Netscapeほどへんではないが、やっぱりどことなく変である。一応使えるから文句は言うまい。修正してローカルの環境で試験をしよう、と思ったら今度はローカルのファイルが読み込めなくなっている。MRJではSecurityが甘いので、ローカルのハードディスク上にあるファイルでも、URL経由でなんとなくネットワーク先にあるかのように書いておけば読み込めたが、MicrosoftのJavaではその手は通じないようだ。