viernes, 30 de mayo de 2014

Resumen "Mocks will be assimilated"

Hola juggers !!!

El pasado 25 de Abril tuvimos el placer de escuchar a Alex Soto hablar sobre el uso de Mocks y de otras alternativas útiles para el testing así como stubs y fakes.

Inicialmente nos introdujo una muestra de las opciones disponibles sobre mocking : mockito, jmock, easymock... para romper el hielo.

Uno de los aspectos del uso de mocking es que facilita mucho los tests pero hace que el código desarrollado para mockear los diversos elementos no sea reutilizable en el entorno de producción y además implica que habrá que destinar un tiempo ( grande en algunas ocasiones ) al desarrollo de los mocks.

Otra opción sería usar plataformas como Arquillian, que nos facilitan la encapsulación del entorno de test y que nos permitirá probar nuestros elementos sin tener que crear mocks o fakes de ellos.

Arquillian es una plataforma de testing en la que podemos crear tests fácilmente y sin la necesidad de mockear aspectos de la aplicación .



  • Real tests increase certainty
  • Real tests build confidence
  • Real tests increase robustness
  • Mock is an option, not a rule
  • Don’t let mocks ruin yourquality
  • Long Live and Prosper to tests
Con Arquillian creamos nuestros entornos de test con nuestros elementos reales, sin mockear y inicializamos los diferentes elementos ( persistencia, CDI, etc ) y probamos con la seguridad que nuestro código probado irá directamente a producción puesto que no habremos invertido tiempo mockeando los elementos.

Manage Lifecycle of Container
Create/Deploy MicroDeployments
Enriching Test Classes
Run Tests inside/against Container
IDE Friendly



Slides de la presentación : http://lordofthejars.github.io/bjugbank-decks/slides.html

Video



martes, 13 de mayo de 2014

Building Reactive Applications with Akka - May 22th

Hola!

Ya tenemos aquí un nuevo evento, esta vez en colaboración con el grupo Scala Developers Barcelona. Conjuntamente tenemos el placer de presentar el evento "Building Reactive Applications with Akka" a cargo de Jonas Bonér, cofundador y CTO de Typesafe.




Las demandas y expectativas de las aplicaciones han cambiado drásticamente en los últimos años. Las aplicaciones actuales están desplegadas en una amplia gama de infraestructuras; desde dispositivos móviles hasta miles de nodos que se ejecutan en la nube, todo ello controlado por procesadores de múltiples núcleos. Los usuarios esperan que las aplicaciones reaccionen en milisegundos y que nunca fallen. Además, las aplicaciones modernas trabajan en entornos en que colaboran con una gran variedad de servicios de terceros.

En esta charla Jonas Boner presentará Akka detallando cómo puede ayudar a aportar en los cuatro principales características de las aplicaciones reactivas: Event - Driven, Scalability, Resilience y Responsive. Empezaremos con lo básico de Akka, continuando hacia algunos de sus módulos más avanzados como Akka Cluster y Akka Persistence, todos impulsados ​​a través de código con Scala y ejemplos prácticos.

El evento tendrá lugar el próximo 22 de Mayo a partir de las 18:15-18:30h, en la FIB (UPC Campus Nord, edificio B6, Barcelona). En esta ocasión y como se trata de un evento conjunto, os emplazamos a reservar tu plaza en Eventbrite.

No falteis, os esperamos!!

sábado, 10 de mayo de 2014

Java 8 Lambdas and Devices with Stephen Chin (recap)

Hi devs!

The last 14th of april we organized Stephen Chin's talk on Java 8 lambdas and devices, a terrific evening at the Official College of Technical Engineer in Computer Science in Catalonia (COETIC). We had a blast with robots, raspberry-made tablets, and a cute gal RPG character leading a herd of sheeps with the power of Lambdas!


To show us how to use Lambdas, Stephen led us through an incremental series of steps enhancing the funcionality of Mary, the JavaFX sheep herd leader RPG lady of the evening:


Lambdas were used to provide a chain of transformations on the behaviour of Mary and it's herd of sheeps. Treated as a collection of animals, lambdas provided us with the ability to apply filtering, selecting the animals we wanted to affect using reduction algorithms, like this one:
Predicate<SpriteView> pure = a -> a.getColor() == null;mealsServed.set(mealsServed.get() + s.getAnimals().filtered(pure).size());s.getAnimals().removeIf(pure);

Lambdas also served to provide collections of different types to transform our sheeps into chickens with mapping and collector!

  
Like so:
s.getAnimals().setAll( s.getAnimals()
    .stream()
    .map(SpriteView::getFollowing())
     .map(Chicken::new)
     .collect(Collectors.toList())
 );

All in all, a very informative and practical talk on using lambdas. But that wasn't all there was to it, since we got to see a demo of Duke, the java mindstorm robot, with whom we interacted:

It's all fun and laughs until the lasers come out
Duke was remote-controlled by a java-enhanced Rasperry Pi motherboard.

There was so much more that we did; I encourage you to see the whole thing on our youtube channel or in the Nighthacking website!

We're looking forward to see you on the next event!

miércoles, 7 de mayo de 2014

Going real-time with WebSockets and Spring (12/5)

Hi JUGgers!

Volvemos a la carga, para anunciaros que ya tenemos nuestro próximo evento, este próximo lunes 12, esta vez centrado en el desarrollo de aplicaciones web en real-time con Spring con el uso de WebSockets y de la mano de Sergi Almar.

A alguien en la sala le suena Spring, ¿no? ;-) Pues entre las mejoras y novedades que se incluyen en Spring 4, uno de los cambios significativos es el soporte para WebSockets. En esta sesión veremos cómo desarrollar aplicaciones en tiempo real usando WebSockets para una comunicación bidireccional. Gracias a SockJS, Spring permite el intercambio de mensajes en contenedores anteriores a Servlet 3.1 y entre navegadores que no soportan WebSockets (como IE anterior a la versión 10). 



De la misma forma conoceremos qué ventajas ofrece el uso de WebSockets para la comunicación, y qué tienen de similar al uso de un socket directamente (ej: no tenemos un protocolo como HTTP donde podemos usar headers, parámetros...) y porqué tienen un mecanismo para negociar un subprotocolo. Analizaremos las ventajas del uso de Spring y sus novedades, como el soporte de STOMP, cosa que permite implementar mensajería basada en WebSockets y veremos cómo este mismo framework proporciona un broker simple en memoria pero que a la vez también soporta la integración de un broker standalone como RabbitMQ o ActiveMQ.


En colaboración con javaHispano os ofrecemos esta charla, el próximo lunes 12 de Mayo a partir de las 19h en La Fontana impartido por Sergi Almar, SpringSource Certified Instructor. 

Os esperamos!