Todos os artigos
-
Passo a passo de um encurtador de URLs: geração de chaves, status de redirecionamento e controles contra abuso
Um roteiro de projeto para um encurtador de URLs: chaves aleatórias em base62 com nova tentativa em caso de colisão, um caminho de redirecionamento que usa um cache e um armazenamento, 302 em vez de 301 quando os destinos precisam ser revogáveis e contabilizáveis, verificações de abuso na criação e uma lista do que não construir primeiro.
-
Diagnóstico de CPU steal time em hosts Linux virtualizados com mpstat e vmstat
Um %steal alto no mpstat ou uma coluna st crescente no vmstat indica que o hypervisor reteve CPU que o guest queria usar, e não que a aplicação esteja se comportando mal. Esta metodologia mostra como ler os dois campos corretamente e distinguir contenção de um esgotamento real de CPU.
-
Definir um endereço IPv4 estático com nmcli sem perder o acesso remoto
O nmcli permite exibir, modificar e ativar conexões do NetworkManager a partir de um script, mas alterar o endereço pelo qual você está conectado pode derrubar a sessão antes de as novas configurações entrarem em vigor. Clonar o perfil antes e validar antes de remover o antigo mantém a alteração reversível.
-
Como projetar um SDK sobre uma API HTTP
Um SDK deve tornar a chamada correta a mais fácil: modelos tipados, um único objeto cliente com a configuração, erros uniformes, retentativas com chaves de idempotência, iteradores de paginação e auxiliares para operações de longa duração, gerados a partir da descrição da API sempre que possível e escritos à mão apenas onde a geração não consegue expressar a intenção.
-
Testar cursores de continuação depois que a identidade solicitante muda
Verifica a política de visibilidade da aplicação quando um cursor de continuação é reutilizado por outro principal. Este método original trata o cursor como parte de um contexto de consulta cujo significado de segurança precisa ser especificado.
-
Como projetar webhooks de saída em que os receptores possam confiar
Assine cada entrega com um HMAC sobre o corpo e um timestamp, entregue ao menos uma vez com retentativas e ids de evento idempotentes, mantenha os payloads pequenos com um link para buscar os detalhes e permita que os receptores verifiquem a autenticidade sem segredos nas URLs.
-
Support Repository Updates e o modelo de patching do Solaris 11.4: SRUs, CPUs e como verificar o que está instalado
O Solaris 11.4 aplica correções pelo mesmo caminho pkg update de qualquer outra instalação; a versão da incorporation entire indica o nível exato de atualização, a Oracle publica correções em Support Repository Updates aproximadamente mensais (e, a cada três, uma também é um Critical Patch Update), e as fases Premier, Extended e Sustaining da Oracle definem o que cada etapa entrega.
-
Recuperar âncoras de código desatualizadas antes de aplicar um patch
Como reencontrar o trecho de código pretendido após edições concorrentes, sem que um número de linha desatualizado ou uma correspondência de texto ampla resulte em um patch aplicado no lugar errado.
-
Registros de decisão de arquitetura
Um registro de decisão de arquitetura documenta uma decisão significativa com seu contexto, a decisão em si, seu status e suas consequências, em um arquivo curto mantido junto ao código.
-
Registro de rega e crescimento para plantas de interior: pontos de medição fixos e fotografias
Proposta de registro de observação para plantas em vaso: pontos de medição definidos uma única vez (altura a partir da borda do vaso, número de folhas acima de um tamanho definido, comprimento da maior folha), rega anotada por volume ou massa, posição e eventos, e uma fotografia semanal nas mesmas condições, para comparar o crescimento ao longo do tempo e entre plantas; não inclui conselhos de cuidado.
-
Cache em aplicações: tempo de expiração, invalidação e proteção contra o efeito manada
Um cache de aplicação guarda dados derivados e pode ser perdido a qualquer momento; só se mantém correto com invalidação deliberada: expiração por classe de dados, remoção em vez de sobrescrita ao escrever, versão na chave e um bloqueio contra o recarregamento simultâneo de chaves muito acessadas.
-
CString em uma fronteira FFI: diferencie ponteiro emprestado de transferência de propriedade
Mantenha o dono do CString vivo durante chamadas com empréstimo e use a conversão para ponteiro bruto apenas sob um contrato explícito de devolução.
-
Tratamento de EINTR: repetir a operação específica sem renovar o prazo inteiro
Analise a interrupção por sinal interface por interface e preserve o progresso e o estado de cancelamento entre as novas tentativas.
-
zsh como shell padrão do macOS: o que quebra em um script escrito para bash
Desde o macOS 10.15, o zsh é o shell de login e interativo padrão do macOS. Um script que presume a divisão de palavras do bash, arrays começando em zero ou globbing tolerante pode se comportar de outro modo, ou falhar por completo, na sessão interativa zsh de um agente em um Mac, mesmo sem considerar a idade do próprio /bin/bash.
-
Como equipes executam vários agentes de código em paralelo em git worktrees sem colisões de caches, hooks e portas?
Pergunta em aberto: os worktrees dão a cada agente seu próprio branch e seus próprios arquivos, e a documentação do git-worktree diz que um worktree vinculado compartilha tudo, exceto arquivos por worktree como HEAD e o índice; assim, hooks e configuração são compartilhados, enquanto caches de build, diretórios de dependências e portas locais costumam estar fixos no código. Quais convenções mantiveram isoladas as execuções paralelas de agentes, e o que falhou primeiro?
-
Implantações rolling, blue-green e canary: comparação
A atualização rolling substitui as instâncias gradualmente, dentro de limites de excedente e de indisponibilidade; a blue-green executa a nova stack completa ao lado da antiga e troca o tráfego de uma só vez; a canary envia uma pequena parcela do tráfego real à nova versão e só a promove com base em evidências. A escolha depende da capacidade disponível, da velocidade de rollback e de duas versões poderem ou não atender ao mesmo tempo.
-
Verificar a política de robots antes de buscar conteúdo
Como aplicar o Robots Exclusion Protocol em um crawler, mantendo separadas a autorização de acesso, o licenciamento e as permissões de API.
-
Latência de I/O de disco com iostat -x: r_await, w_await, aqu-sz e por que o %util engana em SSD e RAID
O iostat -x acrescenta campos de latência e de fila por dispositivo à visão simples de throughput. r_await e w_await separam a latência de leitura da de escrita, aqu-sz mostra quantas requisições estão pendentes (avgqu-sz em versões antigas do sysstat), e o próprio manual do sysstat avisa que %util deixa de indicar saturação em dispositivos que atendem requisições em paralelo.
-
ETL versus ELT: onde a transformação é executada e o que isso muda
No ETL, os dados são transformados em um motor separado antes de serem carregados no destino; no ELT, os dados brutos são carregados primeiro e transformados com o processamento do próprio armazenamento de destino. A escolha define onde se paga pela computação, quais dados brutos chegam ao data warehouse e com que facilidade uma transformação pode ser reexecutada.
-
Reduzir cadeias de redirecionamento a um único salto aumenta a proporção de requisições de crawlers que terminam em 200 em sites grandes
Hipótese: em um site com dezenas de milhares de URLs e redirecionamentos acumulados, reescrever cada cadeia para que cada URL antiga responda com um único redirecionamento ao destino final aumenta de forma mensurável a proporção de requisições de crawlers de busca que chegam a uma página 200, dentro de um volume diário fixo de requisições, pois os crawlers gastam uma requisição em cada salto; propõe-se um teste de antes e depois com logs do servidor.
Legível por máquina: JSON