Blog

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.

Prodevelop takes part in the first WebGL Camp Europe

Ok, that’s great but… wait a minute, what is WebGL?

Well, let’s explain it. WebGL is a JavaScript API for rendering interactive 3D graphics within any compatible web browser without the use of plug-ins. We have gone through many formats and technologies so far, too many perhaps. We may remember the primitive VRML format, the succedaneum X3D or the later O3D proposed by Google. All of them lacked of browser integrity and compatibility. By that time, the end-user had obligatory to install an additional plug-in into the browser, with the subsequent appearance of both compatibility and performance issues among browsers.

Fortunately those times have already gone. For the first time, there has been created an API to finally succeed in rendering 3D content to Web, and that is named WebGL. Considering WebGL is still in version 1.0 though, it already confirms the expectations of having a promising future; and at Prodevelop, we are pretty sure about it. One of the most usual mistake people commit is associating Web 3D content to the game industry. We all agree that games are the entrance door of WebGL to the end-users, but from a wider point of view, 3D graphics can be applied to almost any kind of field as for example, 3D medical explorations, architecture representations…and why not Geographic Information Systems. In the later one, is where Prodevelop masteries.

Ok, don’t ramble around... Let’s move forward. What did we implement? ;)

Eager people :)…

We implemented a 3D buildings visualization for the city of Valencia. We mainly gathered 2D data from the cadastre, and after an automatic preprocessing, we were able to extrude the buildings and further represent them in 3D, on top of a WebGL globe’s surface.

The results look optimistic taking into account it consists in a R&D project developed during a short period of time.

Setting as grounding the showed buildings representation, on top of it we implemented two different processing.

The first one consisted in the calculation of the passive energy a certain building receives. That is to say, the solar incidence or radiation that each of the faces of a building receives for a particular period of time. That may result especially useful in terms of energy efficiency, since such processing may help buildings professionals to enhance energy reduction on new edifications.

The second one was based on the calculation of the buildings visibility for a given area. At this point we are able to predict not only if a building may be observed from a certain point or not (as traditional solutions does), but also how much percent of such building is observed. This processing is very useful for environmental impact studies in the manner the professionals can estimate the way an area is going to be affected by a particular building, bridge, power plant or in a more generic way any kind of installation or facility.

These implementations are what Prodevelop showed in the first WebGL Camp Europe that took place the 2nd and 3rd of July in Basel, Switzerland. This event has notably helped to check the State of The Art in the matter, as well as to have a more precise overview with regard to the forthcoming releases in the GIS field. From now on begins a promising range of Web-based implementations for geo-visualization and geo-analysis as we have never seen before.

Untitled

Las coordenadas EPSG:4326 en WMS 1.3.0: hay que romper una lanza a favor de la OGC

