Textos sobre desenvolvimento
Doze textos sobre os formatos que a gente cola entre ferramentas o dia inteiro: para que serve base64 e quanto custa, por que a indentação do YAML morde, o que existe de fato dentro de um JWT, quando um UUID v7 ganha do v4 e por que um timestamp cai uma hora deslocado.
Por que seu JSON falha: os cinco erros de sempre
O parser diz onde desistiu, não onde você errou. Cinco erros, a mensagem que cada um produz e um jeito de partir ao meio um arquivo teimoso.
LerO que significa o = no fim de um Base64
Os sinais de igual são contabilidade de um último grupo que ficou curto. Quando dá para tirá-los e o que o tamanho da string diz antes de decodificar.
LerOs erros de regex que fazem você perder a tarde
Três erros de regex devolvem algo que parece quase certo, e por isso custam horas em vez de minutos. Como reconhecer cada um em um minuto.
LerUm fuso horário não é um deslocamento em relação ao UTC
Um deslocamento é um número para um instante. Um fuso horário é o conjunto de regras que produz esse número. Por que a diferença decide o que você deve guardar.
LerColocar um UUID na URL: o que protege e quanto custa
Um identificador aleatório esconde quantos registros você tem e impede que alguém os percorra contando. Ele também deixa toda URL ilegível e impossível de ditar, e não é controle de acesso.
LerO que é Base32 e onde você já o usou
Cinco bits por caractere, um alfabeto encolhido, e o motivo pelo qual o seu segredo de dois fatores não se parece em nada com um JWT.
LerO Que um Parâmetro UTM Realmente Faz
Uma tag UTM viaja na query string e nada a lê no caminho. Só o script de analytics da página de chegada olha para ela.
LerPor que o JSON não tem comentários
Douglas Crockford tirou eles de propósito, e o remendo se dividiu em dois dialetos com a mesma ideia e nomes diferentes.
LerYAML vs JSON: qual usar e onde cada um morde
JSON para o que as máquinas trocam entre si, YAML para o que as pessoas editam. O interessante está na indentação, na conversão de tipos e no código de país que vira false.
LerVale a pena usar imagens em Base64? Quando sim
Embutir economiza uma requisição e custa 33% mais bytes, cache próprio e lazy loading. O limite fica perto de um kilobyte.
LerO que há dentro de um JWT e o que ele não prova
Três blocos em base64url, um punhado de claims e uma assinatura que prova bem menos do que quase todo mundo imagina.
LerO que é Base64 e quando você realmente precisa
Base64 transforma bytes em 64 caracteres de texto seguros, de três em três, e cobra um terço do tamanho do arquivo pelo privilégio.
LerO que é um timestamp Unix e como lê-lo
Um número só, contando segundos desde 1970. Como ler de relance e por que o seu vive caindo em janeiro de 1970.
LerUUID v4 vs v7: qual usar e em que situação
v7 para chaves de banco de dados, v4 quando a hora de criação não é da conta de ninguém. Os bits por trás dessa regra, e os dois lugares onde o v7 não faz nada.
LerO que é codificação de URL e por que seu link quebra
Percent-encoding em termos simples: quais caracteres precisam de escape, quais nunca precisam e os três jeitos de dar errado.
LerEntidades HTML: o que são e quando você precisa
Uma entidade é um caractere escrito em ASCII puro. Você precisa de cinco, e o resto dá para digitar direto no arquivo.
LerComo formatar JSON minificado para conseguir ler
Reindentar uma linha enorme é a parte fácil. A volta pelo parser é onde as coisas mudam sem avisar.
LerComo converter JSON para CSV e o que se perde
Cada chave vira uma coluna e cada objeto vira uma linha. As decisões começam no momento em que algo no seu JSON deixa de ser plano.
LerComo converter CSV para JSON (e o que quebra)
As linhas viram objetos e os cabeçalhos viram chaves. O interessante são os zeros à esquerda, a aspa solta e o aninhamento que você não recupera.
LerBinário, hexadecimal e decimal: a diferença
A base só decide como uma quantidade é escrita. Qual usar depende de quem vai ler: uma pessoa ou um circuito.
LerPor onde começar
Se for ler só dois, que sejam o que é base64 e o que é um timestamp Unix. Os dois são coisas que a maioria de quem programa usa por anos com uma ideia funcional porém incompleta, e os dois produzem erros difíceis de enxergar justamente porque o código parece certo.
O que existe dentro de um JWT é o terceiro, e é o que tem consequências de segurança quando a ideia está errada.
O que estes textos têm em comum
Quase todos tratam de formatos, e um formato é um conjunto de decisões que alguém tomou há muito tempo e com as quais agora você convive. Por que JSON não tem comentários é uma escolha de projeto com um motivo declarado. UUID v4 contra v7 trata de uma troca entre aleatoriedade e localidade de índice que não importava até os bancos de dados ficarem grandes. YAML contra JSON trata de legibilidade comprada com ambiguidade.
O resto são as codificações que ficam caladas entre sistemas. A codificação de URL, as entidades HTML, base32 e as bases numéricas resolvem todas o mesmo formato de problema: passar dados por um canal que reserva alguns caracteres para os próprios fins.
Perguntas frequentes
Por que o JSON não permite comentários?
Seu criador os removeu de propósito. Em outros formatos os comentários tinham sido usados para carregar diretivas de processamento, o que transformava um formato de dados em algo que cada analisador interpretava de um jeito. Deixá-los de fora mantém o JSON sem ambiguidade. A saída habitual é uma chave comum que os leitores ignoram, por exemplo um campo com nome de observação.
É melhor usar UUID v4 ou v7?
Use v7 quando o UUID for chave primária de um banco de dados. Ele começa com um carimbo de tempo, então as linhas novas caem lado a lado no índice em vez de espalhadas, o que mantém as inserções rápidas conforme a tabela cresce. Use v4 quando você não quer que o identificador revele absolutamente nada.
Qual a diferença entre base64 e base32?
As duas representam dados binários como texto, com alfabetos diferentes. Base64 usa 64 caracteres, alguns fáceis de confundir ao ler em voz alta ou digitar, e é mais compacta. Base32 usa 32 caracteres sem ambiguidade, ocupa cerca de vinte por cento a mais, e é a que as chaves de configuração de dois fatores usam porque alguém precisa digitá-las.
Todas as categorias
PDF 10Imagens 10Texto 14Design 11Segurança 8Calculadoras 13Dia a dia 4Tempo 7