Our Blog
Sharing Our Experiences
- Java project & consultancy
- Cloud Native Development
- AI & IoT
Deep dive dag 1 – 10 okt 2022
Impressies van onze collega’s Ruben, Wout en Jef.
Top sessie: Code Your First Video Game AI
Het feit dat het hands on was en dat je dus actief moest meewerken, zorgde ervoor dat ik 3 uur lang gefocust kon blijven. Het theoretisch stuk over game theorie vond ik super interessant. En het was cool om te zien hoe we de theorie vrij makkelijk in praktijk konden zetten op codingame.com en een eenvoudige spel bot konden maken. Cool stuff !
Zoals vaak zijn zaken die onverwachts op je pad komen, het leukste. Eventjes terug de voeten op de grond, want met de skillset van een web developer die het grootste deel van zijn dagen spendeert aan rest api’s implementeren, was het toch even zoeken naar hoe je het beste een Monte Carlo Tree Search kan implementeren. Uit de comfortzone en heel leuk om eens wat meer code te bekijken vanuit een wiskundig perspectief.
Toffe workshop, uitdagend, core concepten van video game AI werden duidelijk uitgelegd. Daarna losgelaten om zelf een AI te schrijven voor Bandas spel op Codingames platform. Misschien beetje TE los gelaten, moeilijk om zelf AI correct te krijgen. Beetje teveel volk om daadwerkelijk vragen te stellen en er echt uit te leren. Omgeving blijft openstaan om zelf te blijven experimenteren, is ook gratis. Moesten vooral voortwerken op minmax algoritme, dat hij in pseudocode had voorgesteld. Om dit in echte code om te zetten en te laten werken was echter moeilijker dan verwacht.
Arch sessie: How the right architecture helps you make big changes
Enorme belangstelling. Meteen hands-on, weinig uitleg op voorhand. Bedoeling om te discussieren en in pairs te werken, maar moeizaam door grote hoeveelheid volk Op zich interessant om de uitleg achter keuzes te horen, maar voor mij wat te basic.
Part 2 werd wel aangekondigd, maar ging niet door wegens tijdsgebrek. Nochtans leek die wel een pak interessanter, aangezien er in een grotere codebase in kleine stappen gemigreerd moest worden.
Er werd gepushed naar DDD concepten en Hexagonale architectuur (onion layer), op zich concepten waar ik me wel in kan vinden. Ook duidelijk voorbeelden gegeven over waarom bepaalde manieren van werken wel voordelen opleveren, ondanks de extra overhead van extra mappings.
Testing sessie: Maven, my life is short!
Talk om uit eigen ervaring aan te geven hoe hij zijn eigen maven builds heeft kunnen versnellen. Ik zeg duidelijk EIGEN, aangezien de uitgevoerde zaken niet per sé voor iedereen gaan helpen.
Stap 1: SkipTests
Stap 2: Enkel maven modules bouwen die nodig zijn voor wat je probeert te doen. Dit geeft het meeste tijdswinst, maar moeilijk te bepalen welke modules je kan skippen
Stap 3: Skip bepaalde MOJO’s (vrij weinig tijdswinst, maar het bouwen van plugins kan al snel een halve minuut verschillen)
Stap 4: Gebruikmaken van maven daemon (mvnd) om te zorgen voor een long running java process zodat de warm up costs van java kunnen weggewerkt worden, kan tot 4x sneller veroorzaken
Stap 5: Parallel draaien indien mogelijk, in mvnd is de parallellisatie een pak efficienter en beter. Indien onmogelijk door hidden dependencies, kan –serial of -1 meegegeven worden aan de build om serieel te bouwen.
Stap 6: MEER RAM EN CPU CORES WANT DA IS ALTIJD DE OPLOSSING!
Iets minder interessante talk dan gehoopt, aangezien het vooral zijn eigen project omvat en geen always working Maven optimisations.
Drawbacks: Mvnd kan redelijk wat RAM gebruiken, Windows durft wel eens issues te hebben met openen en sluiten van files, which is wat mvnd doet. Voor Apple is pas net een eerste versie uitgekomen.