Portfolio
All of the projects I have so far worked on have been personal ones, whose purpose has been to further my ability and learn new technologies rather than being intended for serious use by others. For this reason they are as yet unfinished (university is my main priority).
ZoofChat
A client side application for connecting with Facebook chat; ZoofChat is written in C# using the GIMP toolkit and the Mono runtime, with plans to create a Windows specific version using WPF. ZoofChat was created as I wished to have a way to communicate with friends via Facebook using the XMPP chat protocol without the need of a browser window being open. Generic XMPP clients capable of connecting to Facebook are available, though I thought them to be too cumbersome for my simplistic personal needs.
Skills learnt:
- GUI programming using Gtk.
- The XMPP protocol.
- LINQ, which was used to manage and query lists of online users.
ZoofOS
A basic work-in-progress “operating system” written in C and x86 assembly. Whilst still lacking functionality such as memory management, processing and indeed anything even remotely useful, it has so far been excellent in allowing me to understand the internals of an x86 based CPU and improving skills such as:
- Differences between real mode, protected mode, etc.
- Catching CPU exceptions, handling both hardware and software interrupts, as well as writing interrupt routines and the IDT.
- Basic x86 assembly (before the project I only had knowledge of z80 assembler).
- Makefiles and linking object files.
- Writing text mode VGA drivers and a keyboard driver.
- Interacting with other devices via IO ports.
Even though ZoofOS has been influenced heavily by resources such as OSDev.com, I believe the project has furthered my skill greatly, and will hopefully continue to do so.
ZZ80E / ZSMSE
A Z80 and Sega Master System emulator written originally in C# and on which several commercial SMS games were fully playable, though with no sound support. Rather than trying to perfect the emulator, I instead chose to first re-write it in C, as it was a language with which I had only had brief exposure to and wanted to learn. This new version is still in its infancy.
Skills developed (in both the original and the C port):
- Knowledge of the Z80 CPU, general CPU theory and of emulation in general.
- How to not waste valuable CPU cycles.
- Debugging complex and hard to trace problems.
Others (long forgotten)
phpGrr! – A news portal add on for the popular forum software phpBB.
CDZoof – A C# WPF application for ripping audio CDs to MP3.
Matrix Calculator – Silverlight application for Matrix arithmetic.