J-Fall 2014

Op Woensdag 5 november 2014 ging ik naar de J-fall in Nijkerk. Het was wel berevroeg opstaan -om 5:30- en vervolgens moest ik nog rennen om de trein van 6:26 te halen op Europapark.

J-fall is de jaarlijkse Java conferentie van de NLJUG - de Nederlandse Java User group - met 1200 bezoekers, 32 presentaties en 26 bedrijven die veel met Java doen.

Eenmaal in de trein ging het voorspoedig, in Nijkerk kwam binnen een paar minuten de bus naar Hart van Holland, waar de koffie klaar stond en de openings sessie om 9:00 begon.

Keynotes

Na de opening door Bert Ertman (die nog werd gehuldigd omdat hij 10 jaar bestuurslid is geweest van de NLJUG) was er een keynote van ING. Peter Jacobs (zelf ook Java ontwikkelaar geweest zei hij) vertelde over de ontwikkelingen van IT in de bank. Van file-verwerking naar continuous delivery en de stappen die ze daarvoor hebben gemaakt. Ze zijn van 5 releases per jaar naar 3 release per week gegaan. In een filmpje liet hij wat zien van Inge, de stembediening voor de ING app. En vervolgens Yvonne, de geautomatiseerde regressietest die elke nacht op 40 devices de app test. En daarna een filmpje van de hackathon die ze vorig jaar organiseerden en die volgende week weer is, met 750 deelnemers. Hij concludeerde: nooit meer terug naar waterfall, en besloot met een stukje over project Darwin, waarin ze met API's alles los aan elkaar koppelen. Een paar technologieën die ze gebruiken : Hystrix, Zookeeper, Akka, Cassandra. Take-away note: het gaat niet om productkennis maar om engineering talent.

Vervolgens de keynote van Quintor. Opgericht in 2005, gespecialiseerd in Java. Ze zijn veel bezig met big data. Ze noemen dat webscale, technologie die gebruikt wordt door bijvoorbeeld Google, Facebook, Twitter, Netflix en WhatsApp. Ze lieten Hadoop zien op hun cluster "Big Willem". Reactive streams gebruiken ze, waarbij volgende componenten in een keten aangeven hoeveel data een vorige mag sturen. Ze vertelden hoe je een Hadoop cluster inricht en gaven een demo van Storm. Dat gebruiken ze om het kortste pad in een graph te vinden met parallelle machines. Samenvattend : webscale verandert alles!

Apache Wicket 10 years and beyond

Martijn Dashorst vertelde over Wicket, dat nu 10 jaar bestaat. 10 jaar geleden waren er zo'n 120 Java web frameworks, waarvan er nu nog 15 over zijn, waaronder Wicket. Voordelen van Wicket: type safety, minimale configuratie, state management. Sinds 2006 ook Ajax. Sinds 2007 is Wicket een Apache project. 2012: versie 6.0 en vanaf dat moment elke maand een release.

Wicket wordt onder andere gebruikt bij de NS, OV chip en Duitse post. Bij Maccs gebruiken wij het ook voor webapplicaties.

Wicket 7 (verwacht Feb 2015) ondersteunt Java 7 en Servlet 3, en heeft een belangrijke nieuwe feature: component queuing. Hierbij wordt het mogelijk om componenten in Java een andere hiërarchie te geven dan in de HTML. Wicket bouwt eerst de component tree op, in plaats van een add method aan te roepen stop je de componenten in een queue en dan wordt de component pas ge-add als de component tree bekend is.

Met Java 8 wordt het mogelijk om lambda expressions te gebruiken voor on click events etc.

Is er wel een toekomst voor stateful applicaties? Dat valt te bezien, wat we de komende jaren zeker gaan gebruiken zijn web components met bijvoorbeeld Angular of Polymer. voor Wicket zijn de gloriedagen over, maar het gaat waarschijnlijk nog lang mee.

Evolutionary algorithms

Evolutionaire algoritmes zijn gebaseerd op de natuur, zie bijvoorbeeld evolutie. Voorbeeld : ontwerp van een antenne voor kleine satellieten. Als voorbeeld het zoeken naar een optimale oplossig voor het Travelling salesman problem:

  • Initialise
  • Selecteer beste kandidaten
  • Loop:
    • Genereer kinderen
    • Muteer
    • Evalueer
    • Selecteer nieuwe kandidaten

Je kunt elk moment stoppen en dan is er een oplossing. Misschien niet de beste, maar je hoeft niet alle mogelijke oplossingen te proberen voordat je wat hebt.

Nog meer keynotes

Na de lunch was de keynote van Oracle. James Weaver zet eerst de dukes choice awards winners in het zonnetje. Timon Veenstra (die ik nog ken van Ordina) was er een van, voor Agrosense won hij in 2013 de award. Dit gaat over het automatisch doseren van meststoffen in de landbouw.

Ook was er een award voor pidome, een project voor home automation. Vervolgens was de beurt aan de masters of Java winnaar van dit jaar, die in zijn eentje mee had gedaan.

Daarna kwam de game of drones presentatie van Salves. Helaas bleven de drones lang aan de grond. Nadat het systeem was uitgelegd lukte het toch om een drone in de lucht het te krijgen en met hersengolven te besturen. De drone vloog 2 keer de zaal in en werd door het publiek gevangen. Jammer dat de demo in het water viel, maar ze vertelden er in elk geval enthousiast over.

Migratie van JSF naar SPA

Deze presentatie ging over hoe je SPA componenten in een stateful web applicatie brengt. Agile migreren noemen ze dat. Waarom SPA?

  • Schaalbaarheid-stateless Apache applicatie
  • User experience, alles in de browser, data asynchroon
  • Hybride situatie : zowel JSF als rest services op applicatiebeheer.
  • SPA: require, sammy, routes, handlebar
  • Belangrijk : user session zowel op server als in client kant, ook beide uitloggen! Verder ging de demo over het ontwikkelen van de SPA, waarbij pagina's van JSF applicatie 1 voor 1 werden vervangen.

Microservices

De presentatie van Mylène Reiners van Atos ging over microservices. Boeken aan de oorsprong van microservices : o. a. "Release it!" en "Domain driven design" en "Antifragile". Microservices zijn:

  • Klein
  • Doen 1 ding goed
  • Onafhankelijk (eigen JVM)
  • Taal onafhankelijke communicatie
  • Ontkoppeld
  • Microservices noemen ze ook wel SOA done right
  • Niet gekoppeld aan bijvoorbeeld ESB, duidelijk afgebakend en granulair.

Docker

Wouter Danes van ING vertelde over Docker. Docker werkt met containers, een soort VM's die onafhankelijk van elkaar werken. Deze starten op in milliseconden en hebben weinig overhead. Handig om:

  • Dingen uit te proberen
  • Productie machine lokaal draaien
  • Proof of concept
  • Scale CI, build slaves bijvoorbeeld

Er zijn maven plugins voor Docker die containers opstarten om taken uit te voeren. Wouter demonstreerde een paar cases voor het gebruik van Docker, zag er super uit!

Afsluiting

Tot slot was er dan nog de borrel, toen even langs de döner en weer op de trein naar huis.

Een leuke maar lange dag!