Author Archives: Graham

About Graham

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

Happy 19th birthday, Cocoa!

On October 19th, 1994 NeXT Computer, Inc. (later NeXT Software, Inc.) published a specification for OpenStep, a cross-platform interface for application programming, based on their existing Objective-C frameworks and the Display PostScript graphics system. A little bit of history First … Continue reading

Posted in Uncategorized | 4 Comments

Conflicts in my mental model of Objective-C

My worldview as it relates to the writing of software in Objective-C contains many items that are at odds with one another. I either need to resolve them or to live with the cognitive dissonance, gradually becoming more insane as … Continue reading

Posted in AAPL, Business, gnustep, iPhone, OOP, software-engineering, tool-support | Leave a comment

Reading List

I was asked “what books do you consider essential for app making”? Here’s the list. Most of these are not about specific technologies, which are fleeting and teach low-level detail. Those that are tech-specific also contain a good deal of … Continue reading

Posted in Uncategorized | Leave a comment

Choosing the correct openings and closures

Plenty of programmers will have heard of the Open-Closed Principle of object-oriented design. It is, after all, one of the five SOLID principles. You may not, however, have seen the principle as originally stated. You’ve probably heard this formulation by … Continue reading

Posted in OOP | Leave a comment

NIMBY Objects

Members of comfortable societies such as English towns have expectations of the services they will receive. They want their rubbish disposed of before it builds up too much, for example. They don’t so much care how it’s dealt with, they … Continue reading

Posted in Uncategorized | Leave a comment

Dogma-driven development

You can find plenty of dogmatic positions in software development, in blogs, in podcasts, in books, and even in academic articles. “You should (always/never) write tests before writing code.” “Pair programming is a (good/bad) use of time.” “(X/not X) considered … Continue reading

Posted in Uncategorized | 1 Comment

The whole ‘rockstar developer’ thing is backwards

Another day, another clearout of junk from people who want ‘rockstar iPhone developers’ for their Shoreditch startups. I could just say “no”, or I could launch into a detailed discussion of the problems in this picture. Rockstars are stagnant No-one, … Continue reading

Posted in advancement of the self, social-science | Leave a comment

Programmer Values

A question and answer exchange over at programmers.stackexchange.com reveals something interesting about how software is valued. The question asked whether there is any real-world data regarding costs and benefits of test-driven development.[*] One of the answers contained, at time of … Continue reading

Posted in social-science, TDD | Leave a comment

Know what counts

In Make it Count, Harry Roberts describes blacking out on stage at the end of a busy and sleepless week. Ironically, he was at the start of a talk in which he was to discuss being selective over side projects, … Continue reading

Posted in advancement of the self, learning, psychology, Responsibility, social-science | Leave a comment

The future will be just like the past, right?

I’ve been having a bit of a retro programming session: The computer in the photo is a Cambridge Z88, and it won’t surprise you to know that I’ve owned it for years. However, it’s far from my first computer. I … Continue reading

Posted in social-science | Leave a comment