martes, octubre 31, 2017

Los nacionalismos arrasaron Europa

Esta mañana he estado leyendo un poco sobre la rueda de prensa que el cesado presidente de la Generalidat de Cataluña ha dado esta mañana desde Bruselas. Aparte de hacerse la víctima y seguir con el teatro me he parado en este tuit publicado por Europa Press cuya captura reproduzco:

Es uno de los mayores disparates que se puede decir dentro de la Unión Europea ya que ésta se fundó para evitar que los nacionalismos volviesen a arrasar el continente como ocurrió con las dos guerras mundiales. Ir a Europa a llorar por los nacionalismos es olvidar este pilar básico que sirvió para fundar la CEE y posteriormente la Unión Europea.

Si hay algo que ha destruido Europa, como hemos visto en los dos Guerras Mundiales o más recientemente en los Balcanes son los nacionalismos secesionistas excluyentes como el catalán. Sería cuestión de no olvidarlo jamás.

Las teóricas VPNs sin logs

Supongo que muchos hemos visto proveedores de redes privadas virtuales, que entre sus servicios publicitan que no guardan registros de las conexiones de sus usuarios. Claro, hasta que que aparece el Estado con una orden de registro. Entonces, el proveedor de servicio entrega lo que supuestamente no tiene a los representantes del Estado.

Un proveedor de servicio sin un gran músculo financiero y legal, tiene dificultades para hacer frente de casos: Llegado el momento, si no quiere entregar los registros o no los tiene, tendrá que enfrentarse a la justicia si sus servicios se han utilizado para realizar un acto delictivo. Aparte, llegado el momento, ¿quién garantiza que el proveedor está cumpliendo con lo que promete?

No descartemos, en el futuro próximo, cambios legislativos para este tipo de cosas: Exactamente igual que en España en el caso del carnet de conducir por puntos, nos llevamos la sanción sino identificamos al conductor que iba al volante al cometer una infracción y el vehículo está a nuestro nombre.

Rama de git en el prompt

Cuando trabajo en un repositorio que está bajo el control de git, me gusta tener en el prompt del terminal cual es la rama de git que estoy usando:

terron@menzoberrazan:deployaws (master)$

¿Cómo se puede conseguir esto?. Originalmente usaba mi propio script en el $HOME/.profile:

parse_git_branch() {
       shopt -s checkwinsize
       if [ $(which git) ]; then
        branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' -e 's/^ +//g' -e 's/\n//g')

        /bin/echo -n "$branch" 
       else
               echo -n ""
       fi

}
export -f parse_git_branch
export PS1="\h:\w \u\[\033[33m\]\$(type -t parse_git_branch > /dev/null && parse_git_branch)\[\033[00m\]\$"

Básicamente este script lo que hace es comprobar si el git está en el path. Si ese es el caso, se comprueba si el directorio actual es un repositorio git, y llegado el caso, lo imprimimos. Esta función se llama desde el prompt, que se define en la variable PS1. Se usan códigos de control para que el path salga en amarillo.

Como curiosidad, uso export -f a la función para que esté disponible en otros shell.

Sin embargo, los desarrolladores de git han preparado un script que podemos usar directamente. El script se llama git-prompt y está en el código fuente del git. En OS X, por ejemplo está en /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh. Se puede obtener desde el repositorio de git (git-prompt.sh)

¿Como se configura?. Pues se copia el git-prompt.sh a nuestro $HOME como .git-prompt.sh, hacemos un source del fichero desde el .profile - si usamos bash - y modificamos el prompt

source ~/.git-prompt.sh
export -f __git_ps1
export PS1='\u@\h:\W\[\033[33m\]$(__git_ps1 " (%s)")\[\033[00m\]\$'

sábado, octubre 28, 2017

China quiere medir el crédito social de sus "ciudadanos"

La dictadura china está dispuesta a aplicar las técnicas de big data para intentar saber cómo de buen ciudadano son las personas que viven en su régimen. Al igual que existe los sistemas de credit score, el gobierno chino quiere implementar un sistema de crédito social que permita valorar la confianza que se pueda tener un ciudadano.

La idea que hay detrás de este proyecto es recolectar todos los datos posibles para elaborar un indicador que mida el tipo de ciudadanos que eres. Las entradas a este sistema serían las compras que hacen, las horas a las que accede a internet, si juegas online, las redes sociales a las que accedes, los tipos de comentarios que haces, los libros que lees, tu intereacción con tus amigos o incluso si copiaste en el colegio.

Actualmente se están haciendo pruebas con el sistema donde ciudadanos - que me cuesta usar esta palabra con una dictadura -, encargando a varias empresas para hacer el sistema de obligatorio uso en el año 2020.

