Welcome to gogognome.nl

Welcome to my website. This website contains software and articles that I have produced in my spare time. I also occasionally add posts about software engineering. Here are my recent posts:

Score Surprise published

I have published the score of my own composition ‘Surprise’. Using the program MuseScore 2 I could turn my handwritten score into a professional looking score. You can download the song and the score from my music page.

I give presentions at NextBuild 2016 and Clean Code Days 2016

On Saturday April 16, 2016 I will give a presentation called “Dynamic Progamming: The techinque behind the diff tool explained” at NextBuild 2016 in my old home town Eindhoven.

On Wednesday June 29, 2016 I will give a workshop: “How invariants help writing loops” at the Clean Code Days 2016 in Munich. The next day I will give a presentation: “Let tests drive or let Dijkstra derive?” at the same conference.

How invariants help writing loops

On Saturday May 30, 2015 I gave a workshop called “How invariants help writing loops” at NextBuild 2015 in my old home town Eindhoven. At ProgSCon 2015 I gave the same workshop.

For people who would like to know what I have talked about here is a PDF containing the summary of my presentation and the exercises in case you want to practise the presented technique yourself.

New layout for gogognome.nl

Since today my website has a new layout. I switched from using WordPress to Hugo. Why?

Cartoon about Dave Egger’s book The Circle

Cartoon about Dave Egger’s book ‘The Circle’.

I give a workshop at NextBuild 2015 in Eindhoven

On Saturday May 30, 2015 I will give a workshop called “How invariants help writing loops” at NextBuild 2015 in my old home town Eindhoven. Here is the abstract of my presentation:

I give a workshop at ProgSCon 2015 in London

On Friday April 17, 2015 I will give a workshop called “How invariants help writing loops” at ProgSCon 2015 in London. Here is the abstract of my presentation:

New picture of me courtesy to Olaf Lewitz

Olaf Lewitz, Trust Artist. Thank you Olaf for taking a picture of me during the ALE 2014 conference. Your picture now shines on my curriculum vitae on this website.

Let tests drive or let Dijkstra derive?

For those of you who did not attend my presentation at the ALE2014 in Krakow I have written down the contents of the presentation.

I am speaker at ALE 2014 in Krakow

My presentation “Let Tests Drive or let Dijkstra Derive?” has been accepted at the unconference ALE 2014 in Krakow. Here is the abstract of the presentation:

Drop all tables for one user in Oracle database

To drop all tables for a single user in an Oracle database, use one of the following two queries. The queries return the drop statements. Execute these drop statements and you are done.

Two selectInputDates with same id cause NullPointerException

ICEFaces 1.8.2 throws a NullPointerException. The stack trace shows that the exception is thrown by:


Potter Kata solution

Last year I got interested in Test-Driven Design (TDD). I practice TDD every now and again during my work. In my spare time I tried to solve a few katas using TDD. Then I studies other people’s solutions to the same kata and discovered most of them were incorrect!

Test-Driven Development and formal proofs

Since last year I got interested in Test-Driven Development. The idea of first writing a test before implementing new functionality appeals to me, because it ensures you ensure 100% code coverage. And having a lot of test cases makes it safe to refactor your code later. Refactoring code is needed to keep your code clean.

However, tests can only show the presence of bugs, not their absence: it is possible that your code contains bugs even if all your tests pass.

initSQL does not work with ojdbc14

In a project my team used Tomcat 6 and ojdbc14. A connection pool was configured as a data source.

We wanted to execute a statement at the moment a new connection to the database was created. The documentation of Tomcat mentions the attribute initSQL of the data source.

valueChangeListener not called for SelectOneMenu

It turns out that to make the valueChangeListener work for SelectOneMenu, one has to add partialSubmit="true".

Plus sign does not work in grep

In a bash shell under cygwin I used grep like this:

grep [0-9]+[.][0-9]+ <filename>

I expected a line like "...>2.49<..." to match. Unfortunately, this was not the case.

Svn+ssh with Subclipse

Subversion supports several protocols: http, https, svn and svn+ssh. I don’t like using http for Subversion, since the user name and password are transmitted as plain text. Getting https to work, you need to get a certificate from a Certificate Authority. This takes time and costs money. The svn+ssh alternative can be quickly set up and is for free. The application svnserve allows access to your Subversion repositories using the svn protocol.

