OSGeo Planet

Paul Ramsey: Two Thoughts About Enterprise IT

OSGeo Planet - Mon, 2017-02-27 16:00

While thinking about the failure of the Cerner roll-out in Nanaimo, where an expensive COTS electronic health record (EHR) system has been withdrawn after the medical staff rejected it, I have had a couple thoughts.

Origins Matter

As I noted in my post, I actually expected the Cerner roll-out on Vancouver Island to go fine. Proven software, specialized company, no shortage of cash. But it didn’t go fine. Among the complaints were things you’d expect to have been ironed out of a mature product ages ago: data entry efficiency, user-friendly displays of relevant data at relevant places, plain old system speed and responsiveness.

Why would a system rolled out in multiple US hospitals display these drawbacks?

I’m wondering if some of the issue might be the origin story: Cerner is an EHR developed and deployed first in the USA. As such, one of the main value propositions of the system would be the fine-grained tracking and management of billable events. To the people purchasing the system, the hospital managers, the system would pay for itself many times over just by improving the accounting aspect of hospital management. Even if it made patient care less efficient, the improvement in billing alone could make the system fiscally worthwhile.

Recently, a colleague told me about the ambulance dispatch system BC procured a decade ago. Like Cerner, it was a US system. It handled dispatch fine, and still does. What was odd about the system was that when you cracked open the user manuals, over 75% of the material was about how to configure and manage billing. The primary IT pain point for these US organizations is the incredibly complicated accounting issues associated with their multiple-payer private health insurance system, and the system reflects that.

What I’m getting at here is that if you go to a US reference customer for one of these systems and ask “how did it work for you, was it good?”, when they answer “it is great, it has really made things better!” what they mean by “better” might not be what you might mean by “better”, at least not 100%.

Two Thoughts About Enterprise IT

Cost of Safe, Proven Systems

My second thought on the Cerner roll-out was about the timelines associated with software procurement, particularly when the goal is a “safe, proven choice”. IT managers – particularly ones who are, deep in their hearts, afraid of technology – like a safe, proven choice. They like software that someone else with a similar business is already using, in a similar way.

When you’re talking about big production systems, that may take a couple years to set up, and another couple years to roll out progressively to a large front-line staff, there’s a number of big lags:

  • If you take two years to configure and a year to roll out, the software will be three years old before your staff is all using it.
  • Your procurement process will itself probably take a year.
  • If during procurement, you only consider software that has been in operation for a year somewhere else, that adds a year.
  • The organization you are using as your reference will in turn have taken 3 years to prepare and roll-out.
  • So, assuming the software was brand new when the reference organization chose it, your staff will be getting software at least 8 years old by the time your roll-out is complete.

This is more-or-less exactly what happened to the Ministry of Children and Families in the ICM procurement.

The software that runs their basically “brand new” system (I believe final roll-out was officially finished last year) is now over a decade old, and shows it.

The reason consumer-facing systems are always au courant, lovely and fast, is because they are maintained by dedicated teams who are charged with continuous improvement. As long as we purchase systems like we build bridges, as a one-time capital expense followed by decades of disintegration and then replacement, we can expect our enterprise systems to lag far far behind.

Categories: OSGeo Planet

gvSIG Team: Disponibles los 5 libros de TOPCART 2016: XI Congreso Internacional de Geomática y Ciencias de la Tierra

OSGeo Planet - Mon, 2017-02-27 13:06

topcart_geoinformacion_gvsig

Ya están disponibles para su descarga electrónica (en formato PDF) los libros de ponencias del TOPCART 2016, el XI Congreso Internacional de Geomática y Ciencias de la Tierra. Congreso donde la Asociación gvSIG tuvo una considerable presencia, y podéis encontrar artículos sobre gvSIG Online, gvSIG Desktop y gvSIG Roads en el Volumen IV, denominado Geoinformación.

Los artículos son:

  • 14. gvSIG Online: Plataforma integral para Infraestructuras de Datos Espaciales en software libre.
  • 15. gvSIG + World Wind: Novedades del SIG libre en 3D
  • 16. Infraestructura de Datos Espaciales de la Unión Internacional para la Conservación de la Naturaleza para la restauración de paisajes rurales.
  • 17. Infraestructura de Datos Espaciales del Instituto de Patrimonio Cultural de España. IDE en software libre para la gestión del Patrimonio en proyectos de conservación preventiva.
  • 18. Gestión integral del mantenimiento y conservación de carreteras utilizando software con información cartográfica integrada.

Los enlaces a los 5 volúmenes, con ISSN 2340-2296, son:

Y si alguno quiere adquirir estas publicaciones en papel, están disponibles en AMAZON.


Filed under: geoportal, gvSIG Desktop, gvSIG Online, gvSIG Roads, IDE, Projects, software libre, spanish Tagged: 3D, articulos, libro, topcart, World Wind
Categories: OSGeo Planet

gvSIG Team: Aprendiendo SIG con Juego de Tronos (XII): Edición gráfica

OSGeo Planet - Mon, 2017-02-27 05:39

Complementando un post anterior en el que habíamos tratado la edición de tablas, hoy veremos la edición gráfica. Las herramientas de edición gráfica permiten crear y editar datos vectoriales. Lo único que hay que tener en cuenta es que determinados formatos de datos son de sólo lectura y no permiten la edición.

Para añadir o modificar elementos de una capa es necesario que la capa esté activa y en modo edición. En función del tipo de capa a editar estarán disponibles unas u otras herramientas (para puntos, lineas y/o polígonos).

Estas herramientas están disponibles desde el menú “Capa“ en los submenús “Quitar”, “Insertar” y “Modificar”, desde el menú “Editar” y en la barras de botones correspondientes.

Como siempre comentamos, esto es un curso básico de introducción a los SIG, pero si queréis conocer en detalle todas las herramientas de edición os recomendamos consultar el manual de gvSIG Desktop:

Una vez realizada esta breve introducción vamos a hacer nuestra práctica con los datos de Juego de Tronos.

Nuestro ejercicio consistirá en crear una capa nueva en la que iremos añadiendo las rutas o viajes que sigue cada uno de los protagonistas de la saga. En nuestro caso dibujaremos el recorrido de los hermanos Greyjoy de Pyke a Meereen pasando por Volantis.

El primer paso será crear una nueva capa (en formato shapefile). Encontramos esta herramienta en el menú “Capa/Nueva capa”.

La interfaz va guiando en los pasos para crear la nueva capa:100_got

Debemos seleccionar “Creación de nueva capa Shape” y pulsar el botón “Siguiente”.101b_got