Y aunque parezca mentira, millones de ciudadanos chinos se han enrolado en las pruebas. ¿Por qué?. Fácil, porque le dan privilegios especiales si llegan a ciertos niveles en los indicadores. Y eso sabiendo que el gobierno chino ya almacena en su Dang'an un historial que incluye, entre otras cosas, el historial político. Básicamente, ejercer el control para que la obediencia sea como un juego.

Y por supuesto, tiene todo un sistema de penas para quien tenga un "rating" bajo:

For instance, people with low ratings will have slower internet speeds; restricted access to restaurants, nightclubs or golf courses; and the removal of the right to travel freely abroad

Enlaces

lunes, octubre 23, 2017

Powermock: Notas rápidas para interceptar (mock) llamadas estáticas

Powermock es una librería que añade nuevas capacidades de test a algunas librerías de test, usando su propio cargador de clases y reescribiendo el bytecode de las clases que están siendo probadas. De esta manera se pueden probar métodos estáticos, probar clases saltándose bloques de inicialización estáticos o acceder al estado interno de un objeto. Por defecto extienden las funcionalidades de mockito y EasyTest

Si estamos usando maven, se puede añadir una referencia a powermock automáticamente para que se baje de los repositorios que se tenga configurado. Si se está usando Mockito 1.x y JUnit 4.4 se puede usar la siguiente configuración en las dependencias del pom. Si se consulta en enlace, veréis que es diferente dependiendo de si es JUnit 4.4 o una versión anterior. Notar que el uso de JUnit 3.x está desaconsejado por obsoleto. Una vez añadido a nuestro pom.xml y maven está configurado correctamente, se bajará las dependencias necesarias.

<properties>
    <powermock.version>1.7.1</powermock.version>
</properties>
<dependencies>
   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
</dependencies>

Puesto que uso JUnit 4 junto con PowerMock, es necesario configurar la ejecución de los test para que haga uso de la infraestructura de Powermock cuando se ejecuten. Eso se consigue anotando la clase que implementa los test con @RunWith(PowerMockRunner.class). Además, para que Powermock sepa qué clases debe de preparar, es necesario especificar con otra anotación qué clases deben de transformarse. Esta anotación es @PrepareForTest. Se ve mejor con el siguiente ejemplo. Supongamos que queremos verificar la funcionalidad de la siguiente clase que sólo tiene dos métodos estáticos:

package org.menzoberrazan.maven;
public class StaticClass {
    static public String metodo1(){
        return "Método 1 llamado";
    }
    static public String metodo2(){
        return "Método 2 llamado";
    }
}

La clase que se va usar para probar está al final del párrafo. En ella hay tres tests:

  • Un primer test normal, que nos muestra lo que devolvería los métodos estáticos son mocks
  • Un segundo test, donde se mockea toda la clase, por lo tanto hay que dar en el test una implementación de cada método que se llame, cosa que se hace con when
  • Un último test, donde vemos un mock parcial de uno de los métodos de la clase estática.
package org.menzoberrazan.maven;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import static org.junit.Assert.assertEquals;

@RunWith(PowerMockRunner.class)
@PrepareForTest({StaticClass.class})
public class AppTest
{
    @Test
    public void test1(){
        assertEquals("Método 1 llamado",StaticClass.metodo1());
        assertEquals("Método 2 llamado", StaticClass.metodo2());
    }
    @Test
    public void test2(){
        PowerMockito.mockStatic(StaticClass.class);
        PowerMockito.when(StaticClass.metodo1()).thenReturn("Método 1 mockeado");
        PowerMockito.when(StaticClass.metodo2()).thenReturn("Método 2 mockeado");
        assertEquals("Método 1 mockeado", StaticClass.metodo1());
        assertEquals("Método 2 mockeado", StaticClass.metodo2());
    }
    @Test
    public void test3(){
        PowerMockito.stub(PowerMockito.method(StaticClass.class, "metodo1")).toReturn("Método 1 parcial");
        assertEquals("Método 1 parcial", StaticClass.metodo1());
        assertEquals("Método 2 llamado", StaticClass.metodo2());
    }
}

Los puntos claves a tener en cuenta en este ejemplo son:

  • Las anotaciones en la clase que implementa los test.
  • Las anotaciones que se usan para indicar que un determinado método es un test (@Test)
  • El uso de las diferentes funciones assert* que nos provee junit para poder comparar los valores.
  • El mock total o parcial de la clase.
  • El uso de las versiones correctas de los paquetes en el pom.xml

domingo, octubre 15, 2017

21 años del proyecto KDE

