Bezoekverslag J-Fall 2024

Expertise

Bezoekverslag J-Fall 2024

Afgelopen 7 november stond J-Fall weer op het programma. Vroeg het bed uit om op tijd binnen te kunnen zijn. Ik haal nog 3 andere collega’s op om mee te rijden, voordat ik op de navigatie het adres ingeef. De reis verloopt voorspoedig en we zijn één van de eersten die bij J-Fall naar binnenlopen. Het inchecken verloopt snel en soepel, en we lopen naar de stand van Pancompany. Hier drink ik de koffie van onze eigen Pancompany Barista, die de hele dag iedereen trakteert op overheerlijk cappuccino en espresso.  Ik praat wat met collega’s. Daarna begeef ik mij naar de eerste sessie. Hieronder volgt een kort verslag van de dag. 

Build your own EV Smart charge solution 
Spreker: Joost den Boer 

Deze sessie wil ik bijwonen, omdat ik privé een EV-auto ga aanschaffen en zonnepanelen heb. Ik hoop dan ook interessante informatie op te pikken uit deze sessie. Het begint goed: allerlei informatie over een EV en hoe een oplaadpunt werkt, komt aan de orde. Het eerste leerpunt is dat er zoiets als een Charge Point Operator bestaat. Dit kan een bedrijf zijn, maar ook een laadpunt eigenaar. In mijn geval is dat dus een extern bedrijf wat de verrekening van de laadsessies afhandelt. Dit betekent dus, dat ik zodra ik van mijn leaseauto afscheid neem, actie moet ondernemen om zelf CPO te worden.

Verder laat Joost met een aantal docker containers zien hoe je een smart home oplossing kan inrichten met HomeAssistant. In de setup emuleert hij een laadpunt en HomeAssistant, en demonstreert hij hoe je kan instellen dat je EV-auto automatisch laadt als er genoeg stroom wordt opgewekt door de zonnepanelen. Dit alles voorziet hij van duidelijke voorbeelden. 

Zijn code is terug te vinden op https://github.com/diversit/smart-charge-demo 

The Power of Open-Source, how pet projects help your daily work 
Spreker: Benoit Viguier

Benoit vertelt wat er in zijn ervaring gebeurt als je open-source inzet om je doelen te behalen. In zijn teams gaf hij ontwikkelaars de kans om uit eigen overtuiging open-source in te zetten in zgn. “pet projecten” (oftewel een vorm van proof of concept). Hij vertelt dat hij door het inzetten van pet projecten twee belangrijke dingen waarnam: ontwikkelaars vinden het leuk om te doen, en de open-source community geeft je wat terug in de vorm van hulp. Zo wordt code verbeterd of geoptimaliseerd, waardoor je eigenlijk nog sneller doelen kan behalen.  

Braving the Change: recalibrating to new realities 
Spreker: Tom Cools 

Tom Cools vertelt een mooi verhaal over veranderingen die we meemaken in ons werk. Hij trok een parallel tussen wat hij vroeger als cool beschouwde, zoals code c

ompletion, en dat hij het maar gek vond dat een oudere programmeur daar niks van moest hebben. Het argument wat deze senior gaf was dat het gevaar op de loer lag dat ze zonder de hulp van de code completion tooling niet meer zelfstandig konden programmeren. Tom geeft momenteel zelf ook les aan informaticastudenten en toen hij zich bij een ingeleverde opdracht begon op te winden over het inzetten van AI door zijn studenten, bespeurde hij bij zichzelf een vergelijkbare reactie als destijds van de oudere programmeur. De conclusie die Tom hieruit trok na wat zelfreflectie is: “Luister naar de ervaren programmeurs, want cool is niet altijd beter”. De AI had het fout namelijk, net zoals Tom destijds met code completion. Eigenlijk is de onderliggende boodschap dat nieuwe technologie prima te omarmen is, zolang we maar wel kritisch blijven nadenken.  

Na deze drie talks is het tijd voor een kop koffie; daar ben ik wel aan toe. Ik loop naar de stand van Pancompany, en neem snel een heerlijke espresso. Dan moet ik me haasten naar een talk van Ana. 

Monitoring Java Application Security with JDK Tools and JFR Events  
Spreekster: Ana Maria Mihalceanu 

Security is een onderwerp dat steeds meer gaat spelen de laatste tijd. Daarnaast heb ik regelmatig te maken met security vraagstukken en implementaties in mijn huidige werk, en dus leek me deze talk wel interessant. Ook omdat deze talk door Ana wordt gegeven, en ik in andere event-sessies zag dat ze lekker hands-on met code werkt tijdens haar presentaties. 

