La magia de Spring Tool Suite

Siguiendo mi entrada anterior en la que comentaba algunas de las características de Spring Boot que son pura magia, hoy quiero destacar algunas de las funcionalidades de Spring Tool Suite, la distribución de eclipse desarrollada para el ecosistema Spring.

En esta charla de la SpringOne llamada Next Level Spring Boot Tooling, los ponentes completan y corrigen una aplicación Spring Boot que posteriormente ejecutan en local y en la plataforma Cloud Foundry.

Entre otras características, destacan cómo Spring Tool Suite sugiere, tras escribir el operador new de Java, las implementaciones encontradas para el tipo de la referencia que precede en la sentencia.

Una de las correcciones incluida en las últimas versiones de STS ha sido la de permitir duplicar y alterar la configuración de una aplicación para poder ejecutar desde el IDE varias instancias de ésta y probar la capacidad de escalado horizontal del servicio. Configurando el puerto con 0, el framework Spring Boot asignará un puerto aleatorio (después de arrancar) para la instancia, permitiendo así arrancar varias. Esto es muy adecuado para llevar a cabo las pruebas aunque en un sistema con contenedores -si fuese el caso-, las instancias expondrían el mismo puerto y se ejecutarían en diferentes IPs.

Quizás en otros IDEs ya está disponible tras definir un campo de una clase la posibilidad de añadir -como quick fix- la anotación @Autowired, sin embargo merece la pena destacarlo porque es bastante útil por la cantidad de beans que se inyectan.

La segunda parte de la charla repasa la integración de la herramienta con el PaaS Cloud Foundry y describen varias características, entre ellas cómo, tras desplegar una aplicación en la nube y haber modificado varias veces la configuración de ésa, STS compara la configuración local y la remota mostrando las diferencias para que puedan ser modificadas y guardadas. Siempre, a la hora de desplegar una aplicación necesitamos cambiar una configuración en el último momento. Una gran funcionalidad muy útil e inteligente que nos proporciona el equipo de Spring Tool Suite.

Por último, muestran cómo depurar de una forma más sencilla el conjunto de la aplicación registrando una instancia local contra el discovery service en Cloud Foundry (Eureka, por ejemplo).

Estas han sido algunas de las bondades que me han impresionado de la magia de STS pero hay muchas más por descubrir en el vídeo.

Productividad desde el min 0 ¿Tú crees?

No es extraño que como rockstar ninja developers que somos todos, pensemos que seremos productivos en el minuto 0 de una nueva etapa laboral. Yo mejor no me creería esto, pero no es difícil escucharlo en alguna que otra charla de la última herramienta superágil.

Se puede ser un crack en una tecnología T pero hay mil formas diferentes tanto correctas como incorrectas de usar dicha tecnología. Podemos dominar T y quedarnos con cara de locos cuando nos enseñen cómo este nuevo equipo usa la tecnología. Como buenos egodevelopers que somos, lo primero será pensar “Vaya, la están usando mal” pero ya nos daremos cuenta de dónde está el truco.

Por poco tiempo que lleve trabajando el equipo ya tendrán asentadas sus peculiaridades y sus propios procesos de trabajo que seguramente difieran de los de otros equipos porque cada equipo es un mundo.

De la misma manera, aunque estemos hartos del stack tecnológico que nos presentan, el negocio por el cual ese equipo vio la luz será tan peculiar y diferente del resto que necesitaremos un buen tiempo para poder meter mano y que no ocurra un Kernel Panic. Porque cada negocio es un mundo.

Quizás por ello, en nuestro primerito día podamos hacer cosas más interesantes que ser falsamente productivos como conocer a un compañero de cada área y averiguar en qué consiste su trabajo, qué se lo dificulta y qué se lo facilita. Así, sabremos cómo encajar mejor en el puzzle.

Prohibidas las presentaciones con PowerPoint en Amazon

Ando estos días leyendo un libro sobre Amazon y Jeff Bezos: The Everything Store. Al poco tiempo de que Amazon comenzase a ofrecer beneficios, el crecimiento a nivel empresarial fue tan grande que para poder escalar sin pérdidas fue necesario una reestructuración y optimización de los procesos.

Como medida que a muchos nos puede extrañar, en Amazon se prohibió usar PowerPoint en las presentaciones. Como justificación se añadió “Es muy fácil esconderse detrás de listas de viñetas. Así no te ves forzado a expresar tus ideas completamente”.

No me quedó otra que asentir cuando lo leí. Muchos hemos hecho diapositivas copiando línea a línea y pegando punto debajo de punto. Así es como se hace una diapositiva en 5 minutos. Esto tiene dos consecuencias: Si dominas el tema, quedará una buena explicación con una pésima presentación y si no lo dominas leerás la lista de viñetas y desearás que nadie pregunte.

