Nuestra aportación en el Desafío AbreDatos 2010: DNDzgz.com

Este fin de semana se celebró el Desafío AbreDatos 2010, desde las 00:00 de la noche del Viernes al Sábado hasta las 00:00 del Domingo al Lunes, 48 horitas trabajando para desarrollar servicios que utilizaran datos de fuentes públicas. El desafío lo convocaba la asociación Pro Bono Publico para tratar de concienciar de la necesidad de que se abran los datos generados con dinero público(o sea, el nuestro); y por lo que dicen, nos habíamos presentado 47 equipos de los que hemos conseguido algo funcional unos 30. Y como publiqué en el anterior post, estuve participando.

El equipo del que formaba parte era closin, donde he programado con Alberto Gimeno, la encargada de diseño es Mamen Pradel y el responsable de marketing y comunicación es Lucas Aisa. Aún con la desventaja de que sólo habíamos trabajado anteriormente juntos Mamen y yo, creo que hemos sido un equipo muy compensado y junto al buen rollo durante todo el fin de semana, se ha notado en el resultado final con DNDzgz(o Dónde en Zaragoza ;)).

DNDzgz TEAM

La idea de DNDzgz, era principalmente crear una aplicación web móvil que mostrara servicios ciudadanos de Zaragoza geolocalizados y su información útil asociada, que además tuviera aspecto de aplicación nativa de iPhone(sin cerrarnos a que funcionara en otros terminales/navegadores, claro).

Nuestra idea inicial fue extraer los datos sólo de las fuentes que aparecen en datos.zaragoza.es, pero la información de servicios como el autobús urbano o el bizi no eran suficientes para nuestro objetivo:

  • En el caso del autobús, nos servía para posicionar las paradas y nos daba una url de la web de tuzsa, en donde aparecía una estimación para saber cuando tardarán en llegar los autobuses de ese poste, por lo que tenemos que hace scraping de ese HTML para poder consumir esos datos.
  • Sobre el bizi, sólo posicionaba las paradas sin ninguna información añadida... pero vimos que en la web de bizi se podía hacer scraping para obtener el número de bicicletas y aparcamientos libres en una estación bizi además de su posición, lo que es realmente útil.
  • La que sacamos íntegramente de la web de datos abiertos del ayuntamiento de Zaragoza, fue la de puntos wifi municipales(porque no necesitábamos más que la posición)

Tarde/noche del sábado #abredatos #t10 #dndzgz

Hay muchas cosas que seguramente se echarán de menos en la aplicación, a bote pronto: favoritos/acceso rápido para ver si hay bizis en mis estaciones habituales, conocer la parada del 30 más cercana a mi posición, la estación de bizi con aparcamientos libres más cercana a mi posición... además de añadir otros servicios ciudadanos.

Se puede pensar que muchas de estas funcionalidades no han sido posibles de añadirse a causa de la limitación de las 48 horas, pero la principal razón de no poder añadir más funcionalidades, fue el tener que perder tiempo haciendo scraping para hacernos con todos los datos que necesitábamos. Y hay que ser consciente que eso habrá pasado en casi todos(por no decir todos) de los 47 equipos que nos presentamos al desafío... con el nivel que se ve en los resultados, ¿que se hubiera conseguido con datos abiertos?

Y nada, sólo quería felicitar a la gente de Pro Bono Publico tras la organización del evento a los equipos por sus resultados, y por supuesto agradecer a todos los que se han presentado su esfuerzo por tratar de crear servicios que nos resulten de utilidad a los ciudadanos.

Ahora la segunda parte, para que haya valido la pena la paliza de este fin de semana, a intentar hacer llegar estos servicios a los ciudadanos! :)

Comida del domingo #abredatos #t10 #dndzgz

PD: Como ha quedado un tocho bastante largo, intentaré escribir durante la semana otro post sobre detalles más técnicos de las tripas de DNDzgz
PD 2: En mi flickr están disponibles las fotos que nos hizo Toño y hay por ahí algún video de @maitrella XD

Yo participo en el desafío AbreDatos

El Desafío AbreDatos 2010 es un concurso de 48 horas para el desarrollo exprés de servicios tecnológicos al ciudadano basados en el uso de datos públicos. El concurso tendrá lugar el fin de semana del 17 y 18 de abril. Los participantes tendrán que desarrollar sus aplicaciones desde cero, organizados en equipos de máximo 4 personas. La participación se realizará de manera distribuida pudiendo los equipos reunirse de manera presencial si así lo desean.

