In my last post, I noted that I was pretty happy with the current state of my homelab setup. In this post, I want to expand on what I have, and how I have it configured. The main part of the setup is a 15U server rack, with a 4U machine for simple storage , a 4U machine as dedicated database , and 1U with 3 NUCs for compute. Lastly, I use 2 raspberry pi machines to act as ingress machines. Apart…
I enjoyed making a post last year to reflect upon what’s keeping me busy, or what caused me to not be busy, so I was thinking to do it again! If you’re reading this, it turns out I went through with it. In general, the past year has been much better to me than the one before, at least on an emotional level. The relationship has progressed into becoming an engagement, and the work I put…
I was hoping to make a final blog post this year detailing the latest changes I made to my homelab. However, while trying to finish up, I was looking for a small dashboard to list all the services I’m hosting so friends and family can get a nice overview. As such, you’re getting a blog post about my homelab’s dashboard instead! I’ve looked around for some pre-existing free…
It appears to be November already, my Fedi timeline is full of people talking about how this is the month to do some writing if you are so inclined. I happen to have a blog, so I might just be the target audience of those calls to write more. Last weekend I also happened to spend some time to work on my own recipe for lemonade syrup, so I thought it might be nice to make a little blog post about…
Since last week, my fiancée and I decided to try getting into mixing cocktails. We both like food, and what better way to expand the potential for dinner parties than by adding drinks! As such, we’ve bought all the tools to get started, and we each got a book filled with recipes. She wants to focus more on the non-alcoholic variants, mocktails, whereas I’ll go for the alcoholic…
If you’ve read my blog posts before, you may know that I personally don’t like systemd all that much. In my experience, it breaks many things that used to work just fine from a user perspective, while adding not much new. Recently however, I looked into managing containers with it. I found out about Podman Quadlet, and it feels like a first neat way to use systemd to solve a problem. As far as I’m…
Last month I tried out Wayland once more. I do this about once a year, to see if Wayland is actually ready yet for my use case. For most of my life now, I’ve been using X11 with a lot of pleasure. It is feature-rich, and a lot of different window managers exist for it to suit almost every use case I can envision for my systems. X11, however, is considered “old”, and therefore it…
Its a new year. Looking back at 2024, I noticed I didn’t really write much on my blog. I thought about what caused this lack of posts, and I found two big reasons. The first is that I’ve simply spent less time doing tech stuff, as I’ve been quite busy in my personal life. I’ve finished more work on my home, making it a much nicer place to live in. But more important than…
Its been about another year since I made a post about Bashtard, its 2.0.0 release . Today marks the 2.1.0 release , meaning I’ve gone almost a year without breaking backwards compatibility. To me, this is a very good sign. The release today isn’t as big as the 2.0.0 release was, mostly because most of the functionality I want to have is already present. Some new features were added…
Last week I got a message on Matrix, asking me to update one of my Raku modules, Config::Parser::TOML . One of the dependencies had been updated, and the old one is no longer available through the module installer zef . Its not that big a change, and there are tests available, so its a reasonably small fix on itself. Recently I’ve set up Argo Workflows for my CI/CD desires, and I found this…
After setting up mieshu , nouki is the next server to work on in my home rack. Nouki is intended to live as my main database server, mainly for PostgreSQL, but perhaps later on in life MySQL if I ever want a service that doesn’t support superiour databases. The setup for nouki is much simpler in that regard, the base system is almost identical. This server has ZFS with 2 NVMe disks running…
After saving up for a long while and thinking about what I want in my new home, I have finally taken the leap and gotten myself a server rack for home use. Its has a 15U capacity, which should be plenty to get started, but this same brand has larger racks too, in case I do want to upgrade it and keep the same style. That said, for now there’s only two 4U units in them, one for (file)…
This is going to be a relatively short and uninteresting post for most, it’ll just document how to get emoji to work in KDE. While it will work with most applications out of the box, this doesn’t appear to work in Qt applications by default, including the notification panel. As I use my notifications for messages I get from my work chat, and I dislike seeing the squares, I set out to…
A little over a year ago I started on a project to create my own configuration management system. I’ve been disappointed with existing alternatives, such as Ansible, on the grounds that they don’t work all that well if you have a mix of different distros with different package managers, and sometimes even different paths to store data in. I’ve been having a lot of fun working on…
In the past year, I’ve written Bashtard, a simple configuration system written in Bash to minimize the required dependencies, and to have a better system to handle different distributions/OSs in your cluster. Especially the past two months I’ve done quite a bit of work on it. I’ve worked out how to do reusable playbooks, generate a usable Debian package from the Makefile, extend…
I’ve hosted my own git repositories for quite a while, but I hadn’t found a simple self-hosted CI solution yet. I’ve tried several, and found them to be a bit too cumbersome to setup and actually put to use. The majority requires you to host a full “git forge”, such as GitLab or Gitea, in order to use their webhook functionality in order to trigger a CI build. This…
For my current $dayjob I am required to start using the AWS VPN Client. This is not a problem per se, however, this piece of software has given me some particular headaches. In this post, I want to air some frustrations that it has brought me in the past two days, trying to get this software working properly on Debian. GNU+Linux Support The AWS VPN Client has gotten an official client for…
A little while ago, I got a new work laptop. As is customary, I installed my preferred GNU+Linux environment onto it. Consequently, a few people have asked me to detail my steps to get this system up and running, as they would like to try out a similar setup as I did. It’s also been a while since I made another blog post, so here’s killing two birds with one stone! Preparing disks Make…
Over the past couple weeks I’ve been spending some time here and there to work on my own application for configuring my machines. Before this I’ve tried Ansible, but found it to be very convoluted to use, and requires a lot of conditionals if your machines aren’t all running the same base system. So I made something in Bash, with a few abstractions to make certain interactions…
Last week, I’ve decided to add a cookbook to my website. I’ve thought about doing so for a while, but was rather hesitent since my website was mostly a tech-minded blog. However, this time around I’ve decided to simply add a cookbook, and have seperate RSS feeds for my blog posts and recipes , so that readers can decide what they want to follow. Now I can easily share any recipes…
I like collecting GNU+Linux ISOs. I’d like to think I have a pretty serious collection of these things. I have a pretty good and stable Internet connection, so I collect them in my torrent client, and let them seed pretty much forever, so other people can enjoy them too. For this hobby, I’m using Transmission , with tremc as the frontend. I’ve been using it for a while, but…
ReiserFS is getting deprecated from Linux , mostly due to it not being ready for the year 2038. This is a little sad, as I still use it on some systems for storing the Gentoo Portage tree, and the Linux kernel sources. It works well for this because it supports tail packing , a form of block suballocation, which can save disk space. So, what alternatives are there for ReiserFS? After asking around…
My blog (and pretty much every other site I host) is using Let’s Encrypt certificates in order to be served over https. Using any certificate at all is generally an upgrade when it comes to security, but your webserver’s configuration needs to be up to standard as well. Unlike the Let’s Encrypt certificates, keeping the configs up to date requires manual intervention, and is…
Over the past week, I’ve been trying out LibreWolf as an alternative to mainline Firefox. I generally don’t hold a high opinion on any “modern” browser to begin with, but Firefox has been the least bad for quite some time. I used to actually like Firefox, but Mozilla has done their best to alienate their user base in search for profits, and is eventually left with neither.…
On one of my machines, I host a couple services using docker-compose . I wanted to start/restart/stop these using the default init/service manager used on the machine, openrc . This would allow them to start/stop automatically with Docker (which coincides with the machine powering on or off, respectively). I’ve set this up through a single docker-compose meta-service. To add new…
Earlier this week, the staff at the Freenode IRC network have resigned en masse, and created a new network, Libera. This was sparked by new ownership of Freenode . Due to concerns with the new ownership, the Raku Steering Council has decided to also migrate our IRC channels to Libera. This requires us to take a couple steps. First and foremost, we need to register the Raku project, to allow us a…
The Raku programming language has a popular module for creating IRC bots, IRC::Client . However, it’s been stale for quite a while, and one of the bots I host, Geth , is having troubles on a regular basis. I’ve looked at the source code, and found a lot of neat tricks, but when maintaining a library, I generally want clean and straightforward code instead. To that end, I decided to…
At my $day-job we have a lot of jsonb in our database. From time to time, I have to manually run a query to fix something in there. This week was one of those times. While you can pretty much do everything you need with regards to JSON editing with jsonb_se t, I thought it might be nice if I were able to merge a given JSON object into an existing object. This might be cleaner in some situations,…
The last couple of days I’ve been taking another look at getting modules for the Raku programming language into Gentoo’s Portage tree. Making new packages available in Gentoo is incredibly easy with their overlay system. The more complex part was Raku’s side of things. While most languages just have a certain directory to drop files in, Raku should use a CompUnit::Repository…
Four years have past, and my FreeBSD email server has keps on running without any problems. However, some people on IRC have recently been nagging me to support TLSv1.3 on my mailserver. Since the installation was done 4 years ago, it didn’t do 1.3 yet, just 1.2. I set out to do a relatively simple system update, which didn’t go as smooth as I had hoped. This tutorial post should help…
For those who don’t know, the Config module for the Raku programming language is a generic class to hold… well… configuration data. It supports Config::Parser modules to handle different configuration file formats, such as JSON , YAML and TOML . Up until now, the module didn’t do much for you other than provide an interface that’s generally the same, so you…
I’ve been working on some Raku projects, but each of them is just too small to make an individual blog post about. So, I decided to just pack them together in a slightly larger blog post instead. Binary Rakudo Star builds for GNU+Linux and FreeBSD A friend on IRC asked if it was possible to get Rakudo Star precompiled for ARM, since compiling it on his machine took forever. I took a look…
A little while ago, a friend on IRC asked me how I set up a PGP webkey directory on my website. For those that don’t know, a webkey directory is a method to find keys through gpg ’s --locate-key command. This allows people to find my key using this command: gpg --locate-key p.spek@tyil.nl This is a very user-friendly way for people to get your key, as compared to using long IDs. This…
cgit , a web interface for git repositories, allows you to easily share your projects’ source code over a web interface. It’s running on my desktop right now, so you can see for yourself what it looks like. On Gentoo , the ebuild for this software can be found as www-apps/cgit . However, after installation, a number of configuration steps should be performed to make it accessible on…
A couple months ago, I was given a workshop at work about “getting things done”. There I was told that there exists a concept called “ Getting Things Done ”, or “GTD” for short, to help you, well, get things done. A number of web-based tools were introduced to assist us with following the rules laid out in the concept. The problem The tools that were introduced…
Disclaimer Please keep in mind that the opinion shared in this blog post is mine and mine alone. I do not speak for any other members of the PerlCon organization team. Please do not address anyone but me for the positions held in this post. Those that know me are probably aware that I generally dislike to make political posts on my personal blog. I’d rather stick to technological arguments,…
People often ask me for my reasons to use Gentoo . Many perceive it as a “hard” distro that takes a lot of time. While it does come with a learning curve, I don’t perceive it as particularly “hard”, as the documentation is very thorough and the community is very helpful. And the tooling you get to maintain your system is far beyond what I’ve come across with any…
Due to the slow release of Rakudo Star (which actually did release a new version last month), I had set out to make Docker images for personal use based on the regular Perl 6 releases. But, as I discovered some memory related issues , and another branch with some possible fixes , I changed my mind to make them nightlies based on the master branches of all related projects instead. This way I could…
Having attended FOSDEM last weekend, I have been asked to help some people out with signing PGP keys. As it is an international gathering of users and developers of all levels of expertise, it’s a great event to get your key out in to the wild. While helping people out, I figured it might be even easier next time around to just refer to a small tutorial on my blog instead. Creating a PGP key…
I recently started at a new company, for which I will have to write Python 3 code. To make sure I still know how to do basic stuff in Python, I started to work on some Hackerrank challenges . In this post, I will show solutions to some challenges to show the differences. I hope that I can show that Perl doesn’t have to be the “write only” language that many people make it out to…
I’ve recently started a job where I am required to have above-average security practices in place on my machine. I already had some standard security in place, such as full disk encryption and PGP encrypted email, but I thought that this would be a good time to up my game. To accomplish this, I purchased a Yubikey to act as my physical security token. Additionally, I have a USB device which…
This year the European Perl Conference was hosted in Glasgow, and of course I’ve attended a number of presentations there. On some of these, I have some feedback or comments. These talks, and the feedback I have for them, are detailed in this blog post. note The first talk I cover is not so much about Perl, but more about politics, as the talk was mostly about the speaker’s ideology.…
Sparrowdo is a Perl 6 project to facilitate automatic configuration of systems. There’s a repository of useful modules to make specific cases easier to work with, but the Core DLS can already take care of many tasks. In this tutorial, I’ll guide you through setting up Sparrowdo, bootstrapping it onto your local system, writing a task and running it. Install Sparrowdo Sparrowdo is a…
In this tutorial, I’ll be guiding you through creating a simple application in Perl 6. If you don’t have Perl 6 installed yet, get the Rakudo Star distribution for your OS. Alternatively, you can use the Docker image . The application itself will be a simple dice-roller. You give it a number of dice to roll, and the number of sides the die has. We’ll start off by creating it as a…
For about a year now, I’ve been working in Perl 6. Telling this to other people often brings about some confused faces. I’ve grown quite fond of Perl 6 the more I learn about it, yet the general developer community still seems to think Perl is a dirty word. In this article, I will detail some of the features that make me like Perl 6, and why I try to use it wherever possible. ==…
I’ve been meaning to spend more time on developing free software, helping out new users on IRC and writing more tutorials to get others started. All of these cost time, and time is money - so I’ve set out to set up donation accounts. In the hopes of helping other developers who struggle to fund their work, I’ve written up this article to talk about my experience. This is a living…
Foreword Cloudflare is a threat to online security and privacy. I am not the first on to address this issue, and I probably will not be the last either. Sadly, people still seem to be very uninformed as to what issues Cloudflare actually poses. There also seems to be a big misconception about the benefits provided by using Cloudflare. I would suggest reading the article on Cloudflare by joepie91…
In this tutorial I’ll get you through setting up a Raspberry Pi with Perl 6 . I am using a Raspberry Pi 3 myself, but other versions should work fine too. However, older versions are slower, so it might take a bit longer to install completely. Note For those who have never had a Raspberry Pi before, you will need the following: Raspberry Pi board Power supply (5v 2A, micro USB) SD card of at…
This year I actively participated in the Hacktoberfest event, which is “a month-long celebration of open source software”. Ironic, given that the companies organising it don’t have their own software stack open source. I’ve found some issues to solve in Perl 6 projects, and that lead to trying to solve issues in some other projects, and eventually I got more PRs out than…
I’ve recently made some progress on Shinrin a centralized logging system in Perl 6. This has to run as service, which means that for most service managers it has to be able to run in the background. Note If you just want to get to the solution and don’t care for the details, just head straight to the full script . It’s not possible! After a lot of trying and talking with the…