En el siguiente paso, “Fichero de salida”, indicamos el nombre y la ruta donde se guardará la nueva capa (por ejemplo podemos llamarla “Routes”). Una vez definido se debe pulsar el botón “Siguiente”.102_got

En este paso podemos definir el tipo de capa: Point(Puntos), Curve (Líneas), Surface (Polígonos) o Multipoint (Multipuntos). En nuestro caso al querer representar rutas necesitamos una capa de líneas. Por tanto seleccionamos el tipo de geometría “Curve”.

Con el botón “Añadir campo” se pueden añadir campos de atributos a la nueva capa. Vamos a añadir uno al que llamaremos “Name”, de tipo “String” (cadena de texto) que nos servirá para identificar cada ruta.103_got

Si queréis añadir más campos, ahora podéis hacerlo. Una vez definida la tabla de atributos, pulsamos el botón “Siguiente”.104_got

Por último seleccionamos la opción de añadir la nueva capa a la Vista. Para finalizar pulsamos el botón “Terminar”. Ya tenemos la nueva capa en nuestra Vista. Una capa vacía, sin elementos y que ahora debemos comenzar a llenar de contenido.

Para facilitar el dibujado de la ruta, tal y como vimos en el post “Etiquetado”, vamos a etiquetar la capa “Locations”, lo que nos permitirá identificar fácilmente los lugares por los que pasa la ruta que vamos a dibujar: Pyke, Volantis y Meereen. También podéis utilizar las herramientas de selección o el “localizador por atributo” para identificar estas localizaciones.

En primer lugar vamos a poner editable nuestra capa. Con la capa activa, podemos hacerlo desde el menú “Capa/Comenzar edición” o desde el menú contextual que aparece al pulsar el botón secundario sobre la capa en el TOC o Tabla de contenidos.105_got

Cuando una capa está en edición su nombre cambia a color rojo:106_got

Además veréis que han aparecido nuevas barras de herramientas que permiten tanto dibujar nuevos elementos como editar los ya existentes:107_got

El último cambio de interfaz se situa en la parte inferior de la Vista, donde podemos desplegar o contraer una barra de comandos:108_got

Antes de comenzar el dibujo de la ruta debemos conocer dos ayudas fundamentales al dibujo. Con la rueda del ratón, moviendo adelante y atrás, podemos cambiar la escala de visualización. Con la rueda del ratón pulsada podemos desplazarnos por la cartografía.

Para comenzar a dibujar la ruta seleccionamos la herramienta “Dibujar polilínea”:109_got

Nos ubicamos cerca de Pyke y hacemos clic con el ratón, ya tenemos el primer punto de nuestra ruta. Ahora iremos utilizando la rueda del ratón para navegar por la cartografía e ir añadiendo puntos intermedios hasta llegar a Volantis, y posteriormente a Meereen. Una vez dibujado el último punto pulsamos el botón secundario del ratón y en el menú contextual que aparece seleccionamos la opción “Finalizar”. Tal y como vimos en el post de “Edición de Tablas” ahora podríamos editar sus atributos y poner, por ejemplo, “Greyjoy brothers” para identificar este viaje.

A continuación podríamos añadir nuevas rutas, cada una de las cuales sería un nuevo elemento de la capa. En nuestro caso lo dejamos aquí, por lo que vamos al menú “Capa/Terminar Edición”.

El resultado será similar al siguiente:110_got

¡Ya estáis preparados para practicar y conocer en profundidad el resto de herramientas de edición!. Y también podéis practicar las herramientas que hemos visto anteriormente, por ejemplo añadiendo como hiperenlace una imagen identificativa de cada ruta.greyjoy_got_gvsig

Nos vemos en el antepenúltimo post de este curso, en el que nos introduciremos en el geoprocesamiento.


Filed under: gvSIG Desktop, spanish, training Tagged: crear nueva capa, edición, edición gráfica, Juego de tronos
Categories: OSGeo Planet

Free and Open Source GIS Ramblings: Movement data in GIS #5: current research topics

OSGeo Planet - Sat, 2017-02-25 18:42

In the 1st part of this series, I mentioned the Workshop on Analysis of Movement Data at the GIScience 2016 conference. Since the workshop took place in September 2016, 11 abstracts have been published (the website seems to be down currently, see the cached version) covering topics from general concepts for movement data analysis, to transport, health, and ecology specific articles. Here’s a quick overview of what researchers are currently working on:

  • General topics
    • Interpolating trajectories with gaps in the GPS signal while taking into account the context of the gap [Hwang et al., 2016]
    • Adding time and weather context to understand their impact on origin-destination flows [Sila-Nowicka and Fotheringham, 2016]
    • Finding optimal locations for multiple moving objects to meet and still arrive at their destination in time [Gao and Zeng, 2016]
    • Modeling checkpoint-based movement data as sequence of transitions [Tao, 2016]
  • Transport domain
    • Estimating junction locations and traffic regulations using extended floating car data [Kuntzsch et al., 2016]
  • Health domain
    • Clarifying physical activity domain semantics using ontology design patterns [Sinha and Howe, 2016]
    • Recognizing activities based on Pebble Watch sensors and context for eight gestures, including brushing one’s teeth and combing one’s hair [Cherian et al., 2016]
    • Comparing GPS-based indicators of spatial activity with reported data [Fillekes et al., 2016]
  • Ecology domain
    • Linking bird movement with environmental context [Bohrer et al., 2016]
    • Quantifying interaction probabilities for moving and stationary objects using probabilistic space-time prisms [Loraamm et al., 2016]
    • Generating probability density surfaces using time-geographic density estimation [Downs and Hyzer, 2016]

If you are interested in movement data in the context of ecological research, don’t miss the workshop on spatio-temporal analysis, modelling and data visualisation for movement ecology at the Lorentz Center in Leiden in the Netherlands. There’s currently a call for applications for young researchers who want to attend this workshop.

Since I’m mostly working with human and vehicle movement data in outdoor settings, it is interesting to see the bigger picture of movement data analysis in GIScience. It is worth noting that the published texts are only abstracts, therefore there is not much detail about algorithms and whether the code will be available as open source.

For more reading: full papers of the previous workshop in 2014 have been published in the Int. Journal of Geographical Information Science, vol 30(5). More special issues on “Computational Movement Analysis” and “Representation and Analytical Models for Location-based Social Media Data and Tracking Data” have been announced.

References

