Turning 30

The people I looked up to when I learned to program are now getting to about 50 and I've seen many of them suffer from stress »

Adventures in Vimscript

Last week Vim 8.0 came out. I was pretty excited because, among other things, Vim now supports asynchronously running code in plugins. Until now, if »

Modifier Keys

A keyboard big enough to have all the possible letters and symbols you would need to type when coding or even writing an email would need »


One of the signs of an expert programmer is a thing I call transference. I learned about it while reading a book about learning to play »

Building the KC60

Recently I have been super pumped on mechanical keyboards. I found one small enough to easily use when I'm on the couch or in a café »

Fun With Typing

As a developer, I spend quite a bit of time typing. Typing code, typing email responses to clients and recruiters, typing jokes in Slack. As a »

Swift Enums for Error Reporting

In Apple's block-based API's, you'll often see a pattern like this: func dataTaskWithRequest(request: NSURLRequest, completionHandler: (NSData?, NSURLResponse?, NSError?) -> Void) -> NSURLSessionDataTask The »

Introducing Semitones

In the last few years, I've started taking my bass playing more seriously. I've found a teacher, joined in on jam sessions, and sat in for »

What I'm Working On

Some of you have been asking what I'm working on lately, so here's your answer. Practicing music. Teaching programming. Developing my music app. 1. Practicing music. »


One important part of success in any field is answering the question “Why?” As a musician, you might play a solo that everyone is impressed with, »

App Video v2

My previous demo video was confusing to many people, so here is attempt #2. It's getting better! »


Project: Untitled something Total: $0.00 Made with Chainguard.app itms://itunes.com/apps/chainguard (Everything above is my first published post from my app-in-progress Ghosty. »