lunes, 26 de marzo de 2018

Pero.... ¿quien #!%& es Malena Gallino Vedoya?


Hace bastante tiempo que dejé de usar Facebook. Ya en aquel momento no lo usaba mucho (no me gusta la simetria obligada de la relación en esta red) y empezaron a saltarme algunas alarmas en lo referente a la privacidad por el seguimiento de información que realizaba la red. En web. En el móvil solo tuve un par de veces instalada la aplicación que me resultó muy poco útil y duró poco ocupando espacio. Asi que en septiembre de 2016, coincidiendo con algún incidente de control de contenido por parte de facebook (para ser exactos, la retirada por contener un desnudo de la foto de Nick Ut de la niña del napalm) decidí que ya era suficiente.

Ahora, pasados un par de años, están saliendo a la luz noticias de que terceras empresas estaban usando la información proporcionada por facebook (por sus usuarios, de forma ingenua) para dirigir publicidad de forma certeramente segmentada. ¿Quien podría haberlo imaginado?. Casi resulta entrañable esta forma de caer del guindo de los medios que ahora cargan contra facebook por hacer lo que ellos conocen y hacen desde hace tanto tiempo. Con menos datos, es verdad, pero porque su forma de distribución (al menos los no digitales) no lo permite.

Pero bueno, el tema es que he leido por algún sitio que facebook ofrece un servicio para descargar todo lo que tiene sobre ti asi que he vuelto a conectarme tras casi dos años. Mi primera impresión ha sido «Dios, ¡que poco ha cambiado esto!». Tampoco es que esperara muchos cambios pero... es que ni siquiera el ajuste del ancho de columna ha cambiado. Pero bueno, entrando en https://www.facebook.com/settings en la parte inferior tienes un enlace para Descargar una copia de tu información que pasados unos minutos te permite obtener un fichero .ZIP con todo los que (presumiblemente) tienen sobre ti.

En algunos de los mensajes que había leido comentaban que a mucha gente le había aparecido el historial de llamadas de voz y SMS de su movil junto con metadatos de la llamada. No es mi caso. Seguramente por no tener la aplicación de Facebook instalada en el movil. Eso que me he ahorrado. Aun asi, si esperas obtener en el paquete de información algo relacionado con Whatsapp (que seguramente tambien disponga de esa información y mucha otra) o Instagram (sospechosa, creo que injustamente, de escuchar las conversaciones de los usuarios), no vas a encontrar nada de eso aquí.

El ZIP contiene varios ficheros HTML y las fotos que has ido subiendo. En mi caso, que hice una limpieza hace algun tiempo (incluso con una herramienta que encontré para poder borrar de forma mas o menos automáticamente), son unos míseros 20 Mb que puedes ver cómodamente con el navegador cargando el index.html que aparece en la carpeta raiz donde descomprimes el archivo ZIP. Puedes encontrar cada publicación que has hecho en tu muro (en mi caso, desde Julio de 2007), cada cambio de clave, cada dirección IP que has usado, las geo-coordenadas deducidas por la direccion IP, cada Cookie, navegador, ordenador utilizado. Cada anuncio en que has hecho click, tu lista de amigos, páginas a las que has dado like (música, cine, libros...), cada evento al que te han invitado (hayas aceptado o no), todas las conversaciones con otros usuarios.

Nada especialmente imprevisible y si desde luego una buena lista de la información que cada uno de nosotros ha proporcionado a Facebook. Que no tiene porqué coincidir con la información que facebook ha sido capaz de deducir a partir de todos estos datos.

Solo hay dos cosas que me han llamado la atención. La primera es una tontería: Facebook (porque yo no) me ha incluido en un grupo de amigos llamado Established Adult Life. Parece que hay mas gente a la que ha pasado lo mismo. ¿Algún tipo de clasificación interna de Facebook?. ¿Porqué lo describen como Grupo de Amigos como si fuera algo mio junto con seguidores y amigos de verdad?

Y sobre todo, lo mas ¿curioso?¿mosqueante? de todo: la información de las fotografías desde 2011 (anteriores no). Todas las fotografías, hechas con los distintos móviles, con las cámaras de verdad... TODAS las fotos llevan junto con la información EXIF el siguiente texto:

1:36 Malena Gallino Vedoya Il me donne la sublimation artistique et la beauté , j'ai donc choisi Johnny , vous étrange beaucoup et est toujours dans ma tête extamadamente fou femme sexy ... belle et unique ... Je n'ai pas encore l'émerveillement et la filière beauté moi, je vous mon homme virtuel aimer que d'avoir à arrêter pour de bon . ! . je t'aime

Una simple búsqueda en google muestra que no soy el único al que aparece esa curiosa informacion pero nadie parece saber de donde sale exactamente. Muy curioso. Habrá que preguntar a Facebook quien esta chica que aparece en la información escondida de nuestras fotos.

Última curiosidad: buscando información sobre la tal Malena Gallino Vedoya me he encontrado algunas páginas de gente que ha cogido el ZIP con toda su información (incluida la privada de IPs, geoposicionamiento y demás) y la ha puesto en internet de forma pública, sin ningun tipo de protección. Y luego nos quejamos de que pase lo que pasa...