Zo laat ze zien dat je met Java Flight Recorder events kunt monitoren die certificaat gerelateerd zijn. Hierdoor is in de logging te herleiden of onrechtmatige certificaten gebruikt worden tijdens een TLS handshake. Dit demonstreert ze met een tic-tac-toe applicatie. 

 Deze technieken zijn handig om te detecteren welke partijen een verbinding proberen op te zetten met je applicatie/website, maar die daar eigenlijk niks te zoeken hebben. 

De demo is te bekijken op: https://github.com/ammbra/tictactoe 

Oh No, Not Another Chatbot – Java and AI for Real Business Use Cases 
Sprekers: Sean Li en Pierre Malarme 

Aangezien ik Java en AI steeds vaker zie in online artikelen, besloot ik om deze sessie te volgen. Vooral de link met een echte Business Case lijkt me interessant. Sean en Pierre vertellen dat AI steeds meer geïntegreerd gaat worden in online omgevingen. Vooral Microsoft integreert AI in al haar producten. Sean en Pierre voorspellen dat AI uiteindelijk bestaande apps zal verbeteren of opnieuw uitvinden, en dat er AI infused apps zullen komen. 

Met behulp van een demo laten ze zien hoe ze met behulp van AI op een veilingsite automatisch koopwaar kunnen laten waarderen en eventueel plaatsen. De demo applicatie moest aan een aantal randvoorwaarden voldoen voor de businesscase, zo mochten er geen mensen op de te plaatsen foto staan. Er werd, tijdens de demo, gevraagd om een foto te uploaden met een mens erop, dus ik stuurde een foto van mijzelf op. 

Al met al best indrukwekkend wat AI voor je kan doen, en dat AI je een hoop programmeerwerk scheelt. Toch moet gezegd worden dat je met AI nog steeds van een getraind datamodel gebruik moet maken. Zonder zo’n model kan AI eigenlijk niks.   

Na deze presentatie is het tijd om wat te gaan eten. Ik begeef me naar de plek waar de lunchpakketten worden uitgeleverd, en zie een lange rij. Met wat moeite lukt het me dan toch om een lunchpakket te bemachtigen, en ga ik naar de Pancompany stand om wat te eten. Hier praat ik met collega’s over waar ze geweest zijn en wat ze van J-Fall vinden. Ik merk dat iedereen die ik spreek erg enthousiast is over het evenement. Het is divers en groot opgezet, en er is voldoende eten en drinken. Net zoals ik komen mensen oud-collega’s tegen en daardoor kun je weer even bijpraten. Dat schept een sterk community gevoel, en iedereen lijkt er net als ik energie van te krijgen. 

Ik besluit om niet naar de twee volgende sessies te gaan, en blijf bij de stand van Pancompany staan om even bij te praten met mijn collega’s en over de venue te lopen. Hier ontmoet ik een oud-collega van de KvK en we hebben het over de werkzaamheden die hij momenteel daar aan het doen is. Dan is het tijd om naar de presentatie van mijn Pancompany-collega Auke Haanstra te gaan.

From Monolith to Modulith: Unlocking the Power of Hexagonal Architecture in Java  
Spreker: Auke Haanstra 

Wat Auke laat zien is hoe je met hexagonale architectuur structuur kan aanbrengen in bestaande applicaties. Het domein model is in deze architectuur volledig gescheiden van zijn omgeving door middel van in-en uitgaande adapters. Auke laat zien dat geïsoleerd testen dan een stuk eenvoudiger wordt en je geen last hebt van allerlei afhankelijkheden zoals bijvoorbeeld geneste classes die moeilijk te mocken zijn.


In de demo laat hij een regenboog eenhoorn zien die in ASCII over het beeld rent, hij heeft deze eenhoorn de naam “bubbles“ gegeven en gebruikt deze in de sessie. Auke kan met behulp van een Rest call eenvoudig de kleur van een van zijn benen aanpassen. Deze Rest call is geïmplementeerd in een adapter en geheel volgens de architectuur communiceert die weer met het model. Dit model wordt geupdate en zal de kleur van het betreffende been aanpassen. De aanpassing wordt doorgevoerd op het scherm doordat het model een uitgaande adapter aanspreekt met de te wijzigen waarde.
 Met behulp van de code in de demo neemt Auke ons mee in de manier waarop de applicatie werkt.

