miércoles, 26 de marzo de 2014

Introduction to Apache Cassandra

Talk in English !!!
Hi devs !!!!


We are back to the stage this April 1st  with a new cool presentation. This time is about Apache Cassandra, the famous No-SQL database developed by Facebook and evolved as an Apache Foundation project.




Colin Clark will outline how Cassandra was used in a large system that performed post-trade compliance and surveillance for a major US stock exchange. He'll outline the components used, how they were tied together, and the end motivating factors behind choosing Cassandra for the data store.




Colin has been using Cassandra now for 5 years in high speed, mission critical applications and has over 25 years of experience in global capital markets.  During that time, Colin has worked for a number of exchanges, broker/dealers, investment managers, regulatory bodies, on-line trading firms including NYSE Euronext, Boston Stock Exchange, London Stock Exchange, Paris Stock Exchange, Goldman Sachs, Fidelity, E*Trade, Scottrade, Citi, and numerous others.




Event Details

When   : April 1st 2014, 18.30 h

Where :  Punt Multimedia ( Casa del Mig )
              Carrer Muntadas Nº 1-5 (Parc de l’Espanya Industrial)
              08014 Barcelona
           

We expect you to come !!! We have limited places so do not forget to register in our Meetup Event.

Register to the Event

martes, 18 de marzo de 2014

Introducción a Liferay

Hola devs !!!




De nuevo estamos a la carga, y esta vez con una presentación sobre Liferay a cargo de nuestro habitual jugger José Guitart, Product (Liferay) Software Engineer de Opentrends.

Liferay Portal es una plataforma web empresarial para construir soluciones de negocio que suministran resultados inmediatos y valor de larga duración.



El próximo 27 de Marzo a las 19.00 podremos asistir a esta fantástica presentación que cubrirá los siguientes puntos :

Liferay - ¿Y esto de qué va?

1. Introducción a Liferay
  1.1. Liferay cómo CMS
    1.1.1 Contenidos
    1.1.2 Estructuras
  • Sites
  • Páginas
  • Portlets
  • Temas
  • Layouts

    1.1.3 Autorización y autenticación
  • Usuarios / Roles / Permisos
  • Organizaciones y grupos de usuarios
  1.2. Liferay cómo plataforma
1.2.1 Plugins
  • Portlets
  • Hooks
  • Themes
  • Layouts
    1.2.2 Otras herramientas

2. Desarrollo en Liferay
2.1 Crear el portlet
2.2 Crear el servicio
2.3 Añadir páginas
2.4 Navegación.

3. Conclusiones
  3.1 ¿Dónde está el valor de Liferay?
  3.2 Cuando usar Liferay
  3.3 Cuándo no usar Liferay

Así que nos espera una presentación con contenido teórico y práctico que nos permitirá acercarnos más a lo que es Liferay y lo que puede aportarnos.

Te esperamos !!!!




Resumen Introducción a Walkmod

Hola devs !!!

El pasado 6 de Marzo tuvimos el honor de recibir una presentación sobre Walkmod, una herramienta opensource para gestionar code conventions , de la mano de sus creadores Raquel y Albert.

Con Walkmod podemos forzar que nuestro código cumpla con una serie de convenciones , reformateando y modificando nuestro código para que este acorde con esas convenciones.

En la presentación pudimos ver la arquitectura de diseño empleada en su construcción  ( reader, walker, merge engine, template engine, query engine, writer, transformers, scripts ):


Una arquitectura que nos permite extender los readers para poder leer el código fuente de cualquier lugar mientras implementemos el interface adecuado, así como el writer.

Mediante un fichero XML de configuración podremos definir las transformaciones a realizar con nuestro código.

Está pensado para que la salida de una transformación es una entrada de la siguiente transformación, teniendo en cuenta que siempre se genera código nuevo, nunca se va modificando el original. Eso será tarea del Merge Engine que deberá considerar aquellos cambios que debe aplicar, teniendo en cuenta ciertas reglas configurables.

Permite tener distintos Templates de transformación que usan Groovy como motor de Templates. Aunque también podremos llevar mas allá la transformación usando scripts de Groovy.

Para poder generar los templates y los scripts disponemos de un potente motor de Queries que nos permitirá buscar en el sistema aquellos elementos que queramos incluir en la transformación, navegando por el AST de Java.

Por último disponemos de la capacidad de extender el sistema con el uso de plugins que serán definidos como Beans de Spring en su respectivo fichero de configuración. 

En definitiva una herramienta muy potente que nos permite controlar y forzar las convenciones de código corporativas.


Presentation video : http://youtu.be/vxWgI9Fj_Rw


lunes, 17 de marzo de 2014

BCN } JUG Workgroups - Social - Primera sesión


Buenos días, devs!

El pasado martes 11 de marzo nos reunimos para la primera sesión del grupo de trabajo de Social. El objetivo de la reunión era establecer las pautas, tecnologías y arquitectura que seguiríamos para implementar el proyecto de publicación de eventos de BCN Jug en las distintas plataformas sociales.

Entre todos pensamos cuál debía ser el flujo de la aplicación y llegamos a lo siguiente:
Acceder a la página de publicación, elegir a qué plataformas propagamos el evento y lanzar la petición al servidor. Con los datos proporcionados desde el cliente, se van activando los distintos módulos de publicación que tengamos en el backend.

