jueves, 27 de febrero de 2014

Introducción a WalkMod

Hi devs !!!!!

Este mes de Marzo ( jueves día 6 a las 19.00 en la Fontana ) tenemos el honor de recibir la presentación de Walkmod una herramienta para gestionar y compartir convenciones de código.





¿ Qué es Walkmod ?


¿Cuántas veces has necesitado corregir un mismo error de programación? o ¿Cuántas veces no has podido aplicar o migrar a una nueva tecnología/arquitectura en un antiguo proyecto por el coste que suponía? 


Como programadores, muchas veces estamos implicados en muchas tareas repetitivas, como por ejemplo crear tests o aplicar ciertos patrones de programación (ej. Facades, DAOs, etc..); que no mejoran un proyecto des del punto de vista de un usuario final, ya que no supone un cambio en las funcionalidades que ofrece, pero sí en su mantenimiento. Además, trabajar en entornos colaborativos y abiertos como el caso de proyectos open source, hace difícil establecer un catálogo de convenciones o metodologías que la gente respete y aplique.


Desde Walkmod creen que parte de estas tareas se podrían llegar a corregir o generar con el uso de la metaprogramación. Por este motivo, han creado WalkModhttp://www.walkmod.com @walkmod ), una herramienta open source para gestionar y compartir convenciones de código entre todos los miembros de un proyecto. Walkmod permite definir transformaciones de código Java mediante templates, scripts o plugins que hagas tu mismo y compartas mediante algún repositorio Maven. Por defecto, la tecnología de templates y de scripting es Groovy, pero no lo restringen, puedes usar tu preferida! Además, tal y como veremos en esta sesión, han construido una tecnología para poder hacer merge entre el código generado y el existente en tu proyecto, completamente extensible y configurable.


¿ Quién está detrás de Walkmod ?

Raquel Pau   @raquelpau

Principal desarrolladora de Walkmod y apasionada de la ingeniería del software. Actualmente, trabaja en un grupo de investigación DAMA-UPC, que ha generado una spin-off llamada Sparsity-Technologies proveedora de una base de datos orientada a grafos llamada Sparksee. 


Apasionado  de  las  buenas  prácticas  de  programación  y  contribuidor  del proyecto Walkmod. Actualmente esta trabajando como software architect en Alpify, una pequeña empresa que garantiza la seguridad de las personas cuando realizan actividades de riesgo en alta montaña.

Animaos! Todos los asistentes tendréis un pequeño obsequio.

martes, 25 de febrero de 2014

Resumen del workshop de Amazon WS

¡Buenos días!

El día 15 de febrero de 2014 tuvimos la oportunidad de participar en un fantástico taller de Amazon WS (AWS) organizado gracias a CAPSiDE (Authorized Training Partner de Amazon).
Javier Moreno fue el anfitrión y expositor de esta fantástica charla-taller que nos dió sobre los servicios de Amazon, centrados en su aspecto de escalabilidad y que se realizó en las instalaciones de CAPSiDe en Plaza de Catalunya.

La primera parte del taller consistió en una explicación  a grandes rasgos de cómo está constituida físicamente la infraestructura de Amazon que permite proporcionar sus servicios, dándonos un ejemplo de caso de uso con la campaña de Obama durante las pasadas elecciones presidenciales en Estados Unidos. Durante esta explicación (que insistió Javi, era sólo la mera punta del proverbial iceberg) pudimos percibir la enorme infraestructura física montada para dar soporte a servicios que atienden una cantidad gigantesca de peticiones. Si una idea debemos quedarnos de este taller, es de la escala masiva en la que trabaja Amazon.

Con AWS, podemos disfrutar de infraestructura para alojar nuestras aplicaciones. Y es sólo el punto de partida, ya que sobre esta base se construyen el resto de servicios de escalabilidad que nos permiten tener el máximo de flexibilidad a la hora de responder a las necesidades variables de demanda de nuestros propios productos / servicios. Esto es lo que trabajamos en el taller, cómo crear la infraestructura en la que alojar nuestras aplicaciones y cómo aumentar o reducir la capacidad de carga de forma automática (Autoscaling Groups) y coordinada (Elastic Load Balancing).

Para ello, creamos tres aplicaciones: una aplicación servidor que admitiera peticiones REST para calcular el número PI, una aplicación cliente que hiciera peticiones periodicas a la primera, y una aplicación de monitorización que extrajera información de la aplicación servidor.
La aplicación servidor estaba diseñada para ser muy consumidora de CPU, lo cual nos permitía establecer reglas de escalado para que cuando una máquina estuviera bajo mucha carga, se crearan de forma automática máquinas idénticas que continuaran dando el servicio, coordinadas a través de un Balanceador de carga.

Lo notable del asunto fue comprobar lo fácil que resultaba conseguir algo tan complejo como esto con unos simples clicks en la consola de gestión de Amazon. El taller alcanzó su punto álgido cuando todas las aplicaciones cliente que habíamos preparado fueron configuradas para atacar a un solo servidor y pudimos observar cómo con las características de auto escalado y recuperación de máquinas, el servicio no caí nunca. Esto quedó ilustrado de forma muy gráfica con un mapa mundi creado para la ocasión! Javi también nos explicó cómo la consola es sólo un punto de entrada a los servicios, que pueden ser accedidos con una API para que integremos los servicios de Amazon con nuestras propias aplicaciones de gestión de sistemas.

