Author Archives: Graham

About Graham

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

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

Sideloading content into iOS apps

All non-trivial apps visualise content in some form, whether it’s game levels embedded in the app, data loaded from some internet service, or something else. In many cases the developer who’s writing the Objective-C code isn’t going to be the … Continue reading

Posted in iPad, iPhone, tool-support | Comments Off on Sideloading content into iOS apps

Object-Oriented callback design

One of the early promises of object-oriented programming, encapsulated in the design of the Smalltalk APIs, was a reduction – or really an encapsulation – of the complexity of code. Many programmers believe that the more complex a method or … Continue reading

Posted in code-level, OOP, software-engineering | Comments Off on Object-Oriented callback design

How to excel at IDE design

When people have the “which IDE is best” argument, what they’re actually discussing is “which slightly souped-up monospace text editor with a build button do you like using”. Eclipse, Xcode, IntelliJ, Visual Studio…all of these tools riff on the same … Continue reading

Posted in Uncategorized | Comments Off on How to excel at IDE design

An apology to readers of Test-Driven iOS Development

I made a mistake. Not a typo or a bug in some pasted code (actually I’ve made some of those, too). I perpetuated what seems (now, since I analyse it) to be a big myth in software engineering. I uncritically … Continue reading

Posted in books, Responsibility, software-engineering, TDiOSD | Comments Off on An apology to readers of Test-Driven iOS Development

It’s not @jnozzi’s fault!

My last post was about how we don’t use evidence-based techniques in software engineering. If we don’t rely on previous results to guide us, what do we use? The answer is that the industry is guided by anecdote. Plenty of … Continue reading

Posted in books | Comments Off on It’s not @jnozzi’s fault!

Does that thing you like doing actually work?

Genuine question. I’ve written before about Test-Driven Development, and I’m sure some of you practice it: can you show evidence that it’s better than (or, for that matter, evidence that it’s worse than) some other practice? Statistically significant evidence? How … Continue reading

Posted in advancement of the self, documentation, software-engineering | Comments Off on Does that thing you like doing actually work?

I made a web!

That is, I made a C program using the literate programming tool, CWEB. The product it outputs is, almost by definition, self-documenting, so find out about the algorithm and how I built it by reading the PDF. This post is … Continue reading

Posted in code-level, documentation, tool-support | Comments Off on I made a web!

A brief history of talking on the interwebs (or: why I’m not on app.net)

When I first went to university, I was part of an Actual September, though it took place in October. Going from a dial-up internet service shared with the telephone line to the latest iteration of SuperJANET with its multi-megabit connection … Continue reading

Posted in Twitter, user-error | 2 Comments