Software Development

Java

TjMSN(Lib)

TjMSN was started in response to a lack of decent MSN Messenger clients for Linux, so I decided that I would write a client that was platform independent, so that I would run on both my desktop and laptop.

Technologies Employed:

  • Network programming
  • Swing Gui design
  • SAX XML parser
  • DTD design
  • Runtime class loading

JxNAP

JXNap is a distributed modular network monitoring system designed in such a way that it can be used for almost any purpose, from intruder detection to monitoring the usage of a website. The system is made up of 3 components, the node, the hub and the GUI.

Technologies Employed:

  • Libpcap
  • Libndis
  • Java Native Interfaces
  • SAX XML parser
  • Runtime class loading
  • DTD design
  • Java Management Extensions
  • Open Source Message Queue
  • Management Console 4 Java
  • Multicast networking
  • MySQL, Connector/J and Connector/MXJ
  • Management Console 4 Java custom dfashboards

jModuleLoader

jModuleLoader is a set of classes that are designed to make runtime code loading easier. Originally written to facilitate runtime code loading in a J2EE style application server, I separated the code from the original project for use in other projects, at the time TjMSN. jModuleLoader allows developers package application extenstions/plugins in a platform idependent manner which can be installed and loaded while the application is running.

Technologies Employed:

  • SAX XML parser
  • DTD design
  • Runtime class loading

Gui-bits

Gui-bits is a collection gui components that were separated from there original projects for reuse. Components include serveral splash screens, icon nodes for JTrees and JLists, and a positioning utility. It also includes the Nuvola icon set by David Vignoni.

Technologies Employed:

  • Swing Gui Design
  • Awt Rendering

Javnet

Javnet is an experimental peer to peer file sharing system.based on the classic client server model. Originally started for use on warwick university campus network the server only stores the addresses of clients on the network. Once a client is connected to the server it receives an initial list of clients on the network and then updates for new clients, clients can also report inactive clients for removal from the list. Clients are then responsable for connecting to peers and executing search and transfer functions. In the latest version the server also forms a central chat hub similar to an irc server.

Technologies Employed:

  • Swing Gui Design
  • UDP and TCP Network Programming
  • Server client development

PS2 DSM HDD Explorer Editor

This small project was originally written to modify the menu listing stored on a Playstation 2 harddisk drive. Burning a CD every time I wanted to install a 1-2Mb file onto the system seemed like a waste of money. Existing editors existed for windows and mac os but there are non available for linux. With the aid of this program it is possible to install software onto the playstation harddrive using an ftp connection to download the menu file edit it, then upload the new file and data.

Technologies Employed:

  • Swing Gui Design
  • Binay file IO

ejMarketer

ejMarketer is a advertising mailing list management application. The core of it is the jBoss application server and the MySQL database server. On top of this is sat a series of Data and Message Beans which handle the business logic of the application. The front end to the system is a desktop swing application which is responsible for list management, data import and export from Microsoft Excel spreadsheets, message editing and preview and initiating the message send process.

Technologies Employed:

  • Swing Gui Design
  • MySQL allong with Connector/J
  • JBoss application server
  • J2EE Message and Data bean development
  • Remote Method Invocation
  • JINI service discovery
  • HTML and plain text email transmition
  • Ekit integration (Howard Kistler's WYSIWYG HTML editing component)
  • Apache POI api's for microsoft office document access

jT3Sync

jT3Sync is a start on a cross platform sync server for a Palm Tungsten T3 based loosly around the design of the Palm Desktop software. This system is backed by a MySQL database for easy access to the data from other applications.

Technologies Employed:

  • Swing Gui design
  • jSyncManager intigration and bug fixing
  • MySQL and Connector/J
  • jUSB intigration

Serial Driver for ECG machine

This project was to write the data trasfer driver for a vetinary ECG machine. The project was prototyped in Java as it was quicker for me to get a working Java environment than set up a working c# environment. The code was later ported from Java to C# for integration with the rest of the project.

Technologies Employed:

  • RXTX serial port api
  • Java serial api
  • Java Native Interfaces
  • C#.Net Serial api

TjMOSML

TjMOSML is a graphical terminal application for interaction with the moscow ML runtime enviroment. Adding features such as command editing and command history to make the environment easier to use for developing a piece of coursework.

Technologies Employed:

  • System command execution control
  • Piped data IO
  • Swing Gui development

Workshop Manager

This application was written to reduce the amount of paperwork being produced in a small computer shop's workshop. It is a simple interface to a MySQL database, originally written in PHP and then rewritten in Java with a swing frontend for a reacher user interface.

Technologies Employed:

  • MySQL and Connector/J
  • Swing Gui development

Liff POS System

This application was developed as part of a group project in my second year. The task was to create a supermarket POS system in java using only core J2SE code and code that we had written our selves. The end result was a J2EE style application server with support for Statefull and Stateless session beans and Data beans. The second component was a XML backed database server accessable though RMI. The final component was the swing Gui that was designed to be used on 1024x768 touch screen terminals.

Technologies Employed:

  • XML Reading and Writing
  • Swing Gui development
  • Remote Method Invocation
  • Dynamic RMI interface publishing
  • Dynamic code loading and distribution
  • Printing
  • Touch screen Gui design
  • J2EE Style Application Server Design
  • Database Server Design
  • Custom Ant tast development

PHP

TomJudge.com Websites

All of the sites in the tomjudge.com domain apart from the bug tracker are backed by a php based templating engine, and data management backend.

Technologies Employed:

  • PHP
  • XHTML
  • CSS
  • MySQL

Caterham School Intranet

This project consisted of a sophisticated custom content management system for all departments of the school. It featured multipul user accounts and access levels, news system, custom data input system.

Technologies Employed:

  • PHP
  • HTML
  • CSS
  • MySQL

C/C++

txmms

Txmms is a very simple menu to output strings to a named pipe to control xmms. The ncurses menu allows selection of the command and shows the status of the output of the command in a message area.

Technologies Employed:

  • Ncurses Text Based Gui Design

SSH Secure File Owner Patch

While working at Mintel I wrote a small patch for OpenSSH that allows authorized key files to be owned by a user that could be specified as secure (rather than the usual user that is logging in and root being classed as secure). This is useful for systems where ssh access is only allowed by key and key access is controled by systems administrators.

Technologies Employed:

  • C
  • SSH Internals
  • UNIX/POSIX