Articoli di Rafael Duarte
Seu IP não sabe onde você está (e o que isso quebra no seu sistema)
Geolocalização por IP é 99% precisa no país, 50–75% na cidade — e a maioria dos sistemas assume o melhor caso. O que o IP revela de fato, o que o ASN entrega melhor, e por que VPN não resolve WebRTC.
Apple reconstruiu a Siri em cima do Google Gemini — o que isso significa
A Apple pagou US$ 1 bilhão por ano ao Google para rodar o Gemini na Siri. A empresa que vendia privacidade como produto acabou de terceirizar o núcleo do seu assistente para o maior rival do iOS.
Claude Fable 5: o benchmark que virou manchete e a política de dados que vai impactar o seu contrato
Claude Fable 5 chegou com 80,3% no SWE-Bench Pro. O que poucos estão lendo: a nova política de 30 dias de retenção que afeta contratos enterprise com zero-retention.
npm v12 vai bloquear scripts de instalação por padrão — prepare sua pipeline agora
npm v12 bloqueia postinstall, git deps e remote deps por padrão. Entenda o que muda, como usar npm approve-scripts e como preparar seu CI antes de julho de 2026.
OpenAI e Anthropic vão a IPO: o que muda para quem constrói em cima das APIs
Dois labs de IA abrindo capital na mesma semana não é só notícia de mercado. É o momento em que a empresa que fornece o seu LLM passa a ter acionistas, resultados trimestrais e uma relação diferente com você.
Como Bloquear o Google AI Overviews (Sem Perder Ranking)
Google-Extended não bloqueia AI Overviews. Entenda a diferença, o que mudou com a decisão do CMA em 2026 e como usar o opt-out correto via Search Console.
Miasma Worm: Seu AI Coding Agent Pode Ser o Vetor de Ataque
O Miasma worm comprometeu 73 repos do Azure via arquivos de config de AI agents. Entenda o vetor, o ataque de hidden Unicode e como proteger seus secrets.
TypeScript 7.0 e o Compilador em Go: O Que Muda de Verdade no Seu Workflow
TypeScript 7.0 compila 10x mais rápido com compilador nativo em Go. Veja as breaking changes no tsconfig, a armadilha dos plugins e a ordem correta de migração.
Angular 22: OnPush como padrão, Signal Forms estáveis e o que fazer antes de rodar ng update
Angular 22 chegou com OnPush como default, Signal Forms e httpResource estáveis. Veja o que muda, o que o ng update faz sozinho e o que você precisa revisar manualmente.
Salt, pepper, bcrypt e Argon2id: como proteger senhas de verdade
Em 2012, o LinkedIn expôs 117mi de senhas. SHA-1 sem salt — 90% quebradas em 4h. Entenda o que cada camada de proteção resolve e por que Argon2id é a escolha certa hoje.
JSON Schema na prática: validar antes de processar
JSON Schema não valida se o JSON está bem formado — valida se ele respeita o contrato que você definiu. Como implementar validação de entrada em Node.js e Python, e por que additionalProperties: false importa.
PostgreSQL 19 Beta: async I/O que se escala sozinho, graph queries nativas e as breaking changes que vão te pegar de surpresa
PostgreSQL 19 Beta 1 traz async I/O com auto-scaling, SQL/PGQ para graph queries nativas, inserts 2x mais rápidos com foreign keys e autovacuum paralelo. Mas são as breaking changes — JIT desativado, lz4 como TOAST default, RADIUS removido — que você precisa testar antes do GA.
CNPJ alfanumérico: você não vai ganhar um novo número, mas sua empresa vai precisar mudar
O CNPJ alfanumérico chega em julho de 2026. Entenda o que muda para sua empresa, o que pedir para seus fornecedores de software e o que falar com seu contador.
Regex não basta para validar CNPJ alfanumérico
Atualizar a regex para aceitar letras não valida CNPJ alfanumérico. Sem calcular os dígitos verificadores, CNPJs inválidos entram no seu banco silenciosamente.
JSON Schema para API REST: as decisões que fazem o contrato funcionar
Como criar um JSON Schema para validar payload de API REST — de amount com multipleOf a enums, arrays e $ref — com as decisões de design explicadas.
JSON Schema: por que você recebe "must be number" e como corrigir de vez
O erro 'must be number' do JSON Schema tem quatro causas reais em produção. Entenda por que acontece, como ler o instancePath e por que coerceTypes é a resposta errada.
JSON Schema required: o que realmente valida (e o que não valida)
A keyword required em JSON Schema valida presença de chave, não de valor. Entenda por que null passa em campos required e como fechar esse contrato corretamente.
Seu sistema valida CNPJ com regex numérica? Em julho de 2026 isso vai quebrar
CNPJ alfanumérico entra em julho de 2026. Saiba o que muda no seu código: regex, tipo de coluna no banco e algoritmo de dígito verificador.
`P@ssw0rd1` passa na sua validação. Esse é o problema.
O que o NIST mudou em 2024 sobre senhas: comprimento bate complexidade, leet speak está no rockyou.txt e rotação obrigatória enfraquece senhas.
QR code não é só URL: os schemas que todo dev deveria conhecer
otpauth, WIFI, MECARD, deep links e PIX — os schemas internos do QR code que resolvem problemas reais de desenvolvimento, com exemplos de código.
TBT de 1.6s em produção: o que de fato resolveu no Quick Tools com SvelteKit
Caso real de otimização de performance em SvelteKit: manualChunks, dynamic imports, service worker e o bug de clients.claim() que quebra chunks após deploy.
Timestamps sem timezone: a migração que levou três semanas
O erro silencioso de armazenar datetimes sem fuso horário: como acontece, por que ninguém percebe, e como evitar a migração dolorosa.
Três erros de cron expression que só aparecem em produção
Timezone implícito, OR lógico no dia-da-semana e meses sem dia 31 — três erros de cron expression sintaticamente válidos que falham silenciosamente em produção.
Taxa mid-market: o câmbio que o banco não repassa (e o que isso custa)
A diferença entre taxa mid-market e câmbio do banco é spread. Veja como calcular o custo real e comparar serviços.