1 Year of Blogging

It has been a whole year since my first blog post. And to my surprise, I’ve kept to it. 😅 Sure, it’s just been a post a month for the most part, but I still managed to write a grant total of 31 posts. And it’s been fun! The blog was born out of the fact that while tinkering with my Homelab, I’ve been reading so many niche blogs of other Homelab enthusiasts who did the same things I was trying to do. And I thought to myself: Hey, if I write about my tinkering, there might be somebody, someday, who finds one of my posts useful. And even if it’s just one person per post, it was already worth it. ...

July 22, 2023 · 6 min · Michael

Power Measurements in the Homelab

I’ve long been wondering how much power my Homelab consumes, especially with my switch from a single relatively beefy server to a gaggle of Raspberry Pis. In the end, I put in three smart plugs supporting MQTT. I would have loved to have per-machine power consumption stats, but I didn’t want to invest that much money into smart plugs. To wet your appetite a bit, here is a snapshot of the resulting Grafana dashboard: ...

June 13, 2023 · 20 min · Michael

Learning Elixir: Beginner thoughts

I’m now about a month into learning the Elixir programming language. See my previous post for my initial thoughts. And I don’t hate it. In contrast to my earlier encounter with Haskell, I’m keeping at it, and I’m enjoying it. Because Elixir is not quite as strict as Haskell, it has been way easier to wrap my head around it. There was a very steep hurdle in the beginning - everything requiring any amount of design beyond “just a single function” was (and to a degree, still is) rather hard. I had single functions down relatively quickly, but building anything that required chaining multiple functions had me blank quite often. I spend an entire Sunday solving this exercise. It should have been relatively simple: Just mark the cells on a minesweeper board with the number of adjacent mines. And the hard part was not the syntax for doing it, but coming up with a design and architecture to solve the task. ...

June 2, 2023 · 6 min · Michael
The official Elixir logo, a stylized purple liquid drop.

Learning Elixir: The Plan

I’ve had some pretty bad experiences with functional programming languages. Haskell in particular. When I was in high school, we had a functional programming unit in my CS course. Up to that point, we had done some educational languages as well as Java. At the time, I thought I had my head pretty firmly wrapped around programming (😅). And then came Haskell. And I did not get it at all. Just couldn’t wrap my head around it. ...

May 4, 2023 · 6 min · Michael
The stylized key keycloak logo

SSO with Keycloak in the Homelab

I wanted to have Single Sign-On (SSO) for as many of my services as possible for quite a while. One of the main triggers was the need for 2FA, in particular for the services accessible externally, to improve general security of my Homelab setup. SSO means that a user only logs in once, and with a single username/password combo, and then gets access to multiple different services with that login. The implementation is based first on OAuth2. This is a HTTP based protocol which facilitates authorization between multiple entities: ...

April 24, 2023 · 19 min · Michael