Author Archives: Graham

About Graham

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

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

How to TDD with CATCH

Plenty of people have asked me about the TDD framework I use. While the book Test-Driven iOS Development has code using OCUnit (for pragmatic, and previously-covered, reasons); I am currently more frequently to be discovered using Phil Nash’s CATCH framework. … Continue reading

Posted in code-level, software-engineering, TDD | 1 Comment

The security apprentice

This originally appeared in a post at Sophos’ Naked Security blog. There have been two recent occasions on which my computing life has been influenced by Lord Sugar, the business mogul in charge of Amstrad and star of BBC One’s … Continue reading

Posted in Uncategorized | Comments Off on The security apprentice

On advertising’s place in the tech industry

Dave Winer said the way is open for a non-ad-supported tech sector: The tech industry has been absorbed by the ad industry, and vice versa. However, there is, imho, still room for a tech industry that is not merged with … Continue reading

Posted in Business | 4 Comments

Why we don’t trust -retainCount

I’m pretty sure @bbum must have worn through a few keyboards telling users of StackOverflow not to rely on the value of an Objective-C object’s -retainCount. Why? When we create an object, it has a retain count of 1, right? … Continue reading

Posted in code-level, Foundation, iPad, iPhone, Mac | Comments Off on Why we don’t trust -retainCount

Synthesized ivars are private

Perhaps this isn’t news. Perhaps it doesn’t matter because you’ve provided public accessors. But here are the results anyway. #import <Foundation/Foundation.h> @interface A: NSObject @property (nonatomic, assign) int a; @end @interface B: A – (int)differentGetter; @end @interface C: NSObject @property … Continue reading

Posted in Uncategorized | Comments Off on Synthesized ivars are private