Β¬ 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
- reply
- github
- script
- homebrew
- commit
- shell
- atuin
- update
All posts (395)
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 very clearly stated in the homepage. I take it as a badge of honor. That said, I...
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 my own, I usually just ship it as a Ruby gem or an npm package, because I had...
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 mostly care about: PR introspection / creation occasional unit / integration testing...
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 push origin backup-old-master # create an orphan branch git checkout --orphan...
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 active account in Azure exec uvx az-account-switcher "$@"
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 installed under the /usr paths. For now, /usr/bin and /usr/sbin will continue to 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. If a commit contains multiple changes, but you only want one of them, youβll need...
Tweak ~/.gitconfig: [alias] xl = branch -vv [branch] sort = -committerdate Result: git xl will print your repository branches sorted by the most recent ones in terms of activity, instead of the alphabetical default. I have this setting for a long time, and IMHO itβs a better default. This post by Tekin SΓΌleyman...
You are sending a PR upstream. You accidentally commit it with the wrong email. First, you prevent this mistake from happening again by updating your ~/.gitconfig. And now you need to fix the most recent commit. You can easily do so with: % git commit --amend --reset-author --no-edit Alternatively, with my aliases:...
Problem statement: get a random word via shell scripting. Assume a typical Unix / POSIX environment is available. There are various ways to do so. Dictionary shuffle Pick a random word from the system dictionary: % shuf -n 1 /usr/share/dict/words acrochordon -n controls how many words to pick. Or use sort -R: % sort...
Page 37 of 40