Todos os artigos
-
SSH known_hosts e verificação da chave do host em automação: ssh-keyscan mais uma verificação fora de banda
Uma automação que se conecta por SSH ainda precisa verificar a chave do host do servidor; o ssh-keyscan sozinho apenas coleta uma chave, sem provar que ela é autêntica. StrictHostKeyChecking=accept-new, HashKnownHosts e registros SSHFP tratam, cada um, de uma parte diferente de fazer isso com segurança, sem prompt interativo.
-
Verificar perfis de configuração e inscrição no MDM pelo Terminal com o comando profiles
O comando profiles lista os perfis de configuração instalados e informa o estado de inscrição no MDM; algumas configurações, como o depósito do bootstrap token ou a imposição de adiamento de atualizações, só podem ser definidas por um serviço de gerenciamento de dispositivos, nunca a partir de uma sessão local do Terminal.
-
Códigos de saída de ssh e scp: 255 é falha do próprio ssh, qualquer outro valor vem do comando remoto
O ssh repassa o código de saída do comando remoto que executou e reserva o 255 para falhas do próprio ssh (conexão recusada, falha de autenticação, host key divergente) e para comando remoto morto por um sinal. O scp documenta apenas a divisão simples entre 0 (sucesso) e diferente de zero (falha); por isso, para distinguir problemas locais de transporte de um erro remoto, é preciso usar o texto de stderr do ssh, e não o código do scp.
-
Exportando métricas do host com o node_exporter do Prometheus: coletores, o coletor textfile e o firewall da porta
O node_exporter converte contadores do kernel e do sistema operacional em métricas do Prometheus na porta 9100. A maioria dos coletores vem ativada por padrão, e o Textfile Collector permite incluir valores calculados por um script. Execute-o como serviço systemd sem privilégios e restrinja a porta ao endereço do Prometheus, porque o /metrics não tem autenticação por padrão.
-
Lidar com desbalanceamento de classes: métricas primeiro, depois pesos, limiares e reamostragem dentro do pipeline
Quando uma classe é rara, a acurácia não informa nada e o modelo pode ignorar totalmente a minoria. Corrija primeiro a avaliação (divisões estratificadas, métricas por classe, acurácia balanceada); depois use pesos de classe ou um limiar ajustado, e aplique reamostragem como SMOTE apenas ao fold de treino, dentro do pipeline submetido à validação cruzada.
-
Fundamentos do gRPC: contratos protobuf, streaming e onde ele se encaixa
O gRPC chama métodos definidos em um arquivo .proto, usando Protocol Buffers como linguagem de definição de interface e formato de transmissão; oferece chamadas unárias e de streaming, deadlines, metadados e um conjunto fixo de códigos de status sobre HTTP/2. É adequado para comunicação entre serviços e backends móveis; navegadores exigem gRPC-Web e integradores públicos costumam esperar JSON sobre HTTP.
-
Assinaturas pós-quânticas e certificados TLS públicos: verificações separadas de prontidão
ML-DSA e SLH-DSA são algoritmos de assinatura padronizados, mas a emissão de certificados TLS públicos também depende de perfis de certificados, integração com o protocolo e aceitação pelas políticas de confiança.
-
Alterações de esquema sem downtime com expand and contract
Altere um esquema em três etapas implantáveis: expandir (adicionar a nova coluna ou tabela mantendo a antiga), migrar (escrita dupla e backfill em lotes) e contrair (remover a antiga depois que todo o código usar a nova); evite locks longos não reescrevendo tabelas em uma única instrução.
-
Triagem de um disco Linux cheio: df, du, arquivos apagados mas ainda abertos e o journal
Um sistema de arquivos pode estar cheio por falta de espaço ou de inodes, e o espaço retido por um arquivo apagado mas ainda aberto não aparece no du. Esta metodologia percorre as verificações em ordem — df -h, df -i, du -x, lsof +L1 e limpeza do journald — antes de apagar qualquer coisa.
-
MCP 2026-07-28: o núcleo sem estado e seus limites de compatibilidade
A revisão de julho remove o handshake de inicialização e as sessões de transporte, adiciona metadados por requisição e interações com múltiplas trocas, e formaliza extensões e obsolescência. Os servidores são obrigados a implementar a descoberta, mas sua chamada é opcional para os clientes.
-
Quando as equipes trocam uma tabela de fila no PostgreSQL por um message broker, e o que motivou a mudança?
Pergunta em aberto: a documentação do PostgreSQL admite SKIP LOCKED para vários consumidores em uma tabela usada como fila, e guias de design recomendam começar por ela; quais gatilhos (idade da fila, contenção de locks, bloat da tabela, necessidade de fan-out, carga operacional) levaram de fato à troca por um broker, em que volumes, e quantos sistemas nunca trocaram?
-
Instalar atualizações do macOS sem supervisão pela linha de comando com softwareupdate
O softwareupdate lista, instala e reinicia para aplicar atualizações sem o painel gráfico dos Ajustes do Sistema, mas o --fetch-full-installer exige autenticação de proprietário do volume em Apple silicon e uma política de adiamento gerenciada pode ocultar atualizações do --list por completo. Esta metodologia cobre os dois casos.
-
Qualificar uma busca negativa no repositório antes de declarar o código ausente
Audite o escopo de uma busca sem resultados antes de concluir que um símbolo, uma configuração ou um comportamento não existe no projeto.
-
Broad phase e narrow phase de colisão: candidatos versus contatos
Como montar um pipeline de colisão que separa candidatos espaciais conservadores de contatos geométricos, com limites claros para filtragem, responsabilidade de atualização e profiling.
-
Massa versus volume na cozinha: qual xícara se quer dizer e como registrar a conversão realmente usada
Xícara, colher de sopa e colher de chá são volumes cuja definição difere entre as unidades usuais dos EUA listadas pelo NIST e os valores arredondados dos rótulos nutricionais americanos, e a massa que cabe em cada uma depende do ingrediente e de como foi preenchida; quem converte entre massa e volume deve registrar a definição usada e os próprios valores pesados, para que a receita seja reproduzível.
-
Critérios de aceitação por item de trabalho que podem virar testes
Escreva os critérios de aceitação de cada item de trabalho como exemplos concretos, com estado inicial, ação e resultado observável, usando a estrutura Given/When/Then do Gherkin ou equivalente e nomeando os casos-limite; critérios que não podem ser executados ou verificados por alguém que não seja o autor não são critérios.
-
Bancos de dados de compilação: reproduza a unidade de tradução com falha antes de alterar cabeçalhos
Use o comando de compilação real e o diretório de trabalho para distinguir defeitos no código-fonte de erros de configuração do editor.
-
Descontinuar uma função em uma biblioteca: avisar, documentar a substituta e remover no prazo definido
Uma descontinuação em biblioteca tem quatro partes: uma substituta que exista antes de tudo, um aviso em tempo de execução mais uma nota na documentação com a versão e a substituta, uma entrada no changelog e uma versão de remoção fixada de antemão por política. A PEP 387 exige um período de descontinuação de pelo menos dois anos no ciclo anual do Python e descreve uma descontinuação leve (soft deprecation) apenas na documentação; o Django remove os shims no mínimo duas versões de funcionalidades após o aviso.
-
Percentis de latência: por que a média não descreve nenhuma requisição real
As distribuições de latência são assimétricas: a média fica entre uma maioria rápida e uma cauda lenta e não corresponde a nenhuma requisição real, enquanto p50, p99 e o máximo descrevem o que os usuários de fato encontram. Registre histogramas em vez de quantis pré-calculados, para poder agregar percentis entre instâncias e recalculá-los para qualquer janela.
-
Reforçando workflows do GitHub Actions: actions fixadas por SHA, tokens com privilégio mínimo e entradas não confiáveis
Fixe actions de terceiros a um SHA de commit completo, defina o GITHUB_TOKEN como somente leitura por padrão e amplie as permissões por job, nunca interpole campos de eventos não confiáveis em scripts run e trate pull_request_target e workflow_run como gatilhos privilegiados.
Legível por máquina: JSON