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 licence and so was undistributable.
The next thing was 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 places like.
I’ll let you on a secret, I have written some non-free or proprietary software. You’ll never hear about it on this page though. OK, onto the list.
##PackeTwin Device Driver
I finally got around to writing a new 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.
[JFFNMS](http://www.jffnms.org/) is an open source Network Management System (NMS). I initially contributed
the documentation and some enhancements to that project but I am now the primary developer.
##AX.25 Tools and Libaries
AX.25 is a network protocol used by amateur radio operators for letting their computers talk to each other. These three packages; [ax25-tools, ax25-apps and libax25](http://ax25.sourceforge.net/) 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.
##GHU – Gnome Hamradio Utilities
[GHU](http://ghu.sourceforge.net/) are essentially the ax25-apps (see above) that have been modified to use the Gnome GUI. They do the same thing but are prettier.
[procps](http://procps.sourceforge.net/) is an essential package that almost every Unix system has (or its
equivalent). The package includes ps, top, free, uptime and w. I’m the Debian maintainer and have contributed patches, Albert is the main developer in the past, but there has been a [procps fork](http://gitorious.org/procps) which I am part of.
[PSmisc](http://psmisc.sourceforge.net) 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 look after it.
[RSPFd](http://rspf.sourceforge.net/) 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
[Gjay](http://gjay.sourceforge.net/) 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.