Geoserver en entorno de producción (III): Configurando PostgreSQL y PostGIS

Después de las dos partes iniciales (I y II) sobre como estoy instalando un servidor Geoserver, dentro de mi organización con miras a que funcione en producción, hoy nos centramos en una de las optimizaciones más mas importantes, y que es la utilización de una base de datos espacial.

Antes de nada, una nota: Existen configuraciones mucho más seguras que la que yo os describo, con usuarios con permisos muy limitados, usuarios de sistema, etc… pero este documento sólo trata de mostrar una configuración rápida de la que partir, y posteriormente ir afinando. No quiero críticas a ese respecto 😛

Este tipo de base de datos, espaciales, nos permite almacenar dentro de su contenido puntos, líneas y polígonos, así como funciones que nos permitan realizar consultas espaciales, es decir, almacenar cartografía dentro de la base y poder hacerle consultas preguntando por coordenadas, pero sólo nos permitirá almacenar datos vectoriales. Con esto, obtendremos todas las mejoras que tiene una base de datos en cuanto a velocidad, pero también ciertas complicaciones “extra”, como son su configuración correcta en nuestra arquitectura. Además hay otro problema: las bases de datos más utilizadas no traen de “serie” esta funcionalidad y se tendrá que que instalar como un añadido o plugins.

Dentro del software libre, cabe destacar la unión de la base de datos PostgreSQL y PostGIS (el cual es su extensión para obtener las funciones espaciales). Pues manos a la obra:

  1. Instalamos PostgreSQL+PostGIS, pero usando cierto “truco” para no tener problemas de versiones. En mi caso, estoy usando Ubuntu 9.10, el cual tiene un paquete para ambas partes, pero por desgracia, PostGIS solo se instala en PostgreSQL 8.3, mientras que el paquete PostgreSQL es el 8.4. Entonces, instalamos PostGIS, y le permitimos que instale correctamente todas las dependencias (es recomendable usar aptitude en vez de apt)
    linux@svrmapas:~$ sudo aptitude search postgis
    p   libpostgis-java                                                                  - geographic objects support for PostgreSQL -- JDBC support
    c   postgis                                                                          - geographic objects support for PostgreSQL -- common files
    p   postgresql-8.3-postgis                                                           - geographic objects support for PostgreSQL 8.3
    linux@svrmapas:~$ sudo aptitude install postgresql-8.3-postgis
    Leyendo lista de paquetes... Hecho
    Creando árbol de dependencias
    Leyendo la información de estado... Hecho
    Leyendo la información de estado extendido
    Inicializando el estado de los paquetes... Hecho
    Se instalarán los siguiente paquetes NUEVOS:
      libgeos-3.1.0{a} libgeos-c1{a} libproj0{a} postgis{a} postgresql-8.3{a} postgresql-8.3-postgis postgresql-client-8.3{a} postgresql-client-common{a} postgresql-common{a}
      proj-data{a}
    0 paquetes actualizados, 10 nuevos instalados, 0 para eliminar y 0 sin actualizar.
    Necesito descargar 11,2MB/11,4MB de archivos. Después de desempaquetar se usarán 31,2MB.
    ¿Quiere continuar? [Y/n/?]
    

    Como puedes ver, fuerza a instalar la PostgreSQL 8.3, tal y como queremos.

  2. Configurar el acceso remoto al motor de la base de datos, y no nos queda mas que cacharrear en los ficheros de configuración para darnos acceso a nuestro equipo para usarlo remotamente. Este acceso remoto, puede aprovecharse con programas como “pgAdmin” que nos permite manejar la base de datos desde tu ordenador, aunque su uso escapa del tema principal de este tutorial.
    En el fichero “/etc/postgresql/8.3/main/postgresql.conf” (ojo, mira que tengo puesta mi versión de la base, en tu caso saldrá el de la tuya) edita lo siguiente:

    # Te encontrarás esto
    #listen_addresses = 'localhost'
    # Pondrás esto:
    # Acceso por todas las ips configurados
    listen_addresses = '*'
    # O por una en particular... usa una de las dos
    listen_addresses = '192.160.0.1'
    

    Tambien cambiamos la siguiente línea:

    # Esto
    #password_encryption = on
    # por esto
    password_encryption = on
    

    Ahora en el fichero “/etc/postgresql/8.2/main/pg_hba.conf” hacemos un par de cambios,  para poder acceder vía usuario/password remotamente. Sólo añadiendo esto al final:

    # IPv4 conexiones dentro de su misma red
    host    all         all         192.168.1.0/24      md5
    

    Es muy interesante estudiar un poco este tema, ya que se pueden configurar varios métodos de acceso dependiendo de la ip que se conecte al servidor, como por ejemplo, una ip que no tenga usuario ni password, o solo usuario, etc… Este tema lo puede leer en mayor profundidad en este link.

    Ya está, y tras esto, recargamos el servicio:

    sudo /etc/init.d/postgresql-8.3 reload
    

    Si todo va bien, podrás acceder desde tu ordenador tranquilamente sin tener que estar delante del ordenador.

  3. En este punto, tendrías que decirme:

    ¡¡¡Esto no funciona!!!, ya que pgAdmin me pide usuario y password
    .

    Bueno, es un pequeño detalle :). Por defecto el usuario es “postgres”, el cual también ha sido creado como usuario local de la máquina linux (una buena idea, un usuario sólo para las tareas administrativas), pero ahora vamos a fijar su password dentro de la base de datos:

    # Ejecutamos el shell de psql como el usuario "postgres"
    sudo -u postgres psql postgres
    # Dentro del shell de psql
    \password postgres
    # Tecleamos el nuevo password
    

    Con esto, acabamos de fijar el usuario y password que vamos a usar remotamente.

  4. Instalación del “Admin Pack”. Esto no es más que funciones para administrar la base remotamente, y que se pueden instalar de dos manera. Antes de nada instalar lo siguiente:
    sudo aptitude install postgresql-contrib-8.3
    

    De manera local, se tiene que hacer con un usuario que no requiera de password, en este caso primero cambio al usuario “postgres” que nos permitirá realizarlo sin password en la configuración por defecto de la base de datos:

    sudo su postgres
    postgres@svrmapas:/home$ psql -U postgres -d postgres < /usr/share/postgresql/8.3/contrib/adminpack.sql
    

    De manera remota, es muy sencillo, te bajas las librerías que necesitas desde el código fuente de PostgreSQL, en tu ordenador claro, y las lanzas desde pgAdmin. Y todo funcionará tal y como lo hace en local.

