[ Home : Programs | libCVD | Hardware hacks | Publications | Teaching | TooN | Research ]



All programs here are licensed under the GNU General Public License unless otherwise specified.

This is divided broadly in to two sections, doodles and projects. Doodles are small programs or scripts which do something that may or may not be interesting or useful. The projects are self contained (collections of) program(s) which do a specific useful task (hopefully). Reasonably complete things (generally non-doodles) can be found in tar.gz format and as a source tree in the download directory.


This is a program used to allow you to mount a Nokia phone under Linux 2.6. It uses the Gnokii library to interface with the phone and the kernel part of Coda to interface with the kernel. The code for this is now available from the gnokii project via anonymous CVS.


This program makes concurrent execution of batch proesses in shell scripts easy.

Autoconf tutorial

I recently learned how to use Autoconf for libCVD. This tutorial comes from my experience of using it.


This is a script to convert EPS files to ARTK marker files: pattern files and printable EPS files with the required thick black border. This script has the following requirements (in addition to core UNIX utilities):


eps_to_artk file.eps
This will produce file.marker.eps (print this to get the ARTK marker), file.pat (the ARTK pattern file), file.marker.opt.eps (print this to get the spatially quantized ARTK marker) and file.opt.pat (the ARTK pattern for the spatially quantized marker).
Download: eps_to_artk

Sed Hacking

I like sed primarily for the reason that it is the only Turing-complete but non general purpose language that is widely spread, i.e., you can do anything in it, but it might not be obvious even for common tasks (like multiplication, for instance). Sed is actually very useful, but the more interesting a program, the less its use. I tend to concentrate on the interesting ones.

Floating point templates in C++

One occasional complaint of the C++ template mechanism is that it does not support floating point arithmetic (there are good reasons for this). However, since the template mechanism is essentially a Turing-complete functional language, you can, of course implement floating point arithmetic yourself. Or, you can use my implementation.


I think the idea of a completely programmable printer is really cool. And useful. In fact, until quite recently my printer had a faster processor than my main computer.

X11 programs

Love it or hate it (programming in it can tend to make one hate it), X is pretty common. Since this is the case, I have endeavored to provide some programs that will allow the user to effectively and efficiently waste time using it. As an alternative view, these programs act as an ad-hoc tutorial on a certain specific feature of the X11 protocol.

Numerical Disasters in C

This is a parody on the popular book of a similar name. Submissions are welcome.

Updated March 28th 2013, 11:35