www.rollc.at :: tech

Domain names

Hello, my name is rollcat, and I like playful domain names.

What I don’t necessarily like is hoarding stuff (especially when it comes with a recurring expense), so instead I’m going to just throw this idea out here, in the hope that someone will do something playful and interesting with it: a domain name that starts with some form of a negation, followed by one of those fancy new gTLDs, for example: donttry.engineering, without.style, never.forsale, forget.makeup, or unnecessary.website.

There are over 1500 TLDs! The possibilities are endless. Try searching on Gandi or Hover.

Why getopt?

I use getopt almost exclusively in all software that I write by myself, and often insist on using it when collaborating with others, even when the language convention is to use something else.

The reason is simple: getopt is a part of the user interface, and user interfaces should strive to be simple and consistent. As an end user, I find it jarring when, for example, I have to run a script by specifying the interpreter by hand, or when the language-specific extension is a part of the file name. This is an implementation detail which should not concern me - the #! should take care of that for me. Similarly, getopt is over 40 years old, is supported nearly universally, and is easy to understand both for the user and the programmer.

Read more

Docker: ls without ls

Quick tip: if you want to inspect the filesystem of a running Docker container, but it doesn’t even include a shell, let alone ls, you can do the following:

docker export some-container | tar -tf -

You can also print out the contents of a single file with tar (omit the leading slash):

docker export some-container | tar -xOf - etc/some/file.txt

Runaway complexity

Last week I had to work on a Django app again. Since Python is a very portable language that works on many different platforms, of course I’ve had to work on that in a Docker container, in a Linux VM in Qemu, on an arm64 Mac running macOS. Also because the official Docker for Desktop app is somewhat annoying, I’ve been giving Lima a try. Also because the standard Django development web server doesn’t offer the best debugging experience, I’ve been running an alternative server through django-extensions.

I’ve counted at least 8 distinct software vendors so far in that paragraph. When I’ve hit a bug that completely killed my productivity, it was far from obvious which one to look at. Let’s take a dive and see what happened.

Read more

Quick tip: soundproofing your homelab

Quick tip: if your home server happens to be a humble PC tower, rather than a rackmount blade, you can insert a layer of styrofoam or bubble wrap underneath it, to reduce the noise transferred from the fans & hard drives into the floor or the desk.

One day: a fanless server, with all SSDs and no HDDs.

How to manage dotfiles, the easy way

I’ve published my dotfiles on Github. The readme discusses some very simple and effective strategies for maintaining dotfiles, without the overhead of any third-party tools.

Disaster Recovery

It’s been quite a while since I’ve had to write a detailed post-mortem, and luckily this time the impact is very minimal - I’ve accidentally nuked the contents of the hard drive of my laptop, which I rarely use for any “serious” work. It’s made me reconsider disaster recovery plans, because mine didn’t quite stand the test.

Read more


I’m recently becoming a fan of the text editor mg(1). It is exactly what the man page advertises it to be: a small, fast, and portable Emacs clone.

Read more

This website is (yet again) experiencing technological churn

TL;DR: welcome Hugo and Netlify.

Read more

My tech stack (2022)

Small tech stack update.

Read more

UUIDs as invoice numbers - abusing a spec for fun and profit

I’m a big fan of UUIDs. They make life better, wherever I need to organise things - correlating objects between vastly different data sources, storage formats, structures, non-structures, databases, caches, etc. I already use them as PKs in Postgres, filenames in S3, and many more; today I wanted to spread their usage to accounting.

Read more

Why I've switched to Apple

In April 2019, a friend gave me an iPhone. I gave it a try, and it made me question my life.

Read more

New stuff

The old website is gone. Welcome the new stuff.

Read more

My tech stack (2019)

It’s been years since I last updated the page describing my stack, so here’s the new stuff.

Read more

Ansible is a hack on a hack on a hack on a hack


Read more

The Tech Cheat Sheet

For whenever I forget random silly things like “how to exit vi” (I’m an Emacs guy).

Read more

Dark mode

Updated 2019-12-22: With dark mode CSS, it’s now possible to match your website’s color scheme with the user’s preferences. Finally!

Read more

No cookies

This website does not use Cookies.

Read more

My tech stack (2015)

I’ve pieced my rig together quite carefully, creating a rather unique stack. At the fundamental level it’s not so different from a hundred thousand other hackers’ stacks, and thus to comply with the #1 rule of custom stacks, it demands a dedicated post explaining how cool and unique it is.

Read more