Ten Years After  僕とLC475とmtlabの10年
Motoyuki Tanaka with UVJ
v1.0:2004年08月17日
Day 1 10年たっちゃったよ
Day 2 ハードウェア
Day 3 ソフトウェア その1
Day 4 ソフトウェア その2
Day 5 Tanaka's osax
Day 6 『Macintosh インターネットサーバー構築術』
Day 7 Web Scripter's Meeting と EasyBBS
Day 8 mtlab の運用と管理
Day 9 好奇心で出たとこ真剣勝負

Day 1 10年たっちゃったよ

UVJ: 今日は、まぁ、適当に思いつくままに話をして、LC475 の色々なトピックの種を拾っておこうかと思う。次回以降、トピックを絞り込んで話をすることにして、今日は夏休み初日!みたいな感じで、気楽に脈絡なくいこうか。

というわけで、さっそくだけど、8月になって LC475 が研究室にやってきて10年たったわけだ。

田中: もう10年というのは、なんか不思議な気がする。それより、なにより、LC475 が、ほぼ休まず10年動いているっていうのがすごい。途中でリチウム電池の交換はしたけど、それ以外の故障はまったくなしで動き続けているわけだから。ハードディスクだって、1G のに交換してからもう9年は動き続けてる。今のところディスクのエラーは起きてない。これもすごい。というか、今となっては LC475 に内蔵できる SCSI のハードディスクなんて売ってないでしょ? だから、LC475 が引退するのは、ハードディスクの故障の時かな、と思っている。

■まだ LC475 で続けるつもり?

こういう言い方は変だけど、今となっては、引くに引けないというか、LC475 で続けてることが存在理由の一つみたいなサイトだからね。それに、今のアクセスなんかの状況だと、まだまだ LC475 で充分だし。

■今、一日どれくらいのアクセスだっけ?

平日だと平均して1万ヒットを超えるぐらいかな。画像はすべて別サーバにおいてあるので、1万ページビューということになる。その半分以上が Web scripter's Meeting へのアクセス。

■多いと思う? それともこんなもの?

サイトの内容に比べると多いとは思う。でも、google なんかの検索で、キーワードに引っ掛かったページを見に来ている、ってアクセスも多い。それに、検索サイトのロボットのアクセスも多いよ。そういう意味では、純粋に、ってのも変だけど、田中のサイトのページだからというアクセスで来ている人の数は、見かけのアクセス数よりは少ないはず。

■もっとアクセスを増やしたいと思う?

サイトを開設したころは、やっぱアクセスが増えるのはうれしかった。『 Macintosh インターネットサーバー構築術』を出版して、Web Scripter's Meeting を作って、Tanaka's osax を公開して、と色々やるほどにアクセスも増えてきたわけで、その頃は、一日に 2000 ヒットだ、5000 ヒットだ、と増えていくのが嬉しかった。でも、今は、アクセスが増えることよりも、自分が満足できるサイトとしてやっていきたいな、という気が強いね。

■アクセスが増えても儲かるわけでもないし?

それはない。広告や連携のやつとかで収入が欲しかったら .mac のサイトでも使えばいいわけだしね。もちろん、今 LC475 でやってる内容をそのまま持っていくことは出来ないけどね。それに、Web Scripter's Meeting なんかは、たぶん、大学の人間がやってるという位置づけ、商行為をしない(できない)大学のサイトだってこと、だから特定の企業や会社の支援を受けるわけでもないし支援するわけでもない、そういうのが、今になってもそれなりに続いている理由かなと思うし。

■個人のドメインをとって、そこに移すことは考えないのかな?

今のところ全く考えていない。もしやるとしたら、当然だけど、自宅に Mac のサーバ機をおいてやりたいわけだけど、今のところ、光とか来てないから、それができるような状況でもないしね。それに、やっぱ、研究室で動かしているというのは、ある意味、楽なのよ。ずっと仕事してても落ちてるかどうかぐらいは気がつくし。まぁ、研究室でペットを飼ってるというか、実験用の動物を飼育してるみたいな感じでやれるのがいいかな。幸い、小さな大学で、情報課の職員の人とも顔なじみで、なんかあったらすぐ相談できるし、対応してもらえたりするしね。

■公立の大学のサーバに個人の趣味のコンテンツを置くことに対して批判もあるようだけど?

それは知ってる。税金を使って勝手気ままに遊ぶな、みたいな議論だよね。でも、僕のサイトの場合、純粋に趣味ではないわけよ。僕はネットワークのコミュニケーションを研究対象にしてるんだし、WSM はその実験の一つでもあるわけだし。Mac を教える授業もやってるしね。でも、まぁ、そうは言っても、難しい部分はあるかなぁ。自作のフリーウェアなんかは、まぁ、完全に趣味のものだしさ。今のところ、自分の勤務校の場合は、商行為と個人や団体の誹謗・中傷は禁止という縛りがあるぐらいで、コンテンツに踏み込んでの規制はない。でも、公立大学を取り巻く状況はこれから激変する方向にあるから、いずれは、このサイトの Mac 関連のコンテンツは、別のサイトに移すしかないかもしれないね。ただ、さっきの話じゃないけど、WSM のような会議室を、大学の人間、象牙の塔にこもっている人間が管理運営しているってのは重要なことじゃないかな。企業から中立的なポジション、まぁ、僕の価値観や好みが色濃く反映されるという意味では中立とは言えないけど、それでも、すくなくとも経済的な動機からは切り離して維持できるというのは重要だと思う。ほら、パソコン雑誌がマイクロソフトの批判記事を書かない/書けないって問題になったりしたじゃない?

■パソコン雑誌は広告料が命なんで広告主のメーカーの悪口は書けないだけど、日経BP の雑誌は定期購読中心で広告料がなくても平気だから色々なメーカーの問題点を指摘できるんだって言われてたね、そういや。

日経バイトなんか、一時期、かなり突っ込んだ比較記事をのせたりしてたよね。「ざべ」の中村正三郎さんのみかん星人騒ぎってのあったでしょ。あれはもろにマイクロソフトだけどさ。そういや、日経バイトも一時期はどうなるかと思うぐらいひどい雑誌になってたけど、最近、ぐぅっと良くなってきたね。

■雑誌の話はそのへんにして。

ともかく、商業的な動機やサポートから切り離された意見交換の場、そういう場を提供するってのも、公立大学の地域貢献のあり方じゃないかな、と。もっとも、地域ってどこやねんってぐらい広いことになるけど。そもそも、このサイトの目的の一つは、僕が大学という場でサイト/サーバを運営して得られたことを広く公開し提供することにあるわけで、大げさだと非難されるかもしれないけど、知識を社会にフィードバックしていく機能を担っているというとも言えるわけだしさ。 …ちょっと熱くなっちゃった。

■公立大学の独立行政法人化が行われたら、研究費を稼ぐための手段になったりして。

それはどうかなぁ。でも、今どき LC475 でなんかやってるからって、共同研究とか研究費の寄付なんてあるわけないよね。それと、確かにネットワークインフラは大学のものを使っているし、LC475 はある教授に買ってもらったものだけど、それ以外の運用のためのソフトウェアなんかは、すべて私費でまかなってきているわけ。コンテンツは自分の金で作ってきたみたいな、ささやかな自負もあるわけで、その部分は譲りたくない。だから、このサイトに関連して研究費を外部から調達するなんてことはないと思うよ。

■でも、サーバの運用や Mac 関連のコンテンツに関しての話じゃない? 最近は、研究ノートとか講義ノートとか、ある意味で大学のサーバとして真当なコンテンツの方が増えてきてるじゃない。そちらはどうなの。

研究に関連するコンテンツが増えてるのは、世の中の Mac が OS X 中心になっちゃって、今さら 68K Mac の新しいネタないってことの方が大きいよ。相対的に Mac ネタのコンテンツが増えない。OS X では、しばらくはプログラミングもマジではやらないっていうか、やりたくてもやれない状況だしね。で、自分の研究ノート公開の場として、自分を積極的に PR していく場としては、確かに自分でサイトをやってるというフットワークの軽さはあるから、重要な手段になるかもしれないね。

■それって、Mac 関連で得た評判を利用するってことになる?

利用っていうと、なんか悪用だと非難されてるみたいな気がするんだけど。でも、まぁ、確かにそういう面はあるかな。でも、検索サイトから Mac 関連のコンテンツのページに飛んできた人が、僕の研究テーマなんかに関心持つとも思えないので、直接の効果はないと思う。田中求之っていう名前ぐらいは覚えてもらえるだろうけど、それが福井県立大学の教員だというところまでは無理な気がする。

■個人としてでも名前を覚えてもらえるだけもいいじゃん

それはそうだけど。ただ、Tanaka's osax なんかを作ったりしたんで、他のホームページや書籍で僕を紹介してくれている人も少なからずいるんだけど、書籍で、僕の勤務校の名前を間違えてるやつがあったよ。AppleScript 関連のやつだけど。

■その本って?

持ってないから忘れた。自分で買ってもいいかなと思って本屋に行って立ち読みしたとき、間違えてるのに気がついて、それで買うの止めたもん。なんか、そういう程度の内容の本なんだなぁ、と思ったわけ。たまたまのミスなのか、本当に間違えて覚えてたのか知らないけど、それでもね。

■細かいことに煩い?

そういう人間じゃないと思いたいし、ありたいんだけど、確かに短絡的な反応であることは認める。ドイツの研究員の人たちなんかと自動車産業の共同研究をしてたときに、自分が今乗っている車のメーカーの工場に見学に行ったら、ど〜んとでっかく「歓迎 福井大学ご一行様」って出てたことがあるんだけど、そのときは皆で笑ってすませれたんだけどね。やっぱ AppleScript だと自分でも思い入れと、ささやかな自負みたいなものがあるからかなぁ。

■でも、あくまでも自分の問題で、福井県立大学の人間かどうかは関係ないじゃん。

う、そりゃそうなんだけど。だけどさ、このサイトは mtlab.ecn.fpu.ac.jp で、福井県立大学の中にあるサイトなわけで、そのサイトと一体になってると感じてるところがあるわけよ。ちょうど、田中求之って名前だって自分で選んだものじゃないけど、そう呼ばれる人間として生きてきたという意味で僕自身になってるみたいにね。だから、Mac のサーバ関連とか AppleScript とかの時は、やっぱ福井県立大の田中求之って感じはするんだよね。

■ささやかな大学への貢献もかねる?

ということになるのかな。まぁ、確かに自分の勤務校の名前を知ってもらえたらうれしいという気持ちもあるし、そこには、そういう大学の存在を知って欲しいということがあるよね。まず名前を知ってもらうって重要なことだから。でも、それを貢献という大げさな言葉で呼ぶのはちょっと違うと思う。なんていうか、もっと、個人的な気持ちの問題。 …話を変えようよ。

■一般の人たちははともかく、ネットでは、それなりの認知は得てるよね。

そう言えるのかな? そんなに知られてるのかな? というか、インターネットで知られているってどういうことなんだろう? それと多くの人に知られていることがどれだけ意味を持つんだろうね。まぁ、そういう本質的な問はともかく、確かに、知ってる人は知ってるというか、検索サイトで Mac とサーバ関連のキーワードで検索したら、たいてい、このサイトのページにはひっかかるようにはなってるよね。Google のディレクトリの Mac のページに WSM も載ってるんだけど、ページランキングはかなり高い。そういう意味では、検索サイトでの認知度は高いと言ってもいいかも。

■それって、SEO なんかが商売になる今の状況では、一つの大きな財産と言えるんじゃない?

それは言えるかもね。10年サイトをやって来た成果みたいなものかな。でも、WSM の場合、蓄積されている情報やノウハウは僕が作り出したものではないから、僕の活動の成果だというのはちょっと気が引けるんだけど。

■WSM という場を維持してきた成果ってことかな。

最近は、なんか「継続は力なり」状態だけどね。WSM も 1996年の1月からだから8年以上が経過したわけだど、不思議なほど、運用面でトラブルの少ない会議室ではあると自分でも思っている。

■じゃぁ、今の WSM の問題点はなにかある?

一つは検索機能だね。今では Google にまかせちゃってる状態だからねぇ。まぁ、こっちの方が使い易いかもしれないけど。PowerMac で運用するサイトだったら Shaerlock で検索するように組めるのだけど、LC475 だとそれは無理だしね。

■Phantom も止めたね。

うん、やっぱ日本語が検索語句に使えないというのは致命的だなぁと思ってたんだけど、Google を使えばその点はクリアーされるし、今のところ、けっこうマメに Google のロボットが更新状況の確認に来てるみたいだから、とりあえず Google で充分だなという判断。Phamtom 自体が、やっぱ重いというのもあるし、たまにハングアップしてたしね。ずっと使ってきて、それなりに愛着のあるソフトだったから、使えるものなら使いたいという気持ちは今でもある。でも、まぁ、日本語対応のバージョンが出ることはまずないから、もう使わないだろうな。

■検索機能の他には?

メール配送サービスをメールによる自動登録にしてあるんだけど、あのアドレスに spam が送られてきて、送信元アドレスが配送サービスのメンバーとして登録されちゃうってのが、実はかなりの数あるわけ。で、spam の送信元アドレスなんて偽称のアドレスがほとんどだから、登録されたアドレスにメールを送ると、サーバに拒否されて送り返されてくる。この spam がらみの Bounce がかなりの量になるわけ。だから、Bounced mail のレポートをもとにメール配送のメンバーのアドレスをチェックして、spam のアドレスを消していくっていう作業をマメやらないといけない。けっこううっとおしいよ。でも、メール配送のメンバー登録を手作業でやるよりはいいか、と思ってやってるけど。

■WSM もそれなりに複雑なものになってきてるよね。

確かに。今の話のメール配送サービスは LetterRip Pro っていうリストサーバと UVJ Mailer という自作のソフトの連携で動かしてるし、会議室のデータは RAM ディスク上で処理してる。また、夜中には発言リストを作り直すスクリプトを動かしているし、WSM Watcher のアクセスの処理は partialEngine っていう小さな CGI を別に動かしている。最近じゃ、CGI に手を入れるときには、自分でも気をつけないと、思わぬ所に影響が出たりするくらいになってきているね。

■じゃぁ、次回は10年目のサイトがどうなっているか、というあたりから話を始めようか。

そうだね。今の話をやってからというか、やりながら、たっぷりと思い出話に浸ることにしよう。


Day 2 ハードウェア

■現在のサイトの状況を確認しておこうと思う。まずハードウェアからいこう。サーバの Macintosh LC475 はどういう構成になってるの?

まず、VRAM を拡張して 32000 色表示可能になってる。これが LC475 を入手して初めにやった拡張かな。あ、その前にイーサーのネットワークカードが刺してある。まぁ、これが無いことにはネットに繋がらないので。

■ネットワークカードは 10Base-T だよね?

当然。100Base-T はまだ出てなかったんじゃないかな。それに LC 系列は拡張カードの規格が特異で、当時のアップルの標準のボードの規格とも違っていたから、結局、LC475 で使える 100base-T のカードって出てないように思う。あったら今でも欲しいんだよね。

■今では 10Base-T がボトルネックってこと?

サイトの運用の点では問題にはならない。だって、研究室に来ている LAN の回線が 10Base-T だからね、今でも。秋にはやっと 100Base になるみたいだけど。だから、これまでも 10Base-T で充分だったのね。だけど、サーバのメンテナンスの時に、研究室の別のファイルサーバにネットワーク経由でバックアップしているんだけど、そういったネット越しの作業をもう少し快適にしたいんだよね。コンテンツもすべてネットワーク経由で流し込むようになってるからね。それで、もし 100Base-T に出来るなら今すぐにでもしたいんだな。

■サーバにしてるマシンなのに 32000 色表示に VRAM を増やしたのはなぜ?

最初はサーバ専用機じゃなかったから。僕の研究用のメインマシンとして使っていたわけ。その当時の LC475 を写した写真がこれね。



この写真に写っているように、17インチのモニターをつないで作業したかったから VRAM は増やす必要があったわけよ。LC475 は、僕が研究室ではじめてネットにつないで使った Mac なわけ。研究室で Mac をメインに使いたいなとずっと思っていて、Mac Plus を持ってきて使っていたりしたんだけど、やっぱカラーの画像とか見たいわけよ、インターネットにつなげて。でも、自分の研究費で Mac を買うなんてできなかったからね。

■LC475 入れるまではネットは使ってなかった?

いや、もう使っていたよ。福井県立大学は 1992 年に開校して、そのときに僕も経済学部の助手として着任したわけだけど、その時点で、学内のネット環境は整ってたし、翌年にはネットニュースなんかが使えるようになった。で、全教員にネットが利用できるパソコンを配付してるわけ。で、僕が使っていたのは NEC の PC-98 の FA だったかな、とにかくいわゆる98。当然、ネットってもターミナルで通信するしかない。一太郎4のためのマウスは付いてたけどね。そんな98で Telnet で大学の UNIX マシンにログインして Emacs を使ってメール読んだりネットニュース読んだりしてた。福井県立大学の1期生は、みなターミナルでログインしてメールを読み書きするっていうネットの使い方を学ばされたのよ。そういう状況だったね。

■Emacs のコマンドというかキー操作は覚えた?

必要最小限のものはね。もうすっかり忘れたけど。当時は、机には、いつも Emacs のコマンドリファレンスみたいなのを置いてあったな。メールは MH を使ってたんだけど、かなり使い易く、融通が利くなぁという印象だった。

■そのまま UNIX 使いの道へは行かなかったわけだ。

ポチポチ参考書読みながら触ったりしてたんだけど、やっぱ、自分の道具としては Mac かなぁっと。

■自宅では Mac SE を使ってたんだよね。

そう。それと1年弱、フランスに留学した先輩の Quadra 700 を預かって使っていたことがある。ちょうど System 7 に切り替わるころだったかな。で、それを返却して SE の日々に戻ったけど、やっぱスピードの魔力を忘れられずに Quadra 840AV を購入したわけ。

■LC475 のハードディスクは最初は 500M だったっけ?

そうだよ。で、翌年に 1G のものに取り換えたはず。だから今は 1G のハードディスク。それを 500M ずつの2つにパーティション切って、一つをシステム用、もう一つをサイト用、って構成で使っている。ハードディスクのドライバは LaCie の Silverlining を使っている。

■このサイトのコンテンツを入れておくのに 500M で足りてるの?

余裕たっぷりよ。画像はまったく入ってないからね。今でも半分ぐらいしか使ってないよ。

■メモリーは当然増設してるよね?

今は 64M SIMM を指して合計で 68M 積んである。

■64M SIMM ってアップルは動作保証してないよね?

たしかそのはず。64M SIMM は LC475 の販売されてたころには無かったはずだし。LC475 が来てから、16M SIMM に差し替えて、その後、安くなった 32M SIMM を買って入れて、ずっとそれでやってきて、1999 年に 64M SIMM を入れたように思う。その前の年から、ネットでは 64M SIMM が LC475 でも使えるぞという話がちらほらあって、どうしようかなぁと思っていたんだけど、ちょうど東京に出張が多い仕事を始めたこともあって、東京に行ったときに秋葉原で 64M SIMM を買って帰ったわけ。

■サーバの運用には 68M ぐらいは必要?

いらないでしょう。32M SIMM を刺した 36M で十分やっていける。実際、5年ぐらいそれでやってきたわけだしね。68M にしたのは、そうしたらディスクキャッシュが多く取れるだろうということと、CGI なんかも一杯立ち上げておけるなぁと思ったからだね。

■周辺機器は何を繋いである?

常時繋いであるのは MO ドライブだけ。

■CD-ROM ドライブはいらない?

今さらシステムのインストールなんてやらないからね。ソフトウェアのアップデートなんかはすべてネットワーク経由で転送しちゃえるし。もちろん、以前は CD-ROM ドライブを繋いであったよ。研究室のメインマシンとして使ってた頃はもちろんのこと、サーバとして使いだしてもシステムのアップデートには CD-ROM が必要だしね。でも、LC475 で使用できる新しいシステムは絶対にでないでしょ? だから外しちゃった。

■ネットワークでソフトのインストールなんかも行えるのなら、MO ドライブも不要じゃないの?

実はそう。でも、週に1度のメンテナンスの時には、サイトの中身を、ネットワーク上のファイルサーバだけではなく、 MO にもバックアップしてる。いざというときに MO に入っていてすぐに取り出せる状態にあるっていうのは、やっぱ安心だからね。幸い、これまでバックアップしておいたデータからリストアしなければならなくなったことは1度も無いんだけど、ま、年ごとに何が起きてもおかしくない状況になってきているのは事実だしね。MO はバックアップために繋いであるようなものだけどね。

■モニターはアップルの13インチのやつ?

サーバ専用機になってからは13インチだね。仕事にも使っていたときには17インチをつないでいたけど。今は、他のサーバと共有っていうか、モニターとキーボードを切り替えて使うようにしている。

■マシンの改造はしてない? Mac でも改造って流行ったけど。

確か LC475 は抵抗だったかコンデンサだったかをつなぎ変えるだけで 33MHz までクロックアップできるんだよね? 魅力的ではあったんだけど、やっぱサーバ機で動かすには怖いからクロックアップはしてない。だから今でもクロックスピードは 25MHz のまんま。今となっては 2.5G の間違いですか?って突っ込まれそうな速度だよねぇ。

■電源やファンもそのまま?

そう。そのまんまで、ちゃんと動いている。LC475 でサイトを運用し始めた時に、けっこう多くの人から「LC475 を 24 時間動かしておいて大丈夫なんですか?」という質問を受けた覚えがあるんだけど、「とりあえず僕のところでは問題ないですよ」と答えてきた。実際、電源のスペックなんか気にしてないんだけど、いわゆるサーバマシンなんかにくらべたら劣ることは間違いないよね。なんせ入門用の本体価格 12 万円のパソコンなんだから。でも、動いちゃうものだよね。

■研究室での設置場所なんかには気をつけてる?

ぜ〜んぜん。いつも仕事をしている机の横にある別の机の上に置いてあるだけ。まぁ、LC475 の空気の流れを遮るようなものはないけどね。でも、モニターは LC475 の上に置いてあるしなぁ。研究室は8階にあって周りに何も風景を遮るものがないんだけど、西向きなんで夏は陽射しで暑くなるのね。エアコンかけておいても暑くて汗がでちゃうぐらいに。それでも、熱暴走もしないしね、LC475 は。そういう意味ではけっこうタフなやつだと思う。

■そういう点では、LC475 なのにやってるっていうより、LC475 だからやってられるってところはあるんじゃない?