A pesar de estar cuatro horas en el taller, apenas pudimos arañar la superfície del universo AWS, ¡así que más talleres podrían ir de camino para profundizar en el tema, continuad atentos a todos nuestros canales de comunicación!

¡Nos vemos en el próximo taller y gracias a Javi y a CAPSiDE por ofrecernos sus instalaciones para llevarlo a cabo!

Fotos del taller


domingo, 16 de febrero de 2014

Resumen Introducción a Hadoop (09/01)


Hola devs!

Hemos empezado el año con muchos eventos y muy interesantes (y esperamos que muchos vengan a lo largo del año) y se nos ha acumulado el trabajo, pero no os preocupéis, poco a poco vamos a intentar ponernos al día ;-)

Como recordaréis empezamos el año, el jueves 9 de enero, con una charla de Introducción a Hadoop de la mano de Ferran Galí i Reniu.

Estuvimos muy contentos de poder ofrecer esta charla de un tema del que tanto se habla hoy en día y que a la vez es un gran desconocido. Todos hemos oído hablar de Hadoop y BigData, y muchos estabais interesados en saber un poco más sobre el tema. 

Como podéis ver en las fotos, y recordaréis los que vinisteis, la sala estaba llena y no cabía ni un alfiler, gracias a todos los asistentes y a nuestro ponente, Ferran. Como ya os comentamos, hubo un cambio de última hora y nos movieron de sala, cosa que intentamos resolver, pero al final no pudo ser, por eso os pedimos disculpas si estuvisteis algo incómodos. Es la primera vez que nos ha pasado algo así (y esperemos que sea la última ;-))


Ferran empezó explicándonos el porqué, la problemática y la necesidad del BigData. A continuación nos introdujo en Hadoop, su sistema de almacenaje HDFS, el modelo de programación de MapReduce y todo su ecosistema.

Para poder entender como funcionaba MapReduce y como se implementaba en Java, Ferrán nos enseñó un par de ejemplos sencillos: contar palabras y buscar la palabra que más ocurrencias tiene en un texto utilizando este modelo de programación. Ejecutamos los ejemplos y vimos como se comportaba Hadoop a través de la consola web y las diferentes configuraciones que podemos poner, como por ejemplo, número de tasks para maps y reduces. Después de ver los ejemplos y el funcionamiento de Hadoop, vimos una pincelada rápida de todo el ecosistema de Hadoop y la gran cantidad de herramientas que hay a su alrededor para facilitar el trabajo, Hive, Pig, etc. 


Para acabar la charla, Ferran nos comentó cómo y para que usaban Hadoop en Trovit. Un cierre de charla muy interesante, ya que pudimos llegar a entender su aplicación real en una gran empresa.

Por último, os dejamos los enlaces a la presentación, el vídeo y el código fuente con los ejemplos:



Código fuente ejemplos: https://github.com/ferrangali/jug-hadoop

Esperamos que os haya gustado y nos vemos pronto!

sábado, 8 de febrero de 2014

Summary Apache Camel Conference & Workshop

Hi devs !!


On Friday January 24th, we had the pleasure to host an awesome conference and workshop about Apache Camel, leaded by one of the main committers for this Apache project and also the author of the book "Camel in Action"..... Mr Claus Ibsen.


After pointing about the origin of its name, Mr. Ibsen clarified the main concepts that defines Apache Camel: integration framework + enterprise integration patterns. This was the entry point to the book "Enterprise Integration Patterns. Designing, building,and deploying messaging solutions" written by Gregor Hohpe and Bobby Woolf. Mr. Ibsen reviewed some of the patterns evaluated and described in this book to show where Apache Camel may apply, and as examples for the cases he explained as the conference went on.

Camel works using "routes"  joining endpoints, using transformes, choices, etc. Tons of components make Camel a tool to connect everywhere out-of-the-box.
It can use Java DSL using the Java language to define the routes, or Spring DSL defining routes in the XML, among others, and it can be embedded as a library in our application.
The Saturday morning in the workshop we used our prefered IDE to create a project with a route using a REST webservice as an endpoint, and we saw how easy was to create our application, developing only the core, the business logic and not the adapters and the protocols.

By the way, room was full in the two sessions ... it was awesome to see all that people listening to Claus.


Here we can see the video of the presentation : 





Claus Ibsen slides are available at Slideshare site

Do not hesitate to take a look at Claus Ibsen personal blog at http://www.davsclaus.com/2014/01/back-from-barcelona.html


Thanks for coming !!!!


viernes, 7 de febrero de 2014

AWS workshop / Battlefield with CAPSiDE (15/02)

Hi devops!

¿Alguien interesado en un taller relacionado con el cloud y más concretamente en AWS? ;-) Si la respuesta es afirmativa, entonces sigue leyendo, porque estás invitado a nuestro próximo workshop, el próximo sábado 15 que será llevado a cabo gracias a CAPSiDE (Authorized Training Partner de Amazon) en sus oficinas.

