Author Archives: Graham

About Graham

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

Talking about talking

I recently gave a talk to my colleagues about giving talks. Here is an annotated collection of the notes I made in preparation. – What do you want the audience to get out of the talk? As you’re constructing your … Continue reading

Posted in Talk | Comments Off on Talking about talking

Detecting overflows, undefined behaviour and other nasties

You will remember that a previous post discussed what happens when you add one to an integer, and that the answer isn’t always obvious. Indeed, the answer isn’t always defined. As it happens, there are plenty of weird cases that … Continue reading

Posted in Uncategorized | Comments Off on Detecting overflows, undefined behaviour and other nasties

An open letter to Xcode

The post below has been filed verbatim as an Apple Developer Tools bug report with ID 13051064. Dear Xcode, imagine that you had a combine harvester. Only, this combine harvester, instead of having a hopper into which the winnowed wheat … Continue reading

Posted in Uncategorized | 1 Comment

Retiring the “Apple developers are insular” meme

There’s an old trope used in discussions of Mac and iOS developers, that says they’re too inward-looking. They only think about software in ways that have been “blessed” by Apple, their platform vendor. I’m pretty sure that I’ve used this … Continue reading

Posted in advancement of the self, code-level, Responsibility, software-engineering | Comments Off on Retiring the “Apple developers are insular” meme

What happens when you add one to an integer?

It depends. You saw in the previous post that there are plenty of different integer types, some with known sizes and some where the size is set by the implementation. Well for each size of integer type there are two … Continue reading

Posted in buffer-overflow, code-level | Comments Off on What happens when you add one to an integer?

How big is an integer?

In the beginning, when all was without form and void, Kernighan and Ritchie created char. And they said, “let it be of a size chosen by the compiler, guaranteed to be large enough to hold one character from the execution … Continue reading

Posted in Uncategorized | Comments Off on How big is an integer?

Server-side Objective-C

Recently, Kevin Lawler posted an “Informal Technical Note” saying that Apple could clean up on licence sales if only they’d support web backend development. There are only two problems with this argument: it’s flawed, and the precondition probably won’t be … Continue reading

Posted in code-level, OOP, server, software-engineering, WebObjects | Comments Off on Server-side Objective-C

Can code be “readable”?

Did Isaac Asimov write good stories? Different people will answer that question in different ways. People who don’t read English and don’t have access to a translation will probably be unable to answer. People who don’t like science fiction on … Continue reading

Posted in code-level, software-engineering | Comments Off on Can code be “readable”?

I published a new book!

Executive summary: it’s called APPropriate Behaviour, head over to the LeanPub site to check it out. For quite a while, I’ve noticed that posts here are moving away from nuts and bolts code towards questions about evaluating my own performance, … Continue reading

Posted in advancement of the self, books, Business, code-level, Responsibility, software-engineering | Comments Off on I published a new book!

Surprising ARC performance characteristics

The project I’m working on at the moment has quite tight performance constraints. It needs to start up quickly, do its work at a particular rate and, being an iOS app, there’s a hard limit on how much RAM can … Continue reading

Posted in code-level, performance, software-engineering | Comments Off on Surprising ARC performance characteristics