A list of my previous side projects and framework experiments. I use Git for all my projects.

Lawn Bowls Tournament iOS App

iOS Bowls App Icon

Lawn Bowls Tournament iOS App

I built a native app for the tournament list I provide online. The purpose was to be an offline copy of all events easily filtered and easily updated. It's also possible to email, text, or add the event to your calendar.

I also built a REST API for getting updates to the list. The API validates the request based off an app key and then returns JSON data that the app injects or deletes from Core Data.

More details

Reddit Image Browser

A simple app to browse subreddit images with ease. Enter the subreddit in the url and it will load images it finds on that subreddit. You can move between images with the left and right arrow keys and it will load more as you get close to the end. There is also options to scale images and quick save the current image.

It's built using jQuery Ajax calls and HTML5 so it's lightweight and scales for mobile users. Images are lazy loaded as you scroll to help with bandwidth and memory constrainst of mobile devices.

More details - reddit.mikemcnorton.ca

Hangman Game

Hangman web app

Hangman Game

A simple HTML5 Hangman game, you can play random words or send your own words to friends. It will store your statistics with HTML5 local storage.

It's built with a combination of HTML5, JavaScript, CSS, PHP, SQL, and JQuery. The PHP will insert random words if it is not a custom challenge and the rest is handled client side. Getting new words is handled by a PHP API.


Lawn Bowls Tournament Listing

bowls.mikemcnorton.ca screen shot

Lawn Bowls Tournament Listing

I created a listing of lawn bowling tournaments for easy browsing. I made this to make it easier to find tournaments on days I know I'm available, and to find a specific tournament by description or club.

The site is driven by PHP, MySql, and jQuery Datatables. The PHP caches the MySql results to prevent excessive duplicate queries if viewed multiple times a day.


Browser Request Details Page

Browser Request Details

Browser Request Details Page

I wrote a simple page to give information about the request sent by the browser. It will display the user's IP address, user agent, do not track status, and the raw HTTP headers.

This came from a defect at work related to the user agent string in newer browsers. It made me want to see what each browser version was sending. Since the user agent isn't exactly worthy of it's own page I added the other items.


HTTP Response Code API

A simple API for returning specified HTTP Response Codes for testing how your app handles them.


Kitchener Lawn Bowling Club Website

Kitbowls.com Screen shot

Kitchener Lawn Bowling Club Website

I created this website for the Kitchener Lawn Bowling Club in 2007 to help the club increase its exposure, to increase membership and to provide members with easier access to information.

The website started off as HTML and was later transitioned to a mix of PHP and HTML5. I built the image galleries with some JavaScript and CSS, which allowed it to be lightweight and still preload images. I added a list of Ontario tournaments to the site using jQuery and the DataTables plugin in 2012.

Kitbowls.com - 2013 Archive

C++ Poker Hand Comparison

I wrote a program to take in two five card poker hands and to print out the winner. The code creates hand objects that will determine the value and type of that hand (3 of a kind, etc). I also do checks to make sure input is valid and no duplicate cards are entered.

The entire code is unit tested using the UnitTest++ Framework. This makes it really easy for writing unit tests and utilizing the results in build scripts. This was written in June, 2013.

Repository: Poker Hand Comparison

Android Twitter App

For a class project, we were instructed to build an app to interact with an open source alternate to Twitter. The app interacted with a provided API to create, view, reply and repost events on the service. Each item created was an event with a date associated with it. The app listed events much like a feed of tweets, but was sorted by the day the event happens and not the most recent post. When creating events, users would be given a date and time selector along side the description.

Users had to login to the service through the app with valid credentials. Each post was validated prior to sending to the service which would reject malformed events. The service had a limit on it to prevent excessive posting that the app had to handle gracefully.

The app was built from the ground up and judged primarily on it functioning with the live service and the design and usability. The same app was also built as a Java Swing project to run on desktops judged separately.

This project was completed in 2011 and the service it requires to operate has been shut down.