powRSS
Home Recent Glimpses 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
  • reply
  • github
  • script
  • homebrew
  • commit
  • shell
  • atuin
  • update

All posts (395)

LLM: Unlike bin.install in Homebrew (which moves files by default if not given a hash), install (the Unix command) copies files. It does not consume the source file. Why would you design bin.install like this??! You’ll see stuff like this in some formulae. This moves the file foo into the formula’s bin directory...
Ghostty supports shaders. This repo hosts a collection of custom shaders readily available. I integrated them with my .dotfiles via a submodule: Ghostty config: custom-shader = shaders/cursor_tail.glsl The cursor_tail.glsl file was added with a symlink to the submodule. The end result? #power Mitchell Hashimoto:...
It takes effort to overcome friction. This year I have completely moved away from Google Search. First, thanks to ChatGPT. Then, thanks to Kagi. You may think this is a blog post gimmick to sound dramatic, but it is really not. Nowadays I bail out to Google (!g in Kagi and in DuckDuckGo) very rarely: to search for a...
My current workflow to manage shell history is simple, I have this config in my ~/.zshrc.d/ shell Copy # fzf: fuzzy file finder if (( $+commands[fzf] )); then # alpine/arch, debian src_files {/usr/share/fzf,/usr/share/doc/fzf/examples}/{completion,key-bindings}.zsh # brew if (( $+commands[brew] )); then src_files...
I face this annoyance all the time: thiago.perrotta@thiagoperrotta-MacBook-Pro ~ % python zsh: command not found: python 127 thiago.perrotta@thiagoperrotta-MacBook-Pro ~ % python3 Python 3.14.0 (main, Oct 7 2025, 09:34:52) [Clang 17.0.0 (clang-1700.0.13.3)] on darwin Type "help", "copyright", "credits" or "license"...
From ‘Technical Support’ tales of the trenches. Whenever CorelDRAW is installed on Windows, by default it will display ads upon startup, every single day. I call this malware. To disable this hostile behavior: Open Task Scheduler (‘Agendador de Tarefas’) Look at the task library (‘biblioteca do agendador de...
When using Chromium or derivatives, you can add a bookmark to your Bookmarks Bar with the following link: chrome://bookmarks It’s a quick shortcut to Settings > Bookmarks and Lists > Bookmark Manager.
Problem statement: My blog automatically selects a light or dark color theme depending on the user’s browser or system preferences. Assume it currently defaults to light. How to force dark mode temporarily? This is needed for local testing and theme development purposes. Stack Overflow: Open Chromium (or Google...
Problem statement: Delete all local git branches whose counterpart remote branches have already been merged upstream. Update ~/.gitconfig: gitconfig Copy [alias] prune-gone = !git fetch -p && git branch -vv | awk '/: gone]/{print $1}' | xargs -r git branch -D world = !git fetch --all && git remote prune origin &&...
GitHub allows marking PRs to be merged when ready. This means a merge operation will automatically happen in the background once all PR requirements are satisfied i.e. CI checks pass, teammate approvals, etc. At Google (Critique, Piper) there’s an equivalent setting for internal CLs, which happens to be named “Auto...

Page 31 of 40