En siguientes “entregas” comentaremos como enlaza todo esto con Geoserver, y como almacenar tus capas vectoriales dentro de esta base de datos… pero todo más adelante y con paciencia 🙂

Y como siempre, os dejo la lista de referencias que he consultado para realizar este pequeño “tutorial”.

Registrar el nombre de un servidor en el DNS de Windows, mediante DHCP

Un problema clásico, cuando tenemos una nueva máquina linux “out-the-box” (recién instalada), es que cuando nuestra red funciona mediante Active Directory en Windows y con asignación de ips mediante DHCP, no podemos resolver su nombre, es decir, si hacemos ping al nombre de la máquina, esta no responde y necesitamos conocer su ip, lo que en una red con 12 o 13 servidores es un coñazo.

El problema suele residir, en que el cliente DHCP de linux (en mi caso uso Ubuntu) no se registra dentro del DNS correctamente, al recibir la cesión de la ip. Hay muchas preguntas en Internet sobre este tema, peticiones para que se añada esta opción directamente en la configuración por defecto. Y aunque por ahora no es así, no es difícil arreglarlo.

Tenemos que editar del fichero “/etc/dhcp3/dhclient.conf” y añadir las siguientes líneas a este fichero.

send fqdn.fqdn "nombre.dominio";
send fqdn.encoded off;
send fqdn.server-update on;

Como puedes ver, estamos mandando el nombre FQDN, para que el servidor DHCP sea capaz de añadirlo en la base del DNS para poder resolverlo correctamente. Ahora sólo nos queda volver a refrescar nuestra ip mediante el comando:

sudo dhclient3 eth0 -s servidorDHCP

Y ya podremos utilizar su nombre, en vez de la ip. Esperemos que os sirva de ayuda.

¿Esta mi servidor de correo en una “blacklist”?

Una medida muy extendida de protegernos contra el spam, es que nuestro servidor de correo tenga una lista de servidores de correo marcados como “spammers”, o como se conoce en la jerga: “blacklisted“. Cuando un servidor de correo usa estas listas, revisa cada correo comprobando que la ip de envio del correo no se encuentra marcada como “spammer”, y en el caso que encuentre que esa ip envía spam, simplemente lo devuelve o simplemente no dice nada pero no llega a la cuenta del usuario.

Estas listas las suelen mantener ISP o organizaciones que luchan contra el spam, y se suelen mantener, con ayudas o cobrando a los “spammers” por quitarles de la lista (donde rápidamente volverán a entrar)… un doble rasero que no voy a entrar a valorar. Otro detalle, es que estas listas funcionan a nivel de ips, por lo que si tienes un hosting compartido y uno de tus “vecinos” es un “spammer”, la ip se marcará y por lo tanto tu también tendrás dicha marca.

Un escenario típico: un día un usuario llama al departamento y te dice que no puede enviar un correo, y que le devuelve un correo de error donde pone “blacklisted ip”. Esto usualmente, es que tu servidor ha enviado correo spam.

¿Como saber si tu servidor esta en esas listas?, pues la manera más simple es entrar en la web de “What is my ip address?” y poner la ip de tu servidor (ojo, todo funciona con ips), al rato tendrás un informe que ten indica en cuantas listas te encuentras “blacklisted”.

¿Que hacer cuando estés dentro de una lista?, pues visitar la web, y mirar como darte de baja… y tener paciencia.

Geoserver en entorno de producción (II): Optimizando el servidor

Tengo que reconocerlo. Esto está siendo mucho más difícil de lo que yo pensaba, ya que me estoy encontrando con muchos problemas, al configurar mi servidor en producción me estoy dando cuenta que hay mucha información contradictoria, y mucha más que es demasiado antigua. Voy a intentar resumir los pasos que voy siguiendo y que me han funcionado (pero recordar mi máquina, Ubuntu Server 9.10 de 32bits, en otras configuraciones… ¡quién sabe si esto funcionará!).

