12. Aug. 2007 (Sun)

GTDのリストをテキストファイルで作ってOutlookに取り込むよ

▼さて、リスト群をどうするかですが
とりあえずスケジュールの管理はOutlook(と例のグループウェア)でやってるので、GTDのリストも全部Outlook内で完結すると都合がよろしい。

▼専用ツールとか
いろいろあるようだけど、優先順位をちょいちょいと変更する機能があるものは見当たらなくて基本的に項目名の頭に数字つけてソートとかそういうローテクなのが主流らしい。だったらOutlookでフォルダ4つだか5つだか切ってそこに放り込むのでも大差ないような。

「次に取るべき行動」は「プロジェクト」と親子構造が作れそうだから、親(プロジェクト)の優先順位をこうずりっとドラッグで変えたらそれに従って子(行動)群がばらばらと並び順を変えるとか、子の優先順位を細かく変更したら親の順位が入れ替わった時に他の親の子との優先順位を決定する時にちょっと味付けするとか、そーゆーインタフェースが作れそうなんだけど今はとてもそんな暇ないですな。(何かワークフローの理解を誤っているかもしれないし)。

というわけでまあOutlookでいいやん。
でもOutlookで数百項目のInBoxを一個一個入力するのはいやだ。使いにくいよねOutlook。いろんな意味で。

▼とりあえずInBox作ったよ
とりあえずテキストファイルとして1行1項目で列挙

▼それをとりあえず分類したよ
とりあえず行頭にそれぞれ対応する記号をつけて各項目に分類してみた。テキストファイルなのでsortするだけで項目ごとに並んで結構。分類された時点でこれはもう事実上InBoxではないわけだが。

▼それをメールで自分に送るのだ
そのままメールに添付して送ったらでかいメールが一個届くだけなのでそこから分類できませんな。

▼一行ごとに別々のメールが飛んでくればよくね?
というわけで


#!/usr/local/bin/perl
$jobfile="/tmp/hoe".time()."x";
$madd="hoge\@hoge.or.jp";
$xheader="X-GTD-Type:";
@JOBS=('A','B','C','D');
while (<>) {
$gtdType='';
$_=~ s/[\r\n]//g;
if($_=~ /^\s*$/){next;}
foreach $job (@JOBS){if($_ =~ s/^$job //){$gtdType=$&;}}
open(MTEXT, ">$jobfile");
print MTEXT "From: $madd\nTo: $madd\nSubject: $_\n$xheader $gtdType\n\n.";
system("cat $jobfile |/usr/sbin/ssmtp.exe -t");
close(MTEXT);
}
unlink($jobfile);

このスクリプトは引数として与えたファイルの各行について、行頭が@JOBSのどれかに該当してその次がスペースならばそれをメールのヘッダにX-GTD-Typeとして表記する。そんでもって残りをタイトルとして送る。

Outlookにはヘッダをキーにした自動仕分け機能があるから、それを利用して各項目のフォルダに振り分けてやる。ついでに色つきフラグも立てるです。
ツール→オプションの初期設定→迷惑メールで自分をセーフリストにいれておかないと(Subjectだけのメールなので)迷惑メールに分類されまくりなので注意。

▼perlスクリプトからmailを送る
一応ねんのため。smtpサーバか何かが必要で。今回の場合はcygwin環境上でやってるのでssmtpを使う。設定のやりかたはこちら。うちの環境では最新版がうまく動かなかったのでひとつ古いのにしました。

_ Posted by AoVA at 2007年08月12日 23:00 _ [an error occurred while processing this directive]
[ひとこと]

Save?

Apple Store(Japan)