Resume & Projects
My resume is available in the following formats:
Academic Projects
-
Mobile Database Cache Invalidation
During my final year while completing my degree in Computer Science at the University of Calgary, I took an advanced database course (Design and Implementation of Database Systems).For the semster project, we were to choose a topic from a variety of cutting-edge database research areas, understand it, and then try and come up with a way of improving on the research already done in that area.We chose the interesting topic of Mobile Database Systems; more specifically, we chose to focus on the emerging topic of Cache Invalidation in Mobile Database Environments. This topic deals with how to make sure that a database query on a mobile device (such as a Palm Pilot, or TabletPC) which runs a local copy of the database will return the same information as the same query performed on the main servers. One of the limitations of the wireless medium is the limited bandwidth available so limiting wireless traffic is important. Bottlenecks are inevitable if bandwidth checks are not implemented and efficiency is not considered.The papers we reviewed dealt with both active and passive cache invalidation schemas. We devised two improvements to the current techniques; one active and one passive. The time limitations for this course denied us the ability to implement both improvments, but we were able to provide a proof-of-concept for our improved active cache invalidation schema; Divide and Conquer Cache Validation using Hash Keys.The implementation was coded using Visual C# and Microsoft's .net platform.Downloads:
-
Video Store Kiosk
The goal of this project was to design a user-interface that would allow customers of a video store to easily search through inventory.We designed a fish-eye system to make it clear to the user of the system which video they had selected and how it compared to the rest of the inventory. How many videos were in the selected genre? What videos were directed by a particular director? These were some of the questions which our system was designed to answer with minimal effort on the part of the user.This project was developed using Visual Basic 6 which interfaced with an Access database.Downloads:
Professional Projects
-
Pason - Live Rig View
Live Rig View was an application developed by Pason Systems Inc to allow realtime access to rig data over the internet. This project allowed the DataHub near realtime data, and users via an LRV client realtime rig data. The interface that the users interacted with is very similar to the interface that the people on the rig would see.I worked on the datastream component of the LRV project. This was the software that ran on the rigs which sent in the realtime data. It was built using Sun's Java Messaging Service (JMS) and ran as a service on the Electronic Drilling Recorder's (EDR) rig server (TPC). This software was responsible for sending drilling data, memos, well information, toursheets and billing information.
-
Pason - Pason Gas Alarm
My work on the Pason Gas Alarm was two-fold; designing and implementing the GUI interface and developing the communication driver between the gas alarm hardware and the Electronic Drilling Recorder.The communication driver was written in C++. The driver on the EDR read in the gas alarms packets, interpreted them, and changed the state of the system.The user interface was programmed in Java using Swing. It was my first attempt to make the EDR a little more modern. The EDR had been plagued with uninteresting interfaces. I worked to make an interface that closely mimicked the actual physical interface but tried to add more information to the virtual interface. I believe it is a very intuitive system, which is easy to use.
-
Pason - Pason Mud Analyzer
I developed the user interface prototype and the communication driver for the Pason Mud Analyzer at Pason Systems Inc. The hardware was not considered production ready and was being revised when I finished this project. I was asked to have an interface that was attractive and easy to use which would display the useful features the product offered to potential customers.The communications driver was written in C++ and facilitated the recieving of mud reports from the Pason Mud Analyzer. The user interface was written in Java and displayed these reports to the user. At the time of completion, there was no standardized mud report form so a simple report was used.In addition to displaying the report, for a specific day, I also displayed a graph of the mud report data for a particular mud report property. This allowed the user to see trends in their mud report properties which would allow them to make more informed decisions going forward. The user could see a graph of the current days readings, the last 3 days worth of readings and the entire wells readings.
Personal Projects
-
Picture Gallery
This was my first attempt at a library which I had planned to use throughout my old website. The neat thing about it, was that you could just upload your pictures to any directory regardless of file-type and it would automatically and dynamically create required thumbnails and preview pictures. It would also create the HTML source dynamically based on set properties in the constructor.This project is very out-dated, and really not that useful anymore. It was built using tables rather than CSS layout, so it was a bit bandwidth intensive over large numbers of pictures. It was a noble first attempt at useful php programming.This project was created using php and ImageMagick.Downloads:




















