Dabble or Die

Jerry Jones

In 20 years of building software, I've always focused on finding the work that compounds — emerging platforms, scrappy teams, and bets with outsized returns.

11 Jan 2012

Goodnight Safari

We shipped a kids’ interactive storybook and learned a ton doing it. Custom animation frameworks, texture atlases, audio — the whole nine yards of getting out of our comfort zone.

Goodnight Safari

9 Jan 2012

Sim Deploy

A drag-and-drop tool for getting simulator builds to non-developers. It even supports a custom URL scheme so distributing a new build is as simple as sending someone a link.

Sim Deploy

12 Dec 2011

Cancel dispatch_after

A simple wrapper to cancel delayed blocks, because GCD won’t let you. Includes the open-source code on GitHub and a look under the hood at the block-juggling trick that makes it work.

18 Oct 2011

Xcode Archives – What a Buncha Jerks

Why your Xcode archive won’t validate and the one build setting that fixes it. If your static libraries are sneaking into the archive, ‘Skip Install = YES’ is the magic toggle you need.

Xcode Archives – What a Buncha Jerks

5 Oct 2011

Mistakes Were Made: Integral Bounds

Non-integral CALayer bounds don’t just look blurry — they actually chop off pixels. A forensic look at CATextLayer backing stores, with screenshots and sample code to prove it.

Mistakes Were Made: Integral Bounds

30 Sep 2011

Mistakes Were Made: Description Isn’t Enough

Turns out po calls debugDescription, not description. Oops. A correction to an earlier blog post, with the fix that keeps CALayer subclasses from hijacking your custom output.

21 Sep 2011

All in the Timing: Keeping Track of Time Passed on iOS

Why your freemium game’s clock is so easy to cheat, and what you can (maybe) do about it. A deep dive into absolute vs. relative time on iOS, and a hybrid server-based approach to keep cheaters honest.

7 Sep 2011

CFTree Is Leaking Its Children

CFTree’s docs say releasing the root destroys its children. The docs lie. A late-night debugging adventure with proof via Instruments, plus a manual teardown workaround.

29 Aug 2011

CALayer Internals: Contents

Why CALayer’s contents property is typed as id, and the neat trick that makes possible. Spoiler: you can clone a layer’s contents — even a CABackingStore — without ever touching a CGImageRef.

24 Aug 2011

CALayer’s Parallel Universe

The view on screen isn’t the view your code talks to. Here’s what Core Animation is really doing. Learn about the model/presentation layer split and how to use presentationLayer to animate from a view’s actual on-screen position.

22 Aug 2011

Integers in Your Collections (NSNumber’s not my friend)

Skip NSNumber and use Core Foundation to store integers in collections, 100x faster. A deep dive into CFArray and CFDictionary callbacks that makes the whole thing surprisingly painless.

15 Aug 2011

Quick Tip: Drawing Right Side Up With Core Text

Why Core Text draws everything upside down on iOS and how to fix it. A quick walkthrough of context transforms, text matrices, and why CGContextSetTextMatrix alone won’t save you.

1 Aug 2011

Mistakes Were Made: Initialize Your Locals

An uninitialized float worked fine in debug and shipped a bug to the App Store. The fix is a compiler warning you should turn on right now — plus a lesson in why zeroing your locals matters.

27 Jul 2011

CALayers v. CGLayers, or, Which Layer, Player?

CALayer and CGLayer sound related. They’re not. Here’s why you should ignore CGLayer on iOS. A quick breakdown of what each layer type actually does and why CGLayer’s desktop advantages don’t carry over.

26 Jul 2011

(More) Descriptive Logging

Override description on your classes and stop staring at memory addresses in the console. A beginner-friendly walkthrough of making NSLog and GDB actually useful for your custom objects.

25 Jul 2011

Natural Scrolling is Natural

Lion’s reversed scrolling isn’t broken — you’re just thinking about it wrong. A history of scroll wheels, broken metaphors, and why moving the content instead of the scrollbar actually makes sense.

14 Dec 2010

Why The Best Developers Do Backflips

In 2010, Forbes profiled MeLLmo and its culture of hiring athletes and risk-takers. I was the centerpiece example — Senior Software Developer by day, professional jet skier on the side.

Why The Best Developers Do Backflips Why The Best Developers Do Backflips Why The Best Developers Do Backflips

8 Jun 2009

WWDC and PegJump

Spotting your own app icon in the Apple Store window, heading into the WWDC keynote, and the eternal struggle with App Store reviews.

WWDC and PegJump WWDC and PegJump WWDC and PegJump WWDC and PegJump WWDC and PegJump WWDC and PegJump WWDC and PegJump

19 May 2009

The Mellmo Days

Beer floats, Guinness ice cream, custom Adidas, a barista after launch, and CAKE at the WWDC beer bash. Startup life at Mellmo was something else.

The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days The Mellmo Days

7 Apr 2009

Jetski Days

Lowering skis down cliffs, prepping for the world tour in France, and discovering why the ski wasn’t revving out. The freeriding life circa 2009.

Jetski Days Jetski Days Jetski Days Jetski Days Jetski Days Jetski Days