This was a popular post on my last site, so I thought I would replicate it here at Macinscience. I’ve been a relatively recent adherent of David Allen’s Getting Things Done (GTD) productivity system. Implemented properly, I believe it can enhance nearly everyone’s ability to meet deadlines, achieve multiple disparate professional objectives and, well — simply get things done. My personal implementation of GTD has undergone several iterations over the months, which has included the serial adoption of multiple software tools to make the system go: Kinkless GTD, Backpack, Stikkit — you name it, I’ve tried it.
In the course of all this change, I fell into one of the notorious traps of GTD: I was spending more time optimizing my system for getting things done than I was actually doing the things I was supposed to be getting done. From what I’ve read, this is a more common problem than you might expect. So, it was time to simplify, to take the pieces of the system that are relevant to my productivity issues and run with them, leaving behind the finer points that have gotten me bogged down. All I really needed was a tool to aggregate all of the tasks, errands and actions from all my various projects, and aggregate them in one place, organized according to context. For this, I turned to VoodooPad.

VoodooPad is touted as a personal wiki, but is really much more. Its byline is “you put your brain in it”, which is really the essence of GTD — move things out of your head, where they are liable to get lost, and into a system, where they can be organized and acted upon. An important feature of VoodooPad is that it can be scripted, using any number of freely-available scripting languages on the Macintosh, including Lua, Python and AppleScript. Rather than gin something up from scratch (which I rarely do), I adapted an existing Lua script provided by Gus Mueller, the author of VoodooPad. This script searches the current document for lines tagged with contexts, then aggregates them on a single page:

The GTD script relies on having a page called Contexts somewhere in the document. This page contains all of the relevant contexts to provide the basis for organizing your actions across all projects. Your contexts should include all circumstances that are conducive for getting certain tasks done: sitting at a computer, in the car running errands, reading in your office, etc. These contexts are canonically prepended with @; though this is not necessary, it avoids confusion.

Then the script looks for lines tagged with any of these contexts, but importantly, ignoring lines that are struck out (i.e. completed). Lines can be struck out and moved to the bottom of the page upon completion using the Strike Out and Move to Bottom of Page script in the Plugin menu, which I have linked to a shift-apple-D key combination.

Recently, I have added additional functionality to the script: (1) it now lists actions that are either overdue, due today or due tomorrow based on dated due keyword, (2) supports reminders based on dated remind keyword and (3) it creates a “Project” page that lists actions sorted by project. Based on some feedback from users on the VoodooPad forum, I also added the ability to compile actions tagged with today’s or tomorrow’s date (yyyy.mm.dd format), and place them at the top of the Actions page. To run the script, simply select it from the Scripts menu, or associate it with a hotkey (I use shift-cmd-a).
There you have it. Feel free to grab a copy of the script and give it a try (it belongs in ~/Library/Application Support/VoodooPad/Script Plugins). The full version of VoodooPad isn’t free, but is a very reasonable $30. Given that it has become my most important ogranizational tool, I think that’s a small price to pay.