Author Archives: Graham

About Graham

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

Figurative Programming and Gloom: the [G]raphical [LOOM]

Donald Knuth is pretty cool. One of the books he wrote that I own and have actually read[*] is Literate Programming, in which he describes (among other things) weaving program text and documentation together in a single narrative. Two of … Continue reading

Posted in tool-support | Leave a comment

Two books

A member of a mailing list I’m on recently asked: what two books should be on every engineer’s bookshelf? Here’s my answer. Many software engineers, the ones described toward the end of Code Complete 2, would benefit most from Donald … Continue reading

Posted in books, OOP | 1 Comment

Packaging software

I’ve been learning about Debian Packaging. I’ve built OS X packages, RPMs, Dockerfiles, JARs, and others, but never dpkgs, so I thought I’d give it a go. My goal is to make a suite of GNUstep packages for Debian. There … Continue reading

Posted in tool-support | Tagged | Leave a comment

Concurrent objects and SCOOP

Representing concurrency in an object-oriented system has been a long-standing problem. Encapsulating the concurrency primitives via objects and methods is easy enough, but doesn’t get us anywhere. We still end up composing our programs out of threads and mutexes and … Continue reading

Posted in code-level, OOP, performance | Tagged | 1 Comment

A little challenge

A little challenge today: create a JS function that turns its arguments into a list of pairs. Actually, the brief was “using Ramda” but I ended up not doing that: function basePairwise(xs) { if (xs.length == 0) return []; if … Continue reading

Posted in FP, javascript | Leave a comment

Ultimate Programmer Super Stack: Last day!

I already wrote about the Ultimate Programmer Super Stack, a huge bundle of books and courses on a range of technologies: Python, JS, Ruby, Java, HTML, node, Aurelia… and APPropriate Behaviour, my book on everything that goes into being a … Continue reading

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

Coming to terms with fewer terms

I was on a “Leadership in Architecture” panel organised by RP International recently, and was asked about problems we face using new techniques like Microservices, serverless and machine learning in the financial technology sector. The biggest blocker I see is … Continue reading

Posted in software-engineering | Leave a comment

Microservices for the Desktop

In OOP the Easy Way, I make the argument that microservices are a rare instance of OOP done well: Microservice adopters are able to implement different services in different technologies, to think about changes to a given service only in … Continue reading

Posted in architecture of sorts, code-level, OOP | Tagged | 1 Comment

Ultimate Programmer Super Stack

There’s a great bundle of polyglot learning taking place over at the Ultimate Programmer Super Stack. My book, APPropriate Behaviour – the things every programmer needs to know that aren’t programming – is featured alongside content on Python, Ruby, Java, … Continue reading

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

Introducing: the Labrary

Is it that a month in the laboratory will save an hour in the library, or the other way around? A little more conversation, a little less action? There are things to learn from both the library and the laboratory, … Continue reading

Posted in advancement of the self, architecture of sorts | Leave a comment