それは言えるかもね。ロジックボードも発売の時点で枯れたものというか、冒険してないものだったはずだし。自宅で購入した Qudora 840AV の方がハードには泣かされたもんね。アイルトン・セナが死んだ日に、それを悲しんでか自分の Q840AV もいきなり電源が落ちて立ち上がらなくなったし、2DD のフロッピーの読み込みが遅いという構造上の問題なんかもあったし。それに比べれば LC475 って元気だとは思う。枯れたマシンで枯れたシステムというのは、進化はないけどリスクも低いってことかな。

■生きた化石のタフさ?

生きた化石って言い方は、その生物に対して、すんごい失礼な言い方だと常々思っているんだけど。だって、進化しなくても生きていられるってことは、環境とのマッチングが良いってことじゃない? まぁ、遺伝子の変異とかそういう細かいこと考慮したら、そんなに単純な話ではないのかもしれないけど。で、まぁ、確かに LC475 の僕のサイトにもそういうところはあるのは否定できないかな。

■正直になところ、LC475 でサーバやって良かったと今でも思うかな? LC475 に固執したことで自分に縛りがかかってないかい?

難しい質問だなぁ。確かに、サイトを始めた頃は「LC475 で十分!」ってのはインパクトがあって、そのインパクトや話題性によって多くの人たちと知りあうことができ、結果として今でもサイトを続ける力になっている。雑誌のインタビューなんかも LC475 でやってるからこそ来たものってところは大きい。そういう意味では、mtlab は、そして僕のネット上の存在は、良くも悪くも LC475 でサーバやってる田中なんだと思う。サイトを立ち上げた頃は、Mac でサイトを運用すること自体が珍しいというか、「え、マックみたいなパソコンでできるの?」みたいな状況だったんだけど、それでも、さらに「えええ、マックの、しかも LC475 ぉ?」みたいな感じだったからね。当時発売されていたばかりの PowerMac を使ってたら、「あ、やっぱパワーマックはねぇ」みたいなことになってたと思うし。まぁ、PowerMac をサーバ用に売りたかったアップルの人には嫌な存在だったかもしれない。東京理科大であったセミナーで CGI の仕組みについて話したときに、アップルの社員の人に「なんで PowerMac じゃないんですか?」って質問されて、「買えないからです」って答えたんだった。

■思い出話は別の機会にして、ちゃんと答えてよ。

はいはい、すんません。で、確かに LC475 でやってなかったら、もっと違った展開になっていた部分があるのは事実だね。一番違っていたのは、僕のプログラミングのスキルじゃないかなと思う。LC475 でサイトを運用していて、そのサイトで利用するためのツールを僕は作るためにプログラミングをし、その一部をフリーウェアとして公開してきたわけだけど、基本的に 68K のコードを作成できばいいってことで済んできた。だから PPC Native の開発環境へは結局移行しなかったし、carbon にも手を出さず、今でも OS X ではプログラミングしていない。HyperCard と CompileIt による osax 開発と、REALBasic 1.x によるアプリケーション開発ですんじゃったから、そこから踏み出さなかったわけ。それが縛りになってというか、LC475 で動かせるものしか作らないってことにはなってたよね。EasyBBS なんか、もっと機能を作り込んだり、高度化することだって可能なんだけど、68K で動かすものという点ではこんなもんかなという感じで作ってるしね。だから、もし最初からじゃなくてもどこかで PowerMac を使ったサイトの運用に切り替えていたら、今ごろは、OS X でサイトを動かして EasyBlog みたいな名前を付けた自作の blog ツールのプログラミングに燃えていたかもしれないね。サイトを立ち上げた頃に比べたら、仕事も忙しくなったし、結婚して子供も出来て、サイトの運用にさける時間は少なくなっているのは事実だけど、本当にやりたいことだったら、なにをさておきやるのが僕だってことは自分でもわかってるからね。OS X でのプログラミングが面白そうだなぁと思って本などを買って読んだりしていても本気になって取り組まないのは、やっぱ、自分のサイトは LC475 だしなぁってところはあるかな。

■なるほどね。じゃぁ、いつの日か、LC475 が止まった時、大きな変化が起きるって可能性もある?

でも、LC475 の予備として待機させてあるのは Qudora 840AV だよ。あ、G3 の最初の世代のやつもあるから、こっちにするかもしれないけど。

■せめて MacOS にはこだわるってわけ?

こだわるつもりはないけど、なんか勝手がわかってる OS でやるのが楽だもんなぁ。そういう意味では、プログラム重視からコンテンツ重視にスタンスが移動してきていて、LC475 の終わりは、決定的な移行になるかもしれないね。

■今日はハードウェアの話だけで終わったけど、最後に、LC475 以外のサーバはどうなってるの?

画像送りだしのサーバ(mtsub.ecn.fpu.ac.jp)は、もともとは LC575 を使っていたんだけど、それが雷による停電でやられてダメになって、その後しばらくは大学で使われていてリース切れになったのを買い取った Qudora 800 で運用して、自宅に G3 B&W を入れてからは、自宅にあった Quadra 840AV で運用していた。で、今では PowerMac 7600/200 でやってる。メールサーバも PM7600/200 。どちらも大学の演習室で使われていてリース切れになったのを買い取ったもの。それ以外に、PowerMac G3 の初代のミニタワーのやつで AppleShareIP のファイルサーバを動かしている。この3つは、ちゃんとホスト名もあって、対外的なアクセスも受け入れているやつね。それ以外にソニーの StoreStation っていうファイルサーバも必要に応じて動かすんだけど、これはもっぱら自分の作業用。サーバはこんなところかな。

■そして LC475 が残った、って感じだね。

確かにね。


Day 3 ソフトウェア その1

■ソフトウェアについては、色々と話がありそうだから、何回かに分けることにしよう。今日はシステムとサーバのソフトウェア、で次回以降は自作の CGI やツールの話というようにわける。で、さっそくだけど、今の LC475 のシステムは MacOS 8.1 の日本語版だよね?

そうだよ。68K で動かせるシステムの最終バージョンの日本語版を入れてある。

■68K でサーバを運用する場合、確かに 8.1 は動かせるけど、むしろ 7.61 の方が良いという意見もあるけど?

Eudora Internet Mail Server (EIMS) のグレンさんが、確か EIMS を 68K のマシンで動かすなら、システムは 7.6 がベストだといってたよね。僕の場合は、一つは OpenTransport をなるべく最新のものにしておきたかったことと、メンテナンスなんかを行うときに、Finder の操作感が普段使っているシステムと違うとストレスがたまるから、ということで最終的に 8.1 にしてある。Finder で選択したファイルが Cmd-Delete でごみ箱に入るかどうかは重要な問題なわけよ。

■8.1 日本語版で特に大きな運用上の問題などはない?

ないね。システムは安定しているよ。少なくとも、ここ何年もシステムが原因でサーバが落ちたことはないね。あ、そうそう、8.1 にして最新の OpenTransport にしたかったのは、一つのマシンに複数の IP アドレスを割り当てられるようになったからというのもあった。転出した同僚が自分の Windows マシンでサーバを運用していたんだけど、彼の新しい職場のサーバーへアクセスをリダイレクトするために、彼が使っていた IP アドレスを LC475 に割り当てて、バーチャルホスト機能で移転の案内を出してたことがあるのよ。こういうったことが、8.1 ならできるんで。

■英語システムに language Kit を入れるか、リソースの追加で日本語を使えるようにしたものを以前はよく使っていたね。

LC475 も、今の 8.1 日本語版にする前は、ずっと英語システムベースで動かしていたよ。Opentransport のアップデータなんかは英語版がまっさきに出るわけで、どうしてもシステムを最新の状況に保っておくには英語版のシステムにしておく必要があったからね。

■OpenTransport は、登場以来、本当にドタバタさせられたからね。

漢字Talk 7.5 の頃は、怖くてぜったいにサーバ運用には使えないようなといった状況だったと覚えている。7.6 になって、システムを MacOS という呼ぶようになって、スタートアップの画面も MacOS のやつに変わったんだけど、あの頃、やっと落ち着いたよね。で、そういうこともあって、サーバはもちろんのこと、自分が普段使うシステムも、全部英語版のシステムを改造したものにしてあった。もっとも、これは Mac SE の時代からずっとそうだったんで、単に英語システムの方がカッコよくて、っていうのはある。

■LC475 に付属してたシステムって何だったんだっけ?

漢字 Talk 7.1 だね。System 7 がやっと正式に日本語化された最初のバージョンだよね、確か。CD-ROM と、28枚組のフロッピーの、両方のインストーラーが付いてた。

■漢字 Talk 7.1 だと、まだ CD-ROM からのブートではなくて、インストールの時にはフロッピーから立ち上げ直して、それから CD-ROM を入れるんじゃなかったっけ?

そうだったっけ? 確かにまだ CD-ROM でブートするのは一般的ではなかったように思うけど… この研究室に LC475 の外箱とシステムの入った箱は残ってるから、確認してみるね。 …えっと、確かに CD-ROM の中にはシステムは入ってないな。単純にフロッピーのデータを CD-ROM に並べたものになってるね。そうか、そういう時代だったんだ。

■で、今は MacOS 8.1 の日本語版になってるのはなんで?

以前、システムを丸ごと再インストールする作業をすることにしたときに、そうか、もうこれ以上変わらないのなら日本語版でいいやって思って、日本語版にしたの。

■システムを下手にアップグレードするよりは新しいものを新規/再インストールってのも、MacOS の時代の常識だったもんね。でも、サーバ専用機なら何も手を加えない英語版でもいいわけじゃない?

それだと、ページの更新とか、CGI の修正/作成の時に困るわけよ。単に動かしておくだけなら英語版のシステムで何ら問題ないので、たとえばメールサーバにしてあるマックは英語版のシステムで動かしてる。でも LC475 の場合は、サーバ上でやんないといけない作業もけっこうあるので、日本語が使えないと困るのね。まぁ、そういうこともあって、MacOS 8.1 の日本語版にしてあるわけ。

■Mac のシステムといえば、それにどんな INIT やコンパネを追加してるかってのが話題になるし、それがシステムの安定性に大きく影響するんだけど、今のシステムには何か入れてる? それとも純正のまま?

さすがに純正のままではないよ。コントロールパネルで追加してあるのは Default Folder、Font&Keyboard Sync、Silverlining Lite かな。INIT というか機能拡張の方は、システムの起動時に読み込まれるものは Disk Warrior Extension だけかな。さすがにこちらは極力入れないようにはしてる。デスクトッププリンター関係みたいにアップル純正のものでも外してるものもあるね。

■ディスクキャッシュはどれくらい充ててる?

システムの方には 6144K だね。ここまで多くなくてもいいんだろうけど、なんせ 68M もメモリーを積んでるからね。スタティックなコンテンツの大半がキャッシュに入るぐらいは充てとこうかなと思って。

■システムに関してはそんなところかな? じゃ続いてサーバソフトウェアに行こう。今、サーバのソフトウェアとして動かしているものは何がある?

Web サーバとして WebSTAR 3.0.2、リストサーバとして LetterRip Pro 3.0.7、サーバはこの2つだけだね。あと、rumBunctious 1.5 っていう RAM Disk のソフトを動かしてる。

■FTP は動かしてないんだね?

普段は動かしていないよ。以前は、自宅からコンテンツの変更を行ったり、会議室のメンテを行っていたけど、今は、もう自宅ではそんな時間もとれなくなってるんで、普段は FTP を使う必要はまったくないわけ。それで動かしていない。でも、集中的にコンテンツの変更なんかを行うとき、たとえば学年始めの授業関連のコンテンツの大幅変更の時なんかは、Rumpus 1.2.1 を動かしておいて、別のマシンで ActiveMounter を使ってボリュームをマウントして作業するね。

■フリーウェアの配付も行っているんだから FTP サーバを動かしてもいいんじゃないの?

管理が面倒なのは避けたいし、ちょっとでもセキュリティの問題に繋がりそうなことは、必要じゃない限り絶対にしないというのがお気楽サーバ運用の鉄則だから、FTP はやらないのよ。

■Web サーバについては、まぁ、主役だから色々と積もる話はあるだろうけど、WebSTAR 3.0.2 ってのはどうなの?

WebSTAR と MacHTTP については、すでに「WebSTAR Chronicle」に書いたから、そんなに話すこともないかなぁ。今の WebSTAR 3.0.2 っていうのは、WebSTAR の 68K用最終バージョンなんで、だからこれを使い続けているわけだけど、基本的には、しっかりとして安定していて、信頼できるソフトだと思うよ。もちろん、MacHTTP に出会ったことでこのサイトがスタートしたわけだし、そういう経緯なんかもあって MacHTTP と WebSTAR には個人的に思い入れが強いのは事実。でも、Quid Pro Quo が 2.x になってからイマイチになってしまったのに比べると、ちゃんとしてると思う。

■WebSTAR の運用のコツは不必要なプラグインを抜くことだって、一時期、何かにつけて力説してたけど、自分のはどうなってるのよ?

WebSTAR Data Cache と WebSTAR Virtual Hosts の2つだけだよ。

■管理用のやつすら入れてないんだね。

そう。サーバ運用中はサーバのセッティングは一切変更する必要がないからね。だから WebSTAR Admin を使ってもサーバの設定は変更できないし、もちろん Web を使った変更も出来ない。つまり、管理者の自分ですらサーバの運用中はサーバの設定には変更を加えられないようになっているわけ。こうすれば、admin のポートに対するアタックとか、そういうリスクもないしね。MacOS って、リモートでの管理ができないことが問題のように言われるわけだけど、見方を変えれば、リモートでは絶対にアタックできないってわけじゃない。だから、そのメリットを最大限活かすべきだと思うわけね。

■カウンターを入れてなかったっけ?

ちょっと前までは Maxum の NetCloak を入れて、カウンターを付けたり、動的にコンテンツが変化するページがあったんだけど、今は無くなったので、NetCloak も外した。WebSTAR は、とにかく Web サーバの基本機能に徹して動かしているわけ。

■バーチャル・ホストのやつは?

授業関連のコンテンツは別のホスト名で提供してるのよ。tanaka.ecn.fpu.ac.jp が授業案内のトップページになってる。少しでも学生の URL の入力が簡単になるようにね。とはいえ、バーチャルホストを自分で運用してみたいという気持ちもあってやってるところはあるね。まぁ、これぐらいはいいかなと。自分が唯一 WebSTAR に許した遊びかな。

■WebSTAR にはメモリーをどれくらい割り当ててる?

17.9M ね。このへんは 68M 搭載の強みかな。Data Cache も、あとファイル情報のキャッシュもたっぷりとるために、これだけ割り当ててる。

■コネクションはどれくらいに設定してあるの?

Max 30 だよ。画像は別サーバなんで、Keep Alive 接続は不要だと考えて、認めてない。

■30 って少ないような気もするんだけど?

そんなことないよ。よっぽどのことがないと 30 コネクションが全部埋まってしまうことはないね。あるとすれば、複数の検索サイトのロボットが同時に入り込んでいるとか、あるいは回線にトラブルがあって転送速度が極度に落ちたときぐらいかな。普段は、だいたい4〜5コネクションが常時張られているという感じ。

■1日に1万ヒットでもそんなものなんだ。

あのね、たとえば1秒間に1ヒットあるとすると、1時間に 3600 ヒット、ということは1日 24 時間だと 86,400 ヒットになるわけ。だから、1日に1万ヒットっても、平均すれば1秒に1アクセスないわけよ。まして、この LC475 は何度も言ってるようにページのデータや CGI だけを送りだしてて、画像は別のサーバに受け持たせている。だから、普通だと同じマシンから同時に複数のコネクションを張られることもないわけ。だから、Max 30 でも楽勝ってわけよ。

■じゃぁ、もし画像もこの LC475 で提供するとなると、今の設定では難しい?

会議室なんかはいいけど、さっきの WebSTAR Chronicle みたいに画像をたくさん埋め込んでいるページなんかは大変かな。Keep alive 接続を有効にしないといけないとなると、通常のコネクション数の4倍ぐらいは欲しいところだから、120 コネクションを待ち受けってことになるよね、で、これが全部接続された状態だと LC475 では処理がかなりつらいんじゃないかなぁ。

■そういう意味では、画像を別サーバにまかせた分担制になっていることが、このサイトが LC475 でそこそこに動いている最大の秘訣ってことかもね。

そうだと思うよ。

■リストサーバに話を移そう。リストサーバはもっぱら WSM のメール配送サービス用ってことかな?

もちろんそうなんだけど、学内の大学関係なんかでけっこう色々な ML を運用している。ゼミ生との連絡とかね。飲み会やるとかゼミ旅行に行くとか、そういうイベントがあると、すぐに専用の ML を作っちゃうしね。

■LetterRip っていうリストサーバはどう見てる?

機能的に物足りないところはあるし、アーカイブなんかで日本語というか2バイト言語のことを全く考慮してないといった不満はあるけど、でも、なにより管理運用が楽のはいいね。ML をぽこぽこ作っちゃえる。

■もともとは ListSTAR を使っていたんだよね?

そう。すっごいクセがあるというか、リストサーバとしてできることはなんでもできるようにするぞ、みたいなサーバソフトで、機能的にはすっごい充実してるわけ。その分、設定方法にクセがあって、最初はものすごく取っつきにくい。でも、リストサーバというのは、メールをトリガーにして色々なアクションを起こすサーバであるという基本的な原理みたいなものが頭に入ると、いじるのが面白くなるソフトだよ。今でも、個人的には、MacOS 最強のリストサーバだと思う。

■LetterRip に乗り換えたのはなぜ?

ListSTAR がクラッシュするようになって、仕方なしに乗り換えたんだよ。原因はわからないままなんだけど、とにかく、サーバを安定的に運用することが最優先の課題だからね。原因を推測しながらいくつか策を講じてみたんだけど、どれも効果なかったんで、これ以上原因究明&クラッシュを続けるわけにはいかないな、と LetterRip に乗り換えたわけ。でも、サーバで使用する前から、LetterRip は正規のユーザーだったはずだよ。

■なんで?

MacOS 用の新しいサーバが出ると欲しくなるという悪いクセがあるわけ。だから、LetterRip も製品が出てからけっこう早い時期に購入したんじゃないかと思う。

■じゃぁ、ライセンスを購入してあっても使ってないサーバソフトっていくつかあったんだ。

うん。コレクターズアイテムと自分では呼んでるけどね。Web サーバでも、Quid Pro Quo 2 の製品版は購入してあるし、ResNova の WebForOne も買ったな。買ってすぐに ResNova がマイクロソフトに買収されて製品自体が消えちゃったやつだけど。他にも、ListSTAR とか、前に話の出たパーソナルサーチエンジンである Phantom も。だいたい WebSTAR だって、ちゃんと v4 もアップグレードで購入してるしね。昔にさかのぼれば、FTP サーバの FTPd、その後がまの NetPresenz だってちゃんとユーザーだったし。

■そういえば、一時期、DNS サーバも動かしていたね。

QuickDNS Pro ね。アクセスしてきた IP のルックアップの速度が上がるかな?と思ったのと、何よりネームサーバを運用してみたいということで、QuickDNS を、ほとんどキャッシュサーバとして使ってたな。そういや、今の WebSTAR は DNS Lookup は止めてある。これがかなりの速度低下を招くんだよ。だから IP でログには記録されるようになってる。

■LetterRip に話を戻すけど、メール配送以外と学内の ML 運用以外に何か利用している?

2001 年から、メールで投稿したものが Web ページになるという仕組みを組んで動かしている。日記のようなものや研究ノートをメールで LetterRip 宛の特定のアドレスに送ると、メールが AppleScript で処理されてページに変換されるのね。これは LetterRip の Processor という機能を使っている。これは、メールの内容自体の変更、たとえば題名に ML の通し番号を入れるとかそういうのはできなんだけど、メールを使ってちょいとした仕掛けを組みたい時には便利だよ。

■WSM のメール配送サービスは LetterRip がすべて処理してるんだっけ?

ちがう。LetterRip は、メールの配送処理と、メンバーの登録/削除の処理、つまり純粋にアナウンスメールの発送機能だけを担っている。WSM の書き込みをメールにしたり、1時間ごと、あるいは1日ごとのアーカイブを作って、それを発送するってのは、CGI と UVJ Mailer っていう自作のソフトが担うようになってるよ。

■じゃぁ、明日は、その CGI がらみの話をすることにして、今日はこのへんで。

CGI の話は1回で済むかなぁ…


Day 4 ソフトウェア その2

■MacOS での CGI 作成のノウハウを早くから公開したことが、このサイトが多くのサーバ運用者の目に留まるサイトになったということはあるよね。

それは間違いないね。サーバやサイトの運用に関する情報であれば、たとえば宮崎医科大(当時)の牧原真治さんのサイトとか、牧原さんが運用してた ML があったわけで、そこで情報は得られていたと思う。でも、CGI になると、Tanaka's osax として CGI 作成用の osax を作って公開したこともあって、このサイトで僕があれこれ書き散らしたり公開したサンプルがあったから、とりあえずここを見に来たという人も少なくないと思うな。

■Tanaka's osax については、日を改めて取り上げることにしたいので、今日は CGI の方に話を絞ろう。初めて CGI を組んだのはいつごろ? サイトを立ち上げてすぐだったのかな?

サイトを立ち上げた時点では、MacHTTP には CGI のインターフェースは組み込まれていなかったんだよ。AppleScript のスクリプトを実行する機能はあったんだけどね。サイトをたちげた年の年末に MacHTTP 2.0 が出て、このバージョンで正式に AppleEvent による CGI が実装されたんだよね。で、冬休みに AppleScript であれこれ試し始めたように思う。Form を使った簡単なゲストブックみたいなやつね。

■ちょうど「Mac でWWWサーバーをたち上げる」を NIFTY に公開した頃かな?

そうだね。当時は NIFTY の FJAMEA というフォーラムの HyperCard の会議室に出入りして、議長として会議室の進行役みたいなことをやっていたわけだけど、それで兄弟フォーラムの FJMAES のライブラリに、自分のサイトの立ち上げの時の作業や設定についてまとめた文書をアップしたわけ。で、最初のバージョンには、まだ CGI の話は書いていないと思うので、その後だね。

■あの文書が、MuON の Mac Expo の展示やインターネットセミナーの開催とか、MuON の仲間で結成した Cyber Barbarians での『Macintosh インターネットサーバー構築術』の出版へと繋がっていくわけだ。

そう。当時はまだまだインターネットを利用している人の数なんか少なかったから、むしろ NIFTY で「LC475 でサイトやってます」と言うほうがインパクトがあったわけだね。もっとも、『構築術』は、サイトを見てくれたオーム社の編集の人からのコンタクトで始まったんだけど。

■『構築術』についても、日を改めてじっくり話をした方がよさそうだな。なんか、だんだんトピックが増えていって、終わりが見えなくなってきたような気もするけど。

