Firefox Hacks 翻訳日記

アクセスカウンタ

zoom RSS Mork の謎

<<   作成日時 : 2007/05/05 17:51   >>

トラックバック 3 / コメント 0

サブタイトルは、「Firefox が Places を搭載しなければならない理由 (の一つ)」。
Firefox 3 で Places が実装されれば Mork は消滅する運命にある筈なので、
黒歴史確定のバックエンドについてだらだら語っても意味ないような気もするが、
せっかく調べたことだし、記録として残しておきたい。

語ってもいいですかな? (©メイチェン)

Mork って何?


Mork とは、Netscape の開発者だった David McCusker が Mozilla のために作った、
テキスト形式のデータフォーマットである。
そもそもは、メールの要約ファイルとして作成されたものだが
(Inbox.msf の msf は "Mork Summary File" の略号)、
その後、ブラウザの履歴ファイルなど様々なファイルに使用されている。(次項参照)

history.dat の最初の一部を示す。
// <!-- <mdb:mork:z v="1.4"/> -->
< <(a=c)> // (f=iso-8859-1)
(8A=Typed)(8B=LastPageVisited)(8C=ByteOrder)
(80=ns:history:db:row:scope:history:all)
(81=ns:history:db:table:kind:history)(82=URL)(83=Referrer)
(84=LastVisitDate)(85=FirstVisitDate)(86=VisitCount)(87=Name)
(88=Hostname)(89=Hidden)>


Mork はどこに使われているのか?


Mozilla2:Unified StorageCurrent data stores in Mozilla より。

Firefox
  • URL の履歴 : history.dat

  • フォームの履歴 : formhistory.dat


Thunderbird
  • アドレス帳 : abook.mab

  • フォルダ・キャッシュ : panacea.dat

  • IMAP サーバー情報 : ImapMail/<server>.dat

  • メール要約ファイル : Mail*/*/*.msf


msf、dat、mab と様々な拡張子が使われているが、全て Mork ファイルである。
一方、拡張子が dat でも compreg.dat や mailViews.dat は Mork ファイルではない。

Mork に仕様書はあるのか?


2005年まではないに等しかった。
www.mozilla.org に存在するのは、David McCusker のメールをテキストファイル化した次の 2文書だけ。

[MORK] brief syntax summary related to MDB usage
[MORK] version 1.1 grammar 18Dec98

前者が入門 (primer) で、後者が文法を扱っているらしいが、
前者は読んでいるうちに頭が痛くなるし、後者は書いた本人以外には理解不能としか思えないのは
私にデータベースの知識が乏しいからだろうか。

2005年に、David McCusker 自身が、いくつかの文書を自分のサイトに公開した。
(現在は、File Not Found)
その文書をコピーした物が MDC の "Mork" カテゴリで読める文書だと思われる。

Mork What Is It - MDC
Mork Why - MDC
Mork Structure - MDC

最後の "Mork Structure" が最も詳しい技術的文書だが、Parser の項目で、

The grammar is only a clue, not a spec.

とあるように、これだけで充分とは言えないだろう。

なお、本稿執筆時に WebArchive でアクセスできたのは 目次ページ だけだったが、
このページを読むと、"Mork" の名称が、ロビン・ウィリアムス主演の SF コメディ、
"Mork and Mindy" に由来している事や、なぜこの名前を選んだのかがわかる。

Mork の何が悪いのか?


1. Mozilla 以外には使われていない、独自仕様のデータフォーマット。
2. 仕様書がない (に等しい) ので解析が困難。
3. 開発者がすでに退社しており、継続的な開発・修正が困難。
4. ファイルの一部が破損したときに手作業での修復が困難。
5. 開発者の言によれば、「テキストファイル形式を使うのは馬鹿げている、と思ったが
そうしろと命令されたから作った」(前出 WebArchive のページ)

Jamie Zawinski が立てたバグ
Bug 241438 – please make history.dat easier to parse (i.e., not Mork)
での jzw の言では、

the single most braindamaged file format that I have ever seen in my nineteen year career (私が 19年のキャリアで見たうちで、最悪のファイル形式)

とあるが、これは、何度もメールで進言したにもかかわらず David McCusker が Mork に固執した、
というエピソード (mail summary files) を考慮に入れるべきだろう。

とにもかくにも Mozilla アプリ内では Mork は動作しており、
実用上で大きな問題はない、とも言えよう。
他のプログラムで history.dat を利用する、などの汎用性・拡張性を考えなければ、の話だが。

逆に言えば、Mork を使うメリットというのは今までの稼働実績以外にはなく、
SQLite などのデータベースにリプレースするというのは David McCusker の意にも沿う事だろう。

Mork をパースするには?


Mork - MozillaWikiBug 241438 より。

CPAN にも File-Mork-0.3 (参考: はこべにっき# - File::Morkで日本語が使えるように) などがある。

Mork の開発者 David McCusker は何をしているのか?


Apple、Netscape、OSAF、Paypal/eBay、Akamai と様々な IT 企業を渡り歩いた
David McCusker だが、2005年1月に Akamai を退職した後の職歴は不明である。
彼の個人サイト erys.org は、現在でもトップページだけアクセスできるが、
コラージュと思われる画像が一枚表示されるだけだ。
タロットカードや恐竜の化石に混じって、なぜラピュタの画像があるのか、が最後の謎だが、
この画像を見た上で David McCusker にメールして尋ねる勇気は私にはない。



<2007年12月17日追記>
erys.org がアクセスできなくなっているようなので、
上記の コラージュ画像 をアップしておく。
なお、精神衛生上、あまり長時間ながめるのはお勧めしない。
<追記終わり>

テーマ

関連テーマ 一覧


月別リンク

トラックバック(3件)

タイトル (本文) ブログ名/日時
Mozillaの履歴(mork)
Mozillaの履歴ファイル(history.dat)はmorkという形式で保存されています。 ...続きを見る
Jemのセキュリティ追っかけ日記+α
2007/05/16 20:20
Mozilla Firefoxの履歴ファイル(history.dat)を表示するCGIをとりあえず公...
MozillaのFirefoxの履歴ファイル(history.dat)を表示するCGIを作成してみました。 やっぱり文字化けは直らず…。ま、いいかw。 ...続きを見る
Jemのセキュリティ追っかけ日記+α
2007/05/22 00:23
Webブラウザの履歴取得方法まとめ
Webブラウザの履歴取得方法まとめ ...続きを見る
katamari.text
2007/12/01 23:36

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Mork の謎 Firefox Hacks 翻訳日記/BIGLOBEウェブリブログ
文字サイズ:       閉じる