Todos los artículos
-
GOAP: buscar una secuencia de acciones y luego validar su ejecución
Representa de forma explícita los objetivos y las acciones, mantén los efectos hipotéticos separados del mundo real y vuelve a planificar cuando una secuencia válida deja de ser posible.
-
Comparativa de herramientas de configuración de red: nmcli, netplan, systemd-networkd y sus equivalentes en Windows y macOS
Leer la configuración de red actual, establecer una dirección estática y configurar servidores DNS: las mismas tres tareas en nmcli de NetworkManager, netplan de Ubuntu, systemd-networkd, los cmdlets de red de Windows PowerShell y networksetup de macOS.
-
Fundamentos del almacenamiento columnar: cómo se organiza un archivo Parquet y por qué las lecturas analíticas tocan menos datos
Un archivo Parquet es una secuencia de grupos de filas (row groups), cada uno con un fragmento de columna (column chunk) por columna, y cada fragmento dividido en páginas, que son la unidad de codificación y compresión; los metadatos se ubican al final, de modo que un lector abre el pie (footer), elige solo las columnas necesarias y omite grupos de filas y páginas según sus estadísticas de mínimo y máximo. La organización por columnas es lo que hace efectivas las codificaciones de diccionario y de longitud de racha (run-length).
-
Verificar la lectura tras escritura usando las revisiones devueltas
Confirmar una escritura mediante su identificador y revisión estables, sin confundir una actualización concurrente más reciente con el contenido exacto enviado.
-
MSAA y alpha-to-coverage: distinguir la cobertura del sombreado y la opacidad
Usa la cobertura multimuestra en los bordes geométricos y de recorte, evitando una doble atenuación accidental y suposiciones sin respaldo sobre las máscaras de muestras.
-
La agrupación de conexiones de base de datos y sus límites
Cada conexión de PostgreSQL es un proceso con un costo de memoria; las aplicaciones deben mantener un grupo (pool) pequeño, dimensionado según la concurrencia real, establecer tiempos de espera de adquisición, y no permitir nunca que los manejadores de solicitudes abran conexiones ad hoc.
-
Oclusión ambiental en espacio de pantalla: interpretar GTAO como una estimación de visibilidad
Integra la oclusión ambiental en el término de iluminación previsto y distingue el ruido de muestreo de los errores causados por una geometría de profundidad incompleta.
-
Timeouts predeterminados de los clientes HTTP por lenguaje y biblioteca: ninguno, 5 segundos o 100 segundos
`requests` de Python y net/http.Client de Go esperan indefinidamente si no se fija un timeout de forma explícita, httpx usa 5 segundos, HttpClient de .NET usa 100 segundos, y tanto axios como el timeout de transferencia total de curl son ilimitados por defecto: no existe un valor seguro universal.
-
Elegir y superponer perfiles de rendimiento con tuned en RHEL
tuned aplica un conjunto con nombre de parámetros ajustables del núcleo y del sistema mediante un único cambio de perfil, y un perfil personalizado puede heredar de uno existente y sobrescribir solo lo que difiere. Esta metodología cubre cómo listar, recomendar, aplicar y construir sobre perfiles existentes.
-
Respuestas de error de API coherentes con Problem Details
RFC 9457 define una estructura JSON para las respuestas de error HTTP (type, title, status, detail, instance) para que los clientes puedan gestionar los errores de manera uniforme; cualquier envoltorio coherente con códigos legibles por máquina y estables logra el mismo objetivo.
-
Orden de dependencias mediante recorrido de grafos: BFS, DFS y ordenamiento topológico
Modelar las dependencias como un grafo dirigido, usar un recorrido en anchura o en profundidad para encontrar todo lo afectado por un cambio, y el algoritmo de Kahn o el posorden de DFS para producir un orden de compilación o migración que reporte los ciclos en lugar de ocultarlos; graphlib y tsort implementan el ordenamiento.
-
Cherry-picking: cuándo encaja y qué le cuesta al historial
git cherry-pick reproduce el cambio de un commit como un nuevo commit con un ID distinto; es la herramienta adecuada para retroportar una corrección a una rama de mantenimiento o rescatar un commit de una rama abandonada, pero cada pick crea un duplicado que los merges no pueden reconocer, así que hay que registrar el origen con -x y fusionar en lugar de aplicar picks cuando se quiere la rama entera.
-
Modo oscuro con prefers-color-scheme, color-scheme y light-dark()
El modo oscuro consta de tres partes: la media query prefers-color-scheme para detectar la elección del usuario, la propiedad color-scheme (y la etiqueta meta) para indicar al navegador qué esquemas admite la página de modo que los controles de formulario, las barras de desplazamiento y el lienzo la sigan, y light-dark() o propiedades personalizadas para intercambiar los valores de la paleta sin duplicar reglas.
-
El ciclo del desarrollo guiado por pruebas
Escribir una prueba que falle, hacerla pasar con el cambio más simple y luego refactorizar con las pruebas en verde; el ciclo mantiene pequeñas las decisiones de diseño y da una razón de ser a cada línea.
-
Administrar zonas y reglas de firewalld sin quedar bloqueado fuera de la sesión SSH
firewalld separa una configuración en ejecución de una permanente, y un cambio simple con firewall-cmd se pierde en la siguiente recarga a menos que se haga permanente. Esta metodología cubre las zonas, la separación entre runtime y permanente, las reglas enriquecidas (rich rules) y cómo probar un cambio antes de que se vuelva irrecuperable en una sesión SSH remota.
-
Tareas programadas que no fallan en silencio
Una tarea programada necesita un bloqueo contra el solapamiento, un tiempo límite, registro explícito, un estado de salida que refleje el éxito y un monitor que detecte cuándo no se ejecutó en absoluto.
-
Higiene de alertas en la monitorización de hosts: tasa en lugar de umbral, unidades fallidas y ventanas de duración
Un aviso debe significar que una persona tiene que actuar ya. Un disco que se acerca a su capacidad debe avisar según su velocidad de llenado y no por un porcentaje fijo, cerca del cual una partición de crecimiento lento puede quedarse meses; y un umbral superado solo por un instante no debería generar ningún aviso. Los materiales de SRE de Google sobre disciplina en los avisos y alertas multiventana aportan el razonamiento, y este artículo lo aplica a las señales de host tratadas en esta serie.
-
Diseñar herramientas MCP que los agentes puedan usar con seguridad
Las herramientas según el Model Context Protocol necesitan un propósito acotado, esquemas de entrada y salida tipados, anotaciones veraces (solo lectura, destructiva), resultados y errores acotados que indiquen la causa; las descripciones deben vivir en el código, no en contenido que las personas usuarias puedan editar. La especificación exige además que los clientes traten las anotaciones como no confiables y que una persona pueda rechazar las llamadas.
-
Modelar amenazas de una funcionalidad con STRIDE en una sola sesión de trabajo
Dibujar la funcionalidad como un diagrama de flujo de datos con límites de confianza, recorrer cada elemento por las seis categorías de STRIDE, decidir para cada amenaza si se mitiga, elimina, transfiere o acepta, y dejar el resultado por escrito como requisitos verificables; las cuatro preguntas del Threat Modeling Manifesto son la agenda.
-
Comprobar la identidad de un paquete sugerido antes de añadirlo a un proyecto
Verificar que el nombre de un paquete sugerido durante la codificación corresponda a la dependencia mantenida prevista, antes de modificar los archivos de dependencias del proyecto o de ejecutar los scripts de instalación.
Legible por máquina: JSON