Open Source and Free Software

Recent Projects

In 2009, Troy wrote the Seqretary calendar software for the Maemo operating system. More reccently he has contributed to LibreOffice, especially in areas relevant to lawyers.

After switching to Linux in 2003 Troy contributed to a number of open source projects, including WINE - the software that runs Windows applications under Linux, Kino (a small contribution to make it work with the Advanced Linux Sound Architecture), the QuickCam VC driver for Linux, has identified and provided a fix for a bug in the Tulip ethernet drivers for Linux, and has produced a SANE backend for Hewlett-Packard ScanJet 3500 series scanners.

He has also designed and implemented a new IPC mechanism called lockboxes that provides for secure sharing of data and file descriptors without requiring the sharing processes to rendezvouz to exchange the data or open file descriptors.

Older Projects

GDB, the GNU Debugger - added support for debugging using Borland TDS (Turbo Debugger Symbols).

These modifications have been submitted to the organisations maintaining the various packages that are involved, however they have not been integrated, and no reason has been given for this. If you need this, please let the maintainers of those packages know via their mailings lists so they will be aware that this is something people want. The messages to the mailing list where the patches were submitted are here and here. There is a third patch that is necessary (the patch to GDB proper), however this patch cannot be submitted until the other two have been integrated.

Dstrans – the data structure translator, is a SourceForge project in which he produced a small utility that generates platform independent code to read and write binary data structures based on a binary file description format. The major reason for doing this is that writing such things manually is a tedious and error-prone process, and this is entirely avoided by the use of dstrans.

IRC II - an IRC client, and at the time, the most popular IRC client. He maintained this software for just over a year, introducing numerous new features which became standards for all IRC clients. The best known of these features is the DCC protocol, but there were many other features, and many more significant ones. IRC II now lives on as the basis for other IRC clients, including EPIC (The enhanced programmable ircII client) and BitchX.

Incidentally, to settle this once and for all, DCC stands for "Direct Client Connection".

dbCGI is a portable interface between databases and web servers, that works by allowing SQL to be inserted inline in HTML and the output to be formatted. It's possible to write entire transaction processing applications in dbCGI without ever writing a loop or any other procedural code.

Obsolete Projects

Added Apollo DST (Debugging Symbol Tables) support to GCC, the GNU C Compiler, GAS, the GNU Assembler, and GDB, the GNU Debugger. DST was a proprietary and undocumented debugging format used on the now obsolete Apollo Domain series of workstations, which were mostly based on the Motorolla 68000 series of CPUs, although they were also available in a version that used a RISC architecture called PRISM.

In 1994, when Netscape was just starting to become popular and many people were still stuck with command line only interfaces to UNIX systems, he wrote TwinSock, which allowed people who were using Windows to simulate a PPP connection via command line access to a UNIX system. This should now be obsolete because almost everybody should now have PPP access, or even better, xDSL or cable.

TKERN was an environment designed for Windows 3.1 to facilitate porting of UNIX applications to Windows. Since TKERN was 16 bit only the advent of Windows 95 made it partially obsolete, and Cygwin made it completely obsolete. He ported numerous GNU utilities to TKERN at the time.

Gateway was a terminal program for the Apple II series. Terminal programs are mostly obsolete these days, and the Apple II series is entirely obsolete,although there are some cool emulators out there that he occasionally uses to run some old Apple II games. The only problem is that on today's systems, the emulators run way too fast (The Apple II series did use a 1MHz CPU, after all).

He also wrote a number of other things on the Apple II that he gave away for free.