Rust, open source, cloud tech, kubernetes


dungeon mastering, universe, ideas, homebrew


solutions, theorycrafting, minmaxing, speedrunning


classical, piano, violin


tab accidentally left blank


photography, harware, cooking, offtopic

Baldur's Gate: Multinomial Edition

Auto-rolling and getting nerd sniped before venturing forth

In a brief bout of escapism from the world and responsibilities, I booted up Baldur’s Gate 2 with my brother. It’s an amazing game, once you have figured out how to roll your character.

For today’s installment; rather than telling you about the game, let’s talk about the maths behind rolling a 2e character for BG2, and then running simulations with weird X-based linux tools.

[Read More]

Prometheus Stack Review

operating the stateful metrics system on kubernetes

As part of my work life in the past year, a chunk of my day-to-day life has consisted of maintaining a prometheus installation on top of a sizable kubernetes cluster. My original feeling was “this is not that bad with kube-prometheus-stack”, but this sentiment has worsened somewhat with the realisation that more and more customizations and pieces were needed for large scale use. Half a year later (and 6+ charts deep), I thought I’d collect my thoughts on the ecosystem - from an operational perspective - with a rough architecture overview post.

[Read More]

Antimagic and Force Cubes

A lesson from weakly typed magic items

In 2018, we introduced the explosive Cube of Force into our home campaign. We really did not expect it to cause us/me that much grief at the time, but despite long canonicalisation meetings, our interpretation was not even internally consistent.

At the time we dealt with this by nerfing Cube down into the ground gradually rolling out alternatives, but it’s time we dug into the concept of D&D antimagic properly.

[Read More]

Foaming Campaign Brain

Exploring second brain alternatives for campaign tracking

After 2 years of running a D&D campaign almost every week, my note taking setup reached several breaking points. If you’re using OneNote or another online managed system for tracking notes/cities/npcs/pcs/events, but know how to use programmers tools like git and code; boy are there a world of advantages available to you.

This is a story of my original note talking setup, a comparison between newer technologies, and how I am back to writing markdown in a folder.

[Read More]

A generic kubernetes client

Shaving a yak for a client-rust

It’s been about a month since we released kube, a new rust client library for kubernetes. We covered the initial release, but it was full of naive optimism and uncertainty. Would the generic setup work with native objects? How far would it extend? Non-standard objects? Patch handling? Event handling? Surely, it’d be a fools errand to write an entire client library?

With the last 0.10.0 release, it’s now clear that the generic setup extends quite far. Unfortunately, this yak is hairy, even by yak standards.

[Read More]

Kubernetes operators in rust

Writing light weight cloud services without go

When interacting with kubernetes it’s generally been standard practice to use either client-go via go, or kubectl via shell.

While these are good, non-controversial choices, the advancement of client libraries, and smarter openapi bindings, combined with the generics and procedural macros of rust-lang, it’s now quite possible to write fully fledged kube operators, using slim rust kube clients.

[Read More]