I’m a software developer for The Omni Group in Seattle. I’m also privileged to help manage the internship program at Omni.


Overcoming Blogging Friction

I’d like to post more, but I’m afraid that my current web host gets in the way of that.

This site is hosted on Square Space, and has been since I moved my web presence from Rose-Hulman in a hasty transfer back in 2011. I’ve been pleased to have Square Space manage all the details of keeping the site up, staying on top of security updates, and generally handling all the sys admin work for me.

The trouble is friction. The amount of ceremony to post an article or share a file is just too high.

I write in markdown using BBEdit on my Mac. To post an article to Square Space, I have to upload any images through a point-and-click file upload interface. Then I get the links for the images through some more clicking and copying. I update the post on my Mac with the image links. Then I click some more on the web site to create a new article. Finally, I copy the markdown source of the article into a text form on Square Space. Any updates to the article require a similar series of hoop jumping.

So, inspired by my colleague’s posts last fall, I’m starting to re-think my approach to this site. Unlike Brent, I need everything from hosting on up.


Whatever system I choose, it needs to meet a few requirements:

  • Write posts in a markdown variant with code syntax highlighting. Something like github flavored markdown is appealing.
  • One-button posting of articles and files. I’d love for this step to be just pushing to a “source code” repo somewhere, but would consider other options.
  • RSS Feed Generation. The system needs to produce a full-text RSS feed.
  • Minimum server fuss. I think I’d like to be able to run code on the server, but I’d also like to have someone make sure all the latest security patches are installed for me.
  • Static project pages. Removing the friction from blogging is my main motivation, but the bulk of the traffic here is people coming to download my various AppleScript’s for OmniFocus. Maintaining that and other project pages has to be easy.
  • Custom Domain. This probably goes without saying, but the hosting provider has to let me use my curtclifton.net domain.


There are a few other features that I think would be cool:

  • Microblogging. Manton Reece and Daniel Jalkut, through their Core Intuition podcast, have me thinking about owning my social media posts. It would be awesome to have a separate feed on my site for short posts that would automatically mirror to Twitter. This may be a heavier lift, since I’d also like to capture my replies to others’ posts too. I suppose something that scrapes my Twitter feed is a more likely approach.
  • Editing from iOS. For serious writing, I really need a keyboard that lets me touch type, but I think it would be handy to at least fix typos and do other minor tweaks from my iPhone or iPad.

Roll My Own?

I’m not averse to rolling my own system, though I’m more comfortable writing code than configuring servers. Still, something like Marco Arment’s Second Crack or Brent’s system appeal to my engineering sensibilities—clean, simple, and to the point.

Does wordpress.com meet my requirements? I’ve poked around their site, but they sure don’t want to tell me what’s possible. They just want to shout about how easy their system is to use. I’m afraid their “easy” is the kind of friction I’m trying to escape.

So, what’s the answer? Who should I be considering for hosting? What tools should I use for publishing? Suggestions? Let me know!


Export OmniFocus View to OmniOutliner

My Export View to OmniOutliner script makes a new OmniOutliner document from your current view in OmniFocus.

I’ve been meaning to share this handy little script for quite awhile now. Tim Stringer gave me the nudge I needed with his excellent work at Learn Omnifocus. Tim has a great new video tutorial (members only) on using FastScripts to quickly launch scripts to automate OmniFocus.

Installing the Script

To install the script, download the latest version here. Then in OmniFocus, choose Help → Open Scripts Folder. Drag the Export View to OmniOutliner file into the scripts folder. Finally, use Customize Toolbar to add the script to the toolbar in OmniFocus.

Running the Script

Once you’ve installed the script, navigate to whatever perspective you’d like to export. You can even Focus on a particular project, or use View Options (⇧⌘V) to fine tune the display. Once the view in OmniFocus is showing just what you want, run Export View to OmniOutliner from your OmniFocus toolbar. OmniOutliner will launch and the script will create a new document containing just the information in your current OmniFocus view.

Only the titles, notes, and structure are exported from OmniFocus. The OmniOutliner document won’t contain contexts or other information, like defer and due dates, from OmniFocus. I find this is a handy way to get a summary of a project or a task list into OmniOutliner. From there, I can print to PDF to share with others without exposing the details of my own OmniFocus database.

Share and enjoy!

Drop me a note @curtclifton on Twitter if there’s something else you’d like to see automated in OmniFocus.


WatchKit Design and Development Videos

The good folks at Seattle Xcoders have already posted the videos of the talks David Hoang and I gave last week.

David spoke on Designing for Apple Watch. My talk was on Developing with WatchKit 1.0

I’ve also posted the slides for my talk and the source for the sample app that I developed for the talk.


Developing with WatchKit 1.0

Last night I had the privilege to speak at the Seattle Xcoders monthly meeting. I talked about developing apps for Apple Watch using WatchKit 1.0. It was great fun to collaborate with David Hoang, who spoke on Designing for Apple Watch.

Here are the slides for my talk.

I’ve also posted the source for the sample app that I developed for the talk. There are still a few to-do items left in the source, but hopefully it’s of some use as is.


Verify that Next Actions Exist

After the release of OmniFocus 2 for Mac I took a couple of days off to stretch a holiday weekend into a five day mini-vacation. Since that’s too long to go without coding, I polished up my Verify Next Actions Exist script for the updated Mac app.

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

Custom perspectives in OmniFocus 2 Pro already let you create a “stalled projects” perspective. As shown in the image, you just set the perspective to Use project hierarchy and set the projects filter to Stalled.

Screen shot of Custom Perspective settings

So why this script? The script’s results differ from a stalled projects perspective 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.

What Does It Do?

When you run the script it finds all the projects and action groups with no next actions and appends “(missing next action)” to their titles. If none are found, the script posts a quick congratulations notification. However, if there are projects or action groups that need some tending, the script will offer to reveal the items. Click Reveal and a new OmniFocus window will open showing the items. For action groups, their parent projects will also show.

In some cases, the project will actually be complete. There’s no next action because all the actions are done! In that case, you can just mark the item complete. Other times you’ll need to decide what’s next to move the project ahead.

Once you’ve check things off or added any necessary actions, just run the script again to clean up. The script will remove the “(missing next action)” suffix from any items that no longer need it. (If you need to get on with getting things done, you can leave the suffixes around to clean up later. Anytime you run the script it will clean up any leftovers.)


To install the script, in OmniFocus 2 for Mac, choose Help → Open Scripts Folder. Drag the Verify Next Actions Exist file into the scripts folder. You can then use Customize Toolbar to add the script to the toolbar in OmniFocus.

Share and enjoy!

(And drop me a note @curtclifton on Twitter to let me know which script you’d like me to update next.)

Changes for Version 1.0

For the curious, there are a number of changes in this version of the script since the last release (version 0.5.2). Besides getting an update for OmniFocus 2 for Mac, this version:

  • Delivers blazing speed. Well, not really blazing—it is AppleScript after all—but this version is more than twice as fast as the previous release.
  • Uses Notification Center notifications when the script detects no missing next actions
  • Offers to reveal the projects and action groups that are missing next actions, opening a new OmniFocus window to show them.
  • Includes a property to control whether single action lists are searched. By default this is set to false, so single action lists aren’t marked even when they’re empty. You can edit the script in AppleScript Editor to change this.
  • Provides better error reporting

Previous versions of the script came with a couple of extra scripts for clearing the “(missing next action)” markers from items. Now you can just run the script again after you mark items complete (or add more actions to them). The script will clean up after itself.