Personal Projects:

Due to my interest in computer programming, I usually have one or more projects that I am working on at home.
Project: EDIPOST WYSIWYG Form Design Tool
Skills: IBM PC, Windows 3.1, MSVC++ 1.5, MFC

Currently, nearly all EDIPOST form development consists of hand coded PostScript. A number of form design tools were tried, but the PostScript output was always considered too inefficient for the high speed printers to achieve rated speed.

In late 1993, I decided that I would try to develop a Windows 3.1 hosted WYSIWYG form development tool in Microsoft Visual C++ 1.5 and MFC that could be used to produce PostScript suitable for EDIPOST jobs. The tool was developed to the stage where it could be used for limited form development internal to EDIPOST.

At this point I approached Australia Post management with a view to entering some type of commercial arrangement which would allow me to work on the tool fulltime. My timing was bad, as Australia Post had already decided to join International Data Post, and obtain all hybrid mail related software from them.

Project: Windows Internet Usenet Reader
Skills: IBM PC, Windows 3.1, MSVC++ 1.5, MFC, NNTP, WINSOCK

I have a fascination with Internet based software. Having tried a number of Windows based Usenet readers without finding one that I was happy with, I decided to write one of my own.

I decided to use an architecture that contained a multi-threaded interpreter (another fascination). All low level functionality would be coded in C++ (for speed) and presented as primitives to be scheduled by the high level interpreter. All high level functionality would then be implemented in the interpreted language. In theory, a complex and powerful newsreader could be developed which could be made to perform multiple background tasks.

Due to the ascendancy of the WWW, I lost interest in the project after implementing most of the NNTP protocol and halfway through implementing the interpreter.

Project: TCP/IP Client-Server Implementation Framework
Skills: IBM PC, Linux, TCP Sockets, GNU C++

This project was an attempt to encapsulate all of the functionality needed to implement a Unix based single threaded TCP/IP based multi-client server.

I completed the library to my satisfaction, but have not as yet used it for any significant software.

Project: ISP Cash Flow Simulator
Skills: IBM PC, Linux, Perl 5

In 1997 I entertained the idea of starting up my own small Internet Service Provider. To gain an understanding of how much money would be needed to setup the initial installation, I developed a Perl program which would report the daily cash flow based on a number of simulation variables.

With a friend, I approached a bank to obtain a loan for $30,000 to get things off the ground. It soon became apparent that without providing our houses as security, we were not going to get the money.

Project: ISP Management Software
Skills: IBM PC, Linux, Perl 5 CGI, HTML, C++, C

At the same time as we were waiting for the loan application, I developed some of the software that would be needed to run the ISP.

I developed a preliminary HTML registration form and associated CGI in Perl.

I developed a daemon in C++ that managed user accounting data. This was queried and updated from the registration CGI via a TCP protocol.

I developed a daemon to record and control user sessions. This program would keep track of all connections to the ISP. When the number of free modems dropped below a configurable threshold, users who had exceeded their maximum online quota would have their session terminated. This was written in C++ on Linux.

Project: Windows 3.1 Telnet Client
Skills: IBM PC, Windows 95, MSVC 1.5, Windows 3.1 SDK, C

Occasionally I use Windows 95 to telnet to a Linux machine. In my opinion, the telnet program provided by Microsoft has a nice simple user interface, but has too many emulation and functionality bugs to be useful. For this reason, I decided to develop my own telnet program in Windows 3.1 using C.

My goal was to duplicate the basic look and feel of the Microsoft program, but without all of functionality bugs. In addition, I wanted to provide ANSI color, xterm-like select and paste, and history scroll back.

This program has been completed, and has been released under the GPL. The source and binary are available here.

Project: Experimental Space Combat Game Strategic AI Engine
Skills: IBM PC, Windows 95, Linux, MSVC++ 5.0, MFC, Yacc

I am interested in computer games that involve empire building, especially in space. One of the things that has always let this type of game down (in my opinion) is the tactical space combat.

I recently had an idea for implementing a much better AI system for realtime tactical space combat. I have written a Windows based testbed program in C for my AI system.

At this point, I have a completely unoptimised program which allows each ship to run its own AI written in a high level object oriented interpreted language of my own devising. The program smoothly animates a 250 ship combat encounter on a Pentium 75 at 800 x 600 resolution. Implicit in the game engine is a Newtonian physics model on an effectively infinite combat arena.

I have reached the conclusion that the technique has merit.

Top of Résumé