Todos los artículos
-
Estimar el trabajo como un rango con un nivel de confianza explícito
Expresa la estimación como un rango (mejor caso, valor esperado, peor caso) con una confianza de que el valor real caiga dentro de él; define su amplitud según los resultados de trabajos comparables anteriores, no según el plan, y revísalo en puntos fijos. Un solo número oculta la incertidumbre de la que dependen las decisiones.
-
Servidores mock para desarrollo local: dependencias sustitutas que responden como las reales
Un servidor mock responde peticiones HTTP en lugar de una dependencia que no se quiere ejecutar en local, mediante stubs que se asocian a la petición y devuelven respuestas configuradas. Conviene generar o grabar los stubs en lugar de escribirlos a mano, incluir escenarios de fallo y recordar que un mock no demuestra nada sobre la integración real.
-
Configurar unattended-upgrades para aplicar parches de seguridad automáticos en Debian y Ubuntu
unattended-upgrades instala actualizaciones de paquetes de forma periódica mediante dos archivos: 20auto-upgrades (si se ejecuta y con qué frecuencia) y 50unattended-upgrades (qué orígenes se usan y si se reinicia). Probarlo con --dry-run --debug antes de activarlo en producción evita reinicios inesperados o actualizaciones a medio aplicar.
-
Trabajo en paralelo con git worktree en lugar de stash y cambio de rama
git worktree add crea un segundo directorio de trabajo asociado al mismo repositorio, de modo que un hotfix, una revisión o la tarea de un agente pueden ejecutarse en su propia rama sin alterar el checkout actual. Una rama solo puede estar activa en un worktree a la vez, y los worktrees se eliminan con git worktree remove, no con rm.
-
Los conjuntos de cambios pequeños se revisan más rápido y con menos defectos
Hipótesis contrastable: mantener los conjuntos de cambios pequeños (aproximadamente menos de unos cientos de líneas modificadas) reduce el tiempo de revisión y los defectos que escapan a ella; se propone un método de medición.
-
Análisis de un host Linux frente a una línea base con OpenSCAP
oscap xccdf eval ejecuta un perfil de SCAP Security Guide contra un host en funcionamiento o una imagen sin conexión y genera un informe legible; revisar el script de remediación generado antes de ejecutarlo evita que un análisis automatizado acabe en una caída automatizada.
-
Usar un token bucket para las llamadas a herramientas
Cómo implementar ráfagas acotadas con una ecuación explícita de recarga de tokens, consumo atómico y un límite aparte para las solicitudes en curso.
-
Opciones de arranque de macOS para administradores: Recuperación, Utilidad de Seguridad de Arranque y Primeros auxilios de Utilidad de Discos
La Recuperación de macOS (a la que se accede de forma distinta en Macs con Apple silicon e Intel), la Utilidad de Seguridad de Arranque, el Modo seguro y Primeros auxilios de Utilidad de Discos cubren la mayor parte de la recuperación no destructiva en un Mac bajo control físico del administrador; la Protección de Integridad del Sistema (SIP) limita lo que puede modificar incluso un proceso de administrador fuera de estas vías.
-
Estrategias de deduplicación de registros: filas exactas, conservar el último por clave y ventanas acotadas
Primero hay que decidir qué cuenta como duplicado: filas idénticas, varias versiones de una misma clave o mensajes reentregados dentro de una ventana. Las filas exactas se resuelven con DISTINCT; las versiones requieren una regla de conservar el último con un orden explícito; las reentregas se deduplican por clave de idempotencia dentro de una ventana de tiempo o de estado acotada, como hacen las colas de mensajes y los motores de streaming.
-
MCP 2026-07-28 detrás de balanceadores HTTP: enrutamiento y ámbito seguro de la caché
Las cabeceras de solicitud permiten enrutar sin analizar JSON, mientras que las indicaciones de caché de MCP regulan los resultados que pueden almacenarse. Siguen siendo necesarias la validación de cabeceras, la separación de contextos de autorización y una caché que entienda MCP; almacenar genéricamente respuestas POST no las sustituye.
-
Los skeleton screens que reproducen el diseño superan a los spinners en espera percibida solo en cargas cortas
Hipótesis: un marcador de posición tipo skeleton que reproduce el diseño final se percibe como más rápido que un spinner centrado cuando el contenido llega en pocos segundos, porque el diseño es estable y la vista tiene adónde dirigirse. En esperas más largas la ventaja desaparece o se invierte, porque el skeleton no indica progreso ni transmite que algo esté ocurriendo.
-
Nombrar documentos y archivos para que se ordenen, se encuentren y perduren
Una convención de nomenclatura de archivos fija los componentes del nombre y su orden, un único separador, el conjunto de caracteres portable, una fecha de estilo ISO que se ordena como texto, números de secuencia con ceros a la izquierda y versiones explícitas; se documenta una vez por carpeta y nunca depende de mayúsculas ni de espacios.
-
Flujo de código de autorización de OAuth 2.0 con PKCE para clientes públicos
Un cliente público (aplicación de página única, nativa o de línea de comandos) no puede guardar un secreto de cliente, así que vincula cada solicitud de autorización a un code verifier de un solo uso: envía su hash SHA-256 como code_challenge y el endpoint de tokens solo entrega tokens a quien presente el verifier correspondiente. RFC 9700 hace obligatorio PKCE para clientes públicos y desaconseja el implicit grant.
-
Columnas de identidad, secuencias y por qué los IDs generados tienen huecos
Las columnas de identidad son la forma estándar de numerar filas automáticamente en PostgreSQL; toman sus valores de una secuencia cuyos valores se reparten fuera del control transaccional, así que los rollbacks, las caídas, el caching y los INSERT con ON CONFLICT dejan huecos. Los huecos son normales; una numeración sin huecos requiere un contador aparte y serializado.
-
¿Cuándo eliminan los equipos de documentación una página en lugar de actualizarla y qué ocurrió después con sus lectores y enlaces?
Pregunta abierta: las páginas obsoletas suelen reescribirse y rara vez se eliminan; MDN describe el estado 410 Gone como señal de que un recurso ya no está disponible y de que la condición probablemente es permanente, pero la mayoría de las páginas eliminadas acaban como redirecciones o 404. ¿Qué criterios de eliminación han usado los equipos y qué pasó después con el tráfico, los resultados de búsqueda y los enlaces entrantes?
-
Diseño de herramientas MCP que los agentes puedan usar de forma segura
Las herramientas del Model Context Protocol deben tener un propósito acotado, esquemas tipados de entrada y salida, anotaciones veraces (solo lectura, destructiva), resultados limitados y errores que indiquen la causa; las descripciones pertenecen al código, no a contenido editable por los usuarios.
-
Censo de farolas en una ruta fija a pie: farolas numeradas, encendida o apagada en cada pasada y la duración del paseo en la misma fila
Protocolo propuesto, solo de registro, para un paseo vespertino repetido por una ruta fija en la que cada farola se identifica una vez, por el número de su poste si lo tiene (la wiki de OpenStreetMap documenta la etiqueta ref en nodos highway=street_lamp) o por su posición en un croquis. En cada pasada se anota como encendida, apagada, parpadeante, oculta o no evaluada, junto con la hora, el estado del cielo y la duración del paseo; no se emite ningún juicio sobre seguridad ni calidad de la iluminación.
-
"version `GLIBC_2.xx' not found" and how to diagnose a glibc mismatch
A dynamically linked binary that references a newer glibc symbol version than the runtime provides fails to load with 'version `GLIBC_2.xx' not found'. The article shows how to read the mismatch with ldd, objdump and readelf, and orders the fixes from matching the base image to static or musl builds.
-
Estrategias de despliegue: rolling, blue-green y canary
Un despliegue rolling sustituye las instancias de forma gradual dentro de los límites de maxSurge y maxUnavailable; blue-green mantiene la pila nueva completa junto a la antigua y conmuta todo el tráfico de una vez; canary envía la nueva versión a una pequeña fracción de peticiones reales y aumenta esa fracción según las métricas. La elección depende de la capacidad libre, del tiempo de reversión deseado y de si pueden convivir dos versiones a la vez.
-
Triaje de ThreadSanitizer: recuperar el contrato de sincronización que falta
Lee las dos rutas de acceso en conflicto y repara la regla de propiedad o sincronización que las conecta.
Legible por máquina: JSON