
Cyanotype Camera
Someone down the street threw out an old rear-projection television, so I tore the lenses out of it and made a camera out of one of them. It can capture images on cyanotype paper and cyanotype gelatine on glass. Rear-projection…

The Assassination of Kurahara
One of my favourite movie scenes is the assassination of Kurahara in Mishima: A Life in Four Chapters (1985) I think it’s one of most arresting scenes ever filmed. Yukio Mashima was one of the most important authors in post-war…

VIC-20 Tetris
Wrote Tetris in 6502 assembly for the Commodore VIC-20. You can find it here. Collision detection is a mess, and the sound effects are primitive. Flicker is also a problem. The pros are able to synchronize rendering with the scan…

Scenes From the Cold War in Canada
Flight of Avro CF-100s from 414 squadron, June 1969. Canadair CT-114 trainers, late 1960s. 26118 was lost in a fatal accident in 1978 while being operated as Snowbird 8.

Rust ANSI Art
I wrote a dumb utility to print a image to the console using Rust: https://github.com/paulmcgovern/ansi_image Rust is great, but I speak it with an accent. I’ve been working mostly with Python and JS for the last few years so returning…

PowerShell ANSI Art
Recent versions of the Windows console support RGB ANSI colors. Here’s a script that outputs an image to the console, useful for when you feel the need to beautify the user experience of some backup script. It repeatedly samples parts…

Fun With Common Table Expressions
I came across some interesting ways to use common table expressions (CTE) in SQL Server and pass them on in the hope someone may find them useful. The first example shows how to use a CTE to update a table,…

Poor Man’s Plough
Finished the year with a pair of small notebooks. I backed the cover fabric with rice paper and was careful to keep the non-stretchy dimension of the fabric running in the same direction as the paper grain. The backing turned…

Downloading Files With Selenium
Selenium in an indispensable tool but it cannot download files. It gives you control of the DOM but cannot interact with the native dialogs the browser coughs up when prompting for a file download. The work-around is to use Apache…

More Books
I have been experimenting with paper marbling and have managed to get some results good enough to cover some small notebooks. The paper is treated with a saturated solution of alum and left to dry overnight. The size is 4tbsp…