Blog

Video de las JIDEE 2011

La semana pasada tuvo lugar las JIDEE 2011, también conocidas como II Jornadas de Infraestructuras de Datos Espaciales, que desde el año pasado se celebran conjuntamente entre España y Portugal.

Dicen que una imagen vale más que mil palabras. Probablemente se pueda extender, exagerando, a que un vídeo vale más que mil imágenes. Aquí dejo el video resumen de la organización, donde aparece entrevistada nuestra compañera Amelia del Rey, responsable del área geoespacial de Prodevelop.

User Scripts and Open Layers

Yesterday we have a visit to the office and we wanted to show an application on a development server on a customer facilities. They opened for us the port to access the app, but they forgot to open the TileCache web server so our OpenLayers map was full of pink tiles and we cannot open the service.

What to do? Well we didn't have the time to catch de sys admins so I figured that changing somehow the map Base Layer by any other suitable WMS layer from our national SDI, precisely our great ortophoto service (called PNOA) would be enough to not get the embarrassing pink tiles.

So I ended up writing an small User Script (my very first one) that could be easily added to the Chrome/Chromium browser using the Tampermonkey extension (similar to the Greasemonkey extension of Mozilla Firefox). The script looks for a layer called "Base" and changes its url and the layer name of the parameters object. It also does the same task on the overview map.

// ==UserScript==
// @name Dirty OL Hack
// @namespace http://www.prodevelop.es
// @description Changes the OL base map
// @include http://my-great-ol-app/path/*
// ==/UserScript==

window.addEventListener("load", function(e) {

  Ext.onReady(function(){
    map = path.to.my.map;
    l = map.getLayersByName("Base")[0]
    l.params.LAYERS = "pnoa";
    l.url = "http://www.idee.es/wms/PNOA/PNOA";
    map[map.getLayerIndex(l)] = l;

    c = map.getControlsByClass("OpenLayers.Control.OverviewMap")[0];
    c.layers[0] = l;
    c.ovmap.layers[0].url[0] = c.layers[0].url
    c.ovmap.layers[0].params.LAYERS = c.layers[0].params.LAYERS

    l.redraw();
    c.ovmap.layers[0].redraw()

  });
}, false);

The point is that this code has to run when all the Ext.JS layout and OpenLayers code has been initialized.

It has more holes than an emmental cheese for sure, but as dirty as is, it worked fine for the demo. I have no idea why it doesn't work on Firefox but works on Chrome and in Opera but who cares? :-).

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.

Vídeo del geoportal de tursimo de la Comunitat Valenciana

Un pequeño post para mostrar el vídeo que se han currado en la Agencia de Turismo de la Comunitat Valenciana para explicar al sector turístico en qué consiste el nuevo Geoportal de la web principal de turismo de la Comunidad Valenciana, realizado en esta casa.

Es una presentación puramente de usuario, no se explican por tanto detalles técnicos que estaría bien comentar más adelante. Creo que pueden ser una buena muestra de la utilización de diferentes técnicas y componentes para lograr un producto bien acabado, con mucha funcionalidad y orientado a tanto a equipos convencionales como a teléfonos móviles.

Pantallazo del víde del geoportal

DrupalCamp 2011

Este fin de semana pasado asistí a la DrupalCamp cerrando mi ronda post-vacacional de saraos y congresos, el cuarto en un mes, ya va bien. El caso es que el viernes en un avión que como alguien dijo, bien podría haberse llamado el DrupalJet, 11 drupaleros volaron a Sevilla, aunque algunos más estarían por llegar en las horas siguientes desde tierras valencianas. En total asistimos al evento unas 300 personas, creo que superando por poco el evento del año pasado, lo cual dada la situación económica actual no está nada mal. Corrijo: Pedro Cambra acaba de confirmar que el año pasado fueron 375 asistentes. Supongo que ayudó dos cosas: el precio del evento continuó siendo casi simbólico y la organización trabajó bien el tema del alojamiento consiguiendo un buen precio para alojarse en un buen hotel cercano a la sede. De esto último hablaré más tarde.

Respecto al congreso como tal, se organizó en dos días, con tres o cuatro tracks de sesiones de 45 minutos, dejando los 15 restantes para preguntas y cambio de conferenciante y que el público pudiera cambiarse de sala. La sede fue la escuela de informática de la Universidad de Sevilla, que como en todos y cada uno de los congresos a los que he asistido en universidades, puso las cosas difíciles a público, organización y conferenciantes para conectarse a la red. Las salas eran tres aulas y un cómodo auditorio, perfectos. Tal vez el único pero a la sede fue el espacio para las comidas, realmente estrecho para poder comer y charlar cómodamente, pero bueno, me parece un detalle menor.

IMG_2329
Sala CENATIC. Autor Pedro León

