Jornadas SIG Libre Girona VII

March 8, 2013 under SIG, Software Libre

The main theme of this Jornadas SIG Libre de Girona has been cloud services and open data. Since the apotheosic beginning, with an outstanding speech of Sergi Morales (ExportosenTI), the rest of the conference has been running around the same theme. Some of them maybe more critical, like the one of F. Puga from CartoLab when he asked us not to forget undevelopment zones where not everyone has internet access and millions  of people, which doesn’t have our tech level, also have GIS needs.

This is what cloud means on undevelopment countries. #siglibre7 #firstworldproblems

Anotheer interesting theme of this conference came by the hand of Malcolm Bain, who told  us about the legal limits of data cloud services, and what can we expect and demand and to what extent, from the cloud service provider, we have to offer a minimum service level. It is undoubtely surprising to learn that some of the contracts we accept on very well known services (like web mail or hosting) are, in fact, ilegal.

The battle of free software is ended, now we have to battle on freedom and privacy of data.

It has also been delightful to see the debate between some speakers, like when Javier de la Torre (Cartodbtalked against OGC or the government repositories of data. Undoubtfully a theme which, although I don’t fully agree, needs some discussion and improvement. Should government repositories of data become more useer friendly or should they remain just as repository of data?

On thursday evening, Geocat had a double session between speeches very focused on metadata and the importance of governmment spatial portals. We first focused mostly on GeoNetwork and Bridge, talking also about our future GeoCat Live. and, just before ending  the day, a workshop of 30 minutes to present GeoNetwork, which has followed by the first national meeting of geoinquietos.

It is hard to summarize in only one article all the huge dimension reached on this conference. A lot of optimism, willing to keep working and, most of all, the certainty that we are on the right path, helping free software and free data, focusing on the social part of our work. On Friday, almost to finish, Javier Sánchez oriened the end of the conference to this theme, talking about social companies, who have not only an economic result but also a social one.

In the end the Jornadas SIG Libre Girona are undoubtely the GIS Event (capital letters) to which every spanish speaker should take into account to be in contact with latest GIS news.

Original article here.

GeoNetwork: domesticando una jauría de metagatos

December 14, 2012 under SIG

comments: 0 » tags:

¿Qué es GeoNetwork?

October 28, 2012 under Java, SIG, Tecnologías

GeoNetwork is a web application that allows you to maintain a geographic referenced metadata catalogue. This means, a search portal that allows you to view metadata combined with maps. It strictly follows different standards for metadata, from Inspire to OGC. This has allowed GeoNetwork to expand to a lot of organizations, like the swiss geoportal or the brasilian one, not forgetting the New zealander.

It is deployed inside a java application container (like tomcat or jetty), working over the Jeeves framework. Jeeves is based on XSTL transformations that allows a simple quick development (and powerfull) of interfaces, for humans or machines (XML). This makes metadata from GeoNetwork to be easily accesible by different platforms.

comments: 2 » tags: , , , , , ,

De Emergya a GeoCat

October 7, 2012 under Libertad

These past few weeks have been chaotic and as an exercise to seat and to drop anchor, I would like to make a brief summary of my job change.

My main motivation to stop working on Emergya, despite the huge human and technical quality has been:

  • The current situation in Spain doesn’t allow us to perform interesting projects, forcing companies to focus only on survival, with all the friction and discomfort that this generates.
  • The challenge . And this, I think, is the main motivation. The enormous challenge of context switching to a new company, with a way of working so similar and yet so different. I need to see the world, learn, drink from other sources. Five years in Emergya have been wonderful, but I began to feel that it was becoming too small for me. Big fish on small pond or small fish on the ocean?
  • GeoCat(s) . Can somebody refuse the possibility of becoming a geo-cat? Can there be a step beyond this? Can someboy not want to work with metacats(metadata, impossible to translate)?

Of course, it has not been an easy decision. To me, Emergya is, and always will be, the company that received me openly and helped me take my first steps working, strengthening my belief that open source is the right path. Like it or not, Emergya is part of me and the title of “ex-emergyana” cannot be taken away from me. 

But it was a step that I had to take. So I jumped into the pool, and after a week of making contact, I have no doubt that it was the right decision. GeoCat has an impressive welcoming team and its development roadmap is really fascinating. So I guess from now on I will talk less about route calculation and more about metadata and interoperability (which doesn’t mean I will abandon routing).

Next stop: GeoNetwork.

comments: 0 » tags: ,

GNU Solidario

June 10, 2012 under Software Libre

Sometimes I find technologies and free software that pleasantly surprise me, not only because of its use, but because the impact it can cause. This is the case of GNU Solidario, or GNU Health, recently awarded by the FSF for their solidary contribution. It’s basically a free platform for managing medical data such as patient records, test results, diagnoses, … Although I am not an expert, we can check on the same website that the platform is well advanced and that they are already working with the United Nations to use this free software wherever it is essential.

However, most surprising of all is that this project was born inside a mind of a young computer scientist from Canarias, Luis Falcon. Often, you don’t have to look far away  to find talent that can change the world.

comments: 0 » tags: ,

Anotaciones en Python

May 15, 2012 under Python

After seeing how do annotations work on Java, we will see how do they work on Python. Because Python is a less strict language, annotations can be use on a more direct way.

For example, if we want to log every time we execute certain functions, we just have to define an interface which prints the log we want and make our functions implement this interface:

from functools import wraps
def log(func):
 @wraps(func)
 def log_func(*args, **kwargs):
  print "log"
  return func(*args, **kwargs)
 return log_func
@log
def func1():
 print "Ejecutando funcion uno"
@log
def func2():
 print "Ejecutando funcion uno"
func1()
func2()

The code above returns this result:

log
Ejecutando función uno
log
Ejecutando función dos

We can also use annotations to more useful things, like telling Python that certain function will be executed on a different thread:

from multiprocessing import process
def run_async(func):
 @wraps(func)
 def async_func(*args, **kwargs):
 func_hl = Process(target = func, args = args, kwargs = kwargs)
 func_hl.start()
 return func_hl
 return async_func
@run_async
 def process():
 print "Ejecutado en asíncrono"
comments: 0 » tags: ,

Anotaciones en Java

April 15, 2012 under Java

The annotations on the code or decorators have become very common. They allow the programmer to add additional useful information about how to improve the code or change how to compile / run a particular class. They are a Java extension to allow aspect-oriented programming.

There are three types of annotations, according to the moment when they are used:

Information for the Compiler

These annotations allow the compiler to indicate whether or not to ignore errors and warnings or what to do with them. If you’ve worked with a Java IDE (like eclipse) probably you would have used this type of annotations, for example using @Override on a function to indicate that you are overwriting a method defined on a parent class. This annotation is completely optional, but allows both the compiler and the developer to check that they are indeed overwriting existing hierarchical functionality.

For example:

public class Parent {     
    public void do(){
        System.out.println("Parent");
     }
}

public class Son extends Parent{     
    @Override
    public void do(){
        System.out.println("Son");
     }
}
Compiler-time and deployment-time processing

These annotations allow the compiler to add extra information about how to generate the code. It can serve to modify classes (adding or modifying functionality from those described in the source code), create new classes (based on a file descriptor), etc …

These annotations will only be visible at this point, they are not written on the .class files and therefore they cannot be available at runtime.

Runtime Annotations

This annotations can be used on runtime and they work on a very similar way as an interface.

Let’s see an example on how to create a Runtime Annotation and how can we use it. The annotation named MyAnnotation can be applied to elements oftype field:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
     public @interface MyAnnotation {
}

Now we can create an annotated class by this annotation:

public class myObject
 {
 @MyAnnotation
 public String field;
 }

This way, we can check by reflection if an object has an annotated field on any part of the code:

Class<?> res = objeto.getClass();
for (Field f : res.getFields()) {
     if (f.isAnnotationPresent(MyAnnotation.class)) {
          System.out.println("OK");
      }
}

More Information:

comments: 1 » tags: ,

Apuntes del taller de GeoServer

March 2, 2012 under SIG

These are the notes I took on the GeoServer workshop at the last gvSIG Conference.
More information.

It is important to change the settings of the geoserver_data_dir in the web.xml file to keep the data each time you restart the application container (like Tomcat). It is also good to check out the other settings as it contains interesting facts such as the type of projections to be used or the size of the cache. There are configurable data on the fly and data not configurable on the fly.

Let’s try adding some data sources to generate the layers. To add a shapefile, you have to copy the file in the same physical server machine. To include the shapefile in GeoServer, look for the option of adding a new shapefile datastore type. If you use the location “file: data /…” you use a relative uri to geoserver. You can also search using the “Browse” and use absolute paths.

Warning: Do not you give permission to any user on the configuration interface because they can see all the physical hard disk in this type of dialog.

It is best to use memory mapped buffers (unless you use Windows) if you have enough RAM, then you will avoid continuous access to physical disk. Also, it is best to reproject from native to declared projection. If the shapefile is very big, calculate the bounding box take some time. This does not happen in real databases where spatial indexes.

GeoServer allows you to insert watermarks in your data (for example to use OpenStreetMap).

When you use database connections, you should check the validate connection option, because you never know when the connection is going to crash.

GeoWebCache allows, on the latest version of GeoServer, to set up easily which layers will be cached.

You can use data which varies through time, for example for storms and hurricanes. On the database table, you will have a column for time. You can also use elevation data, but then you have to use it with Google Earth. The interesting thing is that, once you have the data, some hipothetical free visor can be used to support it…

comments: 0 » tags: , , ,

Apuntes del taller GvSIG 2.0

February 8, 2012 under Java, SIG

This are the notes that I took over gvSIG 2.0 on the latests Jornadas GvSIG.

Pre-requisites:

  • Java
  • Eclipse
  • Ant (should)
  • Maven (should)
  • gvSIG (this is recursive :))

The main advantage of gvSIG 2.0 is that you can create a new plugin without knowing how does gvSIG work or having to compile it. We already have a gvSIG installation that deploys the binaries to the workspace. But we don’t have to change the source code of gvSIG, unless something doesn’t work (bugs) or we have to add some new functionality to the core. Better if you don’t touch it,ask the gvSIG developers and they will take care.

  Click here to read more.. »
comments: 1 » tags: , , , ,

Guía para compilar gvSIG 2.0

January 8, 2012 under SIG

I am proud to share with you the steps to compile gvSIG 2.0, which I discovered thanks to some fellows of gvSIG, whom I met thanks to the latests Jornadas GvSIG.

Although you can find a full guide on the official documentation, this simple steps will let you customize and compile your own gvSIG2.0 version withouth much trouble.

Click here to read more.. »

comments: 1 » tags: , , , ,