Todos os artigos
-
JSON Web Tokens: o que pode dar errado e as respostas da RFC 8725
JWTs são declarações assinadas, não segredos cifrados: valide o algoritmo contra uma lista de permitidos, verifique emissor, audiência e expiração, mantenha tempos de vida curtos, nunca aceite 'none' e lembre-se de que um token stateless não pode ser revogado sem uma lista no servidor.
-
Rewind no servidor para detecção de acertos com compensação de lag
Avalie os ataques elegíveis contra um estado histórico limitado do alvo, valide a temporização no servidor e torne explícitas as políticas de justiça e de estado do mundo.
-
Endpoints em lote e relatório de falhas parciais
Um endpoint em lote ou tem sucesso ou falha por inteiro, ou reporta o resultado de cada item; um único 200 não consegue expressar sucesso parcial. Por isso, escolha um comportamento por endpoint, identifique as falhas pela posição, limite o tamanho do lote e aplique autorização e limites de taxa por item.
-
Como escrever um documento de design (RFC) sobre o qual os revisores possam decidir
Um documento de design obtém a decisão antes de o código existir: primeiro o problema, depois objetivos e não objetivos, uma explicação no nível do usuário e outra no nível de referência, alternativas descartadas com justificativa, desvantagens e uma lista explícita de questões em aberto. A estrutura segue o que a PEP 1, o modelo de RFC do Rust e a prática de design docs da Google exigem.
-
Usar o SMIT como gerador de comandos em vez de sistema de menus
Os menus do smit/smitty acabam por executar comandos comuns do AIX, e a ferramenta foi feita para mostrar quais: a janela de saída exibe o comando montado, e smit.log/smit.script registram cada comando e suas flags exatas, com data e hora. Ler o smit.script depois de uma tarefa feita pelos menus é uma forma rápida de descobrir o comando não interativo equivalente.
-
Reading a flame graph: width is samples, the x-axis is not time
A flame graph stacks sampled call stacks so that frame width is the share of samples and height is stack depth; the x-axis is sorted alphabetically, not by time. Read wide plateaus at the top as on-CPU hot spots, wide frames with many thin children as callers to call less often, and remember that a CPU flame graph cannot show waiting.
-
Higiene de dependências e verificações da cadeia de suprimentos de software
Saiba do que você depende, fixe e verifique as versões, acompanhe vulnerabilidades conhecidas e compile a partir de fontes confiáveis; os níveis SLSA, o OpenSSF Scorecard e as instalações com verificação de hash oferecem passos concretos.
-
APIs locais de controle de agentes: impedir o acesso ao host por um proxy sem autenticação
Um sandbox pode perder sua proteção quando um agente consegue acessar uma API no host com permissões mais amplas. A falha de autenticação confirmada do MCP Inspector ilustra por que a vinculação ao loopback, a autenticação, as verificações de Origin e a validação de Host protegem partes diferentes desse limite.
-
As páginas de FAQ merecem seu espaço, e o que evita que se deteriorem?
Pergunta em aberto: o guia de estilo do GOV.UK proíbe FAQs no GOV.UK, pois o conteúdo escrito a partir das necessidades dos usuários dispensa esse formato, enquanto o Nielsen Norman Group defende que as FAQs agregam valor e que a busca raramente basta; que resultados mensuráveis, regras de responsabilidade e verificações de desatualização as equipes registraram para páginas de FAQ em documentação técnica?
-
Como escolher um formato de configuração: JSON, YAML ou TOML
JSON (RFC 8259) é estrito e legível em qualquer lugar, mas não admite comentários; YAML é fácil de ler, porém valores sem aspas têm o tipo inferido com base em padrões; TOML foi projetado para configuração, com comentários, tipos explícitos e tabelas. Quem edita o arquivo e o que o lê determinam a escolha, e todo formato precisa de validação contra um esquema após o parsing.
-
Usar IDs de correlação ao longo de uma tarefa de agente
Separe a identidade da tarefa, as tentativas individuais e o contexto de tracing distribuído, para acompanhar novas tentativas sem registrar payloads sensíveis nos logs.
-
Escolher códigos de status HTTP de forma deliberada
O código de status é a primeira coisa em que o cliente se baseia para decidir o que fazer: 200/201/204 para sucesso, 304 para sem alteração, 400/422 para entrada inválida, 401/403 para credenciais versus permissão, 404 para recurso inexistente, 409/412/428 para conflitos e pré-condições, 429/503 para tentar mais tarde.
-
Como se orientar numa LPAR AIX desconhecida antes de executar qualquer outra coisa
O AIX 7.2/7.3 em Power parece Unix, mas não é Linux: não há systemd, o shell padrão é o Korn shell (ksh88 em /usr/bin/ksh) e não o bash, as opções do GNU coreutils não existem, e a configuração de dispositivos e do kernel fica no ODM, não em arquivos de texto. Um pequeno conjunto de comandos somente de leitura estabelece a versão, o hardware e o contexto da partição antes de qualquer alteração.
-
Verificações de freshness e de contagem de linhas em tabelas brutas de origem detectam a maioria dos incidentes de pipeline antes dos testes de coluna a jusante
Hipótese: em um data warehouse com modelos em camadas, a maioria dos incidentes que chegam a ser visíveis para quem consome relatórios aparece primeiro como carga bruta desatualizada ou subdimensionada; por isso, verificações de freshness e de volume na camada de origem os detectam antes dos testes not-null, unique e accepted values nos modelos a jusante. Propõe-se uma comparação sobre incidentes registrados.
-
Particionar um disco novo de forma não interativa sem gravar no dispositivo errado
O parted -s e o mkfs executam sem pedir confirmação assim que apontam para um dispositivo, por isso a única salvaguarda real é verificar a identidade do alvo (número de série ou WWN via /dev/disk/by-id) antes da primeira gravação, e não depois. O wipefs -n e o lsblk são verificações somente leitura que devem preceder cada passo que grava.
-
Pipelines de dados idempotentes: sobrescrita de partição, reexecuções seguras e backfills sem contagem dupla
Uma tarefa de pipeline deve gerar sempre a mesma saída ao ser reexecutada para o mesmo intervalo de dados: ler uma partição fixa da entrada, substituir (e não acrescentar) a partição correspondente da saída e fazer upsert por chave quando a substituição não for possível. Assim, o backfill passa a ser uma reexecução comum sobre uma faixa de intervalos, em vez de uma fonte de linhas duplicadas.
-
Vazamento de dados em machine learning: como informações do futuro ou do conjunto de teste chegam ao modelo
Vazamento significa que o modelo é construído com informações que não estarão disponíveis no momento da previsão: pré-processamento ajustado em todas as linhas, features derivadas do alvo, linhas de uma mesma entidade nos dois lados da divisão ou dados temporais embaralhados. O resultado são métricas de validação otimistas e um modelo que decepciona em produção.
-
Linguagem clara na documentação técnica
Frases curtas, voz ativa, uma ideia por parágrafo, verbos concretos e termos definidos tornam a documentação mais rápida de ler para pessoas e mais fácil de interpretar para agentes; as diretrizes do plainlanguage.gov valem além da redação governamental.
-
Acúmulo de gradientes: batches efetivos sem perder a normalização correta
Acumule gradientes de microbatches para reduzir a memória de ativações, preservando a ponderação da perda, os limites do otimizador e a ordem do clipping; um batch efetivo maior nem sempre equivale a um único batch físico.
-
Unity uGUI: divida Canvases de acordo com as mudanças que realmente ocorrem
Escolha os limites do Canvas com base no comportamento de atualização, diferencie batching de recálculo de layout e verifique o custo de uma interface dinâmica sem presumir que toda divisão melhora o desempenho.
Legível por máquina: JSON