¬ 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

Claude Code supports images as input. Absolutely incredible; considering that it is a TUI, one would usually not expect the ability to do so. Copy the image to your clipboard as usual, and then paste it in with Ctrl + V, as you would in...
Problem statement: grep1 for a given string in a multitude of multi-page PDF files: % du -sh very_large_file.zip 513M very_large_file.zip % unzip very_large_file.zip [...] % ls -1 *.pdf | wc -l 6816 There’s a tool called ripgrep-all...
Problem statement: Given a PostgreSQL DB, obtain its total size, preferably in a human-readable format (pretty-printed). Option 1: SQL query SELECT pg_size_pretty(pg_database_size('dbname')); 11 GB Option 2: psql CLI \l+ dbname List of...
.terraform-version at the root of a git repository is recognized by various tools: tfenv tfswitch terrateam You would expect the hashicorp/setup-terraform github action would also recognize it out-of-the-box, but it does not. We can...
Previously. When a package is installed with --HEAD: % brew install --HEAD pancake …brew upgrade won’t automatically fetch its latest version. In order to do so, run: % brew upgrade --fetch-HEAD [package...] Source1. I answered it there,...
Error message when doing git push: % git push ERROR: The '{corp}' organization has enabled or enforced SAML SSO. To access this repository, you must use the HTTPS remote with a personal access token or SSH with an SSH key and passphrase...
Sometimes connections simply fade away. Life happens. Privacy prevails. Then why don’t people remove them both ways (follower + following)? If you don’t want to stay connected with someone any longer, it is good courtesy to do so...
After owning an iPhone 14 Pro for more than two and a half years, its maximum battery capacity degraded to ~76%. It is not a terrible number, but the general recommendation is to take action whenever it goes below 80%, which happened a...
I famously do not run any kind of analytics in this blog, neither server-side or client-side. I genuinely have no idea how many people subscribe to it via RSS, and how many “page hits” it has been accumulating over its lifetime. This is...
Thanks Justin Searls for the idea: I use Homebrew all the time. Whenever I see a new CLI that offers an npm or uv install path alongside a brew one, I choose brew every single time. Me too. And yet, when it comes time to publish a CLI of...
Previously. I configured my Claude Code instance at work to include exactly 3 MCP servers: github playwright (browser automation / testing) atlassian (JIRA, Confluence, etc) Sensible, right? It’s not like I’m a heavy user of MCPs. I...
Problem statement: Given an existing repository whose default branch is master, make it become “fresh” (=fully reset it), as if it had just been created. # backup the current default branch, just in case git branch backup-old-master git...
Replaced all occurrences of pipx run in my projects with uvx. uvx docs: The uvx command invokes a tool without installing it. Perfect for one-off tool executions (“one-shots”). For example: % cat ~/.bin/az_switch #!/bin/sh # Switch...
Alpine Linux: The Alpine Linux Technical Steering Committee (TSC) has decided to change the base filesystem hierarchy. In the future, /lib, /bin, and /sbin will be symbolic links to their /usr counterparts, and every package shall be...
OR: “cherry-pick a cherry-pick”. Adam Johnson: git cherry-pick allows you to copy a commit another branch to your current one. […] One limitation with a straight-up git cherry-pick, as above, is that it always copies the entire commit....
Search Random