Your hotkey to alternative software development

Joy of Coding

I'm co-organizer of Joy of Coding - a Rotterdam based conference that celebrates the art, craft, science and joy of software development!

Jan '24

Maize Maze Maker Instructions

Distributing a standalone cross-platform Java application is still not a walk in the park, so here some specific instructions to get Maize Maze Maker running on a windows PC. Read more..

Jan '22

VIC-20 Improved Notes Table

Music made with the VIC-20 almost always sounds off tune. I've always accepted that as a fact until I found out that the musical notes table in the reference manual is badly transposed. And so I set out to make a better table. Read more..

Dec '20

DIY VIC-20 Game Cartridge

I made a small batch of VIC-20 Game Cartridges for Overthrown. With parts readily available you could do this yourself as it makes a nice retro hobby project. This tutorial shows you the steps and links to information you need for testing and such. Read more..

Jun '20


Perhaps you've clung to power for too long. With protests in the street and the army on the hand of the opposition it is time to grab the money and go! Escape on foot, by car and plane to your tropical island to retire peacefully, if you can get there alive! Expect fierce resistance in this VIC-20 action game where you play the bad guy! Read more..

Oct '19

Decompiling Kotlin

Presented at NL-JUG JFall 2019, this talk takes my Kotlin research from a year ago and puts in a entertaining journey along some of the language features of Kotlin and how they look decompiled into Java or in bytecode form. This talk was rated as the 7th best talk at NL-JUG JFall out of about 50. Read more..

Oct '18

Fire Breath

A relic from the past. I recently revived my C64 and found one of the games I made. I remember to have tried to get it published but the disk was returned witout comment so I suppose it was not good enough :-) Anyway, after having lied dormant for 26 years, I present to you: Fire Breath. Read more..

May '18

Game of Trades

Presented at Codemotion 2018, Amsterdam. Game of Trades is of course inspired by Game of Thrones and tells the tale of a trader in Westeros. Part of the Curriculum at the Hague University it teaches students various algorithms such as Fastest Path, Travelling Sales Person and Optimalization techniques in a fun environment. Read more..

Dec '17

There is a proxy in your Atlassian Product!

You might not know it but the Atlassian OAuth plugin is part of most Atlassian products such as Jira and Confluence. Until recently it had a vulnerability that allowed the unauthenticated execution of HTTP GET requests from the server. You can do all kinds of interesting things with it, like accessing resources on the internal network or spoofing pages with a valid TLS connection. Read more..

Jan '17

The Silence of the Stones

Another relic from the past. I loved text adventures and wrote quite a few of my own. This is one I wrote in English. You'll have to forgive me the spelling mistakes though :) Also I recovered the original 'designs' - two sheets of paper with the map, solutions and memory addresses. Read more..

Nov '15

Review and Hack Workshop

This workshop was presented at NLJUG JFall 2015 on November 5th. It teaches the participants how to analyse source code for vulnerabilities and demonstrate them. Read more..

Jun '14

Checking framework vulnerabilities using Dependency Check

A web-application is never finished. Even when no new features are being developed new vulnerabilities may be found in the frameworks used in the application requiring a patch or an upgrade. Are you actively monitoring the frameworks that are in use in your applications? My guess is no, or at least not all of them. Well, luckily enough OWASP has a very nice utility that easily integrates into a build environment and can do most of the hard work for you. Let me tell you about it. Read more..

Mar '14

Hack your own WebApp

I presented this workshop on the Joy of Coding 2014. Its purpose is teach web developers how to use existing open source 'hacker' tools to test their web application for security problems. More than 50 people attended the workshop and it was regarded as one of the best of the conference. Read more..

Dec '13

Securing web apps using OWASP ZAP in Passive Mode

The OWASP Zed Attack Proxy is a powerful open source web application security assessment tool. Even in passive mode, where it just inspects the traffic generated by your browser, it can give valuable pointers for securing your web application against abuse. In this blog post I will explain how to configure your browser to use the OWASP ZAP Proxy to click through a web application running on local host. Also I will explain its various findings and how to solve them. Read more..

Jun '13

TPS to CSV Howto

Running a Java commandline tool is not the most intuitive way of doing things so on this page I have gathered some notes on how to get tps-to-csv working if you're not familiar with the command prompt and Java. Read more..

May '13

Liberating Encrypted TPS Files

My previous article on Clarion TPS files left one big question unanswered: how do encrypted TPS files work and is it possible to decrypt them. In this post I will dissect the encryption algorithm and explain how it works. It involves quite a bit of binary arithmetic and hexadecimal numbers, so take a deep breath before diving in! Read more..

