lunes, septiembre 17, 2018

Los cohetes en el INTA

Hace unos días, leyendo el foro FAS, encontré una referencia al INTA-156 Banderilla: Se trataba de un misil aire aire de guía infrarroja que se empezó a desarrolar en el Instituto Nacional de Técnica Aeroespacial a finales de los años 60 en colaboración con la francesa Matra. Desconocía que en España se intentó conseguir un misil que mejorara los AIM-9B que por aquellos tiempos se usaban en los aviones comprados a Estados Unidos.

Buscando información sobre dicho misil, encontré un libro publicado por el INTA, Los Cohetes del INTA (pdf) donde se da una descripción bastante detallada de lo que se empezó a desarrollar en España desde la década de los 40 hasta nuestros días, con un capítulo completo dedicado al Capricornio, una investigación que de seguir adelante nos hubiese dado la posibilidad de poner en órbinta mini satélites de 50 kg. Este proyecto - como tantos otros - fue abandonado por el INTA. Quizás - y esto es mera especulación - por los complejos españoles de una tecnología dual con usos militares como era esta.

Sólo he leído la parte del misil INTA-156 Banderilla, y es bastante interesante para aquellos que les guste la tecnología de estos misiles guiados. Otro proyecto cancelado - y especulando de nuevo -, probablemente la venta por EEUU de un AIM-9 Sidewinder más avanzado que el que teníamos (la versión B) hiciera perder al Ejército del Aire el interés en este proyecto.

viernes, agosto 24, 2018

El IVA del cine

El pasado 5 de julio entraba en vigor el nuevo IVA cultural, consistente en una bajada del tipo de IVA para la cultura, medida que todo el sector pedía para ganar más dinero dinamizar el sector y que el público acudiese más a espectáculos culturales, especialmente a las salas de cine. Esta medida fue incluida por el Partido Popular y Ciudadanos en el prespuesto, y jaleada por el por el PSOE.

Como era esperable, la mayoría de las salas de cine no han bajado los precios de las entradas. Según el ministro - de ese ministerio que no debería existir - Guirao, si la bajada no se repercute, habría que replanteársela. No será que la consecuencia de esta bajada de IVA no fuera la esperable: que muchas salas no la iban a aplicar y a beneficios.

Sin embargo, este no es el fondo del debate. Si tan buena son las bajadas de IVA, según el propio PSOE para el sector. ¿Por qué no se aplican a todos los sectores?. Eso si, luego a muchos se le llenan la boca que en España se recauda poco vía IVA. A lo mejor, la auténtica reforma del IVA sería unificar todos los tipos en uno, porque lo que no se puede estar uno quejando de que se recauda poco por un lado y estableciendo por sectores bajadas o exenciones fiscales en función de la presión que es capaz de hacer el lobby de turno.

domingo, agosto 12, 2018

Compilar SDL 1.2.15 en macOS X 10.13 (High Sierra)

Simple DirectMedia Layer es una librería multiplataforma que permite control de video, dispositivos de entrada y sonido. La versión actual de es la 2.x, siendo la 1.2.x una versión histórica y fuera de soporte. Sin embargo, aunque no se desarrolle, todavía hay programas, como Caprice 32 el emulador de Amstrad CPC que lo necesita para ejecutarse.

Esta librería necesita dos pequeñas modificaciones para que compile sin problemas en la última versión de macOS X, ya que no compila de serie:

diff -ru SDL-1.2.15/src/video/quartz/SDL_QuartzVideo.h SDL-1.2.15.macosx/src/video/quartz/SDL_QuartzVideo.h
--- SDL-1.2.15/src/video/quartz/SDL_QuartzVideo.h 2012-01-19 07:30:06.000000000 +0100
+++ SDL-1.2.15.macosx/src/video/quartz/SDL_QuartzVideo.h 2018-07-22 23:36:18.000000000 +0200
@@ -91,7 +91,9 @@
     CGDirectDisplayID  display;            /* 0 == main display (only support single display) */
     const void         *mode;              /* current mode of the display */
     const void         *save_mode;         /* original mode of the display */
+#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
     CGDirectPaletteRef palette;            /* palette of an 8-bit display */
+#endif
     NSOpenGLContext    *gl_context;        /* OpenGL rendering context */
     NSGraphicsContext  *nsgfx_context;     /* Cocoa graphics context */
     Uint32             width, height, bpp; /* frequently used data about the display */
diff -ru SDL-1.2.15/src/video/x11/SDL_x11sym.h SDL-1.2.15.macosx/src/video/x11/SDL_x11sym.h
--- SDL-1.2.15/src/video/x11/SDL_x11sym.h 2012-01-19 07:30:06.000000000 +0100
+++ SDL-1.2.15.macosx/src/video/x11/SDL_x11sym.h 2018-07-22 23:41:47.000000000 +0200
@@ -165,7 +165,7 @@
  */
 #ifdef LONG64
 SDL_X11_MODULE(IO_32BIT)
-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
+SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
 SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
 #endif

Para compilar hay que especificar el path de las librerías de X11, de la siguiente manera:

env CFLAGS="-I/usr/X11/include" LDFLAGS="-L/usr/X11/lib" ./configure --prefix=/usr/local
make
# Como administrador
make install

viernes, julio 27, 2018

Videotutorial com los primeros paso con git

git es un sistema de control de versiones cuya principal ventaja es su facilidad par trabajar en entornos distribuidos. Hay muchas maneras de aprender a usar este software, pero para dar los primeros pasos (creación de repositorios, añadir ficheros al mismo, commit) este pequeño video tutorial de 20 minutos, puede servinos. No esperéis grandes descubrimientos, es sólo los comándos básicos para empezar, pero lo mismo os puede servir si queréis saber como se usa. Podéis encontrar más documentación en Resources to learn Git

(vía Reddit.programming)

domingo, julio 15, 2018

Google vs Yahoo vs Bing: Una curiosidad

Carguemos Firefox y no estemos loguedos en ningún servicio. Hagamos una búsqueda sencilla, por ejemplo APG-65 en cada uno de los principales buscadores. Lo normal es que el primer resultado sea el de la wikipedia. Veamos cuales son las URL's que nos devuelven, usando botón derecho y copiar ruta de enlace

Google

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwj8rOXn9qDcAhVK1BoKHZ0SBYwQFggnMAA&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAN%2FAPG-65_radar_family&usg=AOvVaw01dDz3jRT1kiBuX8DySHwx

Yahoo

https://r.search.yahoo.com/_ylt=AwrJS9YjJktbVikAiBCT.Qt.;_ylu=X3oDMTByaW11dnNvBGNvbG8DaXIyBHBvcwMxBHZ0aWQDBHNlYwNzcg--/RV=2/RE=1531680419/RO=10/RU=https%3a%2f%2fen.wikipedia.org%2fwiki%2fAN%2fAPG-65_radar_family/RK=2/RS=wqAqykBebI6AweYjwtNAYf_.Zdg-

Bing

https://en.wikipedia.org/wiki/AN/APG-65_radar_family

De los tres buscadores principales sólo Bing devuelve el enlace real, de tal manera que si pulsas en él, te vas directo al resultado. Tanto Google como Yahoo, si pulsas en enlace, primero pasas por los servidores de Google - para guardar los correspondientes datos - y luego te realiza la redirección. Evidentemente, si estás logueado en cualquiera de estas dos plataformas, estos datos pasan a formar parte de las estadísticas que se tienen y las preferencias de los usuarios. En el caso de Google no siempre fue así, recuerdo que tiempo atrás funcionaba igual que Bing.

