www.rollc.at :: Posts
I like smart home stuff - in moderation. Some things end up too smart for my liking. So I got rid of my Homepods and got me a pair of KRK Classic 5s. These studio monitors sound great, and are fantastic value for their price, but have one annoying feature: the built-in circuitry that shuts them down when there’s no audio playing. It makes sense in a studio context, but sometimes I just like to listen to music quietly, and the shutdown threshold is just a little bit too low.
Some people have physically modded their speakers to permanently disable that feature, but I’d prefer to keep my warranty for now, and I actually do like auto-shutdown - just on my own terms.
Nothing reinforces one’s claim to a hacker badge than solving hardware
problems in software (or vice versa). I wanted something like macOS’s
caffeinate(1)
command, except for audio.
Read more (6min; ~1200 words)
So I’ve participated in OCC v4 with my TiBook. Just like last time, I have some conclusions.
Conclusion (n.) - when you’re done thinking.
Read more (12min; ~2400 words)
To continue with our tradition of hand-me-down Macs, dkbox gifted me his ancient PowerBook3,5 (aka TiBook), which I’m now considering using as my main machine for the upcoming Old Computer Challenge v4 (update: conclusion).
The machine has pretty decent specs (for 2002): a 32-bit, single-core PowerPC CPU clocked at 867Mhz; 512MB of RAM; 40GB of spinning rust; a USB2.0 expansion card; and even digital video output via DVI! Most of that can also be upgraded/expanded.
This post is a bit of a free-form documentation of the machine’s quirks, a TODO list / what-if of a sorts, but also an appreciation of the era’s hardware, software, and design/aesthetics. I might update it at some point to reflect any fixes/upgrades I’ve done to keep it alive.
Read more (8min; ~1600 words)
Making up your own house rules can be a really fun part of playing board games. It lets you wear the shoes of a game designer - not just play the game, but also play with the game.
Sometimes changing the rules makes for some really spicy games, as even a trivial tweak can have a ripple effect and unexpected consequences. But we’re here to learn and to have fun - so let’s play, shall we?
Read more (11min; ~2200 words)
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.
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 (3min; ~600 words)
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 (6min; ~1100 words)
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”.
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
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 (6min; ~1300 words)
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.
Today marks the last day of the challenge.
Read more (1min; ~200 words)
Short update on the challenge: all the smart home stuff is so annoying.
Read more (1min; ~200 words)
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 (3min; ~500 words)
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 (2min; ~300 words)
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 (2min; ~400 words)
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.
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.
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 (5min; ~1000 words)
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 (4min; ~800 words)
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 (3min; ~500 words)
TL;DR: welcome Hugo and Netlify.
Read more (15min; ~3200 words)
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 (6min; ~1300 words)
It’s been years since I last updated the page describing my stack, so here’s the new stuff.
Read more (4min; ~800 words)
In April 2019, a friend gave me an iPhone. I gave it a try, and it made me question my life.
Read more (8min; ~1700 words)
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 (1min; ~200 words)
For whenever I forget random silly things like “how to exit vi
” (I’m an Emacs
guy).
Read more (6min; ~1100 words)
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 (4min; ~800 words)