iOS' Hidden Base64 Routines


It’s commonly held that iOS has no built in Base64 routines (a strange omission, if you ask me). Pootling around in the BSD headers today though, I discovered this is not entirely true. There are a couple of functions hidden away in libresolv.dylib. That’s the, err, BIND-9 DNS resolution library… If you’re not put off by linking to BIND just to get Base64 translation, it’s easy to use. Here’s the interface (publicly declared in a less readable fashion in resolv.
Read more…

Please Do Learn How Software Works. If You Want To.


By all means, learn enough programming to put together a prototype and have a better perspective on hiring and managing engineers. Just don’t mistake a foothold in the world of coding for true engineering expertise. Buzz Andersen, commenting on Jeff Atwood’s Please Don’t Learn to Code This “Don’t Learn to Code” vs. “Everyone Should Learn to Code” meme fascinates me. I pretty much agree with everything Buzz says.
Read more…

Apple, Failure, and Perfect Cookies


It’s painful, hard, and often time-consuming to restart when you’re already done, but you can’t argue with the results. Both Apple and Nintendo create some of the best, most inspired design out there. Lukas Mathis, in Chabudai Gaeshi When people ask me what Apple’s dev process has that’s different to other places, I always gravitate towards this, even though it sometimes seems ludicrous. In my time working there, I must personally have seen years-worth, probably decades-worth (and, from afar perhaps even centuries-worth) of work simply discarded because it turned out not to be ‘right’ or ‘good’.
Read more…

Easy Xcode Static Library Subprojects and Submodules


In which a method is presented for reliably building static libraries with subprojects in Xcode, and it is suggested that this method, combined with Git submodules or other similar mechanisms, provides the best way to share libraries, frameworks, or other code between projects. I’m sure I don’t need to tell you that it’s a useful thing to be able to share code between projects. On the small end of the scale, you might have created some nice views, or text processing classes, and want to be able to include them in multiple apps.
Read more…

On Frequent, Intense Mature and Suggestive Themes


Marco Arment has written a provoking article about Apple App store ratings. I haven’t really looked at the situation since my original (and, at the time, infamous) brush with the Apple law over the rating of Eucalyptus. As you may remember, it’s rated, at Apple’s request, 17+ for “Frequent/Intense Mature/Suggestive Themes”, because users can access Victorian textual translations of, for example, the Kama Sutra from it. How are other book reading apps rated?
Read more…

Answering an important question: Why I'm saying “Yes” to Alternative Vote on Thursday


“Do you want the United Kingdom to adopt the ‘alternative vote’ system instead of the current ‘first past the post’ system for electing Members of Parliament to the House of Commons?”If you’ve spoken to me recently (or know me on Twitter or Facebook), you’ll know that I’ve been campaigning for a “Yes” vote in the referendum tomorrow on whether Britain should adopt the Alternative Vote. This is the first time I’ve been ‘politically involved’ in anything beyond voting, and it’s an interesting experience - equal parts uplifting and depressing, I’d say.
Read more…