martes, 8 de enero de 2019

Nuevo año

En los primeros dias del año se multiplican los buenos deseos y las ganas de hacer cosas diferentes. En algunos casos, la motivación viene por continuar con propuestas de personas que proponen hacerlo. En otros, son solo una sucesión de deseos que se olvidarán a los pocos dias.

Cuando me planteé si merecia la pena proponerme una lista de objetivos para este 2019 que acaba de comenzar, lo primero que pensé fué intentar analizar que tal me había ido el año pasado. Aunque no hubiera tenido una lista de objetivos, ¿que recuerdo haber hecho el año pasado que merezca la pena recordarse?. ¿Alguna cosa a nivel profesional o personal de la que sentirme orgulloso?. Si, por supuesto que he ido a un par de eventos técnicos (Greach, GR8Conf, CommitConf, Meetups de Cryptos, Java, Groovy, el magnífico taller de @diana_aceves_ en Tarugconf...) y he conocido alguna gente estupenda. Pero nada que haya aprovechado realmente para hacer algo.

No solo eso, sino que uno de los side-project con los que empecé el año (Proyecto Pandora, uno de los que más ilusión me habían provocado y en los que eché mas tiempo libre), finalmente quedó en el olvido enterrado entre el trabajo del dia a dia. Tras una fase en la que pasó a ser mas-o-menos oficial en mi empresa -pero sin recursos asignados- solamente mi tiempo libre, el proyecto fué perdiendo fuerza hasta el verano. Durante las vacaciones de verano le dí un empujón pero a veces me pasaron cosas tan frustrantes como que tras hacer algún módulo, al empezar a hacer los tests, me encontraba con que... ese modulo ya existia porque lo había hecho hace un año y no lo recordaba. Tras varios fines de semana aislados, decidí hace poco menos de un mes que no podía seguir con un ritmo de trabajo que me ocupaba muchos fines de semana con el trabajo "normal" y además la frustración de intentar y no poder seguir con ese proyecto. Peor aún, la presión autoimpuesta por avanzar en ese frente que hacía que no avanzara en otros. Asi que de momento aparcado por mi parte.

Tras unos dias de intentar hacer memoria, es triste (tristisimo, no podéis imaginar cuanto) no encontrar nada realmente reseñable. Alguna cosa que me haya llevado un esfuerzo y una recompensa. Algún logro que me haya servido para evolucionar personal o profesionalmente. No voy a decir que esto me haya hundido, pero desde luego me ha hecho plantearme que efectivamente necesito hacer una lista de objetivos para que el año que viene no vuelva a tener esta sensación tan desagradable.

Asi que vamos a ello, sin ningun orden concreto, simplemente tal cual fueron apareciendo en mi libreta:


- Implicarme más en Madridgug. Pertenezco al grupo de usuario de groovy de Madriddesde hace unos cuantos años, y colaboro habitualmente manteniendo el dominio, grabando las charlas y echando una mano a Ivan Lopez en la organización. Pero sigue siendo él quien lleva el peso. Voy a intentar quitarle parte de ese trabajo para repartir la carga.

- Implicarme en GreachConf. En esto ya no tengo vuelta atrás, ni falta que hace. Greach ha sido una de las conferencias que mas me han ayudado profesionalmente en los últimos 7 años. Cuando hace unos meses los organizadores de toda la vida anunciaron que este año no se de celebraría, lo dejé pasar pensando en ayudar cuando volviera. Pero Sergio del Amo no se conformó y anunció que el la organizaría. Inmediatamente me puse en contacto con el para co-organizarla. Y en ello estoy.

- Micronaut. Una de las cosas de las que me arrepiento no haber hecho nada el año pasado. La presentación mundial del proyecto fué en Greach (Marzo). La continuación con presentación oficial fué en GR8Conf. Estuve en ambas y no aproveché el tren. Peor aún: conozco personalmente a tres de los desarrolladores de este framework para microservicios que creo que está llamado a revolucionar las aplicaciones en la JVM. Esto no puede continuar así. En mi empresa probablemente no sea útil (hace tiempo que dejé de pelear por ser el referente técnico -allá cada cual-) pero a nivel personal no puedo seguir dejándolo escapar. Prioridad 2.

