この日記は毎日寝る前にアウトラインプロセッサを相手にだいたい1時間をメドにして書いている。たまに長引くこともあったり、夕方にふと思いついて書くといったこともある。
原稿を書くのにアウトラインプロセッサは欠かせないものだが、昔使っていたActa Classicから進歩している部分があるかといえば……たいして進歩してないじゃないか、というのが偽らざるところだ。
目下使用しているのは「FO」(現TAO)というアウトラインプロセッサだ。
シンプルで軽快な動作が信条というソフトで、まだあちこちに荒削りな点はあるが、動作の緩慢なOmniOutlinerよりも「使いたい」気になる。
だが、いわゆるアウトラインプロセッサに単なる「段付きワープロ」以上の機能は望むべくもない。用字用語の統一機能もない、本文からキーワードを抽出して辞書化するような機能もない。テンプレートから新規文章を組み立てるような機能もない(ニュースリリースの整理を行うような時に便利だろう)。
スケジュールの期限などを書き込んでおいても、それを知らせてくれるわけでもない。
「アウトラインプロセッサ」という言葉に甘んじている限りは、アウトラインプロセッサは単なるアウトラインプロセッサでしかないだろう。言葉として書いてみると「それでいいんじゃない?」という話だが、それではまったく進歩がない。
かくして、AppleScriptの出番となる。
まったく別のアプリケーションとアウトラインプロセッサを連携させて、自分の行わせたい機能をソフトの作者の手を煩わせることなく、勝手に自分で実現するということになる。
ただ、残念なことに現在使っているアウトラインプロセッサ「FO」はまだ開発途上のソフトであり、AppleScriptの対応機能は実装されていない。Omni OutlinerであればAppleScriptに対応しているものの、Outlinerは使っていて何か癪に触るところがある。
データベースとアウトラインプロセッサの連携、表計算ソフトとアウトラインプロセッサの連携、スケジューラとアウトラインプロセッサの連携、メーラーとアウトラインプロセッサの連携。ほかにもいろいろと面白い組み合わせが実現できそうだ。
こうして、GUIベースのデスクトップアプリケーションを相互に連携させられる環境でないと、もはやコンピュータという気がしない。そういう意味でも、FOには1日も早くAppleScript対応の機能を実装してほしいところだ。
アウトラインプロセッサの話から脱線する。ここで本気でローカルの日記を自動でMixiの日記に突っ込む処理を考えてみたい。
「日記」をつけるだけなら、「Diary++」というソフトが存在しており、このソフトはAppleScriptにきちんと対応している。
作者のMiko氏に「どういう方針でAppleScript対応を行っているのか」メールで質問したところ、「新規機能を追加してほしいというリクエストにすべて応えることはできないので、ユーザーが自分で機能追加を行えるようにAS対応している」とのことだった。実に正しい方向性だと思う。
わざわざアウトラインプロセッサを使わなくとも、Diary++を使って日記を書いたほうがよさそうな気がしてきた。
タイマーソフトウェアと組み合わせて、Diary++のプロセスが走っていない状況であればDiary++を起動し、最新の日記が作成されていないかをチェック。作成されている場合には、本文とタイトルを取り出して、Safariを起動。MixiのURLをオープンして、新規日記作成のフォームをキック。タイトルと本文のところに日記からコピーしてきたテキストを流し込んで、書き込みのボタンをキック。
これらの動作を行うさいに、途中経過を音声で報告し、何か途中でエラーが発生した場合には、自分あてにメールを出しておいてもよい。……AppleScriptでさっくり組めそうな内容である。
まじめにDiary++を使ってみると、日記に属性を付けられないのが不便であるように感じた。いや、このソフトの流儀からすれば属性ごとに日記ファイルを作成して、使い分けてくれということなのだろう。
思い出したが、このDiary++は、テキストエディタとしてはよく出来ているものの、「日記」というテーマをあまり掘り下げられていない点が残念だ。
少なくとも、公開日記と非公開日記の属性は付けられるようにしていただきたい。そうでなければ、間違って非公開日記を外部にアップしてしまう危険性だってある。Subjectの先頭に[公開]と書いておけば公開日記にするという仕様で公開用のAppleScriptを作ってもよいが、打ち間違える可能性もある。
とりあえずは、指定の日記ファイルに公開用を書きためておいて、それをタイマーで公開処理するとよいだろう。公開が終わったらスリープのコマンドを実行してPowerBookをスリープさせてしまえばよい。