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.
rollcat’s web page.
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.
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.
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.
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.
Short update on the challenge: all the smart home stuff is so annoying.
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.
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.