Dutch / Nederlands
Site map

I write, therefore I am

With this variation on a famous statement by the philosopher Descartes, I would like to express that the act of writing about what happens in my life is important to me.

Thursday, January 18, 2018


Wednesday, January 17, 2018

Some snow

Around seven in the morning, I saw some snow on the cars, but not on the ground. Around eight, I saw that it was snowing. When went outside around half past eight, it was snowing. I measured 1.5 cm of snow on the table outside. Around ten, the snow already started to melt. It snowed on and off during the day. In the evening there were still some patches of snow, mostly on (high) grass.

Tuesday, January 9, 2018

New bike

This morning, I went to get my new bike, a Vilo de ville B 200 in the colour apple green. Instead of a chain drive it has a belt drive, which is more durable, maintenance free, very silent, and has less friction.

Monday, January 8, 2018

You are what you do

This morning, I finished reading the Dutch book Je bent wat je doet (You are what you do) by Roos Vonk, which I started reading on December 20, 2017, the day I bought the book. Roos Vonk is a Dutch professor of social psychology. What I like about the book, compared to other self-help books, is that it contains many references to scientific experiments to support the advice that it gives. It is also a very practical book. Although I have finished reading the book, I am going to study again, trying to make a summary of the main points in order to apply them to my own life.

Four colour theorem: edge marking

The Four colour theorem states that faces of a planar graph can be coloured with four colours. Given four colours, there are 24 ways to permute them. Because of this, there must be another method to represent a colouring with less freedom. For each planar graph with degree three it is possible to define an equivalence relationship between a face colouring and an edge colouring with three colours. Given three colours, there are six ways to permute them. Which gives reason to believe there is a more compact way to represent a colouring. And there is indeed, because with each edge colouring it is the case that at each vertex the three edges are assigned a different colour. By assigning a number to the edge colours, the colours will appear either clockwise or anti-clockwise around each vertex. This can be represented by assigning one of two 'colours' to each vertex. One could exchange these, meaning that there must still be a more compact method for representing a face colouring of a planar graph with degree three. This can done by marking the edges for which the edge colours around the vertices of the edge run in a different direction. It appears that for a marked edge, the colours of the faces on the 'opposite side' of the two vertices are always the same, while for an unmarked edge they are always different. The edge marking also has the property that each face has an even number of edges with a marking. But that is about everything that can be stated in general. Depending on the number of edges of a face, there are certain patterns of edge markings that are allowed, but there are no simple rules to describe which patterns can occur.

The Philosophy of Andy Warhol

This evening, I finished reading the book The Philosophy of Andy Warhol by Andy Warhol, which I started reading on December 9. 2017 after I bought it on November 26. I found this a rather boring book. It is rather similar to A, A novel in the sense that it present every day talk as something special. It has long transcripts of telephone calls with B, who according to Pat Hackett is Brigid Berlin. It is definitely not about philosophy, at most about Warhol's attitude to life.

Sunday, January 7, 2018

Persistent 'balanced' tree

In the past weeks, I worked on the implementation of a persistent tree data structure. I first wanted to base it on a red-black tree, but then decided on a kind of 'balanced' trees using an extra height indicator. The idea is that this would also allow less optimal height differences in favour of sharing larger parts between versions, by only performing the balancing in the parts that made version specific. This afternoon, I finished a first version, which works correctly and keeps the tree reasonable balanced under deletion, but does not implement the idea of sharing larger parts between versions. I still would like to perform some performance analyses to see if it can be optimized. All the code is in a single file, which also includes all the testing procedures and some debugging code.

Thursday, January 4, 2018

Random Street Tile Pattern

I found a way to prevent the errors. I realized that there were squares of four values that did not match the allowed tiles. I added a check to the program enforcing this. Still there are some problems at the borders, which I hide by showing only part of them. More research will be needed to address these issue.

This text is displayed if your browser does not support HTML5 Canvas.

Wednesday, January 3, 2018


At 17:00:48, I bought the following two book from bookshop Broekhuis for € 5.00 each:

More random Street Tile Pattern

I came up with a simple trick in the program to generate more random Street Tile Patterns. I was not happy with first result, because it had a strong tendency to place large tiles under eachother with a one shift to the left. This resulted in many similar looking patches. The trick was to generate the pattern for the following lines from right-to-left. This results in a quite even distribution of the different types of tiles. The reason why the trick works, is that the top-right letter of the tile defines the tile, and generating from right-to-left, results in a even distribution of the possibilities when ever there is a choice between the different types of tiles.

This text is displayed if your browser does not support HTML5 Canvas.

But on second look, I discovered that the trick does not work perfect, because the above pattern has several H shapes (rotated by 90°). This does not completely come as a surprise, but I right now, I have no clue how to fix it.

Tuesday, January 2, 2018

360° video

At TkkrLab we unpacked a Christmas gift from RevSpace. Someone had brought a Ricoh Theta V camera and used it to record a 360° video.

