List processing

The problem I’ve always had with todo lists is the tension between the easy manipulation and rearrangement available with computer-based lists and the portability and ready access of paper-based lists. But I think I’m moving to a system that will work for me.

I’m a big fan of the GTD separation of projects and contexts. If you’re not familiar with GTD, it’s the acronym for Getting Things Done, a productivity system developed by David Allen. In GTD, projects are the things you want to do, like “paint the living room.” The individual tasks that make up a project are called actions, which would be things like “buy paint and masking tape,” “bring out tarps and check we need new ones,” and “make space in family room for LR couch.” Contexts are the conditions or places in which the actions get performed; in the painting example, the buying actions can only be done when you’re out running errands, and the other actions can only be done when you’re home. So each individual action has both a project that it is part of and a context in which it is to be performed. An important part of the GTD philosophy is concentrating on what you can do when you can do it—once you have “buy paint” listed as an Errands action, you should only think about it when you’re in Errands mode.

It seems very right to me to plan my tasks on a project basis and execute them on a context basis. This means that my ideal situation is one in which I have two sets of lists: one organized by project and one by context. A well-written computer application makes the creation and maintenance of these two sets of lists very easy, and as long as I’m in my office (or anywhere with my computer in front of me) using such an application is the way to go. Unfortunately, I’m often not sitting in front of a computer and I still need to Get Things Done. Hence the appeal of a paper-based system. But lists on paper can’t be rearranged without rewriting, and I really prefer typing to handwriting.

The ideal, I suppose, is a hybrid system—one in which my task lists are created mostly at my computer and then printed out for carrying around. A little over a year ago, I developed an early version of such a system as a TextMate bundle, and it worked okay, but I couldn’t discipline myself to use it the way I should have. There were two problems:

  1. Although I’m “in” a text editor most of the day and am used to its limited formatting possibilities, I found it difficult to focus on the items in the list. Since my lists were in Markdown format, I could easily turn them into a styled HTML view and make them more attractive, but then they weren’t interactive.
  2. I just couldn’t get myself to print out the context lists every day. Too much fussing and folding and cutting to get them to fit in my Hipster PDA. So I left work too often without my paper list.

I recently bought TaskPaper as part of the MacHeist bundle. Although it does nothing to solve the second problem, it looks like a very good solution to the first. Checkboxes, strikethroughs, font changes, and color make the lists attractive and easy to navigate. You can enter lists in a project-oriented view and switch to a context view with a single click. If you work exclusively at a computer, or if you are more disciplined about printing than I am, TaskPaper may be the perfect system for you. But I’ve learned enough about myself to know that it’s not right for me.

Given my intrinsic laziness, what sort of system will work for me? I have for some time assumed that I will eventually move to a web-based system. Such a system would eliminate the need for me to keep my list on a thumb drive (and remember to unplug it and take it with me when I leave work—I guess that was a third problem with my TextMate system) and would make my list available at every internet-connected computer with no additional effort on my part. But this is something for the future, since I would need to have an internet-connected computer with me at all times…

An iPhone is the obvious solution. Always in my pocket; an internet connection wherever there’s a cellphone signal (the internet connection may be slow, but how fast does it need to be to download a list?). Of course, it doesn’t have to be an iPhone—any smartphone will do—but I haven’t really wanted a smartphone until the iPhone. Typical smartphones have smallish screens, clumsy interfaces, and the possibility of limited syncing with my Macs. They don’t replace my iPod for everyday use, so they don’t reduce my pocket load. (I suspect my iPhone won’t fully replace my iPod, either; I’ll probably still bike to work with my nano strapped to my arm.)

I don’t want to leave the impression that I’m getting an iPhone just to handle my todo lists. For reasons of convenience and compatibility with my laptop and desktop computers, I’ve been assuming for months that an iPhone would be my next cell phone. If I can move my todo lists to the web, I’ll make the upgrade sooner rather than later.

Which leaves me to figure out which web-based todo list system I should use. I looked at Ta-da List, Remember the Milk, and Stikkit, but for various reasons, none of them felt right. My top candidate is Toodledo, which organizes tasks according to Folders (which translate into Projects) and Contexts, making it a good GTD fit. Adding, editing, and checking off actions is smooth. And there’s a wonderful “slim” layout that’s built for the iPhone.

For a todo list application to work for me, it has to be running and available at all times. So rather than running Toodledo in Safari, I decided to use Fluid to make a site-specific browser (SSB) for it. An SSB is a freestanding application that opens its own browser window directly to a specific URL. The usual toolbar and other Safari window dressing is gone (although you can make a toolbar visible)—it’s as if you’re running a desktop application, but the user interface is defined by the web page. This is, of course, only useful if the web page thinks of itself as a “web app” and provides the all the tools you need on the page itself. Toodledo does. And it’s pretty lightweight; my Toodledo SSB is using only 24 MB, compared to 100+ MB for Safari.

Fluid makes the creation of SSBs extremely easy. Here’s its single-window user interface:

You just enter the URL and the new application’s name and you’re done. If you want to get fancy, you can specify a picture to use for the icon, rather than the site’s favicon. There’s a Flickr pool of icons for common web apps like Facebook and GMail. The pool includes my icon for Toodledo, which looks like this

If you plan on using any of the icons from the pool, download the largest size, because that will be a PNG file with an alpha channel for transparency. The other sizes are JPEGS converted from the PNG, and the conversion has left them with black backgrounds.

I keep my Toodledo app running all the time on a Spaces desktop that it shares with my calendar. Control-arrow takes me to it at any time. The orange and green icon—a sort of mashup of Toodledo’s logo and its favicon—stands out on my Dock, so I don’t forget about it.

I’ve been using my Toodledo SSB for a week now, and I’m very pleased with it. It is, of course, no good for mobile use until I get my iPhone. Fortunately, I don’t have any out-of-town business scheduled for a few weeks, so I’ll be able to give it a good workout even without an iPhone. My current cellphone contract runs out in March…