[Bohrer et al., 2016] Bohrer, G., Davidson, S. C., Mcclain, K. M., Friedemann, G., Weinzierl, R., and Wikelski, M. (2016). Contextual Movement Data of Bird Flight – Direct Observations and Annotation from Remote Sensing.
[Cherian et al., 2016] Cherian, J., Goldberg, D., and Hammond, T. (2016). Sensing Day-to-Day Activities through Wearable Sensors and AI.
[Downs and Hyzer, 2016] Downs, J. A. and Hyzer, G. (2016). Spatial Uncertainty in Animal Tracking Data: Are We Throwing Away Useful Information?
[Fillekes et al., 2016] Fillekes, M., Bereuter, P. S., and Weibel, R. (2016). Comparing GPS-based Indicators of Spatial Activity to the Life-Space Questionnaire (LSQ) in Research on Health and Aging.
[Gao and Zeng, 2016] Gao, S. and Zeng, Y. (2016). Where to Meet: A Context-Based Geoprocessing Framework to Find Optimal Spatiotemporal Interaction Corridor for Multiple Moving Objects.
[Hwang et al., 2016] Hwang, S., Yalla, S., and Crews, R. (2016). Conditional resampling for segmenting GPS trajectory towards exposure assessment.
[Kuntzsch et al., 2016] Kuntzsch, C., Zourlidou, S., and Feuerhake, U. (2016). Learning the Traffic Regulation Context of Intersections from Speed Profile Data.
[Loraamm et al., 2016] Loraamm, R. W., Downs, J. A., and Lamb, D. (2016). A Time-Geographic Approach to Wildlife-Road Interactions.
[Sila-Nowicka and Fotheringham, 2016] Sila-Nowicka, K. and Fotheringham, A. (2016). A route map to calibrate spatial interaction models from GPS movement data.
[Sinha and Howe, 2016] Sinha, G. and Howe, C. (2016). An Ontology Design Pattern for Semantic Modelling of Children’s Physical Activities in School Playgrounds.
[Tao, 2016] Tao, Y. (2016). Data Modeling for Checkpoint-based Movement Data.

 


Categories: OSGeo Planet

Micha Silver: Stratified Sampling based on elevation in GRASS

OSGeo Planet - Sat, 2017-02-25 15:06

Stratified sampling is a GIS context refers to a random sampling stategy where sampling points are located based on some additional spatial data. For example, in the simple case of a set of district boundaries, we can create a random set of points over all the districts such that each district has the same sample size. This technique appears in QGIS, GRASS, and of course R, and many other GIS software. Here the point density changes at each district boundary, depending on the size of the district.

Another use case is weighted random sampling, whereby the point density increases based on a value in some auxilliary weighting raster. The final point density varies continuously depending on the weight raster, as opposed to the discrete changes in the district example above. Paulo van Breugel, in his excellent “Ecostudies” blog post presented his GRASS addon r.random.weight that creates a weighted random sampling.

This addon could be used, for example, to create a random sampling of points using the terrain as the weighting raster, such that at higher elevation points will be denser. But suppose we wanted the opposite: higher point density at the lower elevations? We can accomplish this simply creating an inverted the elevation raster, thus lower elevations get smaller negative values. Then, using the inverted DEM as the weighting parameter, we run the addon and obtain a point sampling distribution with higher density in the valleys.

Here are the steps. After setting the computational region, create an inverted raster with mapcalc by multiplying the DEM by -1. I also add some artificial value to get all inverted elevations above zero. Then run the module, and convert the random points raster to vector.

g.region -p rast=dem r.mapcalc "dem_inverted = -1.0*dem + 1000" --o r.random.weight weight=dem_inverted output=random_points subsample=1000 --o r.to.vect --o random_points output=random_points type=point

In the image below, the lower elevation in the south east corner has a high density of points, whereas in the north west plateau the density is sparce.

Categories: OSGeo Planet

QGIS Blog: A report on QGIS Income 2016

OSGeo Planet - Sat, 2017-02-25 07:33

Greetings wonderful QGIS Users, Developers and Supporters! 2016 was quite an  exciting year for QGIS – we released QGIS 2.14LTR which has been a great stable release. We also set the wheels in motion for QGIS 3.0 which we plan to release later this year. QGIS development takes a lot of time and effort – and much of the work is done by volunteers – especially the core project maintenance work which typically does not attract paid-for consulting work like new feature work does.

We are extremely lucky and grateful to have a growing band of sponsors that are helping us to slowly but surely fund more core QGIS project work too. In this post we want to say ‘thank you’ to the many sponsors that have stepped up to the plate when we asked for help and sponsored QGIS. We also want to provide some insight as to what level of funding we receive and hopefully stimulate some friendly enthusiasm to stepping up funding efforts from our users around the world.

Our project treasurer, Andreas Neumann, has been so kind as to compile a very detailed report about the sponsorships and donations received over 2016 which we would like to share with you. Before I share his actual report, let me just clarify that we have two distinct ways of contributing money to the project:

  • Donations: You simply nominate an amount you wish to contribute and pay it to the project. Donations are intended as a way for individual users to show their support for QGIS (although we welcome large donations too).
  • Sponsorships: Sponsorships are aimed at organizations. We have fixed tiers of contribution (see below) and each tier includes some benefits in terms of marketing exposure for your company or organisation.

QGIS sponsorship can be made at one of four levels:

2017-01-30 01_22_27-Projecta_ Sponsorship Levels -.png

Higher tier (silver and up) sponsors are included in the footer of our main web site, http://qgis.org e.g.:

Screen Shot 2017-02-25 at 8.50.22 AM.png

If you want to see your company listed there, why not head over to the QGIS Sponsorship page to find out how to become a sponsor?

Some interesting highlights from Andreas’ report:

Screen Shot 2017-02-25 at 9.00.07 AM.png

We had  1128 donations in 2016 amounting to a total of  €25108. We had  47 Sponsors in 2016 which raised a total income of  €67921. December is the month that attracts the highest income from donations and sponsors (though that may coincide with additional marketing we did calling for sponsors).  Looking at contributions by country, Denmark was the highest national contributor in 2016, providing a total of  €17795 to the QGIS.ORG project. If you normalize by population,  Iceland provided the largest per capita contribution to QGIS, providing  €9056 per million people.  Iceland also had the highest contribution rate when measured against GDP with  ~€154 per billion GDP.

Screen Shot 2017-02-25 at 9.04.34 AM.png

You can read Andreas’ full report in this PDF – a huge thank you to Andreas for preparing this fascinating report, and of course to everyone out there who shared their hard earned money with us – your funding has become a vital enabler for moving the project forward.

Regards

timsutton

Tim Sutton
(QGIS Project Chair)


Categories: OSGeo Planet

gvSIG Team: Aprendiendo SIG con Juego de Tronos (XI): Etiquetado

OSGeo Planet - Fri, 2017-02-24 12:03

Tras introducirnos en la simbología de gvSIG Desktop en el anterior post, hoy vamos a hacer lo propio con el “Etiquetado”.

