¬ just serendipity 🍀

¬ just serendipity 🍀

Thiago Perrotta

Welcome to my digital garden – a space dedicated to exploring technology and sharing what I’ve been learning. This site reflects my passion for continuous learning and open-source software, wherein I document my journey, offer insights, and dive into miscellaneous topics that reflect my interest. My goal is to maintain a corner of the Web for self-expression focused on valuable, distraction-free content. I believe in the power of the Open Web as a platform for sharing knowledge.

Latest Posts

Faff connecting a new Kindle to a Mac with a USB cable by Pete Graham: TL;DR: new Kindles don’t show up as external drives on macOS when connected by USB-C. You need a program like OpenMTP to transfer files to them My Kindle Paperwhite,...
Problem statement: I present this to you the same way I presented it to Amp Code in the context of my ~/.dotfiles: new shell alias: ee quit all shells example: $ bash $ bash $ zsh Now we're 3 levels deep. "ee" should quit them all...
Scenario: we’re test-driving the adoption of a Terrateam feature called stacks. The specifics aren’t relevant here. In a typical agentic LLM session with Claude Code1, the feature was drafted (planned) and then subsequently implemented....
Problem statement: execute a .js script in a GitHub workflow. The script must be stored in a separate file (than the workflow) in the same git repository. Why store the file separately? Inlining a big script is ugly and very non-elegant...
I own a smart speaker for many years now. It happens to be a Google Home1. Top three usage patterns: hey google, what’s the weather? hey google, wake me up at 8am hey google, set a 30-minute timer (for the kitchen, or for the laundry)...
TIL: You can add groups to your Justfile.: Recipes and modules may be annotated with one or more group names: Before: thiago.perrotta ~/.dotfiles git:master ❯ just --list Available recipes: bootstrap # Bootstrap environment (install...
Hello world. This blog post is being dictated by Superwhisper. I’m not writing any text at all. Every word that is coming out was dictated one by one. Frankly I have no idea whether this works effectively or not, but apparently...
Previously. Flameshot doesn’t support collating multiple screenshots together. This has been requested (which duplicates #1130), but remains unimplemented. The amazing ImageMagick (convert) comes to the rescue as always: shell # vertical...
Once upon a time, my alpine linux VPS was located in Toronto (Canada). For a while now it’s been in Frankfurt (Germany). Linode makes changing the location of your VPS a breeze. Recently though I realized I forgot to update the system...
Problem statement: package prek for Alpine Linux. prek is a modern replacement for pre-commit, covered (many times) in this blog1. Previously. It’s already a breeze to create APKBUILDs. I’ve been doing so for ages. Now, in 2026, with...
Previously. A monk asked the master: “Why can I not reach the printer?” The master replied: “Because you are still connected to the mountain.” The monk disconnected from the VPN. The document printed itself. Note to self: before...
Previously. Disclaimer: Some LLM magic was used in this blog post1. From mid-2022 to late 2023, I was one of the core contributors to chromium-bidi, an implementation of the WebDriver BiDi protocol for Chromium. This was before the...
I have a radio shell script in pancake (=miscellaneous unix scripts) that streams curated (and free) internet radio stations via mpv. It works great from the terminal, but I wanted to go one step further and make it available from a web...
I used to have a blog during my university years. It was in WordPress, hosted at https://thiagoperrotta.wordpress.com/, called “Everyday Serendipity”. At first I would write in my mother tongue (Portuguese), then I would switch to...
Besides Wordle by the NYT and Jumblie by Cassidy Williams, now we have Pears by Slate. It’s a word game in the same spirit of its predecessors. A different game every day. I find it a bit harder (challenging!) than it seems at first...
Search Random