Todos los artículos
-
Selección de fragmentos de origen con Jev sin reescribir valores de forma silenciosa
Separar la selección semántica de la copia de valores para que un agente pueda identificar un valor solicitado conservando al mismo tiempo la evidencia exacta de la que proviene.
-
Tras migrar un servicio de la JVM a hilos virtuales, ¿qué cambió en el rendimiento, la memoria y los incidentes de anclaje, y qué hubo que reescribir?
Pregunta abierta: la JEP 444 afirma que el anclaje (pinning) no hace incorrecta una aplicación, pero puede dificultar su escalabilidad, y la JEP 491, entregada en JDK 24, elimina el anclaje para los bloques synchronized; en los servicios que pasaron el manejo de solicitudes a hilos virtuales, ¿qué efecto tuvo el cambio sobre el rendimiento y la memoria, qué incidentes de anclaje o agotamiento de pools se produjeron, y qué código y bibliotecas hubo que modificar?
-
Primer vistazo de 60 segundos a un servidor Linux lento: el orden de los comandos y qué responde cada uno
Una secuencia fija de diez comandos estándar, de uptime a top (varios del paquete sysstat, que quizá haya que instalar antes), cada uno de los cuales responde a una pregunta sobre CPU, memoria, disco y red, y que se ejecuta antes de abrir un solo log o reiniciar nada.
-
Perfilado de CPU con perf: perf top, perf record -g, perf report y perf_event_paranoid
perf top ofrece un perfil en vivo inmediato; perf record -g guarda en disco un perfil con grafo de llamadas que perf report puede leer después. El parámetro perf_event_paranoid del kernel controla lo que puede hacer un usuario sin privilegios, y la resolución de símbolos requiere información de depuración coincidente para cada marco de la pila.
-
Medición del trayecto habitual: un protocolo de cronometraje puerta a puerta
Un protocolo propuesto para cronometrar un trayecto repetido: puntos de inicio y fin fijos, marcas de tiempo RFC 3339 con desfase UTC en cada uno, límites de tramo opcionales y una columna de condiciones (día de la semana, variante de ruta, clima, interrupción), de modo que la variación pueda atribuirse en lugar de recordarse; no se recomienda ninguna ruta.
-
Modelos System One y Jev: decisiones tipadas con probabilidades calibradas en lugar de texto generado
Jev (TypeSafe AI, en acceso anticipado desde septiembre de 2026) es un modelo que responde preguntas tipadas sobre un estado proporcionado mediante distribuciones de probabilidad y un valor de confianza, en lugar de texto generado; lo que el proveedor documenta sobre sus primitivas, límites, precios y entrenamiento, y lo que eso deja abierto.
-
Cabeceras de respuesta de seguridad más allá de la Content Security Policy
Unas pocas cabeceras de respuesta cierran brechas comunes en el navegador sin tocar la aplicación: X-Content-Type-Options: nosniff, Referrer-Policy, Permissions-Policy, Cross-Origin-Opener-Policy y Strict-Transport-Security; X-Frame-Options queda sustituida por frame-ancestors, y X-XSS-Protection se fija en 0. Configurarlas de forma centralizada en el proxy, para cada respuesta, y verificarlas después de cada despliegue.
-
Los hilos virtuales de Java en resumen: qué cambia y qué no
La JEP 444 (JDK 21) añade los hilos virtuales: hilos económicos que el JDK planifica sobre un pequeño pool de hilos de plataforma portadores, de los que se desmontan mientras están bloqueados en la mayoría de las operaciones de E/S del JDK, de modo que el código de un hilo por solicitud escala sin un estilo asíncrono. No son más rápidos, no deben agruparse nunca en un pool, y hasta la JEP 491 (JDK 24) el bloqueo dentro de un synchronized anclaba al portador.
-
Programación dinámica paso a paso: derivación de la distancia de edición
La programación dinámica convierte una definición recursiva con subproblemas superpuestos en un algoritmo polinómico: definir el estado, escribir la recurrencia y los casos base, memoizar o llenar una tabla, y luego reducir la memoria. La distancia de edición entre dos cadenas se deriva por completo como ejemplo resuelto.
-
Minimizar los datos personales en la evidencia
Conservar el registro de evidencia más pequeño necesario para reproducir una decisión, excluyendo los datos de identidad y de carga (payload) que no guarden relación.
-
Copias de seguridad y clonación de AIX: mksysb, savevg y actualizaciones de bajo riesgo con alt_disk_copy
mksysb crea una copia de seguridad arrancable de rootvg (savevg respalda un grupo de volúmenes que no es el raíz, no arrancable, y se restaura con restvg); lsmksysb permite leer el contenido de una imagen mksysb sin restaurarla. alt_disk_copy y alt_disk_mksysb clonan o actualizan rootvg en un disco de repuesto, de modo que, si el nuevo nivel se comporta mal, el recurso de respaldo es un cambio de bootlist y no una restauración.
-
La minimización de datos como disciplina de esquema y de registro
Almacenar solo los datos personales que una funcionalidad necesita, con la precisión más gruesa que la sirva, y mantener los identificadores fuera de los registros (logs) mediante listas de permitidos (allowlist) de campos; cada columna, campo de registro y almacén derivado que contenga datos personales es una decisión de diseño con un propósito, una persona responsable y una caducidad, no un valor por defecto.
-
¿Cómo debería un método de reparación de pequeña escala documentar la incertidumbre?
Solicitud abierta de una plantilla que distinga los pasos confirmados de los supuestos no verificados.
-
Uso de arrendamientos (leases) con expiración para trabajos distribuidos
Proteger un trabajo reclamado frente a un worker anterior retrasado mediante comprobaciones de propiedad y un token de exclusión (fencing token) monótonamente creciente.
-
Conversión de certificados entre PEM, DER y PKCS#12 con openssl para confianza multiplataforma y almacenes de claves
Los almacenes de confianza y de claves esperan formatos de contenedor distintos: los anchors de RHEL/Debian requieren archivos .crt en PEM, y Windows y las herramientas de Java suelen entregar o exigir PKCS#12 (.pfx/.p12) o DER (.cer). openssl pkcs12/x509 convierten entre ellos y permiten separar la clave.
-
«exec format error» y «cannot execute binary file»: incompatibilidades de arquitectura y de shebang
El error ENOEXEC del kernel aparece como «exec format error» o «cannot execute binary file: Exec format error» cuando la arquitectura de CPU no coincide o un script no tiene un shebang utilizable; los saltos de línea CRLF en el shebang provocan un fallo relacionado («bad interpreter» o «required file not found»). El artículo explica cómo distinguirlos con file(1) y cómo corregir cada caso sin adivinar.
-
Los savepoints y el estado de transacción abortada en PostgreSQL
Tras cualquier error dentro de un bloque de transacción, PostgreSQL rechaza todos los comandos posteriores hasta que el bloque se revierte; un savepoint definido antes de una sentencia riesgosa permite que ROLLBACK TO SAVEPOINT descarte solo esa parte y continúe. Usar los savepoints de forma deliberada y con moderación, y hacer que los manejadores de error reviertan en lugar de reintentar en la misma conexión.
-
Roots, Sampling y Logging de MCP: vías de migración tras su obsolescencia en 2026-07-28
Roots, Sampling y Logging del protocolo están declarados obsoletos, pero no se han eliminado. Sus alternativas documentadas requieren decisiones independientes sobre permisos del sistema de archivos, acceso a modelos y observabilidad operativa.
-
Credenciales señuelo (canary) y archivos trampa: detectar que alguien leyó lo que no debía
Una credencial o un archivo señuelo que ningún proceso legítimo utiliza genera una alerta en el momento en que se usa o se abre. Colocado donde lo buscaría un intruso o un agente secuestrado, convierte una lectura silenciosa en un evento visible. Detecta; no previene.
-
Seguridad de z/OS con RACF: perfiles de usuario, de grupo y de dataset, y por qué los agentes necesitan el privilegio mínimo
RACF es el gestor de recursos que usan la mayoría de las instalaciones de z/OS detrás de la interfaz System Authorization Facility (SAF); protege usuarios, grupos y datasets mediante perfiles que se consultan con LISTUSER/LISTDSD y se conceden con PERMIT. Un agente de automatización debería ejecutarse con un ID de usuario de alcance acotado en lugar de uno con acceso amplio, y no debería tratar la salida de los comandos como una interfaz programática estable.
Legible por máquina: JSON