Una etiqueta es un texto descriptivo basado en uno o varios atributos de una entidad. Las etiquetas se ubican dinámicamente sobre o cercanas a los elementos de una capa, y se representan en función de las características de etiquetado definidas por el usuario. Algo importante a saber es que las etiquetas no pueden ser directamente manipuladas por el usuario.

En gvSIG hay dos modalidades para generar el etiquetado de una capa, uno rápido y muy sencillo, y otro más complejo pero que permite definir una gran número de características del etiquetado.

Al igual que en el caso de la simbología, son muchas las herramientas que nos permiten caracterizar un etiquetado, por lo que recomendamos que reviséis el apartado de “Etiquetado” del manual de usuario.

Vamos a hacer un primer ejercicio de etiquetado básico sobre la capa “Political”. Lo primero que tenemos que hacer es abrir la ventana de “Propiedades” de la capa. Con la capa activa encontramos esta opción en el menú “Capa/Propiedades” o directamente con el botón derecho sobre la capa se nos abrirá un menú que incluye el acceso a las “Propiedades”.

Vamos a la pestaña “Etiquetados” de la ventana de “Propiedades de capa”. Si marcamos la casilla “Activa etiquetado” ya tendremos disponibles todas las opciones del que hemos llamado etiquetado básico.080_got

Lo principal es definir el campo de la Tabla de atributos de la capa que queremos que se utilice para generar el etiquetado. En nuestro caso seleccionamos el campo “name”, que contiene el nombre de cada Reino. Ponemos, por ejemplo, un tamaño de fuente de “12” y el resto de valores dejamos los que vienen por defecto. Pulsamos el botón “Aplicar” y/o “Aceptar” y ya veremos el resultado reflejado en la Vista.081_got

Ocultar (o volver a activar) el etiquetado es tan sencillo como ir a la pestaña “Etiquetados” de las “Propiedades de la capa” y marcar o desmarcar la casilla de “Activar etiquetado”.

Si queremos hacer etiquetados más elaborados, debemos seleccionar en la pestaña “Etiquetados” la opción “Etiquetas definidas por el usuario”, en lugar de la que aparece por defecto de “Atributos de la etiqueta definidos en la tabla”. Y en el desplegable “Clases” seleccionamos la “Operación” definida como “Etiquetar todas las entidades de la misma manera”. El aspecto de la ventana cambia y será similar al de la imagen:090_got

Como ya se ha comentado, en esta modalidad son muchas las opciones, por lo que os recomendamos profundizar y probar con ayuda del manual de usuario. En nuestro caso vamos a hacer un cambio sencillo respecto al anterior etiquetado.

Pulsamos el botón de “Propiedades” y nos abrirá una nueva ventana:084_got

Lo primero que debemos definir es la expresión de etiquetado. Para ello hacemos clic sobre el botón “…” de la primera fila de la tabla de “Expresión de etiquetado”. En la ventana que nos abre indicamos que queremos etiquetar por el atributo “name”, seleccionando el campo y pulsando “Añadir campo”. Podríamos complicar la expresión de etiquetado todo lo que quisiéramos, pero en este caso utilizaremos unicamente el atributo “name” que hemos usado también en el etiquetado básico.085_got

Al pulsar “Aceptar” vemos que la expresión ya aparece en la “Expresión de etiquetado”:086_got

Ahora vamos a utilizar una opción no disponible en el etiquetado básico, el halo. El halo puede ser útil en muchos casos para mejorar la visualización de las etiquetas. Marcamos la casilla “Usar halo” y seleccionamos un color para el halo. En este momento podemos seleccionar otras características como el tipo, el color o el tamaño de fuente.087_got

Una vez definidas las características del Etiquetado pulsamos “Aceptar”. Nos cierra esta ventana y volvemos a la de “Propiedades de la capa/Etiquetados”. Ahora vamos a entrar en las opciones de “Colocación”; al pulsar el botón nos abre la siguiente ventana:091_got

Seleccionamos la opción “Eliminar etiquetas repetidas” (podéis probar con otras opciones para ver la diferencia) y aceptamos. Aplicamos el etiquetado y ya tenemos el resultado que buscábamos.092_got

Aquí dejamos este post, aunque os recomiendo que exploréis opciones muy interesantes como la que permite etiquetar de forma diferente en función de la escala de visualización. Por cierto…las opciones de etiquetado cambian en función del tipo de geometrías de la capa (puntos, líneas y polígonos).

Ya sólo quedan cuatro post para acabar este mini-curso, así que esperamos que os este gustando esta original introducción a los SIG.


Filed under: gvSIG Desktop, spanish, training Tagged: etiquetado, etiquetas, Juego de tronos, tutorial
Categories: OSGeo Planet

Prodevelop: Prodevelop at the Port of #Rotterdam for the Second Year Review of the APPS project #Research #Innovation

OSGeo Planet - Fri, 2017-02-24 09:24
Prodevelop ha participado en la Revisión del Segundo Año del proyecto APPS (ITEA). Amelia del Rey y yo mismo hemos acudido a Rotterdam (Países Bajos) para la reunión de revisión y para participar en una demostración en tiempo real llevada a cabo en una torre de control prestada por la Autoridad Portuaria de Rotterdam.

La contribución de Prodevelop consiste sobre todo en un motor de reglas provisto de una cómoda aplicación de configuración de reglas para la detección de anomalías en el puerto. También se ha desarrollado un visor 3D que muestra los movimientos en tiempo real de los buques (vía AIS), así como los objetos detectados por los sensores (cámaras/micrófonos) en un contexto de modelo 3D del puerto.

Los revisores de ITEA se mostraron satisfechos con los progresos y propusieron mejoras en la orientación comercial del proyecto. En próximas entradas de blog se detallarán las funcionalidades de los componentes aportados por Prodevelop.

Pinche sobre las imágenes para verlas a mayor tamaño. Prodevelop has attended the Second Year Review of the APPS project (ITEA). Amelia del Rey and myself have been in Rotterdam (Netherlands) for the review meeting and a real-time demonstration in a Radar post kindly offered by the Port Authority of the Port of Rotterdam.

Prodevelop's contribution consists of a Rule Engine with a user-friendly Configuration Application and a 3D visualization application, including real-time movements of ships and objects detected by sensors (cameras/microphones).

The ITEA reviewers were satisfied with the progresses and gave us some feed-back in order to optimize the business opportunities deriving from this project. In future blog posts, we will provide details about the components contributed by Prodevelop.

Click on images to see full size.


Preparing the demo at the Radar post.


Juan Lucas explains the functionalities of the components provided by Prodevelop to the ITEA reviewers.


Juan Lucas explains the functionalities of the components provided by Prodevelop to the ITEA reviewers.


