Blog

Artículos sobre desarrollo

Doce artículos sobre los formatos que uno pega entre herramientas todo el día: para qué sirve base64 y cuánto cuesta, por qué la indentación de YAML muerde, qué hay realmente adentro de un JWT, cuándo un UUID v7 le gana a un v4 y por qué un timestamp cae una hora corrido.

Desarrollo

Por qué falla tu JSON: los cinco errores de siempre

El parser te dice dónde se rindió, no dónde te equivocaste. Cinco errores, el mensaje que produce cada uno y una forma de partir por la mitad un archivo terco.

Leer
Desarrollo

Qué significa el = al final de un Base64

Los signos igual son contabilidad de un último grupo que quedó corto. Cuándo se pueden quitar y qué te dice la longitud antes de decodificar.

Leer
Desarrollo

Los errores de regex que te hacen perder la tarde

Tres errores de regex devuelven algo que parece casi correcto, y por eso cuestan horas en vez de minutos. Cómo reconocer cada uno en un minuto.

Leer
Desarrollo

Una zona horaria no es un desfase respecto a UTC

Un desfase es un número para un instante. Una zona horaria es el conjunto de reglas que produce ese número. Por qué la diferencia decide qué debes guardar.

Leer
Desarrollo

Poner un UUID en una URL: qué protege y qué cuesta

Un identificador aleatorio oculta cuántos registros tienes e impide recorrerlos contando. También vuelve toda URL ilegible e imposible de dictar, y no es control de acceso.

Leer
Desarrollo

Qué es Base32 y dónde ya lo usaste

Cinco bits por carácter, un alfabeto reducido, y la razón por la que tu secreto de dos factores no se parece en nada a un JWT.

Leer
Desarrollo

Qué Hace Realmente un Parámetro UTM

Una etiqueta UTM viaja en la query string y nada la lee en el camino. Solo el script de analítica de la página de llegada la mira.

Leer
Desarrollo

Por qué JSON no tiene comentarios

Douglas Crockford los sacó a propósito, y el parche se partió en dos dialectos con la misma idea y distinto nombre.

Leer
Desarrollo

YAML vs JSON: cuál usar y dónde muerde cada uno

JSON para lo que intercambian las máquinas, YAML para lo que edita la gente. Lo interesante está en la indentación, la conversión de tipos y el código de país que se convierte en false.

Leer
Desarrollo

¿Conviene usar imágenes en Base64? Cuándo sí

Incrustar te ahorra una solicitud y te cuesta 33% más bytes, cache propio y lazy loading. La línea está cerca del kilobyte.

Leer
Desarrollo

Qué hay dentro de un JWT y qué no demuestra

Tres bloques en base64url, un puñado de claims y una firma que demuestra bastante menos de lo que casi todos suponen.

Leer
Desarrollo

Qué es Base64 y cuándo lo necesitas de verdad

Base64 convierte bytes en 64 caracteres de texto seguros, de tres en tres, y te cobra un tercio del tamaño del archivo por el privilegio.

Leer
Desarrollo

Qué es un timestamp Unix y cómo leerlo

Un solo número, contando segundos desde 1970. Cómo leerlo de un vistazo y por qué el tuyo termina cayendo en enero de 1970.

Leer
Desarrollo

UUID v4 vs v7: cuál usar y en qué casos

v7 para claves de base de datos, v4 cuando la hora de creación no es asunto de nadie más. Los bits detrás de esa regla, y los dos lugares donde v7 no hace nada.

Leer
Desarrollo

Qué es la codificación de URL y por qué rompe tu enlace

El percent-encoding en términos simples: qué caracteres hay que escapar, cuáles nunca, y las tres formas en que sale mal.

Leer
Desarrollo

Entidades HTML: qué son y cuándo las necesitas

Una entidad es un carácter escrito en ASCII puro. Necesitas cinco, y el resto lo puedes escribir directamente en el archivo.

Leer
Desarrollo

Cómo formatear JSON minificado para poder leerlo

Volver a indentar una línea enorme es la parte fácil. La vuelta por el parser es donde las cosas cambian sin avisar.

Leer
Desarrollo

Cómo convertir JSON a CSV y qué se pierde

Cada clave se convierte en una columna y cada objeto en una fila. Las decisiones empiezan en cuanto algo de tu JSON deja de ser plano.

Leer
Desarrollo

Cómo convertir CSV a JSON (y qué se rompe)

Las filas se vuelven objetos y los encabezados se vuelven claves. Lo interesante son los ceros a la izquierda, la comilla suelta y el anidamiento que ya no recuperas.

Leer
Desarrollo

Binario, hexadecimal y decimal: la diferencia

La base solo decide cómo se escribe una cantidad. Cuál conviene usar depende de si la lee una persona o un circuito.

Leer

Por dónde empezar

Si vas a leer solo dos, que sean qué es base64 y qué es un timestamp Unix. Las dos son cosas que la mayoría de quienes programan usan durante años con una idea funcional pero incompleta, y las dos producen errores difíciles de ver justamente porque el código parece correcto.

Qué hay adentro de un JWT es el tercero, y es el que tiene consecuencias de seguridad si la idea está equivocada.

Qué tienen en común estos artículos

Casi todos tratan de formatos, y un formato es un conjunto de decisiones que alguien tomó hace mucho y con las que ahora te toca convivir. Por qué JSON no tiene comentarios es una decisión de diseño con un motivo declarado. UUID v4 contra v7 trata de un intercambio entre azar y localidad de índice que no importaba hasta que las bases de datos se hicieron grandes. YAML contra JSON trata de legibilidad comprada con ambigüedad.

El resto son las codificaciones que se sientan calladas entre sistemas. La codificación de URL, las entidades HTML, base32 y las bases numéricas resuelven todas la misma forma de problema: pasar datos por un canal que se reserva algunos caracteres para sus propios fines.

Preguntas frecuentes

¿Por qué JSON no permite comentarios?

Su diseñador los quitó a propósito. En otros formatos los comentarios se habían usado para llevar directivas de procesamiento, lo que convertía un formato de datos en algo que cada analizador interpretaba distinto. Dejarlos afuera mantiene a JSON sin ambigüedad. La solución habitual es una clave común que los lectores ignoran, por ejemplo un campo llamado como una nota.

¿Conviene usar UUID v4 o v7?

Usa v7 cuando el UUID es clave primaria de una base de datos. Empieza con una marca de tiempo, así que las filas nuevas caen una al lado de la otra en el índice en vez de dispersas, lo que mantiene rápidas las inserciones a medida que la tabla crece. Usa v4 cuando no quieres que el identificador revele absolutamente nada.

¿Cuál es la diferencia entre base64 y base32?

Las dos representan datos binarios como texto, con alfabetos distintos. Base64 usa 64 caracteres, algunos fáciles de confundir al leerlos en voz alta o al tipearlos, y es más compacta. Base32 usa 32 caracteres sin ambigüedad, ocupa alrededor de un veinte por ciento más, y es la que usan las claves de configuración de doble factor porque hay que escribirlas a mano.

Todas las categorías

PDF 10Imágenes 10Texto 14Diseño 11Seguridad 8Calculadoras 13Cotidiano 4Tiempo 7