Marc Nijdam

Mental pressure relief valve

Web Finds

Web Finds

  • Cocoanetics – A great writeup of Multi-Context CoreData. Read it, and read it again in a week to make sure this sinks in. Via @ericasadun

  • NSIncrementalStore – An awesome read on the use and impact of NSIncrementalStore. Also read the follow-on on why you should really use Core Data. I couldn’t agree more. Use it, live it, work through the gnarly performance, threading and update issues it brings to you and Core Data will pay you back handsomely in simplified and pretty natural application code. (via Dave Verwer)

Web Finds

  • Unique Identifier Is Dead, Long Live Unique Identifier – The Black Pixel guys provide a great wrapper around CFUUIDCreate and the KeyChain APIs to provide BPXLUUIDHandler. Allows sharing of a unique “device” identifier across applications (in the same access group if needed).

  • How to Parse HTML on iOS | Ray Wenderlich – using hpple to parse HTML. I had a, now defunct, project that could have used hpple and this tutorial a while ago. Good to keep handy for when (not if!) I need this again. via ManiacDev

  • Abizer Nasir – Coding conventions are one way to keep code readable and maintainable and Abizer did a great job capturing and maintaining his personal style. Via @appdcl

  • bugsnag – captures exceptions in real-time from your web, mobile and desktop applications (via @theStatusCode). I love that they’re opening up the API and open-sourcing clients for various systems. I’d be interested in using them on iOS, but:

    1. The way the stack trace is constructed today requires me to either include debug symbols in my app or keep the symbols around to symbolicate later. TestFlight and Crashlytics take care of this administrative overhead for me already and that’s very valuable to me.

    2. It’s yet another site to go to to check out error conditions. This is one of the reasons I like TestFlight so much today: It’s a one stop shop to manage beta deployments, (auto-symbolicated) crash reports, and live reports from users using your app.

    I’ll probably still give bugsnag a whirl just because it’s so nice to be able to auto-generate a bug report from a crash based or intentionally generated exception.

  • NSBrief – Talking about interesting developer-y stuff. Not sure what rock I was under, missing all the goodness that NSBrief has to offer. Follow them on twitter @nsbrief too.

Web Finds

  • bugsnag – captures exceptions in real-time from your web, mobile and desktop applications (via @theStatusCode). I love that they’re opening up the API and open-sourcing clients for various systems. I’d be interested in using them on iOS, but:

    1. The way the stack trace is constructed today requires me to either include debug symbols in my app or keep the symbols around to symbolicate later. TestFlight and Crashlytics take care of this administrative overhead for me already and that’s very valuable to me.

    2. It’s yet another site to go to to check out error conditions. This is one of the reasons I like TestFlight so much today: It’s a one stop shop to manage beta deployments, (auto-symbolicated) crash reports, and live reports from users using your app.

    I’ll probably still give bugsnag a whirl just because it’s so nice to be able to auto-generate a bug report from a crash based or intentionally generated exception.

  • NSBrief – Talking about interesting developer-y stuff. Not sure what rock I was under, missing all the goodness that NSBrief has to offer. Follow them on twitter @nsbrief too.

Dispatch_once

While I try to avoid singletons as much as I can, I do believe there’s a proper set of use cases for them. While Apple’s documentation shows a non-thread safe strict implementation of a singleton, the advent of GCD thread safe versions of singletons are often needed.

One common approach uses @synchronized while the other uses GCD’s dispatch_once. While they both work the dispatch_once approach is quite a bit faster. Xcode 4.x includes a code snippet for this pattern which is activated by typing dispatch_once.

Remember though, that singletons add global state to your applications which is counter to modularity and can hamper testing.

Web Finds

Cupertino – CLI for the Apple Dev Center, by Matt Thompson. It’s missing a number of commands to be fully useful, but it’d be great to be able to script the dev center on the command line.

rentzsch/mogenerator – I’ve used mogenerator in pretty much every project I’ve had that needed object persistence. I hadn’t noticed the creation code for to-many relationships. If you use Core Data, you’ll love this tool.

The Nifty MiniDrive Kickstarter – Quickly and simply increase the available memory in your MacBook computer. Kickstarted!

Web Finds

• Our Mobile Planet by Google – Create custom charts to deepen your understanding of the mobile consumer. The full data set for each country is available too

• Evadne Wu – A nice exploration of using of custom timing functions for animations

• Absolute Filenames in application data – This bit me again this week. I hate it when a change in code changes the path to my application data. The lesson is to always store relative paths instead of absolute paths. I repeat this lesson on a semi-regular basis.

UIColor Shortcuts Revisited

Following up on a previous post on utilities for creating UIColor objects. I’ve started work on a new project where the designers prefer to work with web style colors in the typical CSS format #c5c5c5.

Needing to convert those to the floating point format I prefered in my previous post was laborious and didn’t allow for quick turn color changes with the designer.

Enter RGBX and RGBXA:

Which allow for UIColors to be created by coying the hex values from the design documents doing:

RGBX(0xc5c5c5);
RGBXA(0xc5c5c5, 0.8);

This reduced friction with in translating the visual design a lot for me. I hope it does for you to.

Ruby Segfault

I didn’t know why I was having all these weird problems with ruby segfault-ing while doing rake tasks in Octopress until I ran across this incredibly helpful gist. Thank you Brandon, site generation now works flawlessly.

Steve Jobs 1955–2011

I don’t even know how to express myself here, except that I feel the need to honor the man. I’ve been a developer, manager and technologist for almost 20 years. I never met Steve, nor was I that much into Apple products until about 5 years ago, when dabbling with iOS turned into a passion for mobile applications again.

I’ve since then come full circle. I’m proud to be a near full-time developer again, feel honored to target and use products that were built, née crafted by a team of people that care deeply about design and build and delivery excellence. All led by a visionary with a drive that I can only aspire to live by.

Thanks for bringing me full circle Steve. Your legacy lives on in our every day lives as users, companies, leaders, and developers. You didn’t just “make a ding in the universe”, you made a ding in each and every one of our lives and made it better.

My sincerest condolences to Steve's family, friends and colleagues.