Screenshots of the Rule Engine Administration Application.


An expert in the VTS currently used in the Port of Rotterdam explains how the APPS system can communicate with it.


The review meeting took place also in the premises of the Port of Rotterdam.


One of the modern bridges surrounding the Radar post where the demo took place.
Categories: OSGeo Planet

From GIS to Remote Sensing: SCP Questions of This Month: February

OSGeo Planet - Fri, 2017-02-24 09:00
This post is a collection of questions and answers about the Semi-Automatic Classification Plugin (SCP) and remote sensing which were discussed in the Facebook group and the Google+ Community this month.
These questions vary from supervised classification technique to software issues, and can be useful to the readers of this blog for solving issues about the use of SCP.

Categories: OSGeo Planet

Boundless Blog: Boundless Desktop Software vs Proprietary Solutions

OSGeo Planet - Thu, 2017-02-23 21:06

If you are a Desktop GIS user who has been on the fence about implementing an open GIS solution, now is the time. With Boundless Desktop, our flexible, hybrid architecture integrates seamlessly with proprietary stacks. And what’s more — we …

The post Boundless Desktop Software vs Proprietary Solutions appeared first on Boundless Geo.

Categories: OSGeo Planet

gvSIG Team: Learning GIS with Game of Thrones (VIII): Field calculator

OSGeo Planet - Thu, 2017-02-23 16:39

The “field calculator” is one of the most used tools by users when editing the attributes of a layer. This is because its versatility, and it saves time when editing several registers at the same time.

It allows to make different type of calculations on the table fields. This tool can be executed on every register of a table or only on the selected ones. 

We are going to see how it works with simple exercises, using our Game of Thrones data. But firstly we are going to see its interface.

e071_got

  1. Information. It shows the information about the selected “Field” or “Commands”.
  2. Field. List of fields of the Table. Double-clicking on a field it’s added to the expression to apply.
  3. Type. The list of “Commands” available is updated depending on the selected type.
  4. Commands. List of commands available depending on the selected “Type”. Double-clicking on a command it’s added to the expression.
  5. Expression. Operation to be applied on the selected field. The expression can be written directly.

After viewing the theoretical part we are going to start our practical exercise.

Firstly we are going to open the attribute table of the “Locations” layer, that will have 7 columns after the last exercises. One of the existing fields is “type”, that contains the types of location (city, castle, ruin, town, other).

e072_got

Now, for example, we want to add a new column where we will add the type of location in Spanish language. We would be able to do it manually, such as we saw at the “Editing table” post, but thanks to the “Field calculator” we can do this exercise in a faster way.

Following the steps that we learned in the “Editing table” post, we put the table in editing mode, and we add a column, with “String” type, and keeping the characters by default (50). We will call it “Tipo”. We would be able to keep the “Value by default” empty, but to save time when filling it out we are going to write “Otro” (without quotation marks). At this way all the registers will be filled out with this value. Now we only have to fill out the rest of the values.073_got

At this moment the table will be like this one:060_got

Now we are going to use the “Select by attribute” tool to select the different values of the “Type” field, and the field calculator to fill in the rows selected with the corresponding value in an automatic way.

At this point, if you don’t know how to use the “Select by attribute” tool you can review the post where we explained its working.

We are going to start selecting the rows the “type” of which is “Castle”:e073_got

Once they are selected, we press on the header of the “Tipo” field (it’s shown in dark grey colour).064_got

Then we run the “Field calculator” tool, available from the “Table/Field calculator” menu or from its corresponding button.065_got

A new window will be opened, where we can write the “Castillo” expression that we want to fill out the registers with. It’s important to point out that the text will have to be between double marks.e074_got

When we press “Accept” the cells of the “Tipo” field that are selected will be filled out:063_got

We repeat the same operation with the rest of the values of the “type” field. Firstly we will select the rows and then wit the field calculator we will fill out the data:

  • Type “City” = Tipo “Ciudad”
  • Type “Ruin” = Tipo “Ruina”
  • Type “ Town” = Tipo “Pueblo”

Once we finish our task, we finish editing and we save the changes. Our table will be like this one:070_got

The “Field calculator” is very powerful and it allows to use complex expressions. We recommend you to test it and learn all its functionalities.

See you in the next post…


Filed under: english, gvSIG Desktop, training Tagged: field calculator, Game of Thrones, Select by attribute, Table editing
Categories: OSGeo Planet

gvSIG Team: Webinar de Presentación de gvSIG Online 2.0

OSGeo Planet - Thu, 2017-02-23 10:23

Desde la aparición de gvSIG Online son muchas las organizaciones que han optado por esta opción para tener su Infraestructura de Datos Espaciales, y de este modo organizar de la forma más eficiente su información geográfica y disponer de una potente herramienta tanto para generar de forma muy sencilla visores de mapas o geoportales como para administrar la base de datos espacial de la organización. Apostando además por tecnologías libres que garanticen su independencia tecnológica (además de un considerable ahorro de costes de implantación).

En este webinar realizado en el marco de la Cátedra gvSIG de la Universidad Miguel Hernández de Elche os presentamos la nueva versión de gvSIG Online.

gvSIG Online 2.0 presenta considerables mejoras, tanto a nivel funcional como de interfaz, haciendo aún más potente y fácil de gestionar la plataforma en software libre de Infraestructura de Datos Espaciales.

Entre las novedades destacamos la integración con gvSIG Mobile (basado en Geopaparazzi) permitiendo integrar en la IDE un SIG móvil para realizar tareas de campo como inventarios, censos o gestión de incidencias. Otra novedad muy llamativa es la integración con Web World Wind, el motor 3D de la NASA y que proporciona una visualización en 3D de la IDE. Por este trabajo la Asociación gvSIG fue galardonada el pasado año con el premio “Europa Challenge” concedido por la NASA.

00_gvsig-online_inspire_lisige

Durante el webinar se muestra de forma práctica como trabaja la plataforma, como subir cartografía a nuestra base de datos espacial, como generar un nuevo geoportal, etc.

Una vez visto el webinar, si en vuestra organización tenéis la necesidad de disponer de una Infraestructura de Datos Espaciales…no dudéis en poneros en contacto con nosotros: info@gvsig.com

Y ahora sí, os enlazamos con toda la información de este webinar y su vídeo de presentación:

http://gvsig.edu.umh.es/?p=752


Filed under: geoportal, gvSIG Association, gvSIG Mobile, gvSIG Online, IDE, software libre, spanish Tagged: Infraestructuras de Datos Espaciales, INSPIRE, interoperabilidad, LISIGE, OGC, smart cities, smart city
Categories: OSGeo Planet

gvSIG Team: Aprendiendo SIG con Juego de Tronos (X): Leyendas

