-
How and why the RuneScape Archive project scours old hard drives to preserve MMORPG history and restore lost media
Like a lot of people my age, I got really into RuneScape in the 2000s-2010s (maxed acc!), and nostalgia for it is why I originally got into Android development. Unfortunately, Jagex did not keep backups until 2012, so all versions of the game before then are lost… except for old caches on player’s computers! The RuneScape Archive project helps coordinate the recovery effort, and you can help.
-
Using a Slack workflow to streamline internal bug triaging & Jira ticket creation
Like many engineering teams, the Photobox app team lets colleagues from other departments report bugs internally via Slack. To ensure sufficient detail, we use a Slack workflow to standardise bug reporting and simplify Jira ticket raising. Here’s how to implement something similar.
-
Migrating from Chrome's Password Manager to LastPass, and tidying up 10+ years of password clutter
I’ve been using Chrome since its 2008 release, and rely on the password manager daily. As you might expect, after 14 years I built up a lot of saved passwords (1000+)! However, migration to a proper solution is long overdue, here’s how I did it and tidied up my passwords at the same time.
-
How minor bugs and security flaws can erode user trust: Examining my unfortunate experience with Bloggie.io
Whilst wandering through GitHub recently, I discovered the Tokyo-based Bloggie.io, a markdown blogging platform that gave a great first impression. Unfortunately, after an hour or so of clicking around, I realised my enthusiasm and trust had completely eroded. But why & how?
-
How to migrate a Jekyll Minima blog from Universal Analytics to Google Analytics 4 (UA to GA4)
When I first set up my Jekyll blog with Minima, it had built-in support for Google Analytics. Great! However, only using a legacy “Universal Analytics” ID seemed to work. This was fine for a few years, until I discovered the system is being sunset, and all users need to move to Google Analytics 4 ASAP… Here’s how to do it.
-
Using gitStream for 'Continuous Merge': automatically approving safe PRs, assigning reviewers, estimating review time, and more
gitStream is a GitHub app that aims to improve the PR review process, a common bottleneck during development. It aims to extend CI/CD to include CM: Continuous Merge. In this post, I’ll explain what it is, how it works, and what it can be used for.
-
6 useful Google Sheets analysis formulas and techniques from my Twitch data analysis
I recently published a guide to analysing your Twitch data, from streamers watched to emotes used. This involved a lot of amazingly complicated Google Sheets formulas, enough to warrant a separate write-up. There are 6 extremely helpful formulas if you’re in a similar scenario, and should be somewhat interesting if not!
-
How to count the number of pixels per colour in an image, without installing any software
Whilst working on a new project recently, I needed a list of all hex codes used in a very large pixel art image (1,000,000 pixels), sorted by how many pixels had each colour. I struggled to find any simple solution, so here’s how I did it!
-
How an MVP-inspired approach to small feature development can improve your work's visibility & flexibility
In the last ~20 years, MVP releases have thankfully become the standard way of developing software. However, this mindset can be taken further, and used as a way to work on an individual ticket or feature, even as a solo dev. Why? Well, here’s a whole post full of motivations…
-
How to migrate from Utterances to Giscus for Jekyll comments
Since migrating from Wordpress to Jekyll, this blog (and my non-tech blog) has used Utterances for comments, which creatively uses GitHub issues for comment hosting. However, since then GitHub has released the “Discussions” feature which… is a much better fit! Luckily, Giscus is a way to use these, and can easily be migrated to.