TODOのデータ構造について

TODOのデータ構造はキューであると考えている人が多いのではないか。しかし私の経験では、TODOのデータ構造はスタックである。
すなわち、後から追加されたTODOほど、先に処理される。逆に最初に追加したTODOは、いつまで経っても処理されない。これが現実であるから、どうしようもない。
しかしこれが現実であると言うことは、それが人間にとって自然であると言うことである。従って、スタック構造を採用したTODO管理システムこそが、パフォーマンスとモチベーションを最大化してくれるハズである。


だが人間が記憶領域に持っているスタックは非常に小さいため、いくつもpushすると最初にpushしておいた内容を忘れていってしまう。

  • push そろそろ寝る
  • push 寝る前に風呂に入る
  • push 風呂に入る前にブログを書く
  • pop
  • pop
  • push 水を飲む
  • pop
  • pop …なんだっけ?


人間の記憶に頼ったTODO管理では、すぐに破綻することは目に見えている。

そこで、TODOスタックをコンピュータに記憶させるためのツールatodeを開発した。このatodeコマンドは以下からダウンロードできる。

atode 寝る
寝るをpushする
atode 風呂に入る
風呂に入るをpushする
atode -l
溜まっているTODOタスクを一覧表示する
atode -k
先頭のタスクをpopする
atode -z
先頭のタスクを後回しにする


以下のようなaliasを~/.bashrcなどに書いておくと良い。

alias atode?="atode -l"
alias dekita="atode -k"
alias orz="atode -z"


QuickSilverで呼び出せるとなお良いが、どうやってやればいいのか分からない。atode QuickSilverでコマンドを呼び出す方法を調べる。


使用例:

$ atode 寝る
TODO:  寝る

$ atode 風呂に入る
TODO:  風呂に入る

$ atode ブログを書く
TODO:  ブログを書く

$ dekita
done:  2008-04-09 02:16:08  ブログを書く

$ atode?
2008-04-09 01:45:59  寝る
2008-04-09 01:46:01  風呂に入る

$ dekita
done:  2008-04-09 01:46:01  風呂に入る

$ atode 水を飲む
TODO:  水を飲む

$ dekita
done:  2008-04-09 02:57:34  水を飲む

$ atode?
2008-04-09 01:46:46  寝る

atode?
2008-04-09 02:57:34 QuickSilverでコマンドを呼び出す方法を調べる。