Desde hace un par de semanas un amigo me mando una invitación a Google Wave, he estado probando la herramienta y a pesar de que desde mi punto de vista aun le falta mucho por pulir, la verdad dudo mucho que remplace los actuales medios de comunicación, pero eso no quita el hecho de que es bastante ágil en comparacion a otros medios, lo cual puede traer ventajas en temas como coordinar proyectos y cosas de ese estilo :).

Uno de los temas que me ha atraido mas con respecto a GWave en los últimos días (y sobre lo que hablare en este post) es sobre la programación de robots usando python y las interfaces de AppEngine


Actualmente para poder crear un Robot, es necesario una cuenta en Google AppEngine. Para crear esta cuenta se necesita verificar a traves de SMS. En el caso de mi país, intente hacerlo a través de Movistar y no funciono, luego intente a través del celular Entel de un amigo y no hubo problema, pero antes de probar eso deje una queja usando el formulario de problemas y al siguiente día hábil me contestaron para confirmar la activación de la cuenta :). La principal ventaja de usar AppEngine para crear robots, es que uno puede aprovechar todas las interfaces que trae Google de por se para hacer Web Services, esto se programa en Python y Java, y por lo menos la interfaz de Python esta muy bien documentada, uno puede dar uso completo a la base de datos que trae la cuenta de AppEngine para poder almacenar estados del robot con respecto a la persona o Wave que interactua, lo cual es una ventaja si se quiere buscar un nivel de interactividad mas acabada. La desventaja esta en que AppEngine funciona con un sistema de Quotas, el cual a pesar de ser generoso para proyectos pequeños y prototipos, pero esta aveces se queda corta con Robots que son llamados extensivamente (ya he visto un par de veces a kasyntaxy@appspot.com salirse de su Quota diaria), y se tiene un limite de 10 proyectos por usuario, asi que hay que cuidarlos amenos que uno este dispuesto a pagar por más.

Por ahora no se pueden testear los robots sin subirlos al servidor de appEngine (de por si uno tiene una cuota de 1000 actualizaciones diarias....), lo cual puede presentar un problema si se piensa actualizar un robot con una funcionalidad nueva, ya que para probarlo, quedaría dispuesto para cualquier usuario automáticamente, de todas maneras este problema se planea solucionar a futuro.

Yo por ahora cree un robot de prueba para probar distintas funcionalidades, el que cree se llama grillobot@appspot.com, esta programado en Python y por ahora permite la misma funcionalidad de Emoticony (cambiar emoticons por imagenes), pero aproveche la base de datos de AppEngine para poder hacer que el robot discrimine a quienes realizar los cambios y la habilidad de permitir a los usuarios poder customizar los emoticons que quieran utilizar a su gusto.

Si quieren conversar sobre el tema, Pingueen a tavez de wave a novalkar (no tengo invitaciones de todas maneras), a continuacion dejare algunos links con la distinta documentación que me ha sido útil para aprender.

Overview sobre Robots
Tutorial de Robots en Python
Referencias de la libreria "waveapi"
Source de Watexy en Python
Documentación de AppEngine
Source de Emoticony en Java



Esta es la ultima vez que voy a poder participar en esta competencia, espero que nos valla bien :).

Para los que apañen, los puntajes estarán publicados y serán actualizados en tiempo real en http://www.acm-icpc.cl/ desde las 14:00 según tengo entendido (la competencia empieza a las 13:00 y dura 5 horas), también escuche que iba a haber un podcast en vivo en el mismo sitio... pero la verdad no se que tiene de entretenido ver a un montón de weones sentados programando... pero spngo q así nos pueden hacer barra virtualmente xDD.

Update: Al final sacamos 9no lugar, empatando con el 2do por problemas, pero con una diferencia de 3 horas de tiempo entre entregas de problemas... lo único que me da paja es no poder haber sacado un mejor lugar que las 2 veces anteriores (7mo y 6to respectivamente), pero al menos lo pase bien participando estos 3 años y gane mucha experiencia con los problemas que resolví, ojalaa que para los próximos años la universidad se ponga las pilas con la capacitación de los equipos futuros...