このテキストは、日刊デジタルクリエイターズに寄稿したものです。
■Workforce of a Freelance(10)
メールはテキストファイル、設定もテキストファイル
2005/2/18配信号/新居雅行
OMEというメールソフトを作っているが、そもそもの作り始めるきっかけとなったところの話をしたい。そのときのコンセプトはいいのか悪いのか、今でも引きずっていることも事実である。Mac OS Xの時代をにらんだつもりでも、なんとなくMac OSライクな側面も見えるというところだろうか。
●メールボックスがつぶれた!
こんな経験は、今でもあるかもしれないが、Mac OS 9時代は当たり前のようにあったことを思い出す。筆者は当時、Outlook Expressをメインのメーラにしていたが、メールボックスにたまったメールの始末に苦慮していた。バックアップを取るにも時間がかかるし、整理するにもOutlookの外にメールをうまく置くことができない。かくして、どうにかならんのかと思っているところに、データベースの崩壊が始まる。何かでシステムがフリーズしたとき、肝心のメールボックスがダメになってしまい、以後、Outlook Expressは以前のメールを全く表示しなくなった。
そもそも、メールの世界では、大昔は1メールが1ファイルだったと言ってもいいだろう。ところが、メールソフトが出始めると、そうしたやり方に問題が出てきた。当時のハードディスクだと、ディスク管理のための仕組みの制限で、1つのファイルを作ったとき、サイズがたった1バイトでもディスク上では16KBなどを取るようになってきていた。数ギガのハードディスクで、リソースフォーク込みだと、64KBになるような場合もあったかと思うが、これではディスクの利用効率が極めて悪い。確か、Claris EmailerのVer.1.0が1メールを1ファイルで管理していたが、効率悪い手法なので非難の矢面に立っていた。一方、他のメールソフトは、メールボックス全体で1ファイルや、あるいは全部まとめて1ファイルなど、ファイルシステムに頼らないでメールを管理するという方向へ行く。しかし、そのあげくの果ては、前述のようにファイルの崩壊で、すべてのメールが読めなくなるということなのだ。
筆者の手元でこうした問題が発生したのは、忘れもしない2000年問題目前の1999年12月末だ。MDOnlineを初めたばかりの時期で、今思うとなんとなく余裕があったのかもしれない。ちょうど、毎日の配信の最初に書いているテキストでそのことを逐一報告している。壊れたOutlook Expressのデータベースだが、中身を探るとテキストが見える。なるほどということで、独自に解析を行い、とにかく1つ1つのメールを切り出す方法は分かった。AppleScriptでタラタラと動くコンバータを使い、とにかく、テキストファイルに1メールごとに抜き出すことにとりかった。
●1メールで1ファイルでもOK
こうして作業をしているうちに、「別にこのテキストファイルのままでいいんじゃないの」と思うようになる。MacのディスクフォーマットはすでにHFS+になっていて、ファイルが使う1ブロックは4KBとなっていた。もっと小さくもできるほどになったが、ともかく以前のように64KBということは全然なく、ディスクの利用効率もさほど悪くないようになったと思う。ちなみに、後に計測したのだが、4KBのブロック長の場合で、40~60%の利用効率だが、32KBとすると利用効率が10%切るくらいのようなのである。つまり、昔のUNIXのやり方でメールを保存してもいいのではということが見えてきた。
もちろん、さまざまな問題点が即座に頭をもたげる。ストレージはテキストでいいとしても、それをブラウズし参照するのはどうするのか? そしてそもそもPOPサーバからメールを取ってきてテキストファイルにするのはどうすればいいのか? ある程度SMTPのことも勉強したが1から作ると相当大変だとすぐに気付く。そしてあれこれ探した。やっぱりいろいろあるものだ。
まずは、メールの受信と送信だが、Tanaka's OSAX等で有名な田中先生の、mboxerとUVJ Mailerがあった。もともと、単体で動くアプリケーションではなく、インテグレートを前提としたPOPダウンロード/SMTP送信アプリケーションなので、通信の出入り口はOKだ。あとはAppleScriptでがんばることになる。メールの一覧はどうするか? ここはひじょうに野心的に、Finderを使うことに決めた。Mac OS 9時代なのでファイル名に制約が大きい。そこで、ファイル名はシリアル番号+送信者にして、メールの件名をコメントに入れた。そしてFinderのファイル一覧でコメントも表示するようにすると、これまたそれらしいものになった。未読や既読の区別はファイルタイプを変えて、アイコンを切り替えるようにしてみたら、これまたそれらしいものとなった。そして、メール自体を読んだり、書いたりといった作業をとりあえずJeditを使ってできるようにした。もちろん、Outlookなどとは機能的には劣るが、Mac OSの中でメールのやりとりができる。ということで「Mac OSメール環境」と名付けた。略称は、当初からひねりを利かせてあって(笑)、Macと名乗ることにクレームをつくこともあり得ると思って、MではなくOを使った。そして、ソースをオープンにすることも考えた。実は、その頃にすでに、今の「オープンメール環境」のOpenという言い回しは思いついてはいたのだが、当初はMac OSという名前で、Macコミュニティに投げかけたかったのである。
●設定ファイルもテキストファイル
さらに、設定ファイルをテキストファイルにすることも考えた。今時は当たり前のことだが、当時のMac OSではちょっと珍しいやり方ではないかと思う。UNIXを使っていれば当たり前のことではあるのだが、Macではソフトウエアの中のさまざまな情報をリソースとしてバイナリ形式で保存するのがある意味ではセオリーだったのだ。
設定をテキストファイルにした理由は、設定そのものをたくさんのアプリケーションから参照する可能性があるということがった。いや、もっと切実な理由がある。テキストファイルにすれば、当面は設定ユーティリティなどを作らなくてもいいという超安易な考え方があった。たとえば、POPサーバ名やアカウントをテキストファイルに書く。作業はエディタで可能だ。そのうち、ユーティリティを作ればいいやと思いつつ、結局、いくつものnibファイルだけのプロジェクトがハードディスクに転がるということになってしまった。テキストエディタで慣れてしまえばその方が早いということもある。まあ、さぼっていると言えばそうなんだが、なんか他力本願になってしまう領域なのである。
そして、今思うと、そのテキストのフォーマットがいい加減なのである。いい加減というと言い過ぎかもしれないが、場当たり的と言えばいいだろうか。で、変えるに変えられないとも言えるし、変えるのも大変とも言えるだろう。しかしながら、ちゃんと文法を決めないで定義して、要はテキストとして入力しやすいようにしたのが、なんか独特な世界になってしまっている。Mac OS Xだと、defaultsコマンドで読み書きしたいところでもあるわけだが、そういう世界にも行っていない。もっとも、行ったところで大きな違いはないと言えばない。
かくして、2000年3月末に、「Mac OSメール環境」は公開された。Outlook Expressのデータベースの崩壊から3ヶ月、一人でちまちまとやってきた。だけど、これはみんなでいじれそうだと思い、オープンソースとして公開する。そして一人、また一人と関わる人が参加する。昔からの知り合いはもちろん、新たな人脈と言えるネットワークが作られた。Mac OS Xへの移行が活発な時期にメールソフトへの注目が集まりOMEに目を向ける人もたくさんいたが、今はちょっと鎮静化していると言えるだろうか。純正のMail.appのできばえがいい現状で、他のアプリケーションは苦戦するのは当然だ。そういうわけで、OMEはみんなマイペースであれこれやっている。その時々でアクティブな人が入れ替わり、なんとなく進んでいる。しかし、もはやどう進むのかはよく分からない。だけど、それはそれでいいのではないかと思ったりもする。
【にい・まさゆき】msyk@msyk.net
トレーナー、コンサルタント、デベロッパー、そしてライターと、あれこれこなすフリーランス。アップルの認定トレーニング制度が始まっているが、そちらに深く関わっている。とりあえず、Apple Certified Help Desk Specialistの認定は受けたぞ。