Author Archives: Graham

About Graham

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

When all you have is a NailFactory…

…every problem looks like it can be solved by configuring a different nail. We have an obsession with tools in the software industry. We’ve built tools for building software, tools for testing software, tools for recording how the software is … Continue reading

Posted in advancement of the self, software-engineering | Comments Off on When all you have is a NailFactory…

A note on notes

I’ve always had a way to take notes, but have never settled into a particular scheme. This post, more for my benefit than for yours, is an attempt to dig through this history and decide what I want to do … Continue reading

Posted in tool-support | Comments Off on A note on notes

How to version a Mach-O library

Yes, it’s the next instalment of “cross-platform programming for people who don’t use Macs very much”. You want to give your dynamic library a version number, probably of the format major.minor.patchlevel. Regardless of marketing concerns, this helps with dependency management … Continue reading

Posted in Uncategorized | Comments Off on How to version a Mach-O library

How to handle Xcode in your meta-build system’s iOS or Mac app target

OK, I’ve said before in APPropriate Behaviour that I dislike build systems that build other build systems: Some build procedures get so complicated that they spawn another build system that configures the build environment for the target system before building. … Continue reading

Posted in code-level, tool-support | Comments Off on How to handle Xcode in your meta-build system’s iOS or Mac app target

I just updated Appropriate Behaviour

The new release of Appropriate Behaviour—the book about things programmers should do that aren’t programming—is now up. The most obvious, and most awesome, change in this update is a fabulous new cover, designed by Sebastian Hermida of leanpubcovers.com. Should you … Continue reading

Posted in advancement of the self, books | Comments Off on I just updated Appropriate Behaviour

Happy Birthday, Objective-C!

OK, I have to admit that I actually missed the party. Brad Cox first described his “Object-Oriented pre-compiler”, OOPC, in The January 1983 issue of ACM SIGPLAN Notices. This describes the Object Oriented Pre-Compiler, OOPC, a language and a run-time … Continue reading

Posted in AAPL, code-level, social-science | Comments Off on Happy Birthday, Objective-C!

Does the history of making software exist?

A bit of a repeated theme in the construction of APPropriate Behaviour has been that I’ve tried to position certain terms or concepts in their historical context, and found it difficult, or impossible to do so with sufficient rigour. There’s … Continue reading

Posted in advancement of the self, books, OOP, social-science, software-engineering | Comments Off on Does the history of making software exist?

An observation designed to aid the reading of books on software

Wherever a book on writing software describes the 1968 NATO conference in Garmisch on Software Engineering, consider whether the clarity of the argument can be improved by adding the following parenthetical clause: […], a straw man version of an otherwise … Continue reading

Posted in books, software-engineering | Comments Off on An observation designed to aid the reading of books on software

Anyone Can Write A Manifesto And You Can Too!™

Over a small number of years, I have helped to write some software. During this time I have come to value: Solving problems over rejecting what has passed before Solving problems over congratulating ourselves Solving problems over creating problems Solving … Continue reading

Posted in Uncategorized | Comments Off on Anyone Can Write A Manifesto And You Can Too!™

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