Pigweed, Pico 2 y Redes Sociales
Un framework para desarrollo de sistemas embebidos.
Ayer me enteré de que existe el proyecto Pigweed de Google. Fue mientras echaba un vistazo a las noticias sobre la Raspberry Pi Pico 2 en la web de la fundación. Tenía curiosidad por si habían anunciado una versión con WiFi y vi que está prevista para finales de año.
Parece que Google y Raspberry han colaborado bastante y el proyecto Pigweed me pareció muy interesante. Han desarrollado un framework para desarrollo en sistemas embebidos y prometen muchas de las cosas que yo perseguía cuando empecé a desarrollar mi reloj digital:
- Proporcionar un entorno de desarrollo reproducible o hermético, como ellos lo llaman.
- Consecuentemente, facilitar la configuración de flujos de integración y distribución continuas.
- Permitir la implementación de pruebas unitarias tanto simuladas, o de host o anfitrión, que se ejecutan en el PC o en el sistema de integración continua y simulan el hardware, como pruebas que se ejecutan realmente en el dispositivo.
Esto último realmente llama mi atención, me pregunto qué tipo de pruebas y comprobaciones pueden hacerse.
También ofrecen alguna característica más como, por ejemplo, la capacidad de comunicarse y pilotar el dispositivo por medio de una comunicación RPC desde un REPL, o el uso de Bazel como sistema de compilación, empaquetado y distribución. También he visto que tiene cierta integración con Zephyr, aunque no he profundizado mucho en el tema.
Aunque parece que el proyecto está todavía en una fase temprana de desarrollo, lo que proporciona es bastante más de lo que me pareció intuir que me podía ofrecer Rust para sistemas embebidos, que, por otra parte, tampoco parece que sea muy maduro, especialmente considerando el soporte para la Raspberry Pi Pico.
He estado mirando las guías y, tal y como ellos mismos advierten, todo parece bastante complejo. Supongo que igual que me lo parecía la programación de la Pico con C++ cuando empecé con el proyecto. No obstante, sin duda, si vuelvo a dedicarle tiempo, lo invertiré en aprender sobre Pigweed en lugar de Rust.
No es que Rust no me parezca interesante, que lo es, y aprendiendo Rust he descubierto aspectos de la programación, gestión de recursos y el funcionamiento de las aplicaciones que, viniendo de lenguajes de alto nivel que se ejecutan en máquinas virtuales con recolectores de basura, nunca había tenido en cuenta. Sin embargo, creo que las ventajas que me aporta no son tan importantes como las que me puede aportar Pigweed. Espero no equivocarme.
Después del desánimo que me dio enterarme de que había salido la versión 2 del SDK de la Pico cuando yo tengo el proyecto un poco abandonado, conocer la existencia de Pigweed me ha hecho ilusionarme de nuevo con el desarrollo del reloj. Sin embargo, sigo dando prioridad a las tareas de ordenar mis datos y acotar mi huella digital.
Cambiando de tercio, hoy he leído el artículo que Martin Fowler está preparando sobre el estado de las redes sociales. No lo enlazo porque él lo pide explícitamente en un anuncio en el que además indica que se trata de un borrador. Estoy bastante de acuerdo con él sobre la tendencia del uso de las redes y me identifico mucho con su forma de pensar como usuario. Sin embargo, creo que soy algo más extremo y, ahora que he vuelto a retomar el blog, creo que terminaré por cortar lazos con las redes como hizo hace poco Jasper Tandy.