Skip to main content
I'm streaming on Twitch right now. You should stop by. Let's go!

Recent posts

  • My daughter deserves better


    I'll be honest--I don't want to write this post, and for a multitude of reasons. Namely, I don't want to write this post because writing this post crystallizes the fact that this post needs to be written. I also feel just so wholly inadequate to put text on a screen regarding such an important …

  • Track change events for YouTube with MutationObserver


    Have you ever wanted to react to events taking place on a web page, but they aren't capital-e Events that you can catch and handle? I was in this situation recently, where I wanted to grab the current video and chapter titles to display on my Twitch stream. YouTube isn't going to provide you with …

  • Rate limiting with Flask-SocketIO


    I've been transitioning the API for a Flask project I'm working on away from REST and toward Socket.IO. In doing so, I came to the abrupt and depressing realization that the rate-limiter I had been using for the REST endpoints (flask-limiter) was unable to apply to Socket.IO endpoints. The author …

  • Aethersprite: a Discord bot framework


    For some months, I had been tinkering with the discord.py library and slowly building up a bot for use in Nexus Clash faction servers. The more I added to it, the more I began to realize that what I was really building was a bot framework, and that framework just so happened to have some commands …

  • Vue.js long-press directive


    I was looking for an easy way to incorporate the "long press" event so popular in mobile UI into a web project of mine. In my searching, I came a cross a Vue directive that claimed to do the trick. Well, it certainly did, but I had a few reservations: It was TypeScript. I only want to be …

  • Halfmoon CSS framework


    I've been using a CSS microframework, Shoelace, for a little while now in one of my hobby projects. Recently, they began releasing beta versions of their new version and I discovered that they are moving from a CSS microframework to a full-blown web component library. I wish them luck, but it's not …