Coding

I was a failed teenage game developer (part 1)

I was a failed teenage game developer (part 1)

This blog first appeared in 2008 as a guest article for a friend’s (long since removed) website. To consolidate some of my previous writing in the one place, it has been re-posted with permission, with some edits and lots of additional media added. Think of it like the HD remaster of an old videogame, except it’s a videogame no-one played because it wasn’t very good. I was a failed teenage game developer.
To BRBEATLP.958 and beyond (Epilogue)

To BRBEATLP.958 and beyond (Epilogue)

The story so far In order to explore the origins and prevalence of a personally-beloved drum loop sample named BRBEATLP.958, I fingerprinted and catalogued every sample of every MOD/S3M/XM/IT file in the Mod Archive so that I could hunt it down amidst tens of thousands of different songs. Now that we’ve solved that mystery, let’s wrap this up with an excursion through that data! Disclaimer: I’ve done the best I can to clean the data I gathered and ensure its accuracy, but I’m not going to stake any rigorous claims of perfection against it.
Keeping setuptools updated in OpenShift Python S2I

Keeping setuptools updated in OpenShift Python S2I

After a recent commit to a Python project that I work on, I noticed that my resulting OpenShift pod had begun crashlooping after the rebuild. A quick check of the pod logs showed why: for some reason, it could no longer find the alembic module, despite that being a transitive dependency of SQLAlchemy, which my project already had in its requirements.txt. Curious, I checked the build logs and noticed an odd error during the dependency install:
To BRBEATLP.958 and beyond (part 4): A mystery solved

To BRBEATLP.958 and beyond (part 4): A mystery solved

The story so far In order to explore the origins and prevalence of a personally-beloved drum loop sample named BRBEATLP.958, I’ve fingerprinted and catalogued every sample of every MOD/S3M/XM/IT file in the Mod Archive so that I can hunt it down amidst tens of thousands of different songs. Now it’s time to see where this takes us. Part one Part two Part three How many songs used BRBEATLP.958? I found fifty-four different songs which all used (or at least included) BRBEATLP.
To BRBEATLP.958 and beyond (part 3): Parsing ancient scriptures

To BRBEATLP.958 and beyond (part 3): Parsing ancient scriptures

The story so far Obsessed with the muffled, 8KHz mono perfection of a drum-loop used in an old ScreamTracker III module, I aim to seek out how many other modules may have used the same sample.. but not before some hard nostalgia-blast reminiscing over the tracking subculture as a whole. Part one Part two Forming the battle plan First thing’s first: if I was to figure out how many other songs might’ve used BRBEATLP.
Advent of Code 2020 reflections

Advent of Code 2020 reflections

Advent of Code has wrapped for another year, so I figured I’d write a companion piece to last year’s blog about the same topic with some brief thoughts and reflections on 2020’s event. Overall feelings I quite enjoyed this year’s collection of puzzles. Unlike last year’s Intcode theme - which spanned almost the entirety of the month - each puzzle this year was its own standalone thing. There were also no puzzles that I felt demanded much algorithmic knowledge, with nary a shortest-path problem to be seen - much to my relief, as they’ve historically always been the more challenging ones for me.
To BRBEATLP.958 and beyond (part 2): Learning the family tree

To BRBEATLP.958 and beyond (part 2): Learning the family tree

The big four One of the fascinating aspects of tracker music is the way in which it has evolved over the last three decades. A whole ecosystem of music creation tools grew from the homebrew efforts of talented programmers and musicians. Composition programs were born, forked, cloned, abandoned and reborn. File formats, too, were devised and revised - and sometimes even documented. Composers migrated from tool to tool as successive programs presented them with more sophisticated abilities to realize the music in their head.
To BRBEATLP.958 and beyond: archaeological digs through tracker music (part 1)

To BRBEATLP.958 and beyond: archaeological digs through tracker music (part 1)

Preamble In my small amounts of spare time these past few lockdown-fueled months, I’ve been casually poking at a dumb idea. Like so many dumb ideas, it didn’t really amount to much itself, but it did spawn some other successively dumber ideas. And, well, those didn’t amount to much either. But! It sure was a fun, nostalgic and educational ride.. and I guess there’s a bit of entertaining trivia to be gained along the way.
Shells, pipes and precedence

Shells, pipes and precedence

A fun distraction occurred this week when the following snippet of bash code was suggested in a pull request (simplified for demonstrative clarity): 1if [ echo $VAR1 | grep -q "text" ] || [ $VAR2 -eq 0 ]; then 2 echo "If test passed." 3else 4 echo "If test failed." 5fi Taken at initial face value, it looked like it should work okay. There didn’t appear to be anything immediately wrong with its syntax.
Advent of Code 2019: personal wrap-up

Advent of Code 2019: personal wrap-up

In the previous blog I described why Advent of Code is an awesome and creative way to exercise your programming skills. A few days ago I wrapped up 2019’s problems, although I must admit I needed some serious help (read: reading someone else’s solution) to do Day 22 Part 2. This year was also the first year that I managed to convince some work colleagues to join me on the AoC train, which made for some fun watercooler discussions in the morning where we could talk about the ways we solved (or got stuck) on the previous day’s problem.