My Discoveries in 2025


macOS

For the first time since 2000, I'm not using Linux as my main workstation. Moving to macOS has been an interesting experience and I've made many tweaks and hacks to make it a comfortable Unix environment. Among other things, I've written install-unix-env-on-macos.sh which configures many macOS features and installs the applications I cannot live without.

The biggest change coming from Linux, was to find a decent window manager. The best I have found, is Aerospace, it's i3 like, but still far from it. It's slower and has lots of bugs. Still, it makes working on macOS bearable. You may check out my Aerospace conf here.

I dearly missed a floating, transparent clock, a minimalistic menu bar (like i3bar), the ability to quickly jump to any window using fuzzy search (like rofi), as well as a better resource monitor (top). To close these gaps, I wrote the apps myself since I couldn't find any existing ones that did exactly what I wanted:

The Swift apps yjump, yclock and ybar were vibe coded (I didn't care about the code, I just wanted to get apps that did what I wanted them to), whereas ytop was written without any AI assistance.

yclock

yclock

ytop

ytop

ybar

ybar

yjump

yjump with fuzzy search for windows

Go

I've learned a new programming language, Go, and must say I like it! As for learning ressources, I can recommend the book, Learning Go. It was my primary learning resource, in addition to Effective Go. For the first couple of months, I refrained from using AI in any form to assist me as I wanted to learn Go the hard way as it makes me better remember what I learn.

Naturally, I made a number of enhancements to my Emacs configuation to make it into a powerful editor for writing Go programs. I have documented all these steps in this YouTube video. The Emacs configuration changes can be found in my .emacs.

Picture from my home office where I spent several weekends getting into Go: Reading an excellent Go book and coding in Emacs

Rego

I've learned a new authorization language, Rego from Open Policy Agent (OPA).

Emacs/Eglot together with the Regal language server makes for a decent editing environment. It didn't provide an easy way to run tests, so to run Rego tests from Emacs, I wrote this elisp function.

Garuda Linux

Arch Linux is my preferred desktop OS, and Debian is the distro I reach for when installing servers. Still, I cannot but love Garuda Linux and enjoy taking it for a spin every now and then:

Garuda Linux

AI

AI is being shoved down our throuts whether we want it or not. I've thought long and hard about how to use AI and what AI assisted coding (vibing included) does to us. I've written this article about it, called Don't fear the pointer.

I think this article on AI in art and this graphic sums it up perfectly:

quote about AI ending up doing the interesting things and humans doing the chores

For the record, I use AI every day: For resarch, to explain code (e.g. "what does the bit shifting in this tcpdump command do?") and to review code I've just written (e.g. "can this be written more pythonic?"), and code where I don't care about the details (like tests and converting between different data formats). For the cases where I "just want to make it work". I've gotten extensive experience in using GitHub Copilot CLI, developing three full apps from scratch with it, and using it to fix failing test cases. I've also have had AI completion configured in my editor for a couple of years already, it sure is fun in the beginning (I've turned it off, though).

Thanks!

And with that, I'm signing off, looking forward to new technological challenges in 2026. TTFN!


Licensed under CC BY Creative Commons License ~ ✉ torstein.k.johansen @ gmail ~ 🐘 @skybert@hachyderm.io ~ 🎥 youtube.com/@skybert