2013年9月20日金曜日

ThunderBird のメールを Spotlight 検索して Quicklook

ThunderBird のメールを Spotlight の検索対象にできないものか,とかねてから考えていたのだが,今日ちょっと思い立って検索してみたら良い情報が見つかった.早速試してみたところ期待通りにうまくいったのでその過程をメモ.
なお、テストしたマシンのOSはSnow Leopard.
mountain Lionなどで動くかどうかは試していないので悪しからず。

 ベースとなるのはブログ「鳥獣保護区」のエントリ「Spotlight で Thunderbird のメールを検索」にある記事.

やることを大きく分けると以下の3つ.
  1. Thunderbird.mdimporter をダウンロードしてインストール.
  2. ThunderBird の設定を変更.
  3. Quicklook の設定を変更. 
1. Thunderbird.mdimporter のダウンロードとインストール

https://bugzilla.mozilla.org/show_bug.cgi?id=290057#c110
に行って,
コメント番号110(日付は2007-07-11 06:05:58 PDT)の投稿にある
「attachment 271826」
のリンクをクリックすると "Thunderbird.mdimporter.zip" がダウンロードされる.
このファイルを解凍すると "Thunderbird.mdimporter" ができるので,これを
  フォルダ ~/Library/Spotlight (←現在のユーザ用)
もしくは
  フォルダ /Library/Spotlight (←全ユーザ用)
に入れる.

2. ThunderBird の設定を変更

Thunderbird の「環境設定」→「詳細」タブをクリックすると図のような画面になる.
ここで右下にあるボタン「設定エディタ」をクリック.すると警告表示がでるので,「細心の注意を払って使用する」ボタンをクリック.すると下図のような画面が開く.検索窓に 'mail.spotlight' と入れると図のような項目がリストアップされるので,このうち
mail.spotlight.enable の値を false から true に変更する.

変更の仕方は,当該行の false の部分にカーソルをあわせて右クリック.コンテキストメニューが表示されるので,一番上の「切り換え」を選択.
これで,spotlight 用インデックスの構築が開始する.
具体的には,
  フォルダ ~/Library/Caches/Metadata/Thunderbird/
が作成され,その中に設定しているアカウントに応じて階層構造をもったフォルダ群が作られる.最下位のフォルダの名前には '.mozmsgs' という拡張子が付いていて,その中に拡張子 'mozeml' の付いたファイルが格納される.この'mozeml' というのがメールのテキストデータで,spotlight はこの中身を検索してくれるという寸法.

mail.spotlight.enable の値を false から true に変更し,少し間を置いてから自分のメアドで spotlight 検索すると,メールが色々検索にひっかかって「おお!」となった.確かに ThunderBird のメールが検索できている.良い気分.

しかし,すこし間を置いたくらいでは,検索にひっかかるメールの数はごく僅か.インデックスが完成するまでには相応の時間が必要だろう.筆者の場合,6時間ほど経ってもまだ完了していないようだった(インデックス作成の進捗状況を確かめる事ができないので推測の域を出ない).ThunderBird を終了すると,インデックスの作成も中止されてしまうらしいので,ThunderBird を起動したまま,できあがるのをじっくり待つ事としよう.

3. Quicklook の設定を変更

さて,Spotlight 検索できるようになったのなら,検索結果の画面ですぐさま中身を Quicklook したくなるのが人情というもの.検索にひっかかるファイルの本体は先ほど書いた拡張子 ".mozeml" のファイル.このファイルをテキストエディタにドラッグ&ドロップしたところ,中身は普通のテキストデータであることが判明.よって一般のテキストファイルと同じように Quicklook できるはず.

筆者は 'QLColorCode.qlgenerator' を使っているので,こいつに拡張子 ".mozeml" がテキストデータであることを教えてやれば良い.

".mozeml" のファイルを mdls したところ,ContentType は com.mozilla.thunderbird.mozeml となっていた.そこで,
  /Library/QuickLook/QLColorCode.qlgenerator/Contents
を Property List Editor で開き,下のように com.mozilla.thunderbird.mozeml を Document Content Type UTIs に追加した.

これで,Quicklook できるようになった! めでたしめでたし.

2013年9月11日水曜日

OS X でバイナリファイルの比較

OS Xでバイナリファイルを比較する必要が出てきたのだが、ソフトウェアを持っていなかったので探してみた。ところが、日本語で数時間検索してはみたものの、使えそうなアプリケーションが全然出てこない。仕方がないので英語で検索してみたらすぐに良いのが見つかった。

見つけたのは Hex Fiend というバイナリエディタ。なかなかの優れものなのだが、メニューを一瞥しただけではにわかに比較の方法が分からないので、やり方をメモしておく。

ファイルを1つだけ開いている時の「File」メニューはこんな感じ。これではどうすればファイル同士の比較ができるのか分からない。


ところが、ファイルをもう一つ開くと「File」メニューはこうなる。


ここで、「File」メニューから「Compare 〇〇 and 〇〇」を選択すればよい。
すると次のような画面が開いて結果が表示される。

比較結果の表示も見やすいし、なかなか良い。おかげさまで目的が達せられた。ありがたや、ありがたや。