Super Basic SDFs

4 minute read

A bunch of shapes generated using SDFs

In a recent experimental 2D gamedev project, I wanted to play around with drawing a bunch of game entities purely algorithmically rather than creating sprites for each of them. One important technique I ended up using was Signed Distance Fields (SDFs). In this post, I’ll go over the most basic implementation (we’ll draw a circle!) and explain how and why it works.

Read 1,277 more words...

mkdocs-alias-plugin 0.10.0 Release

less than 1 minute read

pypi

The latest version, v0.10.0, of the mkdocs-alias-plugin is now available here. This new version adds the ability to use aliases in Markdown footnotes, a great way to keep links short and organized.

mkdocs-alias-plugin is an MkDocs plugin allowing links to your pages using a custom alias such as [[my-alias]] or [[my-alias|My Title]].

The Books of 2025

9 minute read

A picture of the side of a book against a blurry background

This year I read a surprising (to me) amount of books: 21 according to my notes, 6 more than last year. Here they are, listed chronologically in reading order. I’ll also list my favorite reads towards the end of the post.

Read 1,990 more words...

Copyleft From Now On

7 minute read

A bunch of notebooks

I’ve been putting my work online in various formats for almost 20 years now. For most of that time, I’ve used extremely permissive licenses such as the MIT License to distribute my work in an attempt to promote usage and adoption. Now that I’m quite a bit older and experienced (you may say curmudgeony), let me tell you why I’m changing my tune and am adopting a Copyleft approach.

In the past decade or so, I’ve noticed a widespread adoption of the MIT license, even by those who in the past opposed Open Source Software as a concept. Why the swing and why so extreme? You’d think that those companies would slowly adopt Open Source rather than going all-in all at once. What’s going on?

Read 1,352 more words...

How I Track Tasks and Take Notes

4 minute read

A bunch of notebooks

I’ve been keeping track of my notes and daily tasks using a single method for over a decade, and it works pretty well for me. Someone close to me asked me how I keep track of everything without losing track, so I figured I’d outline it here. The system is easy to use and relatively loose but with enough structure to be consistent.

Read 870 more words...

Foundry VTT on DigitalOcean with SSL and PM2

8 minute read

Foundry Virtual Tabletop Screenshot

I absolutely LOVE Foundry Virtual Tabletop (FoundryVTT). It is by far the best $50 I’ve spent on my tabletop role-playing hobby in years. I can gush about the software on and on, and perhaps I will in a future post. This post, however, focuses on something a bit more practical.

For years, I’ve hosted my instance on AWS, but with the change to their public IP address pricing, it doesn’t make sense to stay with them since DigitalOcean offers a beefier solution at a lower monthly cost.

Read 1,956 more words...

Creating and Publishing a Bluesky Feed

9 minute read

Bluesky terminal feed output

I was recently invited to join Bluesky, a new social media platform. This was mostly motivated by the nightmare that Twitter has become over the past year or so. One of Bluesky’s nice features is the encouragement from the official team to build supplementary software. One way to do it is to build a custom feed. So, I set out to do just that: I built a feed that serves all posts related to TTRPGs on Bluesky. Here’s how I went about publishing mine on a DigitalOcean droplet using PM2, Nginx, and Let’s Encrypt.

Read 1,984 more words...