Posted tagged ‘software libre’

Esto me suena (El Chumby II)

21 septiembre 2008

Algunas veces desarrollar es más una labor de investigación que de pura codificación. Se parece a esos juegos de detectives que traen (o traían) algunas revistas (hace mucho que no leo una). Empiezan enunciando unos cuantos hechos y finalizan con una pregunta. Al contrario que en la vida real, la existencia de una respuesta única que encaje con los hechos está garantizada.

Después del infructuoso intento para hacer sonar a Chumby, estos son los hechos:

  • El desarrollo de aplicaciones, o widgets, para Chumby se basa en Flash Lite 3.
  • Flash Lite 3 no incluye la capacidad de reproducir audio en stremaing.
  • Al encender Chumby, arranca automáticamente una aplicación que permite seleccionar un widget para su ejecución.
  • Este administrador incluye, además de la capacidad de seleccionar widgtes, alguna otra cosilla relacionada con temas de configuración y escucha de emisoras de radio on-line.
  • Este administrador esta escrito en Flash Lite 3
A la izquierda, el administrador de aplicaciones con el juego “Missile Game 3D” seleccionado. En la hilera de botones más a la derecha hay uno, en el centro, con una nota musical. A la derecha, el reproductor que se activa al pulsar el botón y que permite escuchar música en streaming

A la izquierda, el administrador de aplicaciones con el juego “Missile Game 3D” seleccionado. En la hilera de botones más a la derecha hay uno, en el centro, con una nota musical. A la derecha, el reproductor que se activa al pulsar el botón y que permite escuchar música en streaming

La pregunta es: ¿si el administrador está escrito en Flash Lite 3 (que no permite streaming de audio) cómo puede hacer sonar música?

Chumby es código abierto (¡genial!) de modo que no hay nada que impida buscar la solución al misterio (¡bien!).

Dando una vuelta por el Wiki de Chumby, encontré una referencia a un add-in llamado BTplay. Este complemento permite reproducir sonido en stremaing y es el que emplea el administrador para hacerlo. Sin embargo, el primer párrafo en la documentación de la API dice que no puede usarse desde un widget. Para utilizarlo, debes sustituir el administrador por tu propia aplicación.

Chumby, a la izquierda, disfrutando de un chute de código puro via USB. A la derecha, el mismo Chumby, esta vez de frente, mostrando la respuesta a una petición realizada al servidor en Rockola.fm

Chumby, a la izquierda, disfrutando de un chute de código puro vía USB. A la derecha, el mismo Chumby, esta vez de frente, mostrando la respuesta a una petición realizada al servidor en Rockola.fm

Esta sustitución no puede hacerse del mismo modo que se instala un nuevo widget. La única forma es escribir una película Flash e insertarla en el chumby por uno de sus puertos USB. Todo el proceso se realiza a través de una consola SSH que hay que configurar previamente.

Antes de liarme a reproducir música, primero una prueba de concepto para ver si arranca y ya, de paso, comprobar que la comunicación con el servidor en Rockola.fm es posible. Sorprendentemente, éxito total y a la primera (no tengo abuelas) como testifica la foto más arriba.

El siguiente paso: ver si el BTplay existe y que además funciona

En previsión de que este fin de semana iba a dedicar un rato a Chumby, le pedí a Nacho que codificara una película Flash sencillita y que permitiera seleccionar entre tres emisoras del propio sitio para su reproducción. Aprovechando que teníamos que recompilar nuestro PHP en desarrollo, Nacho escribió el código utilizando las funciones para streaming incluidas en la versión normal de Flash.

Nueva prueba de concepto sustituyendo las llamadas a las funciones de Flash por llamadas a las funciones de BTPlay. Otra sorpresa y otro éxito total a la primera (tampoco me quedan abuelos):

selección entre tres de las emisoras preconfiguradas en Rockola.fm incluyendo capacidad para avanzar tema

Suficiente para comprobar que es posible: selección entre tres de las emisoras preconfiguradas en Rockola.fm incluyendo capacidad para avanzar tema

Aunque se trata de un desarrollo con poca funcionalidad, lo importante es que el concepto está probado: Chumby puede usar Rockola.fm. Hay que hacer pocos cambios en el lado de los servidores (fundamentalmente relacionados con seguridad y autenticación) y el trabajo es prácticamente sólo de interfaz:

Un poco de “Paint Brush” (ni siquiera Photshop) para viajar al futuro. Mi Chumby tuvo una infancia dificil y a eso se debe su aspecto sucio y el frontal desencajado. Un Chumby cuidado y bien alimentado tiene otra pinta

Un poco de “Paint Brush” (ni siquiera Photshop) para viajar al futuro. Mi Chumby tuvo una infancia difícil y a eso se debe su aspecto sucio y el frontal desencajado. Un Chumby cuidado y bien alimentado tiene otra pinta

