Author Archives: Graham

About Graham

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

Reasoning about reasoning about software

Functional programmers like to claim that you can’t reason about mutable state programs. Some thoughts: the first half of the book A Discipline of Programming by Edsger W. Dijkstra tells you how to do it. That half of the book … Continue reading

Posted in code-level, software-engineering | Tagged | Leave a comment

All the things

It’s been a long time since I had a side project, or one that didn’t get abandoned very early on. I tend to get sidetracked by other thoughts about computing, or think “while I’m doing this, I’m leaving that unsolved” … Continue reading

Posted in advancement of the self, documentation, learning, techradar | Leave a comment

Against our values as a company

I’m going to pick on Patreon, not because they’re special, but because they’re typical. Here is a quote from a blog post in which they Back-pedalled a change to their pricing structure: We overstepped our bounds and injected ourselves into … Continue reading

Posted in Uncategorized | Leave a comment

Falsehoods programmers believe about programming

There is no ethical impact of my job; I build technological systems and it’s up to others how they use them. Software is a purely technical discipline. There is some innate affinity for computer programming which you must be born … Continue reading

Posted in code-level | 14 Comments

Don’t like a new way of working? Just point out the absurdity of suggesting that the old way was broken: Somehow, the microservices folks have failed to notice all that software that was in fact delivered as monoliths. What the … Continue reading

Posted on by Graham | Leave a comment

An unhelpful distinction

Object-Oriented Programming is quite simple: it’s just choosing what function to run based on the parameters to the function (whether through method sending like Smalltalk, polymorphic lookup like CLOS, or table searching like C++: usually pattern-matching like Haskell would be … Continue reading

Posted in OOP | Leave a comment

GNUstep is more important now than ever

In creating a pull request for GNUstep-base, the Free Software implementation of the Foundation library from Objective-C, I realised that if there was ever a time for GNUstep, now is it. Although GNUstep may have been envisaged as an official … Continue reading

Posted in gnustep | Leave a comment

On the lesser presentations

Advice on presentations – including that given on this blog, is often geared toward the “showbusiness” presentation. We’re usually talking about the big conference talk or product launch, where you can afford to put in the time to make a … Continue reading

Posted in performance, Talk | Leave a comment

I frequently see posts/articles/screeds asking why people don’t contribute to open source. If it’s important that recipients of open source software contribute upstream, and you are angry when they don’t, why use licences like MIT, Apache, GPL or BSD that … Continue reading

Posted on by Graham | 1 Comment

The Atoms of Programming

In the world of physics, there are many different models that can be used, though typically each of them has different applicability to different contexts. At the small scale, quantum physics is a very useful model, Newtonian physics will yield … Continue reading

Posted in learning, philosophy after a fashion, software-engineering | 15 Comments