La caché de Bazel, la ejecución remota y la falta de coincidencia de la versión de glibc provocan un fallo en la producción

2025-09-21
La caché de Bazel, la ejecución remota y la falta de coincidencia de la versión de glibc provocan un fallo en la producción

Este artículo describe un fallo en la producción causado por la interacción entre la caché de Bazel, la ejecución remota y las diferentes versiones de glibc en diferentes entornos. Un desarrollador compila y prueba un cambio localmente, el CI aprovecha la caché para compilar una versión de lanzamiento, pero la implementación en producción falla debido a la ausencia de la versión 'GLIBC_2.28'. El artículo analiza cómo las discrepancias en la versión de glibc rompen la reproducibilidad de la compilación y presenta soluciones: un atajo rápido implica capturar las versiones locales y remotas de glibc, seleccionando la más alta para la cadena de herramientas de C++; una solución más robusta restringe las escrituras en la caché de acción, forzando las compilaciones a ejecutarse en ejecutores remotos; la solución definitiva utiliza sysroots, instalando varias versiones de glibc en todos los entornos y especificando explícitamente cuál usar. El artículo destaca la importancia de las compilaciones reproducibles, recomendando soluciones basadas en el contexto.

Leer más

sandboxfs: Un intento fallido de acelerar la creación de sandbox de Bazel en macOS

2025-06-13
sandboxfs: Un intento fallido de acelerar la creación de sandbox de Bazel en macOS

Un ingeniero de Google intentó mejorar el rendimiento de la creación de sandbox de Bazel en macOS con el proyecto sandboxfs. sandboxfs utilizaba un sistema de archivos de espacio de usuario para crear jerarquías de archivos virtuales de forma más eficiente, reemplazando el enfoque original de enlaces simbólicos de Bazel. Sin embargo, debido a que el rendimiento de los enlaces simbólicos de macOS no era el principal cuello de botella, junto con problemas de implementación y cambios en el ecosistema de macOS, sandboxfs finalmente se abandonó. A pesar de esto, el autor cree que su idea central —la creación eficiente de sandbox— todavía es prometedora para resolver los problemas de rendimiento de la creación de sandbox de Bazel en macOS.

Leer más
Desarrollo

Bonanza: ¿Un futuro nativo en la nube para Bazel?

2025-04-10
Bonanza: ¿Un futuro nativo en la nube para Bazel?

En el décimo aniversario de Bazel, un proyecto llamado Bonanza está atrayendo la atención. Su objetivo es renovar completamente Bazel, trasladando todo el proceso de compilación a la nube para solucionar las deficiencias de Bazel tanto en proyectos grandes como pequeños. Bonanza logra compilaciones verdaderamente incrementales ejecutando remotamente todas las operaciones, incluida la gestión de dependencias y la construcción del gráfico de compilación, lo que resulta en tiempos de compilación significativamente más rápidos. Aunque todavía está en fase de prueba de concepto, su diseño y potencial técnico ofrecen una nueva dirección para los sistemas de compilación futuros, apuntando a una era de compilación nativa en la nube.

Leer más

Gráficos prácticos sin X11: una inmersión profunda en wscons de NetBSD

2025-01-17
Gráficos prácticos sin X11: una inmersión profunda en wscons de NetBSD

Este artículo detalla cómo realizar programación gráfica de bajo nivel en NetBSD sin X11 ni Wayland, aprovechando el framework wscons. El autor demuestra cómo acceder y manipular el framebuffer para dibujar gráficos directamente en la terminal y manejar la entrada del teclado. Esto omite los sistemas gráficos tradicionales, permitiendo la interacción directa con el hardware, ideal para entornos con recursos limitados como sistemas embebidos, lo que permite tiempos de arranque más rápidos y un consumo reducido de recursos.

Leer más
Desarrollo

Revisiones de código: Una historia de éxito

2025-01-15
Revisiones de código: Una historia de éxito

Un ingeniero, X, en Google, trabajó en dos proyectos con procesos de revisión de código drásticamente diferentes. El primero, con revisiones mínimas, resultó en un lanzamiento con errores. El segundo, con un proceso de revisión riguroso y exhaustivo, aunque más lento inicialmente, produjo un lanzamiento sin errores y un aprendizaje significativo para X, impactando positivamente su carrera. El artículo argumenta que las revisiones de código no son intrínsecamente negativas; son las personas involucradas y cómo se utiliza la herramienta lo que importa para mejorar la calidad del código y la mentoría.

Leer más
Desarrollo

Revisitando el sistema de construcción de NetBSD: Una herramienta poderosa pero arcaica

2024-12-31
Revisitando el sistema de construcción de NetBSD: Una herramienta poderosa pero arcaica

Esta entrada de blog revisa el sistema de construcción de NetBSD, un sistema potente pero algo arcaico basado en una combinación de BSD make y scripts shell. Permite construir un sistema NetBSD completo desde cero en prácticamente cualquier plataforma POSIX, sin privilegios de root, y admite la compilación cruzada para varias arquitecturas. El autor detalla el proceso de construcción, incluida la generación de la cadena de herramientas, la estructura de construcción, el mecanismo destdir, las construcciones sin privilegios y la creación de medios de distribución. Si bien reconoce deficiencias como las construcciones incrementales ineficientes y la gestión de dependencias imperfecta, el autor destaca las fortalezas del sistema y su filosofía de diseño. El autor concluye mencionando un proyecto integrado actual que utiliza NetBSD y explora la posibilidad de migrar el sistema de construcción a Bazel para una mayor eficiencia.

Leer más

Synology DS923+ vs. NAS casero con FreeBSD/ZFS: Comparativa detallada

2024-12-19
Synology DS923+ vs. NAS casero con FreeBSD/ZFS: Comparativa detallada

Julio Merino compara un Synology DS923+ con su NAS doméstico construido con FreeBSD 14 y ZFS. Su NAS personalizado utiliza una potente estación de trabajo ThinkStation con abundante CPU y RAM, mientras que el DS923+ es un dispositivo NAS dedicado compacto con el DSM de Synology y btrfs. Ambos ofrecen IOPS y rendimiento de red comparables, pero el DS923+ destaca en ruido y consumo de energía. El DSM proporciona una experiencia fácil de usar y soluciones de copia de seguridad sólidas, mientras que FreeBSD/ZFS requiere más configuración y mantenimiento manuales. En última instancia, el autor prefiere el DS923+ por la mayor tranquilidad que ofrece en cuanto a la seguridad y gestión de datos.

Leer más
Hardware