Ayer, 14 de Octubre, el Proyecto KDE cumplió 21 años. Fundado por Matthias Ettrich, comenzó siendo un entorno de escritorio escrito en C++ usando como base las librerías Qt. Fue el primer escritorio medio serio que usé en Linux, prácticamente desde sus primeras versiones hasta la versión KDE 3.x que se publicó en el año 2002. Posteriormente me pasé a OS X, donde descubrí el entorno de escritorio que siempre debió tener Linux.

Cuando he visto por mi TL hoy la referencia a la creación de KDE, me he encontrado un enlace al libro 20 años de KDE, donde se cuentan historias de varios de los desarrolladores que forman parte de la comunidad de KDE, animándome a escribir esta pequeña entrada sobre este proyecto de software libre. A a partir de algunos de sus componentes se han desarrollado proyectos tan importantes como webkit, que son corazón del navegador Safari en OS X e iOS y del Chrome de Google.

Si tuviese que volver a usar un escritorio en Linux, probablemente, volvería a mirar KDE, en su actual versión Plasma Desktop

sábado, octubre 14, 2017

¿Estonia ayuda oficialmente a Cataluña para una administración electrónica?

Me ha llegado a través de Twitter la noticia de que la Generalidad de Cataluña está duplicando las estructuras de estado usando Internet y con base el modelo usado en Estonia. Esto no tendría la mayor importancia si el gobierno catalán siguiera cumpliendo la ley y buscara una mayor eficiencia y funcionalidad para sus ciudadanos. El problema es que no es así: El desleal gobierno catalán - que no olvidemos que emana de la Constitución Española -, lleva años intentando romper España de manera unilateral.

Lo interesante de la noticia está en el subtítulo:

El Govern levanta desde hace dos años una Administración digital con ayuda de Estonia

Si el gobierno estonio está ayudando oficialmente a la administración catalana para tener estructuras de estado con el objeto de llegar a la independencia, estaría bien recordar que España ha sido uno de los participantes en la misión de la OTAN Polícia Aérea del Báltico, donde se han mandado varias veces a destacamentos españoles con Mirage F1, F/A-18 y Eurofighter para establecer el servicio de QRA para dar cobertura aérea a las tres repúblicas bálticas. ,concretamente, en la base aérea de Ämari, en Estonia.

Sería bastante interesante que la diplomacia española investigara este asunto.

martes, octubre 10, 2017

Abecedari de la independència (Abecedario de la independencia)

No deja de ser curioso hasta que punto la sociedad catalana ha sido corrompida por el nacionalismo más xenófobo. La publicación Abecedari de la independència, en el año 2014, es un ejemplo de ello: para enseñar a los niños las letras, se usan términos del imaginario independentista. Supongo, que como muchas otras cosas de los separatistas, no se le dio la suficiente importancia a su debido tiempo, aunque algunos ciudadanos denunciaban con resistencia numantina lo que estaba pasando con la educación en Cataluña.

En la mejor línea de la dictadura franquista, la editorial describe el libro así - negritas mías -:

Un llibre perquè els nens i les nenes aprenguin les lletres de l'abecedari. Amb illustracions de Roser Calafell. Cada lletra té un motiu identificable amb el procés sobiranista (Assemblea, Burro català, Consulta, etc.). Un llibre que farà les delícies dels nens i les nenes (i adults) i els aproparà al moment històric que estem vivint.

Lo más divertido es que pertenece a la colección Tradicions: supongo, que en el fondo, hay detrás de todo esto un fuerte rechazo a la la sociedad abierta, donde el pluralismo y la diversidad de opiniones existen. Una sociedad así no tiene cabida ninguna en la Cataluña separatista. De pretender ser una de las regiones más modernas y abiertas de Europa - aunque en realidad, eso es el mensaje averiado que hemos comprado muchos -, a una de las más reaccionarias de la mano del separatismo identitario, probablemente siendo Barcelona, la única excepción a esto.

martes, octubre 03, 2017

Los primeros pasos del fascismo catalán

Hay escenas, que retratan perfectamente al nacionalismo catalán. Lo que son, lo que siempre han sido. Lo único que ha ocurrido es que se lo han tenido callados mientras preparaban su golpe de estado. Esta tarde he visto el siguiente vídeo en la cuenta de SER Cataluña . Si parece un pato, anda como un pato y hace cuac, lo mismo es que un pato:

Fascistas catalanes from drizzt.blog on Vimeo.

Pensaba apartarme algo del tema catalán en el blog. Pero, dentro de mis limitadas posibilidades y sabiendo que allí hay personas que no comulgan con el fascismo independentista y que las van a machacar, creo que es necesario, que aquellos que creemos en un Estado de Derecho, reflejemos lo que está ocurriendo: No se le puede dejar la batalla de la propaganda a los totalitarios.

