Blog

Dead Reckoning

A Python script that renders GPX tracks as alpha-channel PNG layers for Final Cut Pro, with the coastline drawn through the track's own projection.

How Low Can You Go?

Decoding at 48, 8 and 4 kHz from the same raw IQ. Quality, compute saving, and disk saving measured.

Decoding Weather Fax Transmissions with Ilma

Ilma is a NAVTEX, RTTY, and WEFAX decoder for sailors written in Python running on the Raspberry Pi.

Ilma, a Navtex Decoder for the Raspberry Pi

Turning noise at 518 kHz into navigational warnings: FSK demodulation, matched filters and SITOR-B forward error correction, on a Raspberry Pi that listens unattended at sea.

Eggs and Baskets

Running a microblog on Cloudflare and asking about competitors.

Building a GitHub Client Without a GitHub Account

I built a macOS menu bar app for Git sync. Now I don't have a GitHub account anymore.

WordPress to Astro in 24 Hours

Migrating a sailing blog with AI — and building a geo-referenced sea chart along the way.

The Night Sky for Astronavigation

Plot the sky tonight for astronavigation. There are about a dozen stars that are used for celestial navigation. The chart shows which of the principal stars are above the horizon at your chosen time and position.

File Transfer from Mac to Android

Music Transfer is a standalone macOS app window with retro CRT terminal aesthetics. It transfers music mp3/aac or flac/alac files from Mac to an Android phone via USB or Wi-Fi. Or any other file.

Celestial Navigation in the Browser

A tool for practicing sun sights with a sextant — sight reduction runs entirely client-side. Intercept computes the calculated altitude and azimuth using spherical trigonometry.