Blog

Breath! - The air quality app

Last weekend expired the submission phase for the GMES Masters competition, and Prodevelop has contributed with an innovative outline of mobile application that provides location based GMES data.

Concretely, we have applied for the ESA App Challenge with Breath!, which is a mobile application that provides near real-time air quality data for a wide range of locations and regions. Thus, it has been intentionally designed in a simple and comprehensible way in order the end-user to access and fetch the desired information as easy as possible . This solution is intended to be released in a few months on the principal Mobile Aplication Stores, targetting the mass market and specifically for outdoor sports.

The idea behind Breath! Is not only to give the air quality data provided by GMES sentinels, but also cross such data with a third one coming from local authorities or crowd-sourced. Additionally, it has been proposed a way to relate all that information with other components such as weather, wind, waves, water quality and UV index, provinding both unique and complete information to perform outdoor activities.





The GMES Masters competition is organized by the European Space Agency, that annually rewards the best ideas for services, business cases and applications based on GMES data, with the aim to foster product development and entrepreneurship in Europe. Winners will be published in the GMES Masters Web on 26th October.

Participando en la ESA App Camp

El pasado mes (del 17 al 22 de Junio) tuvo lugar la primera edición de la App Camp organizada por la Agencia Espacial Europea y a la que tuve la oportunidad de asistir representando a Prodevelop.



La App Camp consiste en reunir en las instalaciones de la ESA en Frascati a desarrolladores de aplicaciones móviles y proponerles desarrollar, durante una semana, una aplicación innovadora (o un prototipo), orientada al mercado de masas, con datos provenientes de satélites del programa GMES (Global Monitoring for Environment and Security). El objetivo no es tanto desarrollar una aplicación 100 % funcional, sino dar con ideas de aplicaciones útiles que sean de interés general y sirvan para acercar la información de satélites a cualquier persona con un dispositivo móvil.



Allí nos reunimos 20 desarrolladores y una diseñadora de 17 países miembros de la ESA y de la Unión Europea que fuimos divididos en 5 grupos de 4 personas según el tema que habíamos elegido en el formulario de inscripción: aplicaciones de uso diario, juegos, aplicaciones educacionales o tema libre.

La mayoría teníamos cierto bagaje en sistemas de localización, mapas, sistemas de información geográfica, etc. con lo cual podíamos compartir conocimientos, complementarnos y entendernos. Durante las presentaciones, me pareció curiosa la distinción que se hacía entre “software engineer” y “computer scientist”, no los conté, pero había mayoría de “computer scientist”.

Nuestro estancia allí, fue minuciosamente planificada, de hecho fue una de las cosas que más me llamó la atención. Días antes de asistir a la App Camp, recibimos la agenda, con lo que íbamos a hacer allí y fue cumplida prácticamente minuto a minuto.

Durante el primer día recibimos varias charlas por parte del personal de la ESA, contándonos a qué se dedicaban, cómo se financian, qué proyectos tienen en marcha, etc. Hacia el final del día nos dieron un par de charlas más técnicas y nos dieron a conocer el juego de datos de prueba con el que íbamos a trabajar, ya que, en principio, los satélites no estarán operativos hasta 2014. Básicamente se trataba de un conjunto de datos raster publicados en un servidor WMS con componente temporal. El servidor es público y se puede encontrar aquí.

El segundo día comenzamos a trabajar en grupos, con el objetivo de dar con la idea que durante los dos siguientes días desarrollaríamos en forma de aplicación para Android o para iOS. Finalmente, el último día durante la mañana, cada grupo presentó su idea ante un jurado formado por personal de la ESA y fue elegida la aplicación ganadora.



En cierta manera, la App Camp ha sido un experimento, ya que en pocas ocasiones se da el caso en el que 20 personas de diferentes nacionalidades y que no se conocían previamente ni han trabajado juntas, son reunidas para llegar a un objetivo común. En general, creo que “el experimento” ha sido exitoso: todos los grupos creamos aplicaciones originales e innovadoras, hemos compartido experiencias, aprendido y nos hemos divertido juntos :)

Por último, tras la App Camp, nos invitaron a todos a participar en la GMES-Masters, una competición a nivel global de utilización de datos de satélites de GMES, el plazo para participar está abierto hasta el 16 de Septiembre de 2012.

OpenLayers, thematics and browsers

