Skip to main content

Archive

2024

Bean There: An app to rate coffee shops
Why I use Firefox
Detox and React Native: UI testing Android permission flows
Why I like and recommend using TypeScript
My favourite articles of 2023

2023

Five reasons why I write
Better word counts and reading time in Eleventy (11ty)
How to find backlinks using Eleventy (11ty)
I've switched to Eleventy (11ty): my thoughts
I have joined the IndieWeb
Ghosts live in the ground: debugging an electronic circuit
Ten years of Capture The Flag
Make games not engines: why I'll be using Godot engine
Conquer: a deep-dive into my Luanti mod jam entry
Thoughts on native Android development
Bing (and DuckDuckGo) shadow banned my website
3D-printed IoT lock box using ESP32
My favourite programming and game dev articles
SDL_GameController: Making gamepads just work

2022

Large spike in Minetest traffic caused by YouTube video
Luanti (Minetest) on Steam Deck: usage and review
Setting up fingerprint auth on Kubuntu (Thinkpad X1)
Minetest Mods: my first Android app
Devkit CLI: Upload your game to Steam Deck from your dev computer
Steam Deck is Awesome
Why I created Renewed Tab, my New Tab extension
Creating worker NPCs using behavior trees
ChatGPT: An AI that can write Minetest mods... kinda
Developing ContentDB
Tin Mining - Ludum Dare 48 post-mortem
IoT Plant Monitor using ESP32

2021

Securing Markdown user content with Mozilla Bleach

2020

ForumMate: My return to Android app development
Writing a Lua sandbox using sol2 / sol3
Extending sol3's implicit type conversion
Drop shadows in SFML
Android: Complete, generic data-binding RecyclerView adapter
Why I switched from GitHub to GitLab
A Comparison of SFML GUI Libraries: TGUI vs SFGUI vs ImGui

2019

Rendering a topdown world with layers and z-levels using SFML
Getting rid of YouTube Music's "Are you still listening?" dialog
C++: Self-registering functions using macros for test libraries
Porting C++ programs from Linux to Windows using vcpkg, CMake, and Visual Studio
RimWorld: Create timelapse from Progress Renderer on Linux

2018

Raytracer and Rasteriser
Interactive Commit Sorter for Changelogs
Finding and copying DLLs from MinGW-W64 directories to bin directory
Rubix: My Simple Kernel written in C for arm

2017

Minetest at Freenode Live 2017
Install Autodesk Maya on Ubuntu 17.04
RVWP: Multiplayer Topdown Sandbox Game in C++
Mingw-w64 and CMake: unrecognised option -rdynamic on Ubuntu

2016

OpenCV: compile images (Mats) into a strip
How to emit a single particle using SFML's Thor Particle System
How to center a SFGUI window (sfg::Window)
Setting up a MonoDevelop solution and project for RimWorld modding
Install Monodevelop to build for .NET 3.5 (using Mono 3.14) - RimWorld
Move private repos from Bitbucket to GitHub
Xubuntu / Xfce sync whisker menu favourites
Dual boot Ubuntu on ASUS X555LA UEFI laptop alongside Windows 10
Linking a user account to an external phpBB forum
Getting user profile data from external phpBB forums
1st Semester of University

2015

Employee Task Management System
Convert folder of images to PDF with filenames
3D Projection

2014

Lotka Volterra - Predator Prey
Lichess Widgets
Lichess
Bytecode, Compilers and Interpreters