WritingEscrita
- keybinds-tui: a keybinding cheatsheet that can't lie to you keybinds-tui: um cheatsheet de atalhos que não pode mentir pra você
DRY, "don't repeat yourself," is usually taught as a rule about code duplication. I ran into its harder version while fixing my own keybinding cheatsheet, a static file that went wrong the moment I forgot to update it after rebinding a key. DRY, "não se repita," normalmente é ensinado como regra sobre duplicação de código. Encontrei a versão mais dura dele consertando meu próprio cheatsheet de atalhos, um arquivo estático que ficou errado no instante em que esqueci de atualizar após reatribuir uma tecla.
- oikos: what lazy evaluation looks like when the values are a TV and a Kindle oikos: como fica a avaliação preguiçosa quando os valores são uma TV e um Kindle
Lazy evaluation is usually a language-design footnote, don't compute a value until something asks for it. I found myself reaching for the same idea over and over while building a homelab, just with the values being movies, book chapters, and a controller state instead of expressions in a compiler. Avaliação preguiçosa normalmente é nota de rodapé de design de linguagem, não compute um valor até que algo peça por ele. Me peguei recorrendo à mesma ideia várias vezes construindo um homelab, só que com os valores sendo filme, capítulo de livro e estado de controle em vez de expressão dentro de um compilador.
- What a support-automation project taught me about specs that go stale in real time O que um projeto de automação de suporte me ensinou sobre specs que desatualizam em tempo real
"The map is not the territory" is quoted so often it stops meaning anything. I didn't understand it as an operational fact until I spent a month building automation against a process diagram that got redrawn three times while I was implementing it. "O mapa não é o território" é citado tantas vezes que para de significar algo. Só entendi isso como fato operacional depois de passar um mês construindo automação em cima de um diagrama de processo redesenhado três vezes enquanto eu implementava.
- hyprpad: a phone as a trackpad, keyboard, and remote for Wayland hyprpad: um celular como trackpad, teclado e controle remoto pro Wayland
Most phone-remote tools for the desktop want an app on both ends and lean Windows-first. This is a single Python file, no install on the phone, that turns it into a trackpad, keyboard, and media remote for a Wayland desktop over the browser. A maioria das ferramentas de controle remoto por celular quer um app dos dois lados e prioriza Windows. Isto é um único arquivo Python, sem instalar nada no celular, que o transforma em trackpad, teclado e controle de mídia para um desktop Wayland pelo navegador.
- Creatures (1996) and the accidental invention of AI alignment problems Creatures (1996) e a invenção acidental dos problemas de alinhamento de IA
A 1996 life simulation game shipped neural-networked creatures with real pain signals. Players promptly built torture chambers. The community debate that followed was structurally identical to arguments happening in AI ethics today — twenty-six years earlier. Um jogo de simulação de vida de 1996 tinha criaturas com redes neurais reais e sinais de dor. Os jogadores prontamente construíram câmaras de tortura. O debate que se seguiu na comunidade é estruturalmente idêntico às discussões de ética em IA de hoje — vinte e seis anos antes.
- Migrating a shared library across 8 microservices Migrando uma biblioteca compartilhada em 8 microsserviços
How a single change in a shared library replaces thousands of lines of legacy code across an entire platform — and the bugs you find along the way. Como uma mudança em uma biblioteca compartilhada substitui milhares de linhas de código legado em toda a plataforma — e os bugs que você encontra no caminho.
- Auditing a PII exposure across a Java microservice stack Auditando uma exposição de PII em um stack Java de microsserviços
What starts as a single observation — a password stored in plaintext — unfolds into nine distinct attack surfaces across seven services. This is what that audit looked like and how the fix was designed around a Java 8 constraint. O que começa como uma única observação — uma senha armazenada em plaintext — se desdobra em nove vetores de ataque distintos em sete serviços. Como foi essa auditoria e como o fix foi desenhado em torno de uma restrição do Java 8.
- Building a security proxy for MCP Construindo um proxy de segurança para MCP
MCP became the standard protocol for connecting AI agents to tools. The protocol has no built-in auth layer. Here's what I built to address it, and what the project has become. O MCP se tornou o protocolo padrão para conectar agentes de IA a ferramentas. O protocolo não tem camada de autenticação embutida. O que construí para resolver isso, e o que o projeto se tornou.
- Claude Code as a personal assistant — vault, environment and site Claude Code como assistente pessoal — vault, ambiente e site
An analysis of how I've been using Claude Code to build a personal knowledge system, configure a development environment, and build this site. Uma análise de como tenho usado o Claude Code para montar um sistema de conhecimento pessoal, configurar o ambiente de desenvolvimento e construir este site.
- Starting Começando
Why I started writing here — on thinking in public and building the habit of writing. Por que comecei a escrever aqui.