Desde el punto de vista de arquitectura, tendremos un cliente sencillo, implementado como aplicación web en AngularJS (lo cual nos permite utilizar componentes de edición texto enriquecido).  Este cliente accederá a los servicios de un Backend Java alojado en OpenShift. El backend expondrá sus servicios a través de una interfaz REST. La tecnología elegida para implementar el backend es Spring, con Spring MVC para REST (aunque todavía queda por debatir si usaremos Spring MVC o alguna otra tecnología de REST para Java) y Spring Social para las interacciones de nuestro cliente con las distintas redes sociales en las que vamos a publicar: Facebook, Google+, Twitter y Meetup a priori.

Desde el punto de vista de infraestructura, usaremos un alojamiento en OpenShift, a medio plazo integrado con algún sistema de integración continua todavía por pensar.
El sistema de construcción elegido es Gradle. Organizaremos las tareas siguiendo un modelo Kanban, con la herramienta Trello. Compartiremos documentos con las herramientas de Google Drive. La documentación pensamos hacerla con ASCII Doctor (Gradle tiene, además, tareas que se integran con este sistema, por lo que puede automatizarse).
Para coordinarnos, además de Trello (del cual ya tenemos cuenta abierta), usaremos la cuenta de Google Groups para comunicarnos, además de reuniones periodicas en las que pongamos a punto los temas que tengamos que tratar o para coordinarnos en persona (además de para tomar alguna cosa juntos, claro ;) )

Saldremos con un MVP que permitirá publicar los eventos y nada más. Persistencia, autenticación y funciones más avanzadas se dejarán para iteraciones posteriores.

Iremos creando tareas relativamente independientes para que los que quieren participar puedan coger unidades pequeñas de trabajo. De hecho, ya hay unas cuantas tareas creadas en Trello que cualquiera persona que quiera participar puede coger. Sólo tiene que crearse cuenta de Trello y pedirnos invitación.

Sin más, sólo comentar que sois bienvenidos en cualquier momento. Para más información acceder a Google Groups o apuntaos a los meetups que vayan saliendo.
También podéis contactarme.

Saludos!


lunes, 10 de marzo de 2014

Summary of Introduction to Vaadin

Hi devs !!!

Last february we received an important visit, the CEO of Vaadin, Mr  Joonas Lehtinen. He came to show us what is and what can do this famous UI framework.

 

He showed us the main concepts of this framework :
  • we can develop using pure Java language
  • the way we develop is similar to Swing
  • we can use other languages to develop ( scala,...)
  • it fits itself to different web browsers, Android, iOS, etc...
  • it has almost 100 UI components, and growing

It's so easy to develop using Vaadin, you just start extending your UI classes of com.vaadin.ui.UI (this has changed from Vaadin 6, be careful!) and use the Vaadin objects, have a look:

          public class HelloWorld extends com.vaadin.ui.UI {  
                                                                                                                                         
              /**                                                   

               * Init is invoked on application load                
               * (when a user accesses the application              
               * for the first time).                               

               */                                                   
              @Override                                             
              public void init(VaadinRequestrequest request) {      

                                                                                                                                        
                  // Main view for the content                      

                  VerticalLayout view = new VerticalLayout();       
                  view.addComponent(new Label("Hello Vaadin!"));    
                  setContent(view);                                                                  
              }                                                     
          }                                                         

Here we can see an example of multi platform, with the PC Browser and the mobile version :



It also allows us to define the UI frames using Declarative UI Design in XML with Addon Clara. It also has a visual designer ( WYSIWYG ):

By the way, if you are interested, we leave here a few links:
And finally, here you can get the slides and video of the presentation:


Enjoy !!!!

sábado, 8 de marzo de 2014

BCN } JUG Workgroups - Social




¡Hi Devs!

Este martes 11 de marzo que viene, os proponemos un cambio de ritmo con un proyecto divertido en el que estirar nuestros músculos de programadores: un proyecto colaborativo centrado en la interacción con las APIs sociales.

La idea es que, entre todos, definamos, analicemos e implementemos una aplicación que permita publicar de una sola pasada, y unificado en una sola interfaz, todos los eventos propuestos por BCN JUG en los distintos canales de los cuales hacemos uso (Meetup, Blogger, Facebook, Twitter, Google+...).
Por el camino aprovecharemos para experimentar con distintas tecnologías, por supuesto, ¿sino dónde estaría la diversión? ;-) En la recámara tenemos para usar servicios REST, Cloud computing con Amazon WS u OpenShift (entre otros), Gradle, GitHub, tecnologías de testing vario, o cualquier locura que se nos ocurra. ¡Hay espacio para todo!

La duración estimada para este evento es de dos meses, durante los cuales realizaremos talleres, sesiones de trabajo puramente colaborativas focalizadas en llevar a término la idea lo más pronto posible.

El martes 11 lo que haremos será la reunión en la que planificaremos qué  haremos y usaremos. Un análisis previo en un ambiente distendido en el barrio de Gracia. De 19h a lo que nos lleve la tarde-noche, pero en conjunto no debería llevarnos más de dos o tres horas.

Aunque el espíritu del evento es 100% colaborativo, este humilde servidor de ustedes, Loïc Prieto, se ofrece como facilitador.

¡No os olvidéis apuntaros en Meetup, os esperamos a todos!