Todos los artículos
-
Creación de materiales PBR metallic-roughness fiables
Cómo construir entradas de material que distingan el metal expuesto de los recubrimientos dieléctricos, conserven el significado del color y se puedan probar con iluminación cambiante.
-
Mitigación de fuerza bruta con fail2ban: jails, backends, estado, y desbloquear la propia dirección
fail2ban vigila los registros en busca de fallos de autenticación repetidos y bloquea el origen mediante una acción de firewall; la configuración pertenece a las anulaciones en jail.local en lugar de al jail.conf empaquetado, e ignoreip es lo que evita que una dirección de gestión se bloquee a sí misma por error.
-
Rust Pin: preservar la dirección del apuntado sin congelar la variable puntero
Diagnosticar errores de fijación (pinning) identificando el valor sensible a la dirección y la operación que podría moverlo.
-
Cambios en la base de datos sin interrupción: expandir y contraer
Modificar un esquema en tres pasos desplegables por separado: expandir (crear una columna o tabla nueva y conservar la antigua), migrar (escribir por duplicado y rellenar en lotes pequeños), contraer (eliminar lo antiguo en cuanto todo el código use lo nuevo); evitar bloqueos largos no reescribiendo ninguna tabla en una sola sentencia, y limitando toda espera con lock_timeout.
-
Reproducibilidad de un experimento de aprendizaje automático: semillas, entorno, datos y los límites del determinismo
Volver a ejecutar un experimento y obtener el mismo número requiere estados aleatorios fijos y pasados explícitamente, versiones de bibliotecas fijadas, un conjunto de datos y una partición identificados, y ser consciente de que los kernels de GPU y las nuevas versiones de las bibliotecas aún pueden cambiar los resultados; el protocolo hace que las ejecuciones sean repetibles donde es posible y documenta dónde no lo son.
-
Cambios de comportamiento en canario antes del despliegue
Exponer a una cohorte acotada a un comportamiento nuevo, compararlo con una línea base y detenerse según condiciones de fallo declaradas de antemano.
-
Una opción explícita de «ninguna de estas» en toda decisión cerrada reduce la tasa de acciones erróneas de un agente más que elevar el umbral de confianza
Para un agente que enruta o clasifica con un conjunto cerrado de opciones y actúa según el resultado, esta hipótesis predice que añadir una opción explícita de abstención al conjunto de opciones elimina más acciones erróneas por cada acción correcta bloqueada que endurecer un umbral de confianza sobre la misma pregunta sin esa opción.
-
Hacer red-teaming a un flujo de trabajo de agente antes de otorgarle permisos reales
Atacar al agente de la misma forma en que lo harán el contenido y los usuarios: inyección de prompt indirecta a través de cada entrada que lee, manipulación de argumentos de herramientas, exfiltración mediante llamadas a herramientas y agotamiento de presupuesto; ejecutar sondas guionizadas más intentos manuales, registrar lo que hizo el agente, y corregir el límite (boundary), no solo el prompt.
-
Sincronización de reloj cliente-servidor: estimar la hora sin ocultar la incertidumbre
Usa intercambios de marcas de tiempo para estimar el desfase respecto a la hora del servidor, tener en cuenta el retardo asimétrico y la deriva, y mantener las correcciones del reloj separadas de las políticas de simulación y presentación.
-
Comprobación y reparación de sistemas de archivos: fsck, xfs_repair y btrfs check en un sistema de archivos desmontado
ext4, XFS y Btrfs incluyen cada uno su propio verificador, con reglas de seguridad distintas: e2fsck y xfs_repair deben ejecutarse sobre un sistema de archivos desmontado (xfs_repair tiene un modo de simulación, -n), mientras que btrfs check es de solo lectura por defecto y desaconseja con firmeza --repair. Los códigos de salida y el resultado de la simulación, no la intuición, determinan si hace falta reparar.
-
Datos de prueba sin datos personales de producción
Dar a desarrollo, CI y staging datos realistas generándolos: clasificar las columnas, escribir generadores con semilla que pasen los validadores de la aplicación, producir volumen con generate_series, copiar de producción solo las distribuciones, marcar los registros generados de forma reconocible, y eliminar el atajo de volcar producción.
-
Texto SDF y MSDF: cómo conservar los bordes de los glifos en distintos tamaños de pantalla
Decodifica glifos de campos de distancia con el rango y la interpretación de canales correctos, conserva los márgenes del atlas y mantén separados el shaping del texto y el renderizado de glifos.
-
Etiquetas de asignación de costos: un estándar de etiquetado que sobrevive a la exportación de facturación
Las facturas de la nube solo pueden agruparse por etiquetas que existan en el recurso, estén activadas para facturación y se escriban de forma consistente; definir un conjunto breve de claves obligatorias, exigirlo en el momento de creación mediante políticas, aplicarlo a través del código de infraestructura, y conciliar mensualmente el gasto sin etiquetar.
-
Crear almacenamiento resiliente en un servidor independiente con Storage Spaces, y sustituir un disco averiado
New-StoragePool agrupa discos físicos, New-VirtualDisk con resiliencia Mirror o Parity, vigilar el estado con Get-PhysicalDisk y Get-StorageJob, y la secuencia documentada para sustituir un disco averiado sin perder el pool.
-
¿Cuánta cobertura de pruebas es suficiente para un servicio pequeño?
Pregunta abierta: para un servicio de unos pocos miles de líneas con una base de datos y una API HTTP, ¿qué nivel de cobertura y qué combinación de pruebas se ha observado que mantiene tasas de defectos aceptables sin ralentizar los cambios?
-
Extracción estructurada de documentos con JSON Schema, validación y reintentos acotados
Definir el registro objetivo como un JSON Schema con additionalProperties false, pedirle al modelo exactamente esa forma, validar cada respuesta con un validador real, reintentar un número acotado de veces incluyendo el error de validación en el prompt, y enrutar hacia una persona lo que siga fallando en lugar de adivinar.
-
Documentación de incorporación: el camino desde una máquina nueva hasta un cambio fusionado
La documentación de incorporación es un único camino numerado que lleva a quien se incorpora, humano o agente, desde no tener nada instalado hasta un cambio fusionado usando solo lo que está escrito; cada persona nueva corrige aquello con lo que tropezó, y el camino lleva asociado un responsable y una fecha de vigencia.
-
El acceso al socket de Docker equivale a root en el host: lo que realmente otorga montarlo en un contenedor
Quien pueda hablar con el daemon de Docker puede iniciar un contenedor que monte el sistema de archivos raíz del host con acceso completo. Montar /var/run/docker.sock en un contenedor, añadir un usuario al grupo docker o exponer la API por TCP equivale, por tanto, a otorgar acceso root.
-
Interfaces sensibles al locale: reglas de plural de Intl, fechas y disposición de derecha a izquierda
Formatear números, fechas y tiempos relativos con los objetos Intl del navegador en lugar de aritmética de cadenas, elegir las formas de plural mediante las categorías de Intl.PluralRules en vez de n == 1, maquetar con propiedades lógicas de CSS para que un documento con dir=rtl se refleje a sí mismo, y dejar espacio para el texto que se expande al traducirse.
-
Priorizar el Patch Tuesday de octubre de 2026 según las pruebas de explotación y los activos afectados
Un protocolo propuesto de clasificación de parches convierte una publicación extensa en una cola de trabajo por activo. La explotación confirmada, la exposición y las consecuencias para la actividad determinan la urgencia; EPSS ayuda cuando no hay pruebas de explotación.
Legible por máquina: JSON