powRSS
Home Recent Shuffle Blogs Random

¬ 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.

July 2026

August 2026

September 2026

Top Words

  • claude
  • code
  • github
  • reply
  • homebrew
  • script
  • anki
  • shell
  • atuin
  • commit

All posts (393)

♠ Previously. Problem statement: prek 0.5 removed prek auto-update, which broke every scheduled updater (github workflows) we have. The workflow installed the latest stable release. One week it resolved 0.4.14: Resolved "latest" to latest stable release 0.4.14 Using prek 0.4.14 Run prek auto-update --freeze...
♠ Problem statement: create a git alias / script to diff against the default upstream branch, inspired by chromium depot_tools(7) git-upstream-diff(1): git-upstream-diff — Print a diff of the current branch, compared to its upstream. I used to have an alias for it in 2024, but I did not have a reliable way at the...
♠ Problem statement: deleting an ArgoCD Application from Git (GitOps) does not guarantee it will disappear from the cluster. We removed an app-of-apps child from every garden it lived in and merged the PR. The parent synced clean: phase: Succeeded message: successfully synced (all tasks run) An hour later, six...
♠ Previously. I added a TV shows page with a sample of my favorites, inspired by Michael Harley’s watching page and Michael Stapelberg’s series page. The list lives in YAML. Trakt keeps my full watch history; this file stays small, alphabetical, and intentionally incomplete: shows: # keep-sorted start case=no...
♠ Problem statement: nested shell quotes made a remote PostgreSQL update harder to run than the update itself. The target is an Alpine Linux host. Its Miniflux configuration contains the database connection string, so psql must run after sourcing /etc/miniflux.conf through doas. An inline command quickly becomes a...
♠ Problem statement: my blog archive was useful, but did not show its posting pattern over time. I liked Jim Nielsen’s calendar view, so I added one too. List remains better for finding a post. The new calendar is for seeing when I published. The calendar and list use one filter. Coding, recipes, and RSS-only posts...
♠ Problem statement: given my miniflux server with hundreds of RSS feed subscriptions, add emoji country flags to each feed title, representing their country of origin and/or the country they’re associated with1. For example: Before: Not Just Serendipity by Thiago Perrotta After: Not Just Serendipity by Thiago...
♠ Problem statement: a coding agent stops when it thinks it is done, not when the thing is actually done. /goal sets a condition that outlives the turn. The docs call it a wrapper around a session-scoped, prompt-based Stop hook: every time the agent tries to end its turn, an evaluator checks the condition and pushes...
♠ Problem statement: a coding agent stops when it thinks it is done, not when the thing is actually done. /goal sets a condition that outlives the turn. The docs call it a wrapper around a session-scoped, prompt-based Stop hook: every time the agent tries to end its turn, an evaluator checks the condition and pushes...
♠ A serendipitous discovery: macOS continuity. Picture this: I am using my corp Macbook Pro, whilst my personal Macbook Air happens to be close by. Both of their lids are open. In my corp Macbook, for some reason, I decided to move the mouse cursor to the edge of the laptop screen, using the trackpad. And then, just...

Page 2 of 40