El objetivo de este workshop es ponernos nosotros mismos al volante de "nuestra nube", entender los conceptos y el funcionamiento de AWS y, por supuesto, ¡jugar con ella! Ah! Sobretodo, no os olvidéis vuestra tarjeta bancaria, porque aunque el evento será gratuito gracias a CAPSiDE, esta vez, cada uno tendrá que asumir el coste de sus propias máquinas virtuales, dependiendo del uso que le dé y hasta dónde quiera llegar (que por lo que hemos calculado será de un total entre 1-5€, ...coste que creemos que podréis asumir ;-))

En cuanto a la sesión, comenzaremos a nivel de configuración para definir conceptos básicos de AWS para continuar con temas como la escalabilidad y elasticidad. Continuaremos con la definición de métricas y políticas de escalado. Por último y con nuestra propia nube, realizaremos pruebas de carga y... ¡acabaremos luchando entre nuestras flotas viendo qué sucede en términos de coste y su uso! Aquí tenéis un guión más detallado de lo que hemos preparado: 
  1. Presentación de AWS
  2. Servicios EC2
    Conceptos básicos de virtualización, tipos de instancia, ciclo de vida, easy came easy goes
  3. Amazon Machine
    Creación de AMIs personalizadas, personalización vs flexibilidad, etc
  4. Escalabilidad vertical
    Diferencias de rendimiento, ventajas, outages, precio
  5. Escalabilidad horizontal
    Caso de éxito: Animoto
    ¡Café!
  6. Launch configuration
    Crearemos una plantilla para lanzar instancias
  7. Autoscaling groups
    Definiremos cuántas máquinas compondrán nuestra flota 
  8. Elastic Load Balancers
    Explicaremos cómo poder acceder a todas sus máquinas desde una única dirección

    ¡Más café! 
  9. Cloudwatch y métricas
    El papel de las métricas y qué se puede y no se puede hacer
  10. Autoescaling policies
    Discutiremos qué métricas son útiles en este escenario y qué umbrales escoger
  11. Pruebas de carga
    Veremos cómo evoluciona nuestra flota cuando la ponemos a prueba y cómo utilizar AWS para testear cargas
  12. ¡Fight!
    Veremos una configuración contra otra y que coste económico tiene cada elección.
    Debate final


El taller, será impartido por Javi Moreno, Resident Futurist & Evangelist en CAPSiDE. Javi (@ciberado) es ingeniero informático con más de 20 años de experiencia como profesor en gran variedad de tecnologías y áreas y actualmente da cursos de AWS, Cloud Computing, Java, Big Data, Hadoop, MapR, MongoDB, aunque, como él dice, lo que le gusta ... es hacer fotos ;-)

Para ir acabando, dar las gracias una vez más a CAPSiDE, ya que han puesto todo por su parte para realizar este taller y se han mostrado en todo momento animadísimos a llevarlo a cabo, así que esperamos que sea satisfactorio para todos.

Nada más, vigila, porque las plazas son más que limitadas así que,... ¡date prisa y reserva tu plaza en MeetUpY si finalmente no puedes venir, por favor, libérala.

Un saludo & happy cloud computing!

domingo, 2 de febrero de 2014

Introduction to Vaadin (6/2)

Talk in English

Hello community !

February is here so, here we are ! Our next event, next thursday 6th of february will focus on a great open source application framework: Vaadin.


For all of you who don't know anything about Vaadin, we can tell you that is an great framework built on top of open source technologies designed to build rich Internet applications. It uses a server-side architecture to build & deliver Javascript to the browser, so it means that all of your application logic runs on your servers. Of course, it uses Ajax requests to provide a rich and interactive user experience. Writing an application that lazily loads large amounts of data from the server, includes drag-and-drop, keyboard navigation and compelling visualizations would not require writing any HTML, JavaScript or resigning a REST API. While the server centric development model provides the best productivity, Vaadin also supports client-side development though the GWT based Java to JavaScript compiler as well as JavaScript. The default looks of the application can be customized with CSS and SASS.


This presentation will give you an overview to Vaadin and explain how it works. We'll also discuss on what are the latest new features of Vaadin and how the roadmap looks. The session should give you everything you need to get started building your own apps with the free Apache-licensed Vaadin. Furthermore, we explore the ways of combining the server- and client-side development models in the context of Vaadin Framework and GWT. The goal is to be able to use the best of the both models and provide a flexible basis for building high quality user interfaces for enterprise applications. 

We invite you to take a look at their website, it's really interesting the amount of features it has. Check out the sampler app they have in their website and you will see how beautiful and rich UI you can build as well as how easy is the code to understand and write. 

Dr. Joonas Lehtinen, founder and CEO of Vaadin ltd, the company behind the Vaddin framework, will come from Finland to explain which are the benefits of work with this web framework and why we must try it in comparison with others. Joonas has been developing applications for the web since 1995 with a strong focus on Ajax and Java and he is a frequent speaker at international conferences.

Nothing more to say guys, come to see what's inside this web framework and don't forget to RSVPed!

See you next thursday!