この際だから、まぁ、出せるものは全部出しちゃうということでいいんじゃないの。で、話を CGI を戻すと、NIFTY にそういうドキュメントの公開なんかしながら、新しい MacHTTP 2.0 で CGI の実験なんかしてたんだけど、最初はうまくいかなったわけ。

■スクリプトの技術が未熟だった?

自分でも最初はそうかなと思ったんだけど、違ってたんだな、これが。Form から送られてきたデータは URL エンコードされているから、スクリプトの中でこれをデコードする必要があるんだけど、これに使っていた osax 、MacHTTP の作者の Chuck さんが作って公開していたフリーウェアのやつだったんだけど、これが日本語に対応してなかったわけ。

■URL デコードの段階では言語は関係ないじゃん。

そう思うでしょ? だけどね、Chuck さんのやつは、元々のデータが ASCII の文字列、つまり7ビットのデータだとして、デコードしたデータの8ビット目を落とすようになってたの。だから、英文ではうまくいくんだけど、日本語だとデータを正しく取りだせなかったわけ。

■それで自分で osax を作ることにした?

いや、osax の自作を始めるのはもっとずっと後だよ。『構築術』の初版の段階ではまだやってなかったもん。1995年の終わりごろに作り始めて、1996年になって Tanaka's osax 1.0 を公開している。WSM の2番目の発言は Tanaka's osax のベータ版に関するアナウンスだよ。

■じゃぁ、MacHTTP 2.0 の時の問題はどうやって解決したの?

どういう経過だったのか、今では覚えていないんだけど、宮崎医科大の牧原さんからメールをもらって、そのメールで Chuck さんのやつは7ビットしか通さないから日本語が扱えないことや、8ビット目を落とさないようにしたものを日本の人が作っているということを教えてもらって、それで初めて自分の CGI で日本語が通るようになったわけ。

■牧原さんとはその時が初めて?

そうだよ。MacHTTP の ML に書き込んでいたりもしたから、それで僕の名前を知ったんじゃないかと思うのだけど、牧原さんの方からメールをもらったんだよね。それからメールで情報を交換したり、牧原さんの ML に参加したりと、色々と交流していくことになったわけ。で、牧原さんの情報のおかげで無事に日本語が使えるゲストブックの CGI が動いて、で、そこから CGI にはまっていくことになったわけだ。

■でも、URL デコード以外に漢字コードの問題があったよね。

そうなんだ。今なら、FORM の書いてあるページを Shift-JIS にしておけば、ブラウザも Shift-JIS の漢字コードでデータを送ってくれるようになってたみたいだけど、当時はそんなことなくて、デコードしてから漢字コードの判定を行って、必要ならば Shift-JIS への変換をしなければならなかった。

■その問題はどうやってクリアしたの?

漢字コードを処理する osax が必要だったわけだけど、そんなものはなかったし、まだ自分に作れるとも思っていなかったのね。で、なんとかならないかと色々調べたら、HyperCard 用の XCMD を osax として使えるようにする osax があったわけ。XCMD だったらそれまで山のように作り込んでいたから、お、これならいけるぜ、ってことで、自分で漢字コードの判定と変換の XFCN を作って、それをさっき言ったツール、確か XCMD osax っていうまんまの名前だったと思うんだけど、それを使って漢字コードの問題はクリアしたわけね。

■すぐにできた?

い〜や。だって漢字コードなんてそれまで気にしたことなんかないわけよ。だから、本を読んで色々調べて、試してみて、って感じで XFCN もすぐにはできてない。XFCN ができるまでは、「ふみづかい」っていうフリーウェアのコード変換のソフトが AppleScript に対応していたので、このソフトと CGI とを連携させて処理させたりしてた時期もある。CGI について解説した文書の「Scripting with MacHTTP」では「ふみづかい」を使うってことにしてたはずだよ。

■今サイトに登録されている 2nd にはそう書かれているね。でも、これって 95 年の秋だから、この時点では XFCN があったんじゃないの?

自分のサイトでは XCMD osax + 自作の漢字コード処理の XFCN でやっていたと思うんだけど、問題は、この XCMD osax は、自分で XFCN を追加したものの再配布が認められなかったのね。XFCN の組み込みも簡単とは言い難かったわけ。それで、取り上げるのを控えていたと覚えている。

■Cyber Barbarians で一緒にやった前薗さんに漢字コードの osax を作ってもらったんじゃなかったっけ?

『構築術』が出てからだったと思うので、もうちょっと後の話になるよ。で、最終的に URL デコードと漢字コードの処理を一体化というか一発で処理する osax が欲しくなって自分の Tanaka's osax に組み込むことにしたわけ。

■最初のうちはサイトにどんな CGI を作って使ってたの?

ゲストブックと、色々な人の書き込みがランダムに表示される「今日の言葉 Words of the day」、「ちょいと誰かに伝言板 Words Disappering through the net 」っていう1行掲示板、「とりあえず言ってみな Something to say」という会議室、それと NetCloak との連携で自分で登録してもらうリンク版の Rhizome、このへんかな。『構築術』に当時の僕のホームページの画像があるけど、それを見るとわかるよ。

■かなり早い時点で掲示板や会議室を作ってあったんだね。

うん。だって基本的な原理は簡単なもんで、誰でも思いつくと思うのよ。書き込まれたものをページに追記していけば掲示板になるなってことは。だから、けっこう早い段階で作った。で、ここでの実験がやがて WSM や EasyBBS に繋がっていくことになるわけ。

■会議室はどんな内容のものだったの?

一切制限なしのフリートークだよ。色々な人が来て、掲示板ってものに書き込むというか、自分が書いた文字がすぐにページになること自体を楽しむって感じだったな。Web ではこんなこともできるんだねぇ、っていう実験みたいな感じ。ある意味、僕自身も、CGI てやつで何が出来るのか、色々としかけては、それが動くこと自体を楽しんでいたからね。

■それなりにアクセスはあったの?

どういうきっかけだったか忘れたんだけど、「と」で始まって「トマト」でおわる文章を書き込むってのが流行って、それで何人か常連の人が出来て、けっこうなペースで書き込みが続いていたよ。

■なんじゃ、そりゃ? って感じだけど。

「とつぜんかかってきた電話に押しつけられた雑用にぼろぼろになった夏の日の自宅で僕を冷たく迎えてくれるトマト」ってな感じで、どうでもいいようなぼやきや愚痴を織り込んで文章にして書き込んでいくわけ。まぁ、無理やり型にはめ込んだようなものになっちゃうんだけど、それもまた楽しいってな感じ。

■ページかログが残ってたら面白そうだ。

残ってないんだよね。最初は自分のサイトのコンテンツはちゃんとアーカイブしていくつもりだったんだけど、そのうち、消すものはさっさと消して、振り返らずに前へ進もうってことにしちゃったから。

■掲示板の方は?

メッセージを1行だけ書き込めて、書き込むとそれが一番上になる。そして、下のやつは消えていく、そういう仕掛けにしてたはず。英語の異様なタイトルをつけてあるのは、書いた文章はいつかは消えていくよみたいな意味合いを込めてあるんだけど、ネタをばらせば、その頃読んだ『天窓を抜けて消えてゆく 20世紀の文化とテクノロジー』O.B.ハーディソンJR. って本から拝借したものなんだよね。この本の原題が Disappearing Through The Skylight なのね。そういや、この本の翻訳者の人が、会議室の方に、掲示板のタイトルはこの本と関係ありますか?みたいな書き込みをしてくださったことがあったな。そういう、なんかネットの掲示板や会議室っておもしろいなぁという感触を得る体験が続いたわけ。

■そこから WSM こと Web Scripter's Meeting の設置へとつながるわけだね。

そうだね。インターネットはやっぱコミュニケーションが面白いんだという確信みたいなものをこの時期につかんだと言っていい。で、フリートークの会議室も面白いんだけど、やっぱ一つの会議室で色々な話題っていうのは、どうしても流れが散漫になるというか、盛り上がりに欠けるわけね。また、僕が参加できない話題も出てくるわけでさ、それがなんとなく悔しいというか。で、1996年に、Web Scripter's Meeting を開設して、そのかわり、それまで動かしていた掲示板や会議室は閉じたわけ。1行書き込みの掲示板っていうのも面白いなと思ったので、つい最近まで、サイト情報のページに Tea Time Talk って名前で組み込んでた。

■WSM の CGI は、後に EasyBBS にまとめるものだったの?

違う。WSM と EasyBBS は全く別のものなんだよね、実は。WSM は、とにかく書き込んだものが追記されていくという形の会議室として動かし始めて、その後、色々な仕掛けを拡張し続けてきたものなんで、実は、今動いているやつも、スクリプトはぐちゃぐちゃなのよ。EasyBBS は、他の人にコードを見せるものだから、ハンドラーを機能ごとに独立させて、構造化っていうの、あれをなるべく心がけて、見やすいスクリプトになるように作ってある。だけど、WSM の CGI は、とにかく動いて自分だけがわかればいい、って感じで書きなぐったスクリプトになってるわけ。今でも、大半の処理は一つの巨大なハンドラーの中で済ませちゃってたりするのね。

■WSM から EasyBBS が生まれたわけではないってことか。

WSM のような会議室をなるべく簡単に作れるようにってことで EasyBBS を作ったわけだから、全くつながりがないわけではないんだけどね。でも、EasyBBS は、もともとは CGI Kit っていう CGI のサンプル集の中に収めてあったかものが出発点。色々な要望を聞いているうちにけっこう大掛かりなものになってきたので独立したプログラムとしてリリースするようになったわけ。

■Google で検索してみたら、EasyBBS DX は 1996年の7月にベータ開始だね。

秋に正式版を出したんじゃなかったかな。CGI Kit に入ってたものが EasyBBS なので、そのデラックス版ということで DX を付けた名前になってる。

■EasyBBS の話はひとまず置いといて、WSM の CGI に話を戻そう。開設した時点から FaceSapn で組んでたんだっけ?

違う。純正の AppleScript のアプリケーションだよ。FaceSpan で組むようになったのは、AppleScript のリエントランシーの問題が出てきて、それを FaceSpan なら回避できるということがわかってからだったと思う。

■リエントランシーの問題って?

AppleScript の CGI は、当然のことながらマルチスレッドでの処理なんかできないから、サーバから AppleEvent が送られてくると、それを順番に一つずつこなしていくわけね。で、問題は、複数の AppleEvent が送られてきた時、AppleScript のアプリケーションは、それを Firtst-In Last Out 、つまり後から来たものをまず処理するということになっていたわけ。スクリプトの中のハンドラーの呼び出しであれば、これで問題ないし、こうでないと再帰なんかできないわけだ。でも、アプリケーションがこの FILO で処理されちゃうと困るわけ。つまり、始めにアクセスした人がず〜っと待たされることになるわけだし、書き込みなんかも時系列が乱れちゃうことになるよね。えっと、このへんの話は WSM の[AppleScript のアプレットの処理の順番]っていう話題に書いてある。WSM の場合、書き込みが重複するほどの頻繁なアクセスっていう状況ではなかったんで、スクリプトで問題が起きないようして動かしていたんだけど、原理的に大きな問題がころがっているってのは気持ちが悪くて、それで FaceSpan にしたんだよね。FaceSpan で組んだアプリケーションだったら、ちゃんと First In First Out でイベントをこなすことがわかったんで。FaceSpan への切り替えについては[AppleScript CGI の多重処理問題の回避法]という話題。そっか、1998年に FaceSpan に切り替えたんだな。

■AppleScript のその問題は解決されなかったの?

AppleScript 関係のメーリングリストでもずっとバグじゃないのかって話題にはなってたんだけど、最終的に修正されたのは MacOS 8.5 とかそういう段階じゃなかったかな。だから LC475 ではそのバグを抱えたやつを使わざるをえないわけ。で、FaceSpan で組むことにしたのよ。

■AppleScript の問題といえば、スクリプトのサイズに 32K バイトの限界があるってのもあったね。

最初のうちは、WSM に関係する処理はすべて一つのアプリケーションの中に収めようとしたので、32K の限界なんてすぐに来ちゃったんだよね。そこで、ハンドラーを収めたスクリプトオブジェクトを作っておいて、それを読み込むという、モジュール式っていうのかな、そういう分割式でやってた。そのうちに、メモリーを増設したこともあって、複数の独立したアプリケーションとして作って連携させることにしたんだけどね。

■WSM は開設当時からあんまり機能は変更してないよね。

そうだね。だって会議室自体の機能は、書き込んだものがページに追記されるって言うシンプルなもんだから変わりようもないしね。むしろ全文検索とか、そういう機能は省いていったとうか、省かざるをえなかったので、機能としては減ってるぐらいかな。

■全文検索といえば、米木さんの GripGrop を使った全文検索を組み込んでた時期もあったよね。

GripGrop は AppleScript による連携が非常にやりやすい作りになってたのね。それで CGI から呼びだして、動的に更新されるページを使って途中経過を表示させながら全文検索をやってしまうっていう仕組みを組んでたな。でも、ページが増えすぎて、さすがに追いつかなくなってしまって、検索機能はあきらめたんだよね。

■データベースを使うのは考えなかった?

当然考えたよ。でも LC475 で快適に動いてくれるデータベースが無かったからねぇ。ファイルメーカーとか Valentina とか、試しはしたんだけどね。もし 68K でさくさく動くデータベースがあったら、WSM の CGI もずいぶんと変わったものになっていたと思う。でも、データがシンプルなテキストファイルとして残っているのは、それはそれで良いことだよ。何があってもデータを取りだせるしさ、後から一括してページのタグとか変更するのも簡単だし。

■WSM の機能の話ということで言うなら、メールによるメッセージの配送を始めたよね。

1997年に ListSTAR を使ってベータの運用を開始して、翌年に LetterRip での運用に切り替えて、そして現在に至るってところだね。最近ではコメントも投稿できるように拡張したけど。これは、もちろん会議室を利用している人に少しでも便利なように、ってことはあるんだけど、自分も出張なんかの時に会議室の書き込みを確認したいってのがあったわけ。出張には PB145B とか PB190 を持っていって、モデムで大学につないで、とりあえずメールだけはチェックするようにしてたからね。もともとは ListSTAR に Timer trigger があって、一定の時間になるとスクリプトを実行する、ちょうど cron みたいな使い方ができるようになってて、それを使ってたんだよね。だけど、ListSTAR が使えなくなってからは、メールの配送機能自体は LetterRip でやるにしても、定期的にスクリプトを動かすってのができない。そこで UVJ Mailer を作って、そこに Timer を組み込んだわけ。

■UVJ Mailer の Timer 機能は WSM のメール配送を続けるためにどうしても必要な機能だったってわけだね。

そう。もちろん、メールの送信機能自体も必要だったんだけどね。ListSTAR はファイルを読み込んで ML に流してくれる機能があったんで、それを使ってたんだけど、LetterRip にする時点で、LetterRip にはメール配送って言うリストサーバ本来の機能だけを担当させることにしたから。そういう意味では ListSTAR = LetterRip + UVJ Mailer ってことだね。

■メール配送以外に追加した機能としては何があった?

cookie を使ってポインタをブラウザに記憶させておくことで、未読の発言だけがリストアップされるという機能を追加したのが一つ。これは HTTP のヘッダなんかを RFC や W3 の文書で確認するっていう作業をやった成果みたいなもんかな。cookie を使うのが嫌な人/使えない人は、手元に簡単なスクリプトをおいてもらうことで同じ機能が使えるようになってる。そして、WSM Watcher の導入が大きいね。これを導入したことで、発言の管理方法が変わったから。

■どんなふうに変わったの?

WSM watcher の場合、発言ごとにファイルにして保存しておく必要がある。だから、それまでは発言はページに書き込まれるだけだったのが、それとは別に、個別にファイルとしても保存されるようになった。だから管理するファイルの数も増えているわけよ。

■WSM watcher の導入は、ある意味で、Web の会議室という性格を変えるってことじゃないの?

確かにそうだね。でも、あんまり Web でやってるってことにこだわっても仕方がないかな、って感じだしね。それに Web 上の WSM に来れば、かならず発言が記録されたページがあって、いつでも確認できるわけで、そういう意味では、Web の会議室が中心にあることは変わりはないと思ってる。

■細かなところでも、色々な機能を追加してるんじゃない? たとえば60日以内に投稿/コメントされた発言のリストとか。

あ、そうだね。あれは会議室の Top ページが7日間の投稿/コメントのものしか表示しないことの補助として作った。「最近2週間の新規発言」、「最近60日に更新された発言」、「コメントが10を超えた最近60日に更新された発言」、「コメントがついてない最近60日に更新された発言」の4つを作ってある。いずれも、夜中の3時になるとスクリプトが動いて、発言のページのチェックを行って該当するものをリストアップするようになってる。これも、もともとは ListSTAR の Timer trigger でやってた処理なんだよね。今は、もちろん、UVJ Mailer がスクリプトの実行を指示してるんだけど。あと、トップページの発言のリストを RSS で確認できるようにもしてある。これはブログの普及にともなって RSS で色々な情報の更新を確認できるツールが増えてきたことに対応したものね。もっとも、この RSS の実装はスクリプトの点では簡単なんだよね。言ってしまえば、WSM のトップページを書き換える時に、同じデータを WSM のトップページ用と RSS 用に整形して出力するだけの話だから。

■そんなこんなで色々と CGI を試しながらやってきたとはいえ、基本は WSM ってことかな?

そうだね、WSM を始めてからは、このサイトの CGI は、大半のものが WSM とのからみで作ったり改造してきたものになっているね。現在、WSM に関係ない CGI っていうと、「田中求之的日々の雑感」の処理をやってるものぐらいかな。でも、これだって、正確には CGI ではなくて、LetterRip の Processor だからね。

■今現在のこのサイトの CGI と補助プログラムはどうなってるの?

まず WSM の基本的な機能を担っている CGI があって、補助の CGI がもう一つ動いている。こちらはもっぱらサーバの管理機能なんかを担っているやつ。CGI として動いているプログラムはその2つ。で、この CGI を補助するものとして、WSM Watcher のデータを Send partial で送りだす処理をマルチスレッドで行うようにした partialEngine というやつと、雑感の書き込みとか、メール配送なんかの処理を受け持つ backkeeper という2つの補助プログラムが動いてる。そして LetterRip の Processor というわけだから、全部で5つの自作の補助プログラムがサイトの運用を支えていることになるね。LetterRip と UVJ Mailer を入れたら7つだな。

■partialEngine の方はわかるとして、backkeeper という補助プログラムを使っているのはなんでなの? スクリプトの 32K の壁のせい?

違う。これは WSM の処理速度を上げるため。今の WSM は、一つ発言が投稿されると、

  1. ページに追記する(あるいは新規の話題ならページを作成する)
  2. WSM Watcher 用に発言をファイルで保存
  3. Digest のページ用のデータを更新
  4. Recent のページ用のデータを更新
  5. メール配送の WSM Daily 用のデータに記録
  6. メール配送の WSM Digest 用のデータに記録
  7. メール配送の WSM Express を発送

と、これだけのファイルの書き込みを中心とした処理が入るわけ。1と2の場合は、ハードディスク上と RAM Disk の両方に同じ内容のファイルを書き込む必要がある。で、さすがに処理が多いので、2の処理が終わった時点で backkeeper に処理を任せるようにしてある。backkeeper を ignoring application responses で呼びだす。つまりリプライを待たずに丸投げして、本体の方は発言を投稿したブラウザに新しいページの URL を返すようにしてるわけ。発言を投稿した人は、自分の発言が書き込まれたページが表示されればいいわけなので、その処理だけは本体がやって、あとは backkeeper に任せちゃうようにしてるわけね。

■でもさ、普通に考えたら、5と6の処理はファイルの書き込みは不要じゃないの? 2で書き込んだ個別の発言の中から該当するものを抜き出してメールする処理を組めばいいんだから。

そのへんはいい加減な継ぎ接ぎででき上がってる CGI ならではってところはあるんだけど、でもメール送信時の負荷を減らすために、あらかじめファイルにしておいた方がいいの。こうしておけば UVJ Mailer の機能だけでメール送信できるからね。

■なるほどね。で、backkeeper に丸投げする方法で処理速度というか、体感速度はあがったのかな?

僕が試した限りでは、若干の体感速度の向上は果たしたと思うのだけどね。サーバ全体の処理速度、つまり書き込みの処理が完了するまでの時間は、AppleEvent のオーバーヘッドなんかも入って延びてるはず。でも、少なくとも書き込みをしたユーザーの人から見ればサイトの反応速度は上がってる。こういう体感速度をあげる工夫が重要だってことは、HyperCard でさんざん試してやったからねぇ。処理速度が稼げない時には体感速度を考えるってのが僕には染みついてるから。でも、本当に体感速度があがったかどうかを正確に測定したわけではないよ。「速度があがったはずだ」という思い込みでやってるから、実際は変わってないかもしれない。

■RAM Disk の導入も速度向上のためだよね?

そうだよ。WSM のコメントがつけられる話題のページのデータと、さっき言った WSM Watcher 用のファイルは、CGI が起動時に RAM Disk にコピーを作るようになっていて、運用中はファイルの読み出しはすべて RAM Disk から行っている。ただ、システムがハングしたりクラッシュするのに備えて、書き込みはすべてハードディスクと RAM Disk の両方に行うようになっているけど。

■なんか複雑になってるみたいだけど、効果はあったのかな?

あったと思いたい。でも、なんていうか、こういう仕掛けを思いついて作るのが楽しいってところはあるから、まぁ、ちゃんと動く仕掛けにできあがっているってことでよいとするってのはあるね。

■このサイトの CGI に関して、今後やってみたいとか、やる予定のことって何かある?

WSM 関連はとりあえずこんなものかなぁという感じはしてる。WSM とは関係ないけど、自分の研究ノートなんかを思いつくままにメールで投稿しておけばページなってる機能を、もう少し作り込みたいかな。雑感にカメラ付き携帯から送った写真が自動で登録される機能は近いうちに実装しようかなと思ってる。まぁ、なんか思いついたら勢いで作ってしまう人間なんで、何が起きるのかは自分でもわからないね。CGI の改造よりも、WSM のアーカイブの整備をやんなきゃ。しばらくさぼったままになってるからね。

■あのアーカイブは手動で作成?

ファイルを抜きだしたり、アーカイブ用に書き換えたり、アーカイブのインデックスを作ったりという個々の作業はスクリプトを書いてやってるけど、そのつど、自分で確認しながら作業してるので、まぁ、手動でやってるみたいなものだよね。

■アーカイブを自動で作っていく機能ぐらい組み込めばいいじゃん。

そうなんだけど、なんか自分の手でやりたいってところがあるんだよね。自分の車を洗車するみたいな感じかな。自分で手入れをしてちゃんと整えていくってことをしたいわけ。そういう変なこだわりがあるんだよね。

■手間をかけたということで愛着もわくみたいな?

