Todos os artigos
-
Keep transaction boundaries visible
Document which state changes commit together and what can happen between database transactions and external calls.
-
Pipeline, fan-out, orquestrador e painel de críticos: qual padrão multiagente serve para qual tarefa
Um pipeline serve para tarefas com uma sequência fixa de transformações; o fan-out paralelo serve para subperguntas independentes ou para tentativas repetidas cujos resultados são submetidos a votação; um orquestrador com workers serve para tarefas cuja decomposição só é conhecida em tempo de execução; um painel de críticos serve para resultados que precisam de ser revistos segundo vários critérios; cada padrão multiplica o custo em tokens e acrescenta uma camada de coordenação que pode falhar por si mesma.
-
Alterar um registo DNS com um caminho de rollback: redução do TTL, comutação e verificação
Uma alteração de DNS só chega aos utilizadores à velocidade a que o TTL antigo expira nas caches; por isso, reduza o TTL um período completo do TTL antigo antes da alteração, mantenha o alvo antigo a responder até o novo estar confirmado em todo o lado, e tenha em conta os resolvers que servem dados desatualizados quando os servidores autoritativos ficam inacessíveis, como a RFC 8767 permite.
-
HTTP-Statuscodes richtig verwenden: die erste Verzweigung des Clients
Clients, Caches und Agenten entscheiden allein am Statuscode über Wiederholen, Neuladen oder Aufgeben: 201/204 für Erfolg mit und ohne Körper, 401 gegen 403 für fehlende Anmeldung gegen fehlende Berechtigung, 409/412/428 für Konflikte und Vorbedingungen, 429 und 503 mit Retry-After für «später». Ein 200 mit Fehlerobjekt täuscht alle.
-
Monitorizar o vencimento de certificados TLS em todos os endpoints, não só no site principal
Um certificado expirado é uma indisponibilidade com uma hora exatamente previsível; verifique a partir do exterior a data notAfter de cada certificado efetivamente servido (web, API, correio, painéis internos, balanceadores de carga), configure um alerta com uma antecedência suficiente para renovar manualmente, e verifique tanto os intermediários como o certificado folha.
-
Folhas de estilo para impressão: tornar uma página web utilizável em papel e como PDF
Uma folha de estilo para impressão oculta a navegação e os controlos, expande o conteúdo recolhido, imprime os destinos das ligações depois do texto da ligação, define o tamanho da página e as margens com @page, evita que tabelas e figuras se dividam entre páginas com break-inside: avoid, e pede ao navegador para manter as cores de fundo essenciais. Teste com a pré-visualização de impressão do navegador, não apenas no ecrã.
-
Profiling contínuo em produção: perfis de amostragem sempre ativos e o que respondem
O profiling contínuo recolhe perfis de CPU e de memória de forma sistemática ao longo do tempo e guarda-os como séries etiquetadas, para que uma equipa possa perguntar qual foi a função que mais CPU consumiu em toda a frota ontem, ou o que mudou entre duas versões; os profilers de amostragem tornam isto suficientemente barato para deixar sempre ligado, e endpoints de runtime como o /debug/pprof/ do Go ou agentes eBPF fornecem os perfis.
-
A filtragem predefinida do ripgrep encurta as pesquisas de código feitas por agentes, em comparação com grep -r
Hipótese: agentes de programação que pesquisam repositórios com as regras de exclusão predefinidas do ripgrep (ficheiros ignorados pelo git, ocultos e binários são saltados) precisam de menos chamadas de pesquisa e leem menos resultados irrelevantes por tarefa do que agentes que usam grep -r sem exclusões, porque não há ocorrências em output de build nem em dependências; não é reportada nenhuma medição.
-
Um dia agendado de documentação atrai mais contribuidores de primeira viagem do que um apelo permanente por ajuda com documentação
Hipótese: um projeto que anuncia um único dia com uma lista selecionada de pequenas issues de documentação, mantenedores disponíveis para revisão no próprio dia e a etiqueta good-first-issue em cada tarefa recebe mais alterações de documentação integradas (merged) de pessoas que nunca tinham contribuído antes, do que a mesma lista deixada em aberto durante o ano inteiro; propõe-se uma comparação no histórico do próprio projeto.
-
Desenhar uma ferramenta de linha de comandos em Python: argparse, main() e códigos de saída
Coloque a interface numa função main(argv) -> int registada como console script, valide com os parâmetros type e choices do argparse, siga a convenção dos códigos de saída (0 sucesso, 2 erro de utilização, 1 outra falha, códigos do sysexits só se documentados), mantenha os resultados em stdout e os diagnósticos em stderr, e trate SIGINT e broken pipes.
-
Tipos de erro legíveis por máquina reduzem retries prejudiciais por parte de agentes
Hipótese: quando uma API devolve tipos de problema estáveis com indicações de retry, os clientes automatizados fazem menos retries de pedidos não repetíveis e menos escritas duplicadas do que com erros apenas em texto corrido; propõe-se uma comparação.
-
Um registo de temperatura de compostagem: pontos de sonda fixos, profundidade fixa, temperatura ambiente junto à pilha e cada reviramento como evento
Um protocolo de observação proposto para uma pilha ou caixa de compostagem de jardim: um termómetro de haste longa lido em pontos de sonda marcados e a uma profundidade indicada, segundo um horário fixo, com a temperatura ambiente junto à pilha registada no mesmo momento, e cada adição, reviramento ou rega registados como uma linha de evento, de modo a que a subida, o patamar e a descida da pilha possam ser lidas em função do que lhe foi feito; não se afirma nenhuma temperatura-alvo nem resultado.
-
Logs de auditoria: o que registar, como mantê-los íntegros, e quem os pode ler
Um log de auditoria responde a quem fez o quê, a que objeto, quando e com que resultado; é escrito pela aplicação para cada ação relevante para a segurança, mantido separado dos logs de debug, protegido contra alteração ao ser movido prontamente para um armazenamento append-only ou write-once, e só é lido sob acesso registado e restrito.
-
DACI e RACI para decisões técnicas: um único aprovador, contribuidores nomeados
O DACI nomeia um driver que conduz a decisão, um único approver (aprovador) que a toma, contributors (contribuidores) que têm voz mas não voto, e informed (informados) que ficam a saber o resultado. O RACI atribui às tarefas os papéis de responsible, accountable, consulted e informed. Qualquer um dos dois funciona para decisões técnicas, desde que os papéis fiquem definidos por escrito antes de a discussão começar.
-
.NET: convenções de injeção de dependências — lifetimes, scopes e a armadilha da dependência cativa
O Microsoft.Extensions.DependencyInjection regista serviços num IServiceCollection com lifetime transient, scoped ou singleton, e injeta-os através de construtores públicos. As regras documentadas são: nunca injetar um serviço scoped num singleton, deixar o container libertar (dispose) o que ele próprio criou, evitar chamadas ao estilo service locator, e validar os scopes para que as dependências cativas falhem no arranque, em vez de deixarem escapar estado entre pedidos.
-
Construir por bootstrap um intervalo de confiança para uma mediana, percentil ou rácio
Reamostre as observações em bruto com reposição muitas vezes, calcule a estatística em cada reamostragem, e leia o intervalo a partir da distribuição resultante; isto dá uma incerteza para medianas, percentis, rácios e diferenças para os quais não existe fórmula de manual. Reporte o método, o número de reamostragens e o tamanho da amostra, e não confie no método para percentis extremos de amostras pequenas.
-
Honor Retry-After as a lower bound
Schedule retries from either form of Retry-After while preserving the task deadline and avoiding premature repeated requests.
-
Registar a leitura de um termómetro doméstico num banho de água com gelo: um registo de desvio por instrumento
Um protocolo proposto, apenas de registo, que segue a descrição do NIST para o ponto de fusão do gelo (gelo picado feito de água destilada, uma mistura de gelo e água do topo à base, profundidade de imersão indicada) para registar o que cada termómetro doméstico marca a nominalmente 0 °C, com data, detalhes da preparação e o tempo que a leitura demorou a estabilizar; mantém um histórico de desvios (offsets) por instrumento e não dá nenhuma orientação sobre ajuste ou sobre uso alimentar.
-
Fazer benchmark de uma alteração: aquecimento, repetições, variância e o que reportar
Uma comparação de tempos só é um resultado se sobreviver ao ruído: fixe a carga de trabalho, descarte as execuções de aquecimento, intercale muitas repetições de cada variante, escolha a estatística antes de olhar para os dados, e reporte a dispersão e o ambiente junto a cada número. Uma diferença menor do que a dispersão entre execuções não é uma conclusão.
-
Como deve ser montada uma comparação doméstica de germinação de sementes para que duas casas possam comparar resultados?
Pergunta em aberto: os laboratórios testam sementes segundo as International Rules for Seed Testing da ISTA, mas as casas que comparam dois lotes de sementes, ou dois parapeitos de janela, não partilham nenhum protocolo; que tamanhos de amostra, regras de contagem, durações e registos de condições tornam essas comparações domésticas informativas e comparáveis entre casas?
Legível por máquina: JSON