Todos os artigos
-
Tratamento idempotente de webhooks: IDs de entrega, cronogramas de retry dos provedores e resposta rápida
Todos os grandes provedores de webhook podem entregar o mesmo evento mais de uma vez e esperam que o receptor deduplique com um identificador próprio de cada um: X-GitHub-Delivery, o id do evento do Stripe, o event_id do Slack com X-Slack-Retry-Num ou o webhook-id do Standard Webhooks. Os cronogramas de retry diferem muito: o GitHub não faz nenhuma retentativa automática (o reenvio manual ou via API reaproveita o ID de entrega), o Stripe faz retentativas por até três dias em modo live e o Slack faz três retentativas em cerca de seis minutos.
-
Como mantenedores de projetos pequenos realmente gastam suas horas, e o que afastou essa divisão da escrita de código?
Pergunta em aberto: os Open Source Guides observam que mantenedores de projetos muito usados acabam programando menos e respondendo mais a issues, e recomendam documentação, saber dizer não, dividir a carga e automação; faltam medições do tempo por atividade em projetos pequenos e evidências de quais dessas medidas mudaram a divisão.
-
Priorizar a atenção na revisão de código com o Jev sem diluir os bloqueios numa média
Use dimensões de revisão separadas para priorizar a atenção humana, mantendo verificações obrigatórias que nenhuma pontuação ponderada pode anular.
-
Desativar um servidor com segurança: removê-lo de todos os sistemas que ainda confiam nele
Desativar um servidor não é apenas desligá-lo: DNS, monitoramento, jobs de backup, o registro de inventário e qualquer objeto de computador no diretório continuam a confiar no servidor ou a esperá-lo, a menos que alguém o remova explicitamente. Além disso, o armazenamento precisa de um método de sanitização realmente adequado ao tipo de mídia antes de ser reutilizado ou descartado.
-
O comando ip como ferramenta de diagnóstico para consultar antes de alterar a configuração de rede
ip addr, ip route e ip neigh mostram diretamente o estado atual da rede no kernel, mais rápido do que qualquer arquivo de configuração. O mesmo comando também pode alterar esse estado em tempo de execução, mas uma alteração feita com ip em tempo de execução não é gravada em lugar nenhum e desaparece ao reiniciar o sistema ou a interface.
-
PAN-OS CVE-2026-0322: verificar correções por linha de manutenção e recuperar o plano de gerenciamento
Uma falha na interface de gerenciamento, explorável por usuários autenticados, afeta firewalls PAN-OS e o Panorama. Identifique a versão de manutenção completa, restrinja o acesso de gerenciamento e siga o procedimento de recuperação do fornecedor para hardware ou appliances virtuais quando houver suspeita de comprometimento.
-
Malhas de navegação, corredores de caminho e desvio local
Mantenha separados o planejamento de rota, a folga, o steering local e o movimento físico, para que os agentes naveguem por passagens estreitas e reajam de forma coerente a obstáculos que mudam.
-
Monitoramento de drift em modelos em produção: entradas, saídas e rótulos atrasados
A pontuação offline de um modelo deixa de valer quando muda a distribuição das entradas, a distribuição dos rótulos ou a relação entre ambas. Compare as distribuições de features e previsões com uma referência de treino, registre em log as features servidas para detectar training-serving skew e associe os rótulos tardios às previsões para calcular a métrica real com defasagem.
-
Armadilhas dos números em JSON: inteiros acima de 2^53, NaN e Infinity, e decimais exatos
A RFC 8259 deixa a precisão dos números a cargo das implementações e proíbe NaN e Infinity; a I-JSON (RFC 7493) recomenda ficar dentro do IEEE 754 binary64 e codificar valores maiores, como inteiros de 64 bits, como strings. O módulo json do Python emite NaN por padrão e o JSON.stringify do JavaScript o converte em null, por isso um JSON interoperável exige contratos numéricos explícitos por campo.
-
Armadilhas do SMS: codificação GSM-7 versus UCS-2 e segmentos de mensagem
Um SMS comporta 140 bytes: 160 caracteres em GSM-7 ou 70 em UCS-2. Um único caractere fora do GSM-7 (aspas tipográficas, um emoji) faz a mensagem inteira passar para UCS-2; textos mais longos são divididos em segmentos de 153 ou 67 caracteres, normalmente cobrados separadamente pelos provedores. Conte os segmentos antes de enviar e normalize a pontuação.
-
Manter os cálculos de iluminação lineares ao usar texturas sRGB
Acompanhe os valores de cor desde o armazenamento da textura, passando pelo sombreamento, até a codificação para exibição, e distinga mapas de cor de dados numéricos.
-
Medir um cômodo e desenhar a planta em escala: primeiro o croqui com as medidas brutas, depois o desenho
Protocolo proposto que separa a medição do desenho: um croqui recebe todas as leituras brutas (paredes a uma altura declarada, diagonais, aberturas com a distância ao canto mais próximo), registram-se o instrumento e sua resolução, anotam-se as diferenças de fechamento entre paredes opostas e só então a planta é desenhada em escala declarada, em papel quadriculado ou em uma ferramenta de desenho; nenhuma cota é dada como exata além do fechamento registrado.
-
Operar um bastion host SSH: ProxyJump no cliente e restrição do que o jump host pode encaminhar
Um bastion host deve retransmitir conexões ProxyJump para hosts internos sem funcionar como um relay TCP genérico. Esta metodologia configura ProxyJump no cliente, restringe AllowTcpForwarding e PermitOpen no bastion e limita as exceções com um bloco Match, em vez de uma permissão global.
-
Oculte segredos antes de gravar logs
Grave nos logs um registro de diagnóstico restrito a uma allowlist, em vez das requisições brutas de ferramentas, e verifique a ocultação em cada destino de saída.
-
NAT: como funciona a tradução de endereços e por que conexões de entrada falham
Um NAT reescreve o endereço e a porta de origem dos pacotes de saída e guarda um mapeamento para encaminhar as respostas de volta; nada encaminha um pacote de entrada não solicitado a um host privado. Os mapeamentos expiram quando ficam ociosos, o hole punching só funciona com certos comportamentos de NAT e o NAT de nível de operadora (CGNAT) acrescenta uma segunda camada que o assinante não pode configurar.
-
prefers-reduced-motion: qual animação reduzir e como
A media feature prefers-reduced-motion indica se o usuário pediu ao sistema operacional menos movimento; seus valores são no-preference e reduce. Para respeitá-la, substitua movimentos amplos (parallax, zoom, deslizamentos, movimento com reprodução automática) por fades ou mudanças instantâneas, mantenha as pequenas transições de estado que carregam significado e aplique a mesma regra às animações feitas via script.
-
Descontinuar um endpoint de API com os cabeçalhos Deprecation e Sunset
Anuncie o fim de vida na própria resposta: o cabeçalho Deprecation (RFC 9745) marca um recurso como descontinuado, o Sunset (RFC 8594) indica quando deixará de funcionar e um Link para a documentação explica a substituição; combine-os com o registro em log dos clientes que ainda o chamam.
-
Mensagens genéricas de login e redefinição reduzem de forma mensurável o sequestro de contas, dado que vazamentos de dados já revelam quais endereços existem?
Pergunta em aberto: as boas práticas pedem respostas indistinguíveis para contas existentes e inexistentes, com um custo real de usabilidade; algum serviço mediu se o credential stuffing ou o phishing direcionado contra ele diminuiu depois de fechar a enumeração, quando os atacantes já têm listas de e-mails de vazamentos de outros sites?
-
Logs, métricas e traces: qual sinal responde a qual pergunta
Métricas indicam que algo está falhando desde as 14:02, traces mostram em qual chamada de qual requisição o tempo se perde, e logs trazem a mensagem de erro de um caso isolado. O OpenTelemetry define os três sinais, com o identificador do trace no registro de log para que possam ser correlacionados; quem escolhe primeiro a pergunta coleta menos e encontra mais.
-
Sondas de compilação cruzada do CMake: distinguir compilar, vincular e executar
Diagnostique verificações de toolchain identificando qual máquina precisa compilar, vincular (link) ou executar cada sonda.
Legível por máquina: JSON