• A gender-swap EarthBound for my daughter

    I had some fun over the last week preparing a gender-swapped version of EarthBound for the SNES. I made use of the excellent tool CoilSnake, which can be used to patch and rebuild an EarthBound ROM with modified assets and scripts.

    The full set of changes includes things like:

    • gender swapping all Ness sprites, replacing his baseball cap with a red bow. Includes changes to Ness robot sprites, cycling sprites, climbing sprites, etc. There were maybe a dozen or so sprites that needed adjustment.

    Read more →

  • Coming soon: a few exploratory projects

    I’ve been messing around in my free time doing a bit of coding for fun and to explore areas of interest. It’s a bit hard to motivate myself to code during my free time considering coding is also part of my day job. But my day job is not very technically interesting, so this is how I get to explore the fun of coding. I’ll briefly describe a few of these projects which I have in mind.

    Read more →

  • Rebuilt this website with Hugo

    I decided yesterday to rebuild this website using Hugo, while it was originally built using Jekyll. In this post I’ll discuss my experience.

    Read more →

  • galtonwatson, a Go module for efficient manipulation of Galton-Watson trees

    galtonwatson is a Go module in early development which implements efficient algorithms for the generation and manipulation of Galton-Watson trees. By extension, this tool can be used to generate uniformly random samples from many classes of rooted trees, including:

    • uniformly random binary trees of a given size,
    • uniformly random d-ary trees of a given size,
    • uniformly random Cayley trees, i.e., unordered labeled trees of a given size,
    • uniformly random ordered trees of a given size,
    • etc.

    Read more →

  • The Burrows-Wheeler transform, revisited

    In my previous post, I discussed the Burrows-Wheeler transform, and embedded an HTML form on the page which dynamically computed the forward and inverse Burrows-Wheeler transforms with an additional move-to-front compression step. My initial implementation of this form was done in pure JavaScript with no particular care for efficiency, and in particular used \(O(n^2 \log n)\) space and time. The new implementation on the same page reduces this complexity to \(O(n \log n)\) time and \(O(n)\) space, making the form usable on larger texts. It is possible, as noted in the paper of Gil and Scott, that this time complexity can be reduced to \(O(n)\) by using linear time suffix array construction algorithms.

    Read more →