This article is about using large language models (LLMs) to write code, but gets there indirectly. First it talks about what makes things, such as programming and maths, hard and what doesn’t via a couple of historical things. Next, I will expand on complexity – how much is baked into some activity, and how much … Continue reading Whetstone of Witte, complexity and programming
Dividing using subtraction
In this article I will go into a way of dividing that’s possibly unusual – repeated subtraction, with some doubling along the way. It’s related to other articles I’ve already done: Multiplying using doubling, halving and adding Multiplying using doubling, halving and adding 2 First, I’ll go into how we get division if we do … Continue reading Dividing using subtraction
Multiplying using halving, doubling and summing – part 2
This article is a follow-up to a previous article on multiplying by halving, doubling and adding. In this article I go through another way of approaching the same idea, that my wife showed me. This article, like the previous one, will switch between Roman numerals and Arabic numerals. I learned this on a counting cloth … Continue reading Multiplying using halving, doubling and summing – part 2
Palimpsests ancient and modern
This is a kind of follow-up article to a previous article about pairs ancient and modern for security. That article discussed how pairs help with security in old physical documents and objects, and also in modern electronic ones. This article goes into palimpsests and other ways of partially erasing things, for old physical things and … Continue reading Palimpsests ancient and modern
Designing the user experience of Top Trumps
This is a kind of follow-up post to a previous analysis of a pack of Top Trumps. If you don't know what Top Trumps are, I suggest you look at that. I was contacted via this blog by some people who had designed a pack of Top Trumps. They wanted my help with making their … Continue reading Designing the user experience of Top Trumps
Analysing the radio alphabet
If you have tried to spell out the letters of a name, or give a (UK) post code or car registration number over the phone, the person at the other end of the conversation might have misheard what you said. One solution to this is to use the radio alphabet (also known as the NATO … Continue reading Analysing the radio alphabet
Arts and humanities in computing
You might work in software because you just like to build cool things. I understand this, and I also like to geek out about things like balanced trees and coupling and cohesion. However, you're probably building something to solve a problem for someone, rather than just building for the sake of it. Whose problem are … Continue reading Arts and humanities in computing
The lives and marriages of Henry VIII and his wives
Recently a historian friend of mine put some data on Facebook about Henry VIII of England and his wives. It showed how old the women were when they married him, how old when they died and how old he was when he married them. It provoked a reaction in me that has happened before with … Continue reading The lives and marriages of Henry VIII and his wives
Tech debt as risk of friction
Tech debt is a term that’s used quite a bit in software development, and I recently realised a new way of thinking about it: the risk of future friction. I’ll explain what I mean below, starting with a brief discussion of what I mean about risk in general. Risk Before I get into risk as … Continue reading Tech debt as risk of friction
Commentate on your code
Sometimes a method mixes levels of abstraction, where one section goes into more detail than the rest of the method. This can make it hard to understand – code can be hard to understand when it’s on only one abstraction level, and introducing an extra level only makes things worse. One way to detect whether … Continue reading Commentate on your code