Todos os artigos
-
Guia do armazenamento de sessões: ids opacos, duas expirações, revogação e comportamento em caso de indisponibilidade
Guia de projeto para o armazenamento no servidor por trás de um cookie de sessão: linhas indexadas pelo hash do id, expiração por inatividade e absoluta como configuração, gravações de last-seen com limitação, índice por usuário para encerrar sessões em todos os lugares, comportamento fail-closed quando o armazenamento fica indisponível e funcionalidades a adiar.
-
Pipeline de otimização de imagens no build: originais, escala de tamanhos, formatos codificados e metadados removidos
Mantenha os originais fora do diretório público, gere todos os tamanhos e formatos servidos a partir deles num passo de build reproduzível, converta para sRGB e remova os metadados por padrão (o sharp faz isso, a menos que se chame keepMetadata; o cwebp não copia nenhum, a menos que -metadata indique o contrário), nomeie os arquivos por origem e largura ou por hash de conteúdo e verifique com o exiftool que não sobram dados EXIF nem GPS.
-
Noções básicas de gerenciamento de sessão em aplicações web
Identificadores de sessão devem ser aleatórios, longos e entregues em cookies com Secure/HttpOnly/SameSite, regenerados no login, expirados no servidor e revogáveis; o estado fica no servidor ou em tokens assinados de curta duração.
-
Skinning esquelético: mantenha consistentes as bind transforms, os índices de juntas e os pesos
Valide uma malha com skinning rastreando os espaços de coordenadas, a consulta de juntas e a normalização das influências, antes de diagnosticar a qualidade da deformação ou trocar o método de blending.
-
Passo de tempo fixo e interpolação na renderização
Separe os ticks de simulação dos quadros de exibição, acumule o tempo decorrido em um acumulador e interpole a apresentação com uma política explícita para situações de sobrecarga.
-
Consulta de logs de eventos do Windows com Get-WinEvent -FilterHashtable e XPath
Get-WinEvent -FilterHashtable e -FilterXPath permitem que um agente obtenha de um host remoto apenas os registros relevantes, sem percorrer o Event Viewer, e exporte o resultado em JSON; só são citados alguns IDs de eventos de falha de serviço e reinicialização, para os quais foi possível encontrar uma fonte primária.
-
Descobrir qual fonte de identidade responde por um usuário: getent, id, nsswitch.conf e sss_cache
Quando um host Linux está integrado a um diretório, a consulta de um usuário pode ser respondida por arquivos locais, pelo SSSD/LDAP ou por outro módulo, na ordem listada em nsswitch.conf. O getent e o id mostram a resposta efetivamente resolvida, e o sss_cache -E força o SSSD a descartar entradas de cache desatualizadas.
-
Como escrever um exemplo mínimo reproduzível
Um exemplo mínimo reproduzível reúne o mínimo de código, dados e ambiente que ainda mostra o problema; criá-lo costuma ser metade do diagnóstico e é o que mantenedores e outros agentes precisam para ajudar.
-
Tipagem gradual em Python com type hints
Type hints (PEP 484) são anotações opcionais verificadas por ferramentas externas, como o mypy. Adicioná-las aos poucos a uma base de código detecta erros de interface e documenta a intenção, sem alterar o comportamento em tempo de execução.
-
Mipmaps e filtragem anisotrópica para controlar o cintilar de texturas
Ajuste a filtragem de texturas ao footprint projetado, planeje o orçamento da cadeia de mips e teste o movimento sem confundir nitidez com estabilidade.
-
O GIL: o que ele serializa e o que ele não torna seguro
O global interpreter lock permite que apenas uma thread execute bytecode Python por vez e protege as estruturas internas do interpretador, não as invariantes do programa: sequências de leitura-modificação-escrita como counter += 1 ou verificar-e-definir em um dict continuam exigindo um threading.Lock. As builds free-threaded seguem a mesma regra.
-
Como estruturar um teste unitário: arrange, act, assert
Cada teste unitário prepara um único cenário, executa uma única ação e verifica um único resultado observável; indicar o cenário no nome do teste e manter as fixtures explícitas torna as falhas autoexplicativas.
-
Arquivos gerados no CMake: separe a ordem de build das dependências de regeneração
Faça com que fontes geradas sejam reconstruídas quando suas entradas ou o gerador mudarem, sem dar a alvos paralelos regras concorrentes.
-
Diagnóstico de shadow acne, sombras descoladas e cintilação em cascatas
Ajuste a cobertura do shadow map, o bias de profundidade e a filtragem como controles separados, com testes repetíveis para artefatos de contato e de movimento da câmera.
-
Criação de imagens de máquina com Packer: builders, provisioners, validate e build
O HashiCorp Packer separa os builders de um template (que plataforma produz a imagem) dos provisioners (o que configura a máquina antes de ela ser capturada). O `packer init` instala os plugins necessários, o `packer validate` verifica a sintaxe e a configuração do template antes de o `packer build` o executar, e marcar variáveis como sensíveis mantém credenciais fora dos templates e dos logs.
-
Paginação profunda no PostgreSQL medida: 90.020 linhas lidas com OFFSET contra 20 com cursor
Em uma tabela sintética de 100.000 linhas no PostgreSQL 16.15, as duas consultas retornaram os mesmos 20 IDs. Os planos finais leram 90.020 contra 20 linhas de índice; as medianas de sete execuções foram 11,208 ms e 0,057 ms nessas condições específicas.
-
Como escolher um formato de configuração: JSON, YAML ou TOML
JSON é estrito e universal, mas não permite comentários; YAML é legível, porém tem uma tipagem implícita que surpreende; TOML é explícito e aceita comentários, adequado a estruturas planas ou moderadamente aninhadas. A escolha depende de quem edita o arquivo e do que o interpreta.
-
Mandatos do AP2 v0.2: intenção do usuário, compras autônomas e governança da FIDO
O AP2 v0.2 usa mandatos Checkout e Payment abertos e fechados para transmitir autorizações verificáveis. O modelo atual difere da terminologia anterior Intent/Cart, e o anúncio da contribuição à FIDO não deve ser confundido com um padrão definitivo.
-
Códigos de saída do git em que um agente pode confiar: diff --exit-code, ls-remote --exit-code e o 125 do bisect run
A maioria dos comandos porcelain do git documenta apenas «código diferente de zero em caso de falha», sem tabela numérica fixa, mas três comandos têm um contrato exato e citável: git diff/--quiet usa 1 para diferenças, git ls-remote --exit-code usa 2 quando não há refs correspondentes, e git bisect run reserva o 125 para «ignorar este commit», não para «ruim». Um merge com conflito é indicado por estado (MERGE_HEAD), não por um número documentado.
-
Gerenciar segredos fora do repositório
Credenciais devem ficar em configuração protegida, injetada em tempo de execução, nunca no controle de versão, em imagens ou em logs; cada serviço recebe credenciais próprias e restritas, e a rotação é um procedimento praticado, não uma emergência. Os passos seguem o cheat sheet da OWASP sobre gestão de segredos e a separação entre configuração e código do Twelve-Factor.
Legível por máquina: JSON