OSGeo Planet - Thu, 2017-02-23 09:46

Hoy vamos a aprender a cambiar la simbología de una capa, revisando los distintos tipos de leyendas que hay disponibles en gvSIG Desktop.

La simbología es una de las propiedades más importantes de una capa. gvSIG incluye una gran variedad de opciones para representar capas con símbolos, gráficos y colores. Con la excepción del símbolo único, en el resto de leyendas los símbolos se asignan a cada elemento según sus valores de atributo y las propiedades del tipo de leyenda seleccionada.

Por defecto, cuando se añade una capa a una Vista se representa con un símbolo único de color aleatorio, es decir, todos los elementos de la capa se representan con el mismo símbolo. Para modificar la simbología de una capa debemos acceder a su ventana de “Propiedades” y seleccionar la pestaña “Simbología”. Vamos a abrir nuestro proyecto de “Juego de Tronos” y comencemos a explorar este apartado de gvSIG Desktop.

Si queremos cambiar un símbolo la forma más sencilla es hacer doble clic sobre él en el TOC (Tabla de contenidos con el listado de capas). Se nos abrirá una ventana para seleccionar el nuevo símbolo. Por ejemplo vamos a hacer doble clic sobre el símbolo de la capa “Rivers”.074_got

En la ventana que aparece podemos cambiar el color, el ancho (grosor) de la línea, pulsar sobre una de las bibliotecas de símbolos instaladas (por defecto está “gvSIG Basic”, aunque mediante el administrador de complementos podemos instalar muchas otras). En este caso vamos a ponerle un ancho de 3 y seleccionar un azul más oscuro. Pulsamos “Aceptar” para aplicar los cambios.075_got

A continuación vamos a ver los tipos de leyendas que hay disponibles y haremos una por los distintos tipos de localizaciones, atributo con el que ya hemos trabajado en post anteriores. La posibilidades respecto a la simbología son muchas, por lo que más allá de este post introductorio os puede ser útil revisar documentación adicional.

Lo primero que tenemos que hacer es abrir la ventana de “Propiedades” de la capa. Con la capa activa encontramos esta opción en el menú “Capa/Propiedades” o directamente con el botón derecho sobre la capa se nos abrirá un menú que incluye el acceso a las “Propiedades”.076_got

Vamos a la pestaña “Simbología” y se nos muestra una ventana con la simbología actualmente aplicada. A la izquierda podemos ver todos los tipos posibles de leyendas. Atención: según el tipo de capa (puntos, líneas o polígonos) puede haber unas u otras leyendas disponibles.077_got

En este caso vamos a seleccionar una leyenda de “Categorías/Valores únicos”. Este tipo de leyenda se utiliza para asignar un símbolo a cada valor único de un campo especificado de la tabla de atributos de la capa. Cada elemento se dibuja según un valor de atributo que identifica la categoría. En nuestro caso seleccionamos el campo de clasificación “Type”; pulsamos el botón de “Añadir todos” y nos mostrará la leyenda generada por defecto:078_got

Las Etiquetas (parte derecha) pueden ser modificadas. Probad a cambiar el texto.

Ahora, haciendo doble clic en cada uno de los símbolos se nos abrirá la ventana en la que pulsando “Seleccionar símbolo” podemos modificarlos o seleccionar nuevos símbolos de nuestras bibliotecas de símbolos. Una vez seleccionados pulsamos “Aplicar” y veremos el resultado reflejado en nuestra “Vista”.079_got

La mejor forma de que aprendáis los distintos tipos de leyendas es practicando…os dejo en ello. También os recomiendo que instaléis y probéis las distintas bibliotecas de símbolos que hay disponibles para gvSIG (¡¡cientos de símbolos de todo tipo!!)

Hasta el próximo post…


Filed under: gvSIG Desktop, spanish, training Tagged: Juego de tronos, leyendas, simbología, tutorial
Categories: OSGeo Planet

GeoServer Team: GeoServer 2.11-beta released

OSGeo Planet - Thu, 2017-02-23 03:32

We are happy to announce the release of GeoServer 2.11-beta. Downloads are available (zip, war, dmg and exe) along with docs and extensions.

This is a beta release of GeoServer made in conjunction with GeoTools 16-beta.

We want to encourage people to test the release thoughly and report back any issue found. With no further delay, let’s see what’s new, that is, what is there to test!

YSLD module graduated to supported land

The YSLD styling language has been graduated to supported land, becoming an official extension. YSLD is a YAML based language which closely matches the stucture of SLD, and the internal data model that GeoServer’s renderer uses. Here is an example from the YSLD Cook Book:

title: 'YSLD Cook Book: Simple Line' feature-styles: - name: name rules: - symbolizers: - line: stroke-color: '#000000' stroke-width: 3

Compared to SLD it sports a similar structure, but in a more compact and readable syntax. Here the same example can be expressed in a more compact format:

line: stroke-color: '#000000' stroke-width: 3

Similarly to SLD and CSS, the user guide contains both a reference and a cookbook to get you started. There is also a styling workshop with both CSS and YSLD examples (including an important example for converting your SLD styles to YSLD).

Vector tiles graduate to extension

The vector tiles community module graduated to extension. The module allows to generate vector tiles out of WMS and WMTS requests, using SLD to filter the contents of the tile at the requested scale. Supported vector tiles formats are MVT (MapBox Vector Tile), GeoJSON vector tiles, and TopoJSON vector tiles.

This allow for much more compact data transfers, reduced tile caches thanks to overzooming support, and allows the client to control styling. Here is an example of the client rendering a world map as a vector tile, and highlighting a specific area by attribute:

vectortileoutputafrica

 

Hop on the documentation to get more information about this extension, along with a couple of presentations highlighting vector tile usage.

Underlying labels in SLD

A new vendor option allow to underline labels in SLD (and CSS). Just add:

<VendorOption name="underlineText">true</VendorOption>

Selezione_197

Opaque Container Layer Group Mode

A new layer group mode has been added, called “Opaque Container”. It’s similar to “single” in that you cannot see the layers contained in it, but it also prevents its layers from showing up at the root level of the capabilities document. This new mode is targeted to building “base maps” that the client is not allowed to take apart into their components.

You can read more about layer group modes in the GeoServer user guide.

Layer Group Security

The build-in data security can now secure layer groups too, for both global and workspace specific groups. “Tree” mode groups (named tree, container tree, opaque container) will extend the security rules applied to them to the layers contained.

Selezione_196

Improved loading and OGC request times for large installations

GeoServer has historically had issues with long startup times on installation having several thousands layers. A group of recent improvements significantly sped up these times making it possible to handle tends of thousands of layers with no particular headaches.

