Ir para o conteúdo
OneKitly
Daniel Okonkwo

Artigos de Daniel Okonkwo

Programador front-end e redator de Tecnologia · Ver perfil

· 7 min de leitura

Dividir um ficheiro grande demais para enviar

O último recurso quando nada mais pode ser comprimido. Funciona, e tem três arestas: as partes não servem de nada sozinhas, a ordem é absoluta, e o megabyte que define não é o que o limite significa.

· 20 min de leitura

Transformar notas num PDF que valha a pena arquivar

O texto simples não tem paginação, por isso qualquer conversor tem de inventar uma. Eis exatamente as decisões que este toma — página, margens, tipo de letra, quebras de linha —, o que faz com uma tabulação e com uma linha longa, e o que lhe cabe acrescentar para que uma nota valha a pena guardar.

· 20 min de leitura

Porque é que o seu CSV parte os acentos e as datas no Excel

Três avarias completamente diferentes escondem-se atrás da mesma frase. Uma é a codificação, outra o separador, outra o Excel a adivinhar tipos enquanto abre o ficheiro — e o remédio é diferente para cada uma. Eis como distingui-las em cinco segundos.

· 18 min de leitura

Cortar e juntar áudio sem um clique na junção

Aquele estalido no ponto de edição não é uma falha do programa. É um degrau na forma de onda, e um degrau é energia de banda larga — que é a definição de um clique. Eis a aritmética, medida, e os dois sítios onde pôr um corte para que nunca aconteça.

· 16 min de leitura

Retirar os acentos estraga a pesquisa — até o fazer dos dois lados

Rebater os diacríticos é um passo de normalização, e a normalização só funciona quando a mesma função corre sobre o índice e sobre a consulta. NFC contra NFD com os pontos de código à vista, e as letras — ø, ł, ß, œ, ı — que saem do rebatimento intactas.

· 15 min de leitura

Limpar texto desarrumado: a ordem das operações que realmente importa

Retirar etiquetas antes de descodificar entidades, aparar antes de desduplicar, colapsar os espaços no fim. Três ordens executadas no Node, um pipeline de nove passos na sequência certa e os caracteres invisíveis — U+00A0, U+200B, U+FEFF — que sobrevivem a qualquer limpeza ingénua.

· 16 min de leitura

MP3, WAV, FLAC: o que cada conversão destrói realmente

Um destes formatos guarda as amostras, outro guarda as mesmas amostras empacotadas e o terceiro guarda um palpite sobre o que teria ouvido. Que conversões entre eles são gratuitas, quais são apenas caras e quais são portas de sentido único — com a aritmética de cada uma.

· 15 min de leitura

Retirar o áudio de um vídeo sem uma segunda geração de perda

A banda sonora dentro do seu vídeo já passou uma vez por um codificador com perdas. Que extraí-la lhe custe uma segunda passagem depende inteiramente de qual dos três botões carrega — e «extrair para MP3», aquele a que toda a gente vai, é o que custa.

· 17 min de leitura

Codificação de URL explicada: o sinal de percentagem e onde morde

A codificação por percentagem decide-se componente a componente, e é daí que vem toda a confusão. Uma barra é legal num caminho e tem de ser escapada num valor de consulta; um espaço é %20 num caminho e pode ser + num corpo de formulário. Eis os conjuntos exatos da RFC 3986, as três funções de JavaScript que discordam e as armadilhas.

· 14 min de leitura

Porque é que um GIF de três segundos pesa mais do que o vídeo de onde saiu

Um GIF não tem compressão de vídeo a sério: cada fotograma é uma imagem inteira, limitada a 256 cores. Isso dá-lhe uma aritmética que consegue fazer de cabeça — largura vezes altura vezes número de fotogramas — e três alavancas para puxar quando a caixa de envio diz que o ficheiro é grande de mais.

· 17 min de leitura

Entropia de palavras-passe: o que um medidor de robustez não pode saber