Simplemente, es ser consciente como se alimentan los grandes cuerpos de datos de estos gigantes de Internet.

sábado, julio 14, 2018

Libros de programación de los años 80 de Usborne

Usborne es una editorial británica especializada en libros para niños y adolescentes. Durante los años 80 publicaron varios libros de programación alguno de los cuales fueron traducidos en España la editorial Plesa-SM en la colección electrónica. Hace dos años Usborne decidió poner a disposición de todos los libros en PDF para que los nostálgicos puedan descargarlos y con una licencia de uso bastante liberal así como permitir la adaptación de los programas siempre que no se usen para fines comerciales.

These pdf copies of the original Usborne Computer Guides published in the 1980s are free to download for your own personal or educational use. The books and files are the copyright of Usborne Publishing. You can provide a link to the pdfs from your website, but you may not host or distribute the original files.
You may adapt any of the programs in these books to modern computer languages, and share the adaptations freely online. You may not use the adaptations for commercial purposes. Please credit the name of the Usborne book from which you adapted the program, and provide a link to this webpage.

La lista de títulos puestos a disposción por Usborne es la siguiente:

Silicon Valley kill zone

Hace unas semanas The Economist publicaba un artículo American tech giants are making life tough for startups, en el que se habla como los gigantes tecnológicos están usando todos los datos de los usuarios para identificar a las posibles startups que puedan suponer una amenaza para sus negocios y comprarlas, cuando no directamente replicar la funcionalidad que están ofreciendo para evitar la competencia. Los partners que usan los servicios de las grandes nubes pueden encontrarse con la sorpresa que les han copiado la funcionalidad y que las puede ofrecer de manera más barata o incluso gratuita, sacándolos del mercado.

Según el artículo, cualquier startup que esté trabajando en un producto para consumidores finales, no es tan atractiva para el venture capital como era ante, con lo cual puede tener dificultades para obtener financiación para poder crecer.

Pero sin embargo, este comportamiento de los grandes gigantes de internet tiene otro incentivo: Construir las startups para caer en el radar de los grandes grupos y que la compren cuanto antes.

Lo realmente interesante de todo esto, es como se están usando los datos y las telemetrías de estos gigantes de Internet. Y me atrevo a decir, que las búsquedas que los posibles ingenieros de esas startups estén usando para identificar las amenazas.

jueves, julio 12, 2018

El PSOE va a cometer de nuevo el error de los 80 con las nucleares

Dicen que el hombre es el único animal que tropieza dos veces con la misma piedra. Y el PSOE el partido político dispuesto a encarecer la electricidad y a hacer a España un país menos competitivo de nuevo, con la propuesta del cierre de las centrales nucleares.

En Alemania también adoptaron esas medidas han conseguido es aumentar sus emisiones de dióxido de carbono, retrasar el cumplir los objetivos y aumentar el precio de la electricidad. Alemania sacó de golpe 8 Gw de producción nuclear, posteriormente cerró otros dos reactores y ha instalado a lo largo de estos años 42 GW de fotovoltaica y 55 GW de eólica.

¿Tiene importancia todo esto? Mucha más de la que pensamos, por ejemplo Costes eléctricos y competitividad industrial:

Como promedio, para los sectores industriales españoles el precio de la energía ha aumentado un 19% por encima de los precios de los productos que ofrecen. Esta cantidad contrasta con los datos promedio de los demás países europeos de referencia, donde dicho aumento no es mayor del 9%, para Francia o del 3% en Alemania.

Notas

miércoles, julio 04, 2018

Reactores nucleares EPR y AP1000 conectados a red en China

China tiene un ambicioso programa de construcción de reactores nucleares con el objetivo de dotarse de una de las fuentes de generación eléctrica más estables, baratas y limpias con la que dar servicio a su población. Aproximadamente el 40% de los nuevos reactores se están construyendo en el país asiático.

En los reactores nucleares de tercera generación, se han incorporado las evoluciones y mejoras que se han ido desarrollando durante estas últimas décadas de explotación en los reactores de la anterior generación. Dentro de este grupo están en construcción varias centrales con dos diseños, el AP1000 de Westinghouse y el EPR de Framatome. Ambos son reactores de agua a presión (PWR). China está construyendo centrales donde se usa ambos diseños de reactor.

A principios del pasado mes de junio, el primer reactor EPR de la central china de Taishan 1 alcanzaba la criticidad y a finales de mes se conectaba a la red eléctrica.

De igual manera, el reactor AP1000 de la planta de Sanmen 1 alcanzaba la criticidad el 21 de junio, mientras que el pasado 2 de julio se conectaba a la red eléctrica.

Mientras tanto en Europa, especialmente en España, seguimos con los debates sobre si cerrar o no las nucleares sin ser conscientes que el abaratamiento de costes tanto de producción de energía como mediambientales va a suponer para China el parque de reactores nucleares que tiene en construcción. Veremos quien compite con ellos en el mundo industrial y globalizado en el que vivimos. Y eso sin contar que probablemente, disponer de energía barata, no dependiente del petróleo permita a China mejorar de manera significativa las condiciones de vida de su población.

Sigue habiendo demasiadas personas que piensan que encarecer la energía eléctrica, que no deja de ser un bien intermedio, es una buena idea.

viernes, junio 29, 2018

Dos notas breves sobre el intento de Golpe de Estado en Cataluña

Sobre el intento de golpe de estado en Cataluña comandado por Esquerra Republicana de Cataluña (ERC), Partido por Cataluña (PxCat) y la Candidatura de Unidad Popular (CUP) se ha escrito mucho desde que se empezó a gestarse en las vergonzosas sesiones del Parlamento de Cataluña el 6 y 7 se septiembre del año pasado, donde esos partidos políticos decidieron que la mitad de la población de su región no tenían derechos políticos dignos de ser respetados.

La primera noticia que quiero traer aquí es del uso - con la complicidad de los mandos de la mismas - de los Mozos de Escuadra como policía política: entre la documentación que se intentó destruir por parte de la policía regional se encontraron informes sobre asistentes a actos en contra del independentismo. Infornes y fotografías. A esto hay que añadir los que se dedicaron a espiar a las fuerzas y cuerpos de seguridad con motivo de la falsa votación que ocurrió el 1 de Octubre en Cataluña. Para servir a los ciudadanos (los independentistas, los otros son de segunda categoría).

La segunda nota tiene que ver con el espacio radioeléctrico, probablemente uno de los dominios donde el Estado ejerce más control. El golpista Puigdemont tenía lista la expropiación de las diferentes licencias de los operadores de radio y televisión, según la documentación incautada en la oficina de Antoni Molons: Las cartas que les iba a enviar a los medios diciendo que las licencias actuales dejaban de tener validez.

Con estos golpistas, son los que según el actual gobierno de España, presidido por Sanchez Castellón, según vimos hace unos días en una respuesta en el Parlamento al diputado Gabriel Rufián, que está apoyando a los golpistas , son con los que hay que destensar la situación y llegar a acuerdos :)

jueves, junio 28, 2018

Dos enlaces a libros gratuitos sobre Software Defined Radio y Tratamiento de señales en Python