For reference, some tests were run on a Core i7 860, 16GB of memory, 2TB hybrid drive (spinning disk plus SSD cache), on two different data directories:

  • “Many states”: 1 workspace, 1 store, 10k layers, 10k cached layers
  • “Large”: 1001 workspaces, 11000 stores (a mix of shapefiles, postgis, directory of shapefile, single tiff, arcgrid, mosaics), 42000 layers and 42000 associated tile layers

Startup times have been measured in both “cold” and “warm” mode, “cold” means the operating system file system cache contains none of the configuration files and the startup has to actually read everything from the disk, “warm” means the data dir is fully cached in memory instead:

  • Many states, cold startup: 30s
  • Many states, warm startup: 21s
  • Large, cold startup: 107s
  • Large, warm startup: 45s

As you can see, worst case is loading in excess of 40 thousands layers in less than a minute and a half!

For reference, “Large” startup times with JDBCConfig are 290s for cold startup, and 120s for warm startup. This is mostly due to cached layers loading, if your configuration has none the startup time will be of around 20-30 seconds instead (no matter how many layers are configured, because JDBCConfig loads layers on a as-needed basis at runtime… for a cost, see below).

It is also interesting to compare the times needed to run a GetMap against one of the “topp:states” in the “many states” data directory.

Version Throughput req/sec Avg resp. time ms 2.10.1 169 47 2.10.1 + JDCBConfig 68 117 2.11-beta 233 34

More information can be found in the initial proposal, and on the latest mailing list thread about parallel catalog loading.

Improved lookup of EPSG codes

Ever been annoyed by some shapefile with a .prj declaration that GeoServer does not understand? If so, try this new release, we pulled some extra heuristics and smarts to figure out the equivalent EPSG code of thousands more cases. This will hopefully reduce guesswork when configuring new vector layers, not to mention significantly speeding up importing large directories of shapefiles in the “Importer” extension.

Selezione_198

Other assorted improvements

There are many improvements to look at in the release notes, cherry picking a few here:

  • New REST call allowing a users to modify his/her password (no UI for it yet, sorry)
  • Support JSON encoded exceptions for WFS 2.0 too (was already available for 1.0 and 1.1)
  • Drastically reduced output size for WMS PDF output format, when using a graphic fill based on repeated marks or SVG symbols
  • Improved scalability when using “advanced projection handling” thanks to a new implementation of SoftValueHashMap (used as a cache by the referencing subsystem)
  • Better transparency handling of NODATA and ROI (Region Of Interest)
  • Fixes in computation of global disk quota (if you find you have a negative number, upgrade, wipe out the quota database, and restart)
Test, test, test!

Now that you know about all the goodies, please go, download and test your favorite ones. Let us know how it went!

About GeoServer 2.11

GeoServer 2.11 is scheduled for March 2017 release. This puts GeoServer back on our six month “time boxed” release schedule.

Categories: OSGeo Planet

GeoServer Team: GeoServer 2.10.2 released

OSGeo Planet - Wed, 2017-02-22 21:08

The GeoServer team is pleased to announce the release of GeoServer 2.10.2. Download bundles are provided (binwardmg and exe) along with documentation and extensions.

GeoServer 2.10.2 is the latest stable release of GeoServer and is recommended for production deployment. This release is made in conjunction with GeoTools 16.2 and GeoWebCache 1.10.2. Thanks to all contributors.

New Features and Improvements:

  • Promote YSLD module to extension
  • Add jetty-servlets.jar file to default jetty to help users set up CORS
  • Handle non error http codes (from HttpCodeException) as normal response
  • Reducing output size of PDF with graphic fills by using tiling patterns

Bug Fixes:

  • Disk quota usage page no longer shows negative bytes free (if you already have negative values in your quota DB, follow this instructions)
  • New style editor can now detect and fix old GeoServer CSS styles (which were marked as SLD)
  • Fixes to json output for layergroup
  • Can not display table based pages in Turkish locale
  • WMS 1.3.0 GetCapabilities response doesn’t validate against the schema when using LayerGroups
  • Editing style and moving it into workspace loses the edits
  • Style Edit Page: Apply then Submit causes WicketRuntimeException
  • Force transformation of ROI and NoData to transparent/bg color in direct raster rendering path

And more! For more information on this release check the release notes (2.10.22.10.12.10.0 | 2.10-RC1 | 2.10-beta | 2.10-M0 )

About GeoServer 2.10

Articles, docs, blog posts and presentations:

Community modules

  • A new community module to backup/restore and restore GeoServer configuration
  • A resource browser is available allowing remote management of styles, icons and fonts (needs building from sources).
  • A new WMTS multidimensional domain discovery community module for discovering patches of data in scattered data sets
Categories: OSGeo Planet

Nyall Dawson: New map coloring algorithms in QGIS 3.0

OSGeo Planet - Wed, 2017-02-22 06:17

It’s been a long time since I last blogged here. Let’s just blame that on the amount of changes going into QGIS 3.0 and move on…

One new feature which landed in QGIS 3.0 today is a processing algorithm for automatic coloring of a map in such a way that adjoining polygons are all assigned different color indexes. Astute readers may be aware that this was possible in earlier versions of QGIS through the use of either the (QGIS 1.x only!) Topocolor plugin, or the Coloring a map plugin (2.x).

What’s interesting about this new processing algorithm is that it introduces several refinements for cartographically optimising the coloring. The earlier plugins both operated by pure “graph” coloring techniques. What this means is that first a graph consisting of each set of adjoining features is generated. Then, based purely on this abstract graph, the coloring algorithms are applied to optimise the solution so that connected graph nodes are assigned different colors, whilst keeping the total number of colors required minimised.

The new QGIS algorithm works in a different way. Whilst the first step is still calculating the graph of adjoining features (now super-fast due to use of spatial indexes and prepared geometry intersection tests!), the colors for the graph are assigned while considering the spatial arrangement of all features. It’s gone from a purely abstract mathematical solution to a context-sensitive cartographic solution.

The “Topological coloring” processing algorithm

Let’s explore the differences. First up, the algorithm has an option for the “minimum distance between features”. It’s often the case that features aren’t really touching, but are instead just very close to each other. Even though they aren’t touching, we still don’t want these features to be assigned the same color. This option allows you to control the minimum distance which two features can be to each other before they can be assigned the same color.

The biggest change comes in the “balancing” techniques available in the new algorithm. By default, the algorithm now tries to assign colors in such a way that the total number of features assigned each color is equalised. This avoids having a color which is only assigned to a couple of features in a large dataset, resulting in an odd looking map coloration.

Balancing color assignment by count – notice how each class has a (almost!) equal count

