Introduction
Since late 1994 I have been a Free Software programmer. Many people, if they have even heard of it, would also know it as the more common term Open Source software. There is a difference between the two that I care about.
Programs I have either written, maintained or submitted patches to sit on millions of computers around the world; which is pretty cool.
I use the term Free Software rather than Open Source because the freedom of software is more important than what it costs or whether or not the source code is available. Of course cost and code are important, but being allowed (or given the freedom) to do anything with software is more so. Others have put this argument better, if you want to know the difference between the two terms read FSF’s page on Open Source which discusses the two terms from the Free Software groups point of view.
I started writing software in late 1994. The first thing was a driver for a PackeTwin card for Linux which unfortunately had some Gracilis code with a dumb license and so was undistributable.
Current Software Projects
These are the software projects I’m currently working on, or were working on when I last updated this.
procps
procps is an essential package that almost every Unix system has (or its equivalent). The package includes ps, top, free, uptime and w.
Initially I was the Debian maintainer only, with Albert Calahan the main developer. After some time with no updates, procps was forked first onto Gitorious (remember that?) then to its current home of GitLab. That fork is basically the main implementation of procps now and has been for some years.
PSmisc
PSmisc is a small set of tools that read the /proc file-system on Linux and then do some process manipulation. Most people have heard of killall and fuser, which are from this package. Werner wrote it, I now have been looking after it for about 25 years.
dh-make
dh-make is a small tool to “Debianise” raw upstream packages. The idea being you download something like a tarball, extract it, and run dh-make. You then have a bunch of templates you can customise and you now have a way of making Debian (or Ubuntu etc) packages.
This program was a lot more complicated before all the great work JoeyH (and subsequently, others) put into debhelper. That effort alone has made maintaining Debian packages *way* easier.
I initially wrote this in perl, but changed it to python a few years back.
Historical Software Projects
This is the list of software projects I have worked on in roughly reverse chronological order. A lot of these are no longer used and most are unmaintained.
JFFNMS
JFFNMS was an open source Network Management System (NMS). I initially contributed the documentation and some enhancements to that project but eventually was one of the main developers.
Gjay
Gjay stands for GTK DJay. It is a program that analyzes mp3, ogg or flac files and determines the beats per minute (bpm) and the frequency spectrum. You can then use this information to make playlist to play in programs such as audacious.
AX.25 Tools and Libraries
AX.25 is a network protocol used by amateur radio operators for letting their computers talk to each other. The three packages (ax25-tools, ax25-apps and libax25) provide a set of tools and a library that helps to hide the scary stuff of the kernel workings from a programmer. The ax25 work is a joint effort but I was the “editor” of the packages. The current home of these utlities has had a sad history, but can to date be found at https://linux-ax25.in-berlin.de/wiki/Main_Page
GHU – Gnome Hamradio Utilities
GHU are essentially the ax25-apps (see above) that have been modified to use the Gnome GUI. They do the same thing but are prettier. I think it used Gtk2, so now you know its vintage!
RSPFd
RSPFd is a daemon that implements RSPF, a routing protocol similar to OSPF that has some features that make it work better over slow radio links. I wrote an implementation of RSPF called rspfd. I’m not sure how much it is currently used, but it is an interesting project and has some important lessons for other
wireless networks. This software was an important part of my undergraduate engineering thesis.
PackeTwin Device Driver
I finally got around to writing a new, releasable, device driver for the PackeTwin which was all GPL code and only based upon Donald Becker’s skeleton code, which means its based upon the same file pretty much every device driver for Linux used.
The driver was deprecated for a generic DMASCC driver, which is much better than mine because I never really understood the Z8530 that well. The pt driver appeared in the Linux kernel in 1.3.51 that was released in December 1995 but was around before then. It got removed from some version of the kernel later than 2.0.36.
axdigi
In packet hamradio, you can have a thing called a digipeater, which is a portmanteau of digital and repeater. This is a radio station that stores and forwards messages so that two stations that cannot hear each other go through a third one (the digipeater).
I wrote axdigi which was a userland deamon that turned a Linux box into a digipeater for hamradio operators. It was written to serve a need and also get experience in the Linux low-level raw sockets. This was all my code and so in 23 April 1995 I released my first Free Software package, axdigi (no version number but it would of been 0.01). If you want to see how I use to write code about 15 years ago you can still find it in random places.