- Javascript, algo de CSS. No me gusta, pero ha llegado el momento de asumir que esta aqui para quedarse para siempre. Mi zona de confort tiene que ampliarse mas allá del cable de los servidores hasta el navegador. Seguramente no haré nada nunca en nodejs para el backend, pero necesito irme al navegador. Probablemente con React. ¿Alguna opinión a favor de Angular o Vue.js?

- Dar al menos dos charlas en eventos. Este pasado año no he dado ninguna. Ni siquiera internamente en mi empresa (no ha habido ninguna). Debo a MadridGUG el estrename con al menos una charla, cosa que nunca he hecho. Y puede servir de base para repetirla y ampliarla en algun otro evento mas grande. ¿Sobre Micronaut?. Probablemente. ¿Tal vez alguno internacional?. Sería divertido ;-)

- Mejorar mi inglés. Mi nivel de ingles escrito y leido creo que es más que aceptable. Otra cosa es hablado y escuchado. Hay que (empezar a) solucionarlo. ¿Duolingo?. ¿Alguna otra plataforma?

- Aparte de Javascript, que no puedo considerar como un lenguaje desconocido (aunque no dominado), aprender algun lenguaje nuevo: ¿Go? ¿Python?. Este último me gustaría para empezar a meterme a ver temas de Deep Learning y similares. Me quedé con muchas ganas de profundizar tras el pasote de charla de Andrés Torrubia en TarugoConf.

- Blockchain ya tal. Al menos de momento.


- Salvo durante las vacaciones de verano (y a veces, como los últimos años, ni eso) el resto del año prácticamente el 100% de mi tiempo, quitando sábados por la mañana para los partidos de basket de los niños, los he dedicado a trabajar. Si. Así de idiota he sido toda mi vida, pero esto tiene que acabar. Y esta es la prioridad #1: Familia y yo mismo. ¿Que pienso hacer con ese tiempo libre (además de lo que os he contado ya arriba)?

- Leer. Sólo leo cosas no técnicas en verano. Creo que ponerme un objetivo de leer un libro no técnico al mes no debería ser un problema. Tengo a medias dos de la guerra civil española (Hugh Thomas y Paul Preston) y empezando la autobiografía de Miles Davies. En camino En Pasada. Y muchos más que he ido comprando y no he podido leer.

- Fotografia. Seguir con ella. Y si es posible, meterme en algún taller para que no todo sea intuición e improvisación. Si no lo consigo no lo consideraré un fracaso.

- Música. Toco la guitarra desde siempre, pero tras un parón de mas de 10 años volví tocando jazz con un combo. El problema es que no avanzo como guitarrista a la velocidad que me gustaría asi que es probable que coja un profesor para avanzar, quitarme vicios y aprender algo de teoria.

- Volar. Una pasión (nada barata) pero que llevo sin practicar más de 2 años por el único motivo de no tener tiempo para ello. Ya me vale. Al menos un par de vuelecitos me tengo que echar este año.


Y todo lo de arriba tengo que hacerlo... de domingo a viernes. Lunes a viernes intentaré que quede algo de tiempo libre. O al menos que el 100% (incluido el tiempo de casa en las madrugadas) no sea de trabajo. El domingo es típico que sea la mitad del dia de estudio y deberes para mis hijos, asi que además de ponerme con ellos (y, de paso recordar cosas olvidadas) seguramente tendré tiempo para todo lo técnico de arriba: Micronaut, Javascript, Python... El domingo es mio.

Y el sábado, de la familia. Prioridad -19 (los usuarios de *nix sabrán por qué :-))




 

domingo, 2 de septiembre de 2018

Dell XPS 13 y el "Dynamic Brightness Control"




Hace cosa de año y medio, tras haber estado unos cuantos años muy satisfecho con el modelo anterior de XPS 13 de Dell (la edición Developer, con Ubuntu preinstalado), me actualicé a la ultima edicion del XPS 13, el modelo 9360.

Lo cierto es que aparte de llevar la ultima version del Intel i7 y 16Gb de RAM en lugar de las 8 que tenía el anterior, no había muchos mas cambios. Pero para programar con Grails junto con las ventanas de terminal, maquinas virtuales y demás que suelo tener, el paso a 16Gb era algo necesario.

