For Kim

Many of you in the iOS community know Daniel Steinberg. Even if you don’t know him personally, you’ve probably seen one of his many outstanding talks about Swift. If you know him personally, you know that Daniel is a wonderful, warm, kind person. As many of you have already heard, Daniel’s wife Kim passed away after a car accident ...

Don’t Work When You’re Sick

The Cubs-Cardinals baseball game last night gave a good example of why you don’t want to work when you’re sick. Pitcher Jaime Garcia had finally made it back to the majors after years of rehab for various injuries, and he wasn’t about to let a nasty stomach virus stop him from starting his first playoff ...

The Future Of Mobile: The Finished(?) Product

Huge thanks to everyone who contributed slides to #SlideDeckKaraoke talk for SeanCon yesterday. Particular thanks to Isaac for some delightfully devious work putting this together, and my girlfriend Lilia for agreeing to film it with my phone at the last second. I’ve added some subtitles to the bits for which I am not speaking English. ...

Slide Deck Karaoke

I date and live with a lovely woman who works as a post-doctoral researcher in a big psychology/linguistics lab at the University of Chicago. One of things the folks in her lab do to entertain themselves is something called Slide Deck Karaoke: Slides pertaining to a topic are collected, and then the presenter has to ...

The Power Of Working Code

I like to give my partner Aaron a bit of shit about his Objective-C code. It’s the work of someone who’s only been wrapping his head around Objective-C for a year and a half – not someone who’s been using it full-time for four years. It’s copy-pasta, it’s poorly architected, it’s sometimes taking 400 steps ...

Assumptions != NSNotFound

Assumptions != NSNotFound
I couldn’t figure out why an equivalent of this code: kept having a bunch of crashes in “String was found, do stuff” section of the code in Hum. Turns out, messages to nil which return a struct will return with all of the members of the struct initialized to zero. If passedInVariable was nil, rangeOfString ...

Collection Data Types In Swift: Detailed Test Results

Collection Data Types In Swift: Detailed Test Results
I wrote a piece for RayWenderlich.com about Collection Data Structures in Swift, and I did a whole lot of performance testing around it that didn’t have room to make it into that piece. I’m going to be going into waaaaay more detail and burying you in charts in this blog post if you want to ...

Quitting All Your Running iPhone Apps To Save Battery Life: Still Bunk.

I wrote a bit about this right as iOS 7 was coming out, so now that iOS 8 has just been announced, I wanted to link to this excellent, exhaustive blog post by Scotty Loveless, The Ultimate Guide to Solving iPhone Battery Drain. The TL;DR: Turn off background fetch on any apps you don’t want ...

Before and After: Time Converter 24

Before and After: Time Converter 24
There’s a running joke in the development world that the worst programmer you’ll ever meet is yourself from six months prior. When you open up code you wrote three years ago, you’d better be ready for bats to start flying out. I recently updated the iOS version very first app I ever wrote, Time Converter ...

Fun with Work Downtime: Cat2Cat

My employers at Vokal Interactive have been kind enough to let me use my downtime to tackle of one of my biggest irritations with the new Asset Catalogs in Xcode 5: The fact that you still have to use the fragile imageNamed: system to call images in code. With the consultation of some co-workers and ...