題名:Java Diary-13章

五郎の入り口に戻る

日付:1999/9/25

目次に戻る


SETI@Support-part7(Ver0.41)

さて、初めて「表形式」の表示を持たせたVer0.4は9月10日にリリースされた。そのちょっと前からこのプログラムを巡ってにわかに世間様とのあれこれとやりとりが始まったのである。

これはおそらく英語版を公開して、Yahoo USAに登録されたことにも関係がある。基本的にそれまで私のプログラムに対する反応というのは例のメーリングリストの中だけで、しかもそれはかなり控え目なものだった。これは日本文化の美しいところだ。しかしながら米国の文化は私が知っている限り(一般化を怖れなければ)ちょっと違う。良かれ悪しかれフィードバックはがんがんと返ってくる。

最初に受け取ったのはおそらく米国からと思われる次のような簡明なメッセージだった。

「二日間、SETIのサーバーにつなげないでいる。こんなことは前にはなかったんだが」

何だこれは?書いてあるのはこれだけだがどう読み返してみても私が作ったプログラムに関する感想とも意見とも受け取れない。SETI@homeに向けられるべき内容としか考えられないのだが。

どうやって返事を書いた物やら、、と思っている私に数日後別のメールが届いた。内容は概略以下の通りである。

「たぶんあなたにこの質問をするべきではないと思うんだが、他に聞く人がいないんだ。コンピューターについてはほとんど素人だが、なんとかSETI@homeをインストールして動かしている。最初はうまく行っていたんだが、2つ目の解析が終わって結果を送信しようとすると「サーバーにつなげません」と言ってくる。どうしたらいいんだろう。最近この辺のArea Codeが代わった以外は何もしていないんだが。こういった質問はSETIのSupportサイトに送るべきだと思うんだが、どうしてもそれが見つからない。この件に関してみつけられたのはあんたのアドレスだけだ。もしコンタクトするべきアドレスを知っていたら教えてほしい。」

私はこのメールを何度か読み返した。相手は米国の見知らぬ都市に住んでいる60すぎの人間だ。それで「秋にはコンピューターのクラスをとるから、もうちょっとくわしくなると思う。でも今はコンピューターの事はあまりわからないんだ」と書いてあったりする。彼は学校に行って勉強しているのだろうか。別に60をすぎようが何歳だろうが、私は前向きに努力する人が大好きだ。彼はSETI@homeのWeb SIteからサポートのページ(これはSupportではなく、Bug Reportのページとして存在している)を見つけられなかったのだろう。

しかし何故彼がコンタクトできる唯一の人間が私なのだろう。私はそのことをまだ疑問に思いながらも彼らに返事を書いた。内容はだいたい「SETI@homeのサーバーはすごく混んでいてつながりにくいことも多いし、よくこけたりしているよ。まあ気長に何度もトライしてみてね」というやつである。最初のメールからは返事はこなかったが、2番目のメールの方からは返事がきた。

"You are so kind,,"から始まるもので、「またやってみてうまく言ったら知らせるよ」というものだった。私としてはちょっと安心である。

 

さてVer0.4のリリース後にメーリングリストに次のような発言があった。

「おいらは便利なtoolを作ってくらはる方を勝手に「神様」と呼ばせてもらってます。

ここには、神様住んだはるんですね。」

そして私は大変ご機嫌になった。確かに私はこのメーリングリストでtoolを公開している人間のうちの一人だ。そう考え「私を神とお呼び」と不遜なセリフをつい吐きたくなってしまったのである。

日本には800万の神様がいるし、中には菅原道真とか明治天皇もいる。となれば私が神様になってもよさそうだが、彼らはみんな死んだ後に神になったことを忘れてはいけない。生きているうちから神を名乗って良いのは戦前の天皇陛下だけなのだ。

そうしたこの世の理を忘れ、不遜なセリフを吐いた私にはさっそく強烈なパンチが降ってきたのである。

このメールを読んだのは出勤前であった。私は「私を神とお呼び」などとつぶやきながら家をでた。すると駅にたどり着く前に強烈な雨が降ってきた。傘をさしてもびしょぬれになるような強烈なやつだ。うむ。やはりこの世のどこかには神が存在していて、ちゃんと不遜なセリフを吐く奴を見張っているのであろうか。。などとちょっと厳粛な気持ちになりながら会社についた。