I'm used to debug my javascript code in Google Chrome as it has cool developer tools and its javascript engine is superb, but today I've broken Google Chrome.

I was writting some javascript code in OpenLayers to automatically generate unique value and range thematic for vector layers fully loaded on the browser. Once the code was running and after a few pans Google Chrome broke, the same code worked on Firefox. At the moment I have no idea what the "bug" is but I've made some (non rigorous) tests on several browsers and these are the results.

My OpenLayers was loading:

120 scaled and rotate SVG graphics
120 polygons
111 lines
1127 thematic points
15 png from a WMS layer

BrowserStart memoryOL load memoryWorked
Chromium 1680 MB320 MBYes
Firefox 11127 MB340 MBYes
Safari 5.122 MB180 MBGraphic errors
Chrome 18140 MB330 MBNo
IE--LOL
Opera 1160 MB200 MBYes

So Opera seems the "best browser in the world" but at the moment I will continue with Chromium

Prodevelop en las jornadas de SIG Libre de Girona 2012

La semana pasada 3 compañeros de Prodevelop (Jorge, Miguel, Carolina) y yo asistimos a las VI Jornadas de SIG Libre celebradas en Girona, de las que Prodevelop era patrocinador oro y en las cuales debíamos presentar 4 ponencias.



En mi caso, se trataba de la primera vez que asistía a las jornadas y la impresión general fue muy positiva. Sí que es cierto que en este evento se hace más hincapié en el cómo se han llevado a cabo los proyectos, cosa que particularmente, me parece más interesante.

Las jornadas se abrieron con 5 sesiones plenarias donde se habló entre otras cosas de aspectos legales del open data, motivaciones para hacer un fork y obviamente de SIG Libre, aunque en mi opinión el gran descubrimiento fue David Cuartielles que fue a hablar de la plataforma de open hardware Arduino de la que es co-fundador. Fue una presentación digna de monologuista, donde captó la atención de todos los asistentes y de la que más de uno salió con ganas de meterle mano a uno de esos cacharros, además de conocer otro tipo de comunidades, en este caso de hardware libre.

En la sesión de la tarde, Miguel y yo, hablamos de OpenGeo Suite como solución para crear geoportales y de las novedades de gvSIG Mini 2. Por su parte, Jorge explicó cómo se hizo el geoportal de turismo de la Comunidad Valenciana y el trabajo que están haciendo desde OSGeo-es en la traducción del OSGeo Live DVD.



De ese día me quedo además con dos ponencias relacionadas con aplicaciones móviles, por una parte la aplicación para Android de ikiMap desarrollada sobre gvSIG Mini y en la que hemos colaborado con Geomati.co y Legendiary una aplicación para acceder a leyendas populares, de la que me gustó la solución por la que habían optado: una aplicación híbrida, con parte nativa y parte en HTML5 + Javascript. Muy a tener en cuenta para futuras aplicaciones.

La jornada de ponencias terminó con una sesión especial en la que se explicó cómo se está llevando a cabo el proceso de importación de datos de Catastro a OpenStreetMap y la problemática asociada. Interesante sobre todo porque últimamente se está generando debate en torno a este tema y de la que pudimos sacar en claro que actualmente ya existe una herramienta que exporta shapes de Catastro a archivos osm de OpenStreetMap y donde la metodología a utilizar va a ser realizar la exportación de pequeños municipios y luego editar y resolver conflictos a mano utilizando alguna herramienta de edición de OSM como JOSM; el trabajo (como no) será llevado a cabo por la propia comunidad.

Mi día terminó con una visita guiada a Girona donde nos explicaron algunas de las Leyendas de Girona a través del casco antiguo.

El viernes Miguel contó los avances en gvSIG dentro del proyecto España Virtual durante la sesión de aplicaciones 3D donde se presentaron extensiones para Geoserver para publicación de datos en 3D utilizando el estándar X3D y para la publicación de capas de realidad aumentada para los principales navegadores (Layar, Wikitude, etc.) Desde iGO Software nos contaron los avances en Glob3 Mobile (al que me gustaría meterle mano) y cómo son capaces de generar una aplicación multiplataforma para Android, iOS y HTML5 a partir del mismo código fuente.

Por último, Jordi Graells cerró las jornadas hablando de su trabajo posicionando en las redes sociales a la administración y emprendiendo desde la propia administración. Otro gran descubrimiento de las jornadas.

