RSS feed

Github Activity

My Portfolio

A brief overview of some of my past work.

Rather than using a standard framework like JQuery or Dojo all the JavaScript effects seen on this website are powered by JSnip my own little snippeting engine.
QA tool Comparsin View Logging an issue Site Overview


I developed the QA tool as part of an ongoing effort to try and streamline the process of upgrading Kent University departmental sites to use the new templating engine. The tool allows a user to quickly compare both the old and upgraded site pages side by side, logging any issues found against the page for review later by a developer. In order to speed up development the Limonaid micro-framework was used.

I think one of the most interesting aspects of the QA tool is that due to certain limitations, rather than using a as would be expected the tool instead makes use of the SharePoint's Lists API to replicate this functionality. As a result I built up a fairly complete Class to make it easy to add edit and remove rows from SharePoint Lists as well as to cache any results. The login system also links directly into the University LDAP system to authenticate users.

The Tech:

PHP (Limonaid micro framework), Javascript (JQuery, JQuery UI), SharePoint Lists API, LDAP

Space Game X - Lots of enimies Space Game X - Cutting it close Space Game X - Different ships
Play it now


I'd always wanted to try my hand at creating a simple 2D shooter but had never really found the time to have a proper crack at it before now. I opted to use JavaScript since it was both a language I'm pretty familiar with and has the bonus of creating something people can play without needing to install anything extra. Knowing nothing about creating games, let alone in JavaScript, this project proved to be an excellent learning experience. Aside from getting very handy with substantial amounts of DOM manipulation, I also spent a lot of time figuring out methods to load and unload background tiles, successfully detect object collision and generally make the game run without bring computers to a standstill.

The game is still in its very early stages and has limited browser support.

The Tech:

JavaScript (Canvas, HTML5, lots of DOM manipulation)

Languages Website with tagCloud Religion Methods with a Topic Scroller Full Page news Snippet
View the live Site


Along with a diverse team of Developers and Designers I help to maintain the Kent University website and the templating engine that allows the various departments to build their web presence. During my stay at the university I've developed a number of snippets that are used across the university website including the Full Page News snippet, Topic Scroller, TagCloud and many others.

In addition to creating and bugfixing snippets I've also commited a number of changes to the templating engine itself to make it easier for developers to create and maintain new snippets. These updates include a number of methods for parsing parameter tables and a more generual purpous resolve function for figureing out and correcting relative URLs accross the Kent websites.

The Tech:

PHP (Pantheon Engine), Javascript(JQuery), HTML, CSS

TheProfile - Profile Page
Checkout the source (GitHub) View the live Site


TheProfile was created as part of my final year project at Kent University; I worked in a team consisting of Dave, Mike, Jared and myself. With the project we aimed to create a mechanism whereby a user could consolidate the management of a multitude of online identities in to a single system.

My primary contributions to the project was the attachment of the OpenID server (based off clamshell) and theProfiles data synchronisation system. The synchronisation system being used to attempt to automatically synchronise the data pulled in from services such as Facebook, Twitter, Google and any attached OpenID accounts, and to then give the user the option to resolve conflicts where this data differed.

One of the most significant things about this project is that it was the first substantial project I'd undertaken using a PHP framework and thus proved to be a good learning experience both in getting more familiar with the MVC design patterns as well as getting to grips with the use of PHP frameworks in general.

The Tech:

PHP (CakePHP), Javascript (Dojo Framework), MySQL, OAuth, OpenID and the Facebook, Twitter and Google API's.

FindAClient - Search Screen


Find a Client was pretty much my pet project during my time at Thomson Reuters and the project I'd always check back on to improve and add features too whenever I was left with a little free time. The system's primary purpose was to enable users to easily search the client database and access all the necessary customer information at a glance.

The project was built in ColdFusion and powered by an MS-SQL database. The database was used to generate JSON objects which would then be interpreted using Dojo to build the search results and pages in a way that allowed much greater flexibility in display and interaction. In order to provide portal like functionality for the client data, I developed a number of widgets which could query a number of other internal tools for data on the same client and then quickly link the user directly to this when it was needed.

The Tech:

Cold Fusion, JavaScript (Dojo Framework), Ms-SQL

Thybag 5 - Index


Thybag 6 was the last version of my primary website to be up and running on the net. Unfortunately due to a string of web hosts dropping off the face of the earth one after another and the pressures from my university course I was unable to keep the site online. After finally finding a reliable web hosting solution I decided, since it had already been down so long I would take the time to totally redo and relaunch the website (which is still underway). For now the website is just home to a coming soon page and my JavaScript game (Space shooter X).

The site ran on a custom CMS heavily linked into the I.P.Board software which runs the forum. It provided tech news and a range of tutorials on PHP, Flash and JavaScript.

The Tech:

PHP (bespoke), Javascript, MySQL, I.P.Board 3.x

Error: Call to undefined function mysql_connect() in /home/thybag/ Stack trace: #0 /home/thybag/ ArdeDb->connect() #1 /home/thybag/ twatchConnect() #2 /home/thybag/ twatchLogRequest() #3 /home/thybag/ include('/home/thybag/us...') #4 {main}