www.rollc.at :: Posts

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.

Sync vs async work

This is a reflection on PG’s famous essay, “Maker’s Schedule, Manager’s Schedule”. The fact I’m writing this while in the middle of producing a live stream is only a tiny bit ironic.

Read more

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

Calendars

Observation: most calendar software I regularly use (the default apps on Mac & iOS; World Time Buddy, & some others) is not great when dealing with events that end past midnight. For example, in WTB I can’t select a range outside the 24h period spanning the “home” time zone; Apple’s apps show the event on the next day as if it was scheduled ON that day (which Calendar Timeline doesn’t do); etc.

I consider this an accessibility problem, where accessibility is defined as “making your software accessible to everyone”.

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.

The Old Computer Challenge v2: Conclusion

Today marks the last day of the challenge.

Read more

The Old Computer Challenge v2: Day 4 Summary

Short update on the challenge: all the smart home stuff is so annoying.

Read more

The Old Computer Challenge v2: Days 1&2 Summary

Days 1&2 of The Old Computer Challenge v2! I found that being almost constantly online during the working hours actually takes a lot away from the challenge - I’ve had to make a few adjustments.

Read more

The Old Computer Challenge v2: Day 0 Summary

Day 0 of The Old Computer Challenge v2 went well. Even though it’s a Sunday, I’ve had to work a bit - which also meant I had to go online. Such is the life of a startup co-founder, I guess. I didn’t mind though, as it created an opportunity to listen to a live stream of up&coming Opera singers, and as a lover of ALL good music (thank you, Mańka), I couldn’t imagine a better reason.

Read more

Participating in The Old Computer Challenge (v2)!

I’ve decided to participate in the The Old Computer Challenge v2. In this challenge, we pretend we’re on a 1990s-style modem (metered) connection, so we’re only allowed to be online for one hour a day (except for work).

My partner Alida has decided to join as well.

Check out all posts in this series.

Read more

My StarCraft II hotkeys

I’ve published a gist with my StarCraft II hotkeys. The readme discusses the design and philosophy - mostly focusing on ergonomics, improving at the game, and maintaining good habits.

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

Maintaining linear commit history in git

Merging is one of git’s most powerful abilities, but with great power, comes great responsibility. I use merging very sparingly, as I strongly prefer having linear history in my repositories.

Here’s how (and why).

Read more

mg

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

Zagreb, Croatia

Read more

Patra, Greece

Read more

Łódź, Poland

Read more

Josipdol, Croatia

Read more

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

Rant.

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

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