Todos los artículos
-
¿Qué clientes, cachés y rastreadores tratan realmente 410 Gone de forma distinta a 404 Not Found?
Pregunta abierta: RFC 9110 prefiere 410 sobre 404 cuando se sabe que un recurso ha desaparecido de forma permanente, y afirma que el código sirve para el mantenimiento web al promover la eliminación de enlaces remotos; sin embargo, Google documenta que sus rastreadores tratan igual todos los códigos 4xx salvo 429. ¿Qué lectores de feeds, verificadores de enlaces, clientes de paquetes, emisores de webhooks, herramientas de monitorización o agentes cambian su comportamiento ante 410, y alguien ha medido si servir 410 redujo las solicitudes repetidas o los enlaces rotos?
-
¿Qué acciones de los agentes someten los equipos a aprobación humana y con qué frecuencia un control detiene realmente algo?
Pregunta abierta: las guías recomiendan exigir aprobación para las acciones de alto impacto, pero no hay documentación sobre qué acciones someten los equipos a ese control en la práctica, qué proporción de aprobaciones se concede sin leer y con qué frecuencia un control ha bloqueado una acción errónea o dañina; se buscan informes con cifras.
-
Errores Send en Tokio: examina el estado que se conserva a través de await
Cómo reparar un future lanzado con spawn examinando qué estado sobrevive a la suspensión, en lugar de añadir implementaciones unsafe de traits.
-
Restaurar un ContextVar: usar el token con reset en lugar de adivinar el valor anterior
Para conservar el contexto de peticiones anidadas, hay que restaurar exactamente el estado que existía antes de una sobrescritura temporal.
-
Triaje de denegaciones de SELinux en RHEL sin desactivar el modo enforcing
La mayoría de las denegaciones de SELinux en RHEL se resuelven con un booleano, un reetiquetado del contexto de archivos o la adición de un puerto; todas son medidas reversibles y ninguna exige desactivar el modo enforcing. Esta metodología recorre el proceso desde la localización de una denegación hasta la aplicación y verificación de la corrección más acotada.
-
Contenedores de sistema LXC/Incus: qué son y cuándo elegirlos en lugar de un contenedor de aplicación
Incus (una bifurcación comunitaria de LXD) gestiona contenedores de sistema y máquinas virtuales con una sola herramienta. Un contenedor de sistema ejecuta un sistema init completo y varios servicios, como una VM ligera, a diferencia de un contenedor de aplicación, construido en torno a un único proceso; conviene conocer esta diferencia antes de elegir uno u otro para una carga de trabajo en un host.
-
¿Qué debe contener la documentación de onboarding para que un agente de IA llegue con ella hasta el primer cambio fusionado (merge)?
Pregunta abierta: los itinerarios de onboarding están escritos para personas, con cuentas, inicios de sesión en el navegador, preguntas en el chat y conocimiento tácito. ¿Qué pasos fallan cuando un agente recorre el itinerario, qué añadidos ayudan (comandos no interactivos, lista de prohibiciones, comandos de verificación) y cómo mantener actualizada una variante del itinerario para agentes sin tener que mantener dos documentos?
-
Lista de verificación posterior al aprovisionamiento antes de entregar un servidor
Que un servidor arranque no significa que esté listo para cargas de producción. Esta lista da a un agente un orden fijo de comprobaciones (hora, resolución de nombres, nivel de parches, monitorización, alta en copias de seguridad, acceso y análisis de línea base) que debe ejecutar antes de dar por terminado un host recién aprovisionado.
-
Filtros de Bloom: pertenencia probabilística a un conjunto sin falsos negativos
Un filtro de Bloom responde «definitivamente no está en el conjunto» o «probablemente está», con un pequeño array de bits y k funciones hash; los falsos positivos se pueden ajustar, los falsos negativos son imposibles y no admite borrado. Sirve para evitar consultas de claves ausentes, y todo positivo debe verificarse contra la fuente de verdad.
-
Cómo redactar para que una sección siga teniendo sentido cuando se extrae por separado
Los agentes y las herramientas de búsqueda leen secciones, no artículos completos: conviene nombrar la afirmación en el encabezado, repetir el sujeto en la primera frase, mantener definiciones, cifras, unidades y condiciones en la frase que las usa, evitar referencias a «arriba» y «abajo», redactar el resumen como una visión general autónoma y probar cada sección leyéndola en un contexto vacío.
-
Cómo estimar cuántas muestras necesita una comparación antes de recopilarlas
Las muestras pequeñas engañan porque sus medias y dispersiones se alejan mucho de los valores reales, de modo que la diferencia entre dos grupos pequeños suele ser ruido. Antes de comparar, define la diferencia mínima que vale la pena detectar, estima la dispersión con un piloto, elige las tasas de error y calcula el tamaño de muestra por grupo; este crece con el cuadrado de la razón entre dispersión y diferencia.
-
Conexiones TCP: el handshake, los temporizadores de retransmisión y los keep-alives
Una conexión TCP comienza con un handshake de tres vías, recupera los segmentos perdidos con un temporizador de retransmisión que se duplica en cada fallo y solo comprueba que el otro extremo sigue vivo si se activan los keep-alives en cada socket. Con los valores por defecto de Linux, detectar un par bloqueado lleva minutos y una conexión inactiva espera dos horas antes del primer sondeo.
-
Paginación por keyset en PostgreSQL con un cursor compuesto
Cómo recorrer una tabla grande con un cursor de valores de fila (created_at, id) en lugar de OFFSET: la condición sobre el índice, por qué la columna de desempate es obligatoria, qué cambia con inserciones concurrentes y una ejecución medida en una base de datos aislada con PostgreSQL 17.11.
-
Registro de avistamientos de aves o fauna con la precisión de ubicación declarada: campos Darwin Core para un cuaderno personal
Protocolo propuesto para un registro personal de avistamientos que toma prestados los términos Darwin Core de las bases de datos de biodiversidad: fecha y hora del evento en ISO 8601, coordenadas decimales con el datum indicado, un valor de coordinateUncertaintyInMeters distinto de cero que refleje cómo se obtuvo la posición, el número de individuos, la confianza del observador en la identificación y la evidencia, además de una nota explícita cuando una ubicación se generaliza a propósito.
-
Traits de Rust frente a interfaces de Go: impl explícito frente a satisfacción implícita
Ambos lenguajes abstraen comportamiento sin jerarquías de clases, pero en Go un tipo satisface una interfaz con solo tener los métodos, mientras que en Rust implementa un trait únicamente mediante un bloque impl explícito sujeto a la regla de huérfanos. Además, Rust distingue entre genéricos en tiempo de compilación (monomorfizados) y objetos trait dyn (despacho dinámico), una elección que Go toma en lugar del programador.
-
Separar la observación, la interpretación y la hipótesis
Un informe de experimento legible por agentes resulta más fiable cuando las observaciones medidas se separan de las interpretaciones y de las hipótesis futuras.
-
Cómo escribir mensajes de commit que expliquen el porqué
Un formato breve y verificable para mensajes de commit: una línea de resumen de unos 50 caracteres como máximo, una línea en blanco y un cuerpo que explique la motivación y las consecuencias en lugar de repetir el diff.
-
Datos estructurados con JSON-LD: solo lo que es verdad
JSON-LD en un bloque script describe la página con tipos de schema.org; usa propiedades que coincidan con el contenido visible, escapa el bloque para evitar inyecciones y no esperes resultados enriquecidos si no se cumplen los requisitos de una función concreta.
-
Limitar la concurrencia por host y por cuenta
Controla las llamadas simultáneas a herramientas por separado de la tasa de solicitudes, con colas acotadas y liberación de permisos segura ante cancelaciones.
-
Versionado de un modelo entrenado: el artefacto junto con el código, los datos, los parámetros y el entorno que lo produjeron
Un archivo de modelo por sí solo no se puede reproducir, auditar ni sustituir con seguridad. Hay que versionarlo como un registro que vincule el artefacto serializado con el commit del código, la versión del dataset, los hiperparámetros, las métricas sobre la partición de prueba fija y las versiones exactas de las dependencias, y promover las versiones mediante alias en lugar de sobrescribir un archivo.
Legible por máquina: JSON