James Montgomerie’s World Wide Web Log

Re: Stewardship

Editorial note: Yesterday, I sent a draft of this post to Mattt Thompson, the author of the article this is a reply to. He was kind enough to send a very gracious reply. I thought about reformulating the post in an attempt to express or explain our differences of opinion more directly, but decided that I would be doing him a disservice by doing so. Instead, with his permission, this post contains my original draft, followed by his reply. Please do read both.

Before I start, I want to affirm that I’m a big fan of NSHipster, and of Mattt …


THIn

I open-sourced a little bit of, as I’ve been calling it on Twitter, “THE GAME” - that is, the game Em and I’ve been working on: “THIn”: Three easy ways to do things later in Cocoa/Cocoa Touch.


THObserversAndBinders

I wrote some key-value observing (KVO) and key-value binding (KVB) helper classes for iOS and Mac OS X. Not much more to say about them than is in the ReadMe file on GitHub. I’m pleased with them. Comments (and pull requests) welcome.


Migrating Xcode SDKs

Lots of people don’t realise that you can copy SDKs from previous versions of Xcode to newer versions and still use them.

For example, with the release of Xcode 4.5, Apple no longer ships the iOS 5.1 or Mac OS X 10.6 SDKs, but if you still need them for some reason, you can grab them from an older install. SDKs are stored in the Xcode app bundle, in Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/, Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/, and Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ - just copy them from inside your old Xcode to similar locations inside your new Xcode.

Note that this won’t give you the ability to do …


Sparrow, Promise, and Feelings of Betrayal

Google has acquired the development team that produces the excellent Mac and iPhone email app Sparrow. Development of the app is being stopped so that the developers can “[join] the Gmail team to accomplish a bigger vision.”

I Believe in Sherlock Holmes

Like many, I find this news disappointing. I bought both the iPhone and Mac versions of Sparrow. I use it daily on my iPhone, and intermittently on my Mac. It’s a great app on both platforms. I’ve been very happy with my purchase so far, but I have to admit I felt a little betrayed when I heard the news of the …


YACYAML

I posted YACYAML, the Cocoa YAML parser/object archiver I’ve been working on for a little while to GitHub today. It converts Cocoa objects to and from YAML, a plain text, human friendly data serialization format.

YACYAML can be used in lots of ways - from replacing plists or JSON for simple config files, up to storing entire custom documents in an easy to view (and easy to hand-edit) format.

Why have I made this?

The short answer is that I like YAML. It’s ‘nicer’ than plists and JSON to edit, and it’s far, far, nicer to look at than …


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.h):

// To encode:
//
// Returns the byte length of the ASCII Base64 encoded data, or -1 on failure.
…