The exercism.org logo. It consists of two curly braces on the left and right, and three bows between them, arranged to form a smiling face.

Returning to Programming and Fanboying about Exercism

I’d like to talk about a great website I found a little while ago, exercism.org. I discovered it a while back, when I was trying to learn Elixir. That project got interrupted pretty badly by my Kubernetes migration, but I’m now back to it. I still want to learn a language a bit more suited to web development, but I’ve switched to Golang now. Mostly because, when I started looking at Elixir again, I had forgotten pretty much everything again. Plus, I also never really wrapped my head around functional programming. ...

October 28, 2025 · 5 min · Michael

History Podcasts

As promised in my previous post, now onto the second category of podcasts I’m listening to: History podcasts. I love history, in all it’s periods and countries. I even went so far as taking AP history in high school and did pretty well with it. Lots of my YouTube consumption are historical channels. And so it is also for podcasts. In fact, the very first podcast I started listening to, way back in 2019, was a history podcast. ...

October 24, 2025 · 4 min · Michael
A large number of things on a white table. Several black cat stickers, a red fox sticker, a steel key, a metal figurine of a dragon, an amulet, a locket and a number of rose petals. All of these things are arranged around the name of the show, 'The Antique Shop'.

Fiction Podcast: The Antique Shop

In the interest of expanding my writing a bit, I always wanted to write about the media I’m consuming a bit more, and I will start with a small series of posts on my favorite podcasts. To me, there are roughly three kinds of podcasts I listen to. The first one is history podcasts - just some narrator telling me interesting tidbits from history. I will write about all of those in the next post. The second kind are what I’d call “current affairs” podcasts, e.g. news, politics, Open Source/Linux talk podcasts and such. ...

October 24, 2025 · 3 min · Michael
A screenshot of a Grafana dashboard. It shows a number of stats metrics at the top, for example the number of users and buckets and the total bytes send in the interval. Below that, there are a number of time series panels, like number of operations over time, bytes send or bytes received by bucket. I will describe each individual panel and its content in detail in the main post.

Gathering Metrics from Ceph RGW S3

Wherein I set up some Prometheus metrics gathering from Ceph’s S3 RGW and build a dashboard to show the data. I like metrics. And dashboards. And plots. And one of the things I’ve been missing up to now was data from Ceph’s RadosGateway. That’s the Ceph daemon which provides an S3 (and Swift) compatible API for Ceph clusters. While Rook, the tool I’m using to deploy Ceph in my k8s cluster, already wires up Ceph’s own exporters to be scraped by a Prometheus Operator, that does not include S3 data. My main interest here is the development of bucket sizes over time, so I can see early when something is misconfigured. Up to now, the only indicator I had was the size of the pool backing the RadosGW, which currently stands at 1.42 TB, which makes it the second-largest pool in my cluster. ...

October 10, 2025 · 15 min · Michael

Updating CloudNativePG Postgres Images

In the interest of paying down a bit of technical debt in the Homelab, I recently started to update the CloudNativePG Postgres images to their new variants. Where before, the Postgres operand images (see the GitHub repo) were based on the official Postgres containers, they’re now based on Debian and the Debian Postgres packages. With this switch, instead of just having one image per Postgres version, there are now a few variants: ...

October 1, 2025 · 6 min · Michael