Izimani | Shorts

Feed of short and not-so-short but definitely unstructured thoughts and ideas.

Skill Issues and Mirrors

The other day, I was revisiting a somewhat dated Python codebase. It used Python 3.11, and I thought it was time to upgrade to Python 3.14. Let’s keep stuff clean.

I assumed this was the ideal task for Codex: modify a few files here and there and check for any relevant new features/deprecations. Quite dull for me, but a breeze for our mechanical coding friend.

Well, I didn’t necessarily expect a negotiation session instead of a quick Reddit break. I had to convince Codex that Python 3.14 wasn't in beta! I mean, if it had been released last Friday, maybe I would’ve been more empathetic. But come on, it came out last October!

Maybe Python isn’t the forte of Codex. So, to switch things up, I headed over to an Astro project to update a few links (perhaps Codex hates brownfield stuff?). I wanted to add a few target="_blank" snippets. Easy money.

My guy went the extra mile: on top of the target attribute, it also added rel="noopener noreferrer". Feeling somewhat humbled (the machine outsmarted me once again), I had to look this up. Well, it turns out that since 2021, target=”blank” implies noopener. So, I got obsolete stuff just like last time.

I have a few concerns about cases like the above ones:

  • Do those who do Shipping at Inference Speed let such things slip? While these are small, the idea that I’m shipping MUCH worse code than I could’ve produced manually tears me apart.
  • Is there a snowball effect at play here? If I let rel=”noopener noreferrer” into my codebase, is the AI gonna treat that as a codebase convention and replicate it elsewhere?

Geoffrey Huntley has an excellent piece titled LLMs are mirrors of operator skill. Building on this idea, I believe that the quality of the output generated by a language model (rather than the process of its operation alone) is just as much of a reflection of the developer’s craftsmanship. Just because we can “generate” code much faster than before, we can’t let quality slip.

If there’s one thing I find tiresome, it’s calling government offices. So when I had to call the Hungarian National Tax and Customs Administration (NAV) recently, I wasn’t looking forward to the experience.

Since this is not a frequent occasion, I had to look up the number (I know, I’m a horrible citizen). That’s when the surprisingly delightful part happened.

The Tax and Customs Administration, which has to handle a wide range of potential requests, uses a phone menu to route callers to the appropriate agents. Think "Press 1 for tax filings."

Normally, you navigate such a menu by listening to all the available options and choosing one that remotely matches your issue. Then you find yourself in a submenu, then another one, and another one, until you’re eventually routed to a human operator.

There are many issues with these phone menus:

  • Being told about the current options slows down the choice.
  • It’s just so easy to forget the first option by the time you hear the last.
  • You have no way to explore the menu structure except by actually choosing a submenu.

And this is where the tax office, which is not known for its strong UX game, made an outstanding move: it shared its menu structure on its website.

Humble Homelab Beginnings

The centerpiece of my privacy efforts is my new home server (or homelab, if you’re a fan of those white coats). It’s a cute little Chuwi Larkbox X that’s running CachyOS (I really wanted to give Proxmox a try, but I had to accept defeat).

Now, I’ve been a full-time laptop nerd for ages. As I’m frequently on the go, I’m pretty used to a laptop-only setup, with no external displays and no keyboard/mouse combo. However, if I wanted to set up my glorious home server, I needed some peripherals.

Fortunately, I had a beautiful Keychron K2 keyboard lying around (from my mechanical keyboard masterrace days), and I borrowed my girlfriend’s corporate mouse. All fine, all dandy to get the pre-installed Windows superseded by my new friend, CachyOS.

If you want to install a new OS from a USB stick, you have to enter the boot menu, of course. For whatever reason, manufacturers cannot agree on a standard key combo to open this menu, so you have to look it up on the interwebs. Been there, done that, no worries: it’s just a quick search.

Well, a quick search revealed that it might be F7. Or F2. Or F2+Del. Maybe only Del. No, it’s Esc.

For me, however, it was none of the above. I just kept smashing through all the key combos I found on the internet with no success, and an ever-increasing fear that I might be stuck with Windows 11 forever. The horror!

That’s when I noticed my Keychron was in Bluetooth mode.

Pretending that design is some sort of quantifiable hard science—which implies that it could be reproduced by whoever has access to the exact same data—actually does a disserrvice to the role of the designer and the process we go through to get to a great design.

Irene Pereyra Universal Principles of UX

Good riddance, Windows!

While some folks in the software engineering community have relatively strong opinions about their operating systems ("I use Arch, btw"), I’ve never really cared. If the OS doesn’t get in my way, and I can do my thing on my computer, I’m just fine.

And believe it or not, even for software development (especially with the introduction of WSL2), Windows was just fine! Once I got used to the eye-rolling from fellow devs, I had no issues.

Recently, however, Windows started to get in my way. The bloatware. The AI crap. The telemetry. And consequently, the poor performance and even poorer privacy.

I just want to do my thing on my computer. For that end, I must have an OS installed. But that’s no longer Windows.

Good riddance, Windows! Welcome, CachyOS!

Welcome to shorts!

As mentioned in the post Initial commit, I borrowed the idea for the shorts section from TheSephist (Linus Lee) and his stream format.

Writing high-quality long-form articles takes a lot of time and thinking. In some cases, I don’t want to jump through these hoops. Either because the idea isn’t really worth the effort, or I just want to get it out there immediately.

Having a microblog-like section relieves me of the "proper blog post" shackles, allowing for quick, tweet-like expressions. Like this one: this is the "Hello, World" of shorts.