Author Archives: Graham

About Graham

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

Having the right data

In the beginning there was the relational database, and it was…OK, I guess. It was based on the relational model, and allowed operations that were within the relational algebra. I mean it actually didn’t. The usual standard for relational databases … Continue reading

Posted in software-engineering | Tagged | Leave a comment

Aphorism Considered Harmful

Recently Dan North asked the origin of the software design aphorism “make it work, make it right, make it fast”. Before delving into that story, it’s important to note that I had already heard this phrase. I don’t know where, … Continue reading

Posted in whatevs | Tagged | 3 Comments

What is software engineering?

I suppose if I’m going to have a tagline like “from programming to software engineering”, we ought to have some kind of shared understanding of what that journey entails. It would be particularly useful to agree on the destination. The … Continue reading

Posted in software-engineering | Tagged | Leave a comment

Diagnosing a Docker image build problem

My Python script for Global.health was not running in production, because it couldn’t find some imports. Now the real solution is to package up the imports with setuptools and install them at runtime (we manage the environments with poetry), but … Continue reading

Posted in whatevs | Leave a comment

Halloween is Over

Back in 2016, I sent the following letter to Linux Voice, and it was published in issue 24 as the star letter. LV came to an end (and made all of their content available as Creative Commons) when they merged … Continue reading

Posted in AAPL, FLOSS, msft | Tagged | Leave a comment

Design Patterns On Trial

Back in 1999, the OOPSLA conference held a show trial for the “Gang of Four”: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Five years earlier, they had released their book “Design Patterns: Elements of Reusable Object-Oriented Software” at … Continue reading

Posted in whatevs | Tagged | 1 Comment

Falsehoods These Programmers Believed About Countries

Well this was a hard-fought issue. Setting the scene: since April 2020 I’ve been working on Global.health: a Data Science Initiative, where we collate information about Covid-19 cases worldwide and make them available in a standard schema for analysis. In … Continue reading

Posted in design, FLOSS, UI | 1 Comment

Introducing the SICPers Newsletter

I write a lot about software engineering. I talk a lot about software engineering. And I read a lot about software engineering. And that stuff is scattered all over the interwebs. Well, some of it isn’t even there, it’s in … Continue reading

Posted in writing | Leave a comment

[objc retain]; continues apace

I just finished recording episode 35 of [objc retain]; the stream on Objective-C programming with Free Software that I co-host with Steven Baker. It is available on Twitch and you can subscribe there to get notified about new episodes. It … Continue reading

Posted in FLOSS, freesoftware, gnustep, objc | Leave a comment

On Apple’s swings and misses

There’s a trope in the Apple-using technologist world that when an Apple innovation doesn’t immediately succeed, they abandon it. It’s not entirely true, let’s see what actually happens. The quote in the above-linked item that supports the claim: “Apple has … Continue reading

Posted in AAPL, UI | 2 Comments