Overleef de corona lockdown met een toeptoernooi met vrienden

Tijdens de corona lockdan van begin 2020 wilde ik een online toeptoernooi spelen met vrienden.

Het idee was dat we meerdere virtuele toeptafels zouden hebben met 4 spelers per tafel. Iedereen speelt dus een toepspel met 4 personen.

Als alle tafels klaar zijn, dan worden alle spelers automatisch opnieuw verdeeld over de tafels en begint elke tafel opnieuw.

Aangezien er geen bestaande online-toep applicatie bestond had ik besloten die zelf te gaan bouwen en ben daar 1,5 week mee bezig geweest.

Daarna heb ik de code nog wat gerefactored en heb deze op github gepubliceerd.

Er zitten nog verbeterpunten in, maar de liefhebber kan de code bekijken op https://github.com/robbertvdzon/toepen

Mijn visie op software testen

Deze blog is een samenvatting van een kennissessie die ik gehouden had bij Alliander over mijn kijk op software testing.

Disclaimer:
Dit is mijn persoonlijke visie en is gebaseerd op mijn eigen ervaringen bij Alliander.
De manier van testen kan per project, team en bedrijf verschillen en er is geen enkele uniforme manier waarop je hier naar kan kijken. Neem deze visie dus niet aan als absolute waarheid, maar kijk wat hiervoor ook betrekking heeft op je huidige situatie.

Welke tests hebben we bij ons team:

Lees meer »

Error handling: Excepties vs Either

Stel je moet een rest controller maken die een brief moet versturen waarbij de volgende logica gebruikt moet worden:

1: haal klant op (kan mis gaan, dus foutmelding afvangen)
2: roep functie aan die aangeeft of het een zakelijke klant is
3: zoek huisadres of werkadres (kan niet bestaan, dan fout teruggeven)
4: Genereer brief (kan mis gaan, dus foutmelding afvangen)
5: Verstuur brief (kan mis gaan, dus foutmelding afvangen)

Voor deze logica heb ik 4 verschillende implementaties gemaakt om deze te kunnen vergelijken.

Lees meer »

Formule voor berekenen snijpunten van 2 cirkels

Nu is mijn wiskunde kennis wel redelijk in orde,  maar om een formule te vinden die de 2 snijpunten van 2 cirkels berekend had ik toch wat problemen. Op internet vond ik helaas ook geen kant en klare formules.

Uiteindelijk heb ik de volgende een oplossing gevonden.

Mochten er simpelere oplossingen zijn dan hoor ik dat graag!

Hieronder de 2 cirkels met de 2 snijpunten. Ik heb in deze tekening 2 hulp driehoeken getekend.

bereken raaklijnen 2 cirkels (1).pngLees meer »

Graalvm memory usage

This weekend I did some graalvm testing on our Openshift environment to see if we could run our microservices with native graalvm images with low memory usages.

It seemed that using a graalvm native image used even more memory when running under load then running the same application using java.

Starting a pod that runs a native image did start with very little memory (13MB), but when putting some http load on the application, the memory quickly went to 270MB and never went back.

Lees meer »

Mutual SSL authentication

In deze blog laat ik zien wat de stappen zijn om certificaten te maken voor server en client applicaties.

Voor testen kun je de key- en trust stores maken zonder CA. Op productie zal er altijd een CA tussen zitten. Beide manieren worden hieronder besproken.

Een demo project met een server en client die ssl gebruiken (ook als authenticatie) is hier te vinden:

https://github.com/robbertvdzon/clientcertificateexample

Lees meer »

Going springless: no more magic!

Working with Spring Boot (but also working with JEE/Jakarta EE) can be a joyful experience. Within minutes you can create a  new RESTfull webservice  to which you can quickly and easily add circuit breakers, distributed tracing, security, database access, accessing other microservices, fallbacks, retries, service discovery, configuration management, many other things and of course you can use the great Spring DI framework.

Lees meer »