Anuncios

El Chumby

29 agosto 2008

Chumby es adorable. Y no solo porque sea blandito como un peluche o porque puedas elegir los tonos de su carcasa de piel entre negro, perla o caramelo. Chumby, además, está construido sobre componentes y conceptos francamente atractivos:

  • Por su aspecto y tamaño parece una radio despertador pero gobernado por un potente microprocesador con interacción del usuario vía pantalla táctil y conexión Wifi para el resto del mundo.
  • Su hardware es de fuentes abiertas que no quiere decir que mañana puedas ponerte a fabricar y vender réplicas pero si comprenderlo y ampliarlo (hacking). Los esquemas (que incluyen hasta el patrón del forro para que puedas personalizar su aspecto) son públicos bajo las condiciones de su licencia HDK.
  • En cuanto a periferia, la pantalla táctil es una TFT-LCD de 3 /2” con resolución QVGA. El resto: dos altavoces de 2W, salida estéreo, micrófono integrado, dos puertos USB, acelerómetro (en plan Wii) y un sensor que detecta los golpecitos que das en la parte superior del Chumby.
  • En cifras: microprocesador ARM9 a 350 MHz con 64 MB de SDRAM y 64 MB de ROM flash.
  • El sistema operativo, como no podía ser de otra manera, está basado en la distribución Linux de ARM de modo que propaga la licencia de GNU. También incorpora la versión 3.0 de Adobe Flash Lite 3.0.

Por tratarse de GNU, cualquier desarrollador puede programar pensando en Chumby. Uno se imagina la documentación de mil páginas de la API para escribir código en C durante las largas tardes de invierno. Sin embargo el desarrollo de pequeñas aplicaciones o widgets para Chumby se apoya en el reproductor de Adobe incluido en el producto. Una película Flash que cumpla las restricciones de tamaño en pantalla y que sea compatible con Flash Player 8 “debería” funcionar perfectamente en Chumby.

Otro elemento ingenioso en su política de desarrollo es que toda la administración de Chumby se realiza vía Web. Basta con conectar Chumby a Internet por Wifi (encenderlo) y entrar con un navegador desde un PC en su sitio web para descargar cualquiera de los widgets disponibles. Estos widgets incluyen, visores de noticias, de información meteorológica, relojes, calendarios, sitios sociales o juegos entre otros.

Para cargar tu propio widget basta con dejarlo primero en el sitio y descargarlo después en el Chumby mediante el procedimiento descrito.

Fue mi colega Alex quien me hablo hace un par de años del Chumby y quien hace un par de meses me animó a desarrollar un widget basado en Rockola.fm. Visto lo anterior y pensando que la cosa se limitaría a comprimir un poco nuestra interfaz me animé a intentarlo.

El Chumby no puede adquirirse desde fuera de los EEUU asi que recurri a otra fuente que se empeño en hacérmelo llegar en un sobre plano, previo desmontaje, en lugar de utilizar el embalaje original

El Chumby no puede adquirirse desde fuera de los EEUU así que recurrí a otra fuente que se empeño en hacérmelo llegar en un sobre plano, previo desmontaje, en lugar de utilizar el embalaje original

Después de casi dos meses de espera, que merecen su propio post, Chumby llegó a la oficina. Siempre que abordo un nuevo desarrollo empiezo realizando una prueba de concepto. Esta prueba consiste en construir algo pequeño pero que suministre la funcionalidad más importante entre las esperadas incidiendo especialmente en los factores de riesgo. Con eso, se pueden cambiar radicalmente estrategias con un gasto pequeño de energía. En este caso, la funcionalidad más importante es reproducir audio y el factor de riesgo más delicado saber si el Chumby podría realizar una descarga http progresiva de un fichero mp3 con más de 3 Mb de información.

Quince minutos entre codificar el widget, probar en un navegador, subirlo a su sitio, bajarlo al Chumby y comprobar el resultado:

En segundo plano el widget “sonando” sobre la simulación que proporciona el sitio. Más cerca, el Chumby real sin decir ni “pio” ¿qué pasa?

En segundo plano el widget “sonando” sobre la simulación que proporciona el sitio. Más cerca, el Chumby real sin decir ni “pio” ¿qué pasa?

El prototipo funciona desde mi Firefox con la versión 9.0 del Flash. Sin embargo, no suena nada en el Chumby. Una vuelta por los foros de desarrollo y resulta que el Flash Lite no es capaz de interpretar ficheros de audio en descarga progresiva. No conozco exactamente la razón pero probablemente se deba a un problema de licencias con el formato.

Sin embargo, no pienso rendirme tan fácilmente ya que el Chumby incluye aplicaciones no basadas en widgets de Flash que conectan con servicios de streaming como Icecast. Lo que si me temo es que tendré que revisar las mil páginas de la API.