そうそう。「サイトを飼ってる」って感じがするわけよ。Mac 自体が、ちょっと前までそんなもんだったじゃない。

■なるほどね。じゃ、CGI の話はとりあえず、ここで一区切りして、明日は Tanaka's osax の話をすることにしようか。その話の中で、また CGI に触れることにはなるだろうけど。

そうだね、Tanaka's osax は、このサイトのために作ったものだからね。


Day 5 Tanaka's osax

■このサイトで公開している自作のフリーウェアのうち、もっとも多くのユーザーがいるのが Tanaka's osax ということになるのかな?

世界中に利用者がいるという点で、広い範囲で名前が知られているものとしてはそうだけど、ユーザーの数だったら、もしかしたら ClipDecoder の方が多いかもしれない。なんせ、あれは雑誌の付録の CD-ROM に収められたり、ホームページ作成のガイド本におまけでついたりと、かなり転載されている。

■ClipDecoder って、Form からメールで送られてきたメッセージをデコードするツールだよね。

Form の action のところにメールアドレスを書いておくと、form に入力された内容が指定されたメールアドレスにメールで送られるようになっているのね。だから、この方法を使えば、CGI が使えないプロバイダでも、Form を使ったメッセージ投稿欄が作れるわけで、簡単にできるわけ。それで、ホームページを作り始めて、でも CGI がどうのこうのってのは面倒だって人にはぴったりの方法なんだけど、メールは URL デコードされたものになってるのよ。それでネットの友人に頼まれて作ったスタックが ClipDecoder なのね。HyperCard が付いてない Mac が売られるようになってから REALbasic でアプリケーションに作り直したけど。URL デコードと漢字コードの判別&自動変換を行って、メッセージを解読できるってもの。似たようなツールは探せばいっぱいあると思うのだけど、比較的早い時期にフリーウェアとして公開したためか、なぜか色々なところで取り上げてもらって、雑誌や本の付録に収録されることも多かったのね。また、ClipDecoder のページでは Form の書き方なんかも説明してるので、アクセスも多かったね。だから、僕の作ったフリーウェアということでは、ClipDecoder が数としてはたくさん出回っているんじゃないかな。

■なるほどね。正確なユーザー数というか、ダウンロードされた回数なんかの記録はないの?

ないね。サイトを立ち上げた時には、丹念にログを分析して記録をとったりしてたんだけど、そのうち面倒になってやめちゃったから。

■なんだかなぁ。まぁ、いいや、とりあえず Tanaka's osax は自分のサイトの CGI のために作ったものということでいいのかな?

そうだね。もともと HyperCard の XCMD のプログラミングをやってたんだけど、その時に使っていた開発環境を使って osax が作れるということに気がついた時に、一気に作り込み始めて、公開したものだね。このへんの経緯は、技術評論社から出ていた Macintosh Developer Journal という雑誌の連載記事の中で「愛しの HyperTalk」(PDF)として書いたので、細かいことは繰り返さないよ。また、僕がどんなふうに osax を作っているのかということは、「田中求之の OSAX 制作の現場」というページにまとめてあるので、そっちも見て欲しいな。ついでに MacJapan という雑誌に書いた「ここまで来た HyperCard の開発環境」(PDF)とか、「HyperCard Developer Tools Museum」というページを見てもらえば、僕が HyperCard のプログラミングにハマっていたのがよくわかると思う。

■HyperCard って、どちらかというとマルチメディア・オーサリング・ツールっていう扱いだよね。

そう。だけど、僕にとってはプログラミング環境だったのね。で、その延長線上に AppleScript が出てきて、XCMD の延長線上に osax が出てきた、という流れになる。HyperCard のスタックを作るのと、サイトの CGI を作るのが、僕にとっては同じような感覚だったわけ。

■Tanaka's osax は海外にもユーザーがいるわけど、どうして知られるようになったの?

ML で売り込んだから。"Macintosh Scripting Systems" っていう、ダートマス大学のサーバがホストになってる、たぶんネットで最古の AppleScript の ML だと思うんだけど、これに入っていて、その中で出てきた質問に対して「あ、それなら僕が作った osax でできるから試してみてね」といったリプライをポチポチと書いてたわけ。そしたら、なんだかんだで、色々な人が試してくれるようになって、ユーザーが広まっていったのね。

■どういった機能が評価されたのかな?

たぶん、ファイルを探しだす MT List Files が一番重宝がられたんじゃないかな。なんせ Finder を使うとファイル検索って無茶苦茶時間がかかるものだったから。あとは置換のやつとか、文字コードの変換、つまり ISO-8859-1 と MacRoman の間の変換のやつとかかな。もちろん CGI 用の URL デコード&リスト分解のやつとか、ファイルの読み書きのやつとか、色々と使っているよというメールや ML のレスポンスなんかはもらったね。

■MT List Files は Tanaka's osax の中でもオプションが多いコマンドになっているのは、そのせい?

もちろんそれもあるけど、自分が欲しい機能をドンドン追加していったらああなったってところなんだよね。CGI を作る時、特に会議室の CGI を作る時には、フォルダー内から特定の条件に合うファイルを探しだすとか、ファイルの一覧を作成するとか、そういう処理が必要になる。それで、Tanaka's osax でも重点的に開発したコマンドの一つだね。たとえば WSM のトップページは、最近7日間に投稿/コメントされた話題の一覧を表示するようになっているけど、あれは発言のファイルが入っているフォルダーの中から MT List Files を使ってここ7日間に更新されたものだけを抜き出すという処理をして、それから個々のページの情報を抜きだしてるわけ。

■なるほどね。じゃぁ、CGI 用の Tanaka's osax の中心になるコマンドってわけだ。

そうだね。MT List Files と MT Parse CGI がコアになるかな。あ、あと MT Timestamp も、単純なものだけど、これなくして WSM は成り立たないってくらい重要なものだね。海外でもこれを重宝してるって人も少なくなかったと思う。

■MT Timestamp って、現在の日時をタイムスタンプの文字列で出力するやつだよね。

そう。これがあるから、WSM や EasyBBS は、発言のファイルの名前はすべてタイムスタンプを入れたものになっている。こうすると、ファイル名でソートした時に古い順番に並ぶし、また特定の日時に作られたファイルを探すのもファイル名をチェックすればいいからね。そして、そもそも AppleScript の日付データ(Date オブジェクト)が非常に扱いにくいうえに、システムの設定の影響を受けるものになっているという大きな問題があったんだ。

■その問題は具体的にはどういうこと?

現在の日時を文字列で得たい場合、current date as string というスクリプトを実行すればいいわけだけど、これでどのような文字列が得られるかは、システムの日時のフォーマットの設定に依存するわけ。日本式の表記を使うように設定している場合と、英語式の表記を使うように設定してる場合とで、まったく違った文字列になってしまう。また文字列から日付データへの変換も面倒だったわけ。それで日付を簡単に扱えるようにしたいと思って作ったのが MT Timestamp と MT DateList で、AppleScript の日付データとの間で相互変換をするために MT Convert date を作ったわけ。これでスクリプトで日付を扱うのが、自分では、格段に便利になったわけね。FORM で指定された日付を AppleScript の日付データに変換して、それを MT List Files に渡して該当する日付に更新されたファイルを抜きだすとか、そんな処理が楽勝でできるわけだから。

■それ以外に AppleScript の仕様の不都合というか使いにくいところを回避するものってある?

MT Byte Length は日本人には便利なものだと思う。データの大きさを返すというそれだけの単純なものなんだけど、AppleScript には実装されていないし、純正の osax にもそういう機能のものは入ってないわけ。length という関数で、文字列の長さを調べることはできるんだけど、これだと、アルファベットも2バイト文字も1文字は1文字としてカウントするから、データの大きさそのものはわからないわけ。でも、たとえば CGI の場合、リプライできるデータの総量に、約32K バイトだったか、それくらいでないとだめだという制限があるので、リプライで組み立てたページや読み込んだファイルのデータの容量を正確に把握する必要が出てくる。そういう時には length が使い物にならないので MT Byte Length を使うしかないんだよね。2バイトだろうが1バイトだろうが、1文字は1文字としてカウントするというのは悪くないとは思うのだけど、文字数とデータというか、表現形と生データという2つのレベルを扱う必要がある以上は、生データのレベルで操作できないと困るわけ。そのへんが AppleScript は今一つ整合性がとれていないというか、中途半端な多言語対応になってると思うわけ。だから length 以外にも、たとえば文字列のアスキーコードを調べたり、アスキーコードから文字列に変換する操作は、アップルの純正の osax が付属してるんだけど、こいつが2バイト文字をうまく扱えない。それで MT ASCII Numbers と MT ASCII Characters を作ったのね。

■なにか不都合があると、とりあえず osax 作って回避って感じ?

そうだね。スクリプトで工夫して解決できる問題であっても、ごちゃごちゃ面倒なスクリプトを書くぐらいなら、ばっさりと osax にしちゃうってのが僕の解決法だね。べつに AppleScript を純正のままで使い続けることがエライとは思わないもん。一つの知的なチャレンジとしてサードパーティの osax には頼らないってのは意義はあるとは思うけど、僕は、自分の LC475 の CGI がちゃんと思い通りに動くことが目的でやってるわけだからね。そういう意味では、基本的には、自分が欲しいものを自分なりに作っていったのが Tanaka's osax なわけ。で、せっかく作ったもんだからってことで ML なんかで触れ回っているうちに色々な人に使ってもらえるようになって、それで他の人の要望を受けて改良したりもするようになった。そんな感じでやってきた。

■これまでを振り返って、Tanaka's osax にとって重大なというか大きな出来事だったなということはどんなものがある?

色々なことがあったはずなんだけど、もう細かいことはあんまり覚えてないんだよね。でも、やはり大きな出来事は 1.x から 2.x への用語の大幅な変更かな。あ、そうだ、その前に、致命的なプログラミングミスが発覚して、その時点で作ってあったコマンドのほとんどすべてを修正するっていうことがあったな。今思い返すと、この2つの事件は大きかったかな。

■プログラミングミスの方の話から聞かせてもらおうか。どういうこと?