A entropia mede o processo que produziu uma palavra-passe, não os carateres que a compõem. H = L x log2(R) só é verdade quando cada carácter foi escolhido ao acaso — e é precisamente por isso que um medidor que pontua uma palavra-passe inventada por um humano pelas suas classes de carateres está a medir a coisa errada.

· 17 min de leitura

O que está dentro de um JWT — e o que não protege

Um JWT é assinado, não cifrado. Quem tiver o token pode descodificar a carga útil e ler todas as suas reivindicações. Eis um token real, descodificado sem chave nenhuma, mais os três ataques que a assinatura deve travar e o único problema que não consegue resolver.

· 12 min de leitura

Que resolução de vídeo escolher, e o que cada degrau custa em megabytes

Passar de 1080p para 720p não parte a imagem ao meio: retira 56 % dos píxeis, e bastante menos do que isso do ficheiro. Eis a escada com contagens de píxeis reais, débitos honestos e quanto pesam três minutos em cada degrau — mais a razão por que uma fonte de débito baixo quase não encolhe.

· 14 min de leitura

Pôr um vídeo abaixo do limite de envio sem adivinhar

O cursor de qualidade não sabe apontar a um tamanho de ficheiro — não é essa a sua função. Mas o limite e a duração do seu clipe já fixam o débito a que tem direito, e uma divisão diz-lhe se a resolução que usa pode sequer caber.

· 14 min de leitura

De MOV para MP4: porque é que o vídeo do iPhone não abre no Windows

A extensão quase nunca é o problema real. Um .mov e um .mp4 são primos da mesma família de formatos, e o que trava mesmo o vídeo é o codec selado lá dentro — quase sempre HEVC. Eis como distinguir as duas avarias, e quando basta mudar a caixa.

· 7 min de leitura

Porque é que o seu corte de vídeo cai dois segundos antes

Pediu 1:23 e obteve 1:21. Nada está avariado: um corte que não recodifica só pode cair num fotograma-chave, e a que distância está o mais próximo depende inteiramente do que gravou o vídeo. Eis como saber qual tem e quando aceitar o desvio.

· 10 min de leitura

Extrair algumas páginas de um extrato sem instalar nada

Um senhorio quer a página 3. Um contabilista quer janeiro. Tem de enviar essas páginas e não as outras onze, e há uma armadilha: o método óbvio deixa as páginas retiradas dentro do ficheiro que envia.

· 8 min de leitura

Repor um documento digitalizado na ordem em que foi impresso

Um digitalizador frente e verso que apanhou um lado de cada vez, uma pilha enfiada ao contrário, uma página que saiu duas vezes. Reordenar não é a mesma operação que extrair páginas, e saber qual está a fazer diz-lhe o que acontece a tudo o que não é uma página.

· 8 min de leitura

O seu PDF está direito para si e de lado para eles

Rodou a digitalização, guardou, e o destinatário abriu-a na mesma de lado. Nada está avariado — a rotação num PDF é uma instrução e não uma alteração da página, e as instruções podem ser ignoradas. Eis quando isso acontece e como produzir um ficheiro que não possa ser mal lido.

· 16 min de leitura

MD5, SHA-1, SHA-256: que hash e para quê

O MD5 está partido e o MD5 serve muito bem, conforme qual das três propriedades de segurança precisava. Eis o que significam realmente resistência a colisões, a segunda pré-imagem e a pré-imagem, que algoritmo mantém qual, e porque nenhum deles deve chegar perto de uma palavra-passe.

· 10 min de leitura

Fotografar um documento e obter um PDF que seja aceite

Já ninguém tem digitalizador, por isso é o telemóvel que trata disso. Duas coisas decidem se o resultado é aceite: como tirou a fotografia, e em que tamanho de página ela se transforma. A segunda surpreende, porque uma fotografia convertida em PDF não é A4 a menos que algo a obrigue a sê-lo.