En definitiva, unas jornadas muy cargadas de temas interesantes de las que me voy con ganas de trastear con algunas de las cosas de las que se hablaron allí.

Playing around with Leaflet and POIProxy

I've been some time following Leaflet and this weekend I've decided to write some code on it. So as Leaflet has no tiled GeoJSON layer I've coded a layer to load points from POIProxy, draw them over the map and show a popup.



Of course it can be improved, at the moment only loads points at zoom level 16, the layers are exclusive to avoid overload and there are several bugs… but as a proof of concept, it's not bad :P

About Leaflet, I like several things. Its API is simple and lightweight and that's the point, it's incredibly fast on mobile devices. Apart from this, there are several interesting layers such as CartoDB that look promising :)

By the way I've uploaded a POIProxy demo that runs on desktop and mobile :) and the code is at my Github

Reflexiones sobre las JIIDE 2011

Hoy @visancal y yo, junto con Amelia hemos estado en las Jornadas Ibéricas de Infraestructuras de Datos Espaciales celebradas en Barcelona. Hemos tenido la oportunidad de hablar del "Nuevo Geoportal de la Diputación de Valencia: Guía Urbana" y de la "Implantación de Geoportales con soporte técnico profesionalizado en software libre".

La experiencia una vez más ha sido muy positiva. A parte de sumar una presentación más, he tenido la oportunidad de aprender más cosas a cerca de tecnologías geoespaciales e IDEs. Se ha hablado mucho de estándares, interoperabilidad, software libre, nos hemos encontrado y con compañeros de profesión y hemos compartido experiencias...

El formato de las jornadas ha sido, para mi gusto, demasiado compacto, 80 ponencias con 5 sesiones en paralelo, no daban para seguir o enterarte de todo, así que me ha dado tiempo a estar en un par de presentaciones de implantaciones de IDE y una en la que se comparaban los datos entre OSM y Cartociudad para unas determinadas zonas de la Comunidad de Madrid.

Lo que más me ha llamado la atención es lo que se ha hablado en las dos ponencias plenarias, la de la mañana y la de la tarde. Por la mañana el director del IGN (Alberto Sereno) y el del Instituto Geográfico de Catalunya (Jaume Miranda) han improvisado una ponencia (debido a la falta del ponente principal) en la que han mostrado opiniones contrarias respecto a la calidad de los datos geográficos en España, la (des)organización de los distintos organismos públicos que se encargan de la publicación de esos datos y lo más importante a cerca de la usabilidad y difusión del trabajo que se está haciendo de liberación de servicios y datos a través de las IDE.

La conclusión a la que se ha llegado es que hay un problema de usabilidad: el ciudadano no conoce las IDE, no las entiende y en definitiva no le son de utilidad. Al final, parece que todo el esfuerzo que se hace de publicación y liberación de datos geográficos acaban "muriendo" en usuarios técnicos, lo cual no es malo, pero podría ser mejor.

Por la tarde, el ponente plenario era @edparsons, responsable del contenido geográfico de Google Earth y Google Maps. No sé si ha sido casualidad pero ha tocado de pleno y ha dado en el clavo respecto a las conclusiones que se habían sacado por la mañana, el tema de la usabilidad. La conferencia ha sido muy "a la Google - don't be evil". Ha empezado predicando a cerca de la colaboración entre las IDE tradicionales y los servicios geográficos de Google: ha comparado las IDE con el servicio Google earth builder, la directiva INSPIRE con la publicación de APIs sencillos y útiles. Pero finalmente, ha habido una diapositiva y un comentario aplastante: Google Earth ha llegado a los mil millones de descargas y ponía una gráfica donde se pretendía poner de manifiesto que las IDE tienen un número muy bajo de usuarios y muy técnicos (lo que él ha llamado "people in white coat") mientras que por ejemplo Google Earth está destinado al "mass market". Ese es el punto clave que ha querido transmitir, conseguir utilizar la tecnología para hacer llegar la información geográfica al gran público.

Así pues, mientras por la mañana directores de institutos geográficos se lamentaban de que nadie les entendía y nadie "les usaba", por la tarde se hablaba de cómo un producto que expone información geográfica es usado por millones de personas de manera natural. Respecto a esto, sólo dos apuntes más: mientras que la ponencia plenaria de la mañana, se ha pasado 45 minutos del tiempo previsto (desbaratando el resto de ponencias), la de la tarde la ha clavado en 45 minutos (que era el tiempo que tenía), sin parar de hablar todo el tiempo, con avería del proyector incluida. El otro apunte es respecto a la herramienta Google earth builder, es un servicio que permite almacenar en la nube información geográfica para posteriormente publicarla con un click en Google Earth/Maps o a través de un servicio WMS, más sencillo imposible.