Frontier とか osax あるいはツールの開発で有名な飯森さんに指摘されて初めて気がついた、致命的なバグがあったんだよね、最初の頃のバージョンには。えっと、これが発覚したというかわかった時のやりとりは WSM に残っている。[Tanaka's OSAXのsetClipTextがこけます]っていう 1997年11月の話題だね。ここで飯森さんが指摘されているように、Tanaka's osax は AEDescripter という構造体へのハンドルをメモリー上にちゃんと確保してなかったというバグがあったわけ。で、たまたまそれまではうまく動いていたし、自分もそんな問題があるとは気がついてないからデバッガでその点をチェックしたりしてなかったのね。で、これに気がついて、わぁ〜〜〜ってことで、あわてて全部のコマンドを作り直したわけ。でも、結果として、それまでうまく行かなかったこと、たとえばリスト形式のデータを扱うとかね、それができるようになったので、この事件を超えたことで、一気に自分で作れるものが拡がったし、また osax も安定するようになった。

■そのバグは、自分ではまったく気がつかなかった?

うん、まったく。そもそも僕の osax のコードは、Double-XX というツール、これは CompileIt と組み合わせることで HyperTalk でスタンドアロンのアプリケーションが作れちゃうという開発ツールなんだけど、そのツールのサンプルコードとして書かれていた AppleEvent の処理のコードが元になっている。Double-XX と CompileIt は Tom Pittman っていう Tiny BASIC で有名な伝説のハッカーが作ったツールだから、そのコードが間違ってるとは思いもしなかったのね。もちろん、Double-XX 用のコードなんだから、それを osax として使う時点で気をつけるべきなんだろうけど、幸いというか不幸にして、自分で初めて作った osax が動いちゃったわけよ。で、おお、これでいけるぜ!、僕も osax が作れるじゃないか!って、あとはひたすら突っ走ったわけ。そういうわけで、この時になるまで、足下に大きな地雷が潜んでいることにまったく気がつかなかった。だから、さっき触れた Macintosh Developer Jounarl の「愛しの HyperTalk」っていう記事も、実は、このバグが潜んだままのコードが載ってるのね。もっとも、HyperTalk のコンパイラで osax を作るやつなんて僕ぐらいだろうから、あのコードは実害は無かったんじゃないかと思うんだけどね。

■でも飯森さんからフォローしてもらえるってのも会議室ならではだね。

そうだね。そういう点も含めて、Tanaka's osax は WSM と共に歩んできたものになっている。

■じゃぁ、もう一つの事件の用語の変更にいこうか。

これは Tanaka's osax が海外でも色々な人が使うようになったから起きたことと言ってもいいんだよね。もともと Tanaka's osax のコマンド名は、たとえばファイルをリストアップするやつは dirLister って名前になってたのね。他のコマンドも皆、似たような名前の付け方をしてたわけ。で、これに対して、Main Event って会社をやってた Cal Simon 氏からクレームがついたわけ。問題になったのは2つで、一つはもっと動作内容をちゃんと分かりやすく表現したものにしろということと、他の人が作った osax と名前のバッティングが起きないようにしろ、ということだった。Cal さんは、とにかく AppleScript は誰にとっても取り組みやすい、読んで処理内容がわかるような、そういうスクリプト言語であるべきだってことに拘っていて、「正しい」英語になっていない言葉を持ち込むことになる Tanaka's osax のコマンド名が嫌でしょうがなかったみたい。それと、動作内容を表した英語表記にしろというと、たとえば List files なんていう、誰もが思いつきそうな表記になるわけじゃない。そうすると、コマンド名のバッティングが起きてしまう可能性があるわけ。また実際にコマンド名のバッティングが起きてたわけよ、僕の osax ではなかったけど。で、その2点を改良したバージョンを出すように、僕にメールしてきたわけ。

■Tanaka's osax をひっこめろ、というものではなかったのね?

それはなかったよ。osax を色々な人が作ることで AppleScript が豊かになるということは重要なことだと思ってたみたい。Main Event は Scripter っていう AppleScript 用のスクリプトエディタを販売してたんだけど、これに osax がバンドルされていたりしたからね。で、Cal さんと、もう一人、ニュージーランドに住んでる Joe さんだったと思うのだけど、僕の osax をえらくかってくれていた人がいたんで、彼にも助けを求めて、僕が名前の改良案をメールしては意見をもらうって感じで作業を進めて、最終的に 2.0 のコマンド名を決めたわけ。Cal さんは完全には納得しなかったんだけど、もういいだろぉって感じでリリースしちゃったんだよね。

■2.0 っていつ出たんだっけ?

さっきのバグ騒動の翌年の 1998年だね。

■用語の変更の混乱はなかった?

もちろんドタバタ騒ぎはあったよ。だいたい、僕が公開していたサンプルのスクリプトや EasyBBS なんかも全部書き直す必要があるわけだし。もちろん、使ってくれていた人に大きな迷惑をかけたわけ。1.x と 2.x は同時には使えないわけよ。すると、たとえば今度の EasyBBS は新しいバージョンを使ってくださいといっても、ユーザーの人が 1.x を使ったスクリプトを使っていたりすると、そっちも全部 2.0 用に書き換えてもらわないといけないことになるよね。2.0 にする時にパラメーターなんかも細かく変更していったから、スクリプトのコマンド名を置換すれば済むってわけにはいかなかったのね。そういうこともあって、ずいぶんと色々とユーザーの人には迷惑をかけたし、不要な混乱を引き起こしちゃった。

■2.0 を出した時点で 1.x のサポートは打ち切ったの?

致命的なバグがあった場合だけ修正に応じてね。結局 1.41 まで出したんじゃなかったか。それと、過去のサンプルとか、他の人のスクリプトを動かすのに 1.x が欲しいという人も少なくなかったんで、しばらくは web ページから入手できるようにしてあった。

■今はさすがにない?

Tanaka's osax の Web ページにはリンクはないけど、公開用のフォルダーの中にはまだあるから、入手は可能だよ。えっと、Tanaka_osax_1.41.hqxだね。この 1.41 が 1998年の 10 月に出てて、これが最後になったわけ。

■Tanaka's osax は、結局、PPC Native にはならなかったのはなぜ?

僕が C あるいは C++ での Mac のソフトウェア開発をマスターしなかったからというのが一番の原因かな。僕のサイトの LC475 で動かすためには 68K のコードでよいから、僕自身の中には PPC Native にするというモチベーションがいまひとつ高くなかった。それに、PPC のマックで使っても、マックがどんどん早くなったこともあって、68K のままでもそれなりに高速で動く。だから、普段の仕事なんかで使うのも、これでいいじゃんって感じだったのよね。でも、使っている人たちから PPC Native にしないのか?って声は多くて、それに新しいチャレンジとしては面白いかなということで、CodeWarrior を買って、C++ のテキストも読んだりはしたんだよね。でも、結局、手を付けないままになっている。今となっては、もう PPC Native にする必要もないだろうから、Tanaka's osax は PPC Native にはなりませんと言ってもいいよね。なりませんでした、って方が正確かな。

■せっかく買った CodeWarrior もハードディスクのこやしってわけだ。

まったく役に立たなかったわけではないよ。ZoneRanger っていうメモリーの使用状況を監視するツールがついていて、それはデバッグの時に使ってたし、REALbasic のプラグインはなんとか作ったし。もっとも、公開されているソースをあれこれ見ながら、見様見まねで書いたものではあるんだけど。でも、まぁ、確かに、無駄だったと言われても仕方がないかな。

■そうこうするうちに OS X の時代になってしまったわけだ。

そうだね。で、自分が普段の仕事では OS X を使っていない状態がずっと続いてたんで、OS X でのプログラミングもするわけもなく、だから Tanaka's osax の OS X 版も作るわけがない、って状況なわけよ。

■よくもわるくも LC475 と共にあるってことかな。

そういうことだね。少なくとも osax はこのサイトで使うために作り続けてきたものだからね。

■そういや、CodeWarrior には挫折したけど、REALbasic にはハマったんだね。

うん。REALbasic でアプリケーションが作れるようになったんで、余計に CodeWarrior に取り組む必要性がなくなったんだよね。

■その REALbasic でも、いまだに v1.1.1 を使い続けてるわけね。

だってちゃんと安定して動かせる 68K のアプリケーションを作るには、このバージョンしかないからね。

■HyperCard のプログラミングから入って、XCMD、osax へと展開し、REALbasic でのアプリ開発と来たわけだけど、プログラミング活動としては、このへんで一区切りって感じかな?

もっともっと先に進みたい気持ちはある。だけど、今は、もっと他のことに時間が欲しいってところかなぁ。サイトの運用ということでも、なんか CGI でどうこうっていうよりも、コンテンツの方での充実に取り組みたいかなと。

■というところで、Tanaka's osax の話はこれくらいにしておこうか。ソフトウェア関係の話が続いたので、ここらでちょっと別の話ということで、明日は『Macintosh インターネットサーバー構築術』の出版の話をしようよ。

これまた、話しだすと長くなるネタがいっぱいなんだなぁ。


Day 6 『Macintosh インターネットサーバー構築術』

■『Macintosh インターネットサーバー構築術』、長いからこれからは『構築術』と呼ぶけど、この本が出たのが 1995年。サイトを立ち上げた翌年のことだね。

本の奥付は平成7年11月30日発行に第1版第1刷発行になってる。だから、だいたいサイトの運用を開始して1年目ってところだね。

■何刷まで出たんだっけ?

最後の刷は平成8年12月10日の第1版第11刷だね。

■10回も増刷したの?

うんにゃ。これは出版界の慣例らしいんだけど、刷の番号は実際に印刷した回数を表してないのよ。実際の増刷は2回だよ。

■全部でどれくらいの部数が出た?

印刷した部数は、確か1万部だったはず。1万の大台にのったかぁ、自分がこの先1万部も印刷するような本を書くことなんかないだろうなぁ、と思ったのを覚えている。

■そんだけ売れたってことか。

どうなんだろうね? コンピュータ関連の本って、なんか部数は多そうだけど。でも、自分が普段読んでいる本に比べたら、やっぱ多いよね。人文社会の専門書なんかだと初版は 1000部とか、そういう世界だから。

■それにしても、サイト開設から1年で本にまとめちゃうというのは、また、えらく急な展開だね。

そう思う。だけど、商品として考えた時、1995年のうちに出してこそ売れると考えて、なんとか作ったものなのね。類書も海外ではポチポチ出てきそうな気配だったし、日本でもおそらく直ぐに誰かが出すだろう。それにネットは動きが速いから、のんびり書いていたんじゃ、本になった頃には情報が古くなって話にならないだろう。ま、そんなこともあって、1995年のうちに何が何でも出すということでやったわけ。

■執筆した仲間は、皆 MuON で知りあった友人だよね。

そう。今はインターネットの ML が中心になってるけど、当時は NIFTY のプライベート・フォーラムを拠点にしてた NIFTY の Mac のユーザー・グループが MuON で、僕は出来た時から参加してたわけ。で、この MuON に入っていたことで『構築術』を仲間で作ることになったと言ってもよいんだよね。

■そのへんの経過を振り返ってもらえるかな?

まず、前にも言ったように、僕は、自分がサイトをたちげた経験をもとにして、Mac での Web サーバの立ちあげかたのガイドをまとめた文書、『MacでWWWサーバーをたちあげる』を、NIFTY のライブラリにアップしたり、自分のサイトで公開していた。で、MuON ってのはパソコン通信をやってる Mac ユーザーの集まりだから、インターネットなんかにも関心を持っている人や日本でもサービスを始めたばかりのプロバイダにさっそく加入したって人も少なくなかった。それで、サイトをたちげた翌年の 1995 年2月の Mac Expo Tokyo のユーザーグループの出展コーナーに、MuON としてインターネット関係の展示をやってしまおう、その場で Web サーバを動かして見せてしまおう、ってことになったのね。それで Expo の展示関係の作業部隊として MuON WWW チームっていうのが結成されて、ML を使って連絡をとりながら、Mac Expo で Web サーバの展示をやった。

■そのときの Mac Expo Tokyo には行ったの?

行ってない。確か入試業務かなんかがぶつかって無理だったように覚えてる。だから、僕は、ML でもっぱらサーバの設定や CGI の作成なんかの後方支援という形で作業に加わっていたわけ。さっきの文書の『MacでWWWサーバーをたちあげる』も、確か前薗さんがページメーカーでレイアウトを整えて印刷したものを、会場で配付したはずだよ。

■展示は成功したの?

会場の設営とか大変だったみたいだけど、無事にサーバを動かして見せることはできたみたい。で、その後も、MuON WWW チームの ML でなんだかんだと皆で話をしていたわけね。そして、オーム社開発局の渋谷則夫さんという編集者から僕にメールが来たことかきっかけで、『構築術』の執筆に向けて動き出すわけ。

■渋谷さんは Mac Expo の MuON の展示を見てコンタクトしてきたの?

そうじゃなくて、ネットサーフィンしてて僕のサイトを見つけて、渋谷さんが Mac のユーザーだったこともあって関心をもって、それで僕にメールしてきたみたいだよ。最初は『MacでWWWサーバーをたちあげる』をベースにした書籍は作れないか?という、僕個人への依頼だったのね。

■それが Cyber Barbarians というチームによる執筆になったのはなぜ?

まず『MacでWWWサーバーをたちあげる』は、すでに色々なところに配付してたし、どっかの出版社のムックに収録されることにもなっていたりして、そのまま使うというわけにはいかなかった。それに Web サーバだけでは本にならないし、本1冊分も僕が一人で文章を書くのも無理だ。そこで、インターネットの他のサーバーも含めた本を仲間で書くってのはどうかと僕から渋谷さんに提案して、その方向でやっていくことになったわけ。

■オーム社の渋谷さんからメールがあったのはいつ?

1995年5月1日。ちょうどオウムの騒ぎの真っ最中だったので、メールの冒頭で、「オーム社といっても、いま世間を賑わせている、某団体とはまったく関係はありません。念のため」という断りがはいっていたなぁ。オーム社なら、アマチュア無線の国家試験の教科書なんかでお世話になったから、僕は知ってたんで、かえっておかしかったけど。後で渋谷さんに聞いた話では、オウムとつながりがある出版社と勘違いして怒りの電話がかかってきてたりしてたみたい。

■即座に執筆チームを結成したの?

さっき言った MuON WWW チームの ML で呼びかけたのは、同じ日のうちだったから、かなり早く動いたね。GW中だったけど、渋谷さんから即座にメールの返事がきて、じゃ、仲間でサーバー本を作るって方向で相談してみますって話がついた時点で、呼びかけたの。以下が、そのときの僕のメール(一部省略)。

この件は、現時点ではこのML以外ではオフレコでお願いします。MuON PFでも絶対に触れないでください。

実は、技術系書籍の出版社であるオーム社(時節柄名前では苦労していらっしゃるようです (^_^; )より、私の「マックでサーバー」を書籍にしないかとの話がきました。しかし、ご存じのように、私のドキュメントはあくまでもフリーウェアとして配布するのを目的として書いておりますし、また、すでにフリーとしてExpo での配布や他への転載、ムックへの一部掲載が行われています。

ですから、私のドキュメントをそのまま書籍にするつもりはないとの返事を出したのですが、その際に、以下のような代替案を出してみたわけです。

> 実は、私の属しているマックのユーザーグループでは、先の Mac Expo で
> マックによるサーバーと、ユーザーグループの Home Page のデモを行って
> います。この作業に取り組んだメンバーには、私のようにマックでサーバー
> の実験を行っている者や、メールサーバーを動かしている者、あるいは
> プロバイダで Home を作っている者、などいろいろな実験を行っている
> メンバーがおります。そこで、私が中心となって、このユーザーグループ
> の同士が、互いに自分の経験をまとめるというかたちでなら、なんとか
> 書籍かムックにはなるのではないかと思います。いかがでしょうか?

省いた部分で、WWW サーバーだけでなく、メールサーバーや ftp サーバーあるいは、プロバイダでの Home ページの作り方/活用なども含めたものにしたらどうか、ということも書いておきました。ようするに、インターネットで、個人ベースで情報発信を行っていくことに関連するネタ一般の本ということですね。

そうしましたら、GWにも関わらず速攻で返事が来まして、かなり乗り気で、

>  とにかく、弊社の企画会議で提案していこうと思います。次回企画会議は5月10
> 日で、提出締め切りは5月8日の夕方です。もし、間に合うようであれば、それまで
> に書名や構成を固めていきたいと思いますがいかがでしょうか?

ということです。「仲間と相談の上、なるべく早く返事をする」という返事を出しました。5月5日夜までには、何らかの返事/提案を出すことにしています。

で、ここからが本題です (^_^;

このMLに参加しているみなさんにおたずねですが、一緒にやってみようと思われる方、いらっしゃいますか? もし本当に本を作ることになるのであれば、Mac で WWW サーバーを動かすことに関する部分は私が書くつもりですが、そのほかのサーバーや、プロバイダでの Home作りなど、ほかの方に、ぜひ加わって協力してもらわなければならないでしょう。というか、皆さんの協力が得られるのであれば、書籍を作るという方向で話を進めてみようかと思っています。

原稿の具体的な締め切りや分量は未定です。あちらは図を含めて300ページほどのものを考えているようですが、こちらの提案次第で調整可能とみています。(場合によったら AppleScript のスクリプトをだぁ〜〜と載せちゃう手があるな (^_^;; )

というわけで、

 インターネットで、個人(個人が基本となって)として、情報発信を行う

というテーマに関連して、書籍づくりに参加してもよいと思う方は、知らせてもらえませんか? 一部分全部を担当するというのではなくて、自分でできる範囲で協力してもらえばよいかと思います(補足や調整は、いざとなれば私が責任をもって行います)。

なお、あくまでも、打診があったということで、本決まりではありませんので、その点は誤解の無いようにお願いします。また、何なりと意見や要望や批判がありましたら言ってください。

■この呼びかけに応えて集まった人たちが Cyber Barbarians ということになったわけだ。

そうだよ。で、メンバーが固まった時点でメンバー用の ML を作ってもらってそっちで打ち合わせとかをしていったわけ。渋谷さんにも加わってもらってね。結局、本の原稿を書いてる間も、ずっと ML だけで連絡しあって作業したのね。

■Cyber Barbarians のメンバーは全部で7人だっけ?

僕もいれて7人。50音順で以下のメンバーとなった。

■皆、面識はあったの?

チームを組んだ時点では、誰とも直接会ったことは無かったよ。MuON のオフ会はもっぱら東京とか大阪でやってたから、僕は出たことなかったしね。もちろん、NIFTY の会議室では知りあってた仲間なんだけど。

■一度も直接に会ったことが無い人たちといっしょに本を作るって不安じゃなかった?

それは全然無かったね。だって、MuON とか、Mac Expo なんかの共同作業なんかを通じて、ある種の信頼はすでにあったから。そうじゃなかったら、仲間と本を作るなんて提案はしないって。

■今では皆と会ったのかな?

上田さんとはまだ会ってないねぇ。本を一緒に作った時にはフランスにいたんで会えなかったんだけど、その後、帰国されてからも会う機会を逸したままだなぁ。

■職業や年齢もバラバラなのかな?

そうだよ。でも、全然、そのへんのことは気にしてなかったし、関係ないと思ってたから。一緒に本を書いてくれるってことだけがしっかりと確認できたら、それで十分やっていけると思ったのね。そして、それは間違ってなかったわけよ。

■執筆チームができて、すぐに執筆にとりかかったの?

いや、まだその時点では書籍を作るってことは正式に決定してなかったの。だから、まずどんな内容の本にするべきか、いわゆる企画書ってやつを皆で相談しながらまとめるという作業をやってた。5〜6月の時点では、編集会議を通らなかったのね。そんな本が売れるのか?って慎重論が強かったみたい。当時、オーム社はインターネット関係の書籍を何冊も出してたんだけど、それでも Mac でサーバってのはどうなのよ? って感じだったんだろうね。で、なんどか企画書に変更を加えていきながら、渋谷さんがオーム社の編集会議を通すのを待つって感じだったかな。一時期は、どうやら編集会議は通りそうもないから、本は無理かなぁって話にもなってたことがあったな。本は無理でも、せっかく集まった仲間で何かできたらいいね、みたいな話をしてたのね。

■じゃぁ、最終的に書籍化のゴーサインが出たのはいつ?

7月。日経 Mac って雑誌が当時あったんだけど、それに Mac のサーバ運用の連載記事が載り始めるという感じで状況がちょっと変わってきたこともあって、7月5日の編集会議でようやく企画が通ってゴーサインが出た。で、年内に出すという方針だったから、原稿の締切が9月1日で、発行予定が11月初旬ってことで作業がスタートしたわけ。この時点で、本の著者は Cyber Bararians でいくことも了承されたのね。7月にちょうど MuON が主催のインターネットセミナーをアップル本社のセミナー室を使って開くってことがあって、そのときに、渋谷さんにも来てもらって、その場に来ることが出来たメンバーは出版契約書を受け取った。僕もその場に行って、というかセミナーの講師として喋ったりもしたんだけど、それで初顔合わせってわけだったのね。

■2ヶ月で原稿を仕上げたわけだ。

そう。とはいえ、実際は9月の終わりまでずれこんじゃったんだけどね。でも、ひたすら原稿を書いた夏だったのは事実だね。この辺の経緯をまとめたものを、かつて MuON のフォーラムに書き込んだことがあるんで、その時の文章を引っ張りだしておく。文中に MuON の内部的な問題に触れた箇所もあるんで、その部分は、一部、書き換えてあるけど、あとは原稿が仕上がった時に書いたもの、そのままになってる。

●プロジェクトの経緯

5月にオーム社渋谷氏より、田中の「Mac で WWW サーバーを」をもとに書籍を書かないかとの打診があったのがきっかけです。これに対し、田中の返答は「この文書をそのまま書籍にするつもりはないし、WWW だけで書籍を作るのは自分には荷が重い。しかし、仲間に協力を求めて、WWW 以外も含めたサーバーと、プロバイダのホームページ活用のテクニックも含めた、インターネットにおける個人の情報発信に関する話題の本であればまとめられる可能性がある」というものでした。

渋谷氏よりぜひその方向で書籍を作ってみたいとの返事があり、それを受けて、田中が MuON WWW チームの連絡用メーリングリスト(ML)でメンバーを募集した結果、6名が名乗りをあげ、田中を加えた7名でプロジェクト・チームを結成することが決定。専用のMLを吉本さんにたち上げてもらい、渋谷氏にも加わってもらって、とりあえずオーム社の編集会議に提出する書籍プランを煮詰めていくことから活動を開始しました(オーム社の編集会議をパスして初めて書籍化にゴーサインがでる)。

本の内容と出版時期(今年中というのを想定)を見て、書籍化を MuON のプロジェクトとして取り組むのは不可能と判断し、田中の個人的なプロジェクトとして進行することに決めました。WWW チーム用MLでのみメンバー募集を行ったのも、このMLに参加しているメンバーであれば、各自がインターネットの情報発信のノウハウを持っていることが分かっていたからです。また、Expo での経験を通じて、メールによる連絡と作業にも慣れているということもありました。

インターネットの主流環境である UNIX が貴族制民主主義の世界ならば、Mac でサーバーをやるなんて野蛮人だよね、ということで、古代ギリシャ人が周辺の野蛮人を指すのに用いたバルバロイが語源と言われる Barbarians をグループ名に用いることにし、Cyber Barbarians を正式のグループ名(執筆者名)に決めました。漢字表記した「電網野蛮人」でいこうかという話もありましたが、結局 Cyber Barbarians で通すことになりました。なお、チーム内では略称(愛称) Cybaba /サイババという呼び名を使っていました。

7月までの約2カ月弱をかけてプランを煮詰めていき、最終的にオーム社の編集会議をパスして、書籍化のゴーサインが出たのが7月のはじめ。原稿締切は9月1日に設定されました。

その後、様々な事情が重なって、最終的になんとか原稿が揃ったのが、9月29日です (^_^;; これから渋谷さんが具体的な書籍化のための編集作業に入り、校正を経て、順調にいけば11月下旬には発売の運びとなります。

●作業方法

吉本さんのサーバーにプロジェクト専用のメーリングリストを設けてもらい、それを使ってすべてメールで作業を進めていきました。最後の詰めの段階に入ってからは、毎日相当数のメールが飛び交うことになりました。なお、現時点でも、メンバー全員が顔を合わせたことはありません。

原稿については、オンライン入稿ということにし、吉本さんの ftp サーバーに専用のディレクトリーを設けてもらい、そこに原稿をアップしていくという方法を取りました。最終的な原稿も、このftpサーバーから渋谷氏にダウンロードしてもらうことになっています。このように、徹底してマックのサーバーを活用した、ネットワークによる作業を行いました。

執筆の手順として、まずそれぞれ自分の持ちネタにかんする第1稿をたたき台として書き、それをチェック係と執筆者以外のメンバーが目を通して詳細なコメントや批判を出し、それをうけて原稿の修正を重ねていくという手順を取りました。構成の変更や加筆・修正・削除が何度も繰り返され、幾度もバージョンアップを経た原稿が最終稿となっています。

各自、本業を別に抱えた身ですので、いつも執筆やリライトの時間がとれるわけではありません。場合によってはネットワークのアクセス(=メールのチェック)さえままならない状態にもなります。そこで、状況を見ながら、その時々に動ける人間が必要な作業を行うということで進めました。第1稿の執筆者とは別の人間が大幅なリライトを加えたり、あるいは削除・追加を行ったりもしています。

このような作業を行いましたので、一応の執筆分担はありますが、実質的にはメンバー全員で作り上げた原稿となっています。また、このような経緯をふまえ、書籍には、執筆分担は明記しないことにしています。

●書籍の内容

最終的に以下の内容をカバーするものとなりました

書籍の名前は『Macintosh インターネット・サーバー構築術』になっていますが、内容としては、個人が、マックを使って、情報発信をおこなっていくための方法を解説したものになっています。

Everyone could be an Author on the Network!

が基本コンセプトです。

■このレポートでは皆が共同分担ってことになってるけど、実際のところの執筆の分担とか調整はどうなってたの?

たとえば僕は Web サーバの部分の原稿を書くといった、各自の第1稿の分担はあったけど、いったん書き上がった原稿はお互いに修正しあったし、時間とれなくて書けなくなった部分は別の人が引き継いで書いたりしたわけ。それと、原稿のチェック係を2名おいて、この二人は第1稿は書かないかわりに、徹底して原稿のチェックをするってことで作業してもらった。このチェック係を置いたってが、ある意味で、短期決戦だったけど、それなりのものにまとめることが大きなポイントじゃないかと僕は思ってる。というのも、チェック係という分担を置くことに決めたのが僕だからなんだけどね。

■作業は全部 ML と ftp サーバだけでやったの? グループウェアみたいなものは使わなかった?

作業環境もすべて Mac のネットワークでやろうってことでやってたんで、グループウェアは使ってない。使えるようなソフトは無かったからね。今だったら Wiki なんかを使って作業するところだろうねぇ。

■「Everyone could be an Author on the Network!」というキャッチコピーは本の表紙にも印刷されてたね。

うん、なんかぴったりのフレーズがないかなって皆で考えたものなのね。で、アップルが HyperCard のキャッチフレーズに Everyone is an Author ってのを使っていたことがあったんで、それを変奏したものにしたわけ。特別な人じゃなくても、Mac でできるんだよぉ、ってことを言いたくてね。このフレーズは、本の「序文」の冒頭にも書いてあったんだ。今日は引用が多いついでに、『構築術』の序文を引用しておく。

Everyone could be an author on the network.

インターネットにつながった1台のMacintoshがあれば、誰もが情報発信者になれる。それを伝えたくて、私たちはこの本を作りました。自分のMacintoshでサーバーをたち上げたり、あるいはプロバイダの提供してくれる環境を活用して行くことで、それまでインターネットの1ユーザーでしかなかった人でも、自分でデザインできる様々な情報発信の手段を手にすることができる。UNIXやネットワークについて専門的な知識がなくとも、Macがあれば、それができる。そう、ユーザーとしてインターネットを利用していた人にでも、自分のMacintoshで情報発信ができる! この驚きと興奮を少しでも多くの人と分かち合いたいというのが、私たちがこの本を作った動機です。

インターネットはUNIXを使っていた人たちの努力によって発展してきたネットワークです。現在でも各種のサーバーの多くはUNIXのワークステーションが担っています。こうしたインターネットにおいて、UNIXにも詳しくなく、またネットワークについての知識も怪しい、しかもワークステーションではなくMacintoshというパソコンで情報発信を試みる人間というのは、野蛮人(=Barbarian)のようなものかもしれません。しかし、たとえ野蛮人と言われようとも、自分の手で情報発信を試みていくことが、自分のネットワーク・ライフを豊かにし、また、インターネットという文化に積極的に関わっていくことではないのか? いささか大げさではありますが、こうした思いを私たちは持っています。そして、この私たちの思いを共有する仲間が一人でも多くなって欲しいと願っています。

本書はMacintoshによるインターネットの入門書ではありません。また、Macintoshのネットワークの解説本でもありません。Macintoshでインターネットに接続するという段階を終えた人たちに向けて、さらなる一歩を踏み出していくことを呼びかけたものです。この本が、あなたにとってのインターネットを、単なる情報収集の場や娯楽の場から、自分の持っている情報を仲間と共有するための場へと変えていくための道しるべとして役立てば幸いです。

謝辞

Cyber Barbariansは、MuON(ミューオン、Macintosh Users' Group on Network)というMacのユーザーグループでの出会いから生まれました。MuONはネットワークを基盤にして活動しているMacのユーザーグループです。メンバーは日本を中心に国外にも広がっており、日常的な活動はニフティーサーブやインターネットを使用したネットワーク上で行われています。私たちはMuONを通じて様々な人たちと出会い、仲間とネットワークを通じて協働することを学びました。本書の執筆中の打ち合わせは全てインターネット上で行われ、Cyber Barbariansのメンバーは、本書の執筆が完了した時点でもまだ全員が一堂に会したことはありません。このような方法で本書を上梓できたことはMuONでの活動から得た経験に拠るところが大きいと思います。

また、私たちの体験をこうして一冊の本としてまとめることができたのも、協働の輪に加わり、書籍を作ることの厳しさと喜びを教えてくださったオーム社開発局の皆様のおかげです。

最後に、私たちを支えてくれた多くの仲間に感謝します。

1995年11月

編者一同

■本の帯も、背中にところに大きく「できる!」って書いてあるやつだったね。

そう、まさに、そのことを伝えるために作った本だからね。そういえば、本の表紙はビーズを敷き詰めた写真を使った、わりとスッキリとしたものになったんだけど、企画の段階では、るじるしさんに描いてもらうという話もあったのね。で、一応の内諾はとってあったんだけど、予算なんかの関係で実現しなかったんだよね。ま、そんなこともあったけど、とにかく11月に無事に出版にこぎつけたわけ。

■出版記念パーティみたいなことはしたの?

した。東京に集まることができたメンバーと、オーム社の渋谷さんと同僚のかたとその友人でタイ料理の店に行って、それからメンバーだけで2次会へ行ったんだったと思う。そうそう、そのタイ料理の店が神保町だったんで、パソコン関係の本をたくさん置いてある本屋に行って、おお、あるある、って喜んでた。なんか本当に本になったんだなぁと感激したのを覚えてる。

■出版されてからパソコン雑誌に書評なんかのった?

ソフトバンクから出ていた Internet user っていう雑誌があったんだけど、それがすぐに好意的な書評をのっけてくれたね。あと、たしか、日経 Mac にもちょっとしてから書評が載ったはずだよ。書評はそれくらいかな?

■パソコンやインターネットは変化が早いんだけど、『構築術』も、その影響は受けたよね?

取り上げたソフトの新しいバージョンは出るは、なくなってしまうものはでるは、そりゃまぁ当然のように本に書いたのと違う状況になっていったね。ホームページを作ってサポートしたり、増刷の度に情報を書き換えたりして対応してたけど、やっぱ本だと変化をフォローするのは厳しいなというのが実感。

■改訂版を出すという話はなかったの?

ずぅ〜っとあって、企画を練ったりしていたんだけど、結局、実現しなかったね。たとえば『構築術』を書いていた頃には、個人が自宅に専用線を引っ張ってサーバを運用するなんてまず無理だっていう状況だったから、ネームサーバの設定とか、ルーターの話なんかは一切してないわけ。大学とか企業なんかの専用線が引かれている環境を前提として、そこでいかにサーバを立ち上げるかって話に限定してたのね。だけど OCN の専用線のサービスが始まって、個人が自宅に専用線を引いてグローバル IP アドレスを持ったマシンを動かして、ドメインもとって、っていうのが可能になった。となると、やっぱ DNS からちゃんと話をしないといけないよなぁっていうのはあった。一方で Gopher みたいに、『構築術』を書いてた頃には使われていたけど、その後は、誰も使わなくなったサービスもあるしね。そういうわけで、個人が専用線を引く時代にあわせた内容に改訂したいなという気持ちはメンバーも持っていたんだよね。また、タイミング良く出せたら、そこそこ売れるんじゃないかなという雰囲気はあったのよ。でも、やっぱ皆忙しくなってきていて、結局、書けなかったね。

■残念に思ってる?

そうだね。だけど、本にしなくて、そのかわりに WSM で自分なりに知識の提供なんかはできたかなとは思うので、まぁ、そんなに後悔はしてないかな。そもそもライターが本業じゃないから、本を出さないと生活に支障が出るってこともなかったし。

■改訂版は書かなかったけど、『構築術』のあと、雑誌にはいっぱい書いたよね。

そうだね。自分でもどの雑誌に記事を書いたのか覚えてないくらいだな。今、研究室に何冊か残っているのを見ると… The BASIC、これは 1996年11&12月号に「AppleScript の CGI プログラミング Web サーバに会議室を作る」って記事を書いてる。大学院時代に現代思想の自主ゼミのチューターをやってたんだけど、その自主ゼミでフーコーを一緒に読んだりした後輩が編集部にいたんだよね、確か。Software Design は、1996年9月号のインターネットサーバ・スタートアップガイドという特集の中の Mac の DNS, Mail, List のそれぞれのサーバの紹介記事を書いてる。メールサーバはこの時はまだ AIMS だなぁ。サイエンス社の Computer Today の1996年11月号に MacOS Web Servers の現在なんて記事も書いてるなぁ。MacLife にもソフトウェアのレビューを書いた覚えがある。まぁ、中でも一番大きかったのは、前に触れた Macintosh Developer Journal に連載記事だね。ムックみたいなものにちょっとした文章を書いたりしたのもあったと思う。雑誌の記事以外にも、MOSA っていう Mac の開発者の集まりのセミナーに呼ばれて話したこともあったし、Mac Expo でも吉本さん、前薗さんと3人でセミナーの講師をやったなぁ。そんな感じで、『構築術』の出版を契機に、色々なつながりが出てきて拡がったってことはあったな。

■雑誌にインタビューも載ったじゃん。

さっきも名前の出た Internet User と日経 Mac だね。Internet User の方は 1996年の7月号の「ウェッブ・マスター訪問」ていう連載の中の第6回として載ってる。この記事には『構築術』のホームページの写真も載ってて、このページのためにるじるしさんが描いてくれたイラストも見ることができるよ。

■って言われても、誰も手元には持ってないと思うけど

←こういうのを描いてもらったのよ。

■日経 Mac の方はもうちょっと後だっけ。

1997年5月号の「仕事 マック ひと」っていうマックユーザーを訪ねる隔月の連載の中だね。こっちは僕が一本指でキーボードを打ってるところの写真が載ってるよ。

■インタビューが載った雑誌はしっかり保存してあるわけだ。

まぁね。もうこんなこともないだろうからね。そういや、『構築術』が1万部をこえた時に、地元の新聞が記事に取り上げたことがある。これは大学の中での評判が大きかったんだけどね。

■『構築術』の出版がこのサイトに与えた影響というと、やっぱ広く知られるようになったってことかな?

そうだね。そして僕もサーバ関連のコンテンツ、あたしいサーバソフトの紹介や設定の仕方を開設したページなんかをけっこう作ったし、WSM でもそういう情報交換を行ってきた。それで、Mac でサーバ運用するための情報が集まっているところとして、そういう方面に関心のある人には知られるし、紹介もされるサイトになったね。で、自然と、そういう内容に重点を置いたサイトになっていったよね。

■でも、それは、『構築術』の出版の前からそうだったんじゃないの?

確かにそうなんだけど、サーバ運用の情報以外に、僕が NIFTY のフォーラムで知りあった HyperCard の友人たちの作品を紹介したり、HyperCard のツールを転載したり、という感じで、HyperCard 関係のコンテンツも、最初は大きな比重を占めてた。サイトを立ち上げてすぐ、るじるしさんの連載、Weekly Ruji っていう企画ページをやったり、あるいは山本徹さんの Pumpkin House を置いたりとかね。

■それが次第にサーバ情報サイトになっていったと。

まぁ、それは単に僕の問題だけではなくて、プロバイダのサービスが全国的に始まったり、あるいは専用線を個人が引いたりできるようになって、皆が自分の web サイトや web ページを簡単に持つことができるようになって、僕が紹介役をする必要がなくなったということもあるんだけどね。でも、僕自身が WSM を中心にして、サーバやサイト運用関係の情報の提供に重点をおくことにしたのは事実。

■LC475 でやってるサーバ情報のサイト、っていう位置づけがはっきりしたってことかな。

そうだね。『構築術』の中でも LC475 でもできちゃうんだよ、って書いちゃったから、LC475 でやり続けたってことはあるしね。

■そういう意味では、『構築術』の著者の一人として、自分なりに筋は通してきたってことか。

そこまでカッコいいもんじゃないって。それに使命感みたいな固いもんを背負ってやってきたんじゃないもん。自分が楽しいからやってきた。Linux のリーナス・トーバルズ氏の本じゃないけど、まさに「それがぼくには楽しかったから(Just For Fun)」なの。

■きれいにまとまったところで、今日はこのへんにしておこう。

だね。あ、明日は何の話にする?

■Web Scripter's Meeting と EasyBBS についてとりあげて、会議室のソフトの製作者と運営者としての考えみたいなことを話そう。


Day 7 Web Scripter's Meeting と EasyBBS

■今日は Web Scripter's Meeting (WSM) と EasyBBS を取り上げて、ネットの会議室についての話をしよう。最初に EasyBBS について振り返っておきたい。前の話に出てきたように、あれは CGI Kit の中に入れていたサンプルを独立させて公開したものなわけだね?

そうだよ。CGI Kit の中でも多くの人が関心を持ってくれたもので、機能の追加の要望なんかも多かったのね。それで EasyBBS DX という形で拡張したものをまとめなおして、公開した。

■EasyBBS DX にした際に大きな変更はあった?

複数の会議室を設置できるようにしたのが一番の変更点だね。CGI Kit の中に入れておいた最初の EasyBBS は、WSM みたいに、一つの会議室をだけを設置するものだったのね。それをいくらでも好きなだけ作れるようにした。

■プログラミングは面倒だった?

そんなことはないよ。各会議室はフォルダーで管理して、それらは必ず CGI と同じフォルダーの中に入れておくという仕様を固めたら、スクリプトとしてはそんなに凝ったものではない。確かに、複数の会議室へのアクセスを一つの CGI で管理するわけだから、そのへんで、WSM なんかよりも面倒になっている部分はあるけど、でも、スクリプトの行数は増えても、そんなに面倒だったとは思わないね。

■EasyBBS DX に続いて、EasyBBS SR っていうのも出したね。

あれはユーザーアクションが定義できる WebSTAR の利点を活かすためのバージョン。普通、CGI を呼びだすアクセスは、CGI 自体を、パラメータを伴って呼びだすんだけど、ユーザー定義アクションだと、URL の拡張子と CGI のペアを定義しておくと、サーバー側が適切な CGI を呼びだしてくれるようになるので、URL もスッキリとしたものになる。EasyBBS の場合、会議室の発言はファイルになっているから、CGI の呼び出しでファイルの指定をする必要があるので、どうしても URL が長くなってしまう。そのへんがすっきりさせられるの。それに、拡張子と CGI プログラムを関係づける仕組みになっているから、拡張子の前の名前は何であってもいいので、そこに処理内容の指定を書いておけるわけ。

■もうすこし具体的に説明してもらえるかな?

WSM が実例としては分かりやすいかな。WSM を処理している CGI は、WSM 以外の僕のサイトの CGI の機能も兼ねている。プログラムの名前は WebConfer.acgi っていうの。で、普通であれば、この CGI に WSM の処理をさせたいときには、CGI の呼び出しの際に、WSM の処理であることと、WSM の中のどんな機能を処理させるのか、場合によっては処理のページなんかも書いて置く必要がある。だから

http://mtlab.ecn.fpu.ac.jp/WebConfer.acgi?tg=wsm&f=top

みたいに書くことになる。ところが、WebSTAR のユーザー定義アクションを使って、拡張子が .mtxt になっている URL のアクセスはすべて WebConfer.acgi が処理するってしておき、webcon.mtxt はトップページの表示のコマンドだとしておくと

http://mtlab.ecn.fpu.ac.jp/webcon.mtxt

とすっきりするわけ。で、この機能に対応させた EasyBBS が EasyBBS SR なの。

■WSM は最初からユーザー定義アクションを使ったものになってたわけだ。

そうだよ。それで、EasyBBS にも対応版を追加した。

■最初からユーザー定義アクションを利用したものにするってのは考えなかった?

それはない。だって、そうしちゃうと WebSTAR だけでしか動かせないからね。WebSTAR 以外にもシェアウェア版として MacHTTP があったし、FTPd (NetPresenz) も Web サーバ機能持ってたしと、色々なサーバソフトがあったから。

■ふたつのバージョンを出したらメンテナンスが面倒だったのでは?

最初のうちは全然気にならなかったのだけど、そのうちユーザーが WebSTAR と Quid Pro Quo に限られる SR の方のメンテナンスがおろそかになってしまったね。まぁ、DX と SR 以外にも色々なバージョンをポコポコ作っていったのも大きな理由なんだけど。

■EasyBBS のシリーズには、他の人たちが作ったものも入ってきたよね。

なんといっても前薗さんがアプリケーション版と Plugin 版を作ったのが大きかったね。たぶん、実際の使用者数では、僕の作ったスクリプト版よりも、前薗さんの作ったものの方が多かったんじゃないかな。アプリケーションや plugin のやつは、スクリプトで配付しているものに比べて設定も楽だし、何と言っても処理速度の早さはケタ違いだから。

■AppleScript のスクリプトだって、アプリケーションにしておいて配付することができるじゃない。実際、EasyBBS EX ってバージョンは FaceSpan でアプリケーションに仕立てたものを配付してるよね?

そうなんだけど、スクリプトだったら使う人が自分なりに改造できるわけでしょ。っていうか、自分の中では EasyBBS DX と SR は、あくまでも CGI のサンプルだと位置づけてあるのね。そのまま動かせるけど、使う人の都合や環境に合わせてカスタマイズしてこそ意味があるものだと。だから、WSM のスクリプトをそのまま使わずに、きちんと、なるべく読みやすいようにスクリプトを書いたものにしたし、コメントなんかもつけてある。また、スクリプトの動作を解説したページも作ったんだ。

■今風に言うとオープンソースってことかな。

そうかな。でも、パソコン通信の時代から、フリーウェアってそんなもんだと思ってた。HyperCard のスタックは、みんなスクリプトを見ることができるわけ。ロックすることも可能なんだけど、ロックして配付されているもんなんてなかったのね。僕が使っているコンパイラの CompileIt! だって、スクリプトは全部見ることができるし、書き換えることができる。だから僕は自分用にスクリプトを書き換えた Compileit! を使っている。そういう HyperCard の世界でプログラミングをやってきたから、少なくともスクリプトってものである以上は皆が好き勝手にいじくっても良いものじゃなくてはいけないだろうって思ってたし、今も思っている。だから、NIFTY のフォーラムで自作の XCMD のスタック、ガラパゴス通信って名前のシリーズのスタックを配ってたんだけど、 XCMD のソースコードも公開してたよ。その流れで、CGI Kit もスクリプトの形だし、EasyBBS もスクリプトだったの。Tanaka's osax もすべてソースは公開しているし、REALbasic で作ったアプリケーションもソースは公開している。

■EasyBBS をスクリプトで配付したがゆえのトラブルもあったでしょ?

スクリプトで配付されているということは、EasyBBS を使いたい人は、皆、AppleScript のスクリプト編集プログラムでアプリケーションに作り直すという作業を行う必要があると言うことだよね。スクリプトのカスタマイズをしないならば作業は機械的なものなんだけど、それでも AppleScript なんか触ったことがない人には敷居が高く感じられるのは事実。それに、Tanaka's osax をシステムフォルダーの所定の位置に入れておく必要があったしね。そうそう、かつては AppleScript にスクリプトの日本語表記ってのがあって、こっちが出荷時のデフォルトの設定になっていたんで、それをまず英語表記に変更してもらう必要があった。あと、CGI はずっと立ち上がったままでイベントを待つものなので「実行後、終了しない」というオプションを有効にしてアプリケーションにする必要もあったしね。だから、確かにスクリプトでの配付にこだわったことが、ユーザーの方に余計な面倒をかけていたところがあるのは否定できない。だからこそ、前薗さんのアプリケーション版や plugin 版が支持されたわけだしね。

■日本語表記の AppleScript については一貫して反対してたね?

考え方としては悪くないとは思ってたけどね。ここで日本語論をぶちかますつもりはないけど、AppleScript ってプログラミング言語が、根幹において、やっぱ英語的構造って言うのかな、それに依って立っていると考えてる。だから、英語的な文章に近いスクリプトを書くことができる。動詞+目的語+補語、みたいな構文で命令を書き連ねていくわけだからね。だけど、その根幹の構造をいじらないまま日本語に無理やりしても変なだけだと僕は思った。どうころんだって AppleScript はプログラミング言語なんだから、表記なんて言う表層的なところで媚を売ってもしょうがないんで、言語の内部世界がクリアで理解しやすいってことでいいじゃないかってね。まぁ、そんな言語がどうこうなんていう高尚な理由よりも、スクリプトを書く時に漢字変換が入るのは邪魔臭くてしょうがないってことと、AppleScript の情報は海外から入ってくるし、海外の ML に参加してこそ情報が得られるわけで、英語表記でスクリプト書いてないと話にならないというのがあった。それに、アプリケーションや osax に日本語表記に対応のものが少なかったっていうこともある。

■AppleScript に対応していれば日本語表記でも英語表記でも使える、ってものではなかったんだ。

そうなんだ。そのへんが中途半端な実装になってたんだよね。アプリケーションの場合で説明するよ。アプリケーションが AppleScript に対応って場合には、まずプログラムが AppleEvent を処理できるようになっている必要がある。AppleScript ってのは、アプリケーション間の通信機能として MacOS に実装された AppleEvent を使うものだからね。で、AppleEvent に対応するだけではダメで、AppleScript で利用するための用語を記述したリソース、aete リソースってのを持っている必要があるわけ。で、問題は、この aete リソースは表記の言語ごとに作成しなければならない仕様になっていた。つまり、英語表記と日本語表記のどちらのスクリプトでも使えるアプリケーションにするためには、英語表記用の aete と日本語表記用の aete の両方を用意しておかなければならない。osax の場合も同じ。複数の表記に対応させるためには aete を表記の言語ごとに用意する必要がある。Apple が純正のものとして出したのは、たしか、英語、日本語、フランス語の3つの言語の表記だったはずだけど、これにすべて対応させるためには、3つの aete を用意する必要があったわけだ。

■ということは、日本語ができない人間には日本語表記対応のソフトや osax は作れない。

そういうこと。だから、海外で作成されたアプリケーションや osax は、日本でローカライズして aete を追加しない限り、ちゃんとした日本語表記でスクリプトを書いて利用することはできない。全く利用できないわけではないんだけどね。こんな仕様では対応ソフトなんて増えるわけがない。製品として売られているものだったら、日本語化される際に aete も作成し追加することもできるだろうけど、海外の人たちが作っている多くのフリーウェアやシェアウェアではそんなこと無理でしょ? ま、そういうこともあって、日本語表記っていうか、表記を変更可能って仕掛け自体を、僕は無理があると思ってた。実際、日本語表記のスクリプトでちゃんとコントロールできる、日本語表記に対応したソフトって、少なかったよ。それこそ、Finder で遊ぶぐらいしかできないって状態だったんだよね。

■それでも、国内で販売された AppleScript 関連の本も日本語表記のものと英語表記のものが混在してたよね。

ああいう状況になってしまったことが日本での AppleScript の理解と普及の障害になったと僕は思ってる。だから Apple が表記を変更するってのを止めたのは正解だと思うし、遅すぎたとすら思ってるよ。もちろん、日本語表記があったからこそアップルスクリプトに出会えたって人もいるだろうし、そういう人から見れば日本語表記がなくなるのは許せないことだろうってのは理解できるけど。まぁ、なんかあの頃の Apple って、こういう、理想はわかるが実装はこれかい?みたいのが他にもあったように思うな。

■まぁ表記の問題はこれくらいにしておいて、EasyBBS に話を戻すけど、前薗さんのやつ以外にも、他の人が移植版を作ってくれたよね。

プロバイダや Linux なんかの UNIX 系の環境で動かすためには Perl のスクリプトじゃないといけないってことで、Perl 版も出たし、Python への移植版もある。こういうのは嬉しいよね。

■EasyBBS DX も今では v5 まで来てるけど、それなりに改良されてきてんだね?

最初のバージョンには同時に別々の会議室にアクセスがかかると、会議室を取り違えると言うバグがあったのね。これは、前にも言った、AppleScript のリエントランシーの問題と僕が安易にグローバル変数を使っていたということからくるバグで、これを修正したのが v2 になる。その後、 Tanaka's osax 2.0 のリリースにあわせて、2.0 のコマンド名に合わせたものに全面的に書き換えてる。これが v3 ね。で、HTTP の Conditional-GET に対応させて高速化を図ったのが v4 で、細かなバグの修正とメール配送機能を組み込んだのが v5 という流れ。

■個人的に「これは進歩だな」と思ったのっては?

v4 にする時に、HTTP の Conditional-GET に対応させるなど、HTTP っていうプロトコルを自分なりにしっかりとおさえて作り込んだんだけど、これが一番大きな躍進って感じかな。

■EasyBBS の高速化のために HTTP を調べたの?

違う。前にもいったように、吉本さん、前薗さんの3人で組んで、1998年の Mac Expo Tokyo で CGI のセミナーの講師をすることになったのね。で、この頃、ちょうど HTTP 2.0 が W3C で正式に発表されたんだっかた、そういう時期なんで、たまたま HTTP についての記事を W3C が出してた雑誌で読んだりしていた。それで、CGI ったら HTTP というプロトコルをインターフェースとするプログラムを書くことだっていう原点を確認するような内容をセミナーで話すことにしたわけ。この時の内容は Mac Developer Journal の連載記事にも書いて、それをUnderstand_HTTP.pdfという PDF にして公開してあるよ。この内容を踏まえたものに作り替えたのが EasyBBS DX 4

■WSM の CGI の方ではもっと早い段階で HTTP 活用の技を入れてあった?

もちろん。WSM の CGI は、とにかく思いついたことはなんでもぶち込んで動かしてみる実験の場でもあるんだからね。だから、セミナーの原稿を書いてる段階で、WSM には HTTP のヘッダを扱う機能を色々と入れて、その動作を確かめていたんだよね。

■WSM で色々実験したことを EasyBBS にも反映させていったわけだ。

DX の場合はそうだね。だから WSM では試したけど、EasyBBS には入れてない機能っていうのもたくさんあるよ。特に FaceSpan で WSM の CGI を組むようになってからは、EasyBBS には反映できない機能も増えたかな。それに EasyBBS のスクリプトの量が増えて 32K ぎりぎりになってしまって、機能を増やせないって状態になったしね。

■だから EasyBBS EX っていう FaceSpan で組んだものを出したの?

ちょっと違う。EX っていうのは、さっきいった HTTP 活用、それに Tanaka's osax 2.0 対応、さらに、会議室を個別に作る、つまり会議室全体のトップページを無くす、そういう実験的なバージョンとしてスタートしてるのね。最初はスクリプトで配付してた。DX の場合、サーバ上に設置した会議室はすべて見えてしまうんだけど、不要な会議室やアクセスされては困る会議室は隠したいという要望もあった。また、EasyBBS DX には発言の管理機能、つまり発言の削除とか一部削除の機能が全くなくて、管理者が手動で作業を行うしかなかったんだけど、そうした管理機能をオンラインで行えるバージョンにしたかった、そういう様々なものがごっちゃになって作り始めたものなの。

■前薗さんの Plugin 版は、EX がベースだよね。

そうだよ。その後、色々と大きくなってきて、さっき言った管理機能を本格的に組み込んだりしたんで、EX II というバージョンにして FaceSpan で組んだものを配付するように変更したんだ。

■スクリプトの配付ではなくアプリケーションの配付だから EasyBBS EX II のページをしっかり作ってあるわけだ。

そういうことだね。スクリプト見てくださいってわけにはいかないし、設定でトリッキーなことをやってるし。

■トリッキーと言うと?

さっき言った WebSTAR のユーザー定義アクションを使う場合、拡張子は自分で好きに決められるわけ。そこで、管理機能へのアクセスには、自分で決めた拡張子、つまり自分しか知らない拡張子を使うってことで、他の人からはアクセスされないようにしてあるわけ。言ってしまえば、認証のパスワードの代わりに、拡張子をパスワードとして使ってしまうぞってわけね。そういうこともやって、自分なりに作り込んだものになっている。だから、この EasyBBS EX II は僕自身も使っている。打ち合わせなんかで会議室を追加したい時には EX II をサイトで走らせているよ。

■EX II がある意味で完成形なのかな?

自分の中にはそういう気持ちがある。

■じゃぁ、もう新しいものは出さない?

そうだね、たぶん出さないよ。今さら Classic 環境でしか動かせない CGI を使おうって人はいないだろうし、AppleScript のサンプルとしての役割はもう終わったと思うしね。

■OS X 版は?

まずありえないな。OS X でやるなら PHP だろうし、そもそも、すでに山のように色々なソフトがあるわけじゃない。だいたい OS X のサーバに移行する予定も今のところないしね。

■EasyBBS の経緯を一通り振り返ったところで、話題を大きく変えよう。WSM にせよ、EasyBBS にせよ、一貫してスレッド型の会議室、つまり発言とそのレスポンスが同一のページに時系列に並んでいくと言う形の会議室にこだわっているよね。

これも、さっきの AppleScript の表記の問題と同じく、断固とした独断ってところかな。WSM の[EasyBBS の哲学] っていう話題の中でちょっと書いたけど、とにかく、僕は、この形が、コミュニケーションを生み出し組織していく型として良いと考えているわけ。だから、この型であることこそが重要だと思う。

■ネット上の会議室や掲示板では、ツリー型っていうのかな、個々の発言がそれぞれページになって表示されて、リンクを辿っていく形で追いかけていくものもあるよね。

あれは僕は読みにくいと思う。個別の発言そのものを読むにはいいかもしれない。また、話題が自由に分岐できるってメリットもあるかもしれない。でも、発言の文脈が見えにくいのが最大の欠点。コミュニケーションの場としては致命的な欠点じゃないかとすら思う。

■どうして?

コミュニケーションと言うのは、端的に言うと発言の連鎖でしょ? 発言が「繋がっている」ことがコミュニケーションなんであって、個々の発言そのものがコミュニケーションなのではない。だから、その発言がどのような流れの中で、どの発言をうけてなされたものなのか、さらにはその発言にどのような後続の発言がなされたのか、それが見えることがコミュニケーションでは重要。そして、コミュニケーションの中では、過去にいくらでもさかのぼって言及したりすることができることが重要で、そしてここに web の会議室の他にはない強みがある。Web ならコミュニケーションの履歴が誰にでも参照できる形で存在してるからね。たとえば「この話題で以前にXXさんはYYって言ってますが…」ってコメントを読む場合、その参照されている発言がすぐに読めなかったら、言葉が書かれていていつでも全文が参照できると言う、書き言葉でのコミュニケーションのメリットを活かし切れないと考えるのね。口頭での会話の場合には、各自の記憶に頼るしかないし、記憶が曖昧な場合にはコメントしている人の引用をそのまま受け取るしかない。でも、Web の会議室は、過去はすべて書かれてあり、誰もがいつでも参照できるわけ。だとしたら、読んでいる人が「XXさんって、本当にそんなこと言ったっけ?」と思ったり「あのXXさんの発言ってそういうことだっけ?」と思った時、それがすぐに確かめられてこそ、Web っていう書き言葉の世界でのコミュニケーションだろう。そういう意味で、発言の応答の履歴がすぐに確認できることが重要なのよ。そのためには、一つのページに時系列に発言が並ぶという形式でいくのがベストだと考えるわけ。

■ツリー型の場合だって、別ウィンドウや別フレームに外の発言を表示して参照・確認することはできるじゃない?

でも面倒じゃない。それと、ツリー型の場合、ある発言を基点にして複数の応答に分岐することもあるよね。あれは、ある意味では自由に発言がつなげられていいのかもしれないけど、たとえば発言した本人から見れば、自分の発言に対する応答を確認するのが面倒だし。他の人にしても、分岐の全てを追いかけるなんて面倒以外の何ものでもないわけじゃない。だから、強制的と言うと変だけど、一つの流れに連なるしかないという仕掛けを置くことで、嫌でも流れを捉えるようにすることが、結果として、いつ来てもコミュニケーションに参加できるっていうメリットになると思うの。Web ってのは開かれたものなんだから、色々な人が色々なタイミングでやってくるものじゃない。今初めて来た人であっても、すぐにコミュニケーションに参加できるように、参加しやすいようになっていてこそ、開かれてあることが意味をなす。ログを読み返したり過去の発言を辿ったりしないと様子がわからないんだったら、それこそ ML と一緒でしょ。Web の意味がないじゃん。ML をページにしたものが Web の会議室なんではない。履歴がすぐに読めるからこそ、そこに何かのきっかけで飛び込んできた人だってすぐに参加できるんだよ。そういう、発言を促すとまではいかないまでも、発言がなるべくしやすい、流れに入っていきやすい、そういうことがコミュニケーションの場では重要なんだって。

■ようするに、さっき言った「個々の発言そのものがコミュニケーションなのではない」ってことに集約されるのかな?

そうだね。複数の発言の繋がり、発言の「つながり」っていう間で起きていることが重要なので、それがリニアに時系列で追えるってことが会議室の場としては重要だろうってことね。

■でも、ブログのトラックパッドなんかは、言ってしまえばツリー型の会議室がもっと水平分散したみたいな繋がり方で、色々と議論が行われているじゃない。

あれは、ブログをやってる本人はいいかもしれないけど、ブログを読みに来た人には話が錯綜して見えにくい部分があるんじゃないかな。もっとも、自分はブログをやってないんで、ちゃんとしたことは言えないけど。

■じゃぁ、会議室というものに関して、もう一つ。WSM では一貫して匿名というかハンドル、ニックネーム、偽名での投稿ができるようにしてるよね。メールアドレスや Web ページの URL の入力を求めるといったことはしてない。これもポリシー?

うん。誰が言ったか、ではなくて、何を言ったか、が重要だからね。ただ、全くの匿名だと、発言に対する言及が難しい。だから、どんなものでもいいから名前を入れてもらうようにはしてる。名前と発言がセットになることで、外の発言から参照が可能になるからね。

■匿名ってことなら、皆が同じ名前で表示されるようにして、名前による判別すらできないっていうのも一つの方法じゃない?

でも、それだと、コミュニケーションが難しくなる。つまり、過去の発言に対する言及が難しい。だから本当の匿名というか、皆が同じ名前で表示される掲示板だと、発言番号を使って言及してるでしょ。だけど、それだったら、なんだっていいから名前を入れてもらうほうがいいと思うの。ほら、ちょっと前に話題になった電車男ってのがあったでしょ。あれを読んでいて面白いなと思ったのは、主人公って言うのか、話題の中心の「電車男」が、最初は匿名で出てきて、そのうち基点となった発言番号で名乗るようになって、で、電車男っていう名前を使うようになっていってるでしょ。名前を持つってことでキャラが立ってきて、周りとのコミュニケーションの密度が濃くなっていく過程がよくわかるよ。あんな感じで、本名である必要はまったくないけれど、発言者としての識別はできるようにしておくことで、発言者=発言のセットができて、言及が楽になる。また、同一人物かどうかの確認も可能になる。すくなくとも、同一人物だと認定されてもかまわないと思う人、つまり同じ名前を使い続ける人、その人たちは互いに区別ができて、どれくらいの人が応答を行っているのかが見えるわけじゃない。だから、名前を付けてもらうってこと、識別記号としての名前を付けてもらうってことは重要なんだけど、それが本名であるかとかどうかなんてのは、別に気にしていない。

■そういう考えを持つようになったのは、パソコン通信をやってたからかな?

そうだろうね。だけど、原体験っていうと大げさだけど、それはアマチュア無線かな。中学1年の時からアマチュア無線、いわゆるハムってのをやっていて、50MHz 帯の SSB で色々な人と交信してた。ハムの世界も、ネット同様に、年齢はあんまり関係なく、無線局として対等に話をするってところがあって、僕も中学生だったけど、それをあんまり感じないでやってた。もちろん、それだけに年齢に甘えられないっていう緊張感はあるんだけど。一方で、高校生の頃は、同じ市内に住む別の高校の同学年の無線仲間もできて、週末の夜は無線で集会みたいな感じで付きあってた。で、アマチュア無線って、みんなコールサインで呼びあうわけ。僕の場合は JA5UVJ っていうコールサインだったのだけど、そういう記号、まさに呼びかけのための記号だよね、それでお互いに呼びあって話をしていると、コールサインに人格がやどるのよ、いい方は変だけど。無線を通じてのつき合いの中で、コールサインが、まさに名前として、相手そのものを担うわけ。そういう体験があったから、呼びかけるための記号があるってこと、それは実名とか実生活とは無関係でもいい、だけど呼びかけたら応えてくれるものであること、それがあればコミュニケーションができるってことを感じてたように思う。もちろん、今から振り返ってみての話だけどね。

■でも、ハムのコールサインは匿名ではないよね。調べたらちゃんと本名とか住所はわかる。

確かに匿名ではない。でも、呼びかける名前があること、コールサインを名乗るものとして対等ってこと、そういうことがポイントかな。そして、パソコン通信を始めて、匿名とかハンドルでの付きあいってものを体験したことが、僕のコミュニケーション体験のコアになってるってわけ。

■サイトの話に戻るけど、WSM は匿名でかまわないってことは、サーバには個人を特定できる情報は記録してない?

WSM はメンバー制をとってはいない。だから、アクセスに使ったマシンの IP アドレスしか残っていないよ。でも、それは非公開にしてるし、Web で絶対にアクセスできないところに残してある。

■発言した人の IP アドレスを残してあるのはなぜ?

今でもたまにあるけど、アダルトサイトの売り込みなんかを書き込む人がいるわけ。そういう悪質な書き込みがあった場合には、IP をもとにこっちで追跡したり、サイトにアクセス禁止にしたり、あるいは IP アドレスを晒し者にしたりするという処置をとるためだよ。サーバのログに残る情報の扱いについては、[この会議室を訪れた方の個人情報の取り扱いについて]というページにすべて書いてあるとおり。

■なるほどね。じゃぁ、自分は本名で書き込みをしてるのはなぜ?

目立ちたいからってのもあるんだけど、運営管理者という特別な立場にいるものとして、やっぱ匿名は変だと思うのね。もちろん、田中求之ってのが会議室やサイトの管理者だって気がつかない人もいるだろうし、それはそれでかまわない。発言の一部削除なんかを行って、管理者という立場からの発言を明記したい場合には、「田中求之 as 管理者」と名乗って発言してるしね。そうじゃないときには、ただの一参加者ではあるんだけど、だけど、どう転んだって他の人たちと対等ではないよね。そういう時に対等な振りしてハンドルかなんかを使うのは、ちょっと違うだろって思う。大げさに言えば、この場を引っ張る人間であるということもはっきりさせておきたいわけ。そして、僕が積極的に発言をしていくことで、WSM って場がどういう場かってことも、周りの人たちは分かりやすくなると思うの。だから、僕は WSM の管理で一番重要なことが、僕が本名でバシバシ書き込みをして、レスポンスを付けていくことだと思ってる。もちろん、管理者的な発言ではなく、Mac やサーバに関心を持ってる人間としてね。もっとも、そんな使命感みたいなもんじゃなくて、単に僕が少しでも関心を持つことがあったら首を突っ込みたい人間だからやってるんだけどね。

■じゃぁ、最近、あんまり発言がないのは、関心が薄れたから?

そうじゃなくって、OS X の話になったら僕は何も言えることなんてないからなの。なんでもかんでも発言すりゃいってもんじゃないでしょ。無理やりもり立ててもしょうがない。コミュニケーションは一人ではできなんだから。だから、OS X 全盛の時代になって WSM もそのうち廃れていくかなぁとは思ってたのね。だけど、幸いに、情報を色々と提供してくれる人がいて、情報交換の場として使ってくれる人もいて、今でもそれなりに活発に応答がなされているよね。なんか参加できないのは寂しいけど管理者としては嬉しい、って感じ。

■そういや、ワークショップもやったよね。

安曇村と神戸とでやった。まぁ、ワークショップとはいえ、ほとんど交流会みたいなもんだけどね。でも、楽しかったし、色々な人の話を聞けて面白かったな。

■じゃぁもっと開けばよかったんじゃない?

面倒だからってのがあるよね。たとえば僕が東京や大阪に住んでいたら、もっと頻繁にワークショップやセミナーみたいなものを開いたかもしれないけど、福井にいると、さすがに福井でやりますってわけにもいかないよね。だけど、基本的に、WSM のつながりは、ネットの上でのつながりであるってことを大切にしたいなという気持ちがある。ワークショップなんかをすると、どうしても実際に会って顔なじみになった人とは、WSM の中でも、そういう関係として会話をしてしまいがちになる。それって、参加しなかった人は、排他的な雰囲気を感じると思うのね。僕自身が、福井にいることで東京や大阪のイベントやオフ会に出られなくて、それで同じような感じを味わってきたってことがあるから。一部の濃いつながりの人たちの閉じた場になってしまったら、Web でオープンに会議室をやってる意味なんてない。たしかに馴染のメンバーが集って話をするのは、楽しいし気楽だよ。でも、そういう場を作りたくて WSM をはじめたんじゃない。どんな人でもいい、昨日 Mac をかったばかりの人でも、来て、何かをえたり、与えたり、そういうことができる場にしておきたいわけ。だから、オフラインの活動を活発にするのは、あんまり良くないことじゃないかという考えもあったんだよね。どんな人なのかは分からない、本名も知らない、性別や職業も年齢も分からない、だけど Mac のサーバや CGI には関心があって来た人と、色々な事故が起きるにしても、いっしょにやっていくってこと。それが WSM がオープンな Web の会議室であることだと思う。奥泉光って作家の『鳥類学者のファンタジア』っていう小説があって、これは主人公はジャズピアニストで、ジャズってものについて想いを熱くさせられる本なんだけど、その中に、次のような言葉ある:

「気にいろうが気にいるまいが、自分とは違う異質な他人と一緒に世界をつくっていくしかないという、明るい覚悟こそがジャズの精神なのである。」

なんか、このジャズの精神ってやつ、これを大切にしたいわけだ。なんか、大げさで偉そうだけど。

■自分で書いた論文の中でも、「オンライン会議室のホストとは、言語によるジャズプレイヤーたることを求められるものなのである。」って書いてたよね。

それ、「ネットワーク会議室のリーダーシップ」の最後に書いた締めの文章だね。あの論文は、自分としては無理やり経営学っぽくしたんで無理がきてる、いまいちなものになってると反省してるんだけど、言いたかったことは、ほとんど、そこに尽きてるね、確かに。

■WSM の運営が研究にも繋がっているわけだ。

そうだね。ネットのコミュニケーションってものはとかく生身のコミュニケーションに比べて劣るものだとか代替的なものだとされる。腹を割って話すのが好きな日本では、ちょうど Virtual って言葉が、仮想現実=現実に似せた嘘って言葉になって、言葉の持ってる視線の方向がまったく逆になってしまうみたいに、何かって言うと、ネットのコミュニケーションなんて「心が通わない」なんてことを言われたりする。それは違うだろ、人間のコミュニケーションってそんなもんじゃないだろってのが僕の目下の研究のコアにあるものなんだけど、それは僕自身の WSM でのコミュニケーションや、あるいは『構築術』の執筆の経験が支えている確信であることは間違いないね。

■じゃぁ、今日はここまでってことにしておこう。そろそろネタも尽きてきたんだけど、何かある?

WSM の管理者としての話は今日したけど、肝心の LC475 でやってるサイトの管理についての話はしてないよ。

■じゃ、明日はそれね


Day 8 mtlab の運用と管理

■サイトのメンテナンスはどんなことやってる?

週に1度、だいたい金曜日の午後に、サイトを完全に止めて、バックアップとディスクのチェックを行っている。

■サイトを止めちゃうってのは乱暴じゃない?

でも、僕のサイトには一刻を争うようなコンテンツはないし、オンラインショップみたいに売り上げを逃すとかそういう心配はしなくていい。バックグランドで変な処理を動かしてサーバに影響が出るほうがよっぽど怖い。だからメンテナンスの時には、LC475 を再起動して、Finder に入る瞬間に shift キーを押して起動項目に入れてあるソフトは何も立ち上げないようにして、それからバックアップとディスクチェックを行い、終わったら再起動って手順で作業をしている。こういう乱暴な方法がとれるのも、個人サイトならではだなぁと思うよ。

■バックアップに使っているソフトは?

今は Redux 2.6.1 だね。もともと製品だったものがフリーウェアになったものだったはず。その前は、ずっと長い間、DiskFit Pro を使っていた。これは MO ドライブのオマケとして付いてきたものだね。

■ファイルサーバと MO にバックアップって言ってたね。

そう。AppleShareIP のファイルサーバ上に置いてある Disk Image の中にバックアップして、それから MO にバックアップしてる。

■サーバのログはどうしてるの?

ファイルサーバ上にログのバックアップ用のフォルダーを作ってあるので、そこに転送してる。ログを転送してからサーバ上では消去して、それからバックアップをやってるんで、バックアップの中にはログは含まれない。だから、バックアップはそこそこ早くすむよ。でも、総ファイル数が多いので、あっという間ってわけにはいかないけどね。

■ログの解析とかチェックは行うの?

普段は行わないね。何か異常なことがあったときにはエディタでログを開いてチェックしたり、analog で解析ページを作らせてみたりはするけど。このサイトの Web サーバのアクセスについては、1時間ごとに、1時間のヒット数と24時間の累計やサーバの状況を、僕宛にメールで送るようにしてある。Status Report ってページにもサーバを再起動してからの1時間ごとのヒット数の経緯を記録するようにしてる。このへんをいつもチェックして、サーバの動向を確認してるから、普段のメンテナンスではログを詳しく解析することはやってない。

■でも WebSTAR ではアクセスしてきたマシンの IP アドレスの逆引はやってないんだから、どんなところからアクセスが来てるのかなんかは、ログの記録を Analog みたいなツールで処理しないとわからないわけでしょ?

そうなんだけど、なんか、どんなホストやドメインからアクセスがあったとか、どんな referer でアクセスが来てるとか、そういうのに関心が薄れちゃったのね。無事に動いてるならそれでいい、って感じ。

■熱心にログをチェックしてた頃もあった?

もちろん。サイトを立ち上げた頃は、それこそログに記録されているアクセスの一つ一つが愛おしかったよ。全部に目を通してもたいした量ではなかったし。そのうちアクセスが増えてきて、ログの量も増えてきて、だんだん面倒になってきたんだよね。今だと1週間のログがだいたい 20M バイトぐらいなんで、Analog で IP の逆引をやらして解析するのでさえ時間がかかるんだよ。

■サーバのステータスウィンドウは常時表示して見てるのかな?

研究室にいる時は、いつもモニターの電源を入れて LC475 の画面は映している。だけど、WebSTAR のステータスウィンドウは小さく畳んだままにしてあるよ。本当はウィンドウを消したほうがサーバの反応速度が若干速くなるんだけど、そこまでしちゃうとサーバが落ちた時に気がつかなくなるから、さすがに消してはない。それと、畳んだ状態でも、同時アクセスが頻繁にかかっているかどうかといったアクセスの大ざっぱな状況はわかるんで、それはチラチラと見るようにはしてる。

■なんかあんまり可愛がってないんじゃない?

そんなことないと思うけどな。でも、基本的には、サーバが無事に動いてさえいればいいわけで、その最低限のところは押さえているつもり。この状態に来るまでが大変だったんだから。

■はらはらしながら見守るって時期もあったってこと?

CGI を動かしてるでしょ。で、思いついたことがあったら何でもやってみたくなるものだから、変なスクリプトを書いて動かしたりしてた。すると、やっぱ落ちるのよ、サーバがね。さっき言った1時間ごとのメールだって、ちゃんとサーバが動いているかどうかを確認するためのものなのね。今だったら、全国どこにいても、携帯でアクセスして確認できるけど、前はそんなこともできなかったしね。出張とかで Web にアクセスできないでメールならなんとかって時でも、サーバが動いているかどうかだけは確認できるようにしておきたかったのよ。

■でも、出張先でサーバが落ちてることに気がついても、何も打つ手はないよね。

そう。研究室に駆けつけない限り、絶対に復旧できない。だから、自宅でサーバが落ちているのに気がついて、夜中に研究室に駆けつけて、朝まで CGI のバグ取りしてサーバを再起動なんてことをやってた。でも、出張だとそういうこともできないから、落ちたままにしておく他ないんだけど、でも、いつ落ちたかってことが確認できるだけでも、管理の上には役にたつからね。

■リモートで管理できるような工夫はしなかった?

WebSTAR だけが落ちてシステムが生きてる状態なら、なんとかマシンごと再起動かければサイトは復旧できる。それで、FTPd とか古くからネット関係のツールをリリースしているので有名な Peter Lewis さんの作った Script Deamon っていう telnet サーバ動かして、それに telnet でアクセスして、強制リスタートをかけられるようにしてた時期はあったな。

■telnet サーバも動かしてたんだ。

telnet サーバっても、システム自体をコントロールできるようなものではなくて、AppleScript をサーバ上のマシンで実行できるってものだったの。だから Script deamon って名前なんだけど。で、強制リスタートをかけられる osax を作ってシステムに入れておいて、それを実行させる AppleScript を telnet で Script deamon に送り込めば、マシンの再起動ができた。

■今は使ってないよね。

サーバがクラッシュする時はたいていシステムも巻き込んじゃう。で、システムがクラッシュしたら Script Deamon は動かないわけ。それで、思ったよりも使えなかったんだよね。もちろん、何度か助けられたけど。それで使わなくなったな。今では必要もなくなったしね。

■マシンがフリーズしたりクラッシュしたら自動的に再起動するソフトを使ってる人も多かったようだけど。

Keep It Up と AutoBoot と、あとダイアログの OK ボタンを自動的にクリックしたことにするやつだったかな? サーバ運用の3種の神器って呼ばれてたね。あと Powerkey にも似たような機能がついたものが出ていた。Macsbug っていうデバッガを入れておいて、これにマクロを組んでおいて、クラッシュしたらレポートを吐き出させておいてからマシンを再起動って方法もあったな。いずれにせよ、僕のサイトでは全然使わなかったね。これは自宅が大学から近いので、いざとなればすぐに駆けつけられるってのも大きいかな。

■リモートでちゃんと管理できたらなという思いは強くなかった?

そうだね、どうしてもリモートで管理したいとまでは思わなかった。管理者ですらリモートで管理できないんだから、他の人間が入り込んでシステムの設定を変えてしまうとか、バックドアを潜ませるなんてことはできないわけだよね。FTP を不用意に動かさない限り、コンテンツを勝手に書き換えられたり削除されることもない。その安全ってものの方が重要ってところかな。だから、とにかくサーバが落ちてないかどうかだけを気をつけていればいいわけ。

■じゃぁ、リモートで再起動さえできればそれで十分ってところ?

そうだね。フリーズしちゃったサーバの場合、動かなくなっている画面の情報だけでは原因が分からないことがほとんどなので、結局、さっさと再起動して、あとからログを見たり、あるいはマシンの様子を見守るしかない。だから、もしリモートで管理するにしても、リモートで確実に再起動の指示さえ出せたらそれでよかったってところかな。でも、実際はそういう仕掛けを組むのは無理だったんで、自分で研究室に駆けつけてんだけど。もし研究室の電話がダイアルインだったら、そういうことが可能になる機器を購入したかもしれないね。でも、ダイアルインではないんで、電話を使うって訳にもいかなかったしね。

■CGI が原因のフリーズ以外は、大きなトラブルはなかった?

う〜んと、どうだったかな。これは参ったなぁというトラブルが起きた覚えはないから、順調だったとは言えるね。前に言ったように、それまで順調に動いてた ListSTAR が突然クラッシュするようになったとか、WebSTAR に PDF のページサービング用の Plugin を入れておくと落ちまくったとか、そういう個々のソフトウェアの挙動不審に悩んだことはあっても、全体としては、そんなにシリアスな事故は起きてない。システムを再インストールしなければならないとか、ソフトをインストールし直さいといけないとか、そういうことも無かったしね。もっとも、研究室のメインマシンとして LC475 を使いながら、バックでサイトを運用していた時には、なんだかんだでトラブルがあったように覚えてるけど、まぁ、それはサーバが原因ではなかったしね。サーバ専用で動かし始めてからは順調だったと言える。

■それはサイトの管理というかソフトウェアなんかの動かし方がよかったから?

それはないと思う。最低限の構成のシステムを使う、不要なソフトは絶対に立ち上げない、WebSTAR の Plugin は最低限まで抜きまくる、メモリーは余裕を持って割り当てる、あと、システムの新しいものは様子が分かるまでは絶対に手を出さないってこと。こういったことはサーバ運用者ならだれでもやってることだと思うしね。これ以上の何か特別なことをやってるかと言われても、何もやってないよ。むしろ CGI なんかでは変なことばっかりやってるし。そういう意味では、MacOS のサーバ運用は不安定ってことはないと思う。不安定になりやすいというか、不安定にしてしまうのは簡単なんだけどね。あ、あと、前にも言ったように機種による差はあるね。LC475 はそういう意味では良いマシンって言えるんだろうね。

■でも WSM を見てると色々なトラブルが起きてるよね。

そりゃ、人によって状況は様々に異るわけで、状況や設定次第では僕には想像ができないようなトラブルが起きるんだと思う。だから、誰もがどんな状況でも MacOS や LC475 で簡単に安定してサーバを運用できると言うつもりは全くない。でも、パソコンって、たとえどんなトラブルであったとしても、絶対に原因がはっきりとあるわけじゃない。もちろん、原因がわかっても対処できないことはあるし、原因の見極めが難しいものもある。複数のソフトの相性みたいな問題だと、何が原因だか分かりにくいし。でも、絶対に、原因はきちんとあって、論理的にそれは追いつめていくことはできる。だから、とことん自分でできる限りは調べて考えれば、なんとかなるものだと思う。理由もなしにおかしくなることはない、っていうことで、最後まであきらめずにジタバタするってのは大切だと思って、僕もそのようにしてきたつもり。まぁ、自分が納得できないと気持ちが悪いからなんだけど。

■トラブルの時こそ学べるってコメントを WSM でも書いてたね。

そう。それが僕の実感。うまく行かない時こそ、その原因を追いかけていく中で新しいことを学べる。サイトの運用もそうだし、プログラミングでもそう。だから、CGI を作ってる時も、うまく行かないってことは何か自分が分かってないことがあるぞってサインだと思ってやってきた。もちろん、さっきも言ったように、原因がわかっても自分では対処できないこともある。ソフトウェアの仕様だとか、ソフトウェア自体のバグだとかね。また、どうしても原因が分からないことはある。それでも、問題やトラブルに前向きにチャレンジすることだけは止めてはだめだろう。そして、パソコンは、幸いに、ロジカルに追いつめていけるモノだからね。

■でもさぁ、実際のトラブルの時は、そんなかっこいいこと言ってられないでしょ。

もちろんそうだよ。うんざりして、嫌になって、気分が良いわけがない。でも、なんていうのかな、あきらめの悪さだけは手放さないようにしたいと思ってきたつもり。

■いまだに LC475 ってのもあきらめの悪さ?

それは愛着と言って欲しい。

■そういや尋ねるの忘れてたけど、メンテナンスの時のディスクのチェックにはどんなソフトを使っているの?

通常のメンテナンスの時には Apple の Disk First Aid でチェックしてから、Disk Warrior 2.1 でサイトの入っている方のパーティションのディスクチェック&ディレクトリの最適化を行ってる。あと、ひと月に1回ぐらいの割合で Norton Speed Disk をかけてディスクのオプティマイズをやってるね。そして、半年に一度ぐらい、ちょうど春休みと夏休みってタイミングの時に、外付けのハードディスクで起動して、Norton の Disk Doctor をかけてディスクのチェックをしたり、システムの入っているパーティションに Disk Warrior をかけたりする。

■ハードディスクは MacOS 標準フォーマットだよね。

そうだよ。ただの HFS ね。68K のマシンは拡張フォーマットのディスクを起動ディスクにできないからね。

■メンテナンスに関して何か問題はないのかな?

通常のメンテナンスに関しては特に問題はないね。前に言ったようにファイルサーバにバックアップする作業の速度を上げたいから 100Base-T が使えたらなぁとは思うし、メンテナンスに使うソフトの処理速度も遅いなぁとは思うけど、でも、まぁ、こんなもんだなと納得はいってる。だけど、コンテンツの編集の点では、さすがに LC475 って辛いなと感じることが多いね。

■具体的には?

WSM のアーカイブ作成の作業になったりすると大量のページを一括して AppleScript で処理したりするんだけど、そうするとすっげぇ時間がかかるわけ。アーカイブに入っていたページのファイルを、年ごとのフォルダに移動させるって作業をやった時には、6千ぐらいのファイルを、書き換えながら移動させていったんだけど、こうなると一日がかりの作業になっちゃうの。それも、ほとんどが、AppleScript の実行が終わるのをぼ〜っと待ってるだけの時間なのね。こういう時には、あぁ、LC475 ってやっぱ 25MHz のマシンだよなぁと実感するし、もう少し早くて快適に作業したいなと思う。

■ハードディスクだけ抜き出して G3 につないで作業しちゃうとか。

それも考えたことがある。でも、ディスクの書き込み速度なんかは変わらないわけじゃない。それに、やっぱ LC475 に手を付けるのが怖いんだよね。うまくいってる時にはそのままにしておくのが一番だから。それで、まぁ、しょうがないかとあきらめてはいる。

■AppleScript の実行速度が遅いことの他に何かメンテナンスの問題は?

特にないかぁ。まぁ、強いて言うなら、無節操にページを増やしてきたので、自分でもたまにわけが分からなくなることかな。CGI 同様に、ページの方でも、こんなページを作ると面白いかなとか、これはページにしておけばいいかなとおもったら、すぐにページを作ってきた。こういう身軽さは自分でサーバを運用しているからこそだとは思うのだけど、だけど、たいてい、何も考えずにサーバのトップディレクトリにページを作っちゃうのね。その方が URL も短くなるから。その結果、サーバのトップディレクトリ、つまり WebSTAR と同じフォルダーってことになるんだけど、そこには 157 項目のものが詰まってしまってる。テキストファイルだけでも 100 はあるね。このへんのいい加減さは、自分でも褒められたものではないと思う。まぁ、なんでもトップディレクトリにあるがゆえの便利さもあるんだけど。

■このページだってトップディレクトリに置いたよね。

そうそう。そんな感じで、ページ作ってはトップディレクトリに放り込んできたからなぁ。あ、あと、画像を別サーバに置いてあるんだけど、こっちの方は、色々と細かくフォルダーにわけて画像を収めてるのが災いして、サーバを見ただけではどのページで使ってる画像化わかんなくなってきてる。だもんで、今は使わなくなった画像もいっぱいあるはずなんだけど、どこからリンクされてるかわかんないから、そのままとりあえず置いてあるんだよね。

■ページ管理はどんぶり勘定って感じかな。

うん、とにかく Web でちゃんと見れたらそれでいいじゃんってとこ。それにディレクトリ構成が奇麗かどうかではなくてページのリンクが分かりやすいかどうかが重要なんだから。もっとも、こっちも今はちょっと破綻しかかってるんだけど。

■コンテンツ管理のためのソフトなんかは使う気はない?

今となっては遅いってところかな。それに、コンテンツのページは、今でも全部自分でタグまで含めてエディタで書いてるので、HTML エディタみたいなものは不要だしね。ページを作りたいと思ったら、Jedit 立ち上げて、ぱこぱこ書いて、とりあえずサーバのトップディレクトリに放り込んで、リンクをどっかに書いておく、こんな感じで気軽にページを作れるのが自分にはあってる。というか、そうやってやってきたから、一つのスタイルとして染みついちゃったってところ。

■良く言えば機動力重視?

そんなにかっこいいものではないけど。でも、僕は Mac でサーバを運用するってことがそういうことだと思うのね。あえてって言うのも変だけど、Mac っていうパソコンでサイトを運用するのは、自分が普段使っている道具としてサーバを持つってこと。サーバ用のちゃんとしたマシンでちゃんとした OS を使って運用するのに比べたら、色々と問題もあるし手間もかかるかもしれない。だけど、自分の道具として使いこなせるわけ。自分の好きなように遊べる。自分で納得いくようにいじり回せる。それが楽しいってこと。森博嗣っていうミステリィ作家が自宅の庭で庭園鉄道を引いて遊んでいて、その様子を本やホームページで見ることができるよね。あれを読んでると、やってることは全然違うんだけど、コアにある、なんていうんだろ、悦びのドライブする力、その力に全力で身を任せる愉しみ、そういうものが、僕が LC475 でサーバやってんのと同じようなものかなぁと感じる。

■じゃぁ、自分で愉しくなくなったらさっさとこのサイトも止めちゃう?

WSM に蓄積されている多くの人たちの提供してくれた情報のアーカイブをいきなり消滅させるのは悪いし、それを維持する責任はあると考えてるので、サイトを止めることはないだろうけど、でも、.mac にでも移しちゃって、研究室のマシンでわざわざやったりはしなくなるかもね。でも、今はまだまだ愉しくてしょうがないから、このサイトは続けるけど。

■なるほどね。じゃぁ、今日はこんなところにしておくかな。あ、最後にひとつ。なんでこのサイトは mtlab.ecn.fpu.ac.jp っていうホスト名になってるの?

大学のネームサーバに登録する時に、Motoyuki Tanaka の研究室(Lab)のマシンだから、mtlab ってことでよろしくって登録してもらった。後になってから、Web サーバのホスト名は www で始めるのが一般的になったんで、www.mtlab.ecn.fpu.ac.jp っていうホスト名も登録してもらって Web はこっちを使うようにしようかなとも思ったんだけど、URL が長いと自分で入力するのも面倒だし、ま、そのままでいいかってことで、今まで来ているわけよ。

■研究室にあるから mtlab なんだけど、このサイト自体が研究室でもあるわけだ。

そうだね。

■じゃぁ、明日は最終日ということで。


Day 9 好奇心で出たとこ真剣勝負

■今日が最後ということで、これまで取り上げなかったことを、あれこれと、落ち穂拾いしていこうかと思うんだけど、そもそもどうして LC475 でサイトを運用することになったんだっけ?

すでに色々なところで書いたり話したことだけど、1994年、僕の勤務校のある教授が、自分が買うのと一緒に僕にも LC475 を買ってくれることになった。もちろん、サポートは僕がするっていう条件でね。当時は自分の研究費で Mac を買うことなんてできなかったから、ありがたかったなぁ。で、8月に LC475 が研究室に来て、ネットに繋がって嬉しくて、当時はブラウザといえば Mosaic だったわけだけど、それを使って web サイトのサーフィンなんかもしていたのね。それ以外にも info-Mac から色々なソフトをとってきては動かしたりしていたわけだけど、そうして偶然にダウンロードしたソフトの中に MacHTTP があった。HTTP ってのが Web に関係あるというぐらいの知識はあったから、まぁ、Mosaic に関係した何かだろうぐらいの気持ちで落としたんだと思う。で、解凍してドキュメントを読んで見たら WWW のサーバだって書いてある。ほんまかいなと思って動かしてみたら、確かに Mosaic で自分が書いた文字がページとして表示される。当時、同じ研究室にいた同僚が Sun のワークステーションを使っていたんで、そっちで表示してもらっても、ちゃんと表示される。そっか、このソフトを動かしておくと、自分で Web ページを持つことができるんだ、って感動して、それから動かし始めたわけ。それがたぶん9月ごろの話。その後、学内の情報関連の ML で他の同僚にも WWW サーバが動いてるよってアナウンスしてアクセスしてもらったりしながら、HTML の書き方を学んだりして、サイトを作り始めたわけ。この 1994年は、僕は学内の自動車産業なんかの生産方式について調査する研究会に入っていて、10月にドイツとイギリスに自動車産業の調査で行ったりしているんで、けっこうドタバタしていてた。だから、すぐに対外的に公開するようなサイトにはならなかった。ホスト名を大学のネームサーバに登録してもらったのが11月になってからだったと思う。それから、MuON の ML とか、自分の周りの交流のあった人たちにぽちぽちと告げていったってわけ。

■じゃぁ、正確にいつからサイトの正式運用を始めたかってのは記録にも無いわけ?

記録にも記憶にも無いね。だから、10周年ってのもいつのことだ?って感じなんだけどね、実は。それに、すでに学内の人からはアクセスしてもらってたし、外部からでも IP アドレスで指定すればアクセスできるようになってたんで、今日からオープン!みたいな感じではなかったんだよね。だいたいオープンしたところで誰もアクセスするわけないんだし。

■当時は新着サイトを紹介するページとかあったじゃない? あれに登録した?

えっと、国内のは NTT でやってたのが有名だったけど、あれはどうだったかな? 載せてもらったような気もする。それとは別に、MacHTTP の ML のメンバーの一人が、MacHTTP でやってるサイトの紹介ページを作って管理していたんで、そこには僕からメールして載せてもらった。

■じゃぁ、NIFTY に『MacでWWWサーバーをたちあげる』をアップしたあたりから、ぼちぼちとアクセスが来るようになったのかな?

そんな感じかな。ちょうど Netscape が衝撃のデビューを果たした頃だね。

■サイトを立ち上げた時からずっと LC475 でやっていこうって決めてた?

そんなこと考えもしなかった。先の見通しなんか何にも持たずに、ただ、僕の LC475 が web サーバになったよぉ〜!ってだけでやってたからね。そのまま気がつけば今に至るわけ。まぁ、このサイトの運用に限らず、僕は「出たとこ真剣勝負」ってのがスキなのね。大げさで笑われるかもしれないけど、僕の生きていく上でのポリシーだと言ってもいいかな。何かの縁や出来事で色々なことが起きていくなかで、その時その時に、自分なりにベストの選択をしていけばいいやって感じかな。LC475 でサイトを始めてみたら、始める時には思いもしなかったことが色々と起きて、そのつど、僕なりにやってきた。それでいいんじゃないかなと思ってる。

■じゃぁ、このサイトは、この先もどうなるか分からないってことかな?

そうだね。何が何でもこうするぞってものは一切ない。WSM とそのアーカイブみたいに、多少は責任感というか、ささやかな使命感をもってやっていこうと思っているものはあるけど、それだって、いざとなれば放り出すことだってできるわけだ。使命感とか言っても、自分が勝手に思い込んでカッコつけてるだけだしね。また、初日に言ったみたいに、僕の勤務校の状況が変わっていくなかで、サイトの運営も影響を受ける日が来るかもしれない。何が起こるか分からないけど、それがある意味で面白いんでね。っていうか、色々なことが起きるのを面白いと思えるうちはサイトの運用は続けるだろう。面倒なだけだと思ったら、そのときはきっぱりやめちゃうだろうな。

■もし今、何も無い状態で、サイトの運用を始めるとしたら、どんなふうにする?

う〜ん、難しい質問だなぁ。今となってはわざわざ 68K Mac で新たにサイトを運用したりはしないだろうからな。OS X Server を買って、そこでポチポチとやっていくかな。Zope なんかはハマりそうだなとは思ってる。でも、案外、自分でサイトなんか立ち上げずに、.mac の自分のホームページがあればいいってことで済ませるかもしれないね。

■.mac の方は、web ページとしては今は何も使ってないの?

うん。トップページだけは置いてあるけど、それにしたって自分のサイトのあるページのコピーだしね。ちょっともったいないかなとは思うんだけど、だけど iDisk をマウントして作業するのがかったるいんだなぁ。それで使わないままになってる。だから URL も一般には公開してない。そのうち、ソフトやアーカイブのダウンロード用に使おうかなとは思ってる。

■.mac で済んじゃうってのは、もう CGI とかそういうのはあんまり首を突っ込まないってことかな?

新しいプログラミング言語やサーバの仕組みを理解する時間が取れないってのが大きな理由かな。やりたいことがあったら何が何でもやってしまうのが僕なんだけど、今は、プログラミング言語だとか OS X Server だとか、それに取り組むよりも、ずっとやりたいこと、読みたい本が一杯あるんだよ。そうだなぁ、たとえば3ヶ月、他のことは何もしなくてもいいから OS X Server でのサイト運用をマスターしてツールも自分で作れるようになれさえすればいいって時間が与えられたら、WSM を OS X 上で運用できるようにはなるかなとは思うんだけどね。

■リストラされた時に再就職の備えとして取り組むとか?

再就職っても年齢制限でひっかかりそうだけどね。

■さっきちらっと Zope って言ってたけど、python にも関心はある?

ずぅっとあるよ。python の解説書が初めて出た時には買ってるし。AppleScript の次に自分のプログラミング言語としてマスターするなら python だなと思ってる。まぁ、そう言いながら、Perl とか PHP とか Ruby とか、色々と気になってはいるんだけどね。

■プログラミングの話になったところで REALbasic に話をふるよ。REALbasic でサイトのためのソフトをいくつも作ったよね。

なんといっても UVJ Mailer だね。これを作ることができたってだけで REAlbasic に首を突っ込んだかいがあったと今でも思ってる。それと普段使っているものだと partialEngine かな。

■そもそも REALbasic を使ってみようと思ったきっかけは?

CrossBasic って名前でベータ版が出ていた頃から、気にはなってたのね。最初は BASIC と JAVA の両方に対応したツールだったから。ちょうどサーバ関連の色々なセミナーなんかで話をしたりしてた時期なんだけど、セミナーで一緒になった魚井先生がベタ褒めしてたのを覚えている。でも、すぐには手を付けなかったのだけど、AppleEvent に対応したってことで、それなら CGI を作れるねってことで、本格的に取り組んだわけだ。その時の経緯というか、僕がハマっていく経過は、WSM の[REALbasicでCGIは作成できますか?]に残っている。このネタは、Mac Developer Journal の連載記事の中でも取り上げたので、その記事を PDF にしたものもサイトで公開してるよ(makingCGIwithRB.pdf)。

■AppleEvent に対応っていうのが決定的だった?

そうだね。あとは socket があってネットの通信がコントロールできるってこと。そして、そういう機能を用いた、ちゃんとしたアプリケーションが作れるってこと。おまけに、最初のバージョンは 68K もサポートしていたしね。

■BASIC でプログラミングしたのは REALbasic が初めて?

違う。ずっと前に HyperCard の XCMD 作成用の HyperBASIC っていうコンパイラをちょっとだけ使っていたことがある。もっとも、名前は同じ BASIC と付いていても、全然別物だと言った方がいいくらいに違うものだけどね。REALbasic の方はオブジェクト指向になってたんで、AppleScript をやってた僕は、わりとすんなりと入っていけたね。

■REALbasic での AppleEvent / AppleScript の扱い方をまとめたページも作っていたね。

ページではなくて文書ファイル。WSM に書き込んだものをまとめたものね。pratical_use_of_AE_in_RB.sit っていうのだけど、綴りが間違ってたりする。で、この文書で REALbasic を使って AppleScript 対応のソフトウェアを作成するにはどうしたらいいのか、みたいなことをまとめたわけ。で、それは自分が REALbasic で AppleScript 対応のツールを作っていくために調べておいたことなんだよね。この文書も、改訂作業をやりかけたままになってしまったな。

■UVJ Mailer の作成だけど、大変だった?

socket を使ってサーバと交信するようなプログラムを書くのは初めてだったので、その点は最初とまどったけど、XCMD をそのまま使うことができるという REALbasic の仕様に助けられたこともあって、基本的な送信機能を組むのはそんなに難しくなかった。でも、サーバで自分が使うためのツールとして満足できるようにするのは、なかなか大変だったけどね。

■UVJ Mailer って、3.2 のベータのまま開発が止まってるよね?

僕の手元には 3.2 の完成版があって、サイトですでに使ってる。だけど、このバージョンで EIMS や SIMS の AppleScript のフロントエンドとして使える機能を組み込んだんだけど、そのテストが十分にできていないので、正式版を出してないのね。なんか、勢いが切れないうちに出してしまわないとだめだなぁ。それと、最近は、自宅で全くプログラミングしなというかできない状況だから、時間がとれないってこともあるな。

■今でも REALbasic は使ってる?

つかってるよ。ちょっとした処理をやりたいときに小さなアプリケーションを作って使ってる。WSM の管理のためのファイルブラウザなんてのも作ってある。WSM ってファイルの数が多いから Finder でフォルダーを開いてファイルを探そうとすると、フォルダーの中身がちゃんと表示されるまでにすんごい時間がかかるのよ、LC475 だと。それで、フォルダーの中からファイルを探しだして、編集するためのツールを作ってあって、メンテナンスの時に使ってるよ。あと、自分の iTunes のプレイリストに入ってる Jazz のアルバムを web ページにするっていうミーハーなことをやったときにも、プレイリストを書き出した xml ファイルからアルバムタイトルの一覧だけを抜き出すために REALbasic でプログラム作ったな。

■そういうときもいまだに v.1.1.1 を使ってるの?

そうだよ。ユニコードの処理が必要な時は v2.1.2 とか v4.0.2 を使うことがあるけど、たいていは v1.1.1 で間に合うしね。

■ライセンスを購入したのはその3つのバージョン?

そう。v2 は、まぁ普通に何も考えずにアップグレードしたんだけど、その後、REALbasic は頻繁にバージョンアップを行っていくのはいいのだけど、なんかベータ版のまま無理やり製品として売ろうとしてないか?って感じて、v3 は見送ったのね。そして、カーボン版アプリケーションが作れるということで v4 へはアップグレードした。だけど、Windows 版も Linux 版も作れますって方向で機能が強化されても僕は嬉しくも何ともないし、それよりちゃんと信頼できるコードを作れるツールなのかよ?って不信感もぬぐえなかったので、この v4 を最後に、もう REALbasic の更新には付きあわないことにしたの。さっきの WSM の発言の中に ML に意見をポストみたいなことが書いてあったと思うけど、ずっと入ってた REALbasic の ML からも抜けちゃった。

■最新版には関心はない?

まったくない。OS X での開発環境としては悪くないのかもしれないけど、もう REALbasic はいいやって感じ。ちょうど WebSTAR が PPC でしか動かない v4 に移行してからは、なんとなく冷めた感じで付きあって、OS X 用の v5 になってからは完全に関心をもたなくなったのと同じかな。どっちも最初の開発者が途中で抜けちゃうってとこまで一緒だったりするんだよね。

■REALbasic で作った CGI は使ってないよね?

自分のサイトでは使ってないよ。でも、ある団体の大会のオンラインの参加申し込みページを作成した時には CGI を REALbasic で組んで、それを AppleShareIP の Web サーバで動かしたことはある。その時の話は[REALbasic での CGI 開発記]にまとめてあるよ。

■自分のサイト以外でも色々やってたりするんだ?

でも、この時と、それより前に日本水産学会の大会が勤務校の小浜のキャンパスであったときに、大会の参加受付ページを作ったぐらいかな。

■自分の研究室のサーバを使ったの?それとも小浜まで行って作業した?

小浜キャンパスまで行って作業したよ。この時は FaceSpan で CGI を組んだな。バグがあってもすぐには修正に行けないので、小浜に行った時にはかなり緊張しながら集中して作業した。

■サイトの構築の手伝いに行ったことなんかはないの?

CGI の説明や実演に行ったことはあるけど、サイトの構築を手伝うといったことはやってないね。頼まれても断るけど。

■なるほどね。さて、そろそろ終わりにしようかと思うのだけど、型通りに今後の見通しなんかをまとめたいところだけど、それは無いってことでいいのかな?

うん。さっきも言ったように、出たとこ真剣勝負で、日々を積み重ねていくだけだね。そのうち否応なく LC475 ではやれなくなる日も来るだろうけど、そうなったらその時に考えて、その時に自分がベストだと思ったことをやるつもり。

■で、目下は CGI なんかのプログラミング関係よりは、コンテンツの作成の方に比重が移ってるってとこか。

このページもその一環だったりするんだけどね。まぁ、自分の研究ノートを積極的に公開してってことに力を入れたいかなと考えている。昨年、アラン・チューリングのチューリングテストについて、彼の論文の読解をしながら作っていったメモを[チューリング・テスト再考]としてまとめ、その作業を踏まえたチューリングの論文の意訳を[異本「計算する機械と知性について」]として公開したんだけど、ああいう感じで、自分の研究ノートを書いておいて、ちょっとでも関心のある人に読んでもらえたらいいなって思う。もっとも、単なる自己満足でもいいんだけどね。ページにまとめるってことが研究のモチベーションを高めるから。

■自分の中にあるものをサイトに載せていくって感じ?

そうだね。僕の活動記録、それは授業や研究や趣味や色々なものが入るんだけど、それをオープンにしていく場としてサイトを使うってことかな。僕のしょうもないところや弱点なんかもさらけ出しちゃうことにはなるんだけど、そのことで、新しい繋がりが生まれるかもしれないしね。

■子供の写真を載せたりしないの?

それは絶対にしない。実家の両親へのサービスとしてすることがあったとしても、一般に公開はぜったいにしないよ。あくまでも、田中求之って人間の好奇心の軌跡を残すってことで行こうかなと。

■なんだかんだで、好奇心ってのが、このサイトの10年、そしてこれからのキーワード?

そうだね、まさに。

■じゃ、そういうことで。次は16周年かな?

それはさすがに無いんじゃないの? 少なくとも LC475 のサイトとしては。

■じゃぁ、LC475 Farewell Party の時かな。

だね。


LC475 August 17, 2004


Web Scripter's Meeting
田中求之の生態学
Motoyuki Tanaka's Web site