会社では例によってやることが全然ない。日長インターネットで「情報収集」と称して遊んでいる毎日だ。あまりにひまだからNiftyのサイトにアクセスして自分の個人的なメールアカウントに来ているメールをチェックしたりもする。すると「神様」の一人であるI4WUの作者の方からメールが来ていることがわかった。

内容はなんと、ある条件下でSETI@Support Ver0.4を使うとプログラムがお亡くなりになる、というものだ。私は驚愕した。なんとまだそんな重大なバグが残っていたか。

内容を読んでみるとさっそく再現試験だ。不思議なことにどんな条件でやってみてもWindows-NT+JDK1.2,Macintoshで試験してみる限りでは同じ症状が発生しない。

うーむ。これはどうしたことか、、と思って次にはその人が送ってくれた環境をそのままセットアップして(つまりJDK1.1.8をインストールして)試してみた。

不思議なことに同じバグは発生しなかった。しかしながら別のバグが発覚した。或部分の色が実に見づらい配色になってしまうのである。元々Java VMはそのプラットフォーム、および開発者によって動作が異なることで有名ではある。ここでもやはり問題は存在していたか。。。

次に自分のホームページで「こうやっても使えます」とは書いているが、それまで一度も試験したことがなかった方法で起動してみた。すなわちInternet Explorerのjviewコマンドを使ってみたのである。最初にメーリングリストでこの方法を教わったとき、私は大変ご機嫌であった。それまで「Javaのプログラムなんて誰がつかってくれるのだろう」と内心思っていたのだが、WIndowsであれば大抵の場合Internet Explorerがインストールされている。となればこのプログラムは多くの人に使ってもらえるかもしれないではないか。

私はそれを教えてくれた人に感謝の念をささげ、そしてその方法をホームページに記載した。しかし間抜けなことにそれが自分でも使える方法であり、そして試験もできる、ということに気がつかなかったのだ。今から考えてみれば実に間抜けな話だ。Windowsの場合であれば、複数Java VMがインストールされていても、それぞれを指定してプログラムを立ち上げることができるではないか。Macintoshの場合基本的にMRJしか使えないせいか、そうしたことに全く思いつかなかった。

自分のおろかさを呪いながら、私は自分のホームページに載せた通りのコマンドを打ち込んだ。

 

それからの数分間、私は発狂寸前のパニックに陥った。実に3っつもプログラムをクラッシュさせるバグを発見してしまったのである。しかも実に簡単にだ。そして最後に発見したバグは極めつけであった。SETI@Supportは設定ファイルをわらわらと自分の周りに作成する。プログラムからファイルを作る時に、特に指定をしなければ「現在の場所」に勝手に作られるものだ、と思っていたし、いろいろな情報にはそう書いてあるし、今までは何の問題もなく動いていたのである。

しかしながら、Internet Explorerで動かしたときだけは動作が違ったのである。最初に立ち上げた時、SETI@supportは「state.txtはどこですか」と聞いてくる。それをダイアログから選択するわけだが、なんと親愛なるMicrosoftのJava VMは、その選択をしたとたん「現在の場所」とはそのstate.txtの場所だと信じ込んでしまうのである。従ってそれ以降作成したファイルはSET@Supportの周りではなく、state.txtがある場所に作成されてしまう。ところが2度目にプログラムを立ち上げたときには、彼は「現在の場所」とは自分の周りだ、と信じてファイルを探しにいく、しかし当然のことながらそんなものは見つかりはしない。

なんと、私はこれまでこれほどまでにバグの多いプログラムを世の中に配っていてしまったのだ。

しばらくの間厳粛に神に祈りを捧げた。天にまします何教だか知らないけど神様。あのような不遜なセリフを吐いた私をお許しください。もう2度とあんなことは頭に浮かべさえしないでありましょう。どうぞバグだらけのプログラムを世の中に配布してしまった私の罪をお許しください。

しばらく神妙な気分になると今度はデバッグである。しかしなんなんだこのMicrosoftのJava VMは、他のJava VMでちゃんと動くのにこの場合だけは動かないの、とのろいの言葉を吐きながらだが、事実は如何ともしがたい。基本的にプログラムはだんだん汚くなっていった。Micorosoftの神様のご機嫌をとるのには実にこちらに忍耐が必要だ、ということがわかったのである。最後にはこのためだけにいくつかみっともない条件文を追加せざるをえなかった。誰がこのプログラムを見返したとしても「なんでこんな変な変数と条件文があるんだ?」と思うだろう。しかしそれなしではプログラムは動いてくれないのである。

