Saturday, August 23

a notes.txt / TODO file format

These days, I try to abstain from the cult of personal productivity systems the same way I avoid software methodology and exercise programs. Then again, I'm a little bit fascinated by the stuff all the same, and I do find some consistent utility in keeping checklists. I figured I'd document my system for that, such as it is.

I keep a lot of notes on paper. For stuff I want to do, I make lists with little square checkboxes next to invidual items. If I get something done, I put a checkbox in. If I move the item to another list, I draw a little circle in the box. If I decide it doesn't need done any more, I draw a line through the whole list item. At work I keep these under my keyboard on the biggest piece of printer paper I can find. Elsewhere I've usually got a notebook going. Every once in a while I go through the last couple sheets of paper and the most recent notebook, and make sure everything gets marked done, not-needed, or moved.

(I used to use index cards for this kind of thing, but I think I've realized that having hundreds of tiny unbound pieces of paper floating around is a good way to lose pieces of paper which contain useful information. Bookbinding is a really beautiful technology just on the pure pragmatics of the thing and should be warmly embraced.)

It's pretty easy to do the same thing with text files. Here's the format I use:

This is a general notes / scratch area.

TODO
----

  [ ] first thing
  [ ] second thing
  [x] a finished thing

  [ ] some other thing with sub-tasks

      - a note that isn't exactly a task
      - some other note

      [ ] a subtask
      [ ] another subtask
      [x] a finished subtask

a whole section for something else
----------------------------------

  [ ] etc.

done
----

  [x] completed thing
  [x] other completed thing

I tend to have the stuff I'm working on right now up near the top. Once I don't need things to keep track of where I'm at in an ongoing project, I move them to the "done" section at the bottom. I keep a notes.txt like this in /home/brennen/notes/, which is also a good place to stash random work-in-progress files. A while ago I decided to keep this directory in git and make commits once in a while, which turns out to be cool because you can run git blame and see roughly when an item last changed.

If I were after more of a Proper System, I'd probably use a database, but I'm not really after metrics or scorekeeping or whatever. I'm just augmenting a really bad working memory.