My usual procrastination habits are a great filter for checking whether the links I put together in these are evergreen. I usually gather them when I see them but then months go by before I give the post some format, add my commentary, and hit publish. That tends to leave me enough time and perspective to check whether the links are signal or noise. Maybe I’m just coping. Enjoy 1) I’ve…
One of the many projects I had started over the last few months was a daemonized shell. I wanted to understand how terminals work more in depth, and how tmux does what it does. In order to do that, I started building a very simple PTY daemon. My idea was something like: I want to be able to daemonize a shell, and then have some sort of listening process that controls it and can send bytes to it.…
I have recently joined a startup with a staggering number of repositories for the size of the team. The repos are all quite small, though. Behind me are the days working with the Rails monolith that made git operations feel slow. I like things to be snappy, so I’m just writing my notes so I don’t forget them for next time I need them. These notes are mostly for myself, but if you find…
I changed jobs a couple of weeks ago and got a nice Thinkpad, with Fedora installed. On the right-hand side of the keyboard, where one would expect keys like Super_R, Menu, Ctrl_R, right between Alt Gr and the fingerprint reader there was… something else. I didn’t think much of it at first, I even assumed it was the Menu key, but I accidentally pressed it in combination with…
I spend more time than I probably should building a workflow that feels right for me. Part of it is because I believe it makes me more productive, but I won’t hide that it’s also partly because I enjoy the process itself. Since I spent a lot of time in the terminal, that’s where most of my tinkering ends up happening. Inspired by this blog post by Evan Hahn that recently 1 made…
Let’s dive right in by considering a few scenarios: Banking app . In order to show the user their current balance, you add up all their bank movements since they opened the account. CMS . In order to display a word count at the top of an article, you parse the entire contents and sum up each word. Project management . In order to display the completion percentage of a project, you iterate…
A Language Server Protocol (from here on, LSP) is a very useful developer companion. In a nutshell, it allows text editors to get some of the features of a fully-fledged IDE: smarter autocomplete, formatting, refactoring tools, documentation, etc. Despite everyone’s obsession with Visual Studio Code, I have stayed true to Sublime Text, which works perfectly fine for me. But what’s the…
1) Reflections on a decade of coding was a great read—especially the Coding section. On a similar vein, reading grug is always a good idea. 2) I like reading about security vulnerabilities. For the most part. I came out of this write-up terrified and swearing off CUPS forever. In case you think I’m exaggerating, here is a follow-up . 3) Writing a calculator app is easy, until you think about…
Every so often I like to waste spend some time tinkering with my computer’s configuration. Part of it is, of course, to make it look nice. There’s something satisfying about getting the right colour scheme, a cool-looking prompt, and a custom bar that shows exactly the information you want where you want it. But I’d argue there’s also some valuable lessons to be learned…
These sort of lists seem to be very popular —and some are actually quite good!—, so I figured I would add my own two cents. Without further ado: 1. Don’t use your colleagues as a replacement for effort # Learning when to ask your colleagues versus trying something out yourself is a skill you will have to learn. I think most of us, depending on the environment, our upbringing, and our natural…
1) In 1983, Ken Thompson, one of the pioneers and giants of computer science, received the Turing award. His acceptance speech, “Reflections on Trusting Trust”, presents a fascinating attack vector. You can read about it here . 2) Russ Cox, over at swtch, has a great explainer going into further detail on how this would work, implementing it, and how the Go compiler avoids it: Running…
Last 11-12 June I had the amazing opportunity to attend the StaffPlus conference in London. As a mid-level developer, the prospect is a bit daunting. You know you will learn a lot and meet interesting people, but you are not exactly the target audience of the talks, so how valuable can it really be? It turns out, a lot. Listening to staff+ engineers was helpful in two main ways. Or in two main…
1) A few hours after I wrapped up the last roundup I learned about CVE-2024-3094. It’s a fascinating —and terrifying— situation: a vulnerability was intentionally introduced by one of the core maintainers of xz over a couple of years. It was randomly discovered by pure luck, and one wonders what other issues are out there like this. And also, who was behind it. Read more at Everything I Know…
1) One of the best ways to learn how to use your tools is by looking through how other people use theirs. This is why Adrian Göransson’s Dotfiles digest: git is the first link in this post. For the uninitiated, dotfiles is the term commonly used to refer to those configuration files we all have lying around our computer (.zshrc, .bashrc, .gitconfig, etc.). 2) Through Adrian’s post I…