La instalación de Linux Mint en lugar del Ubuntu que venía de serie fué limpia. Sólo tuve que pasar a los kernels 4.13.x en lugar de los 4.11.x por no-recuerdo-que problema tonto con la WiFi, o el trackpad.

El teclado no es que me volviera (aún, vuelva) loco: el del model anterior es en mi opinion mucho mejor con mas relieve en las teclas y mas facil la pulsación. Todavia hoy, caso dos años despues, me cuesta hacer de forma rápida la combinación Ctrl-Shift-[cualquier tecla] porque o bien el Ctrl o bien el Shift no se pulsan bien. Son bastantes las veces que he parado una tarea en una terminal al intentar copiar con Ctrl-Shift-C y pulsando en realidad Ctrl-C

Pero si había algo realmente molesto es una funcionalidad que a algun genio se le ocurrió en Dell: el Dynamic Brightness Control. Esta maravilla lo que hace es cambiar el brillo del display de forma automática en función del contenido que hay en tu pantalla. Si hay contenido muy claro, aumenta el brillo. Si es oscuro, lo baja. Ojo: que no me he equivocado. No es que intente igualar (que ya sería suficientemente malo), sino que intenta realzar aún mas. Caso típico: estas en la cama, o en semioscuridad por la noche y abres un terminal con fondo oscuro. El portatil automáticamente baja aún mas el brillo hasta que casi no puedes leer. Cambias al navegador, con fondo claro, y la pantalla comienza a brillar cada vez mas hasta que te quema los ojos. Genial. Y si fuera diseñador, imagina los problemas con el cambio de contraste y brillo.

Empecé a buscar soluciones y había mas gente con quejas. Desde el soporte técnico de Dell no me daban ninguna solución. Una funcionalidad que debería poderse habilitar o deshabilitar desde BIOS (en mi opinión) estaba grabada a fuego en el sistema de video. Si tienes este modelo de portatil (este problema tambien está presente en algunos de la gama Inspiron) y sospechas que estás afectado por el problema, en esta página puedes comprobar si realmente lo estas o no

Mientras que estaba con la reclamación en el servicio técnico, y a raiz de las quejas de los usuarios en los propios foros de Dell y en Reddit finalmente Dell liberó una utilidad para desactivar esta funcionalidad. Una herramienta que solo funciona en Windows. Reclamé a Dell:

- A ver, Dell, vosotros me habéis vendido el ordenador con Linux, y presumís de dar soporte a Linux. ¿Donde está la herramienta para parchear la dirección de memoria que deshabilita esto?
- Ni está ni se la espera en el futuro
- Estupendo. Entonces, ¿que hago?
- Formatear el equipo, instalar Windows, ejecutar la utilidad y restaurar el equipo
- ¿Estais de coña, ¿verdad?. ¿Borro mi equipo de trabajo e instalo un windows pirata, es lo que me estáis diciendo?
- Si, es la única solucion
- ¿Y no puede Dell proveer una imagen Iso con la utilidad, o un ejecutable, o una actualizacion de BIOS...?
- Nope. La herramienta solo funciona en Windows.


Y así ha pasado el tiempo. He cambiado las ventanas de terminal a blanco, he cambiado los colores de mi IDE (IntelliJ idea) a colores claros... todo por la maldita función no deseada.

Durante este tiempo he intentado crear un USB de arranque de Windows para ejecutar el programa sin tener que borrar los datos. Sin éxito. Las pruebas con unetbootin y versiones (que aparecen y desaparecen) de Windows Portables (Gandalf es el que estuvo mas cerca) eran todas fallidas. La mayoria de las veces el pendrive no arrancaba (probando combinaciones de formateo con diferentes tablas de particiones, MBR.. ) Cuando arrancaba en Windows no podía instalar programas. Por supuesto, desde una máquina virtual el parche no funciona. Para mas coña, para ejecutar la utilidad que desabilita la funcionalidad, es necesario instalar los drivers de video de intel.

Al final este fin de semana, antes de empezar el curso me decidí a quitarlo como fuera. Tras el backup completo empecé a buscar alguna forma de arrancar desde pendrive para evitar todo el lio de cambio de sistema de boot, formateo, instalación, restauración... y finalmente encontré una forma que me ha funcionado basado en la página de ArchLinux sobre el XPS13. Con algunos cambios (la herramienta woeusb parece no estar disponible ya en los repositorios y no me apatecía ponerme a compilar). Y necesitando un Windows para hacer el proceso.


