Everyone needs a blog these days. Should I ever decide to inflict my existential angst on the world, this is where it'll be.

just add software
EmuTOS on the AlphaSmart Dana
$4750 cheaper than an Atari STacy
A simulator for the OBP spaceflight computer
spaceship not included
POLF: a game for the Commodore PET
this should never happen
Fuzix on the Raspberry Pi Pico (update)
let's call it done
Fuzix on the Raspberry Pi Pico
surprisingly non-awful
Porting Fuzix to the ESP8266... on video
every tedious minute of it
Writing 800kB Mac disks with FluxEngine
technically impossible
WordGrinder 0.8 released!
now thirteen years old
6303 arithmetic: more dull than you think
but in a good way
Cowgol 2.0: this time it's useful
well. debatably useful
Jumping ahead with Cowgol 2.0
that's two days of work wasted
Building a keyboard from an old portable (electronic) typewriter
the most hipster writer in the café
My new book
Child of the Sea and the Stars
Writing a lunar lander game for an actual lunar lander
the oldest of old schools
Live coding a compiler for CP/M, from scratch
well, part of one
Live coding a vi for CP/M, from scratch
more vi-adjacent, really
Performing a brain transplant on a Toshiba T1000
it lives! it lives!
R.T. Russell's Z80 BBC Basic is now open source
one of the originals and best
Resurrecting CP/M, or at least CP/Mish
clearly this got out of hand
Live coding an assembler for CP/M
rewriting software for a 40-year-old OS is clearly a good use of time
A small, portable and thoroughly evil Forth interpreter
but evil in a good cause
Demonstration and teardown of a Canon TypeStar 4 portable typewriter
the ability to make words wherever you go!
TypeTalk: smalltalk about Javascript
the softest of software
The Brother LW-30: a typewriter, not a computer
when word processors were things not programs
FluxEngine demo reel
short but perfectly formed
FluxEngine released!
getting serious about floppy disks
Christmas in Scotland (again)
bleak and miserable (as usual)
Seven CP/M programming languages on one floppy (and a game)
small but perfectly formed
WordGrinder 0.7.2 released!
ten years old --- they grow up so quickly
13kg of IBM electric typewriter
38 cents a kilo
Replacing the motherboard on a Psion 3a organiser
amateur brain transplants are best brain transplants
How to write a game on a ZX81
obsolete machines for fun and profit
Rapidly rendering fractals on stupidly unsuitable machines
actually really, this time!
A twelve second Mandelbrot on the BBC Micro
yes, really! but no, not really
Adventures in video editing
with apologies to Johann Strauss
Cowgol 0.5 released!
now, an industry standard
Z80 arithmetic: also surprisingly terrible
surprising plenitude of awfulness
Cowgol 0.4 released!
smaller, better, faster...
jpegfinder vs. the Hubsan H107D
and the terrible secret!
6502 arithmetic and why it is terrible
yes, that's what I said
Cowgol 0.2 released!
should actually work now (but I said that last time)
Cowgol 0.1.1 released!
6502s never die, they just... stop moving...
Sunday walk: Innerthal to (near) Niederurnen
apparently I'm fit now
Minix QD
I'm sure it'll be useful to someone?
Fuzix port for the MSP430
a possible record for the smallest Unix ever
WordGrinder 0.6 released!
a word processor for processing words
haven't been on holiday for... weeks
Narcissus 0.1 released!
chording keyboards the easy way
Ancient BBC Micro software
relics from my childhood
A Random Walk Through Ada
the language everyone's heard of but never used
Flooded Moon
the wettest moon pictures around
PiFace v0.3
a bare-metal boot loader for the Raspberry Pi's VideoCore IV GPU
Conway's Game of Life (as a GNU Make macro)
exactly what it says on the tin
Return of the comments
but now they're evil
Just found some Cybiko software
in a cupboard out back
Luje 0.1 released!
a Java VM written in pure Lua
PiFace: a bare metal boot loader for the Raspberry Pi
no ARMs need apply
WordGrinder 0.4 released!
a word processor for processing words
Calculon 0.1 released!
a very small programming language
The Water Horse's Fireplace
a Scottish Halloween folk story, sort of
a Java bytecode to C++ transpiler
Cowbel 0.2 released!
a programming language
Cowbel 0.1 released!
a programming language
Cowj 0.2 out now
now with extra evil
Cowj released
cruel and unusual things with Javascript
Prime Mover, spey updates
yes, they are related
Hacking the Kindle
just can't leave things alone
for when you just need that one extra character
Anstruther in winter
out-of-season holidaying FTW
Susan Cooper's Wales page update
digitally remastered!
Giveaway gallery
the great hardware giveaway
Transflector 0.1
a simple WebSocket to socket service proxy
LBW 0.1: Linux Binaries on Windows
run your Linux software on Windows
Prime Mover 0.1.5
a Lua-based build tool that doesn't require Lua
Scotland, snowbound
unaccustomed scenes of picturesque whiteness
a short story
Objective Lua 0.1
an OO extension for Lua
WordGrinder 0.3.3
the wheels of software grind slow, but they grind exceedingly fine
HershTrans 0.1
a Hershey font manipulation tool
Go, going forward
I have a dream
On Go
oh, go on
By appointment only
destroy your problems before they destroy you!
Return to Korea
and once again I escape from the hotel
Objective Lua 0.0.1
an OO extension for Lua
Cowlark 2.0
we can has comments
Melissa 0.3
an instant messenger chatbot
A short guide to building a gcc cross-compiler
while still remaining nominally sane
Welcome to Korea
Seoul food
Dallas photos, unclassifiable
quote artistic unquote
A first look at the SheevaPlug
small, white, powerful
Hjal's explorations
mysterious ruins a sign of foul play?
Special Effect
a short story
Winter in Lochcarron
some photos of Lochcarron
Dallas gallery
some photos of Dallas
Ulysses 31
the ancient gods of Olympus are angry!
Clue 0.5
things that compilers were not meant to wot of
R2 0.1
my name is David and I own a RISC PC
Spey 0.5.pre1
the wheels of spam grind slow
WordGrinder 0.3.2
or, sod's law strikes again
Bryan Krubb
a character background
Melissa 0.2
an instant messenger chatbot
Rozzie Potatoes
how to cheat with potatoes
Illegal Music Downloads
MP3s are bad, mmmkay
Colonsay very old
insufficiently bleak and miserable
Interlaken very old
the highest tourist trap in Europe
Andros and Tinos very old
all the lizards you can eat no wait that came out wrong
Off to see a glacier very old
it's big and icy
Walking the Kumano Kodo in Japan very old
too many forests, not enough time
On holiday in Crete very old
rocks and gorges
Christmas holiday on Iona very old
disappointingly not bleak and miserable
Running native programs on the Amstrad NC200 very old
playing with my new laptop
WordGrinder 0.7 released! very old
please don't ask when the previous release was
Brand new website very old
in with the new CMS, out with the old
Monday walk: Diabeg very old
Scotland is made out of swamp. Swamp, I say
Saturday walk: Sgùman Còinntich and Killilan very old
not the right mountain
Wednesday walk: Fuar Tholl and Sgurr Ruadh very old
it's not Sunday!
Sunday walk: Chäseren to Braunwald very old
all the rocks you can eat
Sunday walk: Zeinenfurggel very old
up, up and...
Sunday walk: Näfels-Mollis to Richisau very old
'Ben Nevises' is totally a real unit
Sunday walk: Oberblegisee very old
suddenly, a restaurant
Sunday walk: Glärnisch low level very old
the bottoms of the mountains are nice too