Another available balancing technique is to balance the color assignment by total area. This technique assigns colors so that the total area of the features assigned to each color is balanced. This mode can be useful to help avoid large features resulting in one of the colors appearing more dominant on a colored map.

Balancing assignment by area – note how only one large feature is assigned the red color

The final technique, and my personal preference, is to balance colors by distance between colors. This mode will assign colors in order to maximize the distance between features of the same color. Maximising the distance helps to create a more uniform distribution of colors across a map, and avoids certain colors clustering in a particular area of the map. It’s my preference as it creates a really nice balanced map – at a glance the colors look “randomly” assigned with no discernible pattern to the arrangement.

Balancing colors by distance

As these examples show, considering the geographic arrangement of features while coloring allows us to optimise the assigned colors for cartographic output.

The other nice thing about having this feature implemented as a processing algorithm is that unlike standalone plugins, processing algorithms can be incorporated as just one step of a larger model (and also reused by other plugins!).

QGIS 3.0 has tons of great new features, speed boosts and stability bumps. This is just a tiny taste of the handy new features which will be available when 3.0 is released!

Categories: OSGeo Planet

GeoSolutions: First release of 2017 for MapStore 2 plus WFS Support

OSGeo Planet - Tue, 2017-02-21 16:37

blog

Dear Readers,

we are pleased to announce a new release of MapStore 2, our flagship Open Source webgis product, which we have called 2017.01.00. The full list of changes for this release can be found here, but let us now concentrate on the latest most interesting additions.

WFS Query on vector layers

We have introduced the option to query vector layers via the OGC WFS protocol. This functionality can be accessed from the Layer TOC (Table Of Content) once a layer that which advertise the OGC WFS procotols is added from the OGC CSW catalog widget.

[caption id="attachment_3281" align="alignnone" width="600"]Adding a layer from the Catalog Adding a layer from the Catalog[/caption]

If a layer in the TOC supports querying via OGC WFS protocol a magnifier icon under the “Display legend and tools” will appear as shown below.

[caption id="attachment_3283" align="alignnone" width="600"]Magnifier Icon for WFS Query Magnifier Icon for WFS Query[/caption]

A click on the icon will open a form, where you can choose to filter by attribute, spatially or both. Filters can be setup to match any, all or none of the specified conditions and complex queries with subfilters can be created.

[caption id="attachment_3284" align="alignnone" width="600"]WFS Query Builder WFS Query Builder[/caption] If the query is successful the first page of the results will be downloaded and put in a grid widget; such widget supports usual features like zoom to row, column selection and export as CSV (more formats will be added in the future). [caption id="attachment_3296" align="alignnone" width="600"]Results of a WFS query Results of a WFS query[/caption] [caption id="attachment_3285" align="alignnone" width="600"]image01 Exporting WFS results as CSV[/caption]

Standalone binary package

We have created a downloadable standalone package for you to test MapStore2 on your own machine. It is Windows and Linux compatible and it contains all you need to run MapStore 2, no installation required. All you have to do is:

  • unzip to a location on your computer
  • run the .bat command if on Windows or the

Please refer to the online documentation for further informations.

Developer notes

NPM 2 support has been dropped, MapStore2 now support:
  • NodeJS >= 4.6.1
  • NPM >= 3.x

What we are working on

We have a number of functionalities in our plans (editing, advanced templating, OAUTH 2.0, etc...); for the next release we are focusing on the following ones:

  • Balloon Tutorial, for a more modern help system. More information can be found here
  • Improved Developers Documentation
  • Https support so that we use geolocation on Chrome as well
  • Side effect management with redux-observable (for developers)
  • Advanced Theming, which should allow us to easily change themes using an high level language like Less

If you are interested in learning about how we can help you achieving your goals with open source products like GeoServerMapstore, GeoNode and GeoNetwork through our Enterprise Support Services and GeoServer Deployment Warranty offerings, feel free to contact us!

The GeoSolutions team,
Categories: OSGeo Planet

Jackie Ng: React-ing to the need for a modern MapGuide viewer (Part 13): My first* pull request

OSGeo Planet - Tue, 2017-02-21 12:05
Previously, I switched our testing stack for mapguide-react-layout over to Jest, which had some positive flow-on effects, like being able to finally upgrade to Webpack 2 and being able to try out the new OpenLayers npm package, resulting in a nice reduction in production bundle size due to only pulling the bits of OpenLayers that we are actually using. Jest also has code coverage built in, and by piping its coverage output to node-coveralls, TravisCI will automatically upload said coverage reports to coveralls.io resulting in yet another shiny badge to show on our project page.

These badges are becoming like Pokemon: I just want to catch 'em all.

So the next badge for me to collect was greenkeeper. Greenkeeper is a free service that monitors your GitHub repository and keeps your node package dependencies up to date. So last night I enabled greenkeeper integration for mapguide-react-layout.

Today I got a GitHub notification for a new pull request on mapguide-react-layout. Great! I love pull requests. Except, this pull request is not from a human, it's from the greenkeeper bot (*my first non-human pull request). Looking at the pull request in detail was most amusing.


A bot (coveralls) commenting on a pull request opened by another bot (greenkeeper)!

I wonder how many pull requests out there are nothing but full of bot-on-bot comments? How deep does this bot rabbit hole go?

When bots can start writing their own code, I think that's when we can pack it in as the human race and submit to our bot overlords.
Categories: OSGeo Planet

Jackie Ng: React-ing to the need for a modern MapGuide viewer (Part 12): A positive cascading effect

OSGeo Planet - Tue, 2017-02-21 10:55
The move to Jest for our testing/coverage needs has opened up some opportunities that were previously roadblocks.

Mainly, we can finally upgrade to Webpack 2. Previously, we were roadblocked because the karma runner just wouldn't work with webpack 2 configurations. Also unlike earlier attempts with Webpack 2 beta releases, this upgrade to Webpack 2 was less painful and more importantly, the bundle size remained the same.

Also OpenLayers recently released 4.0.0, which also includes experimental ES2015 modules, the ES2015 module facilitates a "pay for only what you use" model which is great for us as we don't necessarily want to use the kitchen sink, only the parts of the library we actually use. It turns out based on their webpack example that it requires Webpack 2 to work as Webpack 1 will include said modules verbatim causing most browsers to blow up on the various ES2015 language constructs (like imports).

Well, how convenient that we just upgraded to Webpack 2! Switching over to the new ol package and its ES2015 modules, and making the required fixes in our codebase to use this new package, and checking the final production bundle size shows promise.



That is 150kb smaller than our current production bundle! Once other libraries we're using adopt ES2015 modules, we can expect even more weight loss.
Categories: OSGeo Planet
Syndicate content