En definitiva, visto lo visto, parece que se habla demasiado de estándares, interoperabilidad, IDEs, que están muy bien y son necesarias, pero al final el gran caballo de batalla que es acercar la información geográfica al ciudadano de a pie es algo que está muy lejano. Sin duda es algo para reflexionar.

gvSIG Mini and POIProxy

This summer I've spent some of my time playing around with a personal project called POIProxy.

POIProxy is a service that handles requests to any public POI service providing a well defined REST API. It's able to parse JSON and XML responses and serve standard GeoJSON format, just providing a configuration file containing the URL and response format of the POI service to consume. And the best part, it's free software ;)



So, the service can be consumed by any GIS client, for example it's being used at this demo of OpenLayers social that @jacarma, @xurxosanz and @visancal developed for this year's FOSS4G. Although one of my pending tasks was giving support to gvSIG Mini to load the data provided by POIProxy, and that's what I've done this weekend.

At the moment it's just a "Proof of Concept" as I have no more time to spend on that (but I needed to see all that POIs on Android :P). So gvSIG Mini now is able to load, display the points and alphanumerical data of any layer provided by POIProxy and cache the data on disk, to speed up the data load after the first download.




As POIProxy is able to serve points from any WFS layer, now gvSIG Mini has also that capability. This is a snapshot loading the sample "world:cities" layer that comes into a standalone geoserver distribution.



Next step should be support search and reverse geocoding from POIProxy to gvSIG Mini, so we can finally replace the retired Namefinder service.

gvSIG Mini, KML and multi-layer support

These days, @fergonco and me have been refactoring gvSIG Mini. The refactor was intended to decouple the MapView from any Activity, so it can be a (more) reusable widget.

Well, that goal has been fully accomplished, so while @fergonco has been giving support to add controls to the map (in the OpenLayers way), I've been playing around with the brand new vector API and adding support to load several tiled layers to the MapView. The result seems (in my opinion) very promising, besides there's some work left to have it fully working.

Here are some snapshots of gvSIG Mini loading two raster tiled layers and several local and remote KML files (some of them from the Geoportal de la Comunitat Valenciana, developed by Prodevelop some months ago)


PNOA (TMS) + Cartociudad (WMS)



PNOA (TMS) + Cartociudad (WMS) + KMLs



OSM + Google Maps transparent layer + KMLs



OSM + Google Maps transparent layer + KMLs



I will try to have all that features available in gvSIG Mini (at least for a demo) for the 7th gvSIG conference next December.

Curso de Scrum Manager

Esta semana pasada he asistido a un curso de Scrum (Manager) organizado por el COIICV.

No voy a entrar a explicar qué es Scrum... de eso ya hay millones de páginas que lo hacen, pero sí algunas conclusiones que he sacado.

Scrum vs CMMI

Scrum es una metodología que se opone al modelo o los procesos de CMMI y se entiende... mientras Scrum tiene su origen en el desarrollo de productos innovadores buscando velocidad y adaptabilidad, CMMI tiene su origen en proyectos militares. El primero se centra en las personas y en la flexibilidad, el segundo en los procesos.

La diferencia fundamental entre ambos es que Scrum se centra en obtener un producto de valor para el cliente, mientras que CMMI en obtener ese producto con la calidad, costes y fechas pre-establecidas.

He estado leyendo opiniones al respecto de cómo sacar partido de Scrum y CMMI (a la vez) en una organización, pero no he sacado nada en claro... supongo que dependerá de cada caso.

Como curiosidad, el curso realmente trataba de Scrum Manager... que se supone que es la síntesis entre metodologías ágiles (como Scrum) y modelos predictivos (como CMMI), pero la verdad es que no vi ninguna diferencia entre Scrum y Scrum Manager.

Scrum no es una bala de plata

Ni Scrum ni probablemente ninguna metodología. Habrá casos (proyectos u organizaciones) en los que Scrum encaja perfectamente y es posible aplicar esa filosofía y otros en los que no. Se habló que es útil en proyectos, con requisitos muy cambiantes o incluso donde no los hay y se van ocurriendo sobre la marcha (por ejemplo al desarrollar productos innovadores)

