Curt Clifton is a software engineer for The Omni Group. Through a just-right mix of coffee, OCD, Objective-C, and AppleScript, he manages to get some things done.

I’m running the Seattle Rock-n-Roll Marathon on June 22 to raise money for the fight against cancer. I’m running in honor of a friend and co-worker and his battle with lymphoma. With lots of help, I’ve beat my goal to raise $2,000. Thanks all!

Help beat cancer!

And then you just SOFTWARE!

When I’m not programming for a living, I often program for fun. It’s a sickness, really. Here’s some non-commercial software that I’ve written or collaborated on with former students.

OmniFocus

I’m a fan of David Allen’s Getting Things Done approach to personal productivity. OmniFocus is the big gun in my GTD arsenal. Here are some OmniFocus scripts and a dashboard widget that I’ve found useful.

Populate Template Placeholders [download version 0.7.1]

Templates were the only thing missing in OmniFocus that were part of my old GTD system. But the scripting interface in OmniFocus is solid enough to implement them!

This script will take an OmniFocus project, replace placeholders with user entered strings, and adjust all dates by some fixed interval to match a new start or due date that you enter. Installation and use instructions are included in the download.

Verify Next Actions Exist [download version 0.5.2]

This script scans all projects and action groups in the front OmniFocus document and lets you know if any are missing a next action. I use it in my daily reviews to keep all my projects moving forward.

The search differs from OmniFocus’s Stalled Projects filter in two ways:

  • The script detects action groups with no next actions.

  • The script doesn’t worry about projects that have actions starting in the future.

To install, copy the script into the folder:

    ~/Library/Scripts/Applications/OmniFocus

creating the folder(s) if necessary. (To get to the Library folder in Lion, click on your desktop background, then hold down the option key while choose the Go → Library menu item.)

This script takes awhile to perform its analysis. As such, it uses Growl to display unobtrusive progress messages. So, you’ll need to download Growl to use this one.

Two separate script, included in the zip file, will clear the “Missing NA” suffix from selected items and, optionally, mark them as completed.

Complate and Await Reply [download version 0.1]

This script marks the selected action as complete and creates a new action, like the selected one but prefixed with “Reply on:” and placed in your Waiting For context. Great for email and other actions where you expect a reply.

To install, copy the script into the folder:

    ~/Library/Scripts/Applications/OmniFocus

creating the folder(s) if necessary. (To get to the Library folder in Lion, click on your desktop background, then hold down the option key while choose the Go → Library menu item.)

To give you confidence that the Waiting For action was created, this script also uses Growl to display messages. So, you’ll need to download Growl to use this one.

Where To Focus [download version 0.5]

Screenshot of Where To Focus

You use OmniFocus to pick your next action in your current context. But how do you decide what context to put yourself in? Introducing a new Dashboard widget that displays a bar chart of the number of available actions in each of your OmniFocus contexts. Click a bar to display the available actions in OmniFocus.

Requirements: Tested on Mac OS X 10.5 and higher. OmniFocus must be running for the widget to display information.

Academic Software

RoseTime

RoseTime is a Dashboard widget for keeping track of class hours at Rose-Hulman.

CFG Experimenter

CFG Experimenter is a program that demonstrates the algorithms used by LL(1) and LR(1) parser generators.

PyLighter

PyLighter is a program that simply highlights the lines of Python source files as they are used by running code, in real time and at full speed.

On github

I have some other software available on github. That’s where my more technical projects end up, along with those not quite ready for prime time. Head over there to take a look.