その日は金曜日であった。私はその日のうちにバグフィックス版をリリースしたかった。しかしそこでちょっと踏みとどまったのである。仕事がないのを良いことにあれこれなおしてはみたが、これが本当にちゃんと動くと言えるのか?バグを一つつぶしたつもりで3っつくらい発生させる、というのは日常茶飯事ではないか。それでなくてもMicrosoftの神様のためにあれやこれやの変更を行っている。これ以上恥の上塗りをするよりはちょっとの間試験をした方がいいのではないか、と。

そう考えると私はHPに「お断り」の文章を掲載した。曰く「Internet Explorを使った方法ではいくつかバグが発見されています。バグフィックスバージョンは9月14日にリリース予定ですから、それまでお待ちください」

さて、しょんぼりと肩を落としてアパートに帰り着き、メールをチェックすると今度はちょっと勇気づけてくれるメールが届いていた。ある人がSETI@SupportがLinux上でも動きましたよ、と教えてくれたのである。なるほど、今のところUNIX上で動くツールというのはあまり多くはない。MicrosoftのJava VM上ではバグを出しまくる私のプログラムも少しはお役にたてるのかもしれない。

さて週があけると9/14,私は予告通りバグフィックス版をリリースした。翌15日、私はメーリングリストに「Ver0.41リリースしました」という告知を書くべく文章をあれこれやっていた。

そして文面を書きながらあることに気がついたのである。何故私の元に米国から2通「SETIのサーバーにつなげないんだけど」というメールが届いたのか。その疑問に対する答えはプログラムの名前だ。SETI@Support、何か質問をぶつけようとするのにこれほど適切な名前があるだろうか?たぶん彼らは、Yahooかなにかで、SETIとSupportというキーワードで検索をかけ、そして私のページにつきあったったのだろう。

 

ここで彼らのその後についてちょっと書いておこう。数日後に「つながらない」とメールを書いてきた人(二人目のほうだが)からメールが届いた。

「うまくつながったよ。。。。ところであなたを私の”お友達メールリスト”に加えてもいいかな?時々メールのやりとりができれば。。」

と書いてきた。私は"It's my pleasure"と答えた。彼(もしくは彼女)はArizonaのMesaに住んでいるそうだ。私はその街に行ったことはないが、私が多くの時間を過ごしているこのアパートの周りとは全然違う風景が広がっていることだけは間違いない。このインターネットそしてSETI@homeプログラムというのは面白い物だ。ArizonaのMesaに住む60過ぎの人と横浜で寝ぼけている私が知り合うことができるなんてのは誰が想像できることだろう。 

 

しかしながら、米国からのメールがいつもこうした楽しい結果に結びついたわけではない。妙なメールも受け取ったのである。

 

"Hello! Let me introduce myself."で始まるメールは明らかにForm Letterであった。この男は同じ文面を何十人に対して送っていたのだと思う。内容はと言えば、「あんたのサイトにリンクした。こちらにもリンクしてくれ」につきる。彼が言うには

「リンクしてもらえると、このサイトに来る人が増えるし、おまけに検索エンジンはそのサイトにリンクしている数で表示する順番を決めているから、その面でもGoodだ」ということなのであるが。

彼はリンクページを作ってSETI@homeに関連あるサイトをかたっぱしからリンクしていた。そして私のページには「Analyzed data」という簡明な説明がついていた。彼は明らかに私のページの内容をちゃんと読んでいないのだ。確かにAnalyzed dataを示したページもつけてある。しかし主体は明らかにSETI@SupportというSupport softwareなのに。

自分のホームページに対してメールがもらえる、というのはとてもうれしいことだ。だから私は必ず返事を書く。しかしそれが明らかに内容を読んでいないメール-大抵の場合あやしげな商品の売り込みだが-となれば話は別だ。私は彼に返事を書かなかった。

 

さて、Ver0.41リリースの告知をすると最初にバグを知らせてくれた人から「ちゃんと動きました」というメールがもらえた。これで一安心である。ちょっと一息つくと、今度は次のバージョンに心が向かい始めた。

 

次の章


注釈

菅原道真とか明治天皇:(トピック一覧)ここらへんの表現は「ローマ人の物語」(参考文献参照)からのパクリである。本文に戻る 

Micorosoftの神様:(トピック一覧)別名Necessarly Evilである。本文に戻る