2024-01-21
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.
2023-08-15
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
2023-07-16
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
2023-07-14
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
2023-07-13
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
2023-03-06
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
2022-09-30
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.
2022-07-14
The Old Computer Challenge v2: Day 4 Summary
Short update on the challenge: all the smart home stuff is so annoying.
Read more
2022-07-12
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
Browse