Si os gusta el tratamiento de señales usando Python, se ha publicado en PDF Think DSP escrito por Allen B. Downey para los que queráis introduciros en el tratamiento de señales usando Python. El libro se divide en los siguientes capítulos:

  • Chapter 1 - Sounds and signals
  • Chapter 2 - Harmonics
  • Chapter 3 - Non-periodic signals
  • Chapter 4 - Noise
  • Chapter 5 - Autocorrelation
  • Chapter 6 - Discrete Cosine Transform
  • Chapter 7 - Discrete Fourier Transform
  • Chapter 8 - Filtering and Convolution
  • Chapter 9 - Differentiation and Integration
  • Chapter 10 - LTI systems
  • Chapter 11 - Modulation and sampling

Para aquellos que os guste el Software Defined Radio, Software-Defined Radio for Engineers, de Travis F. Collins, Robin Getz, Di Pu y Alexander M. Wyglinski. El libro se divide en los siguientes capítulos:

  • Chapter 1 – Introduction to Software-Defined Radio
  • Chapter 2 – Signals and Systems
  • Chapter 3 – Probability in Communications
  • Chapter 4 – Digital Communications Fundamentals
  • Chapter 5 – Understanding SDR Hardware
  • Chapter 6 – Timing Synchronization
  • Chapter 7 – Carrier Synchronization
  • Chapter 8 – Frame Synchronization and Channel Coding
  • Chapter 9 – Channel Estimation and Equalization
  • Chapter 10 – Orthogonal Frequency Division Multiplexing
  • Chapter 11 – Applications for Software-Defined Radio

lunes, junio 18, 2018

Primer Aniversario del incendio de Pedrógão Grande

Hoy se cumple el primer aniversario del terrible incendio que arrasó la zona portuguesa de Pedrógão Grande,localidad situada en el centro de Portugal. Como consecuencia del incendio fallecieron 64 personas, muchas de ellas atrapadas por el fuego en sus coches mientras intetaban huír del fuego que arrasó más de 50000 hectáreas de terreno. En las labores de extinción colaboraron medios aéreos de España, Marruecos, Francia e Italia ayudando a los bomberos portugueses y a los procedentes de otros países como la UME española.

Algunas de las imágenes que vi de aquellos días en cuentas de instagram del 43 Grupo daban una idea del infierno que se desató en el centro de Portugal y de la gran dificultad a la que tuvieron que hacer frente todos los medios implicados en la extinción.

Sólo cabe acordarse de la víctimas y agradecer a todas las personas del operativo que hicieron posible la extinción del incendio: Sois el baluarte que protege el medio forestal.

jueves, mayo 31, 2018

Nucleares y la moción de censura

Esto es una noticia sobre las nucleares que leía, sobre una de las posibles consecuencia de la más que previsible victoria de los que han presentado la moción de censura en España: El forzar el cierre de las centrales nucleares existen en España cuando alcancen los 40 años aunque estén en condiciones técnicas y de seguridad adecuadas para su funcionamiento, afirmación respaldada en este tuit de Cristina Narbona, antigua ministra de medioambiente del PSOE.

Afirma:

estamos perdiendo oportunidades de mayor bienestar y creación de empleo de calidad

Bien, esa oportunidad oportunidad se perdió cuando el partido de Narbona, el PSOE, decidió a mediados de los 80 parar la construcción de las centrales nucleares, haciéndonos perder acceso a una energía competitiva y obligándonos gastar dinero en la importación de combustibles fósiles y a comprar energía eléctrica de origen nuclear a Francia. Por no hablar, de las consecuencias que ha tenido las políticas energéticas del gobierno de Zapatero al cuál perteneció en el precio de la energía eléctrica, para pagar las primas de las renovables.

El nacionalismo vasco y catalán

Me hace bastante gracia - y reconozco mi culpa en esto - que las personas que estemos fuera del ámbito de influencia de los nacionalismos reaccionarios catalán y vasco pensemos que a los partidos que representan la supuesta - y mentirosa - máscara amable del nacionalismo se les contenta con dinero en los Presupuestos Generales del Estado.

Es una de las mayores falsedades que nos hemos crídos muchos - que no somos politólogos -, pero que también se han creído medios y políticos, y que nos han transmitido ese mensaje. Veamos, lo que que quiren tanto PNV como PDcat (CiU) es simplemente un Estado donde puedan hacer y deshacer a su antojo.

Por eso es normal que ahora mismo estén apoyando a Sánchez Castejón en la moción de censura en España los que hace apenas una semana firmaban con el mismo los prespuestos o los que acusaban de carceleros al PSOE por apoyar el uso del artículo 155 contra los golpistas catalanes: porque ahora le convienen a sus intereses y ven una oportunidad para doblar más la mano al resto del Estado para mantener sus reaccionarias ideas racistas.

Y cuanto antes nos demos cuenta de esto, mejor: Estos lodos vienen del trato de favor que se ha dado a los nacionalismos por la incapacidad patológica de los grandes partidos de ámbito español de ponerse de acuerdo (y sobre todo de los medios que los han apoyado).

Los datos del IRPF español fueron públicos

De vez en cuando, surgen voces qua apuestan por hacer públicos los datos de las declaraciones de haciencida de las personas físicas. Lo que mucha gente no sabe es que en el diseño original del IRPF tras la Constitución del 78, se aprobó que los datos fueran públicos. Cualquiera podía ir a la las delegaciones de hacienda y consultar cúanto ganaban sus conciudadanos:

El IRPF nació con tal afán de transparencia que el Gobierno aprobó en 1978 la publicación de los datos de contribuyentes. Las llamadas “listas” se colgaban en las sedes de Hacienda y cualquier español podía bucear en los inmensos tomos para conocer con nombres y apellidos las declaraciones de sus conciudadanos. Las listas se publicaron en 1979 y 1980

Pero claro, esa información pública, también tenía valor para los delicuentes, tal como demostraton los asesinos de ETA en el secuestro de Luis Suñer. Dejaron de publicarse en el año 1981 a raíz de este secuestro -recordad, estábamos en plenos años del plomo -.

Siempre que se habla de esta medida, se presenta como un incentivo para evitar el fraude fiscal: Si tus vecinos pueden consuntar lo que declararas y observan tu tren de vida, puede detectarse a aquellos cuyo tren de vida no es compatible con el IRPF declarado. Llegado el momento, podrían denunciar ante las autoridades correspondientes.Si se me permite un poco el cachondeo, parafraseando a Revel - La primera fuerza que dirige el mundo es la mentira. - , en España podríamos decir que La primera fuerza que dirige a los españoles es la envidia.

No me preocupa demasiado lo anterior: mucho más interés tiene el mal uso que puede hacerse de esos datos públicos por parte de delincuentes. Aunque España es un país seguro, hay que recordar que tenemos grupos de crimen organizado cometiendo crímenes, algunos de ellos, muy violentos y que nuestra frontera Sur es especialmente sensible con la inmigración ilegal y el tráfico de drogas. Sería poner en bandeja la selección de objetivos a los delicuentes.

Es cierto: medidas similares existen en los países l nórdicos, por ejemplo Suecia. Pero es necesario comparar las fronteras de Suecia con las españolas y cual es su población, 10 millones frente a los 46 millones de habitantes de España. Y, por supuesto, estas medidas tampoco han cortado de raíz el fraude fiscal en los países que las han aplicado.

domingo, mayo 27, 2018

Usar Ansible para instalar Python

