¬ 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
♠ Previously. Problem statement: review an AI-written slop pull request from a teammate. We’ll use a clanker to review slop PRs. First, I invoke the /meat skill, turning the diff into a reading guide, inspired by David Crawshaw: /meat...
♠ Problem statement: split a running Pi conversation / session into a second independent one whilst keeping the original. Pi has three similarly named albeit distinct operations: /fork /clone pi --fork <path|id> /fork opens a selector...
♠ Problem statement: a code block that quotes a markdown file swallows the first closing fence it meets, which is the inner one. The ADRs and LLMs post quotes a README.md that itself contains a fenced template. Written naively:...
♠ Problem statement: I want to sell a 32 GB microSD card, previously used to boot a Raspberry Pi. % diskutil list disk4 /dev/disk4 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *32.0 GB disk4 1:...
♠ Previously. Problem statement: every brew upgrade died on a cask whose app had upgraded itself years ago. % brew upgrade ==> Upgrading 1 outdated package: 1password 7.9.2 -> 8.12.33 ==> Upgrading 1password 7.9.2 -> 8.12.33 Error:...
♠ Previously. Problem statement: some readers may not want AI-assisted posts in their feed reader, even with my edits. I support making it easier for people to opt out from such posts. They should be able to filter them out without...
♠ Previously. Problem statement: my Pi extension blocked dangerous shell commands outright, even when I had already preserved the state they could destroy. The guard parses every bash tool call with tree-sitter, catching commands such as...
♠ Problem statement: asking a coding agent whether it runs in a sandbox returns a confident answer derived from its system prompt, not from the machine it is actually running on. I asked Pi exactly that. The reply was assured: No — pi...
♠ Previously. Problem statement: make my cdg shortcut jump from a linked Git worktree back to the main checkout when already at the worktree root. The shortcut originally stopped at the current checkout’s root: alias cdg='cd "$(git...
♠ Problem statement: given a cmux session with a dozen1 workspaces, how can you quickly find the one you’re looking for? Keyboard shortcut (macOS): Cmd + ⌥ + F. Source. There’s also a system tray icon for cmux with a Search All...
♠ hwatch: hwatch: alternative watch command with history, diff view, JSONL logging, and change hooks. since 2018. Or, even better, from its man page hwatch(1): hwatch is like watch command, repeatedly executes a command and displays its...
♠ Problem statement: brew doctor found one deprecated cask and one installed keg whose formula had disappeared. tflint # Warning: Some installed casks are deprecated or disabled. You should find replacements for the following casks:...
♠ Previously. Problem statement: meat only documents a go install command, but I want Homebrew to manage it1. The existing installation lived under $GOPATH: % go install meat.dev/cmd/meat@latest % which meat...
♠ Problem statement: a terraform project planned clean locally (terraform plan), but CI insisted on a diff. Every apply fixed it for one side and broke it for the other, back-and-forth. The culprit was a null_resource that rebuilds an...
Wisdom is a strange thing. The Wisdom Paradox is this: when we realise we are less wise than we thought, we become wiser. […] Good judgment comes from experience, and experience comes from bad judgment. The naivety of youth is a lovely...