<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>Peter Kassenaar blog</title>
    <description>Trainer, developer, schrijver</description>
    <link>https://www.kassenaar.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.0.0</generator>
    <language>nl-NL</language>
    <blogChannel:blogRoll>https://www.kassenaar.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://feeds.feedburner.com/PeterKassenaar</blogChannel:blink>
    <dc:creator>Peter Kassenaar</dc:creator>
    <dc:title>Peter Kassenaar blog</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>5 tips voor productiever programmeren</title>
      <description>&lt;p&gt;Iedereen kent het imago van de programmeur als dynamisch beroep met continu over het beeldscherm flitsende code en hackers met gleufhoeden en duistere zonnebrillen.&lt;/p&gt;  &lt;p&gt;De werkelijkheid is vaak minder spannend. Elke developer kent het gevoel uit dit filmpje:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=programming.png"&gt;&lt;img title="programming" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="programming" src="https://www.kassenaar.com/blog/image.axd?picture=programming_thumb.png" width="640" height="371" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=HluANRwPyNo"&gt;https://www.youtube.com/watch?v=HluANRwPyNo&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In de realiteit ben je vaak bezig met het opzoeken van triviale foutcodes, vraag je je af waarom een project niet compileert, of waarom een unit test faalt.&lt;/p&gt;  &lt;p&gt;Dit zorgt voor productiviteitsverlies (en kost dus geld), je bent onzeker over de kwaliteit van je code en je raakt niet lekker in de programmeerflow.&lt;/p&gt;  &lt;p&gt;Bijgaand vijf tips om je productiviteit als developer te verhogen. En ja, sommige lijken een open deur, maar probeer ze eens uit. Je zult zien dat het helpt!&lt;/p&gt;  &lt;p&gt;1. &lt;b&gt;Ken de technologie waarmee je werkt &lt;/b&gt;- Zorg er voor dat je op de hoogte bent van de ins en outs van techniek waarmee je werkt. Investeer hierin en reserveer structureel dagelijks 30 minuten om dit bij te houden.&lt;/p&gt;  &lt;p&gt;2. &lt;b&gt;Vermijd ad-hoc oplossingen via kopiëren-en-plakken&lt;/b&gt; - In plaats daarvan kun je beter de achterliggende principes en concepten van de technologie leren. Je herkent dan &lt;i&gt;generieke &lt;/i&gt;problemen die je in je huidige project op een &lt;i&gt;specifieke&lt;/i&gt; manier kunt aanpakken. Vraag bijvoorbeeld aan AI (ChatGPT, Claude, Gemini, LeChat), &lt;em&gt;waarom&lt;/em&gt; iets werkt zoals het werkt. &lt;/p&gt;  &lt;p&gt;3. &lt;b&gt;Investeer in je editor&lt;/b&gt; - Bouwvakkers zorgen voor goed werkgereedschap, een schilder kiest de kwasten waarmee hij het lekkerste verft. Een goede editor is jouw gereedschap. Leer hiervan de &lt;i&gt;sneltoetsen&lt;/i&gt; zodat je niet voor elk wissewasje naar de muis hoeft te grijpen, maak gebruik van tools als Intellisense, Autocomplete en Live reloading/recompiling. Het scheelt je zoveel tijd!&lt;/p&gt;  &lt;p&gt;4. &lt;b&gt;Concentreer je op de kern van de taak&lt;/b&gt; - &lt;i&gt;Herken&lt;/i&gt; de kern van de taak en focus je daar op. Het is maar al te makkelijk om je te laten afleiden door deelproblemen (&amp;quot;nog even dat databaseveld erbij maken&amp;quot;, &amp;quot;oh, daarvoor moet ik eerst credentials opvragen&amp;quot;, &amp;quot;oh, die collega is er niet&amp;quot;). Zorg ervoor dat de kern van de taak in 20% van de tijd gereed is. Daarna kun je 80% van de tijd besteden aan verbetering, uitbreiding en vervolmaking. Maar je raamwerk moet goed zijn. Zie ook punt 2.&lt;/p&gt;  &lt;p&gt;5. &lt;b&gt;Bespreek je code&lt;/b&gt; - Twee weten meer dan één. Wees niet bang om elke regel code die je hebt geschreven te bespreken met een collega. Sta open voor suggesties en probeer verbeteringen uit. Het zorgt er voor dat je een volgende keer niet in dezelfde val trapt.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Bonustip&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;6. &lt;b&gt;Bied jezelf aan om mee te kijken naar de code van anderen&lt;/b&gt; - Als degene &lt;i&gt;meer &lt;/i&gt;weet dan jij, dan leer je ervan (en wordt je zelf dus productiever). Als degene &lt;i&gt;minder&lt;/i&gt; weet dan jij dan kun je uitleggen wat er beter kan en breng je productiviteitsverhogende tips onder woorden. Dat helpt ook jezelf. Bovendien wordt het algemene kennisniveau binnen je team opgekrikt en je ziet nog eens waar anderen tegenaan lopen. Dat zal jou in de toekomst zeker niet meer gebeuren!&lt;/p&gt;    &lt;p&gt;-- Peter Kassenaar   &lt;br /&gt;11 juni 2025&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2025/06/11/5-tips-voor-productiever-programmeren.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2025/06/11/5-tips-voor-productiever-programmeren.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=b35756c1-a356-4a09-b369-7f82f1a32b14</guid>
      <pubDate>Wed, 11 Jun 2025 21:20:13 +0700</pubDate>
      <category>Algemeen</category>
      <category>Software</category>
      <category>Webdevelopment</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=b35756c1-a356-4a09-b369-7f82f1a32b14</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=b35756c1-a356-4a09-b369-7f82f1a32b14</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2025/06/11/5-tips-voor-productiever-programmeren.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=b35756c1-a356-4a09-b369-7f82f1a32b14</wfw:commentRss>
    </item>
    <item>
      <title>Meer over metaframeworks</title>
      <description>&lt;ul&gt;   &lt;li&gt;&lt;a href="https://www.kassenaar.com/blog/post/2024/10/30/Metaframeworks-voor-React-Angular-en-Vue.aspx"&gt;1: Metaframeworks voor React, Angular en Vue&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;2: Meer metaframeworks (deze pagina)&lt;/li&gt; &lt;/ul&gt;  &lt;hr /&gt;  &lt;p&gt;In een &lt;a href="https://www.kassenaar.com/blog/post/2024/10/30/Metaframeworks-voor-React-Angular-en-Vue.aspx"&gt;vorige blogpost&lt;/a&gt; schreef ik over metaframeworks die veel worden ingezet voor React, Angular en Vue. Ik noemde toen Next.js (als framework voor React), Analog.js (voor Angular) en Nuxt (voor Vue).&lt;/p&gt;  &lt;p&gt;Maar er zijn er meer! Hieronder heb ik voor de bekendste frameworks een aantal metaframeworks op een rijtje gezet. Ik herhaal de eerder genoemde frameworks nogmaals, zodat je overzicht compleet is.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=frameworks-logos.png"&gt;&lt;img title="frameworks-logos" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="frameworks-logos" src="https://www.kassenaar.com/blog/image.axd?picture=frameworks-logos_thumb.png" width="640" height="160" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Voor React&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Next.js&lt;/b&gt; – Next.js is waarschijnlijk het meest veelzijdige React-framework en richt zich op fullstack-ontwikkeling. Hiervoor worden onder meer React Server Components (RSC’s) gebruikt, die de kracht van React naar de server brengen.       &lt;br /&gt;&lt;a href="https://nextjs.org/"&gt;https://nextjs.org/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Remix&lt;/b&gt; – Richt zich op het verbeteren van prestaties door het efficiënter ophalen van data en eenvoudige routing toevoegen in je applicaties. Remix legt de nadruk op geoptimaliseerde server-side rendering, progressieve verbetering en minimale JavaScript voor interactiviteit. Applicaties die met Remix zijn gemaakt, zijn meestal erg snel en compact.       &lt;br /&gt;&lt;a href="https://remix.run/"&gt;https://remix.run/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Gatsby&lt;/b&gt; – Gatsby is gebouwd voor high-performance statische sites. Als een van de eersten maakte Gatsby gebruik van GraphQL voor dataverwerking. Gatsby heeft een enorm plugin-ecosysteem. Hierdoor is het ideaal voor content-gedreven sites waarvan gegevens vaak uit meerdere databronnen afkomstig zijn.       &lt;br /&gt;&lt;a href="https://www.gatsbyjs.com/"&gt;https://www.gatsbyjs.com/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Voor Vue&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Nuxt&lt;/b&gt; – Dit is het grootste, bekendste en meestgebruikte metaframework voor Vue. Nuxt is een typisch applicatie framework en biedt een enorm scala aan uitbreidingen, ondersteuning, YouTube-kanalen en -video’s en actieve ontwikkeling vanuit de volledige Vue-community.       &lt;br /&gt;&lt;a href="https://nuxt.com/"&gt;https://nuxt.com/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;VitePress&lt;/b&gt; - Een statische site-generator die is geoptimaliseerd voor documentatie en eenvoudigere projecten. Gebouwd op Vite, snel en eenvoudig te configureren.       &lt;br /&gt;&lt;a href="https://vitepress.dev/"&gt;https://vitepress.dev/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Gridsome&lt;/b&gt;: Vergelijkbaar met Gatsby maar dan voor Vue. Gridsome richt zich op het bouwen van statische sites met een plugin-ecosysteem dat integratie met CMS’en en API’s gemakkelijk maakt. Gridsome presenteert zichzelf als een &lt;i&gt;Jamstack&lt;/i&gt;-framework (&lt;i&gt;JavaScript&lt;/i&gt;, &lt;i&gt;API’s&lt;/i&gt; en &lt;i&gt;Markup&lt;/i&gt;). Als je zelf al een Jamstack-applicatie beheert, ligt het gebruik van Gridsome voor de hand.       &lt;br /&gt;&lt;a href="https://gridsome.org/"&gt;https://gridsome.org/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Voor Angular&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Scully –&lt;/b&gt; Scully is voornamelijk een statische site-generator die Angular-apps omzet naar statische HTML. Dit optimaliseert de prestaties en SEO zonder een volledige server-rendering setup nodig te hebben. Ook Scully presenteert zich – net als Gridsome voor Vue – als een Jamstack-framework.       &lt;br /&gt;&lt;a href="https://scully.io/"&gt;https://scully.io/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Angular&lt;/b&gt; &lt;b&gt;Universal&lt;/b&gt; – Angular Universal is niet echt een standalone metaframework. Het is in feite ingebouwd in Angular (al sinds ca. 2018) en is meer een set tools die SSR mogelijk maakt voor Angular. Vaak wordt Angular Universal gecombineerd met tools zoals NestJS om API’s naast server rendering af te handelen.       &lt;br /&gt;&lt;a href="https://angular.dev/guide/ssr"&gt;https://angular.dev/guide/ssr&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Voor Svelte&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;SvelteKit&lt;/b&gt; – SvelteKit is het officiële metaframework voor Svelte. Het biedt ondersteuning voor SSR, SSG en CSR, op een minimale en sterk geoptimaliseerde manier. SvelteKit is ideaal voor het bouwen van applicaties met hoge performance en minimale overhead.       &lt;br /&gt;&lt;a href="https://svelte.dev/docs/kit/introduction"&gt;https://svelte.dev/docs/kit/introduction&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Overige&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Astro&lt;/b&gt; – Astro staat bekend om zijn &amp;quot;Islands Architecture,&amp;quot; hiermee kun je componenten uit verschillende frameworks zoals React, Vue en Svelte samen gebruiken. Het richt zich op het verzenden van minder JavaScript voor snellere laadtijden. Dit maakt Astro tot een goede keuze voor content-rijke of statische sites.       &lt;br /&gt;&lt;a href="https://astro.build/"&gt;https://astro.build/&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Eleventy (11ty)&lt;/b&gt; – Eleventy is technisch gezien eigenlijk meer een statische site-generator. Het voordeel is dat Eleventy flexibel en framework-agnostisch is. Het biedt, ondersteuning voor verschillende templating-talen en optimalisatie voor performance-geoptimaliseerde statische sites. Eleventy is het allersnelst in de benchmarks als het gaat om het bouwen (&lt;i&gt;build&lt;/i&gt;) van een website die bestaat uit 1000+ pagina’s.       &lt;br /&gt;&lt;a href="https://www.11ty.dev/"&gt;https://www.11ty.dev/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Voor je gemak heb ik snel een pagina opgezet met korte beschrijvingen en hyperlinks naar deze metaframeworks: &lt;a title="https://www.kassenaar.com/metaframeworks/" href="https://www.kassenaar.com/metaframeworks/"&gt;https://www.kassenaar.com/metaframeworks/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.kassenaar.com/metaframeworks/"&gt;&lt;img title="metaframeworks" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="metaframeworks" src="https://www.kassenaar.com/blog/image.axd?picture=metaframeworks.png" width="480" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;p style="padding: 8px; border: 1px solid black; border-image: none; background-color: rgb(255, 255, 238);"&gt;&lt;font face="Courier New"&gt;&amp;lt;shameless-plug&amp;gt;      &lt;br /&gt;Als er behoefte is aan een training in jouw bedrijf over &lt;strong&gt;React&lt;/strong&gt;, &lt;strong&gt;Angular&lt;/strong&gt;, &lt;strong&gt;Vue &lt;/strong&gt;of een van de metaframeworks, aarzel dan niet om contact op te nemen! Training op jouw of onze locatie, op een tijdstip dat uitkomt. Ook 1:1-trainingen.       &lt;br /&gt;&amp;lt;/shameless-plug&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;-- Peter Kassenaar    &lt;br /&gt;10 november 2024&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2024/11/10/Meer-over-metaframeworks.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2024/11/10/Meer-over-metaframeworks.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=2591c7ad-4f8a-48ab-bd51-76b6f088c809</guid>
      <pubDate>Sun, 10 Nov 2024 15:25:00 +0700</pubDate>
      <category>Software</category>
      <category>Webdevelopment</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=2591c7ad-4f8a-48ab-bd51-76b6f088c809</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=2591c7ad-4f8a-48ab-bd51-76b6f088c809</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2024/11/10/Meer-over-metaframeworks.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=2591c7ad-4f8a-48ab-bd51-76b6f088c809</wfw:commentRss>
    </item>
    <item>
      <title>Metaframeworks voor React, Angular en Vue</title>
      <description>&lt;ul&gt;&lt;!--StartFragment--&gt;   &lt;li&gt;1: Metaframeworks voor React, Angular en Vue (deze pagina)&lt;/li&gt;    &lt;li&gt;&lt;a href="https://www.kassenaar.com/blog/post/2024/11/10/Meer-over-metaframeworks.aspx"&gt;2: Meer metaframeworks&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;hr /&gt;  &lt;ul&gt;&lt;!--EndFragment--&gt;&lt;/ul&gt;  &lt;h2&gt;Inleiding&lt;/h2&gt;  &lt;p&gt;In de webdevelopmentwereld zijn tal van JavaScript-frameworks populair. Iedere webdeveloper kent waarschijnlijk namen als React, Vue en Angular. Naast de ‘grote drie’ zijn er nog tal van kleinere frameworks die allemaal een bepaalde specialisatie en een eigen plekje in de markt hebben veroverd. Bekend zijn onder meer Svelte en Qwik.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=1579074690346.png"&gt;&lt;img title="React, Angular en Vue. Credits: treehouse.com" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="React, Angular en Vue. Credits: treehouse.com" src="https://www.kassenaar.com/blog/image.axd?picture=1579074690346_thumb.png" width="640" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Frameworks zijn echter vooral geschikt voor kernfunctionaliteiten. Denk aan het bouwen met componenten, communicatie tussen componenten onderling, http-communicatie met een backend, routing enzovoort. &lt;/p&gt;  &lt;p&gt;Dit betekent dat je als programmeur behoorlijk wat tijd kwijt bent met het inrichten van een complete applicatie met homepage, overzichtspagina’s, detailpagina’s en meer. Frameworks zijn bekend (of: berucht) om de hoeveelheid boilerplatecode die nodig is om een complete applicatie in de lucht te krijgen. &lt;/p&gt;  &lt;h2&gt;Metaframeworks&lt;/h2&gt;  &lt;p&gt;Dit is precies het gat waarin metaframeworks zijn gesprongen! Ze breiden de kernmogelijkheden van de basisframeworks uit door extra functionaliteit en abstracties toe te voegen. Hiermee worden veelvoorkomende taken bij het maken van een webapplicatie geautomatiseerd. Dit gebeurt vaak doordat metaframeworks een serie afspraken (&lt;em&gt;conventions&lt;/em&gt;) hebben die je als programmeur moet kennen. Daarna werk je een stuk sneller. &lt;/p&gt;  &lt;p&gt;De bekendste metaframeworks zijn:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Voor &lt;strong&gt;React&lt;/strong&gt; – &lt;a href="https://nextjs.org/" target="_blank"&gt;Next.js&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Voor &lt;strong&gt;Angular&lt;/strong&gt; – &lt;a href="https://analogjs.org/" target="_blank"&gt;Analog.js&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Voor &lt;strong&gt;Vue&lt;/strong&gt; – &lt;a href="https://nuxt.com/" target="_blank"&gt;Nuxt&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=logos.png"&gt;&lt;img title="logos" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="logos" src="https://www.kassenaar.com/blog/image.axd?picture=logos_thumb.png" width="640" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Metaframeworks zijn full-stack frameworks. Ze bestaan uit een client- en een serverdeel.&lt;/p&gt;  &lt;h2&gt;Convention over configuration&lt;/h2&gt;  &lt;p&gt;In metaframeworks is bijvoorbeeld vaak afgesproken dat wanneer componenten in een specifieke map &lt;font face="Courier New"&gt;/pages&lt;/font&gt; in de applicatie staan, deze componenten automatisch een route in de applicatie worden. Je hoeft dan niet meer de router te programmeren en zelf routes en componenten te onderhouden. Het metaframework pikt alle pagina’s op en zorgt dat er routes bestaan. Dit principe is nog veel verder uitgewerkt door met speciale naamgeving ook parameters in de pagina’s te gebruiken, pagina’s te groeperen, pagina’s op de server te renderen voor betere SEO en nog veel meer.&lt;/p&gt;  &lt;h2&gt;Essentiële kenmerken &lt;/h2&gt;  &lt;p&gt;Metaframeworks hebben veel overeenkomsten. Dit zijn onder meer:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Server-Side Rendering (SSR)&lt;/b&gt;: metaframeworks ondersteunen SSR waardoor je pagina’s vooraf op de server kunt renderen voor betere vindbaarheid in Google (SEO), snellere laadtijden en een verbeterde bezoekerservaring doordat pagina’s sneller laden.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Static Site Generation (SSG)&lt;/b&gt;: metaframeworks maken het mogelijk om tijdens de buildfase van de applicatie statische HTML-pagina’s op de server te renderen. Ook dit komt de snelheid van de applicatie ten goede. Via configuratiebestanden kun je altijd aangeven welke pagina’s in de applicatie wél en welke niet gegenereerd moeten worden.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;File Based Routing&lt;/b&gt;: door bestanden in een speciale map te plaatsen (zoals /pages) wordt de router automatisch geconfigureerd en krijg je direct een navigatiestructuur voor je applicatie. Dit scheelt erg veel tijd, omdat je het niet zelf hoeft in te stellen.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;API-routing&lt;/b&gt;: metaframeworks bieden vaak ingebouwde ondersteuning voor serverloze functies (of: ‘api-routes’). Dit vereenvoudigd communicatie met een backend. In sommige gevallen is een aparte API-server zelfs compleet overbodig. Het voorkomt in ieder geval dat je aparte CORS-instellingen moet toepassen op je server, omdat deze op hetzelfde adres draait als je frontend applicatie (er is vaak een route als /v1/api gedefinieerd). Ook dit gebeurt op basis van conventies. Via configuratiebestanden kun je hier overigens van afwijken, maar dit is niet beslist nodig.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Bundeling en code-splitting&lt;/b&gt;: metaframeworks splitsen op intelligente wijze code in aparte modules en bundelen code die elkaar nodig heeft. Ook dit komt de snelheid ten goede.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Hot Module Replacement&lt;/b&gt;: als developer is het handig dat tijdens het ontwikkelen alleen modules worden vervangen die je daadwerkelijk hebt aangepast – zonder dat de complete applicatie opnieuw gecompileerd hoeft te worden. Dit verbetert de ontwikkelervaring of &lt;em&gt;developer experience &lt;/em&gt;of&lt;em&gt; dx.        &lt;br /&gt;        &lt;br /&gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;SEO-optimalisatie en metatag-beheer:&lt;/b&gt; de meeste metaframeworks bieden tools voor het beheren van de titel en metatags op een pagina en andere SEO-elementen zoals Open Graph-tags voor Facebook en X. &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Wanneer kies je voor een metaframework?&lt;/h2&gt;  &lt;p&gt;Als je een klein project hebt, kan het gebruik van een metaframework voor extra overhead zorgen waar je niet op zit te wachten. &lt;/p&gt;  &lt;p&gt;In veel andere gevallen zal het je echter veel tijd besparen. Het inzetten van een metaframework is uiteindelijk een tijdsbeparende actie. Je moet in het begin even wat instellen – en je natuurlijk de conventies van het betreffende framework eigen maken – maar die tijd win je dubbel en dwars terug. &lt;/p&gt;  &lt;p&gt;Gebruik een metaframework voor:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;SEO-intensieve projecten&lt;/b&gt;: als je applicatie afhankelijk is van SEO, zoals e-commerce en contentrijke sites, maken metaframeworks SSR en SSG eenvoudiger. Dit verbetert de doorzoekbaarheid en pageranking.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Prestatie Optimalisatie&lt;/b&gt;: als je snelle laadtijden nodig hebt, helpen SSR, SSG en geoptimaliseerde bundeling om de snelheid te verbeteren. Met name in JavaScript-rijke applicaties zoals Vue, React en Angular is dit een groot pluspunt.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Snelle Prototyping&lt;/b&gt;: metaframeworks versnellen de ontwikkeling omdat ze standaardoplossingen hebben voor routing, API-endpoints en code-splitting. Dit is natuurlijk ideaal voor startups en proof-of-concept applicaties (POC).&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Schaalbaarheid en onderhoudbaarheid&lt;/b&gt;: naarmate de app groeit, zorgen metaframeworks voor goede praktijken en structuur. Dit kan het inwerken van nieuwe ontwikkelaars vereenvoudigen. Voorwaarde is dan uiteraard wel dat het principe van &lt;em&gt;convention-over-configuration&lt;/em&gt; goed is gevolgd en gedocumenteerd.&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Conclusie&lt;/h2&gt;  &lt;p&gt;Metaframeworks kunnen het leven van een developer behoorlijk veraangenamen. Ze versnellen het proces van applicatieontwikkeling. &lt;/p&gt;  &lt;p&gt;Als je een kleine applicatie met beperkte scope maakt waarbij niet veel ingewikkelde configuratie nodig is – en waarvan je weet dat dit in de toekomst ook niet nodig zal zijn! – is het inzetten van een metaframework vanwege de extra overhead waarschijnlijk overbodig. Dan kun je beter de zaken slank houden. &lt;/p&gt;  &lt;p&gt;In alle andere gevallen loont het de moeite om een metaframework in te zetten dat past bij de technologie van jouw keuze!&lt;/p&gt;  &lt;p style="padding: 8px; border: 1px solid black; border-image: none; background-color: rgb(255, 255, 238);"&gt;&lt;font face="Courier New"&gt;&amp;lt;shameless-plug&amp;gt;      &lt;br /&gt;Als er behoefte is aan een training in jouw bedrijf over &lt;strong&gt;React&lt;/strong&gt;, &lt;strong&gt;Angular&lt;/strong&gt;, &lt;strong&gt;Vue &lt;/strong&gt;of een van de metaframeworks, aarzel dan niet om &lt;/font&gt;&lt;a href="https://www.kassenaar.com/contact" target="_blank"&gt;&lt;font face="Courier New"&gt;contact&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt; op te nemen! Training op jouw of onze locatie, op een tijdstip dat uitkomt. Ook 1:1-trainingen.      &lt;br /&gt;&amp;lt;/shameless-plug&amp;gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-- Peter Kassenaar    &lt;br /&gt;1 november 2024&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2024/10/30/Metaframeworks-voor-React-Angular-en-Vue.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2024/10/30/Metaframeworks-voor-React-Angular-en-Vue.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=a2c4de26-c205-4acb-af87-0600c8646bc3</guid>
      <pubDate>Wed, 30 Oct 2024 20:15:15 +0700</pubDate>
      <category>Software</category>
      <category>Webdevelopment</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=a2c4de26-c205-4acb-af87-0600c8646bc3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=a2c4de26-c205-4acb-af87-0600c8646bc3</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2024/10/30/Metaframeworks-voor-React-Angular-en-Vue.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=a2c4de26-c205-4acb-af87-0600c8646bc3</wfw:commentRss>
    </item>
    <item>
      <title>Hernieuwd–trainingen verzorgen</title>
      <description>&lt;p&gt;Ongeveer twee jaar geleden ben ik na ruim 25 jaar als ZZP&amp;rsquo;er werkzaam te zijn geweest, in loondienst getreden. Daarover schreef ik onder meer in &lt;a href="https://www.kassenaar.com/blog/post/2023/03/06/Veranderingen.aspx" target="_blank"&gt;dit artikel&lt;/a&gt;. Ofschoon ik inmiddels bij een ander bedrijf werkzaam ben is het nu mijn primaire werk: aan de slag voor een bedrijf.&lt;/p&gt;