Todavía quedan unas horas para inscribirse en el desafío y participar este fin de semana :).

I encuentro Agile Spain en Aragón

El lunes me quedé sorprendido por la respuesta ante el primer encuentro Agile Spain en Aragón, que había convocado Teresa Oliver, alrededor de 20 personas terminamos asistiendo a esta primera toma de contacto. Gente que nos dedicamos a crear nuestros propios productos de software, que da servicios de desarrollo de software, de administraciones públicas... y de diferentes roles dentro de cada organización.

Personalmente fuí a tomar el pulso de la situación del agilismo en mi tierra y a aprender lo que pudiera, y aunque me quedé con la sensación que por estos lares andamos bastante verdes, creo que hay potencial para que esto vaya mejorando. Tampoco tuve oportunidad de absorver conocimiento :P, por ser la primera reunión y estar bastante gente terminamos discutiendo en corrillos, aunque yo tuve conversaciones que me hicieron pensar y estrujarme la cabeza XD.

En fin, esperaremos al siguiente encuentro, a ver si la respuesta de la gente es al menos igual, tratamos ya un tema concreto para ver que se puede aprender de experiencias ajenas, y porqué no... hasta intentar aportar algo :)

Ya que estamos, por si alguien anda despistado con esto de las metodologías ágiles, dejo aquí el manifiesto ágil, que además siempre queda bien ponerlo :P:

Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar:

  • Individuos e interacciones sobre procesos y herramientas
  • Software que funciona sobre documentación exhaustiva
  • Colaboración con el cliente sobre negociación de contratos
  • Responder ante el cambio sobre seguimiento de un plan

Aunque los elementos a la derecha tienen valor, nosotros valoramos por encima de ellos los que están a la izquierda.

Y pos supuesto un placer ver a gente conocida interesada por el tema, conocer caras nuevas del mundillo, y coincidir por fin con Jorge Rubira, que ya era hora!! ;)

El Real Zaragoza, twitter y Gaelyk(Groovy + AppEngine)

Este viernes noche después de cenar me puse a programar(o a jugar) uno de esos mini-pet-projects, lo suficientemente pequeño para no comprometerme a dedicarle más tiempo fuera del fin de semana y lo suficientemente grande para que sea algo más que un hello world. Y salvo a que tenga algún momento de aburrimiento en el que me de por mejorar o añadir alguna cosilla, así se va a quedar.

El proyecto es un agregador de twitts que hablan del Real Zaragoza(o #realzaragoza :)). Y como uno no quiere hacerse de oro, no lo hace ni del Madrid ni del Barça :P.

Real Zaragoza

Hablando ya desde el punto de vista puramente técnico, es una aplicación muy sencillita que corre en la nube de Google, osea en App Engine (aquí voy a ahorrarme varios comentarios de lo que mola la nube, además de confundirlo con internet... No voy a dar nombres... ;))

He utilizado un framework web ligero, hecho expresamente para correr en App Engine y muy sencillo llamado gaelyk, donde el código que escribimos es Groovy.

Gaelyk permite separar las vistas(Groovy Tempaltes) de las acciones(Groovlets). Inyecta en las acciones los elementos del SDK de GAE(datastore, memcache, mail, images...), y algunas variables para facilitar la vida y tener un código más escueto.

En mi caso he dejado la lógica de negocio en los mismos scripts de los Groovlets. Tan sólo hay tres: la home, la vista de un usuario(ej: @dani_latorre) y otro que es llamado cada 10 min para hacer una búsqueda en twitter e insertar los twitts nuevos.

Para la búsqueda de twitts, se hacen tan sólo dos peticiones cada 10 min y se parsea la respuesta atom de la búsqueda con XmlSlurper, se comprueba si no está duplicado y se crea y guarda una nueva Entity de GAE (gaelyk facilita su uso, para que sea más a la groovy).

Para recuperar lo que hemos persistido, por el momento no aporta novedades, a partir del datastore lanzaremos las queries. En el futuro es posible que surjan novedades en este apartado.

Para quien le interese conocer más detalles de gaelyk, le recomendaría pegarle una ojeada al tutorial.

Ver una presentación de Guillaume Laforge y Patrick Chanezon.

O un screencast de Pratik Patel(ojo, que a los elementos de GAE inyectados ya no se les llama loqueseaService, sólo loquesea)

Gaelyk & Groovy & Google App Engine - ATL2G from Pratik Patel on Vimeo.

Y aunque este año nos toca sufrir, aupa Zaragoza! XD