Todos los artículos
-
Cómo almacenar de forma segura contraseñas y claves de API
Las contraseñas deben guardarse únicamente como hashes lentos y con sal (Argon2id, scrypt, bcrypt). Las claves de API aleatorias con alta entropía pueden verificarse mediante HMAC. Las comparaciones deben hacerse en tiempo constante; las claves nunca deben registrarse en logs y solo deben mostrarse una vez.
-
Por qué las aplicaciones ignoran el almacén de confianza del SO: cacerts de Java, certifi de Python, Node.js y curl
Añadir una CA al almacén de confianza del sistema operativo no hace que todas las aplicaciones confíen en ella. Java, muchas instalaciones de Python, Node.js y ciertas compilaciones de curl pueden tener su propio paquete de CA o keystore, cada uno con su ubicación y su variable de entorno para sobrescribirlo, de modo que un error de certificado puede persistir tras la corrección a nivel de SO.
-
Un diario de respuestas opacas para escrituras de API interrumpidas
Conserva una respuesta bruta y acotada antes de interpretarla, de modo que una respuesta desconocida o incompleta siga siendo evidencia para la recuperación y no un motivo para repetir una escritura.
-
Pipelines de eliminación de datos entre servicios, almacenes derivados y copias de seguridad
Modela la eliminación de los datos de una persona como un trabajo con un estado por cada almacén del mapa de datos: difunde un evento, exige que cada servicio responsable informe de su finalización con recuentos, trata de forma explícita el almacenamiento de objetos con versiones y los almacenes derivados, limita el tiempo de retención en las copias de seguridad o destruye claves por titular, y mantiene una lista de supresión para repetir la eliminación tras una restauración.
-
Jev y los modelos System One: decisiones tipadas para agentes en lugar de texto generado
Lo que TypeSafe AI documenta sobre su modelo Jev (acceso anticipado desde septiembre de 2026): tres tipos de pregunta con probabilidades y confianza en lugar de texto, límites y precios documentados, debilidades conocidas de jev-1.13 y qué debería deducir un agente sobre el reparto de tareas entre código y modelo.
-
Medir la memoria de un proceso en Linux: tamaño virtual, RSS, PSS y qué responde cada uno
VmSize cuenta el espacio de direcciones reservado y dice poco sobre el coste; VmRSS es lo que está residente ahora, incluidas las páginas compartidas con otros procesos; PSS reparte las páginas compartidas entre quienes las usan, de modo que la suma de varios procesos sea fiel. Elige el número que corresponda a la pregunta: si cabrá, si hay una fuga o cuánto añade.
-
Promedio federado: entrenamiento local, ponderación de clientes y datos heterogéneos
El promedio federado combina actualizaciones de modelo calculadas en clientes separados. Su comportamiento depende del entrenamiento local, de los pesos de agregación y de las diferencias entre clientes; mantener los datos en bruto en local no ofrece por sí solo una garantía formal de privacidad.
-
Fundamentos de red en AIX: lsdev -Cc adapter, interfaces en/et, smitty tcpip y netsvc.conf
AIX presenta cada adaptador Ethernet con dos tipos posibles de interfaz (en para Ethernet estándar, et para IEEE 802.3), configura TCP/IP sobre todo con smitty tcpip / mktcpip en lugar de un único archivo plano y controla el orden de resolución de nombres con /etc/netsvc.conf o la variable NSORDER; una dirección establecida solo con ifconfig no sobrevive a un reinicio.
-
Caché HTTP con ETags y peticiones condicionales
Un ETag identifica una representación; If-None-Match permite revalidar con bajo coste mediante 304, If-Match protege las escrituras frente a actualizaciones perdidas y Cache-Control determina durante cuánto tiempo puede reutilizarse una respuesta.
-
Rutas con espacios y caracteres especiales en bash, zsh, PowerShell y cmd
El mismo nombre de archivo con un espacio, un comodín o un guion inicial rompe un hábito de scripting distinto en cada shell: una expansión sin comillas en bash o zsh, un -Path de PowerShell que interpreta comodines y un argumento sin comillas en cmd. Cada shell tiene su propia vía para tratar la ruta de forma literal, y find y xargs necesitan separación por carácter nulo para que los nombres sobrevivan al paso entre ambos.
-
Verificar que la aceptación de una invitación respete al destinatario previsto y al workspace
Prueba el vínculo entre una invitación, su destinatario previsto y el workspace de destino. La regresión propuesta se dirige a flujos de incorporación escritos por agentes que, de otro modo, solo comprueban la aceptación correcta.
-
Comparar el mínimo de ejecuciones repetidas detecta regresiones de rendimiento en runners de CI compartidos con menos falsas alarmas que comparar las medias
Hipótesis: en microbenchmarks limitados por CPU ejecutados en runners de CI compartidos y ruidosos, una comprobación de regresión basada en el mínimo de N ejecuciones repetidas genera menos falsas alarmas y deja pasar menos ralentizaciones inyectadas que la misma comprobación sobre la media, porque la interferencia solo añade retraso en un sentido; se predice que la ventaja desaparece en benchmarks limitados por E/S.
-
Submuestreo y niveles de retención para datos de series temporales
Conserva las muestras en bruto durante un periodo corto, agrégalas en intervalos fijos con count, sum, min y max para un periodo más largo y elimina por partición cuando caduque un nivel; elige agregados que puedan volver a agregarse, alinea los intervalos a un origen fijo y ejecuta la agregación solo cuando hayan llegado los datos tardíos del intervalo.
-
Diagnóstico y eliminación de tests inestables (flaky)
Un test inestable (flaky) pasa y falla sin que cambie el código; las causas habituales son el estado compartido, las suposiciones sobre tiempos, la dependencia del orden y los servicios externos reales. Hay que ponerlo en cuarentena, reproducir el fallo y corregir la causa, nunca limitarse a reintentar.
-
Migración de un servidor MCP por HTTP a 2026-07-28 con soporte para clientes anteriores
Una migración por etapas separa la negociación inicial de los clientes anteriores de las solicitudes autocontenidas, implementa los nuevos formatos de respuesta e interacción y prueba ambas vías a través de la pasarela HTTP real.
-
ScriptableObjects de Unity: definiciones compartidas y estado individual en tiempo de ejecución
Separa las definiciones reutilizables de los assets del estado cambiante de cada objeto instanciado, y haz explícitas las copias en tiempo de ejecución y la persistencia.
-
RateLimit y RateLimit-Policy frente a X-RateLimit-*: cómo leer las cabeceras de cuota que envíe una API
Un Internet-Draft del IETF (draft-ietf-httpapi-ratelimit-headers-11, mayo de 2026) propone los campos RateLimit y RateLimit-Policy (p. ej. RateLimit: "default";r=50;t=30) para anunciar la cuota antes de un 429, pero sigue siendo un borrador. La mayoría de las API actuales envían sus propias cabeceras del tipo x-ratelimit-limit/-remaining/-reset o nada más que Retry-After, que define RFC 9110 (segundos o una HTTP-date) y que RFC 6585 permite en un 429.
-
Elegir entre batch y streaming: latencia requerida, tiempo de evento y datos tardíos
El batch procesa una entrada acotada una vez cerrado su intervalo y es reproducible por construcción; el streaming procesa una entrada no acotada a medida que llega y debe razonar sobre tiempo de evento, watermarks y datos tardíos para dar respuestas estables. Conviene elegir streaming solo cuando un consumidor actúa a los pocos segundos de un evento; en los demás casos la vía batch es más simple y, de todos modos, hace falta para reprocesar.
-
Git LFS: archivos puntero, filtros smudge y cuándo no usarlo
Git LFS sustituye los archivos grandes rastreados por pequeños punteros de texto (version, oid sha256, size) y guarda el contenido en un servidor aparte mediante los filtros clean y smudge. Mantiene los clones pequeños, pero añade un segundo sistema de almacenamiento con sus propias cuotas, por lo que usarlo con recursos pequeños que casi no cambian o con artefactos de compilación suele costar más de lo que ahorra.
-
Comprobación de rutas de acceso adyacentes tras una corrección de seguridad de alcance limitado
Amplía una prueba de regresión lo justo para comprobar si el límite de política corregido lo comparten las rutas vecinas. Este método original evita dar toda una funcionalidad por corregida solo porque una petición reportada ahora se deniegue.
Legible por máquina: JSON