The homepage of Nicholas Parker, a programmer in Wellington New Zealand.


These are a few things I've made in my spare time. They span many subjects, from audio to hardware to desktop applications, and are typically just meant to scratch an itch or build something interesting. In my day job, I mainly work on containers and distributed systems.

Radio exam parsers

Parsers for publically available amateur radio exam questions across various countries.


Sample code for bit-packing amateur radio callsigns, to someday be used in a larger project.

Finance calculator

A Javascript-based calculator which charts the income/expense over the lifetime of a savings account or loan. Easily configured to solve for any part of the equation, such as the starting balance, duration, payment amount, or interest rate.


A simple Android app that shows a streaming voiceprint of the currently playing audio, or of the microphone input if no audio is playing. Available for free in the Play Store.


Cross-platform PC equivalent to musicviz, for Linux/Mac/Windows. Autodetects audio devices and renders a visualization of whatever audio is currently playing.


A library and command line utility for efficient generation of Markov chains from arbitrary text. Includes built-in support for storing processed input data to a SQLite db for later retrieval.


Provides keyboard-bindable commands for easy window manipulation. Effectively a port of the "Grid" Compiz plugin, except designed to work with any EWMH-compliant window manager, which is just about all of them. Also has commands for moving windows between monitors and directionally selecting windows.


A simple conduit for sending content to BetaBrite-compatible LED signs. When run, it executes a list of commands, captures their output, and writes that to the sign. This structure allows for extensions in any language without needing to modify bbusb itself.


Software that listens for an Epson projector's IR signal to power on/off, and enables/disables a power switch when that signal is detected. Useful for getting sane on/off behavior with Epson projectors.


Contributions for cross-format song rating import/export, and a couple new visualizations which served as inspiration for musicviz (Android) and soundview (Linux/Mac/Win).


A DAAP Daemon with the design goal of simple initial configuration.


A half-finished utility which organizes music files according to their metadata. Originally written as a sort of workaround to mpd's lack of rating support. Might bring this back if I someday resume using mpd. In any case, here's a python script which synchronizes song ratings to a Google Music library.