LLMs are good for coding because your documentation is shit


A pet cat typing on a computer keyboard.

That's it. That's the post. Fine! I'll expand a little more. Large Language Models are a type of Artificial Intelligence. They can read text, parse it, process it using the known rules of English, and then regurgitate parts of it on demand. This means they can read and parse a question like "In Python, how […]

Continue reading →

Falsehoods Programmers Believe About Weather


Hundreds of snowflakes - each one unique and beautiful.

(Mostly written in response to this issue on the Awesome Falsehoods list) For those new to the format, there is a popular meme about things which computer programmers erroneously believe. This isn't intended to shame anyone - just to point out things which may not be immediately obvious to the neophyte. There's nothing us Brits […]

Continue reading →

Server-Side Rendering of Embedded Markdown Code Snippets in WordPress


The Logo for WordPress.

Because I'm a grumpy old man, I don't use Gutenberg or Block themes on my WordPress. Instead, I write everything in Markdown. When I write code snippets in Markdown, they look like this: ```php $a = 1; echo $a; if ($a < 5) { // Do Something return thing( $a, true ); } ``` But […]

Continue reading →

There should only ever be one way to express yourself


Logo of the Python programming language.

I've been thinking about programming languages and their design. In her book about the divergence of the English and American languages, Lynne Murphy asks this question: wouldn’t it be great if language were logical and maximally efficient? If sentences had only as many syllables as strictly needed? If each word had a single, unique meaning? […]

Continue reading →

The Joy and The Pity of making your own stuff


A thin block of white beancurd.

I made my own tofu a few weeks ago0. I got soy milk, heated it, mixed in coagulants, drained it, pressed it, sliced it, then cooked it. And, you know what? I'm not sure it was worth the effort. It tasted basically fine - no different to any shop bought tofu. It wasn't noticeably cheaper, […]

Continue reading →

Free Open Banking API using Nordigen / GoCardless


Screenshot from GoCardless. 1. Test with your own data See how the product flow would look like for your users and what data is available 2. Set up the API Follow our documentation to set up the API and start collecting bank account data 3. Customise the user interface Pay as you go Make the user agreement flow for your customers to match your brand 4. Ready to go live? Need help and advice to set up faster?

A few weeks ago I was moaning about there being no OpenBanking API for personal use. Thankfully, I was wrong! As pointed out by Dave a company called Nordigen was set up to provide a free Open Banking service. It was quickly bought by GoCardless who said: We believe access to open banking data should […]

Continue reading →

Why aren't there more visual programming languages? (An ode to DRAKON)


Part of the MD5 algorithm expressed in colourful Lego blocks.

I think the computer programming industry is about to reach a reckoning. No, not because ChatGPT can poorly plagiarise buggy code - but because a whole generation of kids have grown up with Scratch. And they'll want professional tools which have Scratch's level of usability. Hand-coding YAML files is a mug's game; one wrong whitespace […]

Continue reading →

Are there any modern closed-source programming languages?


Four generated images of William Shakespeare programming a computer.

At a recent OpenUK meetup, one of the participants declared that Open Source had comprehensively won. While businesses might not always release their proprietary source code, 100% of everything they wrote used an open source programming language. I wondered how true that was. You can, perhaps, moan about the shenanigans around Java's licencing and you […]

Continue reading →

Regular Expressions make me feel like a powerful wizard - and that's not a good thing


A confused little cardboard robot is lost amongst the daisies

(This is a rant because I'm exhausted after debugging something. If you've made RegEx your whole personality, I'm sorry.) The other day I had to fix a multi-line Regular Expression (RegEx). After a few hours of peering at it with a variety of tools, I finally understood the problem. Getting that deep into the esoteric […]

Continue reading →

Unicode operators for semantically correct programming


Why do most programming languages use the / character when we have a perfectly good ÷ symbol? Similarly, why use != instead of ≠? Or => rather than →? The obvious answer is that the humble keyboard usually only has around 100 keys - and most humans have a hard time remembering where thousands of […]

Continue reading →