Author Archives: Graham

About Graham

I make it faster and easier for you to create high-quality code.

Test-Driven iOS Development

Here it is, after more than a year in the making, the book that they really did want you to read! Test-driven IOS Development (Developer’s Library) (affiliate link) has finally hit the stores[*]. I wrote this book for the simple … Continue reading

Posted in books, PCAS, software-engineering, TDD, TDiOSD | 6 Comments

On the magic of key agreement

Imagine that you want to implement AirDrop, or something like it. Two computers that have (possibly) never communicated before are going to share a file. Now you know that you want to encrypt the file in transit so that only … Continue reading

Posted in Crypto | Comments Off on On the magic of key agreement

On my newer competence

This time last year, I evaluated myself against the programmer competency matrix. So where am I one turn around the daystar later? I have to admit that this was mainly because I was jet lagged in a hotel room in … Continue reading

Posted in Business, software-engineering | Comments Off on On my newer competence

An apology and an opportunity

Today’s earlier post, UX is snake-oil bullshit, was indeed an April Fool. Sorry to the people who had their “WTF blood boil”, among other reactions. I’m also sorry to the people I parodied in the post. Please feel comfortable knowing … Continue reading

Posted in user-error | 1 Comment

UX is snake-oil bullshit

There, I said it. I feel better already. There are people in the world who’ll tell you that the most important thing in the world is UX, that if your software isn’t UX-compliant it isn’t worth shit. Here’s why that’s … Continue reading

Posted in software-engineering, user-error | 6 Comments

Automate all the server Objective-C!

I decided it was time to stop writing WebObjects/GNUstepWeb code, and write some code that would make it easier to write WO/GSW code. With that in mind I replaced my previous component generator with a more robust generator. I also … Continue reading

Posted in Uncategorized | Comments Off on Automate all the server Objective-C!

Adding components to a GNUstep web / WebObjects app

In WebObjects, Components take the role of a view controller in what passes for Cocoa’s version of MVC. Each is responsible for calculating the data that the view objects are bound to: you saw an example of this in the … Continue reading

Posted in code-level, software-engineering, tool-support, WebObjects | Comments Off on Adding components to a GNUstep web / WebObjects app

Using Objective-C on the server

My talk at NSConf was about cross-platform Objective-C. Those people who I talked to after the session will know that my goal is clear. There are plenty of people out there who have learned Objective-C to get onto the iOS … Continue reading

Posted in NSConf, software-engineering, tool-support, WebObjects | 19 Comments

More about the privacy pledge

Plenty of you have seen—and indeed signed— the App Makers’ Privacy Pledge on GitHub. If you haven’t, but after reading it are interested, see the instructions in the project README. It’s great to see so many app makers taking an … Continue reading

Posted in Business, Data Leakage, Privacy, Responsibility | Comments Off on More about the privacy pledge

Confine ALL the things!

I was talking with Saul Mora at lunchtime about NSManagedObjectContext thread confinement. We launched into an interesting thought experiment: what if every object ran on its own thread? This would be interesting. You can never use a method that returns … Continue reading

Posted in code-level, software-engineering | 4 Comments