Los módulos de Ansible están escritos en Python. Por lo tanto, si la máquina destino no tiene Python instalado, no se puede ejecutar hasta que no se instale. Ansible tiene la opción raw para poder ejecutar un comando usando la conexión ssh directamente, saltándose todo el sistema de módulos. El uso más normal de este comando es instalar Python para poder usar posteriormente el sistema de módulos. Un ejemplo de uso, es poder usar Ansible para provisionar una Ubuntu 16.04 instalada en EC2, ya que por defecto la ami que se usa no tiene Python. Si incluimos en nuestro playbook una tarea de este tipo:

  tasks:
    - name: install python 2
      raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
      become: yes

Sino encuentra el ejecutable de Python, nos instalará el mismo. Luego, podremos usar los módulos de Ansible como siempre. Un ejemplo completo de un playbook que despliega una máquina en EC2 usando la AMI de Ubuntu 16.04 y se instala python en la misma para poder usar el resto de los módulos. Las variables se pueden definir en un fichero de configuración y pasarlas con -e a ansible-playbook.

- name: Deploy EC2 machine and install python if no exists
  hosts: 127.0.0.1
  connection: local
  gather_facts: False
  tasks:
    - name: Create the security group
      ec2_group:
        name: "{{ec2securitygroup}}"
        description: Access
        rules:
          - proto: tcp
            ports:
              - 22
            cidr_ip: 0.0.0.0/0

    - name: Deploy the machine
      ec2:
        region: "{{ec2region}}"
        key_name: "{{ec2sshkey}}"
        instance_type: "{{ec2instancetype}}"
        image: "{{ec2ami}}"
        wait: yes
        count: 1
        group: "{{ec2securitygroup}}"
        vpc_subnet_id: "{{ec2subnetid}}"
      register: ec2

    - name: If EC2 exists, register its IP
      add_host:
         hostname: "{{item.public_ip}}"
         groups:
          - deployedMachines
      with_items: "{{ec2.instances|default([])}}"

    - name: Wait for SSH to come up
      wait_for:
          host: "{{item}}"
          port: 22
          delay: 10
          timeout: 60
          state: started
      with_items: "{{groups[\"deployedMachines\"]|default([])}}"


- name: Configure instance
  hosts: deployedMachines
  user: "{{remoteuser}}"
  gather_facts: False
  tasks:
    - name: install python 2
      raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
      become: yes
    - name: Update the system
      shell: apt-get update && apt-get -y install  python-apt
      become: yes


Las variables a definir en el fichero yaml de configuración son:

ec2machinename: Nombre de la máquina
ec2sshkey: Clave de la instancia que se va a usar.
ec2instancetype: Tipo de instancia
ec2region: Región de Amazon
ec2ami: "ami-43a15f3e" # Esta es la AMI de Ubuntu en us-east-1
ec2subnetid: ID de la subred donde se va a desplegar
ec2securitygroup: Nombre grupo de seguridad
remoteuser: "ubuntu" # Por defecto, el usuario de las AMI es este

jueves, mayo 24, 2018

Energía nuclear en España: Lo que pudo haber sido

La energía nuclear en España es la responsable de 20% de la generación eléctrica. Actualmente en existen siete reactores en funcionamiento: Almaraz I y II, Cofrentes, Ascó I y II, Trillo I y Valdellos II. En los años 80 había varias centrales en construcción y otros proyectos que fueron paralizados por el Gobierno del PSOE.

El miedo irracional a la misma fue incluido en el programa del PSOE del año 1982, que se concretaría en 1984 en la moratoria nuclear que forzó la paralización de las obras que se estaban haciendo en la central nuclear de Lemoniz (dos reactores para generar 2000 MWe)1, Valdecaballeros I y II (dos reactores de 975 MWe cada uno) y el segundo grupo de Trillo (que de usar el mismo reactor de Trillo I sería de unos 1066 MWe).

Se paralizaron obras con centrales en un estado muy avanzado de construcción, incluso en pruebas prenucleares como Lemoniz o Valdecaballeros, con un total de generación eléctrica prevista de unos 5016 MWe, sin contar con otros proyectos paralizados o en estudio. El coste de dicha paralización tuvo que pagarse a las empresas eléctricas que habían hecho las inversiones y que los consumidores pagamos con el famoso % de moratoria nuclear que incluían las facturas eléctricas2

Ese es el coste que se ve de haber parado la construcción de dichos reactores. El coste que no se ve, es el abaratamiento de la generación eléctrica que hubiesemos tenido los españoles de disponer de esos 5016 MWe en los años 80, y las ventajas que eso hubiese acarreado para nuestra economía,ya que disponer de una fuente de energía más barata nos hubiese hecho ser más competitivos y dedicar los recusos para comprar combustibles fósiles para la generación a otra cosa. Máxime cuando, porque al final hemos estado comprando a Francia muchos años energía de origen nuclear para cubrir la demanda que no erámos capaces de generar.

Una de las razones por las cuales Francia puede permitirse su Estado de Bienestar, sus inversiones y su industria es porque la apuesta que se hizo de usar energía nuclear para la generación eléctrica le permite ser mucho más independiente de fuentes de energía basada en combustibles fósiles y por tanto dedicar esos recursos liberados a otras cosas como su propio estado de bienestar o pagar sueldos más altos.

En el libro Energía nuclear: estado actual y perspectiva inmediata puede leerse un apartado dedicado a las consecuencias de dicha moratoria escrita por Juan Velarde, las consecuencias socio-económicas de la moratoria nuclear. Para Velarde, una de las raíces de la crisis del 90 al 96 en España es nuestra dependencia con otros países para los recursos energéticos. (aquí también)

También sería interesante encontrar un buen gráfico de las importaciones y exportaciones3 de electrocidad en España desde los años 70. Así como el % que las familias y la industria ha dedicado a la compra de energía sobre sus gastos totales, comparado con otros países, como Francia.

Notas

  1. En el caso de Lemoniz hay que tener en cuenta el papel de los asesinos de ETA contra los trabajadores de la central, incluyendo el secuestro y asesinato de José María Ryan Estrada por los valientes gudaris vascos ...
  2. Algunos opinan que esto fue un rescate a las eléctricas, como si en la España de la época, no fuera el gobierno quien fijara el precio de la electricidad.
  3. Si, tal ha sido la caída de actividad en la última crisis que hemos exportado electricidad.

sábado, mayo 19, 2018

Google: The Selfish Ledger o la ingeniería social que se nos viene encima

(vía Slashdot) Hace unos días se filtró un vídeo realizado hace unos años en Google X , una de las compañías de desarrollo de nuevas ideas de Google llamado Selfish Ledger - parafraseando la teoría del gen egoista de Dawkins -. Según el artículo publicado por The Verge y el propio video (lo enlazo al final), la visión del futuro de Google es un mundo donde se recaban todo tipo de datos, se procesan por los algoritmos y los sistemas de Google sirven para darnos cuales son las pautas correctas a seguir según los datos que ha ido procesando - y lo que opinen los diseñadores de esos sistemas de recomendación, esto es mío - . La idea, similar a la de los genes, es que esos corpus de datos, se pasen de generación en generación con el objetivo de mejorar la especie y acabar con los males del mundo. En el vídeo estos corpus de datos lo llama ledgers. El uso adecuado de estos ledgers, junto con los sistemas de recomendación pueden ser usados para cambiar el comportamiento de la especie humana.