Ik bedenk me dat ik deze techniek in mijn huidige werk ook goed zou kunnen toepassen, want de huidige projecten zijn wel gestructureerd alleen verschillen op sommige punten wel van elkaar, waardoor het minder eenduidig is. De code staat op https://github.com/AukeHaanstra
Zijn presentatie is hier te zien https://www.youtube.com/watch?v=vVtIOGdma7A 

Na afloop loop ik weer naar onze Pancompany stand, en geniet van nog een kopje cappuccino. Daarna is het tijd voor de laatste twee sessies. 

Let’s use IntelliJ as a game engine, just because we can  
Spreker:  Alexander Chatzizacharias 

Alexander vertelt dat hij veel ervaring heeft met Unity 3d om games te maken, maar hij is erop uitgekeken. Voor de verandering wil hij met IntelIJ stunten en er een game engine van maken, gewoon omdat het kan. Deze sessie lijkt me wel leuk, is weer eens iets anders en wellicht kan ik er wat van leren. 

Hij vertelt dat hij gebruik heeft gemaakt van IntelIJ, Kotlin, Java en Swing om een game engine in IntellIJ te maken. Zijn eerste voorbeeld is een implementatie van het welbekende spel Pong. Daarna laat hij een variant van Space Invaders zien, in IntelIJ! Ook Pacman wordt getoond. Een leuk detail is dat de spookjes dependencies representeren in de code. Wat een grap!  Dan vertelt hij dat het mogelijk is om physics in InteliJ te implementeren, zodat je explosies in je code kan laten zien. 

Alexander neemt ons mee in een aantal leuke games die betrekking hebben op de code, de coins in Sonic representeren unit tests bijvoorbeeld.
Uiteindelijk liet hij zien dat hij zelfs DOOM kan draaien binnen IntellIJ. Hij heeft ook nog een aantal feature requests ingediend bij Intellij om het programmeren van games in InteliJ beter te ondersteunen. Briljant! 

Looking at Music, an experiment with Kotlin, JavaFX, MIDI and Virtual Threads 
Sprekers: Frank Delporte en  Vik Delporte 

Ik heb zelf wel wat ervaring met MIDI en deze talk leek me wel interessant, ook omdat er virtual threads gebruikt worden waar ik nog geen echte applicatie of demo van had gezien. Ik loop de zaal in en zie twee mensen on stage: één achter een digitale piano en één achter een laptop. Ik ben meteen enthousiast. 

Na een korte introductie vertelt Frank dat hij benieuwd is of Java in staat is om zonder problemen MIDI op te nemen en af te spelen. Hij heeft een demo voorbereid waar gebruik gemaakt wordt van JavaFX, Kotlin en Spring boot. De applicatie die hij heeft ontwikkeld heet MelodyMatrix en is gedeeltelijk opensource.  

Vik zit achter de piano die met MIDI is verbonden aan de computer van Frank en ook aan een geluidbox. Grappig detail is dat Vik af en toe begeleidende melodietjes speelt om de presentatie wat fleur te geven. Maar ook om een stukje muziek op te nemen en weer af te spelen.  

Behalve het opnemen van MIDI laat Frank ons zien dat hij ook een ledstrip heeft gekoppeld aan zijn laptop en de kleuren van de strip laat fluctueren afhankelijk van de muziek die er gespeeld wordt. De fluctuatie van de ledstrip is naderhand af te spelen.

In de demo wordt getoond hoeveel virtual threads er draaien en ook is er een virtueel keyboard te zien waarop de toetsaanslagen van de digitale piano te zien zijn. Samenvattend komt het erop neer dat de green threads in Java prima performen en geen problemen veroorzaken met het opnemen en afspelen van getimede data. De melodymatrix website: https://melodymatrix.rocks/buy 

Hierna is jFall ten einde en begeef ik me voor de laatste keer naar de Pancompany stand. Daar praat ik onder het genot van een (fris)drankje na met collega’s over J-Fall. Iedereen heeft het erg positief ervaren en velen vonden de talk van de Auke, onze eigen collega, zeer interessant. Binnenkort is er een in-depth meetup waarin Auke je hands-on meeneemt in de wereld van Hexagonale Architectuur. Wil je je daarvoor aanmelden, dat kan! Ga naar: https://www.pancompany.com/event/unlock-the-power-of-tdd-with-hexagonal-architecture/ 

Gerelateerde berichten

Selecteer je weergave.