Allá van las mejoras que he incluido al servidor de mapas:

  1. Confirmar que la maquina virtual que usamos es la de Sun y no la OpenJDK mediante el comando:
    sudo  update-alternatives --config java
    Hay 2 opciones para la alternativa java ( proporcionando /usr/bin/java).
    
      Selección   Ruta                                      Prioridad  Estado
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      modo automático
      1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      modo manual
    * 2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        modo manual
    

    Con este comando te pedirá que le des el numero de la máquina a utilizar, y como ves en mi caso ya está elegida correctamente.
    Una vez elegida, entra en la web de administración de Geoserver, y en la sección “Estado del Servidor“, y mirar que maquina virtual usa en el apartado “Versión de la JVM“, pone algo como “OpenJDK”, entonces vamos mal. Pero no hay que tirar la toalla aún.
    El problema suele ser que la variable de entorno “JAVA_HOME” no está definida, como podemos consultar con el comando “env”:

    linux@svrmapas:~$ env
    TERM=xterm
    SHELL=/bin/bash
    XDG_SESSION_COOKIE=XXX
    SSH_CLIENT=192.168.XXX.XXX 4809 22
    SSH_TTY=/dev/pts/1
    USER=linux
    LS_COLORS=rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
    MAIL=/var/mail/linux
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    PWD=/home/linux
    LANG=es_ES.UTF-8
    SHLVL=1
    HOME=/home/linux
    LOGNAME=linux
    SSH_CONNECTION=192.168.XXX.XXX 4809 192.168.XXX.XXX 22
    LESSOPEN=| /usr/bin/lesspipe %s
    LESSCLOSE=/usr/bin/lesspipe %s %s
    _=/usr/bin/env
    

    Vaya, si no tenemos definida la variable, ¿donde coge el Tomcat la ruta para la máquina virtual de Java?. Para desvelar este misterio, sólo miramos el script de arranque de Tomcat nos encontramos unas líneas como estas:

    # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
    # defined in $DEFAULT)
    JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
    

    Como puedes ver, primero mira si existe la máquina de código libre, que no nos interesa para nada, y luego el resto (en mi caso, la maquina virtual de Java es el segundo directorio). En este punto tienes dos opciones, definir la variable de entorno “JAVA_HOME” o borrar la primera ruta de de la variable “JDK_DIRS”. Pero si lo hacemos elegantemente, solo tenemos que ir a el fichero “/etc/profile” y añadir estas lineas:

    # Ten en cuenta que tu ruta a la maquina virtual puede cambiar
    export JAVA_HOME=/usr/lib/jvm/java-6-sun
    export JRE_HOME=${JAVA_HOME}/jre
    export PATH=$PATH:${JAVA_HOME}/bin
    

    Actualización 22-03-10: Resulta que si hubiera leido ese fichero de configuración de Tomcat, me hubiera dado cuenta que usa un fichero “/etc/default/tomcat6“, en el cual puedes indicar que máquina virtual de Java utilizar sin tener que liar tanto follón, por lo que simplemente nos vamos a ese fichero y descomentamos la siguiente línea, incluyendo la ruta a la máquina virtual de Sun:

    # The home directory of the Java development kit (JDK). You need at least
    # JDK version 1.5. If JAVA_HOME is not set, some common directories for
    # OpenJDK, the Sun JDK, and various J2SE 1.5 versions are tried.
    #JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk # Original que viene comentada
    JAVA_HOME=/usr/lib/jvm/java-6-sun # Mi modificación
    
  2. Poner el log en modo producción, lo cual hace que sea menos “verboso”. Simplemente desde el interfaz web de Geoserver, en “Configuración global>Perfil de registro“, poner “Production” y aplicar.
  3. Dar recursos de sobra a Tomcat. No me seáis rácanos y dedicar una máquina completa al servidor, ya que va a ser muy exigente en cuanto a RAM. Para dar más recursos, tendremos que modificar los parámetros con los que arranca la maquina virtual que contiene a Tomcat, dentro del fichero “/etc/init.d/tomcat6“, buscaremos la línea que rellena la variable “JAVA_OPTS“:
    # Default Java options
    # Set java.awt.headless=true if JAVA_OPTS is not set so the
    # Xalan XSL transformer can work without X11 display on JDK 1.4+
    # It also looks like the default heap size of 64M is not enough for most cases
    # so the maximum heap size is set to 128M
    if [ -z "$JAVA_OPTS" ]; then
            JAVA_OPTS="-jvm server -Djava.awt.headless=true -Xms1024m -Xmx1024m -XX:NewRatio=2 -XX:+AggressiveOpt -XX:MaxPermSize=128m -XX:SoftRefLRUPolicyM$
    fi
    

    Actualización 22-03-10: De nuevo esto se puede hacer en “/etc/default/tomcat6“, escribiendo la linea siguiente:

    # Ponlo en una única línea"
    JAVA_OPTS="-jvm server -Djava.awt.headless=true -Xms1024m -Xmx1024m -XX:NewRatio=2
    -XX:+UserParalleGC -XX:+AggressiveOpt -XX:MaxPermSize=128m
    -XX:SoftRefLRUPolicyMSPerMB=3600"
    

    Esta configuración, que parece muy complicada, indica que Tomcat arranque con una máquina virtual con los siguientes parámetros:

    • -jvm server: Arranque de una máquina virtual en modo servidor, que da más rendimiento.
    • -Djava.awt.headless=true: Usar librerías AWT pero sin usar una ventana (no se muy bien porqué pero lo recomiendan en todos los foros).
    • -Xms1024m -Xmx1024m: Usará como mínimo 1Gb de memoria RAM y también 1Gb como máximo.
    • -XX:NewRatio=2 -XX:MaxPermSize=128m -XX:SoftRefLRUPolicyM$: Como limpiar los objetos que se tienen en memoria…
    • -XX:+AggressiveOpt: Optimizaciones experimientales.

    Actualización 2-12-10: En una nueva actualización los parámetros de optimización de la máquina virtual de Java, que he podido utilizar han sido:

    JAVA_OPTS="-server -Djava.awt.headless=true -Xms256m -Xmx512m -XX:NewRatio=2 -XX:MaxPermSize=128m -XX:SoftRefLRUPolicyMSPerMB=3600"
    

    Gran parte de estas recomendaciones, puedes leerlas más profundamente en el siguiente documento en formato OpenOffice.

  4. Instalar las extensiones “Java Advanced Imaging” para Java, las cuales nos ofrecen mayor rendimiento en el manejo de gráficos, que es parte de lo que hace nuestro servidor de mapas: traducir de formatos cartográficos a imágenes.
    Primero, bajamos las librerias, donde hay que tener cuidado con elegir las correctas para tu sistema operativo y plataforma (x64 para sistemas de 64bits o i585 para sistemas de 32bits), en mi caso es un 32bits para una máquina linux:

    linux@svrmapas:~$ wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-i586-jdk.bin
    

    Ahora toca instalar:

    linux@svrmapas:~$ sudo cp jai-1_1_3-lib-linux-i586-jdk.bin /usr/lib/jvm/java-6-sun/
    linux@svrmapas:~$ cd /usr/lib/jvm/java-6-sun/
    linux@svrmapas:/usr/lib/jvm/java-6-sun$ sudo sh jai-1_1_3-lib-linux-i586-jdk.bin
    # Aceptamos la licencia
    Do you agree to the above license terms? [yes or no]
    yes
    Unpacking...
    Checksumming...
    
    0
    0
    Extracting...
    UnZipSFX 5.31 of 31 May 1997, by Info-ZIP (Zip-Bugs@lists.wku.edu).
      inflating: COPYRIGHT-jai.txt
      inflating: DISTRIBUTIONREADME-jai.txt
      inflating: LICENSE-jai.txt
      inflating: THIRDPARTYLICENSEREADME-jai.txt
      inflating: UNINSTALL-jai
      inflating: jre/lib/i386/libmlib_jai.so
      inflating: jre/lib/ext/jai_core.jar
      inflating: jre/lib/ext/jai_codec.jar
      inflating: jre/lib/ext/mlibwrapper_jai.jar
    Done.
    linux@svrmapas:/usr/lib/jvm/java-6-sun$
    

    Ahora volvemos a visitar nuestra web de control de Geoserver, en el apartado “Estado del servidor”, busca la línea “Native JAI” y que esté a “true”.

  5. Instalar las extensiones “JAI Image I/O” de Java para ayudar aun más la escritura y lectura de las imágenes. Solo hay que seguir unos pasos similares que con el paquete anterior, aunque con algún cambio:
    linux@svrmapas:~$ wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-i586-jdk.bin
    linux@svrmapas:~$ sudo cp jai_imageio-1_1-lib-linux-i586-jdk.bin /usr/lib/jvm/java-6-sun/
    linux@svrmapas:~$ cd /usr/lib/jvm/java-6-sun/
    linux@svrmapas:/usr/lib/jvm/java-6-sun$ sudo su
    root@svrmapas:/usr/lib/jvm/java-6-sun-1.6.0.15# export _POSIX2_VERSION=199209
    root@svrmapas:/usr/lib/jvm/java-6-sun-1.6.0.15# sh jai_imageio-1_1-lib-linux-i586-jdk.bin
    # Acepta la licencia
    Unpacking...
    Checksumming...
    0
    0
    Extracting...
    UnZipSFX 5.31 of 31 May 1997, by Info-ZIP (Zip-Bugs@lists.wku.edu).
      inflating: COPYRIGHT-jai_imageio.txt
      inflating: DISTRIBUTIONREADME-jai_imageio.txt
      inflating: ENTITLEMENT-jai_imageio.txt
      inflating: LICENSE-jai_imageio.txt
      inflating: THIRDPARTYLICENSEREADME-jai_imageio.txt
      inflating: UNINSTALL-jai_imageio
      inflating: jre/lib/i386/libclib_jiio.so
      inflating: jre/lib/ext/jai_imageio.jar
      inflating: jre/lib/ext/clibwrapper_jiio.jar
    Done.
    

    Actualización 10/04/2012: Me he encontrado con problemas en esta instalación, con equipos de 64bits. Al parecer no funciona y devuelve un error del tipo “tail: no puedo abrir `+215′ para lectura“. El error viene de lejos pero como no, Oracle no tiene ganas de arreglarlo. La única solución que he encontrado es esta:

    sed s/+215/-n+215/ jai_imageio-1_1-lib-linux-amd64-jdk.bin > jai_imageio-1_1-lib-linux-amd64-jdk-fixed.bin
    # Usar el nuevo instalable "fixed"
    

    Y tras reiniciar Tomcat, ya tendremos de nuevo disponibles estas nuevas librerías. Como siempre, si queremos ver si todo ha ido bien, solo tendremos que ir a “Geoserver>Estado del servidor” y allí buscar la línea “JAI ImageIO nativo” y ver que se ha puesto a “true”.
    Al final tendremos algo así:

    Tras la instalación de las librerias y la maquina Sun tendras que ver algo así en Geoserver

    Tras la instalación de las librerias y la maquina Sun tendras que ver algo así en Geoserver

  6. Cambiar el directorio de datos de Geoserver. Es una buena opción, para facilitar actualizaciones y poder trabajar sin miedo a que una actualización machaque nuestra configuración. Para esto hay que buscar donde Tomcat despliega las apliacaciones, en el directorio: “/var/lib/tomcat6/webapps/geoserver/WEB-INF/” ahora dentro de la carpeta encontraremos un fichero muy importante “web.xml”. en el se pueden tocar varios parámetros, pero nos centraremos en la siguiente parte:
    
       GEOSERVER_DATA_DIR
       C:\eclipse\workspace\geoserver_trunk\cite\confCiteWFSPostGIS
    

    Como ves, esta comentado, quita los comentarios y cambia la ruta (curiosamente la versión linux tiene una dirección Windows (?) que obviamente no va ha funcionar).
    Una buena política es poner un segundo disco, si se puede, que favorecerá mucho el acceso paralelo a datos y al servidor.

    Seguiremos contando como trabajar con la base de datos en la siguiente parte.

Referencias de este artículo:

Geoserver en entorno de producción (I): Instalación básica

Este post inicia un serie de otros post que vendrán más adelante, en los cuales voy a detallar como voy a diseñar e introducir un servidor de mapas ( en un entorno de producción. Esta guía trata de resumir todo lo que he investigado, a lo largo de unas semanas, para realizar todo lo mejor posible, y con el mayor rendimiento posible también.

En este post, sólo voy a instalar Geoserver y dejarlo funcionando como una aplicación de Tomcat. Nada más. En siguientes post, hablaremos de la arquitectura de red que plantearemos, las librerías que pueden mejorar el rendimiento, y como añadir alguna funcionalidad extra.

Para empezar, voy a explicar porqué elegimos Geoserver, entre tantos y tantos servidores de mapas. Aunque este servidor, esta desarrollado en Java, resulta ser bastante rápido, cuando se configura correctamente, plantando cara a Mapserver, que se encuentra desarrollado en C++ (se pueden ver muchas comparativas sobre estos dos servidores de mapas), y además esta avanzando a pasos agigantados versión tras versión. Es (como no) software libre, con una gran comunidad detrás, que suelen dar soluciones a todos los problemas encontrados. Aparte de ser “relativamente sencillo” su manejo.

En cuanto al sistema operativo, me decanto por un linux, en mi caso un “Ubuntu Server 9.10“, simplemente por costumbre, ya que se podría usar cualquier otra distribución de linux para hacer la implantación.

Bueno, manos a la obra. Os detallo los pasos a seguir, para realizar una instalación básica:

  1. Instalar “Java JDK“, primero comprobaremos que no está ya instalada (en mi caso ya está instalado el Java):
    linux@svrmapas:~$ dpkg --get-selections | grep sun-java
    sun-java6-bin                                   install
    sun-java6-jdk                                   install
    sun-java6-jre                                   install
    

    En caso de no tenerlo instalado, lo hacemos vía “apt“:

    sudo apt-get install sun-java6-jdk
    

    Actualización Ubuntu 10.04: Parece que con los problema que está habiendo con Oracle, y que demuestran que es el mal supremo (apreciación mía), se han movido los paquetes oficiales (que siguen llamándose “sun-java” curiosamente) a un repositorio externo que no viene por defecto. Así que tocará añadirlo en el fichero “/etc/apt/sources.list“, descomentando dos líneas que vienen comentadas por defecto:

    ## Uncomment the following two lines to add software from Canonical's
    ## 'partner' repository.
    ## This software is not part of Ubuntu, but is offered by Canonical and the
    ## respective vendors as a service to Ubuntu users.
    deb http://archive.canonical.com/ubuntu lucid partner
    deb-src http://archive.canonical.com/ubuntu lucid partner
    
    

    Recuerda lanzar un “update” de “apt-get” para reflejar los cambios

    Si todo ha ido bien, encontraras algo parecido a esto al teclear el siguiente comando:

    linux@svrmapas:~$ java -server -version
    java version "1.6.0_0"
    OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)
    OpenJDK Client VM (build 14.0-b16, mixed mode, sharing)
    

    Si tienes cualquier otra salida a este comando, tienes que revisar tu instalación de Java ya que es muy importante para el rendimiento usar la versión de Sun más moderna posible.

  2. Ahora toca el Tomcat, y es muy recomendable usar el “Tomcat 6“, aunque creo que es el que se instala por defecto desde la “Ubuntu 9.04“.
    sudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-user tomcat6-docs tomcat6-examples
    
  3. Tenemos Tomcat funcionando, solo nos queda configurar quien tiene acceso al “Gestor de aplicaciones” de Tomcat, mediante la ruta: “http://tuserver:8080/manager/html“. Si entras, te pedirá un usuario y una clave. ¿Pero si no me la han preguntado?. Tranquilo, ve al fichero “/etc/tomcat6/tomcat-users.xml“, editarlo como sigue:
    <tomcat-users>
      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <role rolename="manager"/>
      <user username="tomcat" password="tomcat" roles="tomcat,manager"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
      <user username="role1" password="tomcat" roles="role1"/>
    </tomcat-users>
    

    Hemos hecho lo siguiente, definir un nuevo rol, llamado “manager“, el cual es el necesario para manejar las aplicaciones instaladas, y luego al usuario genérico “tomcat” le hemos datos el rol de “manager“. Revisa que no este comentado (por defecto vienen comentados todos los usuarios), ya que si no, no hacemos nada.
    Muy importante: Esto que he hecho no es seguro, solo para comprobar que todo funciona, tendrías que crear un usuario/password seguros si vas a dar acceso a tu servidor a todo el mundo, una vez comprobado que todo funciona, ya que si no sería muy fácil que alguien “malo” adivine lo que has hecho y pueda acceder a este gestor… e imagino que no quieres que ocurra.

    Actualización Ubuntu 10.04: Algunos cambios surgidos en la versión de Tomcat que se instala, hacen más recomendable este fichero de configuración, que le da permisos a un usuario para manejar todo el tomcat sin problemas:

    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager" />
      <role rolename="admin" />
      <user username="mi_usuario_administrador" password="password" roles="admin,manager" />
    </tomcat-users>
    
  4. Ahora reiniciamos el servidor Tomcat:
    sudo /etc/init.d/tomcat6 restart
    
  5. Ya podremos acceder al “manager“, con el usuario con el rol de “manager“, mediante la dirección: “http://tuserver:8080:/manager/html“. Ahora nos vamos a la web oficial de Geoserver y nos bajamos la versión “Web Archive“, como indica la siguiente captura de la web (cuando redacto esto, vamos por la versión 2.0.1):
    Descargar Geoserver
    Ya tenemos, el archivo “war” (te bajaras un .zip, mira dentro), y la intentamos desplegar (es decir, algo parecido a instalar) en nuestro servidor Tomcat, mediante el siguiente interfaz que nos sale por defecto en el  gestor de aplicaciones: Desplegar War
    Una vez hecho, solo nos queda buscar “geoserver” en el listado de aplicaciones, y dar a arrancar… y tras unos instantes: FALLO. Bueno, todo no podía ser tan sencillo, pero no os pongáis nerviosos, está controlado. El error que lanza el interfaz es algo así:

    FALLO – No se pudo arrancar la aplicación en trayectoria de contexto /geoserver

    Actualización Geoserver 2.0.2: Parece que todo esto ya es cosa del pasado, ya que se se despliega sin problemas, y sin dar mas permisos en Tomcat.

  6. El problema anterior, es un problema de permisos, ya que por razones desconocidas, Tomcat viene con los permisos muy recortados y Geoserver necesita prácticamente todos los permisos. Por lo tanto, nos vamos a “/etc/tomcat6/policy.d/04webapps.policy” y al final del fichero (justo antes de cerrar la llave) incluimos esta línea:
    permission java.security.AllPermission;
    

    Volvemos a reiniciar el Tomcat, y probamos de nuevo. No me voy a meter si esto es bueno o malo, si relaja mucho las políticas de seguridad… simplemente hace que funcione.
    Tras esto, al dar a arrancar a la aplicación, nos encontramos con:

    OK – Arrancada aplicación en trayectoria de contexto /geoserver

  7. Accedemos a la aplicación Geoserver, en “http://tuserver:8080/geoserver“. Cruza los dedos, y allí tendrás tu panel de administración de Geoserver.
Los siguientes pasos podrás leerlos en la siguiente entrada: Parte 2.

Referencias usadas:

Recreativas de mi niñez (II): Nintendo PlayChoice-10

Que Nintendo marcó a toda una generación, no es ningún misterio, pero contar la historia de Nintendo, como empresa, suele sorprendernos con una cantidad de historias sobre culebrones internos e intentos de fabricación de cacharros varios que se quedaron en nada, o que triunfaron. Y no soy el más indicado (ni documentado) para hablar del tema, pero os puedo recomendar que busquéis por Internet la historia de la gran N (os recomiendo I, II y III aunque no son las únicas fuentes).

PlayChoice-10-Deluxe-EU

PlayChoice-10 (Deluxe versión Europea)

Recordando hoy, algunos de esto cacharros de la gran N que pude disfrutar en mi niñez, me ha venido a la mente un recuerdo de otro de estos chismes que salió de la fabrica de Kioto, que me ha parecido muy curioso: una recreativa de Nintendo que en vez de darte “vidas” para jugar te daba tiempo por cada moneda que introdujeras.

Esta máquina recreativa se llamaba “Nintendo PlayChoice-10“, que no era internamente más que unas Nintendo (míticas NES de sobremesa) con 10 juegos idénticos a los que podías en esos tiempos comprar para tu consola de sobremesa de la gran N. Bueno, no eran idénticos, ya que incluía “consejos”, los cuales estaban en perfecto inglés por lo que no recuerdo mucho que ponían, los cuales se mostraban en una pantalla superior en la cual también se podían elegir los juegos para jugar, aunque esto lo explicaré más adelante.

Por “sólo” 25 pts, tenías 300 segundos para jugar a cualquier juego de la lista, es decir, 300 segundos para jugar a un Nintendo de sobremesa, ya fuera a dobles o en solitario. Tenía muchas curiosidades, como por ejemplo que en tu tiempo, podías cambiar de juego dando a un botón de “reset”, volvías a la lista de juegos y podías continuar jugando.
Y se podía jugar a lo grande: tenías hasta una pistola “Zapper” como las consolas NES, por lo que podías jugar como en esta recreativa a juegos como el “Duck Hunt” que era lo más de lo más de la época, ya que como he dicho, esta recreativa no era más que una NES gigante.
Existían varios modelos de las cabinas, con uno o varios monitores, mi recuerdo se centra en la “gloriosa” cabina de dos pantallas grandes. En la pantalla superior, existía un menú donde se podía elegir el juego que querías, y cuando jugabas, te encontrabas en la pantalla superior los famosos “consejos” para el juego y el malvado contador de tiempo restante. Esta pantalla superior se controlaba con unos botones que estaban en una primera hilera más cercana al monitor, y en la segunda hilera estaban los de control de toda la vida. Cuando elegías un juego, la pantalla de abajo era una maldita NES, y jugabas hasta que el tiempo se consumía, pero sí el tiempo acababa la pantalla se ponía en negro y tenías un tiempo para volver a meter más pasta para continuar.

Todo un negocio, ya que el tiempo que te pasabas delante de la pantalla no dependía de tu destreza a los mandos, si no de un tiempo preestablecido. En mi barrio lo llamábamos timo. Pero tenía una parte muy buena, ya que permitía jugar a los juegos sin tener que comprarlos o tener que alquilarlos, y con los 300 segundos que te daban, podías ver rápidamente los 10 juegos que traia (que por cierto, si no recuerdo mal, no todas llevaban los mismos), por lo que fue uno de mis “tester” de juegos, antes de gastarme las 5000-8000 pelas de entonces.

¿No os enteráis?, normal… pero nada mejor que un vídeo para que veáis de que hablo.

Ah, y también me recuerda una cosa: que viejo me estoy volviendo.

Referencias a toda la información que he mirado para refrescar mi memoria:

Filtar por MAC en un DD-WRT y una Fonera+

¿Os dije lo maravilloso que me parecía el DD-WRT como firmware de un router?… bueno, no todo es tan bonito.

Hoy he estado peleando una dura batalla, y al final la he ganado. Ha sido con el maldito filtrado MAC de en un DD-WRT v24-sp2 con mi Fonera+. La cuestión es que por razones varias, tengo que tener dos interfaces Wifi, uno con WPA y otro con WEP, y sinceramente del WEP sólo no me fío, así que he puesto también un filtro por MAC… bueno lo he intentado mediante el interfaz web.

Os cuento, mediante el interfaz Web, no es posible (yo no lo he logrado), ya que cuando rellenas la MAC y pulsas “Aplicar“, esta no que queda fijada, y se queda todo otra vez en blanco. Pero lo bueno del DD-WRT es que se basa en Linux, así que filtremos al viejo estilo con la línea de comandos y un magnifico comando llamado “iwpriv“. En vuestro router con DD-WRT buscais la sección del interfaz web: “Administración>Diagnóstico>Commando Shell“, y ponéis lo siguiente:

iwpriv ath0.1 maccmd 1
iwpriv ath0.1 addmac XX:XX:XX:XX:XX:XX

El primer comando, indica que queremos hacer. Con un “1”, creamos una lista de filtrado MAC de equipos que tienen permiso para entrar a en red (o “WhiteList” o “Lista blanca“), asociada al interfaz que marquemos (en mi caso “ath0.1”, uno virtual). Si pusiera un “2” sería una lista para equipos que no tienen permiso (o “BlackList” o “Lista negra“), y un “3” borra la lista asociada al interfaz, ya sea blanca o negra.
El segundo comando, es añadir una MAC a la lista del interfaz “ath0.1”, el cual posee una MAC como se indica. El método más sencillo para tener las MAC, es quitar las listas de acceso, conectar los cacharros, ver el interfaz su MAC, y luego usarla en los comandos que os he indicado.

Hay otros comando muy interesantes, que usan el “iwpriv”, como estos:

iwpriv ath0.1 delmac XX:XX:XX:XX:XX:XX
iwpriv ath0.1 kickmac XX:XX:XX:XX:XX:XX

La primera borra una MAC de la lista que hemos creado (blanca o negra), y el siguiente corta una conexión de esa MAC con nuestro interfaz, en otras palabras, le echa de tu Wifi.

De todas formas, os dejo de donde he sacado toda esta información.

Preguntas y respuestas sobre comprar un Kindle en España

Amazon Kindle 6'

Amazon Kindle 6'

Ha llegado a mis manos un Kindle de Amazon, uno de 6” pulgadas (creo que el único que envían a España), también llamado “Kindle 2 International“. El mítico y deseado lector de ebook dicha empresa.

Si, soy un friki, pero no es para mí (de verdad que no), es para mi hermana que se había encaprichado de un lector de eBooks, y tras su investigación vía Google del mejor lector de eBooks, dijo que quería este. Y la verdad que parece que no se ha equivocado, ya que esta teniendo mucho éxito en ventas y la gente que lo tiene dice estar muy contenta con el Kindle.

Pero, y curándome en salud ante las futuras preguntas que me pueden caer sobre este tema de los eBooks: yo no tengo mucha idea de lectores de eBooks, no se cual es el mejor o el peor, si es caro o barato, o cosas por el estilo. Simplemente, en este post, voy a contestar las preguntas que me han surgido al traerme este trasto a España, y las respuestas que he encontrado. Si queréis saber más, hay muchas comparativas en internet sobre lectores de eBooks, solo tienes que usar Google para encontrarlas.

Bueno, aquí van todas las preguntas que me han surgido, antes de comprar, durante el envío, y con este trasto en mis manos:

  • ¿Se puede comprar en España?: No directamente, no en tiendas físicas. Para comprarlo, sólo puedes online y te tienes que meter en Amazon.com (muy importante que no sea otra Amazon de otro país, como la de UK, por ejemplo) y puedes pedirlo.
  • ¿Pero cuanto vale?: Depende la cotización Euro-Dolar, pero entre: 210-240€ (abro mucho la horquilla ya que no quiero que nadie se queje), sin añadir envió y aduanas. Si es así sumarle unos 60 euros extra. Total unos 270-310€. En mi caso, han sido 285€ en total.
  • ¿Cuanto tardan?: A mí me han tardado 4 días (increíble lo sé), pero unos 10 días de media.
  • ¿Me lo pueden retener en aduanas?: Poder pueden, pero Amazon te cobra junto con el envío las “Import Fees Deposit“, que sirve para pagar a aduanas. No tendrías que tener problemas.
  • ¿Los enchufes europeos sirven?: No, tienes que comprar un adaptador de clavija americana a europea, que vale menos de 1€. También se puede cargar por USB. Pero no hay problemas de voltajes. Simplemente compra un adaptador de clavija y a funcionar.
  • ¿Pero esto que especificaciones tiene?: Leelas tu mismo. Quizás lo más sorprendente es que tiene conexión 3G (como los móviles), y la posibilidad de dejar notas a los márgenes de los libros.
  • ¿Pero tiene 3G?… ¿voy a tener que pagar una tarifa de datos a alguna empresa de telefonía?: Sorprendente, pero NO. Amazon se hace cargo de los gastos de navegación por su tienda de libros y la Wikipedia, y si estas dentro de los USA, hasta navegar por la web (con un navegador muy cutre). Pero en España solo navegar por su tienda de libros, y la Wikipedia. A esta conexión 3G la llaman “Whispernet“, y es como aparece en todo el cacharro y la ayuda de Amazon.
  • ¿Y Wifi?: No tiene. En teoría no hace falta con la conexión 3G (así reza su publicidad).
  • ¿Que formatos lee este chisme?: AZW, MOBI, PRC, TXT y PDF. Y seguro que te preguntas por ePUB, DOC, RTF… pues, no los soporta nativamente, tocará transformarlos en un formato que entienda este chisme.
  • ¿Como meto mi X libro en mi Y formato en mi flamante Kindle?: Pues hay varios métodos. En concreto hay 3 que son los que todo el mundo suele usar (y creo que los únicos). Todo esta mejor explicado mediante la propia ayuda online de Amazon.
    El más sencillo, es enchufar el Kindle a tu PC por USB, y usar algún software como Calibre (que transforma entre formatos de eBooks) para convertirlo a un formato que soporte el Kindle y moverlos dentro de él.
    Otra más “compleja” aunque gratuita, es mandar un correo a tu cuenta de Kindle (nombredeusuario@free.kindle.com) con el fichero que quieres meter en el Kindle mediante una cuenta de correo que tenga permitido el envio, y cuando recibas la respuesta, tendrás el fichero transformado a un formato que el Kindle entiende. Fíjate bien, que el dominio es “free.kindle.com“, no “kindle.com“.
    La última forma, y más “cool” (consecuentemente de pago) es hacer lo mismo que lo anterior, pero a la dirección de pago (nombredeusuario@kindle.com) y directamente te llega al Kindle sin tener que enchufar al USB, usando la conexión 3G, la conocida como “Whispernet“. Todo ello por solo 0.99$ por mega enviado.
  • ¿En la tienda de Amazon de libros hay en castellano?: No demasiados, en la Kindle Store, la verdad que no abundan. Pero parece que va cambiando poco a poco, y que por ejemplo, puedes comprar una suscripción a los periódicos del grupo PRISA. Por ejemplo la suscripción a “El País” cuesta 19.99$.
  • ¿Que precios tiene los libros?: De media son 10$. Entre 14$-3$, aunque si miras suscripciones son más caras. Por lo tanto échale un vistazo a la cotización del dolar para saber cuando comprar… xD
  • Bien, ¿y como compro?: Fácil. Si has comprado un Kindle, este se ha asociado automáticamente a tu cuenta de Amazon. Al comprar un libro desde el Kindle, este se te transfiere al Kindle y hacen el cargo mediante la tarjeta que tengas en tu cuenta. También puede comprar el libro digital en Amazon y puedes transferirlo al Kindle, previo cargo en tu tarjeta, claro.
  • Eh, eh, eh… ¡Que era un regalo!, no quiero que este vinculado a mi cuenta de Amazon: Vale, vale… sencillo, entra en tu cuenta de Amazon (la .com recuerda), y “Digital Content > Manage Your Kindle > Your Kindle > Deregister”. Ahora la persona que lo quiera usar, tiene que registrarse en Amazon y luego registrar el Kindle. Así se le asocia a su cuenta. Más información en la ayuda oficial.

Espero que haya solucionado alguna duda, ya que a mi, me ha costado un buen rato dar contestación a todas mis dudas. Si tenéis mas dudas, o me he equivocado en algo, pues dejar un comentario.

Reciclando una Fonera+, medinate DD-WRT, para usarla como router para ONO

fon-dd-wrt-300x240Hace tiempo que comenté por el foro, que ya no quería formar parte de FON, que no era lo que esperaba, por lo que iba a pasar de tener enchufado un cacharro más en mi casa. Así fue, como la Fonera (en concreto una Fonera+ modelo 2201) se quedo metida en su cajita, y iba a ir a la basura… Pero, ¡qué suerte tiene este chisme!.

Mi hermana, tiene la enorme suerte de vivir en una zona donde ONO tiene 50 megas… si, 50Mb/3Mb para ser exactos. Sin pensarlo lo contrató (más bien, se lo subieron ya que ya tenía ONO), y la comentaron que el router actual, no funcionaría a esa velocidad y que le mandaban uno nuevo. Pero claro, no la comentaron que era un modem, lo que implica que se quedaba sin Wifi, y tener que tener un firewall como dios manda (mi hermana es la típica adicta al messenger que no entiende de nada más). Entonces pensé en la Fonera, muerta de asco, pero no quería que mi hermana tuviera FON, ya que no le iba a meter el marrón a ella.

Basicamente mi esquema mental, de lo que quería hacer, era esto:

DiagramaFonera

Solo tuve que mirar un poco por Google para encontrar la solución: Flasearla a otro firmware que le hiciera funcionar como router neutro y le diera todas las funcionalidades Wifi también, ya que estamos liados. Pero al principio, me acojonó un poco el tema, ya que parecía muy complicado (por ejemplo Iván López lo hizo hace 3 años y se tenía que montar parda para flasearla, con riesgo de cagarla), pero luego vi que todo había cambiado mucho con el paso del tiempo y todo era muchos mas sencillo. Y más aun cuando encontré una guía fabulosa en este blog (Superviviente 2.0, que os animo a visitar), donde te dan todas las herramientas necesarias para flasear a DD-WRT y te lo explica paso a paso como hacer un flash correcto.

Tras flasear te darás cuenta del montón de nuevas posibilidades que te da este gran firmware, y que te permiten hacer casi de todo con estos chismes, aparte de poder instalar este firmware en un montón de cacharros, no solo en la Fonera. También, quiero remarcar, que se puede flashear sin perder las funcionalidades de FON, y así seguir fieles al “espíritu” si no quieres desvincularte de este empresa. En este post no me voy a centrar en todo lo que puede hacer este maravillo firmware, ya que solo tienes que buscar por Google y tendrás toda la información que necesitas.

Una vez hecho todo (ser paciente, el flaseo lleva bastante tiempo, como 30 minutos), accedemos a la red 192.168.1.x que es donde se configura por defecto la Fonera con su nuevo firmware, y más concretamente, nuestro nuevo router estará en la 192.168.1.1. La primera vez, cambiáis usuario y password. Aun no conectéis el cable a la clavija WAN, ya que os recomiendo que os metáis antes en el interfaz y configuréis lo siguiente:

  • En el menú: Setup > Basic Setup > Internet Connection Type > Connection Type > DHCP
  • En el menú: Setup > Advanced Routing > Operating Mode > Router

¿Para que?, para que la Fonera reciba la ip, al igual que antes la recibía el PC, y en modo router, para que funcione de puerta de enlace con la funcionalidad añadida de ser un firewall. Ahora conectáis el cable que va del modem de ONO a la Fonera (clavija blanca) y esperáis. Es posible que el PC tarde en darse cuenta que la fonera ahora sirve todo, así que puede fallar, darle un tiempo o reiniciar.

Ahora solo os queda configurar los puertos en: Applications & Gaming > Port Forward. ¡Listo!. Ya tenéis un buen router neutro por muy poco dinero y muchas funcionalidades extras.

Vodafone vende tus deudas, aunque no las tengas

Poneros en situación:

Mi mujer se da de baja, bueno intentó, en Airtel (ahora la todopoderosa Vodafone) hace como que 10 años atrás, en aquella época, cuando te querías dar de baja ellos te contaban que sólo con un Fax a un número de teléfono era suficiente (como ahora, pero nadie nos lo creemos)… luego venia la realidad, ya que ese Fax siempre se perdía, no llegaba, o el Fax comunicaba las 24 horas.

Tras mandar el Fax, mi buena mujer, llamar 20 veces  a atención al cliente donde la volvían a pedir mandar otro Fax y perder mucho tiempo (en esos tiempos era empresaria y no tenía mucho tiempo precisamente), se encontró que la estaban toreando, como mucho otros que han dejado su testimonio por internet, y como siempre (las Telecos son así de “listas”) la cobran casi 12 meses por la patilla, y siempre dando largas. Ella optó por la solución equivalente a lo que le hacia Airtel, y dejó de pagar el recibo ya que la línea estaba cortada (si, te cobran por un servicio que no tienes), y incluso mi mujer ya asqueada, no reclamó los 12 meses que la han cobrado de manera indebida de más.

El día a día cuando queremos cambiar de operador, darnos de baja de un servicio, y muchos hemos aprendido la lección a base de pelearnos con Movistar, Vodafone, Orange…

Vodafone

Vodafone

Pero esto no es lo divertido de la historia. La deuda que se quedo pendiente, fue de unas 5000 pesetas de la época (que era el mantenimiento de línea) más o menos, ya que casí ni se acuerda. Pero obviamente, las “listas” de las Telecos no van a perder un duro, ni aunque sea robando a un cliente. Por lo que tras unos meses llamando desde Airtel (Vodafone) a mi mujer para exigir una deuda que mi mujer tenía por su incompetencia (aunque creo que porqué no quieren nunca darte de baja), estos desisten de llamarla. Error.

Un método que tienen estas empresas de cobrar las facturas impagadas (de igual que sea por su incompetencia) es juntar muchas deudas y vendérselas a empresas especializadas en cobros. Pues a mi mujer le paso eso ya que debieron vender su impago a una banda (no tienen otro nombre).

Estas empresas, como por ejemplo “Intrum-Justitia“, le compra a Airtel su deuda, y obviamente, esta empresa paga menos que la deuda real, así tiene un beneficio. Entonces, ellos tratan de cobrar como sea dicha deuda. Y cuando digo como sea, es como sea. Incluso realizando prácticas bastante reprobables, aunque no sean ilegales (o eso creo).

Intrum Justitia

Intrum Justitia

Empezando con cartas en tono amenazante, debido a nuestro “desinterés” mostrado. Donde, curiosamente, la deuda a ascendido a casi 10.000 pesetas (¡el doble!), donde no indican a quien se debe el dinero, a ingresar en un “Fondo Español de Recuperaciones“, donde me apremian a pagar en siete días o irán al juzgado y yo tendré que pagar unos importantes costes por el juicio. También indican que estamos en una “lista”. Además tienes que llamar a un 902 para hablar con ellos si tienes dudas. En la carta, viene con todo lujo de detalles de como pagar para “salvarnos” de estos grandes costes. Esta carta viene desde hace 4 años… igual, año tras año.

Según cuenta mi mujer, también la llamaban por teléfono, una tía muy borde, que la decía que pagara o iba a tener un problema muy gordo, y mi mujer la explicó que esa deuda era errónea, y que la empresa se había equivocado. “Ese no es nuestro problema“, sencilla la respuesta.

Pero en este momento, necesito que recapitulemos, la “jartá” de chorradas que he tenido que escribir:

  • ¿Como estas banda tiene los datos de mi mujer?… ¿Conocen la “Ley de Protección de Datos“?. ¿Que empresa cedió los datos, y quiero ver una firma donde mi mujer permite dicha cesión?. Aparte, no quiero que tengan mis datos una panda de usureros, por lo que quiero que me den de baja.
  • ¿Me están exigiendo una deuda de menos de 60€ y con más de 10 años de antigüedad?. Según lo que tengo entendido, esta deuda ha prescrito si hay un juez de por medio, sino son 15 años. Pero aun así, la empresa cobró a mi mujer de manera indebida.
    Creo que es mejor robar 1.000.000 €, que sale más rentable.
  • ¿Cómo es posible que una deuda crezca?. Que yo recuerde no he pedido ningún crédito con interés.
  • ¿Quién sois?… ¿Me puede parar un tío por la calle y decirme que le debo 60€?. ¿Se los tengo que dar?. En la carta JAMÁS indican nada, no hay factura, no hay ningún justificante… NADA. Es decir, que yo puedo decir que tienen una deuda conmigo de misma cuantía y así nos quedamos en paz. ¿No?.
  • ¿Dónde está la factura?. Es decir, no me justifican nada. ¿Donde esta explicado porque mi mujer debe dinero?, ¿en que concepto?. Vamos, que quiero que me cuenten por que debo el dinero, y que la firma de mi mujer salga bien clarita, y ella la reconozca.
  • ¿Lista de qué?. Hace 2 años le concedieron a mi mujer una hipoteca. ¿No será que son unos listos?.
  • Mucho ojo, que estas bandas tienen gente que se ocupa de leer los foros para ver donde la gente pregunta sobre el tema, si pagar o no, y ellos, muy considerados, siempre aconsejan pagar… que si un juicio, que si las listas de morosos, que no te van a dar una hipoteca. TODO PARA QUE PAGUES.

Obviamente no somos los únicos que recibimos estas cartitas y llamaditas. Por ejemplo, solo hay que buscar un poco en Google y flipar de la cantidad de gente que recibe la misma carta (incluso abogados hablan de esta práctica) y o que nunca han tenido un teléfono.

Total, son unos estafadores.