Por supuesto, ni una palabra sobre privacidad ni anonimato, ya de la ingeniería social en la que incurren menos. Vale, el vídeo está hecho para provocar. Pero no está mal tener en cuenta estas cosas cuando veamos los 10 primeros resultados de una página de Google respecto a según que temas. Sólo os puedo aconsejad que lo veáis y leáis el artículo de The Verge y que saquéis vuestras conclusiones.

jueves, mayo 17, 2018

Configurar la captura de pantalla en OS X

OS X tiene una combinación de teclas que permite hacer una captura de toda la pantalla o de una de las ventanas. Si se quiere captura la pantalla completa se utiliza la secuencia shift + cmd + 3, mientras que si se quiere capturar una ventana la combinación de teclas a usar es shift + cmd + 4. Por defecto las capturas de pantalla se almacenan en formato PNG en el escritorio.

La carpeta donde se guarda las capturas de pantalla puede cambiarse fácilmente. Por ejemplo si se quiere que se almacenen en ~/Desktop/capturas:

mkdir -p ~/Desktop/capturas
defaults write com.apple.screencapture location ~/Desktop/capturas
killall SystemUIServer

Se puede cambiar el formato en el que se almacenan las imágenes. Por ejemplo, para que capture en formato jpg:

defaults write com.apple.screencapture type jpg
killall SystemUIServer

El tipo de formato puede ser jpg, png - por defecto - , pdf, tiff o gif.

Se puede cambiar el nombre del fichero de pantalla, cambiando la propiedad name:

defaults write com.apple.screencapture name "captura"
killall SystemUIServer

Referencias

martes, abril 24, 2018

Jordi Évole y la acción de la UE en el Mediterráneo

De todas las ficciones que le he leído a Jordi Évole, probablemente la que más me llama la atención es aquella en la que afirma sin despeinarse que la Unión Europea no está haciendo nada en el Mediterráneo para intentar salvar a los inmigrantes que las mafias dedicadas al tráfico de personas lanzan al mar desde las costas libias. De hecho, ha vuelto de nuevo a embarcase en los barcos de Open Arms para grabar un programa. Aquí tenéis algunos ejemplos de tuits con los que se despacha (1,2)

Que Jordi Évole lleva bastante tiempo mintiendo sobre la relación de la Unión Europea y el tráfico de personas en el Mediterráneo es algo que puede comprobar fácilmente cualquiera. Sólo tiene hay que ir a la página web de EUNAVFOR MED o operation Sophia y podrá ver la cantidad de medios que la Unión Europea lleva dedicando desde octubre del 2015. El velero Astral, de la ONG Open Arms se adquirió en julio de 2016. Curiosamente, lo primero que se hace es embarca el equipo de Évole en el velero.

Jordi Évole lleva bastante tiempo afirmando que en la Unión Europea no se ha hecho nada para ayudar a los inmigrantes que salen desde Libia. Veamos los hechos con una pequeña muestra:

Podría seguir buscando referencias - cosa que haré cuando tenga un hueco - . Hay multitud de noticias donde se habla de la participación de los distintos medios puestos por la Unión Europea para ayudar a la lucha contra el tráfico ilegal de personas en el Mediterráneo. Y a esto le sumanos la inestimable labor que realizan multitud de ONGs en la zona, que nadie critica su labor.

Decir que la Unión Europea no ha puesto recursos para salvar a personas en el Mediterráneo es simplemente una mentira. Se ha puesto muchos medios y dinero. ¿Se podría poner más? ¿Se podría hacer más? No lo sé. Pero,ni está ciega ni mira para otro lado. Aquellos que realizan esas afirmaciones, mienten. Pronto tendremos un nuevo Salvados donde se nos intentará convencer de nuevo que la UE está de brazos cruzados. Y ahora, reflexionen sobre lo que muestra o no quiere mostrar el famoso documental Astral. Lo que no es justo es presentar a ciertas ONGs como las únicas que se preocupan por el problema de la inmigración y retratar a la UE como un ente frío que pasa del problema. Algo, por otra parte, clásico del maniqueísmo que suele hacer gala Évole.

Por otra parte, las mafias saben perfectamente que los europeos vamos a hacer lo posible por rescatar a las personas que los traficantes dejan en medio del mar. No me extrañaría mucho, que incluso se lo digan a los mismos inmigrantes que cuentan con esa baza. Un ejemplo de lo que digo es lo que le sucedió a Helena Maleno, a la que las mafias del tráfico de personas en el Estrecho, avisaban para que ésta llamase a Salvamente Marítimo.

Enlaces

viernes, abril 13, 2018

Jon Ritman estará en Retromadrid 2018

¿Os suena el videojuego de Batman o el maravilloso Head Over Heels?. Ambos desarrollados originalmente para máquinas de 8 bits con 64 Kb de memoria y apenas 4 Mhz. Usan la perspectiva isométrica que popularizó juegos como el Knight Lore. En mi caso, el Head Over Heels me proporcionó muchísimas horas de diversión en mi infancia en mi viejo Amstrad CPC 6128.

Pues Retromadrid en la edición que se celebrará este año el fin de semana del 28 y 29 de Abril, se trae el domingo 29 a Jon Ritman el programador de estos dos clásicos, a una charla coloquio. Todo un mito de la programación de los 8 bits. Merecerá la pena oír que cuenta sobre esa época.

lunes, abril 09, 2018

Applescript y Spotify: Uso del API para hacer un sistema de notificaciones

En MacOS X, el cliente de Spotify tiene un API accesible a través de Applescript, que permite controlar el reproductor y obtener información sobre las pistas que están sonando (álbum, artista, portada, etc). Está un poco limitado: no permite gestionar las listas de reproducción de manera sencilla.

Mi idea original era utilizar algún tipo de script que me permitiera gestinar mis listas de reproducción y hacer una copia de seguridad de la misma, así como ver la posibilidad de sincronización con otras aplicaciones. Sin embargo, el API no permite esta funcionalidad - al menos, de manera directa - , así que por hacer una prueba con el mismo, he implementado un pequeño script que se ejecuta desde los launch agents, comprobando cada cierto tiempo si está corriendo Spotify, en caso de que así sea, cuál es la canción que está reproduciendo y se compara con la anterior. En caso de que sea nueva, se muestra una notificación con la nueva canción que se ha empezado.

El script que implementa eso es el siguiente:

-- This script will loop if Spotify is running, showing a notification each time a new 
-- track is playing
use framework "Foundation"
use scripting additions
on getCurrentlyPlayingTrack()
  tell application "Spotify"
    set currentArtist to artist of current track as string
    set currentTrack to name of current track as string
    set currentAlbum to album of current track as string
    set theText to currentArtist & " - " & ¬
      currentAlbum & " - " & ¬
      currentTrack
    return theText
  end tell
end getCurrentlyPlayingTrack

on run
  set currentTrackID to ""
  repeat
    if application "Spotify" is running then
      tell application "Spotify"
        if player state is stopped or player state is paused then
          current application's NSThread's sleepForTimeInterval:2
        else
          set tmpTrackID to id of current track
          if tmpTrackID = currentTrackID then
            current application's NSThread's sleepForTimeInterval:2
          else
            display notification my getCurrentlyPlayingTrack()
            set currentTrackID to tmpTrackID
          end if
        end if
      end tell
    end if
    current application's NSThread's sleepForTimeInterval:2
  end repeat
end run

Las dos partes más interesantes de este script son aquellas partes que interaccionan con Spotify y la técnica usada para realizar una espera activa.

La interacción a través del API, nos permite saber cual es el estado actual del player, player state, que puede ser playing, paused o stoped:

