Code put on GitHub was written mostly for fun, and breaks down into two categories: Perl modules based on the Mojolicious Web Framework, or Role-playing game utilities written in Javascript (usually unfinished).
Perl Modules (also on CPAN)
These were written as fun exercises, or extracted from more ambitious projects that went nowhere. Publishing them taught me a lot about writing documentation and tests (CPAN has amazing testing infrastructure, run by a handful of volunteers), and about releasing software.
- Mojo::UserAgent::Role::Queued (2017 - 2018) - adds a queue to the Mojo::UserAgent web client to control the number of concurrent asynchronous requests CPAN. I gave a talk about why and how I wrote it (and the silly mistakes I made along the way), the slides for which are available online.
- Mojo::Feed (2014 - 2020) is an RSS parser, using the nifty Mojo::DOM library CPAN
- Mojolicious::Plugin::ConfigHashMerge (2014 - 2017) - Perlish Configuration for Mojolicious applications, with merging of deeply-nested defaults. CPAN
- Mojolicious::Plugin::Alias (2014)- allows mapping URL paths to collections of static files (obsolete) CPAN
Recruit and Masks are editable character sheets for [Night's Black Agents] and [Masks], respectively. They're both unfinished, little more than finger-exercises in Vue.js.
NPC Names is a simple script to generate random millenial (or Gen Z?) names, by crossing the 1000 most common baby names with the 1000 most common American surnames. Online here.
The Academy started as a Google doc, a list of NPCs in a game about a school for super-powered teens; I was unsatisfied with the formatting, so I wrote it as a Javascript app, using firebase for the backend. It currently shows and lets you filter the list of characters, as well as add new ones (using the script mentioned above to suggest possible names). The frontend is written in preact, because it's one of the few new frameworks that lets you write modern javascript without a build step, and my two goals with this project were to have (a) no backend server and (b) no build step! Webpack can get stuffed, I'm fine with simply hitting the browser's refresh button to see changes...
You can see it in action here https://the-academy-app.netlify.app/ if you sign in with a Google ID.