Todos os artigos
-
Automatização da detecção de fim de vida em SBOMs, imagens de contêineres e inventários de software
Combine inventários de ambientes de execução e imagens com dados de ciclo de vida, preservando a identidade do produto, o provedor de suporte e a atualidade das evidências. Este fluxo proposto usa endoflife.date como fonte de descoberta, confirma prazos com fornecedores e emite alertas separados para suporte expirado e evidências ausentes.
-
Modelo documentado de análise de falhas
Um modelo para separar observações, hipóteses e verificações após uma falha.
-
Cabeçalhos de resposta de segurança além do CSP
Alguns cabeçalhos de resposta fecham lacunas comuns no lado do navegador: X-Content-Type-Options nosniff, Referrer-Policy, Permissions-Policy, Cross-Origin-Opener-Policy e Strict-Transport-Security. Defina-os de forma centralizada e verifique com um scanner externo.
-
Trabalhando com JSON na linha de comando com o jq
O jq lê JSON, aplica um filtro e imprime o resultado: use -r para strings simples, -c para um objeto por linha, --arg e --argjson para passar valores com segurança, -e para transformar null ou false em código de saída, e select, map e to_entries para remodelar dados; nunca monte filtros por concatenação de strings.
-
Timeouts, retries e backoff com jitter
Toda chamada remota precisa de timeout; os retries devem ser limitados, aplicados só a operações idempotentes ou protegidas por chave e espaçados com backoff exponencial mais jitter, para evitar tempestades de retries sincronizados.
-
Verificação da contenção na extração de arquivos compactados com um registro de diretório descartável
Teste o limite de escrita prometido por uma funcionalidade de extração usando um sistema de arquivos isolado e arquivos de teste inertes. Esta metodologia original concentra-se em onde as escritas ocorrem, sem presumir que alguma biblioteca de arquivos compactados seja segura ou insegura.
-
Escolher métricas de classificação: precisão, recall, F1, limiares e calibração
A acurácia esconde o que importa quando as classes são desbalanceadas ou os erros têm custos diferentes. Precisão e recall descrevem os dois tipos de erro, o F1 os combina, os scores independentes de limiar avaliam o ranqueamento e a calibração indica se uma probabilidade prevista de 0,8 corresponde a 80%. A métrica deve ser escolhida a partir da decisão que o modelo apoia, antes do treinamento.
-
Assinar commits e tags com uma chave SSH ou GPG
O Git assina commits e tags com OpenPGP, X.509 ou, desde gpg.format=ssh, uma chave SSH simples; quem assina define gpg.format e user.signingKey, quem verifica precisa de um arquivo de signatários permitidos (SSH) ou de um chaveiro confiável (GPG), e nas plataformas a checagem é feita com git verify-commit ou com o selo de assinatura do host.
-
Retenção de logs e orçamento de disco em um host: journald, logrotate e dimensionamento do log de eventos do Windows
O SystemMaxUse do journald limita o espaço em disco ocupado pelo próprio journal, o maxage e a contagem de rotate do logrotate limitam os arquivos rotacionados em outros locais, e o wevtutil sl define o tamanho máximo de um log de eventos do Windows. As três são configurações de orçamento de disco escolhidas pelo operador ou por um agente; por quanto tempo os registros devem ser mantidos por razões legais ou organizacionais é uma decisão de política que este artigo não toma.
-
Acompanhar handles de ferramentas assíncronas até um resultado terminal
Evita que um agente reporte sucesso quando uma ferramenta apenas aceitou o trabalho ou devolveu um handle para uma operação que ainda está em execução.
-
Como manter commits de reformatação fora do git blame: -w e arquivos ignore-revs
O git blame -w ignora espaços em branco ao rastrear linhas; --ignore-rev e um arquivo .git-blame-ignore-revs versionado pulam commits indicados, como reformatações em massa, e atribuem as linhas à alteração significativa anterior; -M/-C acompanham linhas movidas ou copiadas. O GitHub lê esse mesmo arquivo automaticamente.
-
Usar o stash com segurança: mensagens, arquivos não rastreados e branches de stash
Um stash é um commit guardado em refs/stash, cujas entradas mais antigas existem apenas no reflog dessa referência. Dê uma mensagem a cada stash, inclua arquivos não rastreados de forma deliberada, prefira apply a pop até verificar o resultado e use git stash branch quando a base tiver avançado.
-
Tratar a falta de evidência como um resultado
Ao reportar uma afirmação não resolvida, indique as verificações realizadas e a próxima observação capaz de decidir a questão, em vez de preencher a lacuna com um fato inventado.
-
Evolução de esquemas com Avro e Parquet: esquemas de leitor e de escritor, arquivos mesclados e modos de compatibilidade
O Avro resolve o esquema do escritor contra o do leitor campo a campo, preenchendo campos ausentes com os valores padrão do leitor e ignorando os desconhecidos; arquivos Parquet com esquemas diferentes, porém compatíveis, podem ser mesclados pelo mecanismo de leitura, a um certo custo; um schema registry impõe compatibilidade backward, forward ou full. Adicionar campos opcionais com valor padrão é a opção segura; renomear campos e mudar tipos não é.
-
Repetição espaçada como método de agendamento: o algoritmo SM-2 em linhas gerais
Na repetição espaçada, cada item tem sua própria data de próxima revisão: o intervalo aumenta após uma recordação bem-sucedida e volta ao início após uma falha. O SM-2 de Wozniak (1987) fixa os dois primeiros intervalos em 1 e 6 dias, multiplica os seguintes por um fator de facilidade individual por item, que começa em 2,5 e nunca pode ficar abaixo de 1,3, e ajusta esse fator com base em uma nota de recordação de 0 a 5; todo o cálculo cabe em uma linha de planilha.
-
Docker Compose no desenvolvimento local: arquivos de override, profiles, dependências saudáveis e watch
Mantenha um único compose.yaml versionado com a mesma estrutura da produção, use um compose.override.yaml para portas locais e bind mounts, isole ferramentas opcionais em profiles, faça o depends_on esperar por service_healthy e use develop.watch para sincronizar ou reconstruir quando os arquivos mudarem.
-
Gerenciadores de serviços comparados: systemd, launchd, Service Control Manager, SRC e rc.d/OpenRC
Todo sistema operacional de uso geral tem algo que inicia, para e supervisiona serviços e os executa no boot, mas os comandos e o modelo de persistência variam. Esta referência compara iniciar, parar, consultar o estado, habilitar no boot e acessar logs em systemd, launchd, Service Control Manager do Windows, SRC do AIX, rc.d do FreeBSD e OpenRC do Alpine.
-
Um conjunto mínimo de regras nftables para um único servidor
Uma única tabela inet com uma chain input que descarta por padrão e aceita tráfego estabelecido e relacionado, loopback, os tipos de ICMP necessários à pilha e as portas de serviço listadas; validada com nft -c -f antes de carregar e carregada com rollback temporizado, para que um erro não bloqueie o seu acesso.
-
Gerenciamento de foco em interações de página única: diálogos, mudanças de rota e elementos removidos
Quando a página muda sem um carregamento completo, o foco do teclado precisa ser movido de propósito: para dentro do diálogo ao abri-lo e de volta ao seu acionador ao fechá-lo, para o título da nova visualização após uma mudança de rota no cliente e para um elemento vizinho adequado quando o elemento focado é excluído. Caso contrário, o foco cai no body do documento e os usuários de leitores de tela voltam ao topo da página.
-
Gerenciando guests KVM com virsh: listar, iniciar, shutdown versus destroy e autostart
O virsh é o cliente de linha de comando padrão para guests KVM gerenciados pelo libvirt. Esta metodologia cobre a listagem de domínios, a diferença entre um desligamento gracioso (shutdown) e um encerramento forçado (destroy), a configuração do autostart e onde está a definição persistente do domínio.
Legível por máquina: JSON