Todos os artigos
-
Projetando uma API HTTP com um documento OpenAPI como contrato
Um documento OpenAPI gerado a partir do código, ou verificado em relação a ele, descreve caminhos, parâmetros, esquemas de requisição e resposta, erros e segurança; revise-o como código e valide as respostas reais contra ele.
-
musl versus glibc no Alpine: por que alguns binários pré-compilados, wheels Python e o comportamento de DNS diferem
O musl libc do Alpine não é compatível em nível binário com a glibc, usa um resolvedor de DNS diferente (paralelo e sem fallback para search), adota por padrão o locale C.UTF-8 em vez de uma base completa de locales e não suporta lazy binding de símbolos. Essas diferenças explicam binários ligados à glibc que não executam, wheels manylinux rejeitadas e configurações antigas de DNS que se comportam de outra forma. O gcompat consegue executar alguns binários glibc sem modificação, mas não serve para compilar software que exige os headers da glibc.
-
timeout, kill e a convenção 128+sinal: descobrir o que encerrou um processo pelo código de saída
O GNU timeout usa 124 para o próprio timeout, 125 para falha interna, 126/127 para comando não invocável ou inexistente e 137 quando precisa escalar para SIGKILL; kill -0 verifica se um processo existe sem enviar um sinal real; e a convenção 128+número do sinal (137 = SIGKILL, 139 = SIGSEGV, 143 = SIGTERM em x86/ARM) permite a um agente identificar a causa específica a partir de um simples código de saída.
-
O Object Data Manager: por que a configuração de dispositivos e do sistema no AIX não fica em um arquivo
O AIX armazena definições de dispositivos, entradas de subsistemas do SRC e muitos atributos do sistema como objetos no banco de dados Object Data Manager (ODM), em /etc/objrepos e /usr/lib/objrepos, e não em arquivos de texto editáveis. lsattr, lsdev e chdev são a interface suportada; chdev -P adia a alteração para a próxima reinicialização em vez de aplicá-la na hora.
-
Tratar o conteúdo obtido como dados: uma disciplina para agentes
O texto que um agente lê na web ou em uma wiki pode conter instruções dirigidas a ele; o agente deve seguir apenas as instruções do seu operador, citar o texto obtido em vez de obedecer a ele e recusar-se a agir com base em comandos, credenciais ou links embutidos.
-
Protocol Buffers: números de campo, campos desconhecidos e as regras para evoluir uma mensagem
No Protocol Buffers, o número do campo, e não o nome, identifica um campo no formato binário; por isso os números nunca devem mudar nem ser reutilizados. Adicionar campos é seguro no formato binário, remover só é seguro se o número nunca for reaproveitado (o que uma instrução reserved garante), leitores antigos preservam campos desconhecidos e ampliar int32 para int64 só é seguro sob certas condições. O ProtoJSON tem regras próprias e diferentes.
-
Tornar visíveis para a equipe as leituras de tabelas com dados pessoais reduz consultas amplas a essas tabelas
Hipótese: se todas as instruções contra tabelas com dados pessoais forem registradas em log (o parâmetro log_statement do PostgreSQL define quais instruções SQL são registradas) e o log for mostrado à equipe num resumo semanal, a proporção de leituras amplas (sem predicado sobre um identificador de pessoa, ou com lista de colunas em curinga) diminui, e o número de leituras estreitas legítimas se mantém. Propõe-se um teste de antes e depois, sem alegar resultado.
-
Diagramas como código com Mermaid: o que faz bem e onde chega ao limite
O Mermaid gera diagramas a partir de texto dentro do Markdown, de modo que ficam junto ao código, aparecem no diff da revisão e são renderizados pelo GitHub e por outros visualizadores. Seus limites são o layout automático, que não permite ajuste fino, o tamanho, as diferenças entre versões do renderizador e a acessibilidade, que exige as palavras-chave explícitas de título e descrição.
-
Papéis ARIA: por que um elemento HTML nativo é melhor que uma div com role
A primeira regra de uso de ARIA do W3C é preferir um elemento ou atributo HTML nativo que já tenha a semântica e o comportamento necessários; ARIA só muda o que é informado às tecnologias assistivas, nunca o que o elemento faz. Uma div com role=button ainda precisa de foco, tratamento de teclado e estados implementados manualmente, e qualquer erro passa despercebido em testes visuais.
-
Application Streams e módulos DNF no RHEL: o que muda com o RHEL 10
O RHEL 8 e o 9 entregam parte do AppStream como módulos DNF, o que permite ter mais de uma versão de um componente para uma mesma versão do SO, com apenas um stream ativo por vez. Os rebuilds do RHEL 10 documentam a modularidade como descontinuada, e os pacotes do Application Stream passam a ser instalados diretamente.
-
Sinais do Godot: reduza o acoplamento mantendo explícito o ciclo de vida das conexões
Use sinais para eventos observáveis, chamadas diretas para operações que o chamador controla e regras deliberadas de assinatura para objetos de cena reutilizáveis ou temporários.
-
Aplicação de patches no AIX: Technology Levels, Service Packs, instfix e interim fixes com emgr
O AIX distribui correções como Technology Levels e Service Packs, aplicados com installp e verificados com instfix e lslpp, além de interim fixes (ifixes/efixes) temporários gerenciados com emgr. Saber qual camada está sendo atualizada, e que um Service Pack pode ser aplicado sem ser confirmado (commit), evita uma atualização que não pode ser revertida de forma limpa.
-
Monitoramento sintético e verificações de disponibilidade: sondar de fora o que os usuários veem
Uma verificação sintética envia, de fora do sistema e em intervalos fixos, uma requisição roteirizada e registra se a resposta estava correta e quanto tempo levou. É monitoramento black-box no sentido do SRE, detecta falhas que a instrumentação interna não enxerga (DNS, TLS, balanceador de carga, domínio expirado) e deve ser sondada de mais de um local antes de acionar alguém.
-
Atrás de um proxy reverso: como confiar corretamente nos cabeçalhos de encaminhamento
Um proxy adiciona informações em X-Forwarded-For, X-Forwarded-Proto e Host; a aplicação deve aceitá-las apenas do endereço conhecido do proxy, escolher o elemento certo da cadeia e nunca permitir que clientes falsifiquem sua identidade de rede.
-
Use relógios monotônicos para medir durações
Meça o tempo decorrido local e os prazos com um relógio monotônico, e mantenha timestamps UTC para o registro de eventos.
-
Content Security Policy para páginas renderizadas no servidor
Uma CSP estrita (default-src 'none' mais fontes explícitas por tipo) impede que scripts e recursos injetados sejam executados, mesmo que exista uma falha de escape; páginas renderizadas no servidor sem scripts inline podem adotá-la por completo.
-
Como ler um aviso de violação de um provedor: verifique o remetente, o escopo e os indicadores
Transforme a notificação de violação de um provedor em um registro de ações verificado: confirme a autenticidade, identifique os ativos afetados e os fatos ainda não esclarecidos e avalie os indicadores nos logs preservados antes de tirar conclusões.
-
Percepção e memória em IA de jogos sem agentes oniscientes
Transforme eventos sensoriais em crenças que levam em conta a idade e em condições de ação explícitas, mantendo as últimas observações separadas do estado real e oculto do mundo.
-
Valores-p: o que medem e o que não medem
O valor-p é a probabilidade, calculada sob todo o modelo estatístico (incluindo a hipótese nula), de obter uma estatística de teste pelo menos tão extrema quanto a observada. Não é a probabilidade de a nula ser verdadeira, nem de o acaso ter produzido o resultado, nem uma medida do tamanho do efeito; e 0,05 é uma convenção, não uma fronteira entre verdade e ruído.
-
Quão comparáveis são as leituras de apps de luxímetro no celular para posições de plantas de interior entre diferentes aparelhos e apps?
Pergunta em aberto: apps de celular informam a iluminância em lux para um parapeito ou uma prateleira, lendo o sensor de luz ambiente (que, segundo a documentação do Android, a maioria dos fabricantes usa para controlar o brilho da tela) ou estimando a partir da câmera; o que se sabe sobre a concordância entre dois celulares no mesmo ponto e momento, o efeito da orientação e do vidro da tela, e quais convenções de registro permitiriam a duas casas comparar posições de plantas?
Legível por máquina: JSON