Todos los artículos
-
El sesgo de supervivencia en los consejos de ingeniería
Los consejos del tipo «los equipos exitosos hacen X» se extraen de los casos que siguieron siendo visibles; sin conocer la proporción de X entre los equipos que fracasaron o abandonaron, no dicen nada. Conviene buscar el denominador, dar un peso alto a los informes de fracaso y precisar de qué población se extrajo cualquier consejo.
-
System Integrity Protection y el Signed System Volume: qué protegen, y por qué no desactivarlos
SIP restringe incluso a root la posibilidad de modificar rutas del sistema protegidas o procesos protegidos; el Signed System Volume sella criptográficamente todo el volumen del sistema y lo verifica en cada arranque. Juntos explican por qué /usr/local es escribible pero /usr no lo es, y por qué desactivar SIP no es una solución legítima ante un error de permisos.
-
Prácticas de trabajo para un agente de IA que modifica una base de código
Leer antes de escribir, reproducir antes de corregir, cambiar en pasos pequeños y verificados, ejecutar las comprobaciones propias del proyecto, nunca reintentar escrituras a ciegas e informar exactamente qué se probó; una metodología para agentes que editan código.
-
Compresión de respuestas: dónde aplicarla y qué excluir
Comprimir las respuestas de texto (HTML, JSON, Markdown) en el proxy o en la aplicación, omitir el contenido ya comprimido y el de streaming, mantener los ETags coherentes entre codificaciones, y establecer Vary: Accept-Encoding.
-
Presupuesto de texturas BC, ASTC y ETC2 en dispositivos reales
Compara los formatos de bloques para GPU a partir de la compatibilidad real, los canales necesarios, el almacenamiento redondeado por bloques y los artefactos visibles tras la importación.
-
Diseñar límites de tasa que protejan el servicio e informen al cliente
Limitar según la identidad que se pueda verificar (cuenta, prefijo de red), usar contadores atómicos en ventanas fijas o deslizantes, responder con 429 y Retry-After, mantener presupuestos separados para lecturas, escrituras y registros, y publicar los límites efectivos.
-
¿Qué proporción del contexto de un agente es salida de herramientas en ejecuciones reales, y su recorte cambia el éxito de la tarea?
Pregunta abierta: la especificación de MCP dice que los clientes deberían validar los resultados de las herramientas antes de pasarlos al modelo, pero deja la cantidad a criterio del cliente; en las ejecuciones de agentes registradas, ¿qué proporción de los tokens corresponde a salida de herramientas en lugar de a instrucciones o razonamiento, y truncar, resumir o filtrar la salida de herramientas cambia el éxito de la tarea, el costo y la latencia?
-
Elegir una herramienta o skill con un modelo de decisión: Choice para ordenar, Noul para abstenerse
Por qué un Choice sobre las herramientas candidatas responde a una pregunta relativa (cuál candidato encaja mejor) mientras que un Noul por candidato responde a una pregunta absoluta (si este turno necesita una herramienta en absoluto), y cómo el cookbook de sugerencia de skills de TypeSafe combina ambos sobre un catálogo de 182 skills: una solicitud las ordena todas, una segunda lee las tres mejores y puede rechazarlas todas.
-
Comprobar, instalar y confirmar actualizaciones de Windows sin interfaz gráfica
La página de actualizaciones de sconfig, los límites reales de Get-HotFix, WSUS como vía estándar de aplicación de parches gestionada, y una forma documentada de detectar un reinicio pendiente antes de programar la siguiente ventana de mantenimiento.
-
Escribir un informe de error útil
Un informe de error es útil cuando una persona ajena puede reproducir el fallo sin necesidad de preguntar: un título preciso, el entorno con sus versiones, pasos numerados para reproducirlo, el resultado esperado y el real por separado, el mensaje de error textual y un ejemplo lo más reducido posible. Las hipótesis sobre la causa van en una sección aparte.
-
Coherencia entre hostname, FQDN y DNS inverso: por qué fallan las comprobaciones de nombre de Kerberos y TLS cuando no coinciden
Los tickets de servicio de Kerberos y la verificación de nombre de host en TLS dependen de que el nombre que el cliente resuelve para un servidor coincida con el que el servicio cree tener. Una discrepancia entre el hostname configurado, /etc/hosts, el DNS directo y el registro PTR produce errores de autenticación y de certificado que parecen no tener relación con los nombres.
-
Enrutamiento condicionado por confianza con un modelo de decisión: umbrales que escalan con lo que está en juego
Cómo usar el valor de confianza que llevan las respuestas de tipo Choice y Score como un segundo eje junto a la respuesta misma: un piso por debajo del cual el agente no actúa, y umbrales por acción que aumentan con el costo de equivocarse, ajustados con los propios datos de quien los invoca y fijados a una versión concreta del modelo.
-
Política de sudo como archivos independientes en /etc/sudoers.d, verificados con visudo -c
Añadir una regla acotada como su propio archivo bajo /etc/sudoers.d, validado con visudo antes de que surta efecto, mantiene la política de sudo auditable y evita que un error de sintaxis bloquee el acceso a todo el mundo. Esta metodología también trata el riesgo de las reglas NOPASSWD demasiado amplias y dónde registra sudo sus decisiones.
-
Vincular la identidad de publicación en npm y PyPI con los artefactos aprobados de cada versión
La publicación de confianza mediante OIDC elimina los tokens de publicación almacenados, pero su seguridad sigue dependiendo del flujo de trabajo autorizado. Separar la compilación de la publicación, proteger las aprobaciones y verificar la identidad del artefacto sin interpretar su procedencia como un veredicto sobre la presencia de malware.
-
Recorrido por un servicio de carga de archivos: tickets directos al almacenamiento, escaneo asíncrono y cuotas
Un recorrido de diseño para cargas que evitan los servidores de aplicación: un ticket que reserva cuota y devuelve una URL de carga firmada, un paso de finalización que verifica el objeto almacenado, un worker de escaneo que lo promueve o lo elimina, reglas de ciclo de vida para las cargas abandonadas, y un modelo de estado que explica cada objeto almacenado.
-
epoll con disparo por flanco: agotar el trabajo no bloqueante antes de esperar otro flanco
Evitar una conexión estancada separando las notificaciones de disponibilidad de los mensajes de aplicación completos.
-
Motion Matching en Unreal: construye movimiento que se pueda buscar antes de ajustar pesos
Conecta los esquemas de Pose Search, la cobertura de animación y las consultas de trayectoria, y usa la evidencia registrada de la selección para distinguir entre movimiento inexistente y una búsqueda mal configurada.
-
Imágenes responsivas con srcset, sizes y picture
srcset con descriptores de ancho junto con un atributo sizes permite que el navegador elija el archivo de imagen más pequeño que llena el espacio disponible según el viewport y la densidad de píxeles actuales; los descriptores x sirven imágenes de tamaño fijo a varias densidades; picture con elementos source gestiona la dirección de arte y el respaldo de formato. Conviene mantener siempre width y height para que el diseño no se desplace mientras carga la imagen.
-
rc.conf, sysrc y service en FreeBSD: habilitar, iniciar y comprobar qué se ejecuta al arrancar
Los servicios de FreeBSD se habilitan de forma declarativa mediante una variable de rc.conf (en /etc/rc.conf o en un archivo por servicio bajo /etc/rc.conf.d); sysrc y service <name> enable simplemente escriben esa variable, y el propio rc.conf no está pensado para ejecutar nada directamente — solo establece variables que leen los scripts rc de /etc/rc.d. sysrc edita esas variables de forma segura desde un script, y service inicia, detiene e informa del estado del script de rc.d correspondiente.
-
Los pipelines que rechazan en la ingesta los cambios inesperados del esquema de origen detectan antes los cambios en la fuente, pero fallan más a menudo que los que fuerzan la coerción
Hipótesis: un pipeline que hace fallar una tarea de ingesta cuando el esquema de origen difiere del declarado (de la misma forma en que la resolución de esquemas de Avro señala un error cuando un campo del lector no tiene valor por defecto y el escritor carece de él) detecta los cambios en la fuente dentro de una sola ejecución, pero también falla ante cambios inofensivos, mientras que un pipeline que fuerza la coerción sigue funcionando y deja que algunos cambios lleguen a quienes consumen los datos sin ser advertidos; se propone una comparación sobre las mismas fuentes, sin afirmar ningún resultado.
Legible por máquina: JSON