$ls -lt ~/blog
blog
# notes from the homelab and from production — mostly what broke first # anotações do homelab e da produção — quase sempre o que quebrou primeiro
$grep -l "#tag" *.md
-
A tap that pulls: a Homebrew tap nothing pushes to
Um tap que puxa: um tap do Homebrew para onde ninguém faz push
Five projects used to commit their formulas into my tap, which meant five copies of a token that could rewrite the thing installing software on other people's machines. Now the tap reads each project's latest release on a cron and regenerates its own formulas — one table per tool, and no secret to leak because there is no secret.
Cinco projetos commitavam as próprias formulas no meu tap, o que significava cinco cópias de um token capaz de reescrever a coisa que instala software na máquina de outras pessoas. Agora o tap lê o último release de cada projeto num cron e regenera as próprias formulas — uma tabela por ferramenta, e nenhum secret pra vazar porque não existe secret.
-
The same store, the same keys: a pass-compatible password manager in Rust
A mesma store, as mesmas chaves: um gerenciador de senhas compatível com o pass, em Rust
hidePass does not own the format — it reads and writes the
~/.password-storeyou already have, with the same gpg keys and the same git history, and CI cross-checks that against the real pass on every push. Built-in one-time codes and passphrases, and copied secrets that clipboard managers refuse to record.O hidePass não é dono do formato — ele lê e escreve o
~/.password-storeque você já tem, com as mesmas chaves gpg e o mesmo histórico git, e o CI faz cross-check disso contra o pass de verdade a cada push. Códigos de uso único e passphrases embutidos, e segredos copiados que os gerenciadores de clipboard se recusam a registrar. -
Nothing above it to restart it: writing an init for Linux in Rust
Não existe nada acima dele pra reiniciar: escrevendo um init para Linux em Rust
PID 1 is the one process on the machine with no supervisor above it — if it exits, the kernel panics. oxinit is a service manager and PID 1 for Linux in Rust: no panic, unsafe quarantined in a single file, one epoll loop on one thread, TOML units where "needs it running" and "starts after it" are different sentences, and a non-goals list doing most of the work.
O PID 1 é o único processo da máquina sem supervisor acima dele — se ele sai, o kernel entra em panic. O oxinit é um gerenciador de serviços e PID 1 para Linux em Rust: sem panic, unsafe isolado num arquivo só, um loop de epoll numa thread, units TOML onde "precisa dele rodando" e "inicia depois dele" são frases diferentes, e uma lista de não-objetivos fazendo a maior parte do trabalho.
-
The engine was not a choice: eight years in the games industry
A engine não era uma escolha: oito anos na indústria de games
Eight years, 2017 to 2025, from the infrastructure side of studios: build pipelines, CI, and the technical decisions a team then lives with for years. The engine was always Unity, and nobody in the room had chosen it. The four ways that reached my side of the wall — and the criteria I pick tools by now.
Oito anos, de 2017 a 2025, pelo lado da infraestrutura dos estúdios: pipeline de build, CI e as decisões técnicas com as quais um time depois convive por anos. A engine era sempre Unity, e ninguém na sala tinha escolhido. As quatro maneiras pelas quais isso chegava do meu lado do muro — e os critérios pelos quais eu escolho ferramenta hoje.
-
Nothing decays in secret: building Greenvale
Nada apodrece em segredo: construindo o Greenvale
A farming simulation in Rust where soil depletes, metal rusts and pests evolve — and every loss is traceable to a cause. What happens when you design a game with the instincts of a platform engineer: overlays as dashboards, the harvest report as a postmortem, and determinism as test infrastructure.
Um simulador de fazenda em Rust onde o solo se esgota, o metal enferruja e as pragas evoluem — e toda perda é rastreável até uma causa. O que acontece quando você projeta um jogo com os instintos de um platform engineer: overlays como dashboards, o relatório de colheita como postmortem, e determinismo como infraestrutura de teste.
-
Deleting the build step: this site is hand-written HTML again
Apagando o build: este site voltou a ser HTML escrito à mão
Two pages of content were being served by a static site generator, a vendored theme pinned to a 2019 commit and an FTP deploy action pinned to
@master. Here is what came out, what went in, and why zero dependencies is a feature.Duas páginas de conteúdo eram servidas por um gerador de site estático, um tema vendorizado travado num commit de 2019 e um deploy FTP travado em
@master. O que saiu, o que entrou, e por que zero dependências é uma feature. - # no posts with that tag — yet # nenhum post com essa tag — ainda