プレーンテキストで定期タスクを扱うための「定義・生成パターン」
コンテキスト
- タスク管理とは、ここでは個人のタスク管理のこと
- 定期タスクとは繰り返し行うタスクのこと
- n日ごとにやること、毎週n曜日に行うこと、毎月n日に行うこと etc
- 家事、事務作業、雑務はこれ
- 習慣や日課もこれ
- 「メールは1日3回だけ見よう」など行動の制御をしたい場合もこれを使う(ことができる)
定期タスクというハードル
プレーンテキストが至高
タスク管理ツールは色々あるが、プレーンテキストに回帰する人も多いと思う。
たとえばきりみんさんの記事が詳しい。
todo.txt のようなプレーンテキストベースのメソッドもある(まあこれもタスクをサクサク操作したければ結局ツール要るけど)
定期タスクはプレーンテキストでは厳しい
しかし定期タスクについては、プレーンテキストで扱うのが難しい。
きりみんさんも Todoist を使っているらしい。引用しておくと、
ただし例外として定期タスク(習慣化したいもの)だけはテキストベースだと面倒なので、日課の管理だけはTodoistを使っている。
なぜ難しいかというと、下記がプレーンテキストだけでは面倒だからだろう。
- 日付時刻情報を素早く書く・直すこと
- この日はこのタスクをやるという提示を毎日行う(あるいはカレンダーのように俯瞰させた上で今日の枠を強調する)必要があること。
定期タスクもプレーンテキストで扱うにはどうすれば?
方法が一つある。
「ほぼ」プレーンテキストで扱える、という程度の話だが、定義・生成パターン を実装することである。
定義・生成パターンとは
筆者の造語だが、タスクの定義をつくっておき、日々行うタスクはその定義から生成するようなやり方のこと。
エンジニアなら「定義からのインスタンス化」という概念は馴染み深いだと思うが、この考え方をタスク管理にも応用するのだ。
例として「todaros」というツールを紹介する
筆者は todaros というツールをつくった。
これは tasks.md に ゴミ捨て @mon @fri
のような行を書いておき、todaros.py を実行すると、(もし今日が月曜日か金曜日なら)daily.md に「ゴミ捨て」という行が追加される、というものだ。
tasks.md が定義であり、todaros.py がジェネレーターであり、daily.md(に書かれた各行が)生成されたタスクである、と言える。
おわりに
定期タスクもプレーンテキストで管理したい――その方法として定義・生成パターンなる考え方とあることと、筆者による実装例を紹介した。
タスク管理、特に定期タスクの扱い方に苦戦している方の参考になると幸いである。
Discussion