I’ve always been a big fan of open source, and always try and contribute where I can. In addition over the years I have created multiple small projects that I give back to the community. Here are the ones I have on GitHub:
libcec-daemon – c++ libcec uinput
A Linux daemon for connecting libcec to uinput. That is, using your TV to control your PC over HDMI!
threadnetperf – c epoll
A highly customisable high performance multi-threaded network benchmarking tool. This tool was able to max out 20Gbit/s of bandwidth using commodity multi-core hardware. This supported research that existing benchmarking tools were unable to.
Draws simple SVG sequence diagrams from textual representation of the diagram.
handy-tools – python
A collection of helpful cli tools written in python. Create histograms from raw data, create heatmaps of performance, or monitor applications with ease.
protoc-gen-php – c++ protobuf php
A PHP Protocol Buffer Generator Plugin for protoc.
ByteTorrent – c++
A pure C++ implementation of the BitTorrent protocol. This was a project I wrote 11 years ago, and was used by atleast one complete BitTorrent client.
ndsfs – c fuse
A FUSE application to mount Nintendo DS roms,
us-census-tools – php
A collection of scripts I’ve written to handle US Census data. For example, importing the American Community Survey (ACS) data into various databases, or converting the Census TIGER/Line® Shapefiles so they can easily be displayed on maps.
jPsyScript – java objective-C
A java implementation of PsyScript a simple programming languge for psychologists to run experiments. The original version was written in Objective-C, and I reimplementation in Java so it was portable, and could be run from within a webpage.
As well as creating projects, I have made contributions to at least the following projects: