An “article” is basically just a post I did at least one editing pass on.
-
Lego blocks are never a good analogy Technical and tech-adjacent writers seemingly never tire of describing various technologies as being "like Lego blocks". -
How I Learned OOP: A Nightmare [satire warning] C++ was the first Object Oriented programming language. It was created by mixing C with Simula, which was invented by Alan Kay. In this article, I'll be sharing some helpful principles I was taught for writing OOP programs. -
Australian media has an RSS problem As I write this, Facebook's blackout of news content in Australia is only one day old. How long will it last? Nobody can say. What effects will it have on the media industry in Australia? Only time will tell. -
Destroy All Dependencies or, why structural typing is awesome. An extended example of applying Sandi Metz's object-oriented design principles to a problem in TypeScript. -
Wabi Concrete Box I review Alain de Botton's book on architecture, and I am not pleased with it. -
A stateless token case study: Algolia search API Learn how Algolia uses stateless API tokens which aren't JWTs. -
JavaScript's ecosystem is uniquely paranoid Three factors have caused a widespread cultural paranoia among JavaScript developers. This has been inculcated over years. These factors are: JavaScript's weak dynamic type system; the diversity of runtimes JavaScript targets; and the physics of deploying software on the web. -
It turns everything it touches into a machine Jacques Ellul's powerful commentary on technology is as relevant today as it was 60 years ago. -
Book notes from 2018 These are the books I read in 2018 and some brief thoughts they inspired. I don't consider these reviews, nor summaries; call them personal reflections. -
Loyalty: a primer for my friends and family In 1907, in a series of lectures given at Harvard University, Josiah Royce set out to rehabilitate the idea of loyalty from its unsavoury historical baggage. He particularly regretted the "ancient and disastrous association" between loyalty and the nationalistic war-spirit. -
Development versus deployment: Docker and Haskell This post was prompted by a recent discussion about using Docker for Haskell development. The question was: how do I develop quickly using Docker, and avoid waiting for the container to be rebuilt all the time? -
A matter of opinion: what I dislike about TorqueScript Thoughts on the design of the Torque Game Engine's scripting language. -
The Torque 3D shutdown sequence - a safari An in-depth code review of the Torque 3D game engine's shutdown sequence. -
The Torque 3D unit testing system - a safari An in-depth code review of unit testing features in the Torque 3D game engine. -
IO: You may say I'm a monad, but I'm not the only one! When you're learning Haskell, you're told 'IO is a monad', and whether or not you understand what that means, you start to see the significance of binding impure values, returning pure ones, using do notation, and so on. In this post, I make the jump to understanding monads in general, rather than as something specific to impure IO operations. -
Micro-tutorial: liftM by accident I rediscover Haskell's liftM function and document my process for others learning the language.