Basic templating support in Tauri

Lately, I started building apps with Tauri. Contrary to common opinion, I prefer to build the frontends of my hobby projects without frameworks and use vanilla HTML and JavaScript instead. This works quite well, but as soon as you start having multiple pages, you want at least some templating to reduce duplication of common components. When using the rocket web framework I already got used to tera templates for that purpose. I wanted the same when using Tauri. How hard can it be? It turns out: quite easy.
Read more

Nginx reverse proxy and certbot setup on a Linux Server

A few months ago, I ordered a new virtual server with Ubuntu 22.04 Linux because my old one was out of support. Instead of using Plesk to manage everything I wanted to take a vanilla approach. The idea is to make everything scriptable and automate as much as possible. I wanted to avoid the additional attack surface a management software like Plesk or cPanel brings into the game. Every application that runs on the server is packaged in a normal debian-package. For the web applications, I provide a postinst script to set up the nginx reverse proxy and also set up certbot to provide and auto-renew a LetsEncrypt SSL/TLS Certificate.
Read more

Resizing the disk of a virtual machine

If you are like me and work a lot with virtual machines you will probably have the same problem and regularly run out of disk space in your virtual machines because the person that created it was too stingy regarding resources. In this post, I want to document how you can resize and extend your virtual machine disk, even if you do not have any paid versions of the virtualization software of your choice.
Read more

Loud software

A lot of popular software is loud. It shows me notifications, popups, and all the new features I don’t care about. I want to make the case, that quiet software is better. Quiet software is there for me if I need it, it does its job but otherwise gets out of my way as much as possible. Let me elaborate: I grew up with an Atari ST, then got my first PC with Windows 95, and soon after switched to Linux. Back then on the Atari ST, it was reasonable to have only one program open. Even with Microsoft Windows 95, this held up because the hardware and the many crashes were the limiting factors. The programs were single purpose and cross communication between programs and the operating system was rare. To display additional information the status bar within the program was used or a message box was created by the program.
Read more

Let's talk about tenants

The first question is: What is a Tenant and what is Multitenancy? Think of a tenant as a group of users, that operates independently on the same shared infrastructure. So to support multitenancy we have to logically isolate the tenants from each other while keeping them on the same infrastructure. The support for multitenancy can be achieved in multiple ways, whereas the level of separation is the defining characteristic. Below I explain how multitenancy can be achieved on the database level. I won’t go much into the application level, because once the database infrastructure is done, the resolving of tenants and the isolation should happen automatically without thinking about it in the application.
Read more

Linux boot loader not detected after BIOS Update

I got a new Desktop PC recently because my 8-year-old PC just hadn’t enough power to handle my current workloads. And as we all know: New Hardware brings new challenges, especially if you are using Linux. It is a nice machine with an AMD Ryzen 7 5800X CPU and 128GB Ram. But the Mainboard I chose seems to have some quirks. It is a “MAG X570 Tomahawk WIFI” Mainboard from MSI. Overall it works fine, but Linux is unable to detect the sound card, which is a Realtek ALC1200 Chip. This also brings me to the topic of this post.
Read more

Spam protection sucks - and it will get worse

Do you have a website with a contact form, which sends you emails? Do you use Captchas to protect yourself from spam? Then I have bad news for you! But let me elaborate: Captchas Ever since I started hosting my websites I have a problem. How do I protect myself from spam? The obvious choice would be a captcha. Captchas are basically small riddles only a human can solve. The reasoning behind it goes along the lines: Because almost every other website uses some form of captcha as spam protection, it must be the best solution.
Read more

C# .net core - NuGet Package downgrade error

One of my clients has a large C# dotnet core codebase. It consists of many NuGet packages that in part depend on each other. Overall not an ideal position to be in. When implementing a feature typically, multiple NuGet packages have to be touched, rebuilt, updated and tested. Sometimes this leads to conflicts and inconsistencies between NuGet Packages with specific Versions, or Bugs in general. One of the errors we sometimes hit is the “Package downgrade”-Error with the error number NU1605.
Read more

sway tray status - Swaybar Tool

A while ago I was testing sway as a wayland compositor. The goal was to make the switch to wayland for my daily work. Unfortunately, this didn’t quite work out. I have the feeling, that wayland isn’t quite there yet. A lot of things work, but it still feels cumbersome at times. Anyway, while testing sway, I noticed that the tray wasn’t working. When looking for the reason I stumbled upon the planned swaybar tray features. A bit disheartened I thought about what are the essential things I need. The most important things for me are battery information and the current date and time.
Read more

How to process bugs

Bugtrackers, tickets and squashing bugs is a process essential to every software engineer and it is expected, that you know the process. But somehow there is no proper description of the process and how it works. All knowledge about squashing bugs is self-taught or delivered in tales full of nostalgia. In this article I explain my strategy on how to process bugs in an efficient manner. The goal of this process is not to close as many tickets as possible, but to solve the problems of the users and improve the software. Closing tickets and fewer tickets overall is a side effect.
Read more