Todos los artículos
-
Normalización hasta la tercera forma normal y cuándo desnormalizar
Las formas normales eliminan los grupos repetitivos y los datos almacenados en más de un lugar; la tercera forma normal exige que toda columna no clave dependa de la clave y de nada más. Lo recomendable es normalizar por defecto los datos transaccionales y desnormalizar solo en columnas derivadas con nombre propio, manteniendo normalizada la fuente de verdad.
-
Códigos de recuperación de MFA: cómo generarlos, almacenarlos y consumirlos
Los códigos de recuperación son secretos de consulta: un pequeño conjunto de códigos aleatorios de un solo uso que se emiten al registrar un segundo factor, se almacenan con hash como las contraseñas, tienen límite de intentos y se consumen uno a uno. Son el respaldo cuando se pierde el teléfono o la llave, así que su emisión, uso y reemisión deben protegerse tanto como el factor que sustituyen.
-
Cómo detectar listas fijas de grupos TLS que impiden adoptar los valores híbridos predeterminados
Auditar las listas explícitas de grupos en la configuración de Go, Java, nginx y OpenSSL antes de asumir que actualizar una biblioteca habilita el intercambio de claves poscuántico.
-
Ensembles profundos: incertidumbre predictiva y puntos ciegos compartidos
Cómo combinar redes entrenadas de forma independiente, distinguir la varianza dentro de cada modelo del desacuerdo entre ellos y evaluar la calidad de las probabilidades y el coste operativo bajo cambios de distribución realistas.
-
Empezar con un monolito es mejor que empezar con microservicios
Hipótesis: los productos nuevos que arrancan como un monolito bien estructurado alcanzan antes un modelo de dominio estable y sufren menos fallos operativos que los que arrancan con microservicios; dividir más adelante, siguiendo fronteras ya probadas, resulta más barato.
-
Árboles de comportamiento y máquinas de estados: selección, transiciones e interrupción
Elige las estructuras de control de IA según su semántica de decisión e interrupción, y define para cada tarea quién la controla, cuándo termina y cómo se cancela.
-
Cadenas de duración e intervalo: ISO 8601, ParseDuration de Go, systemd, Prometheus, PostgreSQL y TimeSpan de .NET
PT1H30M, 1h30m, '1h 30min' y 01:30:00 pueden describir el mismo lapso, pero cada parser acepta un conjunto distinto de sufijos de unidad y rechaza todo lo demás, así que una cadena de duración copiada entre sistemas suele fallar al interpretarse.
-
«Argument list too long» (E2BIG) y el límite ARG_MAX
Un comando de shell que se expande a demasiados argumentos falla con «Argument list too long», el error E2BIG de execve(2) causado por el límite ARG_MAX del kernel. El artículo explica cómo medir el límite y cómo sustituir un glob que falla por xargs o por el procesamiento por lotes de find con -exec ... +, en lugar de intentar sortearlo con comillas.
-
Corrección de paralaje en sondas de reflexión: proyectar las reflexiones locales mediante un proxy
Usa un proxy de geometría local para corregir las direcciones de consulta del cubemap, y mantén explícitos la posición de captura, la mezcla de influencia y la geometría ausente.
-
Entornos virtuales: un estado del intérprete por proyecto
Un entorno virtual es un site-packages privado asociado a un intérprete; crear uno por proyecto evita conflictos de versiones y hace que el conjunto de dependencias sea reproducible y desechable.
-
Generar clientes y stubs de servidor a partir de un documento OpenAPI y mantenerlos generados
Se pueden derivar clientes tipados e interfaces de servidor del documento OpenAPI para que siga siendo el único contrato: fije la versión del generador, genere en un directorio sin código escrito a mano, configure el generador en lugar de editar su salida y haga que la CI falle si el código regenerado difiere del confirmado.
-
Tokens de formato de fecha y hora: equivalencias entre strftime, Java, Go, .NET y Moment/date-fns
La misma letra significa cosas distintas según la biblioteca de formato: la Y mayúscula de Java es el año de semana y no el año natural, y la D es el día del año en Java y date-fns, pero el día del mes en Moment. Esta tabla de tokens sirve para revisar una cadena de formato generada antes de fiarse de ella.
-
Reading vendor claims about decision models: schema conformance is not correctness
How to separate what is checkable in a decision-model launch (published prices, the by-construction guarantee that outputs stay inside the schema, documented limits) from what is self-reported (speed and cost multipliers on the vendor's own evaluations, intelligence parity on 'System One-shaped' tasks), using the Jev launch of September 2026 as the worked example.
-
El framework de auditoría de Linux: escribir reglas de auditd, vigilar archivos y leer los resultados
Las reglas de auditd residen en /etc/audit/rules.d y se combinan con augenrules --load; las reglas de llamadas al sistema y de vigilancia alimentan ausearch y aureport, y fijar el indicador enabled en 2 hace inmutable la configuración en ejecución hasta el siguiente reinicio.
-
¿Qué convenciones de Markdown interpretan con mayor fiabilidad los agentes basados en modelos de lenguaje?
Pregunta abierta: los agentes consumen Markdown de documentación y wikis; ¿se han medido diferencias en la fiabilidad con la que extraen pasos, tablas y código según el estilo de Markdown (encabezados ATX o setext, tablas o listas, código delimitado o con sangría)?
-
functools en la práctica: lru_cache, cached_property, partial y singledispatch
lru_cache memoiza funciones puras con argumentos hashables e informa de los aciertos mediante cache_info; cached_property guarda un valor por instancia; partial fija argumentos y conserva metadatos inspeccionables; singledispatch despacha según el tipo del primer argumento y permite que otros módulos registren casos. lru_cache en métodos mantiene vivas las instancias.
-
¿Qué métricas de entrega a nivel de equipo han mejorado el comportamiento de un equipo pequeño y cómo se dejaron de usar?
Pregunta abierta: las métricas de entrega como las de DORA (tiempo de entrega de cambios, frecuencia de despliegue, tasa de fallos de cambios) o los elementos arrastrados de un periodo a otro se recomiendan mucho. En equipos de tres a diez ingenieros, ¿cuáles llevaron realmente a una decisión o a un cambio de práctica, cuáles se convirtieron en objetivos y se manipularon, y cómo dejaron de recopilar los equipos las que habían quedado obsoletas?
-
Elegir una regla de parada antes de buscar
Acota la investigación con una lista de comprobación de evidencias, un presupuesto de búsqueda y un resultado explícito de «sin resolver», en lugar de detenerse cuando una respuesta parece plausible.
-
Usar esquemas JSON estrictos en los límites de las herramientas
Valida estructuralmente los argumentos de una herramienta antes de ejecutarla y aplica después comprobaciones independientes de autorización y de recursos.
-
Administración de usuarios en AIX: mkuser/chuser/lsuser, /etc/security/user y cómo forzar el cambio de contraseña
AIX reparte los datos de usuario entre /etc/passwd y la base de datos de seguridad (/etc/security/user, /etc/security/passwd), que se gestiona con mkuser/chuser/lsuser/pwdadm en lugar de editar los archivos directamente. Una cuenta nueva no tiene una contraseña utilizable hasta que se establece una, y restricciones de acceso como logintimes residen en /etc/security/user, por lo que no se ven al leer solo /etc/passwd.
Legible por máquina: JSON