En cuanto a las charlas, bien realmente mi nivel en drupal es digamos de usuario avanzado con conocimientos de cómo funciona el desarrollo de módulos en drupal (gracias a las sesiones de Drupal Valencia) por lo que casi cualquier cosa que me contaran me iba a gustar. Asistí a sesiones sobre temas geo, sobre migración de contenidos, sobre delegación de búsquedas en Apache Solr, sobre la gestión de la colaboración en el proyecto, sobre la reciente creación de la Asociación Española de Drupal (y me asocié) y algún tema más. Realmente he aprendido bastante, he notado bastante madurez en los contenidos respecto al año pasado y sobre todo, gracias a ser ya miembro de una pequeña comunidad y no un visitante despistado, he disfrutado mucho más del evento. 

El hecho de conseguir que una buena parte de los asistentes se encuentren alojados en un número reducido de sitios ayuda mucho a que la gente disfrute del evento mucho más. Esto es algo que por ejemplo yo acusé bastante en el FOSS4G del año pasado y que en este ha funcionado mucho mejor. Me gustan los congresos donde la gente interactúa más allá del fin de las sesiones del día, donde uno está de congreso casi las 24 horas del día, aprendiendo, comentando y disfrutando de lo más importante del congreso: los asistentes.

 

DSC_0013
Embolsando, soy el de verde de espaldas, todavía no sé muy bien como acabé ayudando :-). Autor: Pedro Cambra

Un tema que me resultó raro es el formato de las sesiones, no sé, tras la experiencia reciente de los lightning talks de los congresos de OSM y OSGeo, creo que el formato es realmente bueno para transmitir cierto tipo de mensaje, de forma muy ágil y dinámica, haciendo que se te pase el tiempo volando, dejando los contenidos más profundos para sesiones de hora y media o dos horas enfocadas a conseguir que la gente salga con un conocimiento práctico de algo. Tal vez sea que las DrupalCamps «son así» y que en otros eventos sea de otra forma. Drupal es un proyecto maduro en el que tienen tipos de eventos diferentes, pero a mí este formato me cansa bastante, se hace largo pegarse apenas 6 sesiones así, cuando en otros congresos unu puede ver el doble de sesiones.

En fin, por ir cerrando esta especie de resumen, tan poco técnico que me ha salido. Me interesa Drupal desde hace mucho tiempo, primero por ser un estupendo CMS y ahora ya un verdadero framework de creación de aplicaciones web, pero desde el último año me interesa casi igual por cómo funciona su comunidad, cómo se organiza y cómo los diferentes grupos de nivel local, nacional e internacional interactúan entre ellos.

No sé dónde será la DrupalCamp del año que viene pero espero poder ir, ni cómo evolucionará el grupo de Valencia en el que participo, pero seguro que nos lo vamos a pasar bien.

IMG_2429
Foto de grupo de la DrupalCamp de este año. Autor Pedro León

Notes from the SotM and FOSS4G

Well I'm at office and I imagine is a good time to try to recap my experience at SotM and FOSS4G events.I arrived at Denver on September 8, the day before SotM started and just a few minutes after I checked in at the hotel I met César Medina, a good friend from Chile with I was lucky to spent the next days, as I travelled alone this time from Spain.

The State of the Map is the main annual conference of the OpenStreetMap project. There, people from very different backgrounds show their new projects or experiences around the OpenStreetMap data and technology. 

I attended the "business session" but was in fact a mixed session of companies showing their products with another session more education focused. We had also a nice session by Daniel Kastl (Georepublic) about the issues at Japan about geocoding because of the different ways to express addresses. At the afternoon we went to a baseball game, less boring than I expected, indeed (thanks to some beers and so good company). 

Coors Field

My second day at SotM was mostly dedicated to attending the lightning talks. I really enjoyed them and I think is a very good format for this kind of conferences, having just 10 minutes to tell your story is great to enforce people to focus on the important stuff they want to tell. I imagine a conference full of lightning talks with some time for demos and more time to discuss openly, it would be more interesting for attendants, isn't it?

I wasn't able to attend the last day a I was at the OpenGeo first partner meeting where we discussed about OpenGeo suite and how to find the way to convince to our customers to adopt free software supported by professional services.

During Talks at SotM11

And then the FOSS4G. I won't surprise anyone saying that for me it is the best geospatial conference of the year by many reasons. The first is because I can meet friends and highly skilled experts from all parts of the world. An then you have an amazing program full of workshops, tutorials and sessions. It's really difficult to choose what to see: should I go to this new node.js thing or go the always great FrankW session about fine tuning GDAL, or should I go to see what this GeoMoose is all about?

DSC_7178

Technically speaking, the buzz words in my opinion maybe were

  • PostGIS 2, we will be 10cm higher with all the new features are coming
  • node.js and server side scripting in general, javascript behind your servers, can you imagine that 5 years ago?
  • WPS, finally that standard seem to be mainstream, probably helped by the scripting features before mentioned
  • 3D globes, mainly with WebGL related sessions, but also with the nice presentations by our friends from igo software and La Laguna university

Regarding the exhibitors, well I really didn't gave a lot of attention to them, except a little bit of staying around the OSGeo booth (less than I should in fact).

DSC_7422

