Archived Projects

These are some of the older projects that I’ve worked on. Some of these are from University, some never really made it out of the R&D phase, and others were just neat little experiments. None of these projects are currently under active development.

Hash Verifier
Description: A graphical utility that allows a user to generate hashes of their files. Useful for checking if a download has been corrupted.

Features:

  • Drag & drop files from your computer right into the application!
  • Supports many different one-way compression algorithms including MD2, MD5, SHA1, SHA256, SHA384, and SHA512.
  • Copies the generated hash to your clipboard with the push of a button!
  • Automatically verifies your generated hash against one you provide and displays the result.
Posts:

Objective-C IDE
Description: An integrated development environment for the creation of Objective-C programs on the Windows, Linux & Mac platforms.

Features:

  • Syntax highlighting.
  • Code auto-completion/suggestions.
  • Simple program compilation at the click of a button.
Posts:

Wildchild
Description: Wildchild was a media player for Linux with two goals in mind: cut the fat and refine the features. Rather than do everything in an average way, the goal of the project is to excel at several core features while being lean on system resources.

This project was written in a combination of C and Objective-C using the GTK+ and GStreamer libraries. For interface design Glade was used.


Keyfinder
Description: Keyfinder was a fourth year (CP476: Internet Computing) class project created by Phil Downey, Jonathan Fritz and myself. It was a simple example of how to make use of distributed resources over the Internet. The program takes in some text and encrypts it with RC4 using a randomly generated key of a specified size, and stores the ciphertext alongside the plaintext in the database. It then splits up the key range into manageable chunk sizes which are distributed to both dedicated hardware as well as donated peer-resources. This greatly reduces the workload and allows the key to be found by comparing the stored ciphertext to the ciphertexts generated with each key in the key range.

The website itself was written in PHP using MySQL as the database backend and AJAX for real-time status updates. The encryption was all done in Java, in both a compiled Java program (for the dedicated hardware ‘bots’) and applet (for the donated peer-resources) forms.


LORIS Redesign
Description: LORIS is the name of the course management system that students at Wilfrid Laurier University use to view their marks, print off tax forms, register, change and drop courses, etc. The existing system is clunky and a constant source of complaints for the students. I had the privilege to be a part of a user interface directed studies course (CP495: User Interface Design) in which we analyzed LORIS. For the final project we undertook the task of redesigning LORIS into something more user friendly, efficient, and effective. The end result was a complete transformation accompanied by pages of research and documentation.

The redesign of the website was meant purely as a prototype and was never actually going to be implemented. As such we opted to write it within Visual Studio to allow for rapid UI adjustments.

Screenshots:


Tank Destroyer Game
Description: Tank Destroyer was a simple two-player game written for a fourth year computer graphics (CP411: Computer Graphics) project. The players take turns adjusting their power (velocity) and the angle of their cannons before firing and trying to hit the other player. After each successful hit, and subsequent explosion, the game is reset and the players are positioned a random distance apart. The first player to reach five points wins.The game features:

  • A mix of 2D and 3D objects
  • 3D lighting
    • global ambient
    • spot lights
  • Game controlled camera dynamics
  • Effective design
    • Back face culling
    • Depth testing
    • Efficient animation
  • Various textures and methods
    • GL built in texture mapping
    • Four corner texture method

I apologize in advance for the horrible programmer art 😉

This project was written entirely in C++, using OpenGL and the GLUT libraries.

Screenshots: