Ir para o conteúdo
Allin
Daniel Okonkwo

Daniel Okonkwo

Programador front-end e redator de Tecnologia na Allin

Desempenho web, fluxos de ficheiros e documentos, ferramentas de texto e utilitários de programação

Daniel é programador front-end e escreve sobre o que atravessa um dia de trabalho: formatos de imagem e de ficheiro, desempenho web, manipulação de texto e dados, e os fluxos documentais — assinaturas, PDF, conversões — que se metem entre um ficheiro e quem o espera. Explica os compromissos técnicos sem jargão e diz onde uma regra deixa de ser técnica e passa a ser jurídica.

Especialidades

  • Desempenho web
  • Formatos de ficheiro
  • PDF e documentos
  • Processamento de texto
  • Ferramentas de programação

Percurso

  • Escreve desde 2016
  • 172 guias publicados no Allin
  • dos quais 57 em web
  • 620 fontes citadas
  • de 154 editores distintos
  • Publica na Allin desde 13 de maio de 2025

Como Daniel trabalha

Daniel parte da especificação — a norma do formato, o comportamento documentado do navegador — e confronta-a com o ficheiro que tem à frente, não com o que afirma um artigo de blogue. Quando um limite se revela jurídico e não técnico, diz qual dos dois está a descrever.

Artigos de Daniel Okonkwo

Os seus temas

Guias publicados sob esta assinatura em cada secção. Cada ligação abre a secção completa, com todos os redatores.

Últimas publicações

· 4 min de leitura

O número 1 e o texto «1» não são duplicados

A remoção de duplicados compara linhas inteiras de forma exata, tipo de célula incluído. Cinco linhas de aspeto idêntico saíram como três: uma levava um número, outra uma cadeia e outra uma cadeia com um espaço à frente.

· 11 min de leitura

O que uma percentagem de disponibilidade permite realmente

Três noves soa a promessa até se dividir em minutos. O que 99,9 % compra por ano, por mês, por semana e por dia; porque é que a janela de medição conta muito mais do que o nove a mais; e os dois meses diferentes que esta ferramenta usa para o mesmo identificador.

· 15 min de leitura

Redimensionar uma imagem para cada rede sem a deformar

Medido no próprio redimensionador: «Preencher» é um recorte centrado sem ponto de interesse, e uma foto vertical perde 38,9 % em cima para um banner do tamanho do X. E ainda as dimensões publicadas atuais, cada uma com a data em que foi verificada.

· 14 min de leitura

Limpar os metadados de uma fotografia: o que sai mesmo

Um JPEG pode transportar seis blocos de metadados distintos, não um. Construímos um ficheiro com todos eles — coordenadas, número de série da câmara, miniatura escondida, XMP, IPTC, comentário —, passámo-lo pelo limpador e lemos a saída byte a byte para ver o que sobrevivia.

· 12 min de leitura

O que um gestor de palavras-passe não consegue medir

A entropia dá preço a um único ataque: adivinhação offline contra um hash roubado. Acima de cerca de 90 bits o número deixa de decidir seja o que for — e o indicador deste site subavaliou uma palavra-passe aleatória de 20 carateres em 300 tiragens em 300.

· 11 min de leitura

Ler e escrever a hora militar americana

0800 não é «oito horas» nem «08:00»: é «zero eight hundred», com uma letra de fuso no fim. Os quatro dígitos, a pronúncia, a meia-noite às 0000, a discussão do 2400, e porque é que a notação de 12 horas não consegue resolver o meio-dia.

· 13 min de leitura

A hora dourada e a hora azul são ângulos, não horas

A hora dourada vai de +6° a −4° de altura do sol e a hora azul de −4° a −6°, razão pela qual dura quarenta minutos no equador, mais de uma hora em latitudes médias, e acima de 72,6° em junho não acontece de todo. Os limiares desta calculadora, verificados na sua própria saída.

· 12 min de leitura

Esconder um rosto, uma matrícula ou um IBAN numa imagem — em definitivo