Actualización: Se me había olvidado comentar otra cosa que me ha llamado mucho la atención: la lista de empresas que tienen mi información. Desde luego que no he usado el login de facebook para conectarme a todas ellas ellas (tal vez 4 ó 5, si) , ni se como ha podido llegar mi información hasta estas terceras empresas. Porque la lista no es precisamente pequeña:


Skillink cabinet de recrutement digital
Pinnacle Partners
Dfind Science & Engineering
Airbnb
SABO AB
UGI Energy Services
Spotify
Nouvall Engineering Services
Valley Power Systems
Electro Power Systems
Boxhill AB
Jobba hos Keolis Sverige
Cognizant North America
Deliveroo
Accenture Sverige karriär
HTC Global Services - Official Page
Bleiken
Folksam
DIVERSANT
Randstad USA
DAF Sverige
Heritage Bank
Horizontal Integration
Mainz Brady Group
CPS Recruitment, Inc.
Open Carrières
EG Workforce Solutions
TJFACT - Totally Joined for Achieving Collaborative Techniques
Prevas AB
Hoffmaster Group, Inc.
Aldia Cooperativa Sociale
CSS Industries, Inc. Careers
Journey Mental Health Center
Professional Recruiter Associates
HNR
VP Total Solutions
Languageline Solutions UK
VantageLinks, LLC
TSP
Kuribay
MIG - Martins Investment Group Talent Acquisition
MGEN
Telephonics
Yates Construction
JITR
Career Movement
Spacelabs Healthcare
Condesign AB
Medical Specialties Distributors, LLC (MSD)
Nigel Wright Group
Menasha Corporation
Privalia
Ciber Careers
Ntelicor
RCN
Uber
INDUS Technology-Jobs
Waste Management
Groupe DFM
Men's Wearhouse
Systematix
The HT Group
Careers at Blue Lynx
HHT Careers
Booz Allen Hamilton
’47
CLS Services
Kearney & Company
Virtusa
North Country Initiative
Volvo Cars
Experis Sweden
Total Resurs
Momentum Consulting Corporation
Programmer Resources Intl. Inc.
Uber Eats
CGT Caterpillar
Stockholmsmässan
Sesmento Selectiekantoor
Inrego AB
Morisey-Dart Group
Cerfrance Alliance Centre
BDO USA, LLP
02dege
comScore, Inc.
Waterlandziekenhuis
Thompson Thrift Retail Group
RCG Global Services, Inc.
KILOUTOU
Kele, Inc.
Redbarn Premium Pet Products
Seasonal Staff
NSG Pilkington North America
Strategic Operational Solutions, Inc. - stopso
Sally Beauty
JW Research
TeamQ14
Maryland Transportation Authority (MDTA)
Monster
American Family Insurance-Careers
Razor Technical Staffing
SYKES USA
Parkwood International
WSWHE BOCES
Interplace, Inc.
Best Buy
Ipro Tech
Enovacom
Infotiv AB
The Bachrach Group
r2 Technologies
NTT DATA Services
ARC Recruitment
Stars Behavioral Health Group
SO4IT
Srinisrini
E-Talent Network
DATS Recruitment & CAD Services
Equipment Depot
MCA Ingénierie
SELLA Conseils. Recrutement et Solutions RH
Parsons Corporation
Capgemini France
DLT Solutions
Xpeedio
Hitachi U.S.A
CallTower
Eaton
Airbnb (エアビーアンドビー)
Evoqua Water Technologies
Decathlon España
Silgan Containers
IHerb Careers
NJ TRANSIT
Physicians Mutual
Avantage - makes IT simple
Infotel
Mediware Information Systems
Yanfeng Automotive Interiors
Hunter Engineering Company Corporate
Jarvis Johnson Ltd
Joh. Mourik & Co. Holding
Long Beach Transit
WFA Staffing Group
Zalando
AdeptSource
UKENsprint2017
Het Kadaster
Careers at Dell
Tierpm AV/IT Workforce Solutions
Silicon Refractory Anchoring Solutions
Hillside Family of Agencies
Jurek Rekrytering & Bemanning AB
Atos France
FM Global Careers
Hayes Management Consulting
Netsync Network Solutions
Hypertherm Careers and Jobs
Lefit Recruitment - Interim I Coaching & Training
Global Power Equipment Group
Randstad UK
Fujitsu Sverige
CS Communication & Systèmes
Chaffey College
Proxiad
Quicken Loans Careers
vente privee
Alion
Corparis
Allmännyttans Trainee
Synopsys Careers
Softronic
戶戶送 deliveroo
Delta Dental Insurance Company
Jobba på trafikförvaltningen SLL
Acando Sverige
Netinvestissement

lunes, 19 de marzo de 2018

Greach 2018: Micronaut Edition




Decir que he visto el futuro es sin duda exagerado. Pero tras el pasado Greach tengo una sensacion parecida a la de hace 6 años cuando descubrí Grails, Agile y tantas cosas en pocos dias.