En mi opinión, creo que puede ser una ventaja competitiva en start-ups o empresas jóvenes que pueden "vender" o proponer al cliente esa metodología como elemento diferenciador de empresas más tradicionales.

Scrum y las personas

Una de las cosas que me ha llamado la atención es que cuando se habla en Scrum del equipo de desarrollo se hace referencia a: multi-disciplinar, auto-organizado y experto. Entiendo que hay perfiles de personas que encajan mucho más en Scrum que en CMMI. Mientras en el primero el conocimiento está en las personas en el segundo está en los procesos. Da la impresión que Scrum "forma" personas comprometidas y con una clara vocación de mejora y CMMI "forma" personas disciplinadas.

Artefactos

Respecto a los artefactos de Scrum hay varios que me parecen muy útiles y que se deberían utilizar sea cual fuere la metodología:

El gráfico burn-down: Esencial para responder a la típica pregunta de "¿Cuánto os falta para acabar?". Además creo que es la mejor manera que he visto de visualizar el progreso de una iteración y fácil y rápida de mantener.

Las reuniones diarias del equipo de desarrollo: La forma más rápida y directa de conocer cada día el estado de las tareas.

Añadiría además, algún mecanismo de visualización, para las tareas de un Sprint, como por ejemplo Kanban.

Hay otros que no me parecen demasiado novedosos: Por ejemplo, los sprints en realidad se parecen a las iteraciones en un ciclo de vida iterativo-incremental o el product backlog que parece simplemente el alcance del proyecto...

Otros como que el cliente forme parte del equipo o se implique tanto en la metodología, es algo que ya se me escapa...

Scrumban

Dicho esto, hay una cosa que ni Scrum, ni CMMI y que ninguna metodología resuelven: Las estimaciones.

De hecho en Scrum, se puede utilizar la técnica de estimación póker, donde participa todo el equipo, pero al final se habla del "juicio de expertos", es decir, tienes que tener a unas cuantas personas expertas en estimar (eso existe?). A todo esto, la estimación poker, vale la pena probarla :).

Vamos que al final, si la cagas estimando, tendrás tus sprints, pero igualmente no llegarás a tiempo, y sí, cuando acabes un sprint podrás "negociar" lo que entra en el siguiente con el cliente, pero igualmente como la estimación es algo tan volátil, los retrasos se producen igual y el desastre ocurrirá. A parte de esto, puede ocurrir que en los sprints se tienda a postergar las tareas hacia el final o que no se mantenga la tensión durante toda la duración de este y se produzcan retrasos.

Sobre esto, leí algo este verano y consiste en mezclar Scrum con Kanban (Scrumban). Con Kanban lo que se consigue es tener un flujo de trabajo continuado, ajustar la carga de trabajo y predecir con mayor claridad los tiempos de entrega de tareas, eso sí, desaparecen los sprints (o iteraciones).

En definitiva, recomendable el curso de Scrum y más para un novato en la gestión de proyectos como yo :). Para los interesados, en este vídeo dice todo lo que hay que saber sobre Scrum en 6 minutos y en esta presentación está todo el contenido del curso.

Google Summer of Code 2011: Final evaluation

After 4 months of work Google Summer of Code has finished. I'm really happy with the final results. Fernando finally finished all the tasks scheduled and the first tests I've made with the code he has written look promising. After all there's some work left for both of us. While he is going to contribute gvSIG Desktop with the GPX provider and some patches to the GPE library. I'm going to integrate all his work for the next release of gvSIG Mini, so it will be able to load local vector data; a great feature in my opinion.

All the documentation written during this summer can be found at the project wiki. The source code at the Subversion repository. And these are some preview snapshots of the project:

Regarding my own impressions about this summer I have to say I'm really satisfied with the experience. My personal motivation since the beginning was continue working for gvSIG Mini and try to join others to work also for it, so that goal has been fully acomplished. On the other hand, being a mentor there's also a path to learn. During this summer I've learned to teach others in topics that were unknown for them, to manage and track their tasks. I've learned also a bit of Kanban and of course I've coded a lot.

Apart from this, the very real motivation was to give my father the GSoC t-shirt :P

In the end a great experience I hope I could repeat following years.

Distribuir contenido