Logging in on Samba server fails in Windows 7

Adding the following registry settings in Windows 7 solved this problem for me:

Disable button click triggered by enter in Compact Framework 2.0

Mobile devices do not have mouse. When the user uses the touch screen to click on a button, then this click is translated to mouse events. This way existing software can still be used on a mobile device without mouse.

When the mobile device has a barcode reader, then when a barcode is scanned, this barcode is offered to the application as if it was typed on a keyboard. And typically a key press for the enter key is added after the barcode.

But what happens if the user accidently moved the focus from a text box to a button? If the user then scans a barcode, the key presses for the barcode are ignored, but the key press for the enter will cause a button click!

It turns out that preventing this button click is difficult in Compact Framework.


I decided to try a new Linux distribution. Last time I installed Linux I installed it from a USB stick. I remember I needed some special software to make the USB stick bootable.

Samba problem

The Samba configuration file can be very small and simple. However, when the winbindd daemon was running, my Linux and Windows machines could not look into the shared folders (although they could see the shares).

Sudo without password

If you want sudo without entering a password, edit /etc/sudoers and add:

Search in file does not work in Eclipse

When Eclipse is run with GCJ (GNU compiler for Java) the file search does not work properly. This problem can be Solved by adding a file ~/.eclipse/eclipserc with the following content:

JViewPort.scrollRectToVisible() does not work as expected

Scrolling a JScrollPane such that a component becomes visible should work like this:

    Rectangle bounds = component.getBounds();

Unfortunately, the code above does not work.

How to find constraints and indexes on a table in Oracle?

Sometimes you have to work with an old version of an Oracle database. And if you are unlucky, SQL Developer cannot connect with that database. You can use less sophisticated tools to connect to the database. How do you find the constraints on a table?

Welkom op gogognome.nl

Welkom op mijn webpagina. Deze webpagina bevat software en artikelen die ik heb geschreven in mijn vrije tijd. Af en toe plaats ik berichten over software ontwikkeling. Hier zijn mijn recente berichten:

Bladmuziek Surprise gepubliceerd

Ik heb de bladmuziek van mijn eigen compositie ‘Surprise’ gepubliceerd. Met behulp van het programma MuseScore 2 kon ik mijn handgeschreven bladmuziek omzetten naar professioneel-ogende bladmuziek. Je kunt de muziek en de bladmuziek downloaden op muziek-pagina.

Nieuwe layout voor gogognome.nl

Sinds vandaag heeft mijn website een nieuwe layout. I ben overgestapt van WordPress naar Hugo. Waarom?

Foto meivakantie

Hier een foto van Natasja, Julia en Dennis in een speeltuin in het Eifelpark Gondorf.

Foto Mila bij viskom

Onze poes Mila heeft de viskom ontdekt. Hoe lang duurt het nog voordat Mila ons enige huisdier is?


Omdat het woord ‘stortfriet’ nog niet in het woordenboek staat, hier een beschrijving met foto.

Wisselende foto's in kop met Suffusion

Deze website heb ik vroeger eens gebouwd met WordPress met het Suffusion-thema. Nu gebruik ik trouwens Hugo. Het heeft me wat moeite gekost om uit te zoeken hoe ik wisselende foto’s in de kop van mijn website kan laten tonen. In dit bericht beschrijf ik hoe ik het voor elkaar heb gekregen.

Julia en Dennis geschminkt

Tijdens de herfstvakantie zijn we naar Plopsaland geweest. Julia en Dennis hebben zich laten schminken. Julia als vlinder en Dennis als tijger.

Zo vader, zo zoon

Een foto van Dennis achter de computer.

Opbouw files van Magic Music Module Professional

Bij het opruimen van een oude klapper op zolder vond ik een document dat ik in 1993 heb geschreven. Het beschrijft de structuur van bestanden van het programma Magic Music Module Professional. Dit programma is een step-time muziekeditor voor de MSX-computer. Ik heb dat programma tijdens mijn schooltijd geschreven.

Leuk dat het kan, maar daar zit ik niet op te wachten

Technologisch gezien kunnen we nu ontzettend veel. Wie begin twintigste eeuw had gezegd dat binnen honderd jaar een mens op de maan zou lopen werd voor gek verklaard. Inmiddels is het al weer veertig jaar sinds de eerste mens op de maan is geweest.