El proceso, desde Windows (si, he necesitado un Windows para solucionar el problema), ha sido el siguiente:

  • Descargar desde el sitio oficial de Microsoft la herramienta para creación de una ISO de instalación/arranque. No descargas la ISO, sino una herramienta que (entiendo) toma parte de instalación de Windows (numeros de serie incluidos) y crea un fichero ISO. No tengo muy claro si lo que crea es una ISO para reinstalar o para ejecutar en vivo, pero da igual.
  • Usar la herramienta Win2Usb para crear el pendrive de arranque. Aunque se supone que con 16Gb es suficiente, no lo es. Yo he necesitado uno de 32Gb. Afortunadamente, esta herramienta particiona el pendrive y modifica el sector de arranque de la forma en que a Windows le gusta para luego arrancar.
  • Arrancar con el Pendrive recien creado. Por suerte, el arranque es bastante limpio (es como una instalación, con su seleccion de idioma y su Cortana hablando) pero todo se ejecuta sobre el pendrive. Afortunadamente, permite la instalación de software, conexion a internet, etc.
  • Instalar los drivers de video para el XPS13 (verifica si hay una version posterior!)
  • Instalar la herramienta de (des)activación del Dynamic Brightness Control
  • Comprobar en la página de test que el problema ha desaparecido.
  • ¡Listo!


Visto ahora, no parece tan complicado. Pero en total, a lo largo de este año y medio, probablemente me ha llevado mas de 25 horas de llamadas, pruebas, lecturas, intentos... Ten en cuenta que cada prueba (descargar una ISO, grabarla, arrancar, probar...) lleva sus 15 ó 30 minutos. Y lo que mas me fastidia ha sido el nulo soporte de Dell en un problema que obviamente es suyo. Ni por teléfono (ojo: ningún problema con los técnicos, super competentes, que me han atendido por telefono o email), ni por twitter (numero de respuestas interesandose por el problema: cero)

Ya tengo el problema solucionado pero ¿volveré a comprar un Dell?. De momento hace pocas semanas tuvimos que comprar uno nuevo en la empresa y mi recomendación fué Lenovo. Tambien hemos comprado Mountain (ningún problema, tal vez un poco ruidosos y pesados) y desde hace algun tiempo me están hablando muy bien de los Slimbook (además, españoles).

Asi que... ¿repetiré Dell?. Seguramente con dos ha sido suficiente. Una pena, tras años recomendándolos por la buena experiencia del primero.





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


jueves, 3 de agosto de 2017

Libro Blockchain: la revolución industrial de internet


Me he estado leyendo en los últimos dias el libro BlockChain: la revolución industrial en internet que han publicado varios autores españoles conjuntamente, coordinados por Alex Preukschat

Como últimamente blockchain es uno de los temas en los que ando metido (y más que voy a estar, ya os contaré), siendo un libro Español en Español, y siendo Victor Escudero uno de los autores (Victor es uno de mis referentes desde que empecé a meterme en el mundo Bitcoin), no podía dejar pasar la oportunidad de leerlo.


Tras el fiasco que me llevé con el libro de Tapscott tenía mis dudas sobre volver a leer un libro que contara lo maravilloso que va a ser el mundo el mundo se gobierne por blockchains. Leí la versión en inglés, y si bien eso tiene la ventaja de que lees lo que el autor ha escrito, tambien tiene el inconveniente de que es necesario -para mi- un esfuerzo extra de comprensión. En cualquier caso es un libro que me decepcionó bastante y que solo recomendaría a alguien con nulos conocimientos técnicos.

Pero como este libro (version Kindle) estaba muy barato y algún comentario por twitter del propio Victor me hizo ver que tal vez fuera algo diferente, me decidí a comprarlo. Y no me he arrepentido de su lectura.

Vale: no es el líbro de Antonopoulos, auténtico porno para ingenieros de software (@AlbertoVilches dixit), pero la suma de los componentes del libro es mas que digna.

El libro está estructurado en 3 partes y un minirrelato. Y escrito por (si no he contado mal), 30 autores, cada uno aportando su parcela de conocimiento al libro.

