ADRIANOLAUREANO← Início

Artigos técnicos

Sobre software, arquitetura, desempenho e outras curiosidades técnicas.

38TESTES · COBERTURA · CI · RUSTComo um framework executa milhares de testes, mede cobertura e conversa com a CI?Workers, instrumentação e relatórios no Prova 1.0.16 SET 2026 37TESTES · FIXTURES · DOUBLES · RUSTComo testes controlam dependências sem contaminar uns aos outros?Isolamento, lifecycle e determinismo no Prova 0.2.15 SET 2026 36TESTES · RUNNER · ASSERTIONS · RUSTO que acontece quando executamos os testes?Descoberta, execução e relatório no Prova 0.1.14 SET 2026 35FORMATADOR · IDEMPOTÊNCIA · CI · RUSTComo garantir que um formatador seja estável e seguro?Provas, configuração e integração no Traço 1.0.13 SET 2026 34FORMATADOR · LAYOUT · ALGORITMOS · RUSTComo um formatador decide onde quebrar uma linha?Group, Indent, SoftLine e fits no Traço 0.2.12 SET 2026 33FORMATADOR · CST · COMENTÁRIOS · RUSTComo um formatador reorganiza código sem perder seu significado?Trivia, estrutura e comentários no Traço 0.1.11 SET 2026 32IDE · LSP · REFATORAÇÃO · RUSTComo uma IDE entende um projeto inteiro e refatora código com segurança?Índice, LSP e rename transacional na Oficina 1.0.10 SET 2026 31IDE · PARSER · AUTOCOMPLETE · RUSTComo uma IDE entende o código enquanto digitamos?AST parcial, símbolos e autocomplete na Oficina 0.2.09 SET 2026 30EDITOR · UNICODE · PIECE TABLE · RUSTO que existe por trás de um editor de código?Da tecla ao texto na tela com a Oficina 0.1.08 SET 2026 29DEBUGGER · DWARF · STEPPING · RUSTComo o debugger encontra linhas e variáveis?DWARF, código-fonte, variáveis e stepping no Vigia 1.0.07 SET 2026 28DEBUGGER · REGISTRADORES · STACK · RUSTO que existe dentro de um programa pausado?Registradores, memória e stack traces simbólicos no Vigia 0.2.06 SET 2026 27DEBUGGER · PTRACE · BREAKPOINTS · RUSTComo um debugger interrompe um programa?Processos, sinais, ELF e breakpoints 0xCC no Vigia 0.1.05 SET 2026 26CONTAINERS · CGROUPS · REDE · RUSTComo o Docker limita, conecta e mantém containers vivos?Cgroups v2, privilégios, rede virtual e ciclo de vida no Casulo 1.0.04 SET 2026 25CONTAINERS · IMAGENS · OVERLAYFS · RUSTComo uma imagem de container vira um sistema de arquivos executável?Rootfs, camadas, Copy-on-Write e volumes no Casulo 0.2.03 SET 2026 24CONTAINERS · LINUX · NAMESPACES · RUSTO que é um container? Isolando nosso primeiro processo em RustProcessos, namespaces, PID 1 e sinais no Casulo 0.1.02 SET 2026 23LINTER · AUTOFIX · CLI · RUSTComo um linter corrige código sem quebrá-lo?Edições seguras, conflitos, configuração, cache, editor e CI no Crivo 1.0.01 SET 2026 22LINTER · ESCOPOS · FLUXO · RUSTComo um linter encontra problemas que o compilador aceita?Tabela de símbolos, escopos e grafo de fluxo no Crivo 0.2.31 AGO 2026 21LINTER · AST · DIAGNÓSTICOS · RUSTO que é um linter? Construindo um analisador de código do zero em RustReaproveite a AST da Pulso e construa regras extensíveis no Crivo 0.1.30 AGO 2026 20JAVASCRIPT · PROFILING · SHAPES · JIT · RUSTComo um motor JavaScript fica rápido?Hot paths, inline caches, guards e desotimização no Janela JIT 0.5.16 AGO 2026 19RUNTIME · EVENT LOOP · PROMISES · MEMÓRIA · RUSTComo o runtime mantém uma página viva?Call stack, heap, tarefas, microtasks, timers, Promises e GC no Janela Runtime 0.4.15 AGO 2026 18JAVASCRIPT · LEXER · PARSER · BYTECODE · VM · RUSTComo o navegador entende e executa JavaScript?Caracteres, tokens, AST, bytecode e execução na construção do Janela Script 0.3.14 AGO 2026 17NAVEGADOR · REDES · HTML · CSS · RUSTComo o navegador abre um site?URL, DNS, TCP, HTTP, DOM, CSSOM, layout e pintura no Janela Browser 0.2.13 AGO 2026 16GUI · PIXELS · EVENTOS · RUSTComo um computador desenha uma janela?Pixels, buffers, widgets, layout, hit testing e event loop na Janela UI 0.1.12 AGO 2026 15RUNTIME · MEMÓRIA · GC · RUSTQuem limpa a memória? Construindo um garbage collector do zero em RustFeche o ciclo da Pulso construindo um coletor mark-and-sweep com raízes, grafos, marcação e varredura.11 AGO 2026 14CLOSURES · MEMÓRIA · LLVM · RUSTComo closures funcionam por dentro: quando a stack não bastaFaça funções lembrarem do ambiente onde nasceram e entenda captura, upvalues, heap e tempo de vida.10 AGO 2026 13FUNÇÕES · STACK · LLVM · RUSTComo uma chamada de função funciona por dentroConecte parâmetros, retornos e recursão aos frames da VM, à ABI e ao LLVM IR.09 AGO 2026 12LLVM · CÓDIGO NATIVO · RUSTConstruindo um compilador nativo do zero com LLVMTransforme a AST em LLVM IR, código de máquina, arquivo objeto e executável real.08 AGO 2026 11CPU · REGISTRADORES · RUSTComo uma CPU funciona por dentroConstrua uma micro-CPU e veja como registradores, RAM, opcodes e pipeline executam um programa.07 AGO 2026 10COMPILADORES · BYTECODE · VM · RUSTConstruindo um compilador e uma máquina virtual do zero em RustContinue a linguagem Pulso do artigo anterior: gere o formato Pulso Bytecode PBC1 e construa a máquina virtual que o executa.06 AGO 2026 09LINGUAGENS · INTERPRETADORES · RUSTConstruindo uma linguagem de programação do zero em RustConstrua a Pulso e entenda caracteres, tokens, lexer, parser, AST, runtime, escopos e funções.05 AGO 2026 08GIT · CONTROLE DE VERSÃO · RUSTConstruindo um Git do zero em RustConstrua o Rastro e entenda branches, checkout, merge, conflitos e exclusão segura.04 AGO 2026 07BANCO DE DADOS · ALGORITMOS · RUSTConstruindo um banco de dados do zero em RustCrie o Mini DB e entenda serialização, páginas, buscas, índices, cache e tombstones.03 AGO 2026 06SISTEMAS OPERACIONAIS · EXECUTÁVEIS · RUSTComo um computador executa um programa por dentroDo executável à CPU, construindo o mini-loader LUME com segmentos, memória, stack, heap e runtime.02 AGO 2026 05SISTEMAS OPERACIONAIS · FORMATOS BINÁRIOS · RUSTConstruindo um sistema de arquivos do zero em RustCrie o RaizFS e entenda blocos, bitmap, inodes, diretórios, alocação e fragmentação.01 AGO 2026 04FORMATOS BINÁRIOS · IMAGENS · RUSTComo um PNG funciona por dentroDos pixels e canais aos chunks, filtros e compressão na construção de um leitor PNG funcional.31 JUL 2026 03ARQUIVADORES · FORMATOS BINÁRIOS · RUSTConstruindo um compactador de arquivos do zero em RustCrie um arquivador .lzip funcional e entenda índices, offsets, serialização, extração e integridade.30 JUL 2026 02FORMATOS BINÁRIOS · RUSTComo um computador sabe qual programa deve abrir um arquivo?Da extensão e dos magic bytes a um encoder, decoder e visualizador de imagem construídos em Rust.29 JUL 2026 01ATARI 2600 · RUSTComo fazer um jogo de Pong para Atari 2600Da arquitetura do console a uma ROM real de 4 KiB com vídeo, controles, física, IA, placar e áudio.26 JUL 2026

Receba o próximo artigo.

Uma mensagem quando uma nova investigação estiver pronta, com o projeto, os bastidores e as decisões que não cabem no título.