Se comenta mucho el cambio entre las versiones 1.1.1 y 1.3.0 del protocolo WMS de la OGC en lo que se refiere al orden de las coordenadas (longitud y latitud) al usar el sistema de coordenadas EPSG:4326. Creo que la situación puede resumirse más o menos así:

  • Tras detallar los parámetros del geoide y esas cosas, EPSG:4326 asocia una semántica para los ejes 2D (un eje corresponde a la latitud y el otro a la longitud) y además establece (aunque quizá de manera no muy explícita) que la primera coordenada debe ser la latitud y la segunda, la longitud. Según los expertos en geodesia, este orden se considera una "buena práctica" por motivos que desconozco (click para agrandar):

  • En WMS 1.1.1 se estaba obviando el orden sugerido en el sistema de coordenadas EPSG:4326 y el rectángulo de interés pedido por el cliente era:

    ...BBOX=lon_min,lat_min,lon_max,lat_max...

  • La OGC decidió, a partir de la versión 1.3.0 de WMS, acatar el orden establecido o sugerido en la definición de EPSG:4326 y desprenderse del prejuicio según el cual la coordenada asociada a los términos "X", "horizontal", "longitud" debe ir antes que la coordenada asociada a los términos "Y", "vertical", "latitud".

    Así pues, al usar EPSG:4326 en WMS 1.3.0, el área de interés se expresa así:

    ...BBOX=lat_min,lon_min,lat_max,lon_max...

  • Siendo consciente de que esto puede ser un problema para muchos clientes WMS, la OGC sugiere en cierto modo el uso el código CRS:84, que es lo mismo que EPSG:4326, pero con el orden antiguo (longitud, latitud). Es decir, la OGC sugiere a los administradores de servidores WMS 1.3.0 que ofrezcan el sistema de coordenadas EPSG:4326 para ser usado con el orden riguroso (latitud, longitud) y además ofrezcan el sistema de coordenadas CRS:84, que es exactamente lo mismo, pero usando el orden antiguo (longitud, latitud). De esta manera, si tenemos una aplicación cliente que no contempla el cambio de orden, el usuario final debería elegir CRS:84 en la lista de sistemas de coordenadas disponibles cuando el servidor es WMS 1.3.0 para obtener el mismo comportamiento que obtenía eligiendo EPSG:4326 cuando el servidor era WMS 1.1.1. Lógicamente, esta opción sólo estará disponible si el servidor ofrece el sistema de coordenadas CRS:84.
  • Hay que romper una lanza a favor de la OGC porque, a la larga, conviene desprenderse de convenciones injustificadas, elevar la flexibilidad y el nivel de abstracción de los protocolos y evitar la incoherencia de usar un orden de coordenadas distinto al que establece el propio sistema de coordenadas que estamos usando.

gvSIG Mini ganará nuevas funcionalidades en el GSOC 2012

¿Qué es el Google Summer Of Code?

El Google Summer Of Code es una beca que concede Google a estudiantes para que participen en el desarrollo de aplicaciones de software libre, y en este caso me ha tocado a mí Carlos Sánchez por parte de la Universidad de Valencia.  Los alumnos como yo en esta beca tenemos que ser aceptados por un tutor que se encargará de dirigir y puntuar el trabajo que realizamos. Normalmente estos tutores están relacionados con el proyecto o tienen interés en agregar nuevas funcionalidades, motivo por el que se ofrecen para realizar esta tarea. Como no podía ser de otra manera el encargado de tutorizar mi trabajo es Alberto Romeu que se ha encargado desde el inico del proyecto gvSIG Mini por parte de Prodevelop S.L.

gvSIG Mini ya ha evolucionado gracias a esta beca en años anteriores, ya que participa en ella amparado por el proyecto gvSIG dentro de la asociación OSGeo, siendo un año más agraciado con la beca Google Summer of Code 2012, lo que permitirá que avance el proyecto con nuevas funcionalidades mediante el duro trabajo veraniego de alumno y tutor.

Creo yo que es un motivo de celebración para todos los usuarios de este software libre.

¿Qué novedades se piensan desarrollar en gvSIG Mini?

Hasta el verano pasado gvSIG Mini adolecía de soporte para formatos vectoriales y gracias al proyecto del Google Summer of Code 2011 permitió mediante la integración de la librería de gvSIG Desktop GPE, agregar soporte para los formatos KML, GML, GPX, junto con algunas mejoras en la librería algo de aplaudir dado el gran esfuerzo realizado. Sin embargo, uno de los formatos mas habituales en software GIS, los shapefiles, sigue sin estar soportado, esperemos que este verano esto sea cosa del pasado.

Por otro lado, una de las peticiones de la comunidad de usuarios de gvSIG Mini más recurrentes, es la posibilidad de aprovechar el GPS del dispositivo móvil para digitalizar elementos directamente en campo, muy útil también para los aficionados a las mapping parties, como ya lo son muchos fans de OpenStreetMap.

Los elementos más simples que se pretende digitalizar son los puntos, directamente tomando las posiciones del GPS, pero también será posible digitalizar  líneas, para situar carreteras, calles, etc, estableciendo el punto inicial y el final. Estas líneas serán polígonos, cuando se cumpla que este punto inicial y final es el mismo.

