Ik geef training in frontend tools en stacks als HTML, JavaScript, TypeScript, React, Angular en Vue. Ik schrijf boeken en artikelen over tal van (ICT-) onderwerpen. Ik was lead developer en directeur bij Yindo - Jouw digitale bibliotheek. Je kunt mij volgen op Twitter(@PeterKassenaar).

In dit blog vind je persoonlijke artikelen, die niet noodzakelijk tech-gerelateerd zijn.

Views and expressions are my own.

Terug naar de algemene site.

08juli

Drie manieren om broncode in je webpagina of blog te tonen

Als je regelmatig technische artikelen of blogs schrijft, is het ongetwijfeld vaak voorgekomen dat je programmacode in de pagina wilt tonen. Dit kan natuurlijk van alle zijn. HTML, JavaScript, C++, Python en zo verder.

Om er voor te zorgen dat de lezer je broncode zo makkelijk mogelijk kan begrijpen, heb ik drie manieren op een rijtje gezet. Ze hebben allemaal hun eigen voor- en nadelen. Er is niet één ‘beste’ manier om het te doen, denk ik.

1. Copy/Paste

De eenvoudigste manier is natuurlijk om rechtstreeks vanuit je editor te kopiëren-en-plakken. Dit is snel, eenvoudig en zorgt meestal voor een goed resultaat. Nadeel kan zijn dat de opmaak verloren gaat, dat regelovergangen niet goed overkomen en dat speciale tekens mogelijk automatisch worden omgezet door je editor (berucht voorbeeld: het HTML-commentaar <!—en --> wordt door veel editor automatisch omgezet naar een lang liggend streepje – of een pijl).

Een eenvoudige React-component ziet er dan bijvoorbeeld als volgt uit:

// App.js
import React from 'react';
// Child components
import Counter from "./Counter/Counter";
import DisplayCounter from "./DisplayCounter/DisplayCounter";
// Our parent component - it holds the state for the child components
function App() {
const [counter, setCounter] = React.useState(0);
const incrementCounter = (val) => setCounter(counter + val);
return (
<div className="container">
<h2>Hello React</h2>
{/*We are now passing the value and functionality for*/}
{/*the counter down to child components. */}
<Counter increment={incrementCounter} val={30} />
<DisplayCounter counter={counter}/>
</div>
);
}
export default App;

Door het lettertype aan te passen naar Courier of een ander monospaced font kun je wat betere resultaten bereiken:

// App.js
import React from 'react';

// Child components
import Counter from "./Counter/Counter";
import DisplayCounter from "./DisplayCounter/DisplayCounter";

// Our parent component - it holds the state for the child components
function App() {
const [counter, setCounter] = React.useState(0);

const incrementCounter = (val) => setCounter(counter + val);

return (
<div className="container">
<h2>Hello React</h2>
{/*We are now passing the value and functionality for*/}
{/*the counter down to child components. */}
<Counter increment={incrementCounter} val={30} />
<DisplayCounter counter={counter}/>
</div>
);
}

export default App;

2. Github Gists

Bij Github kun je veel meer hosten dan alleen complete repositories. Je kunt ook individuele snippets broncode plaatsen en hier bijvoorbeeld commentaar op vragen. Een geïsoleerd stuk code zonder omliggende structuur of project heet een gist.

En het mooie is: van Github krijg je een embed-code die je in je webpagina of blog kunt plakken. Dezelfde React-component ziet er dan opeens als volgt uit:

Het werken met Gists is superpraktisch als je broncode wilt delen, de lezer de mogelijkheid wilt geven de code eenvoudig te kopiëren, commentaar wilt verzamelen op je gist (via Github) en meer. Het is echt een sociale manier om met code om te gaan.

