Mr Speaker

Author Archives: Mr Speaker

Your Last Ever Computer

I gaze across the calm morning ocean as I sip my coffee. The computer takes a while to boot, and watching the ocean is more relaxing than the torrent of kernel messages that (hopefully) say things are loading nominally. I wonder if there will be any deliveries today. It’s been a while, and recent weather […]

Basic-er BASIC

Today I wrote an “eBASIC” code snippet that contained a macro. The macro expansion included another macro that when expanded generated 6502 assembler code – which itself happened to contain a KickAssembler macro: that in turn generated its own 6502 assembler. The result of the entire macro formed part of a BASIC program that POKEd […]

NBA Jam, um, tank-mode?

Eight minutes ago I had a flashback. The following is my stream-of-consciousness account of those eight minutes. I refuse to google it to see if it’s true, or if I imagined the whole thing. The year was… 1992? 1993? I was playing the hit arcade game NBA Jam. A lot. I remember playing NBA Jam […]

Why WebGL colors don’t look like Blender colors

The following is an account of my embarrassing ignorance on color spaces, gamma correction, and pretty-much everything to do with how a computer outputs things to a monitor. Recently I’ve been kicking around an idea for probably the greatest retro-video-game game of all time. I’m 40% sure it will be amazing and spawn a whole […]

Note to self: Math.hypot() still exists

C’mon Mr Speaker, stop re-writing your “distance” function every project… Math.hypot() has been around for ages now! Math.hypot(1,1); // 1.4142135623730951 (So has Math.SQRT2. I also forgot I already remembered and re-forgot that)

USB Mini Shawarma

Years ago I had a genius idea of making a USB-powered mini shawarma machine that you could have on your desk, and shave off bits of meat during the day. Sometimes I still lay awake at night, wondering if that would have worked.

And… goodbye JavaScript!

When I de-bloated my piece of the web, I noted that the largest asset I was serving on my blog was a local version of jQuery – coming in at some 70+ kilobytes – that “I still need to insert into the head of my page for historical reasons: 15 years ago I in-lined lots […]

Monads for Babies

Monads for Babies is the first in a series that teaches computer science to toddlers. It’s only available in digital form at the moment (png format, embedded below), so I suggest `right-click -> print` so you can read it to the lil’ tigers at bed time: Support my Patreon if you’d like to see more.

A most useful function

Hot on the heels of my web colors rant, comes this amazing piece of Emacs Lisp I now have in my init file: (defun web-color () (interactive) (let ((cols ‘(“AliceBlue” “AntiqueWhite” “Aqua” “Aquamarine” “Azure” “Beige” “Bisque” “Black” “BlanchedAlmond” “Blue” “BlueViolet” “Brown” “BurlyWood” “CadetBlue” “Chartreuse” “Chocolate” “Coral” “CornflowerBlue” “Cornsilk” “Crimson” “Cyan” “DarkBlue” “DarkCyan” “DarkGoldenRod” “DarkGray” “DarkGreen” […]