Skip to content
View saxbophone's full-sized avatar


  • Pro
Block or Report

Block or report saxbophone

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

I've been programming for a little over a decade now, to a professional level for several years.

My professional experience is mostly in web dev, but I also have some Windows desktop application experience.

Projects I am particularly proud of: arby is a C++ library implementing arbitrary-precision arithmetic, both at runtime and compile-time!
It exposes convenient-to-use class types encapsulating the arithmetic, with operator overloading and standard stream support. hexago is a cross-platform screensaver written in C++. It draws pretty shrinking hexagons!
It integrates with the screensaver frameworks of both macOS and Windows (with some Objective-C++ glue code for the former!)
Cross-platform C++20 project template This is a Github project template intended for cross-platform C++20 dev.
It includes an extensive CMake project config with lots of warning options enabled, and Github Actions CI config for unit testing on Linux, macOS and Windows.
I use it for all my stuff and other people seem to find it useful too. sxbp and its implementation library, libsxbp are a pair of C projects exploring unconventional barcodes and procedural image generation.
They implement a novel barcode of my own design, where binary bits are encoded by guiding the line of a right-angled spiral left or right as prescribed by the input data.
Unfortunately, producing a compact-enough spiral that does not waste lots of empty space in the image it produces is a very computationally expensive process for barcodes longer than about 20 bits, but it was a fun an interesting experiment and a good practice at writing a well-documented C API with callbacks and error-handling. unmoving is a C++20 baremetal library providing more convenient support for fixed-point arithmetic as used on the PlayStation.
Getting a cutting-edge version of G++ to cross-compile for the PlayStation and programming within the constraints of bare metal was a fun challenge!

Other fun stuff Emulating the communications protocol used for PS1 memory cards in software Experimental sorting algorithm which attempts to calculate the rough position each element should be Web app for finding colours that are "n distance away from" a given colour, intended for interior design Just for fun, animated geometrically-constructed fractal-like arrangements of triangles C++ Z-machine interpreter, work in progress Galois Field arithmetic using compile-time-generated lookup tables Partial reverse-engineering of the low-level data encoding of Compact Discs Bit-by-bit LZW compression with redundant-code-elimination


  1. CPP20-Cross-Platform-Template CPP20-Cross-Platform-Template Public template

    A template for a cross-platform C++20 project including CMake, unit-testing with Catch, cross-platform CI with Travis-CI/Github Actions and cross-platform release builds using Github Actions.

    CMake 16 2

  2. arby arby Public

    Arbitrary precision arithmetic in C++, even at compile-time

    C++ 8 1

  3. unmoving unmoving Public

    More convenient fixed-point arithmetic for the Sony PlayStation

    C++ 5

  4. dengr dengr Public

    Disc ENGRaver for Compact Discs

    C++ 4

  5. pid pid Public

    A fairly minimal PID controller implementation in C. Structured as an Arduino library but can build standalone.

    C 157 69

  6. libsxbp libsxbp Public

    Experimental generation of 2D spiralling lines based on input binary data - Library

    C 6 1