A partir de ese momento en Amazon, las presentaciones en PowerPoint se sustituyen por algo parecido a ensayos de 6 páginas como máximo dejando espacio en el pie para tomar notas. Al empezar la reunión se entrega una copia de la narrativa a cada participante y tienen un tiempo para leerla y tomar notas.

El esfuerzo en escribir dicha narrativa es recompensado con creces ya que la persona que lo escribe se obliga a dominar el tema y a darle vueltas hasta ser capaz de explicarlo y escribirlo de una forma que se entienda al leerlo. Además, es imposible olvidar detalles porque queda todo escrito.

También se pidió que cuando se escriba una narrativa para presentar una nueva característica, ésta sea escrita como una nota de prensa (entendible por todos), así los empleados describen desde la más pura esencia de la característica (lo que verán los clientes) y avanzan hasta desembocar en los temas a tratar.

Mejor escribir a mano, una cuestión de conexiones neuronales

Soy Evernote-dependiente, lo anoto todo en la aplicación porque me resulta muy fácil responder a ¿Dónde anoto esto? y ¿Dónde busco esto que anoté? La respuesta es Evernote.

Esta navidad leí el libro Design for how people learn que me trajo Papa Noel. La autora sugiere que la memoria es como una estantería. Cuando aprendemos algo nuevo lo amontonamos en una estantería, como una montaña de ropa, todo está muy desordenado y es difícil recuperar esa información.

Libro Design for how people learn

Sin embargo, a medida que ampliamos los conocimientos y los relacionamos con otros anteriores ya bien estructurados, vamos distribuyendo dichos conocimientos en diferentes estanterías relacionadas y clasificándolas para que el recuerdo dure más tiempo en la memoria y nos resulte más fácil encontrarlo.

La autora también cuenta que la escritura a mano refuerza la memorización bastante más que la escritura en un teclado. No entendí muy bien la justificación pero fue este artículo de Javier Garzás el que me abrió los ojos.

Entre otras razones, escribir a mano la letra A requiere que recordemos los movimientos de la mano que aprendimos en el colegio. Obviamente, estamos tan acostumbrados a escribir que escribir una A es trivial porque nuestro sistema nervioso ya lo hace por nosotros. Aún así, se establece una conexión entre los circuitos neuronales que saben cómo escribir la A y lo que queremos memorizar.

Al escribir en un teclado, a grandes rasgos, lo único que hacemos es reconocer y pulsar la letra que queremos escribir por lo que queremos memorizar no se ve reforzado con conexiones a recuerdos anteriores.

Desde entonces, en mi trabajo de resolver incidencias en informes sin herramienta de control de versiones, anoto todo lo que hago, todo lo que me queda por hacer y a quién he notificado o pedido que me resuelva algo. Apuntar estas cosas a mano me ayuda en las reuniones a recordar con que informes he trabajado y que tengo a la espera de que se resuelva.

Mejorar la gestión documental en una oficina con Evernote y HipChat

Cada vez que entro en una oficina me doy cuenta de problemas de gestión documental y gestión de procesos que me parecen fáciles de resolver utilizando algunas herramientas informáticas a nivel básico como Evernote y HipChat.

Entiendo que dentro de esas oficinas éstos no suponen problemas porque tienen otros más graves como cobrar las facturas. Aún así, me gustaría comentarlos:

Problema 1:

El eterno problema de las carpetas abarrotadas de documentos donde, generalmente, el único criterio de búsqueda posible es el nombre de la carpeta -por ejemplo, con el nombre del cliente-.

Configurando Evernote para que los documentos escaneados o fotografiados con un móvil se guarden directamente en una nota permitirá que se puedan buscar otros datos impresos en el documento ya que reconoce el texto en la imagen.

Ejemplo. Podría guardar el documento de Excel de una factura en la libreta de un cliente del bueno de Paco Urbano con la etiqueta “factura” y encontrarla desde Evernote si recuerdo que se le instaló un plato de ducha.

Problema 2:

Lo primero que recomiendan los gurús en productividad es dejar la mente libre para poder concentrarse al 100% en la tarea. Nos saboteamos continuamente pensando “Tengo que recordar esto…” o peor aún, pidiéndole a alguien que lo recuerde por ti. Mal, muy mal, hay que apuntarlo TODO para dejar espacio para lo realmente importante.

Las versiones web y móvil de Evernote tienen unos estupendos recordatorios integrados que envían notificaciones al móvil e emails al correo para no olvidar nada. Como también son notas, se pueden adjuntar imágenes como la fotografía a una tarjeta de visita con el número al que, por ejemplo, hay que llamar en unas horas.

Asignando hora al recordatorio

Problema 3:

Cuando falta alguien en la oficina, se le llama continuamente por teléfono para preguntarle y tomar decisiones. Lo que se traduce en interrupciones y en pérdida de la concentración. Hay bastantes aplicaciones de chat para equipos de trabajo como HipChat en las que se pueden crear, por ejemplo, salas de grupo por cliente para tomar decisiones entre todos sin tener que recurrir a la llamada telefónica.