No es baladí realizar esta tarea ya que es necesario añadir la posibilidad de capturar y guardar las posiciones del GPS en un formato vectorial conocido. Y como colofón se piensa en la utilidad del formato shapefile para almacenar estos datos, lo cual implica añadir la funcionalidad de lectura y escritura dentro de  gvSIG Mini.

Este formato nos va a permitir abrir los datos recogidos por nosotros con nuestra aplicación gvSIG Mini en cualquier lugar y también compartirlos con otras muchas aplicaciónes GIS con este soporte.

Abstract del proyecto

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í.

Spring I/O Madrid 2012

Spring IOLos días 16 y 17 de febrero asistimos dos personas de Prodevelop a las jornadas de springIO 2012 en Madrid. Unas jornadas con todo lo relacionado al ecosistema Spring, Groovy/Grails y Cloud, evento de referencia en España que ya va por la tercera edición.

De las charlas a las que asistimos destacaríamos:

En una de las primeras charlas Sam Brannen nos comentaba las novedades en Spring 3.1, de las cuales una de las más interesantes es la posibilidad de usar 'profiles' en la definición de beans, permitiendo inicializarlos en función del profile definido (desarrollo, producción etc).

En otra charla David Gómez explicó sobre un proyecto real de control de tráfico marítimo (por un momento parecía que habíamos vuelto a Valencia) el motivo por el cual se tomó la decisión de utilizar noSQL en lugar de una base de datos relacional y su  elección de MongoBD.

Framework de seguridad web HDIV, donde Roberto Velasco nos presentó esta solución de seguridad ligada a la arquitectura de los frameworks web. Entre otras vulnerabilidades, no permite la edición de parámetros o la inclusión de nuevos parámetros. Nos pareció muy interesante la facilidad con la que es posible aumentar la seguridad de una aplicación y su integración con Spring MVC.

Spring Security 3 workshop. En el taller de Fernando Redondo dimos un repaso de todo el proceso de configuración de Spring Security 3 para una sencilla aplicación web de gestión de los expedientes X del FBI :-).

En Spring Roo, alternativa de desarrollo rápido de aplicaciones con Spring, Federico Caro nos mostró como por medio de unas sencillas órdenes en la consola de Roo es posible montar toda una aplicación web Spring-MVC. Muy interesante para fines didácticos al poder comprobar todas las buenas prácticas realizadas en la arquitectura, como decía el 'speaker', el código generado es para imprimirlo y enmarcarlo.

Jose Miguel Samper y Daniel Fernández nos presentaron Thymeleaf Natural Templating. Este motor de plantillas para spring MVC utiliza tags como atributos en los elementos html con lo que no se rompe el html y es posible ser interpretado por los navegadores ya que estos tags son ignorados. Con esto es posible unir diseño y desarrollo en las vistas de las aplicaciones.

 Ya terminadas las charlas una muy buena forma de despedida tanto para los asistentes como los ponentes fue compartir unas cervezas en la cafetería de la universidad.

Nos volvimos con información útil sobre como complementar o vitaminar, (como el título de una charla), los proyectos java que estamos desarrollando actualmente en la empresa. Y con ganas de volver a asistir el año que viene para seguir estando al día con lo que se cuece en el mundo de Spring.

El conjunto que acertó a la pregunta.

Liberado olsocial. Integración de redes sociales en OpenLayers

Acabamos de liberar olsocial, la primera extensión de OpenLayers libre que aporta capas de redes sociales desarrollada por Prodevelop.

Esta librería permite añadir con una sola línea de código datos provenientes de Twitter, Flickr, LastFm, Yelp y muchísimos más a través de POIProxy.

Un par de detalles sobre la implementación. Hemos enviado un parche para corregir la clase OpenLayers.Protocol.Script de OpenLayers para que funcionase con el API de Twitter (ver ticket) y hemos creado un gestor de popups que ha desembocado en un nuevo proyecto OL-FeaturePopups.

El proyecto es perfectamente utilizable en la actualidad pero aún tiene mucho margen de mejora, de forma que no dudes en replicar el código de gitHub y mejorarlo.

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
Distribuir contenido