Mar '13

The Dark Secret of Spring MVC

Do you use Spring MVC in a basic CRUD setup, like with an OpenSessionInView filter and your Entities also as Data Transfer Objects? Then you may have exposed more of your model than you've anticipated. Read more..

Mar '13


For a project I needed to inspect the contents of a Openstack Storage repository and explore the capabilities of the JOSS library. The result is this small, useful explorer like application. Read more..

Jan '13

Liberating Clarion TPS files

Migrating a customer from a legacy system to his shiny new one never goes smoothly. In this case the customer had a huge amount of data in a Clarion based system with the tables stored in proprietary TPS (TopSpeed) files. In this blog post I will discuss the various ways of liberating data from their TPS container and dive deep into the internals of the TPS file itself. Finally I present a TPS to CSV converter. Read more..

Dec '11

Fortress Unlimited

The world is in peril once again.. An evil mastermind has abducted leading scientists to construct a doomsday device in an underground fortress filled with traps and defences. Are you skilled enough to destroy the doomsday device, rescue the scientists and save the world while you're at it? Read more..

Nov '11

Webservices with CXF and Maven

I really like the Apache CXF Webservices framework. It works really well and is very programmer friendly. And when combined with Maven dependencies and packaging are a breeze as well. As I use this combination quite a lot, I keep explaining how to get this working (its easy, really, you only have to know how :) So I decided to write a tutorial. Read more..

Apr '11

Android Sonar Monitor

I was surprised that it didn't exist. I mean, there are similar apps for the other elements in our continuous integration environment, like Bamboo and Jira. But an app for checking the software quality status in Sonar didn't exist yet. So I decided to write one. Read more..

Mar '11

Mutually Assured Destruction

I've always loved the classic movie War Games, so when Robert asked me if I could make something special for a company event I knew just what to make: Turnbased Nuclear War. Interestingly enough the whole Cold War political situation proved to be an excellent metaphor for real life project situations. Read more..

Jun '10

Commercieel gebruik van Open Source

Als Open Source dienstverlener kom je nog wel eens voor verrassingen te staan. Het merendeel van de commerciële software die wij maken leunt op Open Source bibliotheken. Dit stelt ons in staat om sneller en beter software te maken. Echter, Open Source is niet zonder verplichtingen. Bijna alle Open Source bibliotheken hebben een licentie in één of andere vorm. De voorwaarden in deze licentie moeten worden nagekomen anders is er kans op juridische problemen. Read more..

Dec '09

Throwing balls

Demonstration of a game where you have to throw real balls (or anything actually) at a screen to knock over virtual cans. Read more..

Jul '09

The Great JavaDoc War

We're using Checkstyle to enforce that every public method that is not a getter and setter must have a JavaDoc comment. However, our developers didn't see the point of writing JavaDoc for all these methods. After a period we now refer to as the 'Great JavaDoc War' we came to the conclusion to make Checkstyle smarter and built a check that uses the Non Commenting Source Statements algorithm to determine if a method should have JavaDoc or not. Read more..

May '09

Java Game Development

Computerspellen geschreven in Java zijn lastig te vinden. Dat is eigenlijk raar gegeven het feit dat er al jaren uitstekende ontwikkelomgevingen voor Java beschikbaar zijn en er nu ook middleware is die het maken van spellen sterk vereenvoudigt. Kortom de tijd is rijp om spel software in Java te gaan schrijven. Naast het tonen van een aantal commerciële voorbeelden van succesvolle spellen geschreven in Java vertelt dit artikel hoe je aan de slag kunt om zelf een spel te maken. Read more..

May '09

First meetup Dutch Groovy User Group

Het is donderdagavond en ik sta op het balkon van het schitterende pand van Lunatech Research met uitzicht op een heerlijke rustige omsloten tuin, weg van de drukte van het Rotterdamse verkeer. Terwijl ik een drankje krijg aangeboden, complimenteer ik organisator Erik Pragt met het vinden van deze locatie voor de eerste bijeenkomst van Nederlandse Groovy gebruikers groep. Read more..

Jan '09

Fortress 4K

Trapped in a underground fortress, 4 scientists are waiting to be rescued by you, the Armies most skilled helicopter pilot. If all the blockades, laser cannons and misile turrets are not enough, the swift rescue of the scientists is also hindered by the complex layout of the fortress itself, requiring impressive navigational skills. Fortunately you have your SX-4096 helicopter to aid you in your quest. Read more..

Feb '08

