Author Archives: Graham

About Graham

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

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 | 1 Comment

Licenses aren’t sufficient

Another recent issue in the world of “centralised open source dependency repositories were a bad idea” initiated by the central contradiction of free software. People want to both give everything away without limitation on who uses it or how, and … Continue reading

Posted in FLOSS | Leave a comment

On the glorification of ignorance

When I wrote I have some small idea of what I’m doing, it was on the basis that DHH was engaging in some exaggeration. Surely software engineers, whose job depends on what they know and what they can learn, would … Continue reading

Posted in whatevs | Leave a comment

Explicitly considering subtyping in inheritance

By far the post on this blog that gains the most long-term interest and attention is why inheritance never made any sense. In this post, I explain that there are three different ways to think about inheritance—ontological inheritance (this sort … Continue reading

Posted in OOP | Leave a comment

I have some small idea of what I’m doing

I feel partly to blame for the current minor internet shitstorm. But first, some scene-setting. There have long been associations between the programmer community and particular subcultures, some of which have become—not monocultural—at least dominant cultures within the world of … Continue reading

Posted in advancement of the self, edjercashun | Leave a comment

An Imagined History of Agile Software Development

Having benefited from the imagined history of Object-Oriented Programming, it’s time to turn our flawed retelling toolset to Agile. This history is as inaccurate and biased as it is illuminating. In the beginning, there was no software. This was considered … Continue reading

Posted in agile | 1 Comment

Second Brain

The idea of a second brain really hit home. Steven and I were doing some refactoring of some code in our Amiga podcast last night, and every time we moved something between files we had to remember which header files … Continue reading

Posted in advancement of the self, tool-support, whatevs | Leave a comment

Scripting confusion

LaTeX (and TeX, for that matter), syntax is relatively consistent, and uses a lot of backslashes. Bourne shell syntax is somewhat inconsistent, and also uses backslashes. Regular expression syntax I seem almost perversely disinclined to remember, and definitely sometimes often … Continue reading

Posted in LaTeX | Leave a comment

I only have 17 years of experience, but every point on this list accords with my experience. I’ve made my own attempt to catalogue things software developers should know (that are not writing code), but this is a succinct and … Continue reading

Posted on by Graham | Leave a comment

The “return a command” trick This is a nice trick, but we need a phrase for that thing where you implement extreme late binding of functions by invoking an active function that selects the function you want based on its … Continue reading

Posted on by Graham | Leave a comment