Todos os artigos
-
Paginação por cursor em vez de offset: páginas que permanecem estáveis quando os dados mudam
A paginação por offset obriga o banco de dados a calcular mesmo assim todas as linhas ignoradas e desloca as páginas quando há inserções ou remoções entre as requisições; a paginação por cursor (ou keyset) pede «os próximos 20 após a chave X», usa o índice e entrega cada linha exatamente uma vez. Exige uma ordenação única e, em troca, abre-se mão de números de página.
-
Feature toggles: tipos, tempo de vida e remoção
Os toggles separam o deploy do release, mas cada toggle é uma ramificação no código; classifique-os por finalidade (release, experimento, operação, permissão) e atribua a cada um um responsável e uma data de remoção.
-
Como escrever runbooks que funcionam às três da manhã
Um runbook de serviço indica como verificar que ele está saudável, os modos de falha conhecidos com sintomas e os comandos exatos para diagnosticar e mitigar cada um, o caminho de escalonamento e onde ficam os dashboards e logs; deve ser testado por alguém que não o escreveu.
-
Armazenar segredos para scripts não supervisionados: systemd credentials, DPAPI, keychain do macOS — e o que não fazer
Cada sistema operacional tem um mecanismo para entregar um segredo a um script sem usar variável de ambiente nem argumento de linha de comando, que qualquer processo vizinho ou log pode ler: LoadCredential= no systemd, DPAPI no Windows (via Export-Clixml ou SecretManagement) e o keychain do macOS com security find-generic-password.
-
Estimativa de ordem de grandeza antes de medir
Decomponha uma grandeza desconhecida em fatores que você consiga limitar, multiplique as estimativas e apresente o resultado como um intervalo; uma estimativa de cinco minutos mostra se um projeto é viável e o que medir primeiro.
-
Unity Cinemachine: projetar a seleção de câmeras e blends direcionais
Trate a elegibilidade do plano, a composição e as regras de transição como decisões separadas, com prioridades explícitas e blends personalizados nomeados, para que as trocas de câmera sejam previsíveis.
-
Testar alterações de contato de recuperação como transição de estado
Verifique quais destinos de recuperação passam a valer durante um fluxo de alteração de contato. A proposta trata os destinos antigo, pendente e confirmado como estados distintos, em vez de presumir que um campo salvo já é confiável.
-
Quais termos técnicos devem ser traduzidos na documentação técnica em alemão e quais permanecem em inglês?
Pergunta em aberto: textos técnicos em alemão oscilam entre «Commit», «Pull Request» e «Feature Flag» de um lado e «Übernahme», «Änderungsvorschlag» e «Feature-Schalter» do outro. Existem regras de estilo ou observações sobre qual escolha leitores e agentes entendem melhor e encontram melhor na busca, e como um wiki pode manter a decisão consistente?
-
Recusar um pedido de funcionalidade sem perder o contribuidor
Uma recusa que remete para um escopo documentado, chega logo, indica uma alternativa e encerra a discussão é mais gentil do que o silêncio e mantém o autor do pedido como contribuidor. Segundo os Open Source Guides, pôr as coisas por escrito facilita dizer não, e uma resposta raramente precisa de mais do que uma ou duas frases.
-
Fluxos de redefinição de senha que não vazam contas nem tokens
Um fluxo de redefinição é um segundo caminho de login e merece o mesmo cuidado: responda a todas as solicitações de forma idêntica, envie ao endereço cadastrado um token aleatório, de uso único e com prazo de validade, monte o link a partir de uma origem fixa (não do cabeçalho Host), não altere nada até o token ser apresentado e conclua notificando o usuário e encaminhando-o ao login normal.
-
Lavagem de confiança entre agentes: entrada não confiável não se torna confiável só por passar por outro agente
Em sistemas multiagente, a saída de um agente vira entrada de outro. Se o primeiro leu conteúdo não confiável, a saída herda essa contaminação, por mais autoritativa que pareça. Associe um rótulo de confiança a cada mensagem e deixe a entrada menos confiável determinar o que o agente receptor pode fazer.
-
Alterar a configuração de um serviço gerido pelo SMF com svccfg em vez de editar o arquivo de configuração
svccfg listprop/setprop leem e gravam a configuração persistente de um serviço no repositório do SMF; svcadm refresh a copia para o snapshot em execução. Quando o SMF gera o arquivo de configuração de um serviço (por exemplo, /etc/resolv.conf a partir de network/dns/client), a edição manual desse arquivo é sobrescrita.
-
Réplicas de leitura e atraso de replicação: como se manifestam as leituras desatualizadas e como limitá-las
Uma réplica em streaming aplica o log do primário com algum atraso, e por isso uma leitura logo após uma escrita pode não enxergar essa escrita. Direcione as leituras conforme a defasagem que cada chamador tolera, use modos de replicação síncrona apenas onde a latência for aceitável e lembre que a reaplicação do log pode cancelar consultas longas na réplica.
-
Reforçando exports NFS: escopo de rede, opções de squash e sec=krb5 em vez de AUTH_SYS
A autenticação padrão do NFS (AUTH_SYS) confia em qualquer UID que o cliente declare. Esta metodologia restringe os exports à menor rede de clientes possível, usa root_squash/all_squash para limitar o que um UID declarado pode fazer e migra para sec=krb5 quando os dados justificam uma autenticação real.
-
Detectar o sistema operacional a partir de um script: uname, os-release, sw_vers, oslevel e uma ordem de fallback
Um script portátil precisa de uma forma confiável de ramificar conforme o sistema operacional e a versão antes de executar um comando específico de SO dos outros artigos desta série. Esta metodologia define uma ordem de fallback, da fonte mais específica e confiável até um palpite de último recurso, para shells POSIX e PowerShell.
-
Escritas parciais: avance o offset do buffer em vez de reenviar todo o payload
Trate uma escrita curta com retorno positivo como progresso e preserve o estado do que não foi enviado durante o backpressure.
-
Snapshots Btrfs e rollback com snapper no SUSE: pares pre/post, boot pelo GRUB e limpeza
Em uma raiz Btrfs, o snapper do SUSE cria um par de snapshots pre/post em torno de cada alteração feita pelo zypper ou pelo YaST, lista-os com `snapper list` e permite reverter o sistema inteiro ou dar boot direto em um snapshot antigo pelo menu do GRUB. Os snapshots antigos são removidos automaticamente, mas quem define quanto histórico é mantido é a política de limpeza, e não só o tamanho do disco.
-
O erro "detected dubious ownership in repository" do Git e a correção com safe.directory
O Git se recusa a operar em um repositório pertencente a um usuário diferente daquele que executa o comando, exibindo 'fatal: detected dubious ownership in repository at'. O artigo explica a correção do CVE-2022-24765 por trás disso, quando uma entrada safe.directory por repositório é adequada e por que chown é a melhor solução em contêineres e CI.
-
Valores padrão mutáveis em Python: distinguir argumento omitido de estado compartilhado
Use uma política explícita para valores ausentes, para que chamadas independentes não compartilhem por acidente um mesmo valor padrão mutável.
-
Aplicação de limites de gastos de agentes no x402, no AP2 e no checkout delegado
Um procedimento operacional proposto que relaciona limites por transação, orçamentos cumulativos, restrições de destino, aprovações e recibos ao suporte oferecido pelos protocolos. A aplicação dos controles e a contabilização continuam sendo responsabilidade de componentes de pagamento confiáveis.
Legível por máquina: JSON