November 20

So, I’ve decided to undertake a new project. I’m going to adopt Benjamin Franklin’s journaling of his thirteen virtues. Here they are.

Temperance : Eat not to dullness; drink not to elevation.

Silence : Speak not but what may benefit others or yourself; avoid trifling conversation.

Order : Let all your things have their places; let each part of your business have its time.

Resolution : Resolve to perform what you ought; perform without fail what you resolve.

Frugality : Make no expense...


Early Impressions of Assassin's Creed Unity

November 12


Assassin’s Creed Unity is shaping up to be everything that Ubisoft had been promising. The game is huge. When you first climb up to a synchronization point and get a look at the scope of Paris, it’s pretty spectacular. You also get a sense of how large the game is by the number of NPCs on screen. You’re quickly winding through tightly built environments teeming with people and the environments are all quite vertical. You’re able to run the rooftops of Paris with ease thanks to hardly any guards...


Find and Defer OmniFocus Tasks Using a Regex

November 5

More fun with JavaScript and OmniFocus! I thought, since I have regex support in AppleScript with JavaScript now, why not use that power to search my OmniFocus tasks in a script? If you run osascript regexDefer.scpt 'test task' 'tomorrow' the script will run through all your tasks using a forEach loop and test if they return true for test task. Any that do will have their defer dates set to tomorrow thanks to the convenience of the date.js library.

// regexDefer.scpt 
         * Version: 1.0 Alpha...


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. (http://www.coolite.com/). All rights reserved.
         * License: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
         * Website: http://www.datejs.com/ or http://www.coolite.com/datejs/


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...


Next page

Page 1 of 3