AutoJournaling with VoodooPad - moving toward Interruptible Programmer Nirvana

February 1, 2011    

Since I read the Interruptible Programmer, I’ve been trying to do a better job of handling interruptions. Well, specifically to reduce the effort it takes me to get back to where I was before the interruption happened. I and switch to a new task very easily, but my brain isn’t wired to get back to where I was, leading to much frustration (and lots of misplaced coffee cups that happened to be in my hand when I started answering a question when I was away from my desk).

I tried keeping an hand-written log, but I didn’t write in it enough to be useful. I tried keeping a blank window up in an editor, but had the same problem. The trick is that you can’t predict when the interruption will happen, so you have to save state periodically just in case you get interrupted and end up needing it.

So I decided the only way it was going to work would be to reduce the effort required as much as I could. After floundering around for a while, I finally found something that is working for me (at least so far), so I thought I’d document it here and share it.

I found this tutorial and so I decided I’d play with VoodooPad and see if it would work. After some false starts, I ended up with this script that I make into an OSX service with this and then I bound it to CMD-Opt-J (J is for Journal) in System Preferences->Keyboard->Services.

What the script does is:

*take the currently selected text

*open VoodooPad if it isn’t already open

*selects the open VoodooPad document that meets certain criteria (and asks if it finds more than one)

*opens a page named “Journal ${CURRENT_DATE}” (creating it if it isn’t there)

*makes sure there’s a link from the master index page to the current_date’s page

*appends the current date/time to today’s journal page

*appends the currently selected text after the current time

*brings VoodooPad to the foreground so I can add additional context if I wantNow all I have to do whenever I remember it is to:

*select whatever text I’m currently working with, in whatever program I’m in

*Hit CMD-Opt-J

*type anything else I might want (usually don’t)

*Cmd-TAB back to the previous Window

*go back to what I was doingSo far, it’s done wonders for helping me keep track of what I was doing, and, without having as much aggravation involved in picking up where I left off, I find myself less irritated when I get interrupted, which is an added bonus.