CodeSprint gvSIG
El martes 30 de Noviembre, un día antes del comienzo oficial de las 6as Jornadas Internacionales gvSIG, se celebró un CodeSprint en el que se reunieron algunos desarrolladores de gvSIG para poder discutir y solucionar algunos problemas de código. Este CodeSprint tuvo lugar después de la positiva experiencia en el pasado CodeSprint de gvSIG del FOSS4G2010.
Este evento estuvo patrocinado por el Instituto ai2 de la Universidad Politécnica de Valencia, y se celebró en la sala Innova de la Ciudad Politécnica de la Innovación de dicha Universidad.
En este documento se resume cómo se organizó y se comenta los resultados que obtenidos:
¿Cuándo?¿Dónde?
Día: 30 de Noviembre de 2010
Hora: 09:00 inicio. 20:00 final
¡Al final empezamos casi a las 10 y los últimos se marcharon a las 19:30! ;-P
Llegar en Bus: Tranvia: Línea 4 y 6, Serrería station; Bus: Línea 1 y 41
Asistentes
Al final asistimos 26 desarrolladores de diversas empresas y/o organizaciones:
Nombre | Empresa | Intereses | |
1 | Jorge Piera | gvSIG | Coordinador del Code-Sprint |
2 | Nacho Varela | Xunta de Galicia | Trabajo en comunidad, pequeños cambios, corrección de bugs |
3 | Jorge Sanz | gvSIG | No sé seguro si podré asistir, pero si voy básicamente lo mismo que Nacho, ayudar en lo que pueda, dar ideas, etc. |
4 | Víctor Olaya | SEXTANTE | Mejora del acceso a capas raster para su análisis, con objeto de permitir el procesado en SEXTANTE de capas de gran tamaño. Intentaré aprovechar el code sprint para trabajar con la parte del equipo de gvSIG que lleva estos aspectos, dando ideas y posibles soluciones. |
5 | Rafael Gaitán | gvSIG3D (ai2) | Mejoras en gvSIG para una mejor integración de 3D. Corrección de bugs. |
6 | Jordi Torres | gvSIG3D (ai2) | Mejoras en gvSIG para una mejor integración de 3D. Corrección de bugs. |
7 | César Ordiñana | gvSIG (DiSiD) |
Temas de arquitectura y diseño, gvSIG 2.0 y ayudar en lo que pueda (bugs, mejoras, etc.) |
8 | Francisco Puga | Cartolab | PostGIS |
9 | Andrés Maneiro | Cartolab | PostGIS |
10 | Javier Estévez | Cartolab | PostGIS |
11 | Pablo Sanxiao | iCarto | PostGIS |
12 | César Martínez | Universidad Autónoma Barcelona | Visor de tiles de OpenStreetMap Hacer un análisis de un editor completo de OSM Arreglar driver SDE |
13 | José Carlos Martínez | Universidad Politécnica de Valencia | Posibles mejoras y/o correción de bugs en el driver de PostGIS. Creación de un nuevo driver para Jaspa especialmente para H2 |
14 | José Javier Badía Castelló | Software Colaborativo | Corrección de Bugs |
15 | José Vicente Higón | Software Colaborativo | Servicios WMS y WCS |
16 | Fran Peñarrubia | SCOLAB | Bugs PostgreSQL + Leyendas |
17 | Joaquin Jose del Cerro | gvSIG | Temas de arquitectura y diseño, gvSIG 2.0 y ayudar en lo que pueda (bugs, mejoras, etc.) |
18 | Nacho Brodin | gvSIG (Prodevelop) | Resolución de algún bug WMS y raster. Colaboración con SEXTANTE en capas de gran tamaño y con AI2 |
19 | Jose Manuel Vivó | DiSiD | Ayudar en lo que pueda (Bugs, mejoras, etc...) |
20 | Jorge Bellido | IKT | Ayudar en lo que pueda. Especial interés en edición gráfica. |
21 | Fernando S. Peregrino | Universidad de Alicante | Desarrollo de nuevos algoritmos raster sobre entidades difusas. |
22 | María Arias de Reyna | Emergya | Involucrarme en la comunidad |
23 | Dani González Moratona | Geodata Sistemas | Ayudar a corregir errores, aprender y conocer gente de la comunidad gvSig. |
24 | Romel Vázquez Rodríguez | Laboratorio de Computación Gráfica, UCLV, Cuba | Aprender todo lo que pueda sobre SEXTANTE y análisis raster con gvSIG |
25 | Francisco Díaz | gvSIG | Temas de arquitectura y diseño, gvSIG 2.0 y ayudar en lo que pueda (bugs, mejoras, etc.) |
26 | Daniel López Sánchez | Regsete | Postgis |
Funcionalidades/Bugs a tratar en el CodeSprint
Creamos un wiki donde cada uno podía añadir los bugs o las funcionalidades que le gustaría corregir durante en Code Sprint. La lista se editó el mismo día del Code Sprint, de forma que a medida que se corregía un bug, se iba actualizando. La lista definitiva, agrupada por funcionalidad, quedó de la siguiente forma:
Sobre el instalador:
- Feature: backport del instalador de plugins de gvSIG 2.0 a la linea de la 1.11 [jjdelcerro]
- Eliminar la copia de las librerias y archivos de licencia de la jai en el instalador, ya que esta dependencia ha sido eliminada.[jtorres]FIXED.
- Instalar correctamente los iconos de acceso directo a gvSIG en Linux.[jtorres]SEMI-FIXED todo preparado a falta de escribir el script que detecta el escritorio por [jjdelcerro].
- Cambiar la versión de libz que se aporta para Linux, está obsoleta. [jtorres]FIXED. Update de la librería a la versión 1.2.3.3
Sobre el ToC:
- SmallChange: eliminar la extensión (.shp, .tif, .... ) cuando se hace una carga una capa [nachouve]FIXED.
- Revisión e integración de los parches existentes en la OSOR [amaneiro]:
- http://forge.osor.eu/tracker/?func=detail&aid=14605&group_id=89&atid=732
Sobre Shapefiles:
- Implement the writing of M values (for 4D shapefiles) [fla83tn]
- Manage the editing of 4D shapefiles correctly (add vertex should initialize Z to 0 and M as the weighted average between previous and next vertex, explode should not remove the feature from the layer, insert multiline/line/arc etc with 4D if the layer allow it,etc) [fla83tn]
Sobre Simbología:
- Copiar estilos entre capas de forma rápida (requiere hablar sobre como se hace esto internamente, poder copiar estilos entre geometrías distintas, etc...) [nachouve] (Esto requiere repensar arquitectura)
- No repintar capas vectoriales cuando se apreta el botón cancelar en el diálogo de simbología, y repasar todos los repintados por si hubiera alguno más no necesario. [jtorres] FIXED. El error estaba en extDockingSkin
- No hacer una nueva consulta a la base de datos al cambiar la simbología (creo que esto pasaba) [nachouve]
Sobre WMS:
- SmallChange: automatically select the view projection at WMS projection selector (and probably also a preferred image format) [xurxosanz]
- Uso del parámetro scalehint [jvhigon] [cmartinez] FIXED. Using MinScaleDenominator and MaxScaleDenominator
- http://forge.osor.eu/tracker/index.php?func=detail&aid=14856&group_id=89&atid=732
- Peticiones de GetCapabilities en un thread. Extensible a WCS [nbrodin]
- Cada descarga de imagen WMS a través de libRemoteServices lanza dos threads pero solo muere uno. Extensible a WCS. [nbrodin]FIXED by [rgaitan].
- Cachear en disco las zonas que se van pidiendo¿?.
- Al menos debe cachearse lo que tenemos en pantalla, actualmente cuando se activa o desactiva una capa, se vuelven a descargar las capas WMS que tenemos activas (sin haber cambiado nada en las mismas)
- Revisión e integración de parches existentes en la OSOR [amaneiro]:
- http://forge.osor.eu/tracker/?func=detail&aid=14736&group_id=89&atid=732
Sobre WCS:
- Bug: No funciona con la última versión de geoserver [oscarfonts] FIXED by [jvhigon] ticket #14861
- Request of images with fixed resolution, that is, allow for the omitting of WIDTH and HEIGHT parameters [fla83tn]
Sobre WFS:
- Bug: do not replace underscores ('_') with spaces (' ') in attributes name of the layer [fla83tn]
Sobre el Catálogo:
- Feature: Desarrollo del cliente OpenSearch. [oscarfonts]
Sobre la estructura de gvSIG:
- Apresenta muchos errores com grande cuantidad de datos raster. Uno ejemplo, es generar, en sextante, capas com tamaño grande (20000x20000 pixels, ejemplo). Error de "java heap space" es muy comun. Los desarrolladores de sextante hablan que es problema de gvSIG, y no de sextante. [Carlos Almeida]
Sobre Topologia:
- No es posible guardar lo resultado de topologia en shapefile. Solamente, en DXF, y GML [Carlos Almeida]
- Log poligonos de thiessem hace muchos bugs, y no funciona con la mayoria de capa de puntos que jo tengo a testar [Carlos Almeida]
Sobre Oracle Spatial:
- gvSIG es restrictivo en algumas conexiones Oracle (configuraciones del banco). Cuando hay a editar las geometrias, guarda con erro (cambia las unidades, ejemplo, de 6000000, para 6000000000) [Carlos Almeida] >>esto error es generado por las convenciones de unidades definidas en sistema operativo no cual Oracle es servidor. Pero, otros softwares no son restrictivos para adicionar y guardar novas geometrias en Oracle, independiente de las configuraciones de unidades. << [Carlos Almeida]
Sobre generacion de PDF
- gvSIG hay a utilizar mucha memoria RAM (cuando tiene etiquetados definidos por usuario y imagenes de satelite), u tiene un BUG cuando usuario define lo ZOOM por aproximacion [Carlos Almeida]
- Exportación a SVG para poder terminar de maquetar los mapas en algún programa de diseño.
Sobre etiquetado avanzado
- gvSIG hay a utilizar mucha memoria RAM para mostrar en la pantalla todos los elementos etiquetados. La funcionalidad de acoplar en poligonos las etiquetas no hay funcionado [Carlos Almeida]
- Permitir convertir a Anotaciones las etiquetas del "etiquetado avanzado". O poder editarlas individualmente de alguna forma.
Sobre Postgis:
- Testing/Bugs: testear el driver de postgis y corregir los posibles bugs. [josecarlosmartínez]
- Re-conectar la conexión después de un error:
- Intentar que no se cierre la conexión con tanta frecuencia [nachouve]
- Un ejemplo: Cuando el usuario de postgis no tiene permiso para editar una capa, se presenta un error, y solamente cerrando gvSIG y cargando nuevamente la capa, se puede reparar la conexion] [Carlos Almeida]
- Al producirse una excepción en la sentencia SQL (por ejemplo una violación de una restricción) el driver no se recupera de la excepción cortando la conexión. [josecarlosmartínez]
- CORREGIDO y pendiente de subir a la OSOR: evitar cierre de conexión (y cuelgue de gvSIG) cuando un usuario se equivoca al escribir una restricción durante el proceso de carga de una capa PostGIS [amaneiro]
- Falta de sincronización entre la tabla de atributos y la visualización cuando se actualiza las geometrías desde una origen externo. [josecarlosmartínez]
- Una solución provisional es que la opción de recargar la capa esté siempre activa cuando el origen sea FLayerVectorialDB. He testeado que al recargar la capa se sincronizan correctamente los datos. [fpuga]. Recargar siempre activo. [#14857].
- Actualmente no se puede crear o actualizar geometrías en capas 3D. Utilización de las funciones ST_FORCE_3D. [josecarlosmartínez].
- La escritura de geometrías se realiza utilizando WKT lo cual puede originar micro desplazamientos además de lentitud. Proposición de utilizar escritores utilziando EWKB igual que se hace en lectura. [josecarlosmartínez]
- Un gestor de conexiones, principalmente en tablas, mostrar las tablas disponibles, etc [Carlos Almeida]
- Poder ver el estado de las conexiones [Read, Read-Write, Close, Reconectar], indicar permisos que dispone el usuario [nachouve].
- El dialogo de tablas alfanuméricas de base de datos debería ser igual/parecido al de capas geométricas y poder emplear las conexiones ya existentes. Además sólo deberían listarse las tablas alfnuméricas. [fpuga]
- Poder ver el estado de las conexiones [Read, Read-Write, Close, Reconectar], indicar permisos que dispone el usuario [nachouve].
- FIXED. Permitir que el nombre del campo geométrico esté en mayúsculas. [fpuga]. [144485]
- Permitir crear conexiones a un esquema determinado, de modo que sólo se listen las tablas de ese esquema, o bien poder filtrar las tablas que aparecen en función de su esquema en el propio diálogo de selección de capa [fpuga]
- Detección automática del campo GID. Seguramente llega con detectar si hay algún campo autoincremental y preseleccionar ese en el combobox [fpuga]
- Cuando el tipo de datos es numeric y se introduce un valor menor a 1, por ejemplo 0.5 en la base de datos se guarda un 50000 [fpuga]
- [FIXED] Uso de cursores en postgis. mensaje en la lista. [fpuga]
- Revisión de errores reportados en la OSOR por lo usuarios:
- Permitir editar el parámetro puerto de la conexión: http://forge.osor.eu/tracker/index.php?func=detail&aid=14739&group_id=89&atid=732
- Cuando un usuario trata de cargar una capa PostGIS sin conexión previa gvSIG da un error: http://forge.osor.eu/tracker/index.php?func=detail&aid=14599&group_id=89&atid=732
- Revisión e integración de parches existentes en la OSOR [amaneiro]:
- Parche preparado y pendiente de subir la nueva versión a la OSOR: http://forge.osor.eu/tracker/index.php?func=detail&aid=14547&group_id=89&atid=732
- Todo lo relacionado con SEXTANTE, para mejorar su integración con gvSIG. Me gustaría escuchar las ideas de la gente, y los problemas que el equipo de gvSIG pueda tener al respecto, para ver como puedo ayudarles [Victor Olaya]
Otros:
- Cuando copias y pegas grupos de capas entre vistas, se copia el grupo con las capas pero te vuelve a copiar las capas en el raiz del TOC. [jbellido]
- El "mapa de localización" (abajo a la izquierda) debe ser una vista normal (es decir que esté en el Gestor de Proyecto, se puedan cargan capas, cambiar simbología cómodamente, etc). Configurar el mapa de localización debe ser escoger entre una de las Vistas creadas. [nachouve]Se ha comentado y buscado alguna alternativa interesante para abordar en el futuro: copiar las capas de una vista en el localizador.
- Mapa de localización debe aparecer sólo cuando se configura y no por defecto.
- Integración de Jaspa en gvSIG, especialmente en JASPA con H2 ya que el driver de Jaspa/PostgreSQL es bastante similar al de PostGIS [josecarlosmartínez]
- Add a paginator to tables (e.g. do not fetch more than 500 records at a time) [fla83tn]
- La selección con la herramienta de hipervinculo debería tener una especie de buffer cuando se selecciona puntos o linea ya que a veces es demasiado difícil acertar en el centro del punto o de la línea
- Idea: port the Load them all extension of QGis to gvSIG [xurxosanz]
- Idea: add an startup variable to select where to place the gvSIG configuration folder (from this post and older messages on maling list) [xurxosanz]
Bugs y alguna feature detectada en el BugSprint:
- Comboscale empty, https://forge.osor.eu/tracker/?func=detail&aid=14793&group_id=89&atid=732[jbellido]
- Convertion from string to number on the field calculator,
http://forge.osor.eu/tracker/?func=detail&atid=732&aid=13394&group_id=89 - Persistence error with WFS layer filtered by area, https://forge.osor.eu/tracker/?func=detail&aid=14789&group_id=89&atid=732
- No English translation for "capas", https://forge.osor.eu/tracker/index.php?func=detail&aid=14794&group_id=89&atid=732
- WFS error when reprojecting layer, https://forge.osor.eu/tracker/?func=detail&aid=14792&group_id=89&atid=732
- User defined labelling. gvSIG crashes, https://forge.osor.eu/tracker/?func=detail&aid=14795&group_id=89&atid=732
- Table name of joined tables do not update on the project manager, https://forge.osor.eu/tracker/?func=detail&group_id=89&aid=14798&atid=732
- Saving pies and bars symbology on .sld format, https://forge.osor.eu/tracker/?func=detail&aid=14802&group_id=89&atid=732
- Different name to the locator, https://forge.osor.eu/tracker/?func=detail&aid=14797&group_id=89&atid=790
- Language of gvSIG after installing, https://forge.osor.eu/tracker/?func=detail&aid=14791&group_id=89&atid=790
- Error in Symbology by expressions, https://forge.osor.eu/tracker/?func=detail&atid=732&aid=13381&group_id=89
- Wizard for labelling creation, https://forge.osor.eu/tracker/?func=detail&aid=14788&group_id=89&atid=790
Organización
En función de los intereses de la gente se crearon una lista de grupos con una temática concreta. Para cada grupo, se asignó un responsable que se encargargó de la coordinación.
La lista de grupos quedó de la siguiente manera:
Grupo | Responsable | Participantes |
Postgis | Fran Peñarrubia | Francisco Puga, Javier Estévez, Pablo Sanxiao, Andrés Maneiro, José Carlos Martínez, Daniel López Sánchez, María Arias de Reyna |
Ráster y Sextante | Nacho Brodin | Fernando S. Peregrino, Romel Vázquez, V. Olaya |
Usabilidad e Interfaz de usuario | Cèsar Ordiñana | Nacho Varela, Jose Manuel Vivó |
Servicios WMS y WCS | José Vicente Higón | César Martínez, José Badía |
Bugs en general y lo que salga del BugSprint | Jorge Piera | Dani González, Jorge Bellido |
Grupo de usabilidad e interfaz de usuario
autor: César Ordiñana
La idea sería discutir, diseñar y/o hacer algún desarrollo, prueba o experimento que mejore temas relacionados con la usabilidad de gvSIG y su interfaz. Algunas cosas que se me ocurren a modo de ejemplo:
- Cuando se realiza una tarea que requiere cierto proceso, el usuario de gvSIG no tiene generalmente ningún feedback. Estaría bien mostrar al menos un cursor de reloj. Se podría probar algo como lo que presenta el artículo Automate the hourglass cursor.
- Actualizar el tema de Swing. Actualmente se usa el Plastic, quizás haya alguno con un interfaz más actual. Como mínimo personalizarlo, en linux por ejemplo las ventanas tienen un borde tan fino que cuesta mucho cambiarles el tamaño.
- El docking Skin incluido en la instalación de la extensión de 3D: ver su nivel de integración, ventajas o desventajas frente al skin por defecto, etc.
- La ventana de proyecto, darle una pensada y plantear mejoras: usar quizás un árbol con los documentos por tipo, incluir más información (ej: lo que se ve en las propiedades de una vista), etc.
- Revisión e integración de parches en la OSOR [amaneiro]:
- http://forge.osor.eu/tracker/index.php?func=detail&aid=14342&group_id=89&atid=790
Resumen de la jornada
Arranque
A las 9:45 ya estábamos todos menos los que habían confirmado que llegarían un poco tarde. Lo primero que hemos hecho ha sido una ronda en la que cada uno se ha presentado. Creo que hemos sido un poco escuetos, pero ha servido para conocer un poco mejor a la gente.
El crack de Jorge Sanz ha hecho una presentación como responsable de colaboraciones técnicas del proyecto. Ha explicado cómo colaborar y no nos ha obligado a leer la documentación en el momento (un detalle por su parte).
Sobre las 10 hemos empezado a trabajar a tope. Antes de las presentaciones ya estábamos sentados por grupos, así que no nos ha costado arrancar.
Grupo "Postgis"
Una vez repasados y visto lo que podíamos abordar, nos hemos distribuido el trabajo, y creo que ha sido muy productivo. Jose Carlos Martínez se ha peleado todo el día con el soporte 3D en las geometrías de PostGIS (y de paso, con las M), ha hecho un trabajo fantástico y al final ha conseguido casi terminar el parche. Le tengo en mi correo, y espero que cuando tenga tiempo podamos terminarlo y subirlo para la 1.11 (habrá que darse prisa).
Daniel López ha comenzado con un bug para evitar microcortes en el driver de PostGIS, que es muy molesto, dificil de pillar y que provoca roturas de la capa de PostGIS. Creemos que ha solucionado el problema, al menos en parte, y falta probarlo a fondo, a ver si con ese parche, el que han traído los chicos del CartoLab (Javier Estévez) y uno en el que he estado trabajando yo dejamos la capa PostGIS mucho más estable de lo que estaba. Andrés Maneiro ha estado trabajando en encontrar cortes de la conexión PostGIS que la dejan en un estado inválido y es necesario cerrar gvSIG para reconectar: ha corregido 2 bugs que permiten no sea necesario cerrar gvSIG para reconectarla. Luego le ha echado una mano a Daniel.
Pablo Sanxiao ha estado arreglando algunos bugs que estaban apuntado en OSOR, y Francisco Puga ha arreglado el driver de PostGIS para que deje usar el campo Geometry en mayúsculas, luego creo que han mejorado la interfaz de añadir capa para que muestre solamente las capas que de verdad tienen geometrías, y al final ha estado pensando en cómo hacer para poder filtrar las capas por el schema.
María Arias ha llegado por la tarde y se ha unido al grupo trabajando junto con los chicos del CartoLab.
Por mi parte, además de hablar bastante de temas que ni por asomo se me ocurriría sacar con gente "normal" ;-), hacer propaganda de The Big Bang Theory y de un intento de escuchar a Siniestro Total (que no ha prosperado porque los altavoces del portátil son pésimos), he corregido 2 bugs. El primero es algo que me suele pasar. Si te equivocas al meter la clave al cargar un proyecto, o en ese momento no puedes conectar a la base de datos, empiezan a salir errores y lo único que puedes hacer es cerrar gvSIG. Con el parche, se cargará el proyecto con las capas en modo desconectado (aspa roja) y el usuario podrá recuperar la conexión y volver a recargar las capas. El segundo bug es el que está apuntado más arriba. El driver de PostGIS no lee bien los campos NUMERIC, y es un error provocado por la lectura binaria que hacemos del recordset. Para solucionarlo, he tenido suerte y he encontrado código por internet que lee este tipo de campos, lo he añadido al driver y creo que está solucionado.
Por nuestra parte queda repasar los parches que se han generado, y si todo está bien, meterlos al repositorio para que salgan en la siguiente versión.
Me gustaría dar las gracias a todos los participantes, y felicitarlos por su trabajo y las ganas que le han puesto. También hay que felicitar a los chicos del AI2 por buscarnos una sala tranquila y totalmente equipada para el Code Sprint.
Para terminar, solo decir que ha sido mi primer code sprint y me lo he pasado muy bien, sobre todo por la gente que ha venido, espero que al año que viene lo podamos repetir, y desde la Asociación gvSIG podamos colaborar a hacerlo todavía mejor que este año.
Grupo "Ráster y Sextante"
autor: Nacho Brodin
Por un lado hay un problema con la carga de imagenes monobanda que son byte ya que no se les está aplicando un filtro de realce y no se visualizan bien. Se adopta una solución pero falta pegarle un repaso.
Del grupo de Cartolab me pasan una parche para solucionar un problema con uno de los scripts de ant. Parece que no se está distribuyendo bien extRasterTools-SE. Después de comentarlo lo commitamos.
Por otro lado incluyo una modificación en la extensión WMS de forma que se lance un thread cuando se hace una petición para obtener el getCapabilities al inicio de la sesión con el servidor. Se queda solucionado y subido pero queda un problema pendiente y es que la descarga de ficheros nunca se cancela y por mucho que se le pulse a cancelar acaba bajando el xml.
Comentamos también con la gente de 3D un problema con los threads en la descarga de ficheros en servicios remotos. Parece que se quedan corriendo eternamente y hace falta aplicar alguna solución para que terminen. Finalmente le paso algo de código a Rafa pero el tiene una mejora de la solución y se queda aplicandola y probando la solución.
Grupo "Usabilidad e Interfaz de Usuario"
autor: César OrdiñanaTras la presentación inicial nos juntamos un pequeño grupo formado por Nacho Varela, José Manuel Vivó, Francisco Díaz y un servidor.
Tras un rato preparando el workspace del trunk, Nacho Varela comentó algunos temas que afectaban a la usabilidad de gvSIG:
- Ocultar la extensión de los archivos que se muestra por defecto en las capas del TOC. En algunos casos es información redundante, cuando hay muchas capas cargadas ya hay demasiada información en el TOC y además afecta al funcionamiento de la calculadora de mapas de Sextante. Quedamos en que podría ser una opción de preferencias del usuario y Nacho se puso a desarrollarlo. Está subido en la feature request 14854.
- El tipo de capa se distingue en el TOC mediante un icono. De forma parecida a lo anterior, por ejemplo eso provoca confusión visual con la información de leyenda en cada capa. Tras discutirlo un rato no llegamos a ninguna conclusión definitiva, ya que habría que buscar una forma alternativa de distinguir entre tipos de capas que sea más compacta. Está subido en la feature request 14855.
- Mejoras en el localizador:
- En la configuración, cambiar el modo de apertura de la ventana de modal a tool.
- Sustituir la lista de capas por un TOC.
- Añadir botón de "importar vista" que importa la estructura de capas de una vista existente en el localizador actual.
- José Manuel Vivó empezó con estos cambios y en cuanto disponga de tiempo los terminará y dará de alta los correspondientes feature request.
- Una funcionalidad muy útil para cuando se tienen muchas capas con la misma simbología o parecida, sería poder copiarla y pegarla entre las mismas. Entre capas con la misma estructura de datos y tipo de geometrías sería sencillo, habría que ver si somos capaces de copiar
- La feature request 14342: activar el pan al pulsar el botón central del ratón. Estuvimos haciendo pruebas al respecto pero el parche forzaba el pan al pulsar el botón central dentro del código de MapControl. Como alternativa, José Manuel Vivó hizo una prueba rápida modificando el ToolListener que realiza el pan para indicarle sobre qué botón debe actuar, registrándolo en todos los behaviors. Sin embargo, la mayoría de listeners realizan su acción con cualquier botón, por lo que se activaban varias opciones a la vez. En consecuencia, se decidió que requería una actualización en el API de los Behavior/Listener de forma que se pueda asignar los botones concretos a los Behaviour. Subido en la feature request 14869.
- El look and feel Nimbus. Disponible por defecto a partir de la versión 1.6 update 10 de Java, presenta un nuevo interfaz más moderno y que puede ser renderizado en cualquier resolución. En gvSIG, si se arranca con las últimas versiones de java 1.6, podemos activarlo a través de las preferencias de usuario (General > Apariencia). Lo activamos y hicimos algunas pruebas, sin embargo en algunos paneles con tamaños fijos se descuadran. Habrá que estudiar si se activa por defecto en gvSIG 2.0, aunque para ello habrá que revisar estos paneles y dar unas recomendaciones básicas para que los paneles se vean bien en cualquier look and feel.
- Las barras de botones son reposicionables en swing, pudiéndolas mover a la izquierda, derecha, abajo o arriba de la ventana. Es sencillo activar esto, pero habría que dar la opción a poder reposicionar los grupos de botones dentro de la barra de botones.
Nacho Varela subió al tracker de Feature request los tickets:
[#14854] File extensions on ToC (con parche)
[#14855] Remove vector/raster ToC icons
Grupo "Servicios WMS y WCS"
En cuanto al trabajo realizado por César Martí, Jose Badí y yo, hemos arreglado algún bug y añadido alguna funcionalidad interesante. En concreto, César ha mejorado el tratamiento de los parámetros que indican la escala máxima y mínima de una capa WMS, además ha añadido una poción "zoom a la escala visible". Los parches están accesibles en ticket 14856
Jose Badía ha estado indagando en los servicios WMS y a solucionado un problema con la visualización de metadatos del servicio WMS ticket 14849
Por mi parte, he arreglado el parser WCS para que pueda conectarse al servicio WCS-1.0.0 que sirve Geoserver, ticket 14861
Grupo "Bugs en general y lo que salga del Bug Sprint"
Después nos hemos puesto manos a la obra. Primero hemos repasado la lista de bugs del BugSprint y hemos intentado entender todos los bugs que detectaron nuestros compañeros ayer. ¡Qué peligro que tienen estos testers!
Jorge Bellido nos ha comentado un bug que muestran ellos a sus clientes para demostrarles que gvSIG también falla: al copiar una agrupación de capas entre dos vistas, se copia tanto la agrupación como las capas individuales que forman la agrupación. Nos hemos puesto manos a la obra y .... ¡primer bug resuelto! Ticket en OSOR y patch adjunto.
Daniel González se ha unido al grupo con mucha fuerza y ha tardado poco en comentarnos su primer bug: cuando se hace un zoom a la selección de un único punto en una capa de puntos la escala de la vista se fija a cero. ¿Tiene sentido? Lo hemos estado debatiendo un buen rato y no hemos llegado a ninguna solución. Tendremos que estudiarlo más en profundidad.
Después hemos empezado con la lista de tickets del Bug Sprint. Hemos cogido el primero de la lista que trataba de un error al poner una escala inválida en el combo de escalas, que hacía que esta herramienta ya no se pudiese utilizar. A mitad discusión Jorge Piera se ha tenido que marchar a buscar a María Arias que acababa de llegar y al volver, entre Jorge Bellido y Joaquín del Cerro ya habían corregido el bug. ¡Otro ticket + parche en OSOR!
Daniel González y Jorge Piera se han pasado la tarde buscando un bug para arreglar. Después de un par de intentos en los que hemos hecho "agua" y no los hemos podido reproducir, hemos abordado el bug del la calculadora de campos del método "toNumber", que se produce cuando se intenta convertir a string a un entero.
No teníamos muy clara cuál era la solución, así que hemos preguntado a los expertos. Mario Carrera y Fran Peñarrubia pasaban por allí y los hemos secuestrado para que opinaran del valor que había que devolver en caso de que el número a convertir fuese un string. Los dos han coincidido en que la mejor solución era no hacer nada.
Hemos estado un buen rato buscando cómo solucionar el error y tras acotar el error, hemos consultado a Joaquín del Cerro al tratarse de un error en el Jython. El error que parecía trivial era más complejo de lo previsto y hemos tenido que abordar la misión. Francisco Díaz, prepárate que te va a tocar arreglarlo en breve.
Conclusiones
gvSIG es un proyecto de FLOSS (Free Libre Open Source Software) que se abre a la comunidad cada vez más. Lo vivido en la jornada de code-sprint del 30 de Noviembre 2010 en Valencia ha sido la prueba palpable de que existe un gran interés por este SIG a todos los niveles. A nivel técnico, el conocimiento y la capacidad para mejorar el programa están en una clara expansión ya que hay muchas personas que trabajan sobre este producto de manera distribuída dentro y fuera de Valencia.
El code-sprint ha sido un encuentro de desarrolladores de gvSIG que ha contado con la participación de 26 personas que durante todo un día compartieron un espacio de trabajo común, experiencias, ideas, consejos, etc. Pero sobre todo, los asistentes compartieron un objetivo: construir juntos un gvSIG cada vez mejor.
Se han corregido errores, implementado nuevas funcionalidades, se han discutido y comentado cosas en un ambiente participativo y agradable. Sin embargo, el resultado más importante del code-sprint no son las líneas de código fuente escritas ese día. Lo más importante son las relaciones y mecanismos de comunicación que se han establecido entre desarrolladores oficiales del core de gvSIG y otros desarrolladores externos.
La red de participación en el proyecto es cada vez es más grande, coordinada, sostenible, sólida e integradora. gvSIG es cada vez más fuerte al contar con una comunidad inquieta, profesional y dispuesta a seguir creciendo. El gran reto de la Asociación gvSIG ahora es poder recoger las aportaciones de usuarios y desarrolladores y aprovechar todo el potencial actual y futuro que hay en la comunidad. Es por ello que la reunión del CDT (Comité de Dirección Técnica de gvSIG) el 3 de Diciembre con la participación de personas nuevas que han estado en el code-sprint es un indicador claro de la intención de crear mecanismos de colaboración efectiva basada en contribuciones reales y acordes a las dinámicas del FLOSS.
El code-sprint ha sido una genial guinda de las 6as Jornadas de gvSIG: un éxito colectivo, provechoso y muy motivador. Sólo queda agradecer a todos los participantes y organizadores del code-sprint su esfuerzo para que todo haya salido tan bien. ¡¡Nos vemos en el siguiente Code-Sprint de gvSIG!!