Esta edición de Greach tenido muchos momentos excelentes. No solo el bombazo que ahora comentaré sino muchas otras cosas. Para empezar, el curso pre-Greach que impartió Sergio del Amo @sdelamo, autor de Groovy Calamari. El curso de dos dias fué un excelente resumen de todo lo que se puede hacer con Grails 3.3. Si hubiera que poner un pero, sería que el nivel de los alumnos era demasiado dispar: desde gente como yo mismo que lleva unos cuantos años programando con Grails y que queríamos profundizar en las novedades hasta alumnos que apenas estaban empezando (y que, supongo, pasarían algun mal rato con alguno de los conceptos de Groovy y la convención sobre configuración de Grails).



El primer dia de Greach como evento fué dedicado a Workshops. El primero al que asistí fué de nuevo con Sergio, aprendiendo a securizar correctamente una aplicación y testearla. En el segundo Hélain Schoonjans nos presentó una serie de tests para asegurar desde cero unos servicios REST. Muy interesante. Y para terminar, probablemente el mas interesante de Jacob Aae Mikkelsen en el que nos presentó una aplicación con múltiples errores de seguridad y estudiamos lo que estaba mal y como solucionarlo (Slides, Tool Slides y Codigo de la aplicacion)

No voy a entrar en detalle de todas las charlas. Si que quiero destacar la de Puneet Behl sobre DSLs en groovy (una de mis asignaturas pendientes, una de las cosas que tengo ganas de hacer desde hace tiempo), la de Jacob Aae Mikkelsen sobre las cosas que se pueden hacer con GString (no solo interpolación, muchas mas cosas y truquillos) o la de Vladimír Oraný usando un DSL para hacer mucho mas facil la creación de Hojas Excel con Apache POI. Casi hasta parece divertido hacer hojas de cálculo. Mención tambien el primer dia para la charla de los Salenders Alberto Barón y Alberto De Ávila sobre las mejoras que se pueden incluir en una aplicación Grails 3 para mejorar el rendimiento.



Pero el gran bombazo (ya Iván López, miembro de OCI y organizador de Greach había avisado de que algo grande se iba a presentar) estaba por venir: Graeme Rocher, creador y lider de Grails presentó el nuevo framework en el que lleva trabajando un tiempo: Micronaut (antes conocido como Particles). Se trata de un nuevo framework orientado a microservicios, reescrito desde cero y que podrá ser usado desde Java, Groovy y Kotlin.




Una de las grandes ventajas de Micronaut es la poca memoria que requiere: es posible realizar una aplicación en un JAR de tan solo 8Mb  que arranca en menos de un segundo en a version Java y alrededor de un segundo en Groovy. Simplemente increible teniendo en cuenta que incluye inyección de dependencias y muchas de las cosas a las que nos hemos acostumbrado con los años. Pero la resolución de muchas (por no decir todas) las dependencias y toda la magia se realiza en tiempo de compilación, no de ejecución.  El sistema es tan rápido y ligero que ¡es posible utilizar las aplicaciones Micronaut como tareas en AWS Lambda!

Micronaut incluye además de serie tanto cliente (Jackson) como servidor con lo que el testing es practicamente directo. La creación de servicios basados en anotaciones hace que la creacion de nuevos endPoints para nuestra aplicación se definan de forma realmente cómoda. Por ejemplo:

@Controller("/") class HelloController {
    
    @Get("/hello/{name}") String hello(String name) {
        return "Hello $name"
    }
}


Micronaut soportará ciertas partes de Grails (por ejemplo, Gorm) con lo que la migración (aparte del cambio de mentalidad que supone el paso a una infraestructura de Microservicios) puede ser menos traumático.

Si quieres conocer mas sobre este nuevo framework, Alvaro Sánchez-Mariscal, miembro tambien de OCI, dió una charla al dia siguiente y sus slides ya estan disponibles:




Decía al principio que no fué solo el bombazo comentado lo que me cambió la forma de pensar en como hacer ciertas cosas: la primera charla del último dia (Doc as Code, de Ralf D. Müller) tambien me hizo pensar en que se puede ir mas alla que la generación de documentos en AsciiDoctor para documentar el código, llegando desde las especificaciones a la integración con, por ejemplo, Confluence. Muy interesante.

Por supuesto, no puedo dejar pasar la gran actuación (porque eso fué) de Jorge Aguilera (@jagedn) y Miguel Rueda (@miguelruga) mostrando la utilidad del proyecto @101GroovyScript (Código en Gitlab. Este es uno de los mejores proyectos sobre groovy que estamos viendo crecer en los últimos tiempos en España y es justo agradecer a los autores su trabajo.

Para terminar. Por supuesto, no puedo dejar de agradecer un año más a Iván Lopez y Alberto Vilches por la organización de este evento de referencia internacional que mejora cada año y que está vez ha tenido además la sorpresa de la presentación mundial de un nuevo framework de desarrollo. Ahí es nada



Nota: las slides, codigo y otros enlaces, están siendo recopilados por Helain Schoonjans en este gist