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
2022-07-10
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
2022-07-10
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
2022-05-22
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.
2022-05-22
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.
2022-05-02
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
2022-02-13
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
2022-01-23
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
2020-01-15
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
2019-12-22
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
2019-12-22
New stuff
The old website is gone. Welcome the new stuff.
Read more
2019-12-22
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
2015-04-29
The Tech Cheat Sheet
For whenever I forget random silly things like “how to exit vi
” (I’m an Emacs
guy).
Read more
2015-04-29
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
2015-03-01
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