tell application "Spotify"
  if player state is playing then
    display dialog "Player running"
  else if player state is paused then
    display dialog "Player paused"
  else if player is stopped then
    display dialog "Player is stopped"
  else
    display dialog "Unknow state"
  end if
end tell

Por otra parte, se obtiene información de la pista actual seleccionada en el reproductos con current track:

tell application "Spotify"
  set currentArtist to artist of current track as string
  set currentTrack to name of current track as string
  set currentAlbum to album of current track as string
  set theText to currentArtist & " - " & ¬
    currentAlbum & " - " & ¬
    currentTrack
  display dialog theText
end tell

El resto de las propiedades pueden verse añadiendo la aplicación al Editor de Script y viend las propiedades del objeto: Se puede controlar el volumen, la pista que se está reproduciendo, pasar a la siguiente pista, a la anterior...

Puede que nos interese que este script siempre se esté ejecutando, pero claro, no nos interesa estar haciendo espera activa, usar la funcionalidad presente en las versiones de AppleScript incluidas a partir de Yosemite, de llamar a clases de Objective-C, en vez de usar el comando delay, hago un sleep para que el control se ceda a otro hilo:

use framework "Foundation"
use scripting additions
current application's NSThread's sleepForTimeInterval:2

Para que nuestro pequeño script se arranque cada vez que entremos en el ordenador, lo ideal es implementarlo como un un Launch Agente. Si nuestro script está grabado en la ruta ~/Library/Scripts/spotify.scpt, se puede crear un fichero XML en ~/Library/LaunchAgents y cargarlo en el sistema con ayuda de launctl. Si creamos en el directorio de agentes un fichero que podemos llamar local.spotify.nexttrack.plist con el siguiente contenido:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>local.spotify.nexttrack</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>osascript "$HOME/Library/Scripts/spotifyon.scpt"</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Y ahora, lo ponemos bajo supervisión del launchd, que lo lanzará cada vez que nos loguemos en el sistema:

cd ~/Library/LaunchAgents
launchctl load local.spotify.nexttrack.plist

Tal como está desarrollado el script, este hará un bucle, comprobará si está Spotify ejecutándose. De ser así, mirará el estado del reproductos, y si está reproduciendo y la pista es distinta a la anterior, mostrará una notificación.

sábado, abril 07, 2018

No importa el qué, importa el quién: Google vs Facebook

(via slashdot) Bloomberg acaba de publicar que los mensajes e imágenes que se envían usando los sistemas de mensajería de Facebook son analizados por la compañia para ver si los mismos cumplen con sus términos de servicio. En caso de que se produzca una violación de dichos términos, los mensajes no alcanzan sus destinatarios.

La noticia se enmarca dentro de los problemas que está teniendo Facebook con la privacidad. Lo curioso, es que este tipo de técnicas lo llevan usando años Google. Y no causan tanta revuelta. Por ejemplo, hasta hace poco, Google analizaba los correos de Gmail para poder ofrecer publicidad dirigida. O analizaba los ficheros para detectar aquellos s archivos con conetnido adulto que borraba del servicio GDrive.

El tratamiento de uno u otro caso en la prensa me lleva llamando la atención bastante tiempo: Ambas empresas viven del minado y perfilado de datos, para ofrecérselo a sus anunciantes: minan datos, perfilan a los usuarios e intentan aplicar todo tipo de algoritmos para que la publicidad sea lo más dirigida posible - maximizar la información mutua - . Sin embargo, Google aparece siempre rodeada por el Don't be evil frente a Facebook. ¿estamos ante un nuevo caso de no importa el qué sino el quién realiza un acto determinado?.

Más allá del tratamiento que estamos viendo en medios de comunicación de estos temas, hay una lección que se debe de extraer de todos estos casos: Los sistemas de análisis automático de contenidos van a ir a más. Y dependiendo de las condiciones de servicio, los proveedores pueden alterar conforme les plazca, pueden hacer imposible transmitir o almacenar en alguno de sus servicios según qué contenido. Aquí hemos puesto el ejemplo de contenidos para adultos legales. Pero llegado el momento,puede hacerse extensible a otro tipo de contenidos legales pero que por diversos motivos, a cualquiera de estos proveedores de servicio no les interese llevar.

¿Significa una crítica a Google o Facebook?. No, uso ambos servicios todos los días. Pero sé como funcionan y que se reservan el derecho de hacer con su plataforma lo que quieran. Y esto último, no debe olvidarse.

miércoles, marzo 28, 2018

Instituto Hidrográfico de la Marina: Geoportal de la Infraestructura de datos espaciales

La principal misión del Instituto Hidrográfico de la Marina es la confección de las cartas náuticas que contribuyen a la seguridad de la navegación. Estas cartas se publican tanto en papel como de manera digital, pero en este último caso en standard llamado Electronic navigational chart, que tiene un sistema de protección de la información para garantizar la integridad de la información distribuida electrónicamente.

Debido a esto, el IHM ha desarrollado y puesto en funcionamiento el Geoportal de la Infraestructura de datos espaciales del Instituto Hidrográfico de la Marina donde podremos consultar esos datos derviados de las cartas oficiales. Sin embargo, una clara advertencia por parte del IHM

Se ha de tener en cuenta que los productos, aquí ofrecidos, son productos derivados del flujo de producción de la cartografía náutica oficial. Por este motivo, parte de la información mostrada tiene gran similitud con la de las ENC o cartas de papel oficiales. Esto no debe confundir al usuario de forma que pueda interpretar que la información mostrada sea susceptible de ser empleada para ninguna actividad relacionada con la navegación, ya que se comprometería gravemente su seguridad.

Si accedéis al visor de datos, se puede explorar las aguas españolas y buscar las refeencias a las diferentes cartas de navegación, tanto en papel , como en formato electrónico para la zona de los mapas que estamos viendo. Un ejemplo de una captura del visor

sábado, marzo 24, 2018

Desplegar máquinas en Amazon EC2 con ayuda de Ansible

Para hacer ciertas tareas, despliego máquinas en la nube EC2 de Amazon. Con ayuda de varios scripts y ssh, desde mi ordenador voy realizando trabajos necesito. Cuando acabo, destruyo las máquinas virtuales para que no tenga coste para la empresa.

Llevaba un tiempo pensando como automatizar de una manera sencilla esta operación. Sé que en Amazon se puede hacer algo similar con CloudFormation e incluso llamar a ese API de Amazon desde scripts escritos en Python, pero quería ver si fuera posible hacer algo más sencillo y con lo que tuviese alguna experiencia previa.

Conozco la herramienta de automatización Ansible de otro proyecto en el que estuve trabajando hace dos años. Hacía bastante tiempo que no la usaba, pero letendo su documentación he visto que tiene dos módulos,ec2 y ec2_instance_facts que me podían servir para lo que quería.

Mi idea era desarrollar un playbook de Ansible, que ejecutándolo en el ordenador local, se encargara de:

  • Desplegar una determinada instancia de EC2, si no hay ninguna instancia con un nombre dado.
  • Esta instancia se desplegará en una red asociada a una VPC de Amazon determinada, con una clave ssh que se usará para acceder a la misma y con un grupo de seguridad asociado a dicho VPC.
  • La imagen AMI que vamos a usar corresponde a Ubuntu 16.04.3 LTS (xenial), usando virtualización de tipo hvm.
  • Una vez desplegada la instancia, el playbook entrará en el sistema donde realizará las siguientes operaciones:
    • Instarlar el git
    • Bajarse el JDK de Java e instalarlo.
    • Bajarse el maven e instalarlo.
    • Copiar desde el ordenador local la configuración de maven, el fichero situado en $HOME/.m2/settings.xml , al ordenador remoto.
    • Clonar varios repositorios desde el git.

