Presentación Open Source

Transcripción

Presentación Open Source
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE
Alvaro Huarte
Sistemas de Información Territorial
Tracasa (www.tracasa.es)
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Agenda
• Introducción.
• Arquitectura y herramientas del desarrollo colaborativo.
– Repositorios de código fuente.
– Issue tracking.
– Mailing lists.
• Ejemplos de desarrollos colaborativos.
– QGIS: Simplificación al vuelo, usabilidad de aplicación.
– GeoWebCache (GWC): Salida caché RESTful.
– GDAL-OGR: Optimización del driver para formato shapefile.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Introducción
Herramientas de apoyo al software colaborativo.
Issue tracking
Mailing lists
IDE’s de
desarrollo
Repositorios
código
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Herramientas: Repositorios (GitHub, Codeplex)
Los repositorios son sitios web para alojar proyectos y que utilizan un sistema de
control de versiones.
Observa…
Regístrate…
Comparte…
Los usuarios pueden crear nuevos repositorios, bajarse ficheros agrupados por versiones y publicar
nuevas versiones de ellos, o como mínimo, notificarlas para que sean evaluadas y finalmente
aceptadas por los administradores del proyecto.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Herramientas: Issue tracking
Gestión de errores y nuevas funcionalidades de las aplicaciones.
Observa…
Colabora…
Comparte…
Los usuarios pueden crear nuevas entradas para describir errores detectados o solicitar nuevas
funcionalidades. Establece un punto entrada de los recursos asociados a dichos elementos: datos
de prueba, debates sobre su resolución,…
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Herramientas: Mailing lists
Listas de correo agrupadas por roles: desarrollo, documentación, usabilidad,…
Observa…
Comparte…
Permite preguntar, y responder, sobre cuestiones no enmarcadas en un determinado “issue” ya
activado. Es frecuente que nuevas peticiones o ideas se incuben previamente en debates de las listas
de correo y finalmente generen una nueva petición “oficial”.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Herramientas: IDE’s de desarrollo
El entorno de desarrollo integrado (integrated development environment), es el conjunto de
herramientas de programación que nos permite la implementación del código.
Eclipse IDE
Comparte…
“pull request”
Visual Studio
Desarolla…
El fin último del desarrollo es publicar o proponer un “pull request” (que implemente una funcionalidad o corrija un
error), para que sea mergeado al repositorio principal del código fuente de la aplicación.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Ejemplos de desarrollos:
QGIS
• Set the canvas color in 'qgsprojectproperties::apply()' before refresh.
• New keybindings, Del-key should delete feature.
• On the fly feature generalisation, fast rendering of features.
GeoWebCache
GDAL-OGR
• Optional output folder for cache.
• Output RESTful cache.
• Speed improvement for OGR provider.
• Add OGR_G_SetPoints to GDAL API-C.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Ejemplos de desarrollos
QGIS
• Set the canvas color in 'qgsprojectproperties::apply()' before refresh.
https://github.com/qgis/QGIS/commit/b2ad0a9bb914c67309b0e4c486b3493086b04a73
Este simple “commit” corrige un error en QGIS por el que no se reflejaba correctamente en el mapa el cambio del
“backcolor” configurado por el usuario de la aplicación.
Es interesante recalcarlo no por su funcionalidad, simple al extremo, sino por demostrar que todos podemos colaborar
en lo que nos sintamos cómodos, implementando pequeños parches como éste, o codificando mayores cambios en el
“core” si podemos y nos dejan 
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Ejemplos de desarrollos
QGIS
• New keybindings, Del-key should delete feature.
https://github.com/qgis/QGIS/pull/1010
http://changelog.linfiniti.com/qgis/version/21/#71
Este “commit” fue implementado como respuesta a una nueva funcionalidad solicitada en la lista de peticiones de
QGIS (http://hub.qgis.org/issues/9094). En principio sólo demandaba que la tecla “supr” eliminara las geometrías
actualmente seleccionadas en la aplicación pero desembocó, gracias a la aportación de ideas de otros usuarios, en
una revisión de varios “shortcuts” de QGIS para darle mayor coherencia al comportamiento de la aplicación y más
ágil respuesta a tareas repetitivas en la edición de las capas.
La colaboración de ideas y opiniones de diferentes usuarios y desarrolladores es lo importante a resaltar de este
“commit”.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Ejemplos de desarrollos
QGIS
• On the fly feature generalisation, fast rendering of features.
http://changelog.linfiniti.com/qgis/21/entry/on-fly-feature-generalisation/
https://github.com/qgis/QGIS/pull/980
https://github.com/qgis/QGIS/pull/1053
QGIS en versiones previas a la 2.2 pinta geometrías con rendimientos tres o cuatro veces inferiores a otras
aplicaciones equivalentes. Este “commit” implementa un conjunto de componentes para simplificar las
geometrías a pintar sin pérdida perceptible de calidad visual. La simplificación se aplica a las entidades
recuperadas desde los proveedores de datos, o se ejecuta directamente a nivel de proveedor como es el caso
del driver de acceso a datos “postgis”.
Lo importante de este “commit”, aparte de la funcionalidad obtenida, es demostrar que también es posible
colaborar en “profundos” cambios en las aplicaciones.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Ejemplos de desarrollos
GeoWebCache (GWC)
• Optional output folder for cache.
https://github.com/GeoWebCache/geowebcache/pull/200
• Output RESTful cache.
https://github.com/GeoWebCache/geowebcache/pull/201
El nuevo desarrollo posibilita generar en GeoWebCache (integrado o no en GeoServer) una caché en formato
RESTful. Añade también la posibilidad de establecer un directorio de salida para paralelizar el proceso en diferentes
máquinas y evitar el costoso trasiego de millones de ficheros típico de las cachés.
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
Ejemplos de desarrollos
GDAL-OGR
• Speed improvement for OGR provider.
https://trac.osgeo.org/gdal/ticket/5272
• Add OGR_G_SetPoints to GDAL API-C.
https://trac.osgeo.org/gdal/ticket/5357
Los cambios propuestos en este paquete fueron consecuencia de la necesidad de mejora de funcionalidad para los
desarrollos de QGIS
Los dos “commits” de las GDAL-OGR están relacionados con el proveedor de datos del formato shapefile cuando se
usa en peticiones masivas de datos y críticas en rendimiento como son la visualización o renderización de vectores
en un mapa. Con estos cambios ya aceptados en el producto, se consigue una mejora apreciable en la carga de las
geometrías que redunda en el rendimiento del pintado masivo de datos que un desktop como QGIS debe ejecutar.
Estos desarrollos evidencian la posibilidad de integración entre distintos paquetes de software, distintas
comunidades de desarrollo, etc
Experiencia de colaboración en el desarrollo de GIS opensource
VIII JORNADAS DE SIG LIBRE (SIGTE 2.014)
¿ Preguntas ?
Muchas gracias
Alvaro Huarte Sanz
[email protected]

Documentos relacionados