Todos los artículos
-
Plantilla de método reproducible
Un esquema reutilizable para un método cuyo resultado puede inspeccionar otro colaborador.
-
Texto de cuerpo legible: medida, interlineado y contraste
Tres propiedades determinan si un texto largo se puede leer cómodamente: la longitud de línea (el criterio AAA de WCAG la limita a 80 caracteres), el interlineado (debe ser posible al menos 1,5 veces el tamaño de fuente sin romper el diseño) y el contraste (4,5:1 para texto normal, 3:1 para texto grande). Establecerlos en unidades relativas para que los usuarios puedan cambiar el tamaño y el espaciado del texto.
-
Consultar y modificar el estado de los servicios con Service Management Facility: svcs y svcadm
SMF es el equivalente en Solaris a la gestión de unidades de systemd. svcs -a/-x/-l consulta el estado y localiza problemas, svcadm enable/disable/restart/refresh lo modifica, -t hace el cambio temporal y svcadm clear recupera una instancia atascada en maintenance.
-
Calibrar el resultado de un escáner con un fixture vulnerable y un gemelo seguro
Determinar si un escáner de seguridad distingue el comportamiento que afirma detectar. Este método original usa fixtures controlados para interpretar un hallazgo, no para certificar el escáner ni clasificar productos.
-
Prevenir la inyección SQL con consultas parametrizadas
Nunca construir SQL concatenando cadenas no confiables; pasar los valores como parámetros para que el controlador (driver) los envíe por separado de la sentencia, y usar una lista de permitidos para cualquier identificador que deba ser dinámico.
-
Context7 CVE-2026-75130: remediación del servicio alojado y reglas personalizadas no confiables
Context7 informa de que la vulnerabilidad de Custom Rules se corrigió en sus servidores en febrero de 2026. Su aclaración de octubre cuestiona la interpretación de la CVE basada en la versión del cliente; las respuestas de documentación siguen necesitando una separación respecto de la autoridad del agente.
-
Módulos ES frente a CommonJS en Node.js
CommonJS usa require sincrónico y module.exports; los módulos ES usan import/export estáticos, await de nivel superior e import.meta. Node decide por archivo según la extensión y el campo type del package.json más cercano; los módulos ES necesitan extensiones de archivo completas y carecen de __dirname y de require, que tienen sustitutos documentados.
-
Gestionar los secretos fuera del repositorio
Las credenciales pertenecen a una configuración protegida inyectada en tiempo de ejecución, nunca al control de versiones, a las imágenes ni a los registros; rotarlas según un calendario y ante cualquier sospecha, y dar a cada servicio las suyas propias.
-
Variantes de regex: BRE/ERE, PCRE2, RE2, JavaScript, Python y .NET comparados
Los caracteres + ? | ( ) { } son literales o especiales según la herramienta use POSIX BRE o ERE. Además, algunos motores admiten lookaround y referencias inversas, mientras que RE2 los rechaza a propósito para garantizar coincidencia en tiempo lineal, y los grupos con nombre tienen tres grafías que cada motor acepta en combinaciones distintas.
-
Nombres de paquetes alucinados y de aspecto similar: comprobar una dependencia antes de que un agente la instale
Los modelos generadores de código a veces nombran paquetes que no existen; un atacante puede registrar ese nombre, y quienes practican el typosquatting registran variantes muy próximas a las de paquetes populares. Antes de instalar, un agente debe confirmar que el paquete existe, que es el proyecto previsto y que no se registró recientemente bajo un nombre confundible.
-
Administrar paquetes snap en Ubuntu: actualizaciones, retenciones, confinamiento y eliminación segura
snapd actualiza los snaps instalados de forma automática varias veces al día; un administrador controla esto con snap refresh --hold o con las opciones de todo el sistema refresh.timer/refresh.hold, comprueba el nivel de confinamiento antes de confiar en un snap con acceso amplio, y puede eliminar uno conservando por defecto una instantánea de recuperación durante 31 días.
-
Revisar código escrito por un agente de IA
Un protocolo de revisión propuesto para cambios generados: comparar el diff con la solicitud, confirmar que cada API y dependencia existe, verificar las afirmaciones sobre las pruebas ejecutándolas y rompiéndolas, leer las pruebas antes que la implementación, buscar errores silenciados, y registrar qué se comprobó.
-
Documentar una reparación pequeña con incertidumbre explícita
Una estructura propuesta para un informe de reparación sin riesgo: síntoma, comprobaciones con los resultados esperados y observados, el cambio realizado, si el síntoma desapareció, y qué queda sin demostrar; evita afirmar que una corrección no probada es segura.
-
Orientación en z/OS: espacios de direcciones, datasets, catálogos, JES2 y qué puede ver una sesión SSH en USS
z/OS organiza el trabajo en espacios de direcciones en lugar de una tabla de procesos plana, almacena los datos en datasets catalogados en lugar de un único árbol de sistema de archivos, y encola el trabajo por lotes mediante JES2; una sesión SSH hacia z/OS UNIX System Services (USS) es un espacio de direcciones más, con su propia vista, no una ventana al sistema completo.
-
Desplazamientos de texto en JavaScript: distinguir unidades UTF-16, puntos de código y caracteres visibles
Nombrar la unidad de desplazamiento en cada límite de editor o de API, y convertir de forma deliberada antes de recortar el texto.
-
La negociación de Accept-Language y sus límites
Accept-Language transporta una lista ponderada de rangos de idioma (da, en-gb;q=0.8, en;q=0.7); el servidor la compara con los idiomas de los que dispone mediante el filtrado o la búsqueda (lookup) de la RFC 4647, responde con Content-Language y Vary: Accept-Language, y debe recurrir a un valor por defecto sensato cuando la cabecera está ausente (Googlebot no envía ninguna) o es incorrecta (la configuración regional de un dispositivo no es la elección de un lector). Usarla como primera aproximación, no como el único selector.
-
Hyper-V desde PowerShell: máquinas virtuales, puntos de control y por qué un punto de control no es una copia de seguridad
Get-VM y la forma de una llamada a New-VM, la diferencia entre puntos de control Standard y Production, Export-VM para trasladar una VM, los servicios de integración, y el modificador -ExposeVirtualizationExtensions que activa la virtualización anidada.
-
«Too many open files» (EMFILE) y el límite de descriptores de archivo
EMFILE, que se muestra como «Too many open files», indica que un proceso ha alcanzado su propio límite de descriptores de archivo abiertos a la vez, documentado como RLIMIT_NOFILE. El artículo explica cómo distinguir una fuga real de descriptores de un límite demasiado bajo y cómo aumentarlo en la shell, en PAM y en las unidades de systemd.
-
Label shift: detectar y corregir cambios en las proporciones de clase
Estima los cambios en las probabilidades a priori de clase solo bajo una suposición explícita de label shift, comprueba la identificabilidad y distingue la estimación de los priors de la corrección calibrada de las probabilidades a posteriori.
-
Comprobar el ciclo de vida de soporte de un sistema operativo antes de automatizar sobre él
Automatizar flujos de parcheo, actualización o cumplimiento sobre un host que ya superó su fin de vida genera una confianza falsa: ya no llegarán más correcciones de seguridad, independientemente de lo que informe la automatización. Esta metodología indica dónde publica cada fabricante principal sus fechas de ciclo de vida y cómo incorporar una comprobación de fin de vida como paso previo.
Legible por máquina: JSON