Life As War

Ever wondered what Conway's Game of Life would be if two tribes of cells would fight for dominance ? Well now is your chance. Devise cunning groups of cells that quickly expand so that you can claim the blue area. Unfortunately your opponent tries the same with yours :-) Read more..

Jul '07

SunSPOT Adventures

SunSPOT means Small Programmable Object Technology. From Sun microsystems. And really cool. They are really like embedded devices and you can program them in Java with full IDE and debug support. Aka embedded software made easy. Unfortunately they are quite unavailable in Europe. But fortunately I was able to borrow a development kit from the NL-JUG. And so a series of fun projects started.. Read more..

Feb '07


Defend your sphere of influence against the marauding cubes who are after your only defence against the Red Void : Your 8 rings of protection. Once they are gone, all hope is lost and the game ends. But do not fear, your rings of protection have a powerful defence mechanism. And so the Endless War begins ! Read more..

Dec '06

Masters of Java 2006

Masters of Java 2006 was held on 23rd of November 2006 and was a success. 23 Teams participated in a action packed programming contest to decide which is the best Java programmer. This article gives an impression of that day. (Dutch) Read more..

Jul '06

MoJ Eclipse Plugin

The Masters of Java Assignment Eclipse 3.1 plugin makes it easy to develop new Masters of Java assignments. Masters of Java is a fast paced programming competition environment. Read more..

May '06

Ruby en Rails

The first Ruby on Rails seminair in the Netherlands was held on the 18th of May 2006. Ruby is a ten year old scripting language. Rails is a webapplication framework. And together they make it very easy to create web applications. This combined with the lack of productiveness in creating webapps using conventional means RubyOnRails has become very populair in a short time. A very good reason to visit this seminair and see what RubyOnRails can do. (Dutch) Read more..

Feb '06


Originally I wrote iRcxCtrl as an API to for controlling the RXC using the infrared tower. That was back in 1998. Recently I revived the code for doing a Robot with a webcam prototype. Read more..

Jan '06


Spiralling through space you encounter Endless Hordes of Mutated Aliens which Try To Kill you! There is only one way to survive, Kill'em all ! So much for the plot. Its shmup, so who cares anyway. The interesting bit is that this game in only 4k in size (compressed and obfuscated) and has pseudo 3d graphics and sound effects (if you play it on a JDK :-). Read more..

Jan '06

2D Puzzle

Will all the pieces fit on the board? They should, but it's harder than it looks. Somehow this rather fun puzzle game came into my hands in physical form and I was so intrigued that I made a computer version of it (complete with auto-solver :-) and lotsa bells and whistles. Read more..

Oct '05

Wheel of Fortune

If you ever have an occasion where you have to give lotsa prizes away, to lotsa people and you dont want the hassle with names and tickets and such this little program may be just the thing you're looking for. Read more..

Feb '05

Object Spaghetti

This article in Dutch tells you about how to (and how not to!) write flexible and maintainable software using a series of patterns like Singleton and AbstractFactory. Also the article delves into the wonderful world of Dependency Injection and reflection. Read more..

Sep '04

Masters Of Java

Fast paced Java programming contest - solve a problem set within thirty minutes and score a point for each second remaining. See if you are faster than the rest ! Read more..

Jun '04

DIY : Aspect Oriented Frameworks

After an introduction on how the current Aspect Oriented Frameworks operate, this article dives into building a small aspect framework based upon the java.lang.reflect.Proxy class in no more than 5 classes. Read more..

Apr '04
Jan '04

Mobile Guide

A detailed map of the city center of Rotterdam on your mobile phone. Contains listings of Pubs, Restaurants, Hotels and Disco's. Has various filtering options. Map can updated online. Read more..

Dec '03

MIDP CodeGenerator

The MIDP CodeGenerator was created to solve the problem of making phone specific versions of the same Java program. Read more..

Dec '03

Package Inc.

Three levels of focussed action on your mobile phone set in the post 9/11 age. Make sure the packages fall into the right trucks. Beware of bombs ! Please your boss ! And more in this game that will run on any Java enabled phone. Read more..

Oct '03

Java GUI's : Disaster Area ?

This article written in Dutch examines why Java GUI development still takes more time than the same development in Delphi or Visual Basic. In the conclusion guidelines are given to speedup Java GUI Development. Read more..

Aug '03


From a facination for mazes came this visual programming environment. Guide your intrepid adventurer through a maze of passages all alike. Armed with just a lantern, 2 colored markers and hopefully a clever algorithm. Suitable for non programmers. Read more..