No es trabajar con clientes. No es hacer lo que ya hice antes. No es repetirme a mi mismo una y otra vez. Es hacer cosas nuevas, que nunca haya visto, usando cutting-edge technologies, y que sean extremadamente divertidas. Así sí se trabaja con ganas... y de paso me pagan... ¿Qué más se puede pedir?
Ya está acabado y listo para ser presentado el viernes. Lo llamamos "Scoreboard", y no es más que una pizarra para llevar el marcador de los juegos de ping-pong en la empresa. Sí, todos los días jugamos ping-pong, y el viernes es una verdadera fiesta con todos en cola para jugar. El único detalle es que hay que contar en la memoria... o había que hacerlo... hasta hoy.
"Scoreboard" cuenta con dos componentes físicos fundamentales: Un Google TV y un teléfono Android. En el Google TV (ya sea el Logitech conectado a un TV normal, o el Sony que lo trae integrado) se va a mostrar el marcador del juego. Mientras más grande sea el televisor, pues mejor va a lucir. Por su parte, a través del teléfono se podrá modificar el marcador. Todos los cambios que se hagan en el teléfono aparecerán de forma automática en el TV.
Pero hay más. Desde cualquier otro dispositivo web se podrá acceder al mismo marcador: desde un iPhone, iPod, iPad, Android, Google Chrome, Firefox, Safari, Internet Explorer... lo que sea. Basta con cargar la URL para poder seguir el juego sin importar la ubicación donde estemos. De esta forma, puedo esperar mi turno sentado en el baño e ir a la mesa cuando el juego en curso esté por acabar.
"Scoreboard" entiende las reglas del ping-pong (o al menos, las reglas con las que nosotros jugamos), así que sabe cuando el juego se acaba y actualiza su interface adecuadamente. Los mismos cambios aparecerán en todos los dispositivos conectados.
Pero lo que realmente tiene todo esto de divertido son las tecnologías que usa "Scoreboard".
Trás bastidores
El HTML5 no podía faltar en la fiesta, así que allí está. Esta es la tecnología usada para mostrar el marcador en los diferentes browsers. Cada browser utilizará una versión optimizada dadas sus características particulares. El iPhone requirió de un esfuerzo especial ya que es el dispositivo por excelencia utilizado en mi empresa.
El teléfono para modificar el marcador utiliza una aplicación Android. En esta primera versión (y posiblemente la única), el marcador solamente podrá ser modificado desde Android. La aplicación puede conectarse en dos modos diferentes: como "árbitro" para hacer modificaciones e iniciar nuevos juegos, o como espectador, donde no se podrá modificar nada y solo se podrá seguir el partido.
En el backend, la aplicación se encuentra montada en el Google App Engine, la misma infraestructura utilizada por las aplicaciones de Google. La interfaz está desarrollada con GWT (Google Web Toolkit), y la base de datos es el Datastore de Google, algo en lo que he puesto mucha atención desde hace un tiempo hacia acá.
La comunicación del teléfono "árbitro" hacia el engine de la aplicación es a través de RPC. El engine se comunica con el resto de los dispositivos Android conectados con C2DM (Cloud to Device Messaging). Los diferentes browsers se comunican con el engine a través de AJAX.
De más está decir que todo está desarrollado 100 por ciento en Java. La implementación completa de todas las piezas del puzzle tomó poco más de 1 día de trabajo para dos personas.
What's next?
Lo siguiente es adicionar otro Android más a la fiesta, pero este solo servirá como cámara. La idea es que este nuevo dispositivo se mantendrá grabando los juegos todo el tiempo, y si algo extraordinario ocurre (como una de esas jugadas profesionales que de vez en cuando salen), desde el teléfono árbitro apretando un botón se podrá acceder a la jugada en vídeo. A modo de aclaración, al teléfono "cámara" nadie lo tendrá que tocar. Puede estar fijo en la pared. Todo el control de la cámara y de las jugadas grabadas se hará desde el teléfono árbitro.
Suena ambicioso, pero no es tan complicado. Veremos si sale.
En resumen, gracias a proyectos como este me siento feliz de haber estudiado informática. Así sí que vale la pena ir a ganarse el salario todos los días.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.