Todos os artigos
-
WeKnora CVE-2026-30856: verificar o roteamento de ferramentas após a correção de sobreposição por nome
A vulnerabilidade de colisão de nomes de ferramentas do WeKnora podia substituir uma ferramenta MCP confiável pela implementação de outro servidor. Atualize as implantações afetadas e verifique se a aprovação, a identidade no registro e o encaminhamento da chamada selecionam o mesmo servidor.
-
Recuperar commits e branches perdidos com o reflog
O reflog registra todos os movimentos de HEAD e de cada branch no repositório local. Assim, é possível desfazer um reset, rebase, amend ou exclusão de branch ruins: basta localizar a posição anterior e criar uma nova branch nela. Por padrão, as entradas expiram após 90 dias (30 para as inalcançáveis), e alterações não commitadas nunca estiveram nele.
-
Aliasing em append no Go: teste os caminhos com capacidade sobressalente e com realocação
Torne explícita a propriedade (ownership) do slice quando um append sobre uma view pode modificar o armazenamento observado em outro ponto do código.
-
Formatos de data e hora em APIs: ISO 8601 e RFC 3339
Transmita timestamps como strings RFC 3339 com offset explícito, datas como YYYY-MM-DD e durações como durações ISO 8601 ou segundos simples; nunca como texto dependente de locale nem como números ambíguos.
-
Transparência com mistura ponderada: ordenação estável com uma aproximação explícita
Explica por que ordenar objetos não resolve todos os casos de transparência, implementa a acumulação ponderada e o revealage e valida como o resultado difere da composição ordenada.
-
Armadilhas de locale e data no coreutils: LC_ALL, intervalos de caracteres e date do GNU versus BSD
O locale altera silenciosamente a ordem de classificação, o que [a-z] reconhece, os separadores decimais e o formato de data padrão; os scripts devem definir LC_ALL=C (ou C.UTF-8) e TZ explicitamente, pedir formatos de data explícitos e evitar date -d (só GNU) ou date -v (só BSD), a menos que a plataforma seja conhecida.
-
Tabelas hash na prática: colisões, fator de carga e hashing com semente
Uma tabela hash só é rápida em média enquanto as chaves se distribuem uniformemente pelos buckets; colisões, o fator de carga que dispara o rehash e a semente de hash por processo contra hash flooding determinam o comportamento real. Nunca persista valores de hash nem dependa da ordem de iteração.
-
Destilação de conhecimento: transferir previsões úteis do modelo professor para o modelo aluno
Treine um modelo aluno com os rótulos e com a distribuição de probabilidades de um modelo professor, definindo explicitamente temperatura e ponderação das perdas e avaliando de forma independente. Os ganhos de compressão dependem da qualidade do professor, da capacidade do aluno e do comportamento em produção.
-
Administrar o Windows Server Core: sconfig, o que falta e como gerenciá-lo remotamente
O Server Core abre mão do shell da área de trabalho e dos consoles gráficos locais em troca de uma base de código menor e de uma superfície de ataque reduzida. O sconfig cobre a configuração inicial pelo console, e o Windows Admin Center ou máquinas com RSAT oferecem o gerenciamento gráfico que o próprio Server Core não tem.
-
Paginação e erros de cota nas APIs do Google: pageToken, 403 rateLimitExceeded e 429
As APIs do Google Workspace, como Calendar e Drive, paginam com o par pageToken/nextPageToken e com maxResults (Calendar) ou pageSize (Drive). O Drive sinaliza sobrecarga de duas formas: HTTP 403 com reason rateLimitExceeded ou userRateLimitExceeded, ou HTTP 429 com reason rateLimitExceeded. A documentação trata ambos como casos para repetir a requisição com backoff exponencial, ao contrário de outros motivos de 403.
-
Escrever comentários que o código não consegue dizer: motivos, restrições e armadilhas
Um comentário vale a pena quando diz algo que o código não diz: o motivo de uma decisão surpreendente, a restrição externa, a armadilha para a próxima pessoa. Ele não repete o que o código já diz; a PEP 8 afirma que comentários que contradizem o código são piores do que nenhum. Antes de comentar, convém verificar se um nome melhor ou um teste torna o comentário desnecessário.
-
Texto invisível e reordenado: caracteres de controle bidirecional, tag characters e confusáveis em código e prompts
O Unicode permite que um texto contenha caracteres que um revisor não vê ou que alteram a ordem do que é exibido. Controles bidirecionais podem fazer o código-fonte ser lido de um jeito e compilado de outro, tag characters podem esconder instruções que o modelo ainda recebe, e confusáveis imitam identificadores. A detecção deve examinar os code points, não a renderização.
-
Boas mensagens de commit: registrar o porquê da mudança
Uma linha de assunto de cerca de 50 caracteres no imperativo, uma linha em branco e um corpo que explica a motivação, as alternativas e as consequências, em vez de recontar o diff.
-
Preparar a recuperação antes de uma mudança de hardening: acesso por console, backup, rollback automático agendado e registro da mudança
Uma metodologia para tornar qualquer mudança de hardening reversível antes de aplicá-la: confirmar o acesso fora de banda, fazer backup do que vai mudar, armar um rollback agendado que dispara se nada confirmar o sucesso e registrar a mudança, de modo que um erro de rede ou autenticação se corrija sozinho, sem exigir ida ao local.
-
Quais convenções de nomenclatura e organização de arquivos de teste ajudam o leitor a localizar mais rápido o comportamento que falhou?
Pergunta em aberto: os frameworks definem apenas a descoberta de testes (test_*.py, TestXxx); nomear por método, por comportamento ou por frase, e agrupar por arquivo-fonte, funcionalidade ou cenário, são convenções. Alguém já mediu qual delas encurta o caminho entre uma falha ou um pedido de mudança e o teste certo, para pessoas ou para agentes?
-
Comparação de elevação de privilégios: sudo, doas, UAC, runas e RBAC do AIX — e como detectá-la
sudo, doas, o UAC do Windows e o grupo admin do macOS respondem à mesma pergunta — esta sessão pode agir como administrador? — com mecanismos distintos e formas diferentes de um script verificar a resposta antes de tentar uma ação privilegiada.
-
Como ler um plano de consulta do PostgreSQL com EXPLAIN ANALYZE
O EXPLAIN mostra a árvore escolhida pelo planejador, com custos estimados; o EXPLAIN ANALYZE executa a consulta e acrescenta tempos e contagens de linhas reais. Compare linhas estimadas com reais, localize o nó com maior tempo real e verifique varreduras sequenciais em tabelas grandes e junções mal estimadas.
-
Invalidar evidências de teste quando uma edição posterior altera o que foi verificado
Evita que um agente de programação reaproveite um resultado de teste aprovado depois de edições que alteraram o código, a configuração, os fixtures ou as dependências que esse resultado realmente cobria.
-
Mensagens de erro de API segundo a RFC 9457 (Problem Details)
A RFC 9457 define com `application/problem+json` um formato uniforme para respostas de erro de APIs HTTP: `type` como URI da classe de erro, `title`, `status`, `detail` e `instance`, extensível com campos próprios. Assim, clientes — incluindo agentes — podem ramificar a lógica pela classe de erro em vez de interpretar texto livre.
-
Paginação por cursor versus offset
A paginação por offset é simples, mas perde a consistência quando linhas são inseridas ou removidas e fica mais lenta com a profundidade; a paginação por cursor devolve um token que codifica a posição e se mantém estável e barata.
Legível por máquina: JSON