En la primera parte los autores intentan apuntar a los cambios que pueden producirse en distintos sectores productivos a nivel de negocio cuando (o en caso de que) blockchain se imponga:Banca, seguros de distintos tipos, telecomunicacioes, energia, etc. Tambien aqui se incluyen aspectos legales tanto de monedas como de Smart Contracts y temas de inversion (ICOs, tan de moda últimamente). Esta parte (aproximadamente 3/4 del libro) podría asemejarse al libro de Tapscott pero en mi opinion está aqui mucho mas concentrado (se agradece), con mas campos de negocio y mejor contado (lo bueno, si breve...)

El único "pero": al igual que pasa en las noticias cuando hablan de algo que dominas y ves como "patinan" los medios, aquí cuando se habla del seguro agrario (tema que controlamos bastante en mi empresa por uno de nuestros clientes) se trata el tema de una forma idílica que al menos en nuestro país es impensable: el seguro agrario en España es prácticamente un monopolio de facto donde la innovación a ese nivel nos parece poco menos que ciencia ficción.

La segunda parte del libro trata sobre La descentralización como modelo de vida. En esta parte se dan algunos brochazos históricos y filosóficos sobre el Hacktivismo, el ciberpunk y cypherpunk y algunos razonamientos interesantes para conocer como hemos llegado donde estamos y la necesidad de luchar por nuestra privacidad. Si el libro cae en manos de un público de negocio y lee estos capítulos puede que tome conciencia de la necesidad que cada vez mas vamos a tener de oponernos al control de los gobiernos (sin ir mas lejos, hace un par de dias Rusia prohibió el uso de VPNs), o podríamos hablar de la Internet China cerrada... pero también, por qué no, de los intentos de supresión de papel moneda que vamos a empezar a ver en muy breve plazo en las sociedades libres.

Por último, la tercera parte es la más tecnica y en ella se habla desde como funciona la tecnología blockchain (sobre todo orientada al blockchain de bitcoin): bloques, SHA256, arboles de Merkle, algunos conceptos de criptografía... todo ello sin profundizar demasiado pero de una forma bastante instructiva. Yo (yo) me quedaría con ganas de saber mas sobre el tema (obviamente, el libro de Antonopoulos es un libro completo dedicado a esto). No se tampoco, si fuera mi primer contacto con esta tecnología, si conseguiría entender todo lo que se cuenta con solo las explicaciones que aquí se dan. Y por otro lado, para alguien no técnico, no estoy seguro de cuan interesante pueden resultar las explicaciones de bajo nivel. En cualquier caso, me parece un acierto incluir esta parte para que cualquiera con la suficiente curiosidad pueda conocer los principios técnicos de estos sistemas. En esta tercera parte, también se dedica un capítulo a explicar como funciona el software libre y sus ventajas frente al software propietario.

Para finalizar el libro hay una pequeña historia de como podría ser la vida de cualquiera de nosotros en un futuro probablemente no tan lejano en el que tuviéramos muchas de las ideas locas que se cuentan en el libro ya accesibles. Me parece un acierto la inclusión de este relato porque da visos de realidad a temas que de otra forma podrían parecer demasiado hipotéticos. Y lo mas gracioso es que algunas de esas tecnologías futuristas ya están disponibles, aunque sea en fase experimental y probablemente sufran grandes cambios antes de llegar al gran público. Pero la semilla ya está aquí.

Es muy interesante tambien apuntar que la intención de los autores es continuar ampliando la información del libro en el sitio web (hay enlaces a los distintos temas de interés desde el propio libro) asi que previsiblemente en el futuro inmediato podremos tener mas información adicional actualizadas sobre los temas que se tratan.

En resumen: para mi el libro ha sido una muy grata sorpresa. Desde luego si estás dudando entre leer el libro de Tapscott y este,
no lo dudes y corre comprarlo ya. Es una perfecta introducción desde muchos ángulos a esta tecnología que está aquí para quedarse y que en mi opinión y en la de mucho otros va a constituir la columna vertebral de muchos sistemas e información futuros.

Los ciudadanos deberíamos comenzar a exigir que los sistemas gubernamentales se empezaran a diseñar ya siguiendo estos principios. Así, entre otras cosas, tal vez evitáramos vergüenzas como las que estamos viendo estos días con el sistema Lexnet




Ultimos enlaces compartidos

Aerotrastornados - Blog Aeronáutico