En estas salas de chat echo en falta el +1 de las redes sociales en los mensajes de los integrantes para que otros indiquen que están de acuerdo. Por eso me gustan las comunidades privadas de Google+ porque permite destacar con +1s las decisiones que finalmente se han tomado que son, al fin y al cabo, el objetivo de la conversación.

Bitcoin, el anonimato y la transparencia

Una de las características que más se conocen del protocolo Bitcoin es el anonimato, generalmente desde un punto de vista negativo: Bitcoin es una moneda de dudosa reputación porque los malos pueden realizar transferencias de forma anónima.

La realidad es otra: El usuario tiene la libertad de asociar su identidad con la dirección Bitcoin con la que realiza la transferencia. Así que tú puedes elegir enviar dinero de forma anónima o no.

Hace un año se hablaba más sobre la necesidad de transparencia que ahora. Por ejemplo, Salvados – Sin transparencia. A pesar de ello, se me ocurre que Bitcoin podría ser una gran infraestructura para mejorar la transparencia de un gobierno.

Si el gobierno estuviese claramente identificado en la red Bitcoin los usuarios podrían analizar todas y cada una de las transacciones que realizase ya que las transferencias en Bitcoin son públicas y validadas por toda la red.

Se podrían desarrollar herramientas de búsqueda sobre esos datos e incluso algún lenguaje de consulta parecido a SQL para extraer información de la red distribuida y procesarla de manera que cualquier ciudadano pueda entender fácilmente a qué se destinan sus impuestos.

En los países donde cumplen con la ley de transparencia se confía en que las instituciones detallan información veraz y que esta información es correctamente verificada. Bajo las reglas del protocolo Bitcoin, los ciudadanos tendríamos otro nivel más de confianza.

¿Sería una buena idea? ¿Y viable?

Sacar a Spotify del hoyo

Hablar sobre la rentabilidad de Spotify es fácil. Todos sabemos de música y todos tenemos una receta para sacar al gigante de las canciones de los números rojos. Yo tengo la mía y os la voy a contar, pero antes recomiendo encarecidamente que se lea Spotify: el problema no está en el principio de la cadena sino en su fin de Enrique Dans.

 
Mucha gente prefiere reproducir un vídeo de Youtube detrás de otro para escuchar música en vez de crear una lista de reproducción con su música favorita. Nótese que se prefiere el arduo trabajo de “pinchar” con Youtube consumiendo más recursos, soportando letras de canciones llenas de faltas de ortografía, imágenes aleatorias para ilustrarlas y los comentarios absurdos que aparecen debajo.
 
Veo varias justificaciones:
1. El navegador es una aplicación que siempre está abierta.
2. No se escucha publicidad.
3. Se pueden ver videoclips.
 
Spotify no lo tiene descargado todo el mundo y poca gente soporta lo que tarda en cargar. El equipo de Spotify debería tomarse muy en serio potenciar el uso de su reproductor web. Hacerlo tan presente en el navegador de cada usuario como Youtube y que buscar y reproducir una canción sea tan sencillo como en el portal de vídeos.
 
Algunos no soportamos la publicidad. Creo que atraería a más usuarios que Spotify permitiese reproducir una cantidad de tiempo al día música sin publicidad. Por ejemplo, una hora, después de esa hora que continúe la reproducción con publicidad. De esta manera, Spotify se ganaría unos cuantos usuarios fieles que preferirían abrir la aplicación a entrar en Youtube con el navegador.
 
Siempre me he preguntado por qué Spotify no permite reproducir videoclips de los discos de su catálogo. Muchos locales en vez de retransmitir MTV podrían crear listas de reproducción de canciones aprovechando que pueden retransmitir el videoclip desde televisores.
 
Pero sobre todo, Spotify necesita perfilar sus usuarios. ¿Por qué no diseñan un modelo de negocio donde sus clientes sean discotecas que aporten valor a la música que pinchan? Por ejemplo, se podrían crear listas de reproducción con la música que sonará esa misma noche. A los habituales de dichas discotecas les gustará echar un ojo a la música que disfrutarán más tarde. ¿Y si la pudieran votar?
 
Terminando, Spotify debería aprender de Youtube -y del modelo de negocio de los youtubers- incentivando que los usuarios consigan seguidores en sus listas de reproducción con descuentos en su cuota mensual -por poner un ejemplo-. Qué más da que un usuario no pague ese mes su cuota de Spotify si a cambio ha conseguido atraer a otros, que en el peor de los casos escucharán la publicidad de la plataforma.
 
¿Son ideas descabelladas o poco útiles? ¿Qué más se os ocurre? Seguro que otro montón de ideas, si no, abridlo un momento y veréis cómo encontráis miles de formas de darle vuestro toque personal a esta aplicación.