Outside of work hours I like to keep myself busy with little projects here and there. Here’s what I’ve developed so far.
An incremental game written in VueJS 2 and VueX 2. I got an itch to make an incremental after playing Egg, Inc. and spent a weekend putting it together.
I wrote a custom binary file parser for the Rocket League replay format and then created a database and analysis tool to store all of the information.
While building this website I wanted a method of converting HTML-based blog articles which I had previously authored into the Markdown format used here. This is a very simple tool which uses PhantomJS to read the page, BeautifulSoup to parse the HTML and html2text to convert the HTML to Markdown. I made use of a very simplistic method of finding the article container element - simply looking for the element with the most <p>
tags!
We use Slack at Onespacemedia, it’s awesome, it’s changed the way we communicate and over time we’ve extended its functionality with various slash commands. Originally these slash commands ran on a small server in my house, but I realised that they would probably interest other Slack users - so I span them out into Slack Slash Commands as a Service. What’s interesting about SSCaaS is that it’s written in Go, even though the original slash commands were Python functions running under Flask.
A deceptively simple game - you’re given some consonants and you simply have to add vowels to create words. This is mostly a front-end project, with most of the logic written in Javascript. The majority of the application is character binds on the main input on the site with different character codes performing different actions (such as starting a new game, getting hints etc).
A chain of events on Facebook lead to Bowler for Ebola coming into existence. The original idea was for people to wear a bowler hat, take a photo and post it on Facebook as a way of raising awareness of the Ebola epidemic in Africa. I decided to take it a step further and build a website which, using facial recognition, would detect faces in uploaded photos and place a bowler hat on their head. After a couple of hours of playing with OpenCV I managed to get it working with a reasonable success rate.
This Chrome extension was built to scratch a personal itch - I wanted to be able to see how good the films currently playing at Cineworld were, based on Rotten Tomato ratings. The extension makes use of the Rotten Tomatos API to pull in the ratings and displays them inline on the page, next to the film titles.
Originally a Chrome extension for users of the Bootstrap framework, I forked the repository and made it work with Zurb’s Foundation framework. It’s a simple extension which overlays the Foundation grid on top of the page you’re viewing, making use of the column classes which exist on the page.
Essentially just an anagram solver, I originally made this project to make playing Countdown on my phone a little easier, but ended up writing full OCR capabilities to read the tiles from the game directly, solve it and present the answers. It has a few different modes of operation, including fully automated whereby the consonant and vowel piles are generated by getting the frequency of letter usages across a standard English dictionary, letter picked and then solved.