Today I made a minecraft mod, using Fabric. Modding sure has changed a lot since I last tried it in Forge, maybe ten years ago! Java's changed a little too, even.

My mod adds a dirt slab, that's it. I didn't really have time to get past the basics, but I think the occasional hack that's just a learning experience is okay.

Code and mod download are both on github this time.

Fabric is well-documented and friendly. The main downside is that there's no "abstraction later" between Minecraft and the mod. This means your mod will work with exactly one minecraft version on release. Additionally, when a new version of minecraft is released, you need to update and re-release your mod (and there are usually actual changes to be made).

Tutorials used:

I made a coding challenge, vaguely tied up as a game. Your goal is to complete simple coding challenges, with a major twist--you only get one try. You can only hit RUN once. (Well, actually you can hit RUN more than once. But it gets marked as failed.)

 the game is called "No Room For Error"
the game is called "No Room For Error"

It put together about 10 challenges, together with some story narration.

The game problems are now tested.

You can play online. The code is on github

One feature I really liked about older ThinkPad models was that when you plugged in power, it would give a little chirpy beep. Same when you disconnected it.

The downside to system beeping is that it gets really annoying. I don't want a failed tab completion to go "beep" aloud, especially when I'm in public.

I aggressively turn off all kinds of system bells, etc. Sadly, I get no beeps either.

Today I wrote a little python script to monitor power beep how I want. It plays it through my computer speakers (unmuting them if needed, just long enough to beep). It works for me on both ALSA and pulseaudio with an ALSA bridge (I have a few computers on each).

My default settings are:

  • Two falling tones when power is unplugged
  • Two rising tones when power is plugged back in
  • Two warning beeps when the lowest battery reaches 10% (my laptop has two)
  • Three warning beeps when the lowest battery reaches 5%.

Source code is on github if you want to use it too. To change the thresholds or beeps, you'd have to change the code. No fancy configs, sorry!

Today I made a Go "screensaver".

  go game in progress
go game in progress

You can see it online here. The source code is on github.

Games are taken from OGS, and played real-time. Provided are a selection of 1000 random games from OGS, a popular Go server. Games play in real time, the same as when they were originally played.

I made this to have a screensaver for my mantel.

 go games play above my fireplace
go games play above my fireplace

Hope you enjoy.

Today I wrote a game called Little Herbalist. Or at least, I started to.

 part of "little herbalist"
part of "little herbalist"

I'm pretty pleased with what I have--random ingredients appearing in various colors, which you can add to a brewing potion. The potion changes colors based on what ingredients you've added.

It's definitely not a complete game, and I'd like to work on it again another day.

You can play the unfinished game online or read the source code on github.

Today I mostly slept, but while I was awake I tried making an ai friend/boyfriend as an experiment. I spent a lot of time getting Pygmalion (an LLM based on LLaMA-2, which specializes in roleplay and narration) to run. At the end, it was underwhelming, at least what I could run locally. I get the impression the full version is a lot better.

 underwhelming chat with an ai
underwhelming chat with an ai

Although this was a failure, Pygmalion was sponsored by spicychat.ai, which I found to be much better for creating AI companions. However be warned--the site is in general very NSFW.

Today I wrote a very small library for converting games to multiplayer. I was able to convert my Go game so you can play online with other players.

Go demo is here. 2p library source code is available as a gist, or you can view the go game source code.

Today I attempted to write a short D&D campaign using the Homebrewery. It was a total failure. I was incredibly tired, and didn't manage my time well.

 The Homebrewery is easy to use and looks amazing
The Homebrewery is easy to use and looks amazing

I made my first android app today. It was terrible and I plan to never do it again.

 wow! a real app on my phone--well okay, this is an emulator
wow! a real app on my phone--well okay, this is an emulator

It took me about three hours of trying to get the sample apps to run before I gave up and made something from scratch. Both involved heavy use of ChatGPT (not my usual flow).

 app icon
app icon

That said, if you want an app that reminds you how to tie your tie in an easy step-by-step way, you can download the APK from my website, and I believe you should be able to run that on your phone.

I don't know how to easily share Android source code, so I won't.

 a 9x9 game of go
a 9x9 game of go

Today I hacked together a simple but servicable Go game. It uses chinese scoring, and you have to manually mark dead stones at the end of the game. You can play a demo here. Source code is on github.

Right now you have to sit down with someone else to play. I plan to spend a day adding multiplayer to a few games, if I have time.