SMALE - Small Machine Language Emulator (Java/swing)
As part of a university project I had to create a program into
which could be written programs in a small machine language (basic RISC assembler).
The programs then could be run or stepped through, with output visibly displayed.
It was pretty much an emulator for a RISC architecture. The program was written in an
object oriented way allowing new instruction classes to be dropped in without any model re-code.
A model:delegate structure was followed, so that the GUI could be removed, or replaced with any
other delegate without re-writing the model.
XMLCompress - XML Compression Utility utilising DTD's (Java/swing)
This was another University project, even more complicated than SMALE. The task was to
create a compression algorithm that took a DTD and conforming XML file, and then compressed
the XML file based upon the DTD rules. This allowed far greater compression as the structure
is constrained by the DTD and can be mostly removed on the assumption that the decompression
process has access to the same DTD. The result was a program that compressed XML files smaller
than any alternative utility, though with only marginal improvement over a tool working in a similar
way using schemas. As with SMALE the model:delegate path was taken to remove dependancy on any
one interface.
Mozilla related efforts
Since early 2001 I have been involved with the
Mozilla web-browser
project as a volunteer contributor to the Quality Assurance triaging team. Due to my
interest in the wider possibilities that this project provides I have become involved
with two independent spin-off/plug-in projects.
Sherlock/Mycroft - Mozilla addon
The first is a as plugin writer and co-sitemaintainer for the
Sherlock
project which was renamed to
Mycroft. A Sherlock/Mycroft plugin is a file of xml which adds
a new search engine to Mozilla's search capability. They don't look like much, just a text
file, so here's a screenshot of the result.
Hermes - Mozilla addon
The second is as project leader for the
Hermes project which is a
project of my own conception to add web-mail access to the Mozilla side-bar.
The following screenshots show Hermes in the sidebar without a service selected, the list of
services available, and the third shot shows the next version of Hermes, nicknamed xHermes
showing a XUL interface and SMS and Bank login options available aswell as webmail services.
Gtinyfugue
The Gtinyfugue project was created to design a graphical front-end to the popular terminal
MU* client tinyfugue. Gtinyfugue requires the gnome2 libraries, and of course tinyfugue,
to be installed. The project uses GTK+ (with help from glade) to create the graphical interface,
and an embedded terminal widget (vte) in which to run the tinyfugue application. More work is
required in making the application into a fully-featured graphical MU* client, and development
occurs over at
sourceforge.
Effusion
BitTorrent is a distributed file
distribution protocol. Its purpose is to allow download sites with minimal bandwidth
to distribute files to many users by tapping into the upstream of downloaders and letting them
share parts of the file with each other. The benefit to small companies in providing downloads
via BitTorrent is immense, as shown with recent BitTorrent releases of the latest Red Hat and Mandrake
releases. My application takes advantage of bittorrent's useful protocol, and allows for multiple
transfers to be displayed within a single application window, while simultaneously allowing the user
to chat with friends on IRC within the same application. More information available
here. Below is a screenshot showing the transfers pane
with a single transfer in progress.
BTMaker - BitTorrent Generation Script
This shell/nautilus script is quite simple, it turns the selected file into torrent which can then be
shared with others. The script handles automatic updating of a webpage to take account
of the new torrent file. Below are screenshots of the script, using gdialog to request
input from the user. This script works as a shell script, or a nautilus script.
PHP Powered 'weblog
I wrote my own PHP powered
weblog
with management tools.