Instalar Ansible

Para instalar ansible, lo más cómodo es usar entorno virtual de Python gestionado por un programa como virtualenv. Si se tiene este programa instalado hay que hacer lo siguiente para crear el entorno virtual e instalar dentro del mismo Ansible:

$virtualenv vansible
$source vansible/bin/activate
(vansible)$pip install ansible
(vansible)$ansible --version

El script

Al final de esta entrada podéis encontrar el script que he desarrollado para que se despliegue la máquina y me la deje configurada de acuerdo a lo que quiero. El formato del fichero que utiliza los playbooks de Ansible es yaml. Es un poco peculiar como podéis y el parser de ansible a veces hace cosas raras leyéndolo, con lo cual hay que tener bastante cuidado con lo que se pone.

Otra particularidad es que hago uso de los comandos ssh-agent y ssh-keyscan, así como la del reenvío del agente ssh sobre el túnel ssh para no tener que subir claves privadas a la máquina de Amazon.

Tampoco soy un usuario muy hardcode de Ansible. En cierta manera, quería tener algo que me ayudara a realizar mis tareas sin perder demasiado tiempo en la herramienta que fuera a usar. El script admite varias mejoras:

  • Comprobar antes de bajarse el JDK o maven que ya están instalados en la máquina.
  • Usar algunas opciones ssh para evitar tener que añadir al known_hosts las claves públicas de las máquinas remotas.
  • Ver si hay alguna construcción en las expresiones jinja2 que se usan, especialmente aquellas que usan la construccion expresion | default.
  • Comprobar si existe los repositorios git antes de bajarlos.

Para ejecutar el script:

(vansible)$ansible-playbook script.yml

