Last year my resolution was to complete something every month. I liked the sound of this resolution because I have a heap of random projects I wanted to get done, and hopefully this would finally see an end to some of them...

How did I do?

Well it started off very well. It started to get really tricky around May when I got married, which I have kindly counted as "finishing something" for that month, since I was largely sorting out food and in the Caribbean honeymoon-ing. By the end of the year I just gave up - I'm the Lead Programmer on Phantom: Covert Ops, which was supposed to be released at the end of 2019, so I was somewhat working my butt off for the last few months and wasn't really in the mood for doing anything in my spare time.

January 2019

The arcade stick.

This has been floating around my hobby room for years now. I had all the components, I just needed to wire it all up and get a raspberry pi hooked into it. In the end I ended up painting it with whiteboard paint, the idea being I can scribble things on the side later.

I'm pretty happy with how this turned out. I plan to revisit this one day and add a proper socket plate on the back (so there isn't a random wire coming out). It plays lots of emulators now and sits under my TV should I feel the urge for some old-school gaming.

February 2019

Wedding Website

For my upcoming wedding I needed a way to handle all my guest RSVPs and menu choices. I looked around at some services and wasn't very happy with the options, so I decided to make one myself. I had already started the previous year, but in February I knew it had to be completely finished.

Features:

  • Invite Code protected site
  • Website customised to each invited guest once code entered (sesson stored in cookie for up to a year to avoid re-entering code)
  • Can review menu choices and update dietary requirements
  • Can leave us a note when RSVP'ing
  • All backed up and controlled with a small MySQL database
  • Connected to a live Discord channel where each change is noted so my wife and I get alerts when people say something
  • A photo gallery of our official photos and any user-submitted (verified) photos
  • Reverse-engineered Spotify to add a real-time jukebox to the website so guests could see the currently playing song and modify the upcoming playlist (default Spotify interface replaces entire current queue with your newly selected song, so this would not do) - I may release the code for this at some point, but I have no interest in supporting this as it was only designed for my wedding day!

March 2019

Lego Rollercoaster

Not so much a project, but it took me two days to finish.

Probably one of my favourite things I've ever owned. I've always wanted a functional model theme park.

Video of me building it.

April 2019

Lots of Wedding Prep

I'm sort of cheating this month and combining April and May together since it took so much effort...

May 2019

Get Married

I let myself off this month. I did a heck of a lot of work for this. I printed custom fabrics for the bunting, reverse engineered Spotify for my jukebox, spent weeks writing my speech, built Lego table heads, and was up all night setting up the reception the night before.

I had a glorious time in the Caribbean. My first non-city/active holiday where I just relaxed. It was quite eye-opening how much I am usually doing on my vacations, and I loved just slowing down for a few weeks.

June 2019

Themeparks 5.0

This was the new version of my personal project, themeparks, a NodeJS library to fetch theme park ride wait times for various theme parks around the world. Version 5.0 was largely rewritten for modern JavaScript syntax, better caching, and support for Walt Disney World's new API.

I put this project off for well over a year. Implementing Disney's new API required building a JavaScript client for a proprietary database sync protocol. Once the API switched over to the new version, I had to work very quickly to finish off 5.0! I discovered a surprising number of apps/websites were using my library and suddenly stopped working until I could roll out 5.0 safely.

July 2019

Half way there!... Sorted out my will.

Very adult of me. Been putting it off for ages.

August 2019

Redone my bathroom. Been gradually rebuilding rooms of my house, this was a big one!

These are rapidly become less "complete a project", and more "do boring adult things that I will use to cross off the thing I did this month"...

September - December 2019

Aaaaand, I gave up.

I was focused on shipping Phantom: Covert Ops by the end of the year. It has ultimately been extended into 2020, so that was an unfortunate use of pushing myself. Didn't really feel like doing project work in the evenings after spending all day working to ship Phantom.

In December I did finish Advent Of Code 2019, which was a huge amount of fun! I am giving myself half a point in December, since some of that was really hard!

Summary

Good start to the year! Ultimately fell apart completely and was coming up with half-projects only a few months in. My pile of unfinished projects will remain and grow even larger until the end of time!

In 2020 I have decided on a much more attainable goal which is more easily spread across the year. So hopefully next year will be more successful!