smartMorning.js Smartly Defers OmniFocus Tasks till the Next Business Day

October 28

I whipped up this little script that will use the date.js library to defer selected OmniFocus tasks till 8AM of the next business day.

         * Version: 1.0 Alpha-1 
         * Build Date: 13-Nov-2007
         * Copyright (c) 2006-2007, Coolite Inc. ( All rights reserved.
         * License: Licensed under The MIT License. See license.txt and 
         * Website: or


Using JavaScript with OmniFocus

October 24

I wrote up a few examples of how to use the new JavaScript for Automation in OS X Yosemite with OmniFocus. Here you go. You can see more OmniFocus AppleScripts in my OmniFocus Github repo.

// Here are some examples of using Javascript for Automation with OmniFocus
        // Create an inbox task
        // Here, we call inboxTasks without parens because we want it as a function to call later
        of = Application('OmniFocus')
        inbox = of.defaultDocument.inboxTasks
        task = of.InboxTask({name: "testing"})


Working with the FormKeep API

October 23

I’m super happy with FormKeep from thoughtbot. FormKeep lets you create forms for static sites and is perfect for Middleman or Jekyll sites. I’m using a FormKeep form on Pixelsnatch. I wanted to be able to access FormKeep’s API data easily, so I wrote a little library gem that does that. It’s on RubyGems. The library will help you pull up all submissions, the latest submission, all read submissions and all unread submissions. It also comes with a bin file that will let you run formkeep unread...


The Joy and Pain of Drafts 4

October 17

The Joy

Drafts 4 is a huge update. Drafts 4 (which is now universal for the iPhone and iPad) sports a new look, allows you to group actions with much more control, improves the creation of new actions and includes the ability to create your own extended keyboard keys using JavaScript. The JavaScript capabilities alone are worth the upgrade price. You’ve got access to the JavaScript standard library (including regular expressions) which means you can manipulate text like a pro.

The Pain



My Old Fridge

October 15

My post about my old suitcase was getting lonely so I decided to write about my old refrigerator as well. While the suitcase was bad enough, the old refrigerator has an even longer, even sadder history. I bought this fridge when I moved into my apartment. It was purchased used and lasted about 4 years before it expired. Before its untimely demise, it was actually relegated to the “drink fridge” when my ex-girlfriend’s mother gave me a slightly newer and better (but still used) fridge. I had two...


Automating Change Logs

October 10

I got into the idea of keeping change logs for all my projects after listening to Olivier Lacan on The Changelog. Of course, being the kind of guy who loves to automate everything, I wrote up a couple little things to help me automate the process.

The first thing I cooked up was a set of Vim snippets (specifically for UltiSnips) for creating and updating a change log.

snippet clog "Scaffold a change log" b
        # Change Log
        ## ${1:0.0.1} --- `date +"%F"`
        ### ${2:Added}
        - $0


iOS 8 Extensions

September 18

So iOS 8 is here and along with it comes a deluge of app updates. For me, the most notable updates were OmniFocus, TextExpander and 1Password. The promises of these apps’ extensions were pretty great. The OmniFocus extension was going to add a Today view and a share sheet function. The TextExpander extension was going to add a third-party keyboard that would let you use TextExpander snippets in any app. And finally, the 1Password extension would let you fill in 1Password login details from within...


My Old Suitcase

July 18

It stood there, mocking me, for over a year. This suitcase became a symbol of my clutter. My sloth. My rut. I bought the suitcase in mid-2004 just prior to my first trip to Japan. I went with my mother to K-Mart to look for luggage and we bought it, not because it was good, but because it was cheap. My mother convinced me that I didn’t need, or better yet, didn’t want more expensive luggage because it would just get beat up. It would just get stolen if it were nicer. I said, “OK.” and went along...


Add OmniFocus Tasks from the Command Line

July 8

Now that I spend a lot of time at the command line, I wanted an easy way to create tasks in OmniFocus without leaving the command line. Sure, Alfred can be called up while you’re at the command line, but it’s just easier to have a shell program or function. I remembered Brett Terpstra’s oTask from a while back, but I thought it went a bit overboard. He implemented a whole system for checking syntax in Ruby and called a lot of dependencies like Appscript and as far as I can tell, it’s unnecessarily...


Defer Dates in OmniFocus 2's Forecast

July 7


Defer Dates & Flagging

Since I started using OmniFocus 1.whatever for OS X, I have been a staunch supporter of using defer dates and flagging, while I have mostly shunned due dates. The reason being — this approach works really well for keeping unactionable items out of your purview. Even in OmniFocus 2, this is still the best strategy for organizing your tasks. If you think of every task as a task that has to get done, then the need for due dates falls away. You start setting defer dates,...


Next page

Page 1 of 3