Technology

The primary focus of what I do is around developing software. I've done everything in the whole process from identifying specifications through development, deployment, and ultimately maintenance/support. This section outlines some of my programming work.

Teaching

I currently teach programming courses (part-time) for the University of Calgary's Computing & Information Systems area of the Continuing Education faculty. My focus is on the C and C++ languages, though I have also done courses in Java, Computational Theory, Digital Circuitry, and UNIX/Linux.

My current courses are:

One of the resources I typically provide my students is a CD filled with free and/or open source software they can use to develop software (i.e. do their assignments) with. This being the internet, I probably don't need to host an ISO for that, so here are links to a few of the tools we have used in my classes:

Programming Projects

As a software developer, and one that enjoys coding for fun, I've tinkered in a lot of projects on my own. Here are just a few examples of notable work I've done.

Timesheet System

My first piece of commercial work, this was developed from the ground up as a replacement for an existing timesheet data management system in use at the local McDonald's head office. Working with the clients, I designed the system to integrate with their existing HR systems, while leaving it modular enough for future enhancement. It has been in use since 2000 by the Calgary Head Office as well as at every McDonald's restaurant they manage in the greater Calgary area.

This software was developed under a proprietary license and as such is not freely available.

For technical support issues, please fill out the contact form on the About page.

GalCon to HTML Converter

For the game Galactic Control (outlined in the Gaming section), I've written a small utility program that will convert the status updates the players get from the game controller into an HTML-based map. It was originally written in embarrassingly ugly C, but has since been rewritten in embarrassingly ugly C++.

To give you an idea of what that looks like, here is an example of the results players get compared to the output generated by gc2html:

[ GC Status File | HTML Output ]

Latest updates… (version 0.3.4)

  • Feature: Added very rudimentary support for the tech research lists
  • Bugfix: Allow for 'destroyed' line in ship listings
  • Bugfix: Sector values were repeated in sectors with multiple resource ships owned by the same race

While there is much that could be done with it, these are a few of the items on my to-do list…

  • Preserve map history from previous turns (e.g. for sector values)
  • Switch to CSS for presentation to allow more user customizations
  • Refactor some of the code more coherently (e.g. processing the status file)
  • Improve support for the tech research lists

[ Readme File | Download ]

Network Battle Tetris

This was a final assignment from the networking course (CPSC 441). The assignment was basically to develop a network-playable game in Java (I'm sure there were more specs than that, but that was the main point). My group chose to implement a Tetris variant that emulated the 2-player competetive game that was popular on the original Nintendo Gameboy. You can take a look at the readme file for all the gory details.

[ Readme File | Download Java Source Code | Download Java Class Files ]

Code Snippets

Here are a few bits and pieces of code you might find useful. These are typically little functions that I've found convenient and reuse often. I don't think there's anything earth-shattering about any of this code, so I freely release it as open source under the GPL for anyone to use.

[ ... ]

© 2007-2010 blargmedia inc. Suffusion WordPress theme by Sayontan Sinha