&lt;p&gt;Maar het ZZP-schap blijft trekken.&lt;/p&gt;
&lt;p&gt;Hoewel het waardevol is om in een team met collega&amp;rsquo;s aan een product te werken, merk ik dat ik de dynamiek van de trainingswereld mis.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=signpost.png"&gt;&lt;img style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" title="signpost" src="https://www.kassenaar.com/blog/image.axd?picture=signpost_thumb.png" border="0" alt="signpost" width="588" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Afwisselende contacten, studenten met tal van achtergronden en kennisniveaus, de diverse locaties. Ik vind het leuk &amp;ndash; en ben er goed in, in alle bescheidenheid &amp;ndash; om kennis over te brengen en mensen te begeleiden op hun pad naar nieuwe technieken en [mentale] bagage. Ik mis dat.&lt;/p&gt;
&lt;p&gt;Om die reden ben ik dan ook weer actief als freelancer in de opleidingswereld. Mijn huidige werkgever (&lt;a href="https://www.productip.com/" target="_blank"&gt;ProductIP&lt;/a&gt; in Ede) was zo genereus een dienstverband van 50% loondienst en 50% freelance te accepteren. Behalve docent ben ik daarnaast als [keynote] spreker weer actief op presentaties, conferenties en zakelijke bijeenkomsten.&lt;/p&gt;
&lt;h2&gt;Onderwerpen&lt;/h2&gt;
&lt;p&gt;Het gebied waarop ik mij begeef is niet veranderd. Ik publiceer nog steeds- en geef training over onder meer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Webframeworks &lt;/strong&gt;&amp;ndash; Angular, React, Vue&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metaframeworks&lt;/strong&gt; &amp;ndash; Analog.js, Next.js, Nuxt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web fundamentals &lt;/strong&gt;&amp;ndash; HTML, CSS, JavaScript, TypeScript en meer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mocht je derhalve een opleidingsvraag op frontend gebied hebben die ik mogelijk kan invullen, aarzel dan niet om nader contact op te nemen! Ik zou het leuk vinden de contacten aan te halen. Ik werk in NL, BE, UK, FR en DE, Nederlandstalig of Engelstalig.&lt;/p&gt;
&lt;p&gt;Peter Kassenaar   &lt;br /&gt;-- 29 oktober 2024&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2024/10/29/Hernieuwd-trainingen-verzorgen.aspx</link>
      <author>Peter</author>
      <comments>https://www.kassenaar.com/blog/post/2024/10/29/Hernieuwd-trainingen-verzorgen.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=e9c555d4-051f-4044-b0dc-28862a5cc4d3</guid>
      <pubDate>Tue, 29 Oct 2024 18:56:00 +0700</pubDate>
      <dc:publisher>Peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=e9c555d4-051f-4044-b0dc-28862a5cc4d3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=e9c555d4-051f-4044-b0dc-28862a5cc4d3</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2024/10/29/Hernieuwd-trainingen-verzorgen.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=e9c555d4-051f-4044-b0dc-28862a5cc4d3</wfw:commentRss>
    </item>
    <item>
      <title>Breakfast is the most important meal of the day–or is it?</title>
      <description>&lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=2560px-Kellogg's-Logo.svg.png"&gt;&lt;img title="2560px-Kellogg&amp;#39;s-Logo.svg" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="2560px-Kellogg&amp;#39;s-Logo.svg" src="https://www.kassenaar.com/blog/image.axd?picture=2560px-Kellogg's-Logo.svg_thumb.png" width="640" height="224" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You might have heard (or even believe) that “&lt;em&gt;Breakfast is the most important meal of the day&lt;/em&gt;”. &lt;/p&gt;  &lt;p&gt;This is a common belief that a lot of consumers have. However, there is no conclusive scientific evidence to suggest whether breakfast is indeed the most important meal of the day! In fact, it was stated by &lt;a title="Kellog&amp;#39;s website" href="https://www.kelloggs.com/en_US/home.html" rel="nofollow" target="_blank"&gt;Kellog’s&lt;/a&gt;, an important brand and supplier of…breakfast products! &lt;/p&gt;  &lt;h2&gt;Claims that producers make…&lt;/h2&gt;  &lt;p&gt;Kellog’s also announced that their product Kellog’s special K contains a special form of metallic iron, which providers better oxygen uptake by hemoglobin in your blood. Which would make their cereal healthier than competing products. However, they appeared to be adding a purified form of iron that is allowed by law but has no nutritional value (other kinds of ionic iron like Fe2+ and Fe3+ do, but that was not in their product). &lt;/p&gt;  &lt;h2&gt;…are often inspired by marketing. Not by evidence&lt;/h2&gt;  &lt;p&gt;So essentially it was the power of marketing that made their product successful. They “just” dropped a quote (“breakfast is the most important meal of the day”) and they did actually add iron to their products. Therefore, they could not be sued for deception. Kellog’s made sure their product meets all regulatory requirements for product compliance. &lt;/p&gt;  &lt;p&gt;At ProductIP we help you meeting regulatory requirements for &lt;i&gt;your&lt;/i&gt; products. In the IT department we work closely together with the Regulatory department to provide you with the documents that describes – among others – what laws your product must abide and present it to you in a meaningful way. What you do with it next in terms of marketing effort is something that is up to you! &lt;/p&gt;    &lt;p&gt;Peter Kassenaar   &lt;br /&gt;-- 16 January 2024&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2024/01/16/Breakfast-is-the-most-important-meal-of-the-daye28093or-is-it.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2024/01/16/Breakfast-is-the-most-important-meal-of-the-daye28093or-is-it.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=7c49a6ee-99f7-462e-845c-1fb019e5c4ff</guid>
      <pubDate>Tue, 16 Jan 2024 17:10:00 +0700</pubDate>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=7c49a6ee-99f7-462e-845c-1fb019e5c4ff</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=7c49a6ee-99f7-462e-845c-1fb019e5c4ff</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2024/01/16/Breakfast-is-the-most-important-meal-of-the-daye28093or-is-it.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=7c49a6ee-99f7-462e-845c-1fb019e5c4ff</wfw:commentRss>
    </item>
    <item>
      <title>Brainstorming - letting thoughts flow freely</title>
      <description>  &lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=brainstorm.png"&gt;&lt;img title="A Brainstorm session" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="A Brainstorm session - Credits; DALL-E" src="https://www.kassenaar.com/blog/image.axd?picture=brainstorm_thumb.png" width="640" height="366" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;What we do&lt;/h2&gt;  &lt;p&gt;In the world of Team IT at ProductIP in Ede, the Netherlands, our core task is clear: we develop applications for a Label Manager application and our core SaaS Platform, aligning with legislation and stakeholder requirements. We then modify the code based on wishes, new laws, reported bugs and more.&lt;/p&gt;  &lt;p&gt;However, there are moments when no specific regulations exist yet! This is for example seen with upcoming &lt;a title="ESG Guidelines on Wikipedia" href="https://en.wikipedia.org/wiki/Environmental,_social,_and_corporate_governance" rel="nofollow" target="_blank"&gt;ESG guidelines&lt;/a&gt;. While we anticipate future rules, their exact nature and interpretation remain uncertain. Yet, we must deliver software promptly.&lt;/p&gt;  &lt;h2&gt;How a brainstorm session helps us&lt;/h2&gt;  &lt;p&gt;To tackle such challenges, our IT team convenes every Tuesday at ProductIP Headquarters in Ede, NL. These brainstorming sessions are crucial. They allow us to tap into our collective creativity and imagination. We explore diverse questions, from simple ones like recording water usage in product manufacturing to complex challenges like streamlining the entire product supply chain.&lt;/p&gt;  &lt;p&gt;During these sessions, everyone contributes insights, ideas, and even prototypes. While it may seem that no concrete code or immediate improvements emerge, the value lies in our collective creative power. We often unearth innovative solutions that wouldn't have surfaced individually.&lt;/p&gt;  &lt;p&gt;Hence, brainstorming sessions serve as a vital tool in our IT process. They help us thrive when facing ambiguous or uncharted territories, like the evolving landscape of ESG regulations. These sessions ensure that we're prepared to deliver efficient and compliant software solutions, even in the absence of clear directives.&lt;/p&gt;    &lt;p&gt;Peter Kassenaar   &lt;br /&gt;-- 11 January 2024&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2024/01/11/Brainstorming-letting-thoughts-flow-freely.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2024/01/11/Brainstorming-letting-thoughts-flow-freely.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=e280664e-f3d4-4161-a32d-d47ae726b54c</guid>
      <pubDate>Thu, 11 Jan 2024 17:03:02 +0700</pubDate>
      <category>English</category>
      <category>Algemeen</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=e280664e-f3d4-4161-a32d-d47ae726b54c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=e280664e-f3d4-4161-a32d-d47ae726b54c</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2024/01/11/Brainstorming-letting-thoughts-flow-freely.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=e280664e-f3d4-4161-a32d-d47ae726b54c</wfw:commentRss>
    </item>
    <item>
      <title>Dashboards: more than meets the eye</title>
      <description>&lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=dashboard.jpg"&gt;&lt;img title="dashboard" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="dashboard" src="https://www.kassenaar.com/blog/image.axd?picture=dashboard_thumb.jpg" width="640" height="452" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;One of the things we are doing in my company is creating a new Dashboard for the SaaS-platform we are offering to our customers. This way, customer data can be made more visually insightful.&lt;/p&gt;  &lt;h2&gt;Color blindness&lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;In the discussions we had about the Dashboard, it was brought to our attention that one of our colleagues is color blind. For him, for example, it is difficult to distinguish whether a pie slice of a graph is red or green, and where the separation between the values lies.    &lt;br /&gt;It turns out that worldwide about 8% of men experience some form of color blindness and 0.5% of women. These do not seem like large percentages, but still means that almost 1 in 10 users (including our customers!) is color blind. So, we must take this into account in the final design. There should be some kind of switch that allows the visitor to switch between a standard color palette or a palette optimized for the most common forms of color blindness. This way everyone will benefit, and we will provide better value for our customers.&lt;/p&gt;  &lt;h2&gt;User Experience&lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;This once again shows that a seemingly simple question (&amp;quot;Can you create a dashboard?&amp;quot;) can be more complex than you think at first glance. As one of my previous students (now a specialist on User Experience, UX, &lt;a title="LinkedIn page of Michael Ramlal" href="https://www.linkedin.com/in/mramlal/" target="_blank"&gt;Michael Ramlal&lt;/a&gt;), put it: &lt;em&gt;“Simplifying complex data visualization is easier said than done, especially if you aim for inclusivity. I'm a big fan of Edward Tufte, who, with his minimalist approach, managed to convey the right message visually.”&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;-- Peter Kassenaar&lt;/p&gt;  &lt;p&gt;29 december 2023&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2023/12/29/Dashboards-more-than-meets-the-eye.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2023/12/29/Dashboards-more-than-meets-the-eye.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=2f682d20-7546-4e57-ac10-dc470aca9a22</guid>
      <pubDate>Fri, 29 Dec 2023 06:07:00 +0700</pubDate>
      <category>Usability</category>
      <category>English</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=2f682d20-7546-4e57-ac10-dc470aca9a22</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=2f682d20-7546-4e57-ac10-dc470aca9a22</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2023/12/29/Dashboards-more-than-meets-the-eye.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=2f682d20-7546-4e57-ac10-dc470aca9a22</wfw:commentRss>
    </item>
    <item>
      <title>Communication is key</title>
      <description>&lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=meeting.jpg"&gt;&lt;img title="meeting" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="meeting" src="https://www.kassenaar.com/blog/image.axd?picture=meeting_thumb.jpg" width="640" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This week the ProductIP IT team (where I work) had a very interesting meeting with the Regulatory Team. They trained us on the &lt;a title="2024  ESG Regulations" href="https://sustainablefuturenews.com/policy-and-regulation/2024-guide-to-esg-regulation/" rel="nofollow" target="_blank"&gt;upcoming ESG regulations&lt;/a&gt; and the – already available, but apparently not widely known –&lt;em&gt; &lt;a title="17 UN Sustainable development goals" href="https://sdgs.un.org/goals" rel="nofollow" target="_blank"&gt;Sustainable Development Goals, SDG&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;  &lt;h3&gt;Supply chain&lt;/h3&gt;  &lt;p&gt;We learned about the complete supply chain. From resource managers to designers of the product, to packaging and shipping partners. We played a role game in which each of us was assigned one role and had to fill in the &lt;em&gt;Actions&lt;/em&gt;, &lt;em&gt;Consequences&lt;/em&gt; and &lt;em&gt;Datapoints&lt;/em&gt; for their part of the manufacturing process. It dawned on us that we, as programmers, had no idea the production chain was that large!&lt;/p&gt;  &lt;h3&gt;Speaking the same language&lt;/h3&gt;  &lt;p&gt;From a broader perspective, it also became clear that the two teams (Regulatory and IT), although being part of the same company, basically spoke two very different languages. The IT team wanted “hard” qualifications and data points to put into their database and code. While the Regulatory Team was much more involved with the subtleties of the various laws and regulations, which were a result of months of discussions and negotiations with all kinds of stakeholders.&lt;/p&gt;  &lt;p&gt;Actually, we discovered that the discussion following the training was more about understanding each other and building bridges between our respective worlds than coming up with concrete solutions for buttons, windows and questionnaires for the ProductIP Platform.&lt;/p&gt;  &lt;p&gt;Once again, communication is key! No matter how much you think &lt;em&gt;“well, we work for the same company, surely we understand what colleagues are talking about, right?”&lt;/em&gt; Clearly, it’s not that simple.&lt;/p&gt;  &lt;h3&gt;Lessons learned&lt;/h3&gt;  &lt;p&gt;A big takeaway lesson was that teams need to keep talking to each other. And not be afraid to ask questions. Even within the same company.   &lt;br /&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=bridge.jpg"&gt;&lt;img title="bridge" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="bridge" src="https://www.kassenaar.com/blog/image.axd?picture=bridge_thumb.jpg" width="640" height="304" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2023/12/17/Communication-is-key.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2023/12/17/Communication-is-key.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=7f70c66b-5fd1-4c53-a3bf-1eb0096c2505</guid>
      <pubDate>Sun, 17 Dec 2023 01:00:41 +0700</pubDate>
      <category>English</category>
      <category>training</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=7f70c66b-5fd1-4c53-a3bf-1eb0096c2505</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=7f70c66b-5fd1-4c53-a3bf-1eb0096c2505</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2023/12/17/Communication-is-key.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=7f70c66b-5fd1-4c53-a3bf-1eb0096c2505</wfw:commentRss>
    </item>
    <item>
      <title>Praktisch Python</title>
      <description>&lt;p&gt;Op 29 maart 2023 is mijn nieuwste boek, &lt;em&gt;Praktisch Python &lt;/em&gt;verschenen. Zoals ik &lt;a title="Eerdere blogpost over Praktisch Python" href="https://www.kassenaar.com/blog/post/2022/11/11/Nieuwe-uitgave-Praktisch-Python.aspx" target="_blank"&gt;al eerder schreef&lt;/a&gt;, ben ik hiervoor enigszins van de gebaande paden afgeweken. In plaats van een puur leerboek over Python te schrijven, ben ik een stapje verder in het proces ingesprongen. Het boek gaat ervan uit dat je Python (of: een willekeurige andere programmeertaal) al enigszins beheerst en dat je de kennis hierover in de praktijk wilt toepassen.&lt;/p&gt;  &lt;p&gt;Het is dan ook geen traditioneel leerboek geworden in de zin van ‘eerst variabelen leren, dan lussen, dan andere taalconstructies en vervolgens hiermee een kleine applicatie bouwen’. Het bewandelt de omgekeerde weg. Het &lt;em&gt;uitgangspunt&lt;/em&gt; is een project met een bepaalde vraagstelling. We kijken hoe Python behulpzaam kan zijn bij het oplossen van deze vraag. Gaandeweg leer je zodoende toch een heleboel dingen over Python en toepassingen hierin.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://vanduurenmedia.nl/EAN/9789463563024/Praktisch_Python?utm_rid=43"&gt;&lt;img title="cover-praktisch-python" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="cover-praktisch-python" src="https://www.kassenaar.com/blog/image.axd?picture=cover-praktisch-python.jpg" width="358" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Voordelen&lt;/h2&gt;  &lt;p&gt;Dit biedt volgens mij een aantal voordelen en mogelijkheden:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Als je Python nog niet kent, kun je direct in de praktijk zien hoe deze tool wordt ingezet om real-life projecten te realiseren.&lt;/li&gt;    &lt;li&gt;Als je Python al wel kent, zie je direct hoe je een stapje verder komt door de taal in te zetten in projecten die je in het dagelijks leven kunt gebruiken.&lt;/li&gt;    &lt;li&gt;Als je een idee hebt voor een applicatie, dan zie je hoe je dit met Python zou kunnen realiseren.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ofschoon elk hoofdstuk een bepaald project beschrijft zijn het waarschijnlijk geen toepassingen die je rechtstreeks, een-op-een, kunt overnemen in je eigen werk of schoolsituatie. Als programmeur ben je immers mentaal creatief. Waarschijnlijker is dat je zelf een idee hebt voor een applicatie en dat je onderdelen uit de projecten zult gebruiken. Misschien maak jij een relatiebeheersysteem, een optie om data uit je Raspberry Pi uit te lezen, een tool waarbij je veel e-mail moet verzenden of een programma dat bestanden uit een directoy inleest en hiermee handelingen moet uitvoeren. &lt;em&gt;Praktisch Python&lt;/em&gt; is hierbij behulpzaam.&lt;/p&gt;  &lt;p&gt;Natuurlijk, op internet zijn talloze websites, blogs, tutorials en video’s te vinden. Maar vaak behandelen deze maar een klein aspect waar de schrijver toevallig tegenaan liep, of zie je door de bomen het bos niet meer. Dit boek geeft stap voor stap, met duidelijke analyses van de code, aan hoe je tot een werkend project komt.&lt;/p&gt;  &lt;p&gt;En, het werken met een fysiek boek, waarmee je lekker op de bank kunt hangen en met potlood of markeerstift aantekeningen kunt krassen is wel zo prettig.&lt;/p&gt;  &lt;h2&gt;In het boek&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Projecten over het werken met tekst, datums en tijden&lt;/li&gt;    &lt;li&gt;Python in een Virtuele omgeving&lt;/li&gt;    &lt;li&gt;API’s benaderen op internet&lt;/li&gt;    &lt;li&gt;Zelf een API maken met Flask&lt;/li&gt;    &lt;li&gt;Websites maken met databasekoppelingen&lt;/li&gt;    &lt;li&gt;Werken met afbeeldingen en EXIF-data&lt;/li&gt;    &lt;li&gt;Webscraping&lt;/li&gt;    &lt;li&gt;Python en Excel en pdf’s&lt;/li&gt;    &lt;li&gt;Een audioboek maken op basis van tekst of Word-bestanden.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Alle voorbeeldcode is via de website van de uitgever te downloaden. We hebben er naar gestreefd elk project in minder dan 200 regels te realiseren. De kans is dan het grootst dat je er zelf praktisch mee aan de slag gaat (In plaats van het alleen vluchtig door te lezen, te downloaden en te constateren ‘ja, het werkt’). Elke stap en elke functie in de code is uitgelegd in een paragraaf &lt;em&gt;Analyse&lt;/em&gt;, zodat je goed begrijpt waar je eigenlijk mee bezig bent. &lt;/p&gt;  &lt;h2&gt;Meer informatie&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;ISBN: 9789463563024&lt;/li&gt;    &lt;li&gt;280 pagina’s, EUR 34,95&lt;/li&gt;    &lt;li&gt;&lt;a href="https://vanduurenmedia.nl/EAN/9789463563024/Praktisch_Python?utm_rid=43" target="_blank"&gt;Bestellen bij Van Duuren Media&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;    &lt;p&gt;Peter Kassenaar   &lt;br /&gt;-- 31 maart 2023&lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2023/03/31/Praktisch-Python.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2023/03/31/Praktisch-Python.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=e5e0e04c-30cc-440e-8401-fffd2a560212</guid>
      <pubDate>Fri, 31 Mar 2023 15:57:29 +0700</pubDate>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=e5e0e04c-30cc-440e-8401-fffd2a560212</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=e5e0e04c-30cc-440e-8401-fffd2a560212</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2023/03/31/Praktisch-Python.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=e5e0e04c-30cc-440e-8401-fffd2a560212</wfw:commentRss>
    </item>
    <item>
      <title>Veranderingen…</title>
      <description>&lt;p&gt;&lt;em&gt;[English text follows below]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Zoals je wellicht weet heb ik na mijn studies altijd via een eigen onderneming gewerkt als freelancer. Ik ben nooit in loondienst geweest bij een bedrijf. Het is inmiddels een heel leven aan ervaringen wat ik achter me heb liggen. Ik heb aan vertalingen gewerkt, boeken geschreven, trainingen en sprekersessies op congressen verzorgd en als programmeur meegewerkt in diverse projecten. &lt;/p&gt;  &lt;p&gt;Het freelancebestaan beviel me zeer goed, maar ik merkte de afgelopen tijd toch dat ik aan iets nieuws toe was. Het reizen, de intakegespreken, de facturering en in het algemeen “het hele gedoe er omheen” zorgden voor versnippering van mijn focus. Dat ging me steeds meer tegenstaan. &lt;/p&gt;  &lt;p&gt;Ik wéét dat het erbij hoort, en de afgelopen 25+ jaar sloeg de balans steeds door in het voordeel van het ZZP-schap, Maar dat is veranderd.&lt;/p&gt;  &lt;p&gt;De afgelopen weken heb ik gesprekken gevoerd met verschillende partijen. Vandaag kan ik mededelen dat ik per 15 maart 2023 als sr. Frontend Developer in dienst zal treden bij Conclusion Confidential (&lt;a href="https://www.conclusion.nl/confidential"&gt;https://www.conclusion.nl/confidential&lt;/a&gt;). Dit is een bedrijf in Apeldoorn dat software maakt ‘om de B.V. Nederland veilig te houden.’ Het gaat om ondersteuning van onder meer politie, Koninklijke marechaussee, handhavings- en opsporingsdiensten en diverse gemeenten. Er wordt voornamelijk gewerkt met Angular in het frontend en .NET als backend. Beiden technieken die mij welbekend zijn.&lt;/p&gt;  &lt;p&gt;Ik stop derhalve met het geven van trainingen, het ontwikkelen van cursusmaterialen en het werken op projectbasis bij relaties. Ik stop niet (direct) met het schrijven van boeken en artikelen, maar zal hier wel veel minder tijd voor hebben. Het bijhouden van bestaande titels staat beslist op mijn verlanglijstje. Voor nieuwe titels zal echter weinig tot geen tijd meer overblijven, zo verwacht ik.&lt;/p&gt;  &lt;p&gt;Ik ben benieuwd wat deze nieuwe stap brengen zal. &lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.kassenaar.com/blog/image.axd?picture=conclusion.png"&gt;&lt;img title="conclusion" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" border="0" alt="conclusion" src="https://www.kassenaar.com/blog/image.axd?picture=conclusion_thumb.png" width="640" height="317" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Changes…&lt;/h2&gt;  &lt;p&gt;As you may know, after my studies, I have always worked as a freelancer through my own company. I have never been employed by a company. I have worked on translations, written books, provided training and speaker sessions at conferences and worked as a programmer in various projects. &lt;/p&gt;  &lt;p&gt;I really enjoyed being a freelancer, but recently I felt I was ready for something new. The travelling, the intake meetings, the invoicing and in general &amp;quot;the whole thing around it&amp;quot; were fragmenting my focus. That started to bother me more and more. &lt;/p&gt;  &lt;p&gt;I know it's part of the job, and for the past 25+ years the balance always tipped in favour of being self-employed, but that has changed.&lt;/p&gt;  &lt;p&gt;Over the past few weeks, I have held talks with various parties. Today, I can announce that I will be joining Conclusion Confidential (&lt;a href="https://www.conclusion.nl/confidential)"&gt;https://www.conclusion.nl/confidential)&lt;/a&gt; as a Sr Frontend Developer from 15 March 2023. This is an Apeldoorn-based company that makes software &amp;quot;to keep the Netherlands safe&amp;quot;. This involves supporting police, Koninklijke marechaussee, enforcement and investigation services and various municipalities, among others. I will work mainly with Angular in the frontend and .NET in the backend. Both techniques that are well known to me.&lt;/p&gt;  &lt;p&gt;I will therefore stop giving training courses, developing course materials and working on a project basis with clients. I will not (immediately) stop writing books and articles, but I will have much less time for this. Keeping up with existing titles is definitely on my wish list. However, little to no time will be left for new titles, I expect.&lt;/p&gt;  &lt;p&gt;I am excited to see what this new step will bring.&lt;/p&gt;    &lt;p&gt;Peter Kassenaar&lt;/p&gt;  &lt;p&gt;- - 6 maart 2023    &lt;/p&gt;</description>
      <link>https://www.kassenaar.com/blog/post/2023/03/06/Veranderingen.aspx</link>
      <author>peter</author>
      <comments>https://www.kassenaar.com/blog/post/2023/03/06/Veranderingen.aspx#comment</comments>
      <guid>https://www.kassenaar.com/blog/post.aspx?id=1cd5836c-abb4-4692-85c2-290407a3eb36</guid>
      <pubDate>Mon, 06 Mar 2023 15:17:00 +0700</pubDate>
      <category>Algemeen</category>
      <category>Software</category>
      <category>Webdevelopment</category>
      <dc:publisher>peter</dc:publisher>
      <pingback:server>https://www.kassenaar.com/blog/pingback.axd</pingback:server>
      <pingback:target>https://www.kassenaar.com/blog/post.aspx?id=1cd5836c-abb4-4692-85c2-290407a3eb36</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.kassenaar.com/blog/trackback.axd?id=1cd5836c-abb4-4692-85c2-290407a3eb36</trackback:ping>
      <wfw:comment>https://www.kassenaar.com/blog/post/2023/03/06/Veranderingen.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.kassenaar.com/blog/syndication.axd?post=1cd5836c-abb4-4692-85c2-290407a3eb36</wfw:commentRss>
    </item>
  </channel>
</rss>