Static Website Hosting in 2024

October 21, 2024

I recently changed the hosting for this site to GitLab Pages at gitlab.com and want to capture my evaluations here. I considered Uberspace, Cloudflare Pages, and GitHub Pages, before landing on GitLab Pages. Here’s the quick summary. Read on for the details and rants.

Requirement Uberspace Cloudflare Pages GitHub Pages GitLab Pages
Hakyll supported yes kinda kinda Yes
Multiple external domains yes yes only one domain yes
TLS out of the box yes yes yes yes
Cheap around 5€ 0€ 0€ 0€
No analytics cookie nonsense yes ? yes yes

How to bootstrap your Zsh config with zplug

July 22, 2019

Recently, I spent some (probably too much) time tweaking my Zsh configuration. The results of my efforts are the three Zsh plugins wbase.zsh, git-prompt.zsh, vi-mode.zsh that are now available for anyone. In this post I will explain how you can use the plugin manager zplug together with my plugins to bootstrap your own config. One note before we start: for the best experience, check that your terminal supports 256 colors or more. You can do that with the tput colors command.

Speeding up Scapy

March 22, 2019

A few weeks ago I revisited the DNS cache poisoning attack discovered by Dan Kaminsky in 2008. Implementing the attack requires some fairly low-level manipulation of DNS packets. Fortunately, we have Scapy, which makes packet manipulation easy and accessible from Python. But at first the performance of my script was so bad that I could not carry out the attack (maybe I just never waited long enough). In this post I want to record my journey that led to a faster and faster Scapy script.

Control brightness of external monitors on Linux

October 9, 2018

Until now I only knew the convenient feature from my laptop, where I can simply press a hotkey to adjust the brightness of the built in screen. But what about external monitors? Can I adjust the brightness without fiddling with the on-screen menu?

Install Termite's terminfo

November 4, 2017

On many systems Termite’s terminfo is not available by default. That’s a problem since you cannot start ncurses apps, when the terminfo is missing. I usually run into this problem when I try to ssh into a newly installed machine. Here is a one-liner to fix the issue (you have to run this command on the remote, not you local machine!).

Convert legacy Rofi themes

October 24, 2017

Rofi is a window switcher, application launcher and dmenu replacement, which integrates nicely with tiling window managers. In versions 1.3.x and before themes were read from X resources. The recent upgrade to version 1.4.2 broke my custom Arc-Dark inspired theme. Here is how to migrate legacy themes to the new format:

rofi -config /path/to/old/themefile -dump-theme > theme.rasi

Don't forget to clean your pacman cache!

March 26, 2017

Arch Linux’ package manager pacman stores all downloaded packages in /var/cache/pacman/pkg. This cache does not get cleaned automatically and pacman keeps adding new archives with every single system update. If you forget about the pacman cache for a couple of months it takes up more and more space. I recently freed over 12GB on my SSD by running the cleanup commands listed below.

VPN with tinc

September 14, 2016

I finally solved the problem that I could not access my home computer, when I am not at home. In many cases the easiest solution is to forward a port on the home router and run a SSH daemon on the home computer. However, it is not possible for me to forward ports to the public internet. I got around this issue by setting up a Virtual Private Network (VPN) using the tinc VPN daemon. tinc is one of many VPN solutions available on GNU/Linux. It is simple and easy to set up, especially when comparing it to OpenVPN, which has an enormous amount of features and configuration options.

Bookmarks with ownCloud and Vimperator

May 23, 2016

I recently added the Bookmarks app to my ownCloud installation. This app keeps a simple list of bookmarks synced across my computers. The Bookmarks app provides a bookmarklet to add new bookmarks easily. But there is a problem with using the bookmarklet: I have to click on it! And therefore I have to display the bookmarks bar or search for the bookmarklet in the bookmarks menu. I don’t like both approaches for following reasons: The bookmark bar eats too much space on my small notebook screen and searching for the bookmarklet in the menu takes too long.

Under Construction

May 22, 2016

Hi there, you found my blog 😀 . It is still under heavy construction. See you soon!