Projects

Physical

Folding Rings - My masters project. These fold from a bundle into a square or rectangle. Crucially the mechanism has only one degree of freedom. I'm not sure there is a practical application though!

Magnetic Wooden Knife Rack - Much nicer than metal ones!

Cider Press - Mmmm cider! (That's hard cider to you Americans!)

Etched Glasses - Acid-etched glasses. These are made by using vinyl as a mask for glass-etching cream. I have shot a video tutorial explaining how to make these, but have yet to finish edit it.

Picture Rail Shelves - Shelves that hang from your picture rail! Laser-cut MDF. Really just a proof of concept. They are not very strong. You don't have a picture rail? Heathen!

Unpickable Lock - A design for a totally unpickable lock! (Work in progress.)

Software

Android Apps - I've written some Android apps, modified others. Here they are.

Oddsocks - A useful and easy to use password-protected SOCKS5 proxy. Scroll down to the readme on github for more information.

Robocut - Linux/Mac software for cutting SVG files on a Graphtec Craft Robo 2 (or possibly 3).

Eve - An sslstrip-like MitM app for Android.

WebMS - The software that runs this site. Allows simple dynamic markdown-based page editing.

Midlets - Apps for dumbphones I wrote years ago, including a rather nice offline map of London, and a tube map. These are all pretty obsolete, unless you refuse to buy a smart-phone for some weird reason.

Beattrack - Automatic beat detection. This was intended to be an editor for DDR/Stepmania step files based on live (variable BPM) music. Unfinished though.

Mapview - For viewing Ordnance Survey MasterMap GML files and exporting high quality PDFs.

PDFSlice - A program for cropping PDFs.

Augmented Reality Ultrasound - Sounds cooler than it is!

HTML5 Canvas Slippy Map - Slippy map (like Google Maps) implemented with the HTML5 <canvas> element.

HTML5 Canvas Aliasing Test - It can be tricky to get a <canvas> that doesn't have annoying aliasing issues. These are some tests and details on the problem.

libsmbmm - C++ wrapper around libsmbclient. I used this and libsqlmm to create an amazing SMB search engine that was awesome at university. Some people rewrote it in PHP after I left because they were not able to handle its awesomeness.

libsqlmm - A C++ library that allows you to use several (currently MySQL and PostgreSQL) databases without changing code.

Squares - A native OpenGL copy of the flash game Squares2.

How-tos

Speaker Polarity Test - A simple way to get the polarity of your speakers right.

Read android web browser passwords

Tomato - How to install Tomato on an Asus RT-N16 router from Linux.

Misc

Bibtex Style for Journal of Applied Physics