Ir al contenido
OneKitly
Daniel Okonkwo

Artículos de Daniel Okonkwo

Desarrollador front-end y redactor de Tecnología · Ver perfil

· 4 min de lectura

MB, GB, TB: 1024 frente a 1000, bits frente a bytes

Entiende las unidades de datos con claridad: la división 1024 frente a 1000, bits frente a bytes, y por qué un disco de 1 TB muestra unos 931 GB — con tamaños reales de archivos y almacenamiento.

· 12 min de lectura

Las listas de tareas en Markdown y qué se renderiza de verdad en cada sitio

Las listas de tareas no están en CommonMark. Son una extensión de GitHub Flavored Markdown, y por eso el mismo fichero muestra casillas en un sitio y corchetes literales en otro. La regla exacta del marcador, qué hace el anidamiento y una tabla de qué es CommonMark, qué es GFM y qué no es ninguno — comprobado contra ambas especificaciones y cuatro renderizadores.

· 14 min de lectura

Convertir entre formatos de lista sin perder datos: las reglas de comillas que nadie lee

Pasar de una lista con saltos de línea a una lista con comas es trivial hasta que un elemento contiene una coma. Las reglas de comillas de la RFC 4180, por qué un campo CSV puede contener un salto de línea, por qué las hojas de cálculo europeas usan el punto y coma, y qué le hace un elemento vacío a la ida y vuelta — cada caso ejecutado e impreso.

· 3 min de lectura

mL a tazas: cup de EE. UU., métrica y del Reino Unido

Convierte mililitros a tazas para cocinar, con la cifra clave 1 cup de EE. UU. ≈ 237 mL, y en qué se diferencian la cup de EE. UU., la métrica y la del Reino Unido — con una tabla lista.

· 13 min de lectura

Quitar el Markdown: lo que el texto plano pierde, y en qué se equivoca una regex

Un enlace se convierte en texto con su destino borrado, una lista anidada pierde su jerarquía, una tabla se vuelve una fila de palabras. Luego la mitad técnica: el markdown no tiene una especificación única, y un limpiador a base de regex destroza un nombre de archivo, un signo de multiplicación y el interior de un bloque de código — todo confrontado con un analizador de verdad.

· 12 min de lectura

Lo que un verificador de palíndromos debe decidir antes de poder responder

Caja, espacios, puntuación y diacríticos: cuatro políticas, seis frases reales, y la respuesta cambia con cada una. Luego la mitad más difícil — invertir una cadena no está definido de por sí, y la inversión por unidad de código rompe los emojis y desprende los acentos, demostrado en Node.

· 14 min de lectura

Buscar y reemplazar: las trampas de las expresiones regulares, demostradas una a una

Codicioso contra perezoso sobre la misma cadena, el punto que se salta los saltos de línea, $& y $$ en el reemplazo, una regex /g reutilizada que se salta una fila en silencio, y por qué /i no sabe nada de la i turca. Cada fallo ejecutado en Node, con una rutina contar-y-luego-reemplazar que los atrapa.

· 14 min de lectura

Convertir entre PNG y JPG sin perder lo que importa

Los dos sentidos fallan de forma opuesta. PNG a JPG aplana en silencio la transparencia sobre un color de fondo que elige el conversor — obtuvimos blanco con una herramienta y negro con otra sobre el mismo archivo. JPG a PNG no recupera nada y costó hasta 11,4 veces los bytes.

· 15 min de lectura

Marca de agua: qué protege y qué no

Una marca visible vive en los píxeles, así que sobrevive a toda copia — y degrada la imagen para todo espectador honesto al mismo tiempo. Medido: qué cuesta una marca de esquina, qué cuesta una marca en mosaico, y cómo se compara cada una con el crédito en metadatos, las Content Credentials y la marca de agua invisible.

· 15 min de lectura

Favicons: qué tamaños necesitas realmente en 2026

Cinco archivos cubren todos los consumidores que existen: la pestaña, el marcador, el mosaico anclado, la pantalla de inicio de Android y la de iOS. Las listas de veinte archivos son una matriz de navegadores muerta — con medidas de lo que un icono de 16 píxeles puede y no puede contener.

· 18 min de lectura

Marcas de tiempo Unix, segundos intercalares y el problema de 2038

El tiempo Unix cuenta segundos desde 1970 ignorando deliberadamente los segundos intercalares, por lo que no es un recuento de segundos físicos transcurridos. Esto es lo que compra ese trato, lo que un segundo intercalar le hace al contador, el instante exacto en que desborda un contador de 32 bits con signo, y el fallo del factor 1000 que te deja en 1970 o en el año 58589.

· 18 min de lectura

Qué puede quitar un minificador y qué no debe tocar

La minificación tiene que preservar el significado, y lo interesante son los espacios que llevan significado: el combinador descendiente, los espacios dentro de calc(), el hueco entre dos elementos en línea. Medido aquí sobre archivos reales, incluido lo que brotli te iba a ahorrar de todas formas.

· 17 min de lectura

Las sumas de verificación no son hashes: CRC-32, Adler-32 y para qué sirven

Una suma de verificación caza accidentes. Un hash criptográfico resiste a un atacante. Un hash de tabla reparte claves. Tres trabajos distintos, tres familias distintas — y aquí tienes una colisión CRC-32 construida a mano en 0,11 segundos que muestra exactamente por qué no puedes sustituir una por otra.