Asymptomatic

There must be intelligent life down here

ActivityPub on Sn

I’ve spent the morning trying to get my ActivityPub implementation off the ground, and I fee like I’m making headway. You can currently follow my account at the blog (@owen@asymptomatic.net), and it seems to record that information for future publishing. The testing suggests that when I publish this post, it’ll push it out to anyone that is following that account, but given that the Mastodon instance that my personal account runs from and my iOS client report different things (Mona thinks that my follow request is “pending”, and I’m pretty sure I’ve set things up for there to be no review of follow requests), I’m wondering what exactly will happen.

Configuration of a system such as this is non-trivial and a bit inscrutable. I’ve tried to narrow options down to the bare minimum necessary, as combined with the other options that are needed for the blog itself, so that it doesn’t take a lot of config to get the system going.

Two Experimental RPG Sessions That Reinvented My Table

Forty-plus years of rolling dice teaches you a few things. Chief among them: the game’s scaffolding—your basic five-room dungeon, your tavern-to-adventure pipeline—works because it’s reliable. But reliability can calcify into routine, and routine can drain the magic from even the most magical of games.

After running my homebrew Port Haven campaign for three years with the same core group, I found myself wrestling with two familiar DM problems: how to give individual characters meaningful spotlight time without boring the other players, and how to elegantly convey complex plot information that had become tangled over years of play. Rather than reach for conventional solutions, I decided to experiment with the fundamental structure of how we play.

The Prison RPG

I’ve been wrestling with a peculiar thought experiment for a couple of years now, one that keeps surfacing in my mind like a persistent itch. It starts with a scenario that’s deliberately stark: imagine you’re alone in a prison cell with absolutely no variation in your environment. The lights never shut off, there’s no way to tell time, and you can’t see anything through the window except an identical empty cell across the way. You have a concrete slab for a bed, basic plumbing that can’t be manipulated for entertainment, and clothing that’s been thoroughly searched. The key constraint here is that there’s truly nothing variable about your situation—no loose buttons to throw, no interesting floor tiles to count, no external inputs whatsoever.

In this environment, how do you generate a random number? It’s a question that sounds academic until you consider its implications. Sure, you could think of a word and count its letters, or try to come up with numbers “randomly” in your head, but these approaches introduce significant bias. Your brain has patterns, preferences, tendencies that make true randomness nearly impossible. If you’re stuck in that cell for months or years, rolling virtual sixes over and over again because of cognitive bias could seriously impact whatever mental game you’re trying to play.

On AI - Why I’m Using It Despite Everything

I want to start posting about AI. I’ve been working with large language models—ChatGPT, Anthropic Claude, Midjourney for image generation—and I want to write about what I’ve learned. But before I do that, I need to be absolutely clear about my position on AI itself.

If you disagree with what I’m about to say so fundamentally that you can’t stomach reading about my actual use of these tools, then my suggestion is simple: keep those thoughts to yourself. I have zero interest in debating whether or not to use AI. I’ve already put considerable thought into this decision, and this post exists to explain my reasoning—not to invite arguments about it.

Projects Progress

I have a few technical projects that I’m working on, but they are moving very slowly. Little’s Law has taken effect, where working on multiple things at once makes everything progress at a glacial pace. Let’s talk about the things I’m doing and maybe write out some progress. I might also cover some other topics, like how I’m using current AI techniques to get better at leveraging technology.

One project is called Team Beat. It’s software that organizes a retrospective into phases: a discovery phase where people can submit cards to a board, a voting phase where participants vote on the most important cards, and a discussion phase to talk about those cards. The software takes all the notes from the retrospective and puts them into a markdown document that you can save. The tool works well, and a couple of teams at work are using it. However, there are issues with it. The real-time board submissions are powered by WebSockets written in Go, which connects to the database storing all this information. One problem is that although Go performs well, configuration exists in the front end that really should be part of the back end. This disconnection of config makes it hard to filter down to specific user details in some situations. For example, every action on a board is broadcast on a single channel delivered to all users, requiring them all to fetch new information from the API instead of receiving simple updates.