domingo, octubre 01, 2017

Como "sufren" en Cataluña los jugadores del FC Barcelona

La cosa del fútbol no sería más que una anécdota sino fuera porque es un engranaje más en ese nacionalista xenófobo catalán. Hoy se ha disputado en el Camp Nou el partido que enfrentaba al FC Barcelona frente a la Unión Deportiva las Palmas. Este partido se ha disputado a puertas cerradas porque la Junta Directiva del Barcelona lo ha decidido así, ya que los Mozos de Escuadra no habían emitido ningún informe en contra. Realmente, lo que querían era haber suspendido el partido, pero la LFP se ha negado, con buen criterio desde mi punto de vista. El presidente de la entidad blaugrana realizó las siguientes declaraciones:

"La Liga no nos ha dado permiso para suspender el partido. Hubiéramos perdido seis puntos (los tres del encuentro frente a Las Palmas, más otros tres adicionales). Ante tal negativa, decidimos jugar el encuentro de una manera excepcional. Para que (las personas) vean cómo estamos sufriendo"

Vamos a realizar algunas tablas con datos del FC Barcelona, para que seamos capaces de calibrar dicho sufrimiento

AñoIngresos en millones de €Fuente
Temporada 2016 - 2017708Fuente 2016 - 2017
Temporada 2015 - 2016679Fuente 2015 - 2016
Temporada 2014 - 2015608Fuente 2014 - 2015
Temporada 2013 - 2014530Fuente 2013 - 2014
Temporada 2012 - 2013491Fuente 2012 - 2013

Es decir, en los últimos cinco años los ingresos de estos apenados sufridores han aumentado en casi 217 millones de €. No está mal.

Pero Vamos a repasar las fichas de algunos de sus jugadores. Por ejemplo, aquí podemos ver alguna de las fichas de sus jugadores, correspondiente a datos del año 2016

  • Gerard Piqué, entre 12 y 14 millones de euros.
  • Leo Messi, unos 40 millones de euros.
  • Andres Iniesta, 15 fijos, que pueden alcanzar los 18 con incentivos

Y todo esto por no hablar de los más de 222 millones de euros recibidos este año por la venta de Neymar o los 150 millones de euros pagados por Dembelé.

Esto es necesario contarlo para poner en perpestiva el supuesto sufrimiento de estos millonarios.

No, no es una sorpresa lo de Cataluña

A estas alturas, no se puede sentir tristeza por lo que está ocurriendo en Cataluña, resignación si acaso ya que el guión de hoy lleva escrito muchos años. Probablemente, los ciudadanos españoles no hemos exigido la suficiente altura de miras a los políticos para que señalaran lo que es el cáncer nacionalista y por el no meterse en política hemos hecho la vista gorda ante situaciones que en otros países hubieran causado una gran polvareda.

Cuando uno repasa lo que ha ocurrido, exigido y dicho los nacionalistas los últimos quince años, entiende perfectamente lo que ha ocurrido este último año, empezando por el esperpento en el Parlamento Catalán en Septiembre y acabando con la jornada de hoy, donde se introducen papeles en unos contenedores como si pudieran tener algún valor.

Si se pone una identidad tribal por delante de ser un ciudadano, el camino que se recorre es el que hemos visto estos últimos quince años y su colofón es saltarse la ley, porque el sentimiento y la pertenencia a la tierra está por encima de ser ciudadano de un país donde hay que respetar leyes. Una de esas identidades, conviene recordar que a los españoles nos ha costado casi mil muertos.

También habría que empezar a plantearse el papel que han tenido los medios de comunución, los que han ejercido de la Radio Televisión Libre de las Mil Colinas ruandesa alentando contra toda persona que no estuviera a favor del régimen que se capitaneaba desde la Generalidad de Cataluña, desde medios públicos a medios generosamente regados con subvenciones. Y por supuesto, los tontos útiles que llevan haciéndole el caldo gordo a los nacionalistas desde hace décadas.

Pero, ¿Sabéis que ocurriría si las Fuerzas de Seguridad del Estado no estuviesen hoy allí?. Lo que ha ocurrido en todos los países donde el cáncer del nacionalismo no se corta de raíz. Por eso, me alegro que hoy estén allí la Policía Nacional y la Guardia Civil para hacer cumplir la ley, porque son ellos los que garantizan los derechos civiles de una parte importante de la población catalana que le ha sido usurpados por otros catalanes que piensan que si no eres de su cuerda, no mereces ser ciudadano.