Op maandag 10 en dinsdag 11 oktober werken de senior java developers van MetaFactory niet voor opdrachtgevers.In vijf teams werken ze non-stop twee dagen aan een reeks projecten om de MetaFactory Code Composer verder te ontwikkelen en te verbeteren. Volg de liveblog en blijf op de hoogte van de ontwikkelingen. Start van dag 2!
Dag 1 terugkijken kan hier.
Liveblog
Dinsdag 11 oktober 2022
Update 10:25 uur
Vanaf half tien druppelen de eerste developers binnen. Het koffieapparaat is de smeerolie om de ontwikkelmachine weer op gang te brengen. Maandag was Tony ziek maar vandaag is hij blij dat hij erbij kan zijn. Binnen een uur gonst het weer. Dag 2 is begonnen!
Update 10:55 uur
Team 4 – Code Composer in Docker
Tijdens de vorige hackathon in 2020 lukte het om de Code Composer werkend te krijgen in Linux. Dmytro pakt de draad op, uiteraard met zijn eigen insteek: “Wat ik vandaag mogelijk wil maken is het genereren van code met slechts een commando, via Docker, en voor elke omgeving. MetaFactory gebruikt de Code Composer nu via de plug-in IntelliJ. Het is niet gebruikelijk om een script te schrijven die deze plug-in gebruikt in een command line, of voor andere besturingssystemen. Dit komt omdat het specifieke code gebruikt voor ons eigen besturingssysteem. Het idee is om de Code Composer in Docker te plaatsen zodat iedereen het op zijn / haar besturingssysteem kan gebruiken.”

David en Friso gaven in 2020 de voorzet om via Docker (besturingssysteem onafhankelijk) code te genereren met de Code Composer. Dmytro: “Ik hoop vandaag flink wat vooruitgang te boeken.”
Dmytro: “Dit project moet leiden tot een van de basisstappen om de Code Composer te gaan gebruiken. Daarnaast wil ik een detectie automatiseren die nagaat in hoeverre een gebruiker zijn werk correct of compleet uitgevoerd heeft. In principe gaat dit werken voor elke versie of toepassing van de Code Composer, maar ik werk het nu uit voor de Client-versie en in Linux. Wat ik wil bereiken is een interface die prettig werkt op elk platform, via Docker dus, en dan code genereren via Code Composer met slechts een commando. De specifieke kennis die developers hier bij MetaFactory hebben, is dus niet nodig. De enige informatie die nodig is, zijn de definities van je project en welk commando erbij hoort. Einde dag af? Ik hoop het!”
Update 13:01 uur
Drone clip!
Bekijk de drone clip op YouTube.
Update 13:15 uur
Lunch!
Update 13:55 uur
Team 5 – Create model from data source
Bart is Team 5: “Binnen de Code Composer staat een model om applicaties mee te bouwen. Hiermee definieer je welke objecten je wilt creëren. Dat model evolueert en groeit aan met metadata. De objecten zijn meestal gebaseerd op een entiteit uit de database. Onze developers genereren klasses die communiceren met de database. Het komt voor dat je een applicatie wilt bouwen gebaseerd op een bestaande database. Omdat een applicatie outdated is bijvoorbeeld.”

Muziekje erbij, verse koffie uit een MetaFactory mok, signature screen en gaan met die banaan. In de achtergrond maken Sandra en Ralph vorderingen.
Bart: “Ik ben nu bezig om een connectie met de database te leggen, aan te geven welk schema ik wil uitlezen, wat zijn tabellen, welke kolommen zijn er, welke types, et cetera. Dat schrijf ik weg, met de library van de MetaFactory Code Composer tool zelf, naar model.xml, wat wij in onze projecten gebruiken. Ik werk nu in een stand alone versie, een proof of concept. Als mijn code werkt, kunnen we dit toepassen in de InteliJ plug-in. In InteliJ kun je aan je project een data source toekennen. Het zou mooi zijn als je die gegevens vanuit je plug-in via InteliJ kunt lezen.
Wat ik vandaag kan opleveren, is bovenstaande stand alone (die uiteindelijk een onderdeel in de plug-in zal worden). Een volgende stap is dat er ook metadata meegenomen kan worden. De gegenereerde model.xml uit mijn versie kun je straks al in je project plakken! En zo is er weer een drempel weggenomen in het gebruik van de Code Composer.”
Update 15:15 uur
Intermezzo: Bingo!
Update 16:25 uur
Nog een uurtje om een presentatie te maken!
Team 1 – Traceren van recente actie; samenstelling van logs
Sandra: “Het extraheren van informatie – welke code instructies leiden nu tot welke files? – is tijdens deze hackathon gelukt. Wij presenteren als eerste dus nog even snel een logisch verhaal maken nu.”
Ralph: “De samenwerking ging super. Dit zou wel eens een project kunnen worden dat doorloopt. Het geeft waardevolle inzichten die bruikbaar zijn voor onze lopende en nieuwe werkzaamheden.”
Team 2 – Uitbreiding database functionaliteit met Blaze Persistence
Olçay: “Ik ben blij dat wat we voor ogen hadden, is gelukt. De queries kunnen we aanpassen en bewerken zoals we willen. Zie de presentatie!
Marco: “Ja, die ga ik nu heel snel maken… Oeps, nog een half uurtje!”
Team 3 – Automatische integratie van handgeschreven code
Marnix: “Ik ben blij met de resultaten zoals we die hebben behaald. Er blijft nog een stap over en dat is een lastige: het parsen van de bestaande file via een voor ons nieuw framework. Dat gaat vandaag niet lukken. Geeft niet. Dit project heeft voldoende potentie om periodiek aan te werken. Zo belangrijk vind ik het. We hebben de werkzaamheden binnen het team verdeeld. En nu gaan we kijken hoe we onze AST (Abstract Syntax Tree) gaan opbouwen.”
Team 4 – Code Composer in Docker
Dmytro: “In mijn presentatie laat ik zien hoe de Code composer in Docker werkt: snel eenvoudig en goed. Ik ben er heel blij mee. Ik verwacht dat mijn collega’s er direct mee aan de slag kunnen. Benieuwd naar hun feedback!”
Team 5 – Create model from data source
Bart: “Ai, ik heb nog een kwartier om wat code aan te passen en dan moet het werken. Kijk, deze kolommen zijn foreign keys en die moeten alleen als reference komen. – ja, ja, Bart even to-the-point en in gewone-mensen-taal – De basale versie is nu afgeleid uit de database. Als ontwikkelaar kun je nu starten met je applicatie. Ik maakte voor dit project gebruik van een best-practise uit een project van TNO en van een eerdere poging van Marnix. Daar heb ik veel aan gehad. Onze eigen code-instructies zitten heel anders in elkaar dus ik ben best tevreden met mijn prestatie. Demo in zeven minuten!
Update 17:31 uur
De vijf teams geven duidelijke presentaties – zie foto’s – waar iedereen erg happy mee is. Hoe verder? De projecten worden doorontwikkeld, of in de volgende hackathon of ze zijn direct toepasbaar.
Update 18:35 uur
Pizza! En napraten natuurlijk.
Interesse in de Code Composer?
Neem contact op via de contactpagina of bel en vraag naar Tony, Jack of Marnix.