And finally the social events, well I only went to the gala dinner that was fine and on a nice place, the Denver Modern Art Museum where we visited an exhibition of western paintings while chatting on geo-geekery. There were also a reception and a lot of beers and night partying but I was quite busy and tired so I didn't did a lot of "social networking" at night.

In fact there was another kind of social event, well it was in a session, but Geoglobaldomination The Musical probably was a mix of both. Set up by Iván Sánchez, co-starring with Schuyler Erle and Kate Chapman with Jeff McKenna as an special guest, we had all a lot of fun with their performance. You should check it and judge by yourself.

DSC_7714

Even travelling alone from Spain, I enjoyed this FOSS4G as all the previous I have had the luck to go. It's always a great conference to learn and share all the new projects and experiences from the last year, as well as meet the good fellows from OSGeo, all the other projects and companies. The feeling of participating on a big great community is strong, even when the event has evolved from Lausanne and the variety of people backgrounds is increasing.

Next year FOSS4G will be at Beijing, I can't say if I'll be there but for sure someone from Prodevelop will attend.

 

Contra el vicio de pedir, la virtud de no dar

Hace relativamente poco vi por primera vez este mensaje en gvSIG, al intentar poner en edición una capa vectorial reproyectada al vuelo:



Si uno lo piensa, se da cuenta de que nunca o casi nunca puede tener sentido poner en edición una capa cuyo SRS en origen es diferente al de la vista. La edición es algo parecido a la cirugía. No tiene sentido afinar a mano la posición de los vértices para después reproyectar a otro SRS, cuando sabemos que esta reproyección va a introducir errores casi con toda seguridad. Por otro lado, el implementar la edición y la reproyección simultáneas, aunque pueda parecer sencillo, nos lleva a dificultades inesperadas: ¿qué pasa si se trata de una reproyección con parámetros especiales o con rejilla? ¿sabremos siempre calcular esa reproyección inversa? ¿es posible que la reproyección inversa sea más imprecisa que la reproyección directa original? etc. Al final, estamos dedicando recursos a intentar resolver un problema al cual no deberíamos haber llegado. Como dice el diálogo, lo razonable es reproyectar primero la capa y editarla después, o viceversa.

Edición de capas gigantes

Otro caso quizá no tan claro es el permitir que se ponga en edición una capa con varios cientos de miles de geometrías. Hay dos casos mucho más comunes que el resto: editar un shapefile gigante (que es relativamente factible, salvo casos verdaderamente extremos) o bien editar una capa GeoBD gigante (generalmente PostGIS u Oracle Spatial).

Este segundo caso sí da problemas graves en un número no pequeño de casos, puesto que no es raro tener una base de datos geométrica en la que hay tablas con cientos de miles o incluso millones de registros.

Afortunadamente, el diálogo de creación de capas GeoBD prevé la inserción de restricciones geométricas o alfanuméricas en el momento de añadirlas a nuestra vista, de modo que la capa creada es relativamente ligera en comparación con la tabla enorme en la que se apoya. Esa es, en mi opinión, la vía correcta para editar tablas geométricas gigantes, y hacia ahí hay que procurar reconducir al usuario. Llegado el caso, habría que mostrar al usuario un mensaje que dijera por ejemplo: "No es posible iniciar la edición de esta capa GeoBD porque tiene más de 300.000 registros". El umbral no permitido podría calcularse en el momento, dependiendo por ejemplo de la potencia del PC, o se le podría preguntar a la capa (es decir, al driver) si en la actual situación (número de registros y vértices, velocidad estimada de la red) se considera capaz de aceptar el modo de edición.

¿Una negativa es siempre mala?

Si permitimos que el usuario use opciones en condiciones que nos llevan a procesos larguísimos o muy complejos, nos arriesgamos a que el comportamiento de la aplicación sea substandard, como diría Steve Jobs, es decir, no usable, de modo que el usuario se frustra porque no se da cuenta de que lo que ha pedido implica una cantidad de cálculos inimaginable, y además hay otras vías mucho más adecuadas para conseguir lo mismo. A partir de ese momento, ese usuario va a difundir la idea de que la aplicación no funciona bien, y si por casualidad tiene un blog con unas cuantas visitas al mes, el daño puede ser tremendo.

En cambio, si denegamos la petición (o al menos informamos de que lo que va a hacer es poco recomendable y le ofrecemos una alternativa explicada en un diálogo informativo), estamos evitando esa situación de la que no saldremos bien parados.

Por decirlo (quizá) exageradamente: en el 98% de los casos, el usuario no necesita editar una capa reproyectada al vuelo ni poner en edición un millón de geometrías, y se le puede y debe reconducir a la opción razonable. En el 1% de los casos, se trata de un usuario curioso que prueba casos extremos para ver cómo se las arregla la aplicación, y sólo en el 1% restante se trata de usuarios que realmente necesitan poner en marcha esos procesos tan exigentes, y además han sido capaces de hacerlo antes con algún otro software. En este último caso, se trata objetivamente de una derrota nuestra, pero casi siempre habrá otro motivo por el cual gvSIG es preferible: su licencia GPL, sus muchas otras funcionalidades, el tamaño de la comunidad, etc.
Distribuir contenido