Web Projects

Lemieux-Gi-Oh multiplayer card game – A real time, online, multiplayer card game with a lobby for 2 and 3 player game matchmaking. This project was meant to be an experiment where I try to allow people to play a trading card game online with each other, but I do not attempt to code all the sophisticated rules of the card game.  It’s goal is to provide the users with a “tabletop” online to play on, but leaves them to self moderate the game on their own.  The website uses php, jQuery, javascript, and a MySQL database to accomplish all its features.  (Only guaranteed to work in Chrome.) (July 5th, 2012)

Website Chat Room – This site allows people to sign in with a non-unique username and send messages to server written in php.  The server uses a MySQL database to store the messages, and clients use AJAX requests to fetch new messages and display them in the chat window. I tried tracking my hours on this project and it came out to around 6.5 hours in total.

Ice Puzzle Adventures – This is my sliding ice block puzzle game, complete with 8 levels. It uses HTML5 canvas and JavaScript to let you walk the character around the screen. The character must cover the buttons with the given ice blocks and then escape through the door.

iClicker Web App – This project was designed to emulate the iClicker device found in university classrooms. The quiz moderator is able to set up and display questions to others using the dashboard, and the “class” is able to vote on the current question using a web browser and visiting a special voting page. Answers are counted and the results are shown using a graph instantaneously.

Todo List – This is a todo list application that is mostly suited towards tasks that must be repeated on a daily bases.  It uses HTML5’s local storage API to store the users items, and keeps track of how times a task has been completed, whether it has been completed for the current day, and the longest streak with which the user has successfully completed an item consecutively.

School Grades Calculator website – This project aims to help students with keeping track of their overall grades and term performance as they receive assignment and midterm marks during the year.  It helps to track how the courses assign weightings to items and calculates the student’s current standing as well as projected marks for the final exam.  Note: this project is still being developed.

Dog Park Scene Creator – This website allows you to place a series of objects around a dogpark and stores your scene for you until the next time you come to the image editor.  This website uses html5 local storage and drag and drop features to accomplish it’s goal.  It was tested in the five most popular browsers however some versions of IE still have trouble. (March 10th, 2012)

Sharkbait Statistics Tracker – This site is no longer maintained, but was used to collect statistics about the users of the Shark Bait android application.  The application would send usage information to the server, and the data was then aggregated and send here to be viewed by people interested. (February 15th, 2012)

 Card Game – 31 – This was my first chance to try out the CSS3 transforms and animations.  It is a simple game from my childhood and can be played by two players over the internet.  (Only guaranteed to work in Chrome.) (June 20th, 2012)


Arduino Projects

Snowman Temperature Indicator – This project used a Snowman Christmas ornament with an LED inside and has the snowman shine with a colour somewhere between pure blue and pure red to help reflect the temperature forecast for their area.  The device attaches to your computer via USB and uses an internet connection to fetch statistics from the weather network.

Email Notifications Desk Gadget – This device can fit inside any desired object that will show the light from an LED, and connects via USB to a laptop to check the user’s gmail inbox and change colour based on whether it finds any unread messages.

Laser Tripwire – This project used a laser pointer and a photo resistor to detect when something (or SOMEONE!) obstructed the path of the light.  This would then activate a buzzer sound to alert the owner of the intrusion.

PubVision – This project was created by my team during a Facebook Hackathon event at the University of Waterloo, and uses Python, Web Cam APIs, Facebook APIs, and an Arduino circuit board.  The product is intended to be installed at bars or other venues where the patrons might want to take pictures of themselves or their group having fun, but don’t have a camera at the time.  The group can press the button on the side (causing the three LEDs to simulate a count down) and have their picture taken by a webcam onboard. The photo is then uploaded an album on the venue’s Facebook page, thus encouraging traffic when patrons visit their page to retrieve their photo.  Our device was fully operational and worked perfectly during the live demo presentations at the end. Sample photos and the Facebook page we used during testing can still be found here.

Software Projects

Tetris – I recreated this classic game in Grade 12 while adding a Lemming theme to all the screens, tiles and menus.  This game is fully polished and has a beautiful starting screen, background music, sound effects, high scores table, “losing game” animation, and increases in difficulty as the game continues. This was written using Visual Basic 6.0.

Network Battleship – This project was created for my Grade 12 Computer Science final project, and is written using Visual Basic 6.0 and a Microsoft Access database.  The game uses the database to have users log in, and then arrive in a game lobby with the other players.  They are able to send/receive invitations to start a game, and once assigned to a match proceed with placing their ships and then playing the traditional game of Battleship.  Once the game is over players are returned to the game lobby and their win/lose status is recorded.

Minesweeper – This recreates the classic game of Minesweeper using Visual Basic 6.0. Players are able to play on a 10×10 board (with 10 mines) and are timed as they try to complete the puzzle.

Kinect Projects – I have recently started playing around with my Kinect and the Kinect SDK from Microsoft. I am still learning from tutorials but have many designs for both simple and ambitious projects in the near future!

IRC bots  – These bots are written using an IRC network library for Java, and kept myself and my friends amused for countless hours as we developed bots to show character, attitude, intelligence, interact with each other, and even play location based games using IRC channels as the game world (Where in the IRC is Carmen Sandiego)  Personally I worked on a fun bot named Mario, who would wait for common phrases in the channel and provide witty, sassy, and often useless conversation with the speakers.  Shuttleboy was programmed with the company shuttle schedule in memory so he could inform usof when the next shuttle was about to leave the building. Our last project, which is currently in development, was an IRC Real Time Strategy game in which users command their bots like troops throughout the different channels.  There are separate bots for roles such as soldier, general, spy, etc. and each has a unique set of commands.  The channels act as the game world and are the battle grounds for when opposing bots detect each other in the same channel.

Github Account – Currently being used for Open Source development on the MediaWiki Wiktionary application for mobile devices.

Other Interests

POD90X – This is a podcast created by myself and two friends to track our progress though the grueling P90X fitness program from Beachbody. This program required a complete diet overhaul and at least an hour of working out every day for 90 days. This podcast is where we get to talk about our triumphs, complain about the hardships, and bond with each other and our listeners as we aim to do our best and bring it!

Fitness blog – This is my fitness/diet blog about my P90X progress and general fitness tips for others. It was created as a simple way for me to share what I am learning with others.

School Projects

Operating System – This was for our Operating Systems course (third year), and I worked in a team to design and implement several components of an operating system using C.  I personally worked on several low level issues such as process/thread creation, concurrency mechanisms (implementing locks/semaphores), memory management and paging policies, and file I/O.

Compiler – This was for my Fundamentals of Sequential Programs course (second year), and had us create an application to convert a simplified computer language into executable assembly code for a MIPS processor.  The project focused on details such as creating a parser, linker, loader, parameter passing, machine hardware dependencies, and compiler optimization.

Character Recognition Application – This was for my Developing Programming Principals course (first year), and had was design and create a program to examine digital pictures of written numbers and classify them to the closest recognized digit (0 through 9) that was on file.  It would first “learn” based on a series of pictures and their proper classifications, and then new images would be processed and a distance metric helped find the closest match on file. The classifier had an 83% classification accuracy when started with a series of 100 images to learn from.