O desfoque e a pixelização são reversíveis — não desfazendo as contas, mas adivinhando para a frente. Contra os modos de desfoque e pixelização desta ferramenta, um ataque de recuperação devolveu o valor escondido no lugar 1 em 10 000. Ambos os modos foram entretanto retirados. Eis o que resta, e porque não pode ser atacado da mesma maneira.

· 12 min de leitura

ZIP ou TAR: qual escolher, e porque é que isso importa

Uma só diferença de estrutura explica tudo o resto: o TAR não comprime, empilha; o ZIP comprime cada ficheiro por si. Medido em 60 ficheiros de código pequenos, dá 1 809 bytes contra 14 686.

· 12 min de leitura

XLS, XLSX, XLSM e XLSB: qual é qual, e qual lhe convém

Quatro extensões, três delas a mesma caixa com tampas diferentes. Mude a extensão de um XLSX para .zip e ele abre — só esse facto explica toda a família, e explica porque é que o XLS, que não abre assim, continua a ser o que dá problemas.

· 14 min de leitura

Numerar um PDF quando as páginas estão rodadas ou têm formatos diferentes

Numerar um documento arrumado é trivial. O que morde é uma página deitada, uma folha Letter no meio de A4, um ficheiro de impressão com sangria e um documento que já imprime o seu próprio número. Testaram-se os quatro: nos três primeiros o número cai exatamente onde pediste, e o quarto não é detetado de todo.

· 16 min de leitura

O que um PDF diz sobre si: ler e apagar os seus metadados

Um PDF transporta os seus metadados duas vezes, em dois depósitos que podem contar histórias diferentes, e nenhum deles é a história toda. Eis o que está realmente no ficheiro, o que a limpeza retira e as duas coisas que sobrevivem a qualquer apagamento.

· 13 min de leitura

Gerar corretamente uma chave secreta de aplicação

Como distinguir um gerador de chaves secretas sólido de um duvidoso, com este como exemplo trabalhado: que fonte aleatória chama, como calcular a entropia sozinho e o que se parte mesmo no dia em que se roda a chave.

· 15 min de leitura

Numerar as linhas de um texto para uma revisão a várias mãos

A numeração começa em 1 e não pode ser posta a 0, o alinhamento faz-se com espaços e não com zeros, e a ferramenta que os remove desfaz oito dos onze separadores sem mexer na indentação. O que continua sem saber fazer é distinguir os seus números dos dela.

· 12 min de leitura

Construir um URL com parâmetros que sobrevive a um copiar e colar

Três codificações, uma diferença visível: %20 ou +. O modo formulário do gerador reproduz URLSearchParams byte a byte em dezassete valores — mas dê-lhe um URL base com um fragmento e todos os parâmetros vão parar dentro do hash, onde nenhum servidor os vê.

· 15 min de leitura

Extrair o texto de um PDF, e o que a paginação lhe faz

Um PDF guarda glifos em coordenadas — não linhas, não parágrafos, não uma ordem de leitura. A extração reconstrói o texto a partir dessas posições, e é por isso que duas colunas saem entrelaçadas, uma tabela perde as células e uma digitalização não dá nada. Medido executando a ferramenta.

· 11 min de leitura

Retirar o som de um vídeo sem tocar na imagem

Um só comando ffmpeg, nenhum codificador, e um resultado cujo fluxo de vídeo é byte a byte o de partida — verificado por soma de verificação. Mais a razão por que o ficheiro quase não encolhe, e a diferença entre uma faixa silenciosa e faixa nenhuma.

· 15 min de leitura

Embelezar ou minificar: para que serve cada um e o que faz ao peso

Quatro folhas de estilo reais passadas pelo minificador, medidas em bruto e depois de gzip. Retirar todos os espaços poupou 48, 103, 104 e 147 bytes comprimidos; retirar os comentários, 57, 1 358, 2 420 e 1 042. E as cinco entradas que este minificador parte.

· 13 min de leitura

Contar carateres contra um limite que outra pessoa definiu

Um emoji vale 1 carácter, ou 7, ou 11, ou 25, consoante quem conta. Qual deles o seu formulário, a sua base de dados e o seu gateway de SMS querem dizer — e um teste de uma só colagem para saber com qual está a lidar.