In populaire editors kun je van broncode rechtstreeks een gist maken:

    Webstorm

    • Selecteer een stuk code, klik met de rechtermuisknop en kies Create Gist.

    webstorm-gist

      Visual Studio Code

      Installeer de extension Gist van Ken Howard (https://marketplace.visualstudio.com/items?itemName=kenhowardpdx.vscode-gist). Voordat je de extensie kunt gebruiken, moet je wel eerst zelf een Github Access Token voor Gists aanmaken. Hoe dat gaat, lees je hier: https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token.

      Daarna kun je via Ctrl+Shift+P, Create New Gist een nieuwe gist maken.

      vs-code-gist

        3. Carbon

        Tot slot kun je een mooie afbeelding van je broncode laten maken via de online dienst Carbon (https://carbon.now.sh/).

        Hier kun je je broncode kopieren/plakken en er een .png- of .svg-afbeelding van laten maken. Je hebt keuze uit tal van kleurenschema’s, achtergrondkleur en taalschema’s (HTML, JavaScript, CSS, C#, JSX en talloze andere).

        Onze React-component ziet er dan op deze manier uit:

        carbon

        Conclusie

        Je hebt drie manieren gezien om broncode te delen via je webpagina. De eenvoudigste manier is het rechtstreeks kopiëren/plakken vanuit je editor. Als je de broncode via een online platform wilt delen, is Github Gists een goede manier. Wil je een fraaie screenshot van je code distribueren (zonder dat deze rechtstreeks te kopieren is), gebruik dan de online dienst Carbon.

        Ken jij nog andere alternatieven? Laat het weten. Ik ben benieuwd naar de manier waarop jij broncode deelt via je blog of website.

        Peter Kassenaar

        -- 8 juli 2020

        29mei

        Handboek JavaScript en jQuery–3e editie

        Het zal niemand in de webdevelopment wereld zijn ontgaan. JavaScript is de laatste jaren in sneltreinvaart geëvolueerd. Lange tijd was het niet meer dan een programmeertaal waarmee je klokjes in de statusbalk van de browser kon tonen of eenvoudige animaties in de pagina plaatste. Maar sinds de komst van jQuery in 2006 werd alles anders.

        SNAGHTML4f03ea9e

        Voor het eerst werden complexe, cross-browser compatible handelingen mogelijk zoals het selecteren van elementen en er allerlei handelingen mee uitvoeren. Het is niet overdreven om jQuery 'de redding van JavaScript' te noemen. JQuery is een bibliotheek die in aanvulling op JavaScript wordt gebruikt.

        Populariteit

        Ook met de populariteit van frameworks zoals React, Angular en Vue is de rol van 'gewoon' JavaScript en jQuery nog lang niet uitgespeeld. JQuery wordt meegeleverd met de standaardinstallaties van WordPress (35% van álle honderden miljoenen websites ter wereld draait op WordPress), andere content management systemen, wordt aanwezig veronderstelt in de populaire CSS-bibliotheek Bootstrap en wordt in het onderwijs gebruikt om snel interactiviteit aan webpagina's toe te voegen. JQuery is meegegroeid met deze ontwikkelingen. Oude opdrachten verdwenen uit de bibliotheek, nieuwe opdrachten zijn toegevoegd.

        De laatste jaren zijn er echter ook wijzigingen doorgevoerd in de taal JavaScript zelf. De manier om variabelen te declareren met var werd vervangen door const en let. Er zijn nieuwe manieren om functies te definiëren en bijvoorbeeld communicatie met een achterliggende API en database zijn nu rechtstreeks vanuit JavaScript mogelijk met de opdracht .fetch().

        Derde editie

        De derde editie van het Handboek JavaScript en jQuery is aangepast aan al deze vernieuwingen. Het is gericht op de beginnende programmeur die nog geen kennis heeft van JavaScript, of er alleen zijdelings mee te maken heeft gehad. Je leert vanaf het begin werken met variabelen, lussen, events en HTML-elementen als formulieren. Tegelijkertijd is het wel een boek voor degenen die met code bezig gaan. Je zult er geen aspecten van webdesign in terugvinden voor het ontwerpen of opmaken van pagina's met Photoshop of Illustrator. Alle codevoorbeelden zijn te downloaden om zelf aan te passen.

        In het eerste deel maak je kennis met JavaScript als programmeertaal zelf. Stapsgewijs leer je de achterliggende theorie, maar aan het einde van elk hoofdstuk staan praktijkoefeningen om het geleerde zelf uit te proberen.

        Het tweede deel gaat in op jQuery. Je leert dat het een uitbreiding is op JavaScript en hoe jQuery het leven van de JavaScript-programmeur makkelijker maakt. Ook wordt ingegaan op de wijze waarop je met jQuery communiceert met achterliggende API's. Gegevens uit databases kun je zo in de webpagina verwerken.

        Zo biedt het Handboek JavaScript en jQuery een uitstekende inleiding op je carrière als webdeveloper. Kennis die je hiermee opdoet kun je rechtstreeks gebruiken in je werk of hobby. Ook is deze kennis onontbeerlijk als je op termijn een volgende stap wilt zetten naar het ontwikkelen in een framework als React, Angular of Vue.

        Meer informatie

        Peter Kassenaar
        -- 29 mei 2020

        07mei

        CKEditor 5 gebruiken in een Angular-project

        Zo nu en dan kom je als webdeveloper een project tegen waarin het nodig is dat gebruikers zelf rich text kunnen invoeren. Denk aan een blog, een forum of een chatbox met opmaakmogelijkheden. Een standaard <textarea> element voldoet dan niet meer.

        Er zijn tal van oplossingen beschikbaar, maar de twee bekendste zijn waarschijnlijk:

        Beide editors zijn beschikbaar voor tal van frameworks (Angular, React, Vue) maar daarnaast ook voor vanilla JavaScript projecten en andere omgevingen.

        image

        In dit artikel lees je hoe je CKEditor 5 gebruikt. De focus ligt daarbij op een basisinstallatie in een leeg Angular-project. Via de documentatie kun je allerlei extra configuraties uitproberen, meer properties en events leren enzovoort.

        TLDR; Just show me the codez…https://github.com/PeterKassenaar/ng-ckeditor-example

        Inhoud

        1. Een blanco Angular project maken.
        2. CKEditor 5 installeren
        3. CKEditor toevoegen aan een component
        4. Gegevens uitlezen uit de editor en verder verwerken
        5. Vervolgstappen

        1. Angular Project maken

        We gebruiken CKEditor 5 in een standaard Angular CLI-project. Ik ga er van uit dat Angular CLI is geïnstalleerd. Zo niet, volg dan de installatiestappen op cli.angular.io.

        ng new ckeditor --defaults

        Als er toch nog om gevraagd wordt: neem de standaardinstellingen van CLI over met Enter. Je hebt dan een blanco project. Start dit en ga in de browser naar http://localhost:4200.

        npm start

        Open /src/app/app.component.html en verwijder alle (standaard)inhoud.

        Vervang dit door een eenvoudige koptekst:

        <h1>CKEditor 5 in een Angular-project</h1>
        image

        2. CKEditor 5 installeren

        Het installeren van CKEditor 5 bestaat uit twee stappen. Je moet de Angular Module installeren en een build kiezen. Je kunt kiezen uit een klassieke build, een inline editor, een balloon editor en meer. Wij kiezen de klassieke editor (=de vervanging van <textarea>).

        npm install --save @ckeditor/ckeditor5-angular

        npm install --save @ckeditor/ckeditor5-build-classic

        Vervolgens moet je – als bij elke Angular-module – de editormodule toevoegen aan je hoofdmodule. In ons geval is dat app.module.ts.

        3. CKEditor toevoegen aan een component

        Open app.component.ts en importeer hierin de classic editor die je eerder hebt geïnstalleerd. Maak hem daarna beschikbaar via een property in je class:

        Tot slot gebruik je de tag <ckeditor> in je template om de rich text editor te plaatsen:

        SNAGHTML6e614c0a

        Behalve de data rechtstreeks in de template te zetten met data=”<h2>…</h2>” kun je hiervan uiteraard ook een variabele maken en deze binden aan de template. Vergeet niet om het attribuut data in dat geval dynamisch te maken met […]. De code in de HTML wordt dan iets als

        [data]=”templateData”

        en in app.component.ts wordt de variabele ingesteld. Het is niet verplicht om vooraf data op te geven. Je mag uiteraard ook met een lege editor beginnen.

        templateData=’<h2>Welkom bij ….</h2>’;

        4. Gegevens uitlezen en verwerken

        Uiteraard wil je iets doen met de tekst die in CKEditor is getypt. Hiervoor is de event (change) beschikbaar en de methode .getData(). We gebruiken een aantal hulpvariabelen en voegen een knop toe die de getypte tekst als HTML in de component template toont.

        In werkelijkheid wil je de tekst waarschijnlijk naar een backend sturen om op te slaan. Gebruik in dat geval een service die HttpClient implementeert, enzovoort. Behandeling daarvan valt zoals je begrijpt buiten het bestek van dit artikel.

        Pas eerst de template als volgt aan.

        Wijzig app.component.ts om de gegevens te verwerken:

        image

        5. Conclusie

        Dit artikel liet zien hoe je op eenvoudige wijze CKEditor 5 toevoegt aan een Angular-project. Uiteraard is er veel meer mogelijk dan in het kader van dit artikel kon worden besproken. Kijk bijvoorbeeld naar:

        • Integratie met [(ngModel)]
        • Welke @Input() properties beschikbaar zijn
        • Welke @Output() properties beschikbaar zijn
        • Op welke manier je de editor kunt stylen met CSS
        • …en uiteraard alle overige documentatie

        Lees hiervoor de informatie op https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html.

        Cross-site scripting (XSS)

        Let er wel op dat áls je de tekst naar een backend stuurt, dat je kale HTML naar een API stuurt. Je backend moet dit als onbetrouwbare bron behandelen, en HTML altijd escapen. Een kwaadwillende gebruiker zou <script> tags kunnen typen met hierbinnen kwaadaardige code. Als je backend hierop niet is voorbereid, wordt vervolgens de scriptcode uitgevoerd! Dit wil geen enkele developer. Let hier dus goed op als je een rich text editor gebruikt (maar eigenlijk geldt dit voor alle user-input die je verzamelt. Escape altijd de HTML-tekens in de code.

        Voorbeeldcode downloaden

        Het eenvoudige project dat we hier gemaakt hebben, is beschikbaar op Github:

        Meer weten over Angular? Boek een training via www.angulartraining.nl

        Of lees een boek: Web Development Library – Angular

        Peter Kassenaar
        -- 7 mei 2020

        30augustus

        Infosessies TypeScript en ES6

        Logo's TypeScript en ES6

        In september en oktober verzorg ik voor aariXa in België een tweetal infosessies met als onderwerpen ECMAScript 2015/ES6 en TypeScript. De toegang is gratis, maar inschrijven vooraf is wel verplicht. Zie hiervoor de link onderaan deze pagina.

        De eerste sessie vindt plaats op donderdag 22 september 2016 in de Ehsal Campus te Brussel en de tweede sessie is op donderdag 13 oktober 2016 op de campus Elfde Linie van Hogeschool PXL te Hasselt.

        ECMAScript 2015 (voorheen ES6) is een major upgrade van de huidige versie van JavaScript. In de taal zijn tal van nieuwe keywords en functies aanwezig. Nieuw zijn bijvoorbeeld de keywords class, import, export, let, const en meer. Ook kunt u gebruik maken van arrow functions en lambda expressions. Met ES6 maakt JavaScript een enorme stap voorwaarts en wordt de taal echt volwassen.

        TypeScript biedt vervolgens extra features in de vorm van definition files, static typing, interfaces en generics, waardoor fouten in een applicatie al compile-time aan het licht komen, in plaats van run-time, zoals met de huidige generatie JavaScript-applicaties het geval is.

        Programma

        17:30 u

        Ontvangst met broodjes en drank

        18:00 u

        Welkomstwoord – Introductie

        Start infosessie: TypeScript & ECMAScript

        Deel 1: Algemeen en specifieke kenmerken van ES6

        · Historie van JavaScript en ECMAScript 2015  (ES6)

        · De plaats van ECMAScript 2015 en TypeScript in het landschap

        · Waarom Tranpilers? Babel, Traceur en polyfills

        · Belangrijke ECMAScript 2015-kenmerken

        · Nieuwe keywords, arrow functions, classes, parameters en meer

        19:30 u

        Pauze

        19:45 u

        Vervolg infosessie:

        Deel 2: TypeScript in concrete projecten en de relatie met ECMAScript 2015

        · TypeScript: voordelen van TypeScript, hoe te gebruiken?

        · Ingebouwde data-types van TypeScript: string, boolean, number en andere.

        · Custom Types en Return Types.

        · Classes, public en private modifiers.

        · TypeScript in een real-life workflow.

        · Debugging TypeScript.

        · Pointers naar meer informatie over TypeScript en ECMAScript 2015.

        · Q & A – aanvullende vragen.

        · Afsluiting

        21:30 u

        Napraten

         

        Na afloop nodigt aariXa alle deelnemers uit voor een glaasje.

        Praktisch

        Inschrijven via http://aariXa.com/inschrijvingen

        Hopelijk tot ziens in Brussel of in Hasselt!

        -- Peter Kassenaar
        30 augustus 2016.

        13juli

        Nieuwe online training: Productiviteit met WebStorm

        Als je wel eens een training van mij hebt gezien, dan weet je dat ik vaak JetBrains WebStorm gebruik als editor. Dit is zonder twijfel een van de beste IDE’s voor webdevelopment. Studenten stellen mij hierover ook vaak vragen:

        • “Hoe kun je dat bestand zo snel vinden in je project?!”
        • “Hoe schrijf je zo snel code, met maar een paar toetsaanslagen?”
        • “Wat is de beste manier om direct een project op Github te plaatsen?”

        Dat was het moment waarop ik dacht ‘misschien is het handig om hier een training voor samen te stellen. Deze vragen, en uiteraard nog veel meer worden daarom beantwoord in de nieuwe online cursus “Productiviteit met WebStorm”.

        Bestel nu met 30% korting!

        JetBrains WebStorm is de ideal editor voor webdevelopers. Het is een volledig uitgeruste IDE die alle tools en voorzieningen biedt voor ontwikkelaars in JavaScript, TypeScript, NodeJS en uiteraard HTML en CSS.

        Deze beknopte training laat zien hoe je WebStorm optimaal inzet om zo productief mogelijk te zijn. Je leert tal van handige trucs om sneller te werken. Je ziet alle mogelijkheden om de user interface aan te passen, sneltoetsen te gebruiken en je code snel te schrijven door Live Templates te maken en gebruiken. Daarnaast leer je hoe WebStorm je workflow ondersteunt als in jouw projecten gebruik wordt gemaakt van tools als Gulp, NPM of andere.

        jetbrains-editors

        De training is specifiek bedoeld voor WebStorm, maar is ook uiterst waardevol voor gebruikers van andere JetBrains-editors zoals IntelliJ, PHPStorm, PyCharm en andere.

        Tot de behandelde onderwerpen behoren:

        • WebStorm downloaden en installeren
        • De user interface verkennen en de deelvensters instellen
        • De user interface aanpassen en instellen voor optimaal gebruik
        • Sneller coderen met WebStorm in JavaScript, TypeScript, HTML en CSS
        • Build tools zoals Gulp en NPM optimaal gebruiken vanuit de IDE.
        • Git- en Github-integratie vanuit WebStorm
        • RESTful Webservices testen met de ingebouwde RESTful Client.
        • Plugins gebruiken, toevoegen en verwijderen

        Heb je vragen of opmerkingen over de training? Aarzel dan uiteraard niet om contact op te nemen!

        Bestel nu met 30% korting!

        Peter Kassenaar
        -- 13 juli 2016

        12juli

        New online course: Productive Coding with WebStorm

        I’m happy to announce that as of today, my new course “Productive Coding with WebStorm” is available on the online training platform Udemy.

        Order now with a 30% discount!

        JetBrains WebStorm is the perfect editor for web developers. It is a full featured IDE that provides all the tools and features for developers in JavaScript, Typescript, NodeJS and of course HTML and CSS.

        This brief training will show you how to best use WebStorm to be as productive as possible. You will learn many useful tricks to work faster. You'll see all the possibilities to customize the user interface, using keyboard shortcuts and write your code superfast by creating and using Live Templates. Also you'll learn how WebStorm supports your workflow and lets you use tools like Gulp, NPM or Github, all without leaving your editor!

        The course is specifically intended for WebStorm, but is also extremely valuable for users of other JetBrains editors like IntelliJ, PHPStorm, PyCharm and others.

        jetbrains-editors

        This course covers the following topics:

        • Welcome and introduction
        • Downloading and installing WebStorm
        • Touring the IDE and setting up your working environment
        • Adapting the UI to meet your personal needs
        • Coding faster in JavaScript, TypeScript, HTML and CSS
        • Using build- and workflow tools right from the IDE
        • Git- and Github integration
        • Testing your RESTful Services with the REST Client
        • Adding and deleting plugins
        • Other tips and tricks

        If you have any questions on this course, feel free to contact me.

        Order now with a 30% discount!

        Peter Kassenaar
        -- 12 July 2016

        12juni

        Angular 2 – leren en begrijpen

        Al eerder schreef ik over de online training Angular 2 – Leren en begrijpen die ik aan het ontwikkelen ben. Het doet me plezier te kunnen melden dat deze training nu gereed is en is goedgekeurd door het online trainingsplatform Udemy. De training is vanaf vandaag te vinden op:

        https://www.udemy.com/angular-2-leren-en-begrijpen/

        angular2-bij-udemy

        De training heeft onder meer de volgende kenmerken:

        • Videotraining – beschikbaar op pc, laptop, smartphone en tablet, via de Udemy App.
        • 90+ video’s en 5,5 uur videomateriaal.
        • Korte lessen (4-6 minuten), met telkens één onderwerp.
        • Oefeningen in PDF-formaat zodat je zelf aan de slag kunt met Angular 2.
        • Talloze extra resources en webadressen voor meer informatie.

        Zie https://www.udemy.com/angular-2-leren-en-begrijpen/ (verder naar beneden, onder Curriculum) voor een complete inhoudsopgave:

        Inhoudsopgave van Angular 2 - Leren en begrijpen

         

        Als je specifieke vragen hebt over de training, tips voor verbetering van de inhoud of voor nieuwe trainingen, aarzel dan niet om contact op te nemen of een mailtje te sturen naar info@kassenaar.com!

        Experiment

        Het is ook voor mij een experiment, om te bekijken of hier in het Nederlandse en Belgische taalgebied voldoende animo voor is. Udemy is een platform dat op dit moment voornamelijk Engelstalige trainingen aanbied (op dit moment kon ik 14 andere Nederlandstalige trainingen ontdekken). Het heeft echter wel ambities om ook een belangrijke rol in andere markten te gaan spelen. Er zijn onder meer al Spaanse, Duitse en Chinese varianten.

        Kortingscode

        Als je al eerder een kortingscode hebt aangevraagd, dan heb je hierover inmiddels een mailtje ontvangen. Wil je alsnog aanmelden voor een kortingscode voor vroege vogels, dan kan dit nog tot 1 augustus 2016. Stuur een mailtje naar info@kassenaar.com met als onderwerp Udemy – Angular 2 en ik mail je terug met een code en instructies om deze in te wisselen.

        Ik ben benieuwd naar jullie reacties,

        Ondertussen veel succes met Angular 2!

        --Peter Kassenaar
        12 juni 2016

         

        02juni

        Online training Angular 2 – update

        angular2-leren-begrijpen-promo-image

        Op dit moment ben ik bezig met de ontwikkeling van de training “Angular 2 – leren en begrijpen”. Deze zal worden gepubliceerd op het online learningplatform Udemy.

        Het was de bedoeling dat deze training medio mei 2016 zou verschijnen. Dat is helaas niet gelukt.

        Ik ben er druk mee bezig, maar het opnemen en bewerken van de video’s duurt in combinatie met mijn overige werk langer dan ik vooraf had ingeschat.

        Bovendien is het framework zelf zoals je wellicht hebt gezien nog druk in ontwikkeling. Met name de Router is de afgelopen weken flink onder handen genomen. De oorspronkelijke router is nu als ‘deprecated’ aangemerkt – terwijl de nieuwe router nog niet gereed is. (https://angular.io/docs/ts/latest/guide/router-deprecated.html) . Zowel de router zelf, als de documentatie hierover is nog niet klaar.

        Het is daarom een lastige beslissing: Maak ik de module over routing (waar ik juist mee bezig was) op basis van de nu verouderde router, of ga ik toch alvast de nieuwe router gebruiken (die dus nog niet klaar is)?

        Keuzes, keuzes ;-)

        Ik heb toch besloten de bestaande routermodule opnieuw te gaan maken, met de nieuwe router, en de onderdelen die op het moment van opnemen nog niet gereed zijn aan te geven. Zodra de router wel klaar is, hoop ik vervolgens op een later tijdstip de training aan te vullen.

        Dat betekende helaas echter wel weer een nieuwe vertraging.

        De vernieuwde planning is dat de training Angular 2 over ongeveer 2 – 2,5 weken klaar is, medio juni 2016.

        Mocht je ondertussen vragen hebben, aarzel dan niet om nader contact op te nemen.

        Uiteraard kun je je nog altijd aanmelden voor een kortingscode.

        Stay tuned, bedankt voor je geduld!

        -- Peter Kassenaar
        2 juni 2016