Saturday, December 30, 2017


Thursday, December 28, 2017

WinterGo: Second day

In the morning, I played against Francien. I played slower than last year, but I still missed some important moves and lost too many stones because I did not watch out enough. I played black and lost with 16.5 points. On the right the state of the board at the end of the game. White had captured 24 black stones and black had captured 13 white stones.

In the afternoon, I attended a game exposition of Game 27 - AlphaGo Master vs Fan Tingyu. I did not fall asleep, which I guess means it was a good exposition, because usually I do fall asleep during go workshops.

Rubik's Cube workshop

At nine in the evening, Erwin Bonsma gave a workshop on how to solve the Rubik's cube from scratch by using a trick to find your own algorithms. I used it to derive some algorithms for my own method for solving the cube. I have method that uses a minimum of algorithms, some very simple ones that I would not even call algorithms anymore. The methods starts with solving the edge pieces, and uses one algorithm (and it mirror) to move all edge pieces to their proper location. (See for a similar method, the page Solving Rubik's Cubes: All Corners Last.) The two algorithms I constructed are one for flipping two edge pieces: R'UF'U'FU'RU and one for moving moving three edge pieces: R'U'RUR'URU'RUR'U'. Afterwards, I asked him if he had discovered this himself and he told me he got it from a YouTube video. I spend some time searching for that video. I think it is the video: A simple trick to crack all Rubik's cubes. For another description, see also: Commutators: corner twists. I also found some interesting video by Dmitry Zaytsev: Rubik's Cube 3x3. Edges First Method , No algorithms, no notation. Part 1, Part 2, and Part 3.

Wednesday, December 27, 2017

WinterGo: First day

I played my first game of Go in almost a year. I played quite agressive, to my own surprise. I made several invasions and almost killed a black group in one of the corners. But in the end the black player found a good move, to which I did not know the answer, tipping the scales in his favour, forcing me to resign. On the right of the status of the board, just before he made his last move to kill a lot of white stones.

Random Street Tile Pattern

In the past weeks, I continued working on the Street Tile Pattern in an attempt to generate 'large' random patterns. This evening, I succeeded in doing so with the latest version of the program, but I am not very satisfied with the patterns being generated, because they have a certain bias.

This text is displayed if your browser does not support HTML5 Canvas.

Wednesday, December 20, 2017


At 11:03:13, I bought the book Je bent wat je doet written by Roos Vonk in Dutch and published by Maven Publishing in April 2014, ISBN:9789491845017, from bookshop Broekhuis for € 11.50.

More is needed

I spend some more time working on the the Street Tile Patterns. I established that each state can be reached from each state. If this would not be the case, it would have some implications for the infinite non-repeating Street Tile Patterns. I wrote a small program to see if the states could be used to generate a random pattern (within a square) without using back-tracking, and it turned out that it was not possible. I guess there must be a method to connect the DFA with itself to determine how to generate from a given sequence (matching the DFA) a sequence below it that also matches the DFA.

Tuesday, December 19, 2017

89 states

I took a new approach to the Street Tile Patterns and wrote another program. The idea was to implement an alternative method to calculate the 'states' of the DFA underlying the grammar. After I implemented it, I tried different depth, discovering it found more and more states. But then I realized, that many states might be equivalent. I found a method to determine equivalent states, and discovered that depth six, no more states were found, thus concluding that there are 89 states. I spend some time analysing the states with an idea to put them into a diagram. This evening, I spend analyzing some of the generated sequences on which I based the grammars, and discovered that all those sequences make use of a rather limited subset of states. I need some more time to construct a diagram.


Monday, December 18, 2017


Sunday, December 17, 2017

Street tile grammar

This weekend, I continued my research on the grammar for the horizontal continuation for an infinite street tile pattern. The program I had been working on, crashed due to heap exhaustion. I already had discovered that I could reproduce the result of November 12 with the smaller number of states, if I would work go up, instead by going down, which actually comes down to using the upside-down encoding, like:
   A  AB

   D  DE  DEF
   A  AB  ABC

      GH  GHI
      DE  DEF
      AB  ABC
But it did not bring me much further. As a next step, I decided to develop a version that does not store illegale chains, after I verified that it did not matter. This program was able to find all illegale sequences of lengths smaller than sixteen. I worked on developing a grammar to encompass all sequences. This resulted in the following regular expression (spread over multiple lines for readability):
I searched the internet for an online converter to DFA. I found Regex => NFA => DFA by CyberZHG. It uses a slightly different notation, so I rewrote the above expression into: (A|B|C)A(ABC)*AA|((A|B|C)AAD|(H|I)D)((A|ϵ)AB(A|ϵ)D)*(AAA|G)|(((A|B|C)AAD|(H|I)D)(ABD|ϵ)AA|(G|H|I)AB)DDEFD(ABG|AA(DAB|ϵ)(DAAA|DG))|(((A|B|C)AAD|(H|I)D)AABC|(H|I)AB)(AADEAA|AABA)(ABG|ABCA(DAAA|DG))|(H|I)ABG|(D|E|F|H|I)A(D|G). It returend a nice graph, but it seemed not to be the most compact representation.

