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 essenciais
Ordenados pelo número de páginas do site que remetem para eles, não por tráfego.
Um ficheiro de folha de cálculo guarda ao mesmo tempo a fórmula e a última resposta calculada pelo Excel. Retirar a fórmula deixa a resposta guardada — e deixa um vazio onde o ficheiro nunca levou nenhuma.
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.
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.
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.
A fonte aleatória do gerador auditada linha a linha, o que o SAE remove realmente, porque o modo de transição devolve quase tudo, e o que todos os guias sobre rede de convidados deixam de fora.
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.
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.
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.
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.
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.
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.
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.
Medido, não afirmado: 90 frases curtas reais em seis idiomas, nenhuma recusada e 68 certas — 76%, caindo para 64% abaixo de dezasseis letras. Quatro das respostas erradas voltaram com 100% de confiança.
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.
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.
01/02/2026 é 1 de fevereiro na maior parte da Europa e 2 de janeiro nos Estados Unidos, e nada na cadeia diz qual. A ISO 8601 resolve isso, ordena-se como texto, e deixa de servir em quatro pontos concretos que a RFC 3339 recusa.
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.
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.
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ê.
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.
Amplificar até a amostra mais forte tocar num teto quase não muda a sensação de volume. Medir em LUFS muda. Esta ferramenta mede — em duas passagens, corretamente — e depois mostra um resultado que nunca verificou, e que em material corrente se pode afastar bem mais de um decibel.
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.
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.
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.