Ir al contenido
OneKitly
Daniel Okonkwo

Artículos de Daniel Okonkwo

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

· 3 min de lectura

Bases de regex: guía para principiantes

Una expresión regular es un patrón para buscar texto. Aquí tienes los bloques — clases de caracteres, cuantificadores y anclas — con un ejemplo.

· 3 min de lectura

¿Qué es un código QR?

Un código QR es un código de barras 2D que una cámara lee para abrir un enlace o texto. Aquí tienes qué es, por qué guarda tanto, su anatomía y una nota de seguridad.

· 12 min de lectura

Contar palabras es ambiguo, y cada herramienta responde distinto

Un recuento de palabras es una definición, no una medida. Contamos el mismo párrafo de cuatro formas y obtuvimos 25, 28, 33 y 38; luego contamos 50 000 caracteres de prosa corriente y obtuvimos acuerdo dentro del 4,5 %. La diferencia se debe por completo a compuestos, cifras y URL.

· 14 min de lectura

Formatear números para seis idiomas: separadores, moneda y la vuelta al valor

1.234,56 y 1,234.56 son el mismo número, y confundirlos cambia el valor que lee un lector. Ejecutamos Intl.NumberFormat para las seis locales del sitio e imprimimos cada separador —incluido el invisible que usa el francés— y luego medimos por qué parseFloat no puede deshacer nada de eso.

· 2 min de lectura

¿Qué es una función hash? (MD5, SHA-256)

Una función hash convierte cualquier entrada en una huella de tamaño fijo. Aquí tienes qué hace, sus propiedades clave, usos comunes y qué algoritmos son seguros.

· 3 min de lectura

Markdown: guía para principiantes

Da formato a texto plano con unos símbolos: # para títulos, ** para negrita, - para listas. Aquí tienes qué es markdown, la sintaxis básica, por qué está en todas partes y los trucos.

· 2 min de lectura

¿Qué es un JWT (JSON Web Token)?

Un JWT es un token compacto y firmado que lleva identidad entre servicios. Aquí tienes sus tres partes, su uso para autenticación y sus límites de seguridad.

· 3 min de lectura

Recuento de palabras: tiempo de lectura y límites

Un recuento de palabras son palabras separadas por espacios. Aquí tienes cómo se cuenta, por qué existen límites, cómo se traduce en páginas y tiempo de lectura, y cuándo cuentan los caracteres.

· 3 min de lectura

¿Qué es un UUID (y cuándo usarlo)?

Un UUID es un identificador de 128 bits único sin autoridad central. Aquí tienes cómo se ve, por qué es útil, las versiones y cuándo usar uno.

· 20 min de lectura

Frecuencias de fotogramas, código de tiempo y el drop-frame que no descarta nada

Fotogramas = duración × frecuencia es trivial hasta que la frecuencia es 29,97. El código de tiempo non-drop deriva entonces exactamente 3,6 segundos por hora. El drop-frame lo corrige saltando 108 números de fotograma — los mismos 108 — pero la corrección no es perfecta: contar cada fotograma revela un residuo de 3,6 milisegundos por hora.

· 17 min de lectura

¿Cuánto ocupa ese archivo de audio?

El tamaño del audio sin comprimir es aritmética exacta: frecuencia de muestreo × profundidad de bits × canales × segundos ÷ 8. El audio de CD son 176 400 bytes por segundo. Un MP3 a 320 kbps, en cambio, es tasa de bits × duración y no depende en absoluto de la frecuencia de muestreo — 2 400 000 bytes por minuto venga de 44,1 o de 48 kHz.

· 18 min de lectura

Degradados, bandeado y por qué el centro se ve turbio

Interpolar en sRGB promedia números codificados en gamma: el punto medio de rojo a verde es #808000 cuando la respuesta a media luz es #bcbc00 — un 57,2 % menos de luz. El bandeado es otro problema aritmético: 8 bits dan 256 escalones, y un degradado oscuro puede tener sólo 28. Aquí están ambos, calculados.

· 16 min de lectura

Los esquemas de color son geometría sobre una rueda — y la rueda está mal

Complementario, tríada, análogo y complementario dividido no son más que rotaciones: suma 180°, 120°, 30° o 150° a un tono. La aritmética es trivial. El problema es que el círculo de tonos HSL no es perceptualmente uniforme — el amarillo y el azul con la misma luminosidad HSL difieren 12,85 veces en luminancia — así que una paleta generada hay que comprobarla luego en contraste.

· 19 min de lectura

Resolución de pantalla, densidad de píxeles y los números del marketing

Una diagonal y una relación de aspecto dan anchura y altura por Pitágoras, y el resultado no es el que sugiere el marketing: una de 27 pulgadas en 21:9 tiene un 16,2 % menos de superficie que una de 27 pulgadas en 16:9. Luego los píxeles por grado, que muestran que el teléfono con más PPI no es lo más nítido que tienes.

· 21 min de lectura

El formateo SQL y la cláusula IN que rompe producción

Construir una lista IN por concatenación de cadenas es a la vez el vector de inyección clásico y un precipicio de rendimiento. La parametrización arregla lo primero de forma estructural, porque el plan se compila antes de que llegue valor alguno. Lo segundo exige aritmética: los techos de parámetros documentados por los fabricantes, y qué le hace a una caché de planes una consulta cuyo texto cambia con cada longitud de lista.

· 18 min de lectura

YAML parece amable y muerde

YAML es JSON más una capa de inferencia de tipos, y la inferencia es la parte peligrosa. El mismo fichero pasado por un analizador YAML 1.2 y por uno 1.1: no es una cadena en uno y false en el otro, 01234 es 1234 en uno y 668 en el otro, y 12:30:00 es un número en uno de los dos.

· 20 min de lectura

JSON es más simple de lo que crees, y ese es el problema

JSON no tiene tipo entero, ni tipo fecha, ni comentarios, ni esquema. Cada una de esas ausencias produce un fallo concreto: un identificador de 19 dígitos vuelve desviado en 21, una marca de tiempo se convierte en una cadena que nadie acordó, NaN no se puede escribir y las claves duplicadas son legales. Todo ejecutado, en dos lenguajes.

· 3 min de lectura

¿Qué es una expresión cron?

Una expresión cron programa una tarea para ejecutarse automáticamente a horas fijadas. Aquí tienes para qué sirve, sus cinco campos, cómo leerla y los fallos comunes.