Below some of the long sequences of the different parts of the grammar are given together with the lines that can be inferred from them:
This text is displayed if your browser does not support HTML5 Canvas.

Saturday, December 16, 2017


Friday, December 15, 2017


Thursday, December 14, 2017


< H2>Wednesday, December 13, 2017


  • RetDec: a retargetable machine-code decompiler based on LLVM

Tuesday, December 13, 2017


Monday, December 11, 2017

Hail, snow and rain

Around four in the afternoon, it started to hail. The hail was quite fine, but still hurted when touching the skin. After about twenty minutes the hail changed into snow. About an hour later it changed to rain. In the west of the country there were a lot of traffic jams and problems with trains. In the middle of the country 44 cm of snow was measured at one location.

Sunday, December 10, 2017

Snow and rain

In the afternoon it snowed. At the end of the afternoon, it started to rain. While biking around the city I encountered three instances where cars (and one city bus) had hid each other. In all cases, the damage seems minimal. I also one time encountered a car slipping. In the evening, most of the snow on the roads had disappeared.

Saturday, December 9, 2017


I left at 8:16 from Enschede, hoping to arrive at 10:30 in Amsterdam. But half way between Apeldoorn and Amersfoort the train stopped in the middle of nowhere. It was announced that the overhead line had broken ahead of us, and that the train had to return to Apeldoorn. We were adviced to go back to Deventer and travel further over Zwolle. There were some more delays and it was only at 12:52 that I arrived in Amsterdam. It was snowing, but the snow did not stay.

While on the train, I finished reading the book The Seducer's Diary by Søren Kierkegaard, which I started reading on November 18 and bought on December 14, 2013. I found the story to be completely unbelievable, including its form.

In Amsterdam I went to bookshop Scheltema, where at 14:37, I bought the following two books:

  • Vivienne Westwood written by Vivienne Westwood and Ian Kelly in English and published by Picador in 2014, ISBN:9781447254126 for € 9.95.
  • The Waves written by Virginia Woolf in English and published by Random House in 2012, ISBN:9781448138999, for € 5.00.
Next, I went to gallery andriessen & Eyck to see the exhibition Drawing & and more showing drawing by five artist and a work that is not a drawing. Peter Struycken was one of the artists. Besides two drawings, there was also a large wall carpter. Although this day of the exhibition there was no formal opening, but some of the artist, including Peter Struycken and some of their relatives, came to visit. I also met Antonietta Peeters and talked with her about her work.

Friday, December 8, 2017


January 2018
December 2017
November 2017
October 2017
September 2017
Alzheimer's Disease
Trip to China 2010
-- contact --




Useless lists


My life as a hacker
Signature programs
Software enginering
The Art of Programming
eXtreme Programming Programs


Hamilton cycles
cutting sticks
Califlower fractal


Volcano Blog


The email address below, may only be used for private communications. This email address may not be put on any mailing list. I do not want to receive emails with advertisements of any kind. My email address is:

Site statistics

If I did not count wrong, this site consists of 940 HTML-files with a total size of 21,812,426 characters, having 45333 internal links and 9929 external links. (About 729 of the external links are broken.) Furthermore, it contains 195 C/C++ program files with a total size of 4,423,742 characters, and 3 PASCAL program files with a total size of 35,259 characters. There are 72 text files with a total size of 773,088 characters. With respect to images, this site containts 1226 JPEG images (total size 53,472,835 bytes), 146 GIF images (total size 3,765,046 bytes), 90 PNG images (total size 2,140,120 bytes), and 2 BMP images (total size 3,727 bytes). With respect to sounds, it contains 14 WAV files with a total size of 389,002 bytes and 1 MP3 files with a total size of 70,182 bytes. It also contains 43 PostScript files (total size 308,387 bytes), 2 LaTeX files (total size 132,020 characters), 8 PDF files (total size 640,573 characters), 22 zip files (total size 2,487,335 bytes), 3 gzipped tar files (total size 52,345 bytes), 45 SGF files with a total size of 85,019 bytes, 101 KML files with a total size of 4,325,445 bytes, and 2 EXE files with a total size of 38,340 bytes. It also uses 15 JavaScript files with a total size of 629,200 bytes, This leads to a total size of 98,942,433 bytes.


Creative Commons License

I, Frans hold the copyrights of this and all other pages on this website. For this website a Creative Commons License is applicable. You may not use this work for commercial purposes. I consider all computer programs to be copyrighted by me under the GNU General Public License, unless stated explicitly otherwise. All quotes (text and program fragments) from other sources are excluded from this, and should be considered as copyrighted by their authors.

(This space is intentionially left empty)