Inmiddels al weer twee weken geleden was J-Sping, en net als vorig jaar was ik weer aanwezig. Dit keer iets later vertrokken, iets meer files, maar wat minder tijd kwijt met parkeren (kuch…), dus ik kon nog mooi op tijd binnenkomen en eigenlijk direct doorlopen naar de opening (dit keer echter wel zonder kop thee…).

Atos Origin was weer de hoofdsponsor, en mocht de keynote houden. Aan het begin van de presentatie kwam de mededeling dat je je telefoon aan mocht houden. Je zag meteen allerlei mensen die dachten dat ze hint begrepen hadden hun telefoon uitdoen, maar de opmerking was geen hint, maar serieus bedoeld. Atos Origin had een applicatie gebouwd waarmee je berichten die via SMS ontvangen worden en foto’s die via Bluetooth ontvangen worden getoond werd. Zo moest het een interactieve presentatie worden. Het publiek kon dus dingen versturen, en de presentator ging daar op in. Het nut van de applicatie ontging mij eigenlijk een beetje (ze zullen bij Atos Origin op dit moment toch ook wel werk zat hebben, toch?), maar het leverde in ieder geval een aantal grappige momenten op. Uiteraard duurt het niet lang in een zaal met 1100 mensen totdat iemand de tekst ‘java.lang.NullPointerException’ via SMS opstuurt, en ook ‘System.exit(0)’ en ‘System.gc()’ moesten natuurlijk ook even voorbij komen.

De eerste sessie waar ik naar toe ben gegaan was ‘Temporale data met Hibernate‘. Het onderwerp is natuurlijk veel te groot om in 50 minuten te behandelen, dus veel meer dan een korte introductie was het eigenlijk niet. Maar ik vond het wel interessant om te zien hoe anderen omgaan met dit probleem. Waar ik erg blij mee ben is de literatuurverwijzing naar het boek ‘Temporal Data and the Relational Model’, die moet ik binnenkort maar eens gaan lezen.

De sessie erna ging over JAX-RS, de nieuwe gestandaardiseerde manier voor het maken van WebServices via REST. Ik ben zelf – ook na de presentatie – nog niet helemaal overtuigd dat REST nou zo veel meerwaarde heeft boven ‘gewoon’ SOAP. Aan de ene kant is het ‘alles is een resource’ principe wel een interessant idee, maar aan de andere kant: als je dan niet standaardiseert hoe je in de ene resource kan verwijzen naar een andere resource, dan vraag ik me af wat je er nou precies aan hebt.

Na de (uitstekend georganiseerde!) lunch, ben ik naar de sessie ‘Realtime monitoring en optimalisatie van Java applicaties met open-source tools‘ gegaan. Ik vond deze presentatie en demo erg goed gegeven, de structuur was goed, en het punt kwam goed over. Op zich was de demo misschien een beetje vergezocht: de demo was een aangepaste versie van de Java Pet Store waarin 2 versies van afbeeldingen zaten: grote en kleine. Afhankelijk van de response-tijden werden ofwel de grote, ofwel de kleine afbeeldingen gebruikt. Nou acht ik het vrij onwaarschijnlijk dat je in de praktijk ooit gaat aanlopen tegen een probleem dat te verhelpen is met het uitserveren van een kleinere statische afbeelding. Maar waarschijnlijk kan iedereen zelf wel voor zijn eigen applicaties bepalen welke zaken wel ‘duur’ zijn, en niet direct als must-have aangemerkt kunnen worden.

Daarna naar de presentatie ‘up-to-database‘ geweest. Vincent Oostindië, een oud-collega, presenteerde een aantal tools om databasewijzigingen gestructureerd te beheren. Ik heb erg genoten van de kenmerkende, soms enigzins onsubtiele stijl van de presentatie. En het onderwerp, en de problemen die erbij komen kijken waren wel erg herkenbaar… De tool LiquiBase lijkt me echt iets wat nuttig kan zijn.

De sessie ‘Groovy en Grails‘ had als doel dat ik ‘s avonds Grails zou downloaden en mijn eerste Grails applicatie zou gaan bouwen. Nou, dat is niet gebeurd… Ik vond de presentatie helaas vrij raar gestructureerd; zonder feitelijke introductie begon een demo waaruit we door middel van reverse engineering moesten achterhalen wat Grails nou was. Op zich lukt dat uiteindelijk wel, maar ik denk dat het makkelijker was geweest wanneer dat tijdens een inleiding gezegd werd. Maar goed, ik ben nou niet echt heel warm gelopen voor Grails… Kijk, op zich is het leuk dat je snel een CRUD-applicatie kan bouwen, en door middel van code generatie en door middel van dynamisch gegenereerde onderhoudsschermen (dat is wel cool) weinig zelf hoeft te doen. Maar ja, wat is het nut? In de praktijk ben je 5% van je tijd bezig met de CRUD functionaliteit, en 95% van de tijd bezig met het bouwen van je business logica, dus wanneer je die 5% versneld dan is dat leuk voor die 5%, maar de echte winst zit hem volgens mij in het verbeteren van die 95%…

Tenslotte de presentatie ‘Tuning JSF Applications – Session size matters‘. Ik wist van tevoren dat het onderwerp niet helemaal zou overeenkomen met mijn kennisgebied (slechts conceptuele kennis van JSF), maar een presentatie over performance tuning, dat is natuurlijk altijd meegenomen. In ieder geval wat interessante punten gehoord, en eigenlijk zijn de stelregels ook wel in z’n algemeenheid van belang.

Al met al dus weer een erg interessante dag geweest.