メモ技術

毎日の仕事や作業を通して得られた情報や、自分自身で作ったテキストデータは、必ずログとして残すことにしている。メモは、1つのテキストファイルと決めている。具体的には仕事用にひとつ、プライベート用にひとつ、それとモバイル用にひとつと、合計3つのファイルで基本的に自分の情報を管理している。(プライベート用とモバイル用は同期をとっている)作成したメモは消去することは無く、すべて蓄積している。新しいものを先頭にどんどん追加している。メモ中の各項目の区切りにはタイトル行を設け、タイトル行は星印「★」ではじめるようにしている。利用しているエディタ(EmEditor)の設定で「★」に色をつけるようにしており、このようにすると項目の区切りがわかりやすいというメリットがある。エディタはすべてWindows上で動作させているのだが、メモデータへのショートカットをデスクトップに設定し、特定のキー操作でワンタッチでメモを開けるようにしている。毎日の予定などもこのメモの中に入れているのだが、予定のデータはやはり時系列に並べなければ役に立たないので、マーカー文字列「」を入れ、これによって現在の予定情報に簡単にたどり着けるようにしている。
メモを書く上で私が決めた規則はこれだけである。あとはどんどん内容を追加して言っている。たとえ自分自身が決めたものでも、ごちゃごちゃと規則を決めると守れなくてメモそのものが長続きしないことが目に見えているからである。
現在、私のプライベートメモは、その容量が5万行を超えているが、昔と比べてマシンが速くなったおかげで、検索も含めてて全くストレス無く扱うことができている。(ちなみにスタートしたのは今から10年以上前である)この方式での問題点は、すでに入力した情報へのアクセスである。先の★印と予定情報以外は全く検索に対する配慮が無く、また時刻の情報も基本的には入れていないので、ある情報がどこになるのかを検索するときに難儀することがあるのと、情報を見つけても、それがいつ書かれたものかを直接的に知る手段が無く、前後の情報から判断するということを繰り返している。それでも特に気にせずにすごしていたのだが、先日こんなページを見つけた。

横着プログラミング 第1回: Unixのメモ技術

ここに書かれている「ChangeLogメモ」というのが、私のメモと非常に発想が似ている。ChangeLogは、ソフトウェアを開発する際に、その変更点を記録するためのファイルである。「ChangeLogメモ」は、その名のとおりChangeLogフォーマットで記録を残すことによって、ツール(この記事ではEmacs)のサポートが得られ、Ruby等のツールでのある程度の要約が出来るというところが、私のメモとは大きな違いである。ちょっとこのページの実際のメモの例を見ると、タイトル以外の行がインデントされているので、わたくし的にはちょっとつらいなーといった印象である。論理的に1行の内容でも、長いので2行に分けたり、逆に内容を修正して短くなったのでまた1行に戻したりということをよくするのだが、途中に無意味なタブが入ることになり、この処理に手間をとられてしまう。論理的に1行の内容は改行をはさまずに1行で記述すると言う習慣には今のところなっていない。(はてな日記で1行方式にだいぶ慣らされつつあるが...)
これに刺激されて、タイトル行(「★」を含む行)には必ず時刻情報を残すことにした。これによって、情報にタイムスタンプが刻まれる。EmEditorでは[F5]を押すと時刻情報が挿入されるので、たいした手間でもない。あと、これはまだ作っていないが、1つの巨大なテキストファイルを検索するツールがほしい。unixgrepのようにただ単に指定した語を含む行を表示するのではなく、たとえば私のメモの検索であれば、「★」で始まるブロックをひとつのドキュメントとみなし、指定した語が含まれるドキュメントをGoogleの検索結果のようなイメージで表示してくれるツールである。