Código fuente
- hosts: 127.0.0.1
  connection: local
  gather_facts: False
  vars:
    ec2machinename: <<ec2 instance name>>
    ec2sshkey: <<ssh key name to use in the instance>>
    ec2instancetype: "t2.xlarge" # instance type
    ec2region: "us-east-1"  # Amazon region
    ec2ami: "ami-43a15f3e" # AMI (this is the ubuntu one)
    ec2subnetid: <<subnet id>>
    ec2securitygroup: <<security group id>>
    privatekeypath: "~/.ssh/drizzt.key.pem"
    gitkeypath: "~/.ssh/id_drizzt_bitbucket"
    mavenconfigpath: "~/.m2/settings.xml"
    sshoptions: "-oForwardAgent=yes -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null"
    rcmd:
      - "sudo apt-get update"
      - "sudo apt-get -y install git-core"
      - "curl -L -O -# -H  'Cookie: oraclelicense=accept-securebackup-cookie' http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz"
      - sudo mkdir -p /usr/local/java/
      - sudo tar zxvf jdk-8u162-linux-x64.tar.gz -C /usr/local/java/
      - sudo ln -sf /usr/local/java/jdk1.8.0_162/bin/* /usr/local/bin/
      - curl   -L -O -#  https://archive.apache.org/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
      - curl   -L -O -#  https://archive.apache.org/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz.asc
      - sudo tar zxvf apache-maven-3.3.3-bin.tar.gz -C /usr/local/java
      - sudo ln -sf /usr/local/java/apache-maven-3.3.3/bin/* /usr/local/bin/
      - mkdir -p /home/ubuntu/{.m2,prog/atlas}
    remoterepos:
      - git@bitbucket.org:repo1/repo1.git
      - git@bitbucket.org:repo2/repo2.git



  tasks:
   - ec2_instance_facts:
      filters:
         "tag:Name": "{{ec2machinename}}"
         "instance-state-name": ["pending","running"]
     register: result
   - ec2:
      region: "{{ec2region}}"
      key_name: "{{ec2sshkey}}"
      instance_type: "{{ec2instancetype}}"
      image: "{{ec2ami}}"
      wait: yes
      count: 1
      group: "{{ec2securitygroup}}"
      vpc_subnet_id: "{{ec2subnetid}}"
      instance_tags:
        "Name": "{{ec2machinename}}"
     when: (result["instances"]|length == 0)
     register: ec2
   - name: Wait for SSH to come up
     wait_for:
        host: "{{ item.public_ip_address| default(item.public_ip) }}"
        port: 22
        delay: 10
        timeout: 60
        state: started
     with_items: "{{ ec2.instances |default(result.instances) }}"

   - name: Add the keys to ~/.ssh/known_host
     shell: ssh-keyscan -H {{item.public_ip_address|default(item.public_ip)}}  >> ~/.ssh/known_hosts
     with_items: "{{ ec2.instances |default(result.instances) }}"

   - name: Install git, java
     shell: ssh -i "{{privatekeypath}}" -l ubuntu "{{item[0].public_ip_address|default(item[0].public_ip)}}" "{{item[1]}}"
     with_nested:
      - "{{ ec2.instances |default(result.instances) }}"
      - "{{rcmd}}"
   - name: Copy the Maven config
     shell: "scp -i {{privatekeypath}} {{mavenconfigpath}} ubuntu@{{item.public_ip_address|default(item.public_ip)}}:.m2/"
     with_items: "{{ ec2.instances |default(result.instances) }}"
   - name: Add remote git key to ssh-agent
     shell: "ssh-add {{gitkeypath}}"



   - name: Copy the remote repositories
     shell: ssh -oForwardAgent=yes -i "{{privatekeypath}}" "ubuntu@{{item[0].public_ip_address|default(item[0].public_ip)}}" "cd /home/ubuntu/prog/atlas;env GIT_SSH_COMMAND='ssh {{sshoptions}}' git clone {{item[1]}}"
     with_nested:
      - "{{ ec2.instances |default(result.instances) }}"
      - "{{remoterepos}}"

jueves, marzo 22, 2018

.Facebook y privacidad: La hipocresía de los medios de comunicación

Estos días atrás se ha publicado en varios médios de comunicación que el equipo electoral de Donald Trump, a través de la empresa Cambridge Analytica, se dedicó a minar los datos de miles de usuarios de Facebook para poder influir en sus decisiones de voto e intentar que el mismo se decantara por Donald Trump. Es decir, lo que hacen todos los días Google o Facebook para vendernos la publicidad: Perfilar al máximo sus usuarios para intentar ofrecer anuncios en los que la posibilidad que el usuario clique sea la mayor. En este caso, el producto a vender es Trump

Todo esto es un escándalo porque se ha usado los datos privados de los usuarios de Facebook para hacer exactmente lo mismo que hizo Obama en el 2012 .

Para Franklin D. Roosevelt fue la radio. Y para John F. Kennedy, la televisión. Para la primera elección de Barack Obama fue Internet y, en particular, Facebook. Es sabido que, en cada una de esas elecciones, una nueva tecnología contribuyó a la victoria del candidato que mejor la supo aprovechar.

Hay una narración de toda estar historia muy interesante en la columna No son los rusos, es el big data de Juanma López Zafra

Por otra parte, está por ver cual ha sido la ganancia en votos que ha proporcionado a los diferentes candidatos el uso de estas técnicas de micro segmentación y propaganda política dirigida.

Ahora, no deja de ser curioso como toda la prensa parece haber descubierto que todas las grandes tecnológica que viven de la publicidad - Google, Twitter o Facebook - usan los datos que les damos tan cándidamente a cambio de sus servicios gratuitos para vendernos publicidad. No sé si han estado los últimos veinte años de retiro en el desierto de Gobi, o como se puede ignorar que el minado de datos y perfilado de usuarios es la base de los modelos de negocio de Google o Facebook.

Estas empresas se pueden permitir el lujo de dar servicios gratuitos o publicar el código que usan internamente porque su auténtico valor añadido es la cantidad de datos que poseen sobre sus usuarios, y como pueden usarlos para poder ofrecer a los anunciantes el target adecuado de los productos que quieren vender. Y estos datos se los hemos cedido todos: si no eres el cliente, eres el producto

No hay más que recordar como se publicó que Google dejaría de leer los correos de manera automática para insertar publicidad. Y a todos los que se están dando golpes de pecho con la publicidad dirigida de Facebook, ,le parecía lo más normal que Google hiciera lo mismo con el correo. Y ahora los golpes de pecho :)

Dos conclusiones sobre esta polémica

  • No importa tanto el qué - uso de datos para hacer propaganda electoral- como el quién - si lo hace Obama es un genio y si lo hace Trump un malvado
  • La pérdida de influencia de la prensa tradicional. En EEUU, prácticamente toda la prensa fue un bloque contra Trump. Aún así, ganó las elecciones.

domingo, marzo 18, 2018

Twitter para Mac: Un pequeño aviso a navegantes

El pasado 16 de Febrero Twitter anunciaba que dejaba de dar soporte al cliente oficial en MacOS X para centrarse en su versión web. Eso sí, lo que no suponía es que la frase in 30 days will no longer be supported hacía referencia a que aquellos que quisiéramos usar el cliente no nos iba a dejar entrar en la red de microblogging.

Simplemente, antes de ayer, Twitter no permitía usar dicho cliente en su red, no dejando acceder a la misma y obligando a la migración a otro cliente o a la web. Pero este movimiento también es un pequeño aviso sobre el poder que tienen sobre estas redes y los que basan su negocio sobre las mismas: Si Twitter quiere, puede dejar a un cliente fuera de la red muy fácilmente revocando su clave si decide que no estás cumpliendo con sus términos de servicio, cosa que nos puede parecer comprensible, pero que, a veces, olvidamos.

Al menos, con los programas que se vendían antes, te quedas sin soporte, pero normalmente, el programa seguía funcionando y podías hacer uso del mismo. En estas plataformas SaaS que se están imponiendo, no. No quiero imaginar, si un día, una persona que usa toda su autenticación para acceder a servicios con una cuenta de correo de Google, se encuentra con ésta suspendida....

jueves, marzo 15, 2018

Backup de Evernote con Applescript

Evernote es una aplicación diseñada para tomar notas y almacenar la información en libretas de acuerdo a las preferencias de sus usuarios. Estas libretas se almacenan en los servidores de la compañía en la nube. En función de la capa de servicio contratada, se puede tener mayor o menor volumen de datos almacenados y acceso desde diferentes dispositivos.

Utilizo la capa gratuita de este software para organizar mi información. Puesto que no uso imágenes ni contenido multimedia, me vale perfectamente con los 60 Mb mensuales de tráfico de esta capa. Sin embargo, como todo software que usa la nube, siempre quiero tener una copia local de mis datos. Y a ser posible, que ésta se realice de forma automática para poder llamar a la utilidad desde scripts que tengo preparados para la tareas en mi portátil.

En MacOS X Evernote está preparado para interactuar con el resto del sistema usando AppleScript, un lenguaje de scripting que está en los sistemas operativos de Apple desde la versión System 7. Con un pequeño script, es posible activar la aplicación, seleccionar un archivo de destino y hacer una copia local de nuestros datos almacenados en Evernote.

Evernote permite exportar los datos en un solo fichero XML, que usa el sufijo .enex o bien cada nota en un fichero HTML distinto. Mejor usar el primer formato, ya que la importación necesita del mismo para poder realizarse. Otra ventaja del fichero XML se puede procesar usando herramientas de terceros para obtener la información que interese.

El script para realizar la tarea es el siguiente, lo pegamos en el Editor de Script y lo guardamos. Se puede exportar desde el mismo editor como una aplicación, de esta manera con un simple doble click sobre la misma lo ejecutaremos.

tell application "Evernote"
    activate
    set theNewFilePath to (choose file name with prompt ¬
        "Save backup as:" default name ¬
        "Evernote Backup" default location (path to documents folder)) as string
    -- Add the suffix .enex if not in the system
    -- Get the filename
    set AppleScript's text item delimiters to {":"}
    set splitPathList to every text item of theNewFilePath
    set theFilename to last item of splitPathList
    set AppleScript's text item delimiters to ""
    set startSuffix to ((length of theFilename) - 5)
    if startSuffix > 0 then
        set fileSuffix to characters startSuffix thru length of theFilename as string
        if fileSuffix is not equal to ".enex" then
            set theNewFilePath to (theNewFilePath & ".enex")
        end if
    else
        set theNewFilePath to (theNewFilePath & ".enex")
    end if
    set allNotes to find notes
    export allNotes to theNewFilePath format ENEX
end tell

martes, marzo 13, 2018

El Ayuntamiento de Madrid y las comercializadoras de electricidad verdes

Ayer vi un tuit que me llamó la atención: El grupo municipal de Ahora Madrid afirmaba que la comercializadora que suministre la luz a los edificios de @Madrid estará obligada a vender energía 100% renovable.:

Eso es una falsedad que se publicita una y otra vez desde colectivos verdes y partidos políticos - no sé si por ignorancia, por malicia política o por mentir directamente -: Si se contrata la electricidad con una comercializadora verde, vas a consumir energía eléctrica generada exclusivamente de fuentes renovables.

En España, las centrales de generación eléctrica vuelcan toda su energía, tras elevarla de tensión, a la red de transporte gestionada por Red Eléctrica de España. Una vez que la energía se inyecta en esa red no se puede discriminar su origen. No hay transporte independiente para la energía generada por las centrales renovables. La energía es transportada por la red de de Alta Tensión hasta las subestaciones, ya propiedad de cada empresa eléctrica. Estas subestaciones dan servicio a áreas de población, con independencia de quien contratemos la electricidad.

Entender que aunque estés con una comercializadora verde no recibes energía de origen renovable es sencillo:

  • Tengamos dos vecinos que viven en el mismo bloque de viviendas.
  • Un vecino, Concienciado™ ha contratado su suministro eléctrico con GreenPowerStuff, que le afirma que toda la energía que consumirá es de origen renovable.
  • Otro vecino, del mismo bloque, Melasuda™ ha contrado la electricidad con la comercializadora MeLaPela que le ofrece la electricidad más barata, sin tener en cuenta el criterio verde.
  • A ambos vecinos le llega la electricidad por la misma acometida del edificio, con lo que no se puede discriminar el origen de la energía consumida

Entonces, ¿Cuál es el truco?. En teoría , existe un una garantía de origen en la generación eléctrica que puede transferirse a las comercializadoras y así demostrar que la energía que compra las mismas es de origen renovable. Pero como hemos dicho antes, todo lo generado en España va a pool, así que suerte con distinguir el origen de la electricidad que consume cada hogar. Y algunos,ven esta garantía de origen como el timo estampita