Here are some of the random projects I've been toying around with in my spare time.
My implementation of the quadratic sieve, an algorithm used to factor very large numbers. I built this implementation over the course of about two years as an undergraduate research project. It includes all major optimizations, as well as some of my own. In particular, it allows the use of any number of large primes, with three large primes having been shown to be most efficient for factorizations of 360 bits and larger.
ANT Cycling Computer
An ANT based cycling computer for your PC. It collects data from various ANT wireless sensors and displays it in real time. Requires an ANT USB stick, and ANT wireless sensors. It is written in C++ and there are two versions included: one which runs nicely on linux, and one that runs slowly on windows or linux.
A C program that interacts with libraries in ffmpeg and produces an XML file containing metadata on the files video and auto streams. Very useful for interacting with ffmpeg from higher level languages without having to install plugins.
An application that assists in solving substitution ciphers by analyzing single and multi letter frequencies, and projecting the expected frequency of different letters and symbols.
Elliptic Curve Method
An optimized Java implementation of the Elliptic Curve Method factorization algorithm. This version uses two stages and Montgomery coordinates.
Celest - A Celestial View Simulator
An interactive skymap in which you can simulate the view of the stars, solar, and deep sky objects. Very helpful for navigating the night sky with a telescope by simulating your view with any configuration.