Todos los artículos
-
Logs, métricas y trazas: cómo elegir la señal adecuada
Los logs registran eventos individuales, las métricas agregan mediciones numéricas a lo largo del tiempo y las trazas siguen una petición a través de varios servicios; OpenTelemetry estandariza las tres señales para poder correlacionarlas.
-
Usuarios, roles y RBAC en Solaris: por qué root es un rol por defecto y cómo pfexec sustituye a sudo
Oracle Solaris implementa la administración privilegiada mediante perfiles de derechos de RBAC asignados a usuarios o roles, y por defecto configura root como un rol, no como un usuario con inicio de sesión directo. pfexec, y no sudo, es el comando nativo para ejecutar un único comando privilegiado con un perfil asignado.
-
El event loop de JavaScript: tareas, microtareas y renderizado
JavaScript ejecuta un trabajo a la vez: el event loop de HTML toma una tarea y luego vacía por completo la cola de microtareas (reacciones de promesas, queueMicrotask) antes de la siguiente tarea o de una oportunidad de renderizado. El trabajo síncrono largo y las cadenas infinitas de microtareas bloquean la entrada del usuario y el pintado.
-
Comprobar de verdad las copias de seguridad: la prueba de restauración
Una copia de seguridad solo lo es cuando se ha logrado restaurarla en un entorno vacío y se ha verificado el resultado. El procedimiento: fijar la expectativa, restaurar usando únicamente la copia, medir completitud y funcionamiento, anotar la duración, archivar el informe y fijar la fecha de la siguiente prueba.
-
Consolas serie y fuera de banda para conservar el acceso a un servidor cuando la red falla
Una consola serie (console=ttyS0,115200 más un getty en la línea), la consola serie de un proveedor cloud o Serial-over-LAN de IPMI/BMC permiten a un administrador entrar en un servidor sin pila de red operativa, una situación que un plan de acceso basado solo en SSH no puede superar.
-
CIS Benchmarks y DISA STIG como base de hardening: qué son y cómo aplicarlos de forma selectiva
Los CIS Benchmarks y las DISA STIG son dos conjuntos de recomendaciones de configuración mantenidos de forma independiente; ambos ofrecen niveles de perfil seleccionables en lugar de un único objetivo fijo. Aplicar un perfil completo sin registrar las excepciones es una forma habitual de que el trabajo de hardening interrumpa un servicio en producción.
-
Dirigir todas las interrupciones a una única persona rotativa aumenta el tiempo ininterrumpido del resto del equipo
Hipótesis: un equipo que asigna tickets, preguntas y solicitudes operativas a un único responsable de interrupciones rotativo, en lugar de repartirlas entre todos, aumenta la mediana de la duración de los bloques de trabajo ininterrumpido del resto sin que los tiempos de respuesta a las interrupciones superen el objetivo acordado; se propone una medición.
-
Server-side request forgery: cómo obtener URL proporcionadas por el usuario
Cuando un servidor obtiene una URL proporcionada por el usuario, esta puede apuntar a servicios internos y a endpoints de metadatos. Conviene permitir solo esquemas y hosts autorizados, resolver y comprobar las direcciones, impedir redirecciones a rangos privados y, si es posible, evitar la petición.
-
Perfilar antes de optimizar
Antes de modificar código por rendimiento, mide con un profiler dónde se invierte realmente el tiempo: la mayoría de las suposiciones sobre los puntos críticos son erróneas y optimizar sin medir añade complejidad sin beneficio.
-
Desbordamiento aritmético con signo: documenta el contrato del compilador antes de cambiar la optimización
Cuando una compilación release se comporta distinto de una de depuración, separa los requisitos aritméticos de las opciones de desbordamiento de GCC.
-
Token bucket, leaky bucket y ventana deslizante: en qué se diferencian los algoritmos de limitación de tasa
La ventana fija es barata, pero deja pasar el doble del límite en el cambio de ventana; el registro deslizante es exacto, pero guarda cada marca de tiempo; el contador de ventana deslizante aproxima con memoria constante; el token bucket admite ráfagas hasta el tamaño del bucket con una recarga a ritmo fijo; el leaky bucket suaviza la salida retrasando peticiones. nginx y Envoy documentan los dos últimos.
-
Qué necesita un agente de la descripción de una API
Los agentes leen descripciones legibles por máquina, no prosa: enlaces estables desde un único documento de descubrimiento, respuestas tipadas, errores y señales de reintento documentados, idempotencia y declaraciones explícitas de lo que no está disponible.
-
Propagar un ID de petición de extremo a extremo: borde, logs, llamadas descendentes y respuesta
Genera un identificador de petición en el borde (nginx ofrece $request_id, 16 bytes aleatorios en hexadecimal), pásalo a la aplicación en una cabecera, consérvalo en un contexto propio de la petición para que cada línea de log y cada llamada saliente lo incluyan, y devuélvelo en la respuesta para poder relacionar el reporte de un usuario con los logs de cada servicio implicado; si hay trazado, el trace ID de W3C es ese identificador.
-
Los test data builders con valores por defecto reducen las roturas de tests cuando cambia un objeto de dominio
Hipótesis: las suites que crean objetos mediante builders, donde cada campo tiene un valor por defecto válido y cada test fija solo los campos sobre los que hace aserciones, requieren menos ediciones de tests ante un cambio de esquema o de constructor que las suites basadas en fixtures compartidos u object mothers con instancias predefinidas.
-
Validar direcciones de correo: qué puede y qué no puede decirte una comprobación de sintaxis
RFC 5321 limita la parte local a 64 octetos y una ruta a 256; el estándar HTML usa a propósito una gramática más simple que RFC 5322 para input type=email; las direcciones internacionalizadas requieren SMTPUTF8 de extremo a extremo. Comprueba sintaxis y longitudes, consulta el MX al registrarse, confirma la titularidad con un mensaje y nunca "corrijas" una dirección automáticamente.
-
Descomponer un juicio compuesto en preguntas atómicas para un modelo de decisión aumenta la concordancia con las etiquetas humanas frente a una única pregunta multifactor
La guía del proveedor para modelos de decisión recomienda formular una sola cosa concreta por pregunta y combinar los resultados en código. Esta hipótesis convierte esa predicción en una afirmación medible: en juicios que ponderan varios factores independientes, la forma descompuesta concuerda más con las etiquetas humanas que una sola pregunta cuyos criterios describen la combinación.
-
Registrar el destino de ejecución antes de interpretar el resultado de un diagnóstico
Determina a qué proceso, checkout, instancia de servicio o base de datos llegó realmente un comando de diagnóstico antes de aplicar su resultado al problema que describe el usuario.
-
Combinar lightmaps horneados con light probes para objetos en movimiento
Planifica a la vez las UV de las superficies y las muestras espaciales de iluminación para que el escenario estático y los objetos dinámicos compartan una configuración de iluminación horneada coherente.
-
Accesibilidad: los cuatro principios de las WCAG aplicados en la práctica
Las WCAG 2.2 agrupan todos los criterios de conformidad en cuatro principios: perceptible, operable, comprensible y robusto. Conocer los fallos más habituales de cada uno (falta de alternativas textuales, trampas de teclado, contraste insuficiente, campos sin etiqueta, objetivos demasiado pequeños) permite detectar muchas barreras sin herramientas especiales; el nivel AA es el objetivo habitual.
-
Ramas de diálogo en Ren'Py: conecta elecciones, variables de historia y rutas de retorno
Usa menús para elegir bloques locales de la historia, etiquetas para organizar los destinos y una semántica explícita de call o jump, de modo que las ramas conserven sus consecuencias y vuelvan a unirse de forma intencional.
Legible por máquina: JSON