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.

Wednesday, July 28, 2021


Sunday, July 25, 2021

Doubly linked list

A double linked list is a data structure where each element in the list has a pointer to the next and to the previous element. A clever way to implement it (as the Standard Template Library does) to represent an empty list by a single (hidden) element and to make the next and previous elements circular, meaning that the previous pointer of the first element and the next pointer of the last element point to the hidden element. If doing so, the procedure to add an element to the list is the same no matter where it is inserted. It is also possible to remove an elment from a list, without having to know the actual list the element belongs to. I noticed that the LinkedList<T> Class does not support such an operation. However, it is possible from an element (represented by LinkedListNode<T> class) to find the list it belongs to and from there call the Remove method. I looked at the source code and it affirms my suspicion about how it is implemented.


Saturday, July 24, 2021


There are some flowers in our magnolia but only a few have fully opened.

Thursday, July 22, 2021

Sunset and moonrise

The last two days we saw a red sun set through the trees during our evening walking. This evening, we decide to leave half an hour later. The sky was clear and we walked to a spot (at the end of road called Helweg near the N35 highway) were we could observe the sunset. The sun was rather bright when it set and not red as we had hoped. Just right when the sun was setting, we noticed that the moon was rising on the opposite side. I took some picture. Below a crop of one of these.

Monday, July 12, 2021

Explosive increase of infections

In the last weeks, we saw an explosive increase of COVID-19 infections, especially due to the delta variant, here in the Netherlands. It is primarily among young people with ages between 10 and 30. It is probably caused by young people having been on holiday and super spreader events. Here in Enschede, about 200 people were infected during one party with about 600 people who had to show a test proving that they tested negative. To me it seems that this can only be explained by aerosol transmission. This evening, I heard Marc Bonten, member of the Dutch Outbreak Management Team and working at National Institute for Public Health and the Environment, say that he does not know if aerosol transmission played any role. So far the number of hospital admissions has not increased. Last Friday, our government took many measurements to redude the spread after having lifted almost all restrictions two weeks ago. Some have said that the governments favours holidays abroad above festivals at home.

Friday, July 9, 2021


At 09:57:18, I bought the book DRIVE: Train je stoïcijnse mindset written by Mark Tuitert in Dutch and published by Maven Publishing in 2021, ISBN:9789493213166, from Van Stockum, Den Haag for € 20.00. At 10:03, I bought the following two book from The American Book Center, both for € 9.99:

Fake Me Hard

In the afternoon, Conny and I visited the exhibition Fake Me Hard at AVL Mundo.

Thursday, July 8, 2021

Graduation show

Conny and I drove to The Hague, where we went to the Graduation show exhibition at Royal Academy of Art. (Due to the COVID-19 restrictions, we did not see the whole exhibition.) I found the following graduates noteworth (in the order that I encountered them or their works): There was no catalogue available. Afterwards, we walked through the city and paid visits to the bookshops: Paagman and American Book Center before checking in at our hotel. In the evening, we had a very nice dinner at The Raffles, which servers authentic dishes from West Java. We had the Menu Bandung and enjoyed it very much. We talked about what brought us to The Hague with one of the servants and he told use that his mother, Judith Werdmüller von Elgg, was an artist as well.


Around half past nine in the evening, Conny and I left to the beach in the hope to see the sunset. We arrived there one minute before ten and saw that there were clouds on the horizon (aboge the sea). When we walked over the dune, we say a half red sun on the horizon (below the clouds). Conny managed to take some pictures. (A crop of one of these is shown below.) After that we walked along the waterline on the beach towards the North. Twice, I walked into the water, the second time till all little over my knees. I made it to the next sandbank and watched the waves break. The sea was rather calm and the waves not very high.

Sunday, July 4, 2021

Primes: A Software Drag Race

This afternoon, I ran Primes | A Software Drag Race on FJF3. It is a test in comparing the performance of various algorithms to calculate primes in various programming languages. Below a summary of my results are given, where I have only included the fastest solution for any programming language, except for C, because the fastest C program in the list, has a large table included that seems to be generated with the help of another program, which I consider a way of cheating. I have been thinking about analyzing the various program and see how they could be generated from one and the same source.
  1  C               3149.40222
  8  Rust            1279.77840
  9  C               1199.45175
 10  Zig             1145.90145
 12  C#              1119.53507
 13  assembly        1119.00000
 16  C++              950.11411
 19  Crystal          926.24828
 21  Julia            888.08012
 23  Java             845.20000
 32  Nim              591.53369
 34  D                528.40000
 35  Go               512.97363
 40  Fortran          451.50970
 43  F#               422.94730
 44  Basic            397.72046
 46  V                360.20000
 48  Python           265.76212
 51  AssemblyScript   250.22493
 52  Pascal           228.60000
 55  COBOL            203.40000
 56  Scala            165.90046
 57  Nodejs           143.65634
 59  Ada               94.66200
 60  Swift             89.45301
 61  Dart              77.81778
 62  Ocaml             75.75991
 66  Haxe              63.99677
 68  TypeScript        43.39132
 69  Ruby               9.41546
 70  PHP                8.34428
 71  PostScript         7.30215
 72  Wren               6.02375
 73  Lisp               5.82991
 74  Mixal              3.57995
 75  Smalltalk          3.54191
 76  Perl               2.79955
 79  R                  0.95932
 80  Tcl                0.69192
 81  Powershell         0.60795
 82  SQL                0.59701
 88  Octave             0.06203
 89  bash               0.04762
 90  Lua                0.01010

Wednesday, July 1, 2021


At 13:23, I took a picture of the self watering plant, which is shown below. This morning, I noticed that the glass has some lines caused by calcium diposit, which clearly indicates that the pump is working and giving the plant water. I put the ESP8266 module, the moisture sensor board and the TOP31C transistor (with connecting wires) inside a round tray we got with a taskaway dish and put the plant pot on top of it. On the right side of the pot you can see the wires running to the moisture sensor.

Wednesday, June 30, 2021


I recieved the book Commissioned: Sixty years percentage for art programme at the Dutch government building agency edited by Hans van den Ban, written in English, published by Sun Uitgeverij in November 2011, translated by Peter Mason from In Opdracht, ISBN:9789461051639, which I had bought on Monday, June 28, 2021 at 18:08 from GMSbooks for € 11.00.

Tuesday, June 29, 2021

Self watering plant

This weekend, I already installed the self watering plant in the windowsill of the kitchen and I saw how it pumped water because the tube connecting the glass with water and the plant was filled with water. When I refilled the glass, I noticed that the plant pot was overflowing due to the communicating vessels effect. I used to tube to drain the water and placed the put a little higher than the glass, such that it could not happen again. Since than, I have not seen any evidence of the pomp working again. I also installed a 24 hours mechanical electric timer switch to power the device only between seven and eight in the morning. The Arduino code I am using, boils down to:

int secToWait = 0;

void setup() {
  pinMode(A0, INPUT);
  pinMode(D7, OUTPUT);
  pinMode(D6, OUTPUT);

void loop() {
  if (--secToWait <= 0)
    secToWait = SEC_TO_WAIT;

    digitalWrite(D7, HIGH);
    int analogValue = analogRead(A0);
    digitalWrite(D7, LOW);

    if (analogValue > 500)
      digitalWrite(D6, HIGH);
      digitalWrite(D6, LOW);

Some little basil sprouts already have appeared.


Sunday, June 27, 2021

Visiting all MUPIs

Today, I biked the the route (in Google Maps I created the day before yesterday. I followed the route by heart and I did not miss any MUPI. I came across two locations where the road was broken up and where I had to bike over the pavement.

Saturday, June 26, 2021

AKI Finals 2021

This morning, I went to the AKI finals 2020/2021 exhibitions at the AKI building. I found the works of the following graduated students noteworthy (in the order I encountered them):

At 11:35, I bought the book Contrast: AKI 2020 Catalogue + AKI 2021 Catalogue edited by Johan Visser, written in Dutch and English published by AKI Academy of Art & Design on Tuesday, June 25, 2019, ISBN:9789075522419 for € 15.00.

Friday, June 25, 2021

AKI MUPI route 2021

In the past week, I worked on finding a route to bike along all the MUPIss that contain a picture of a work by one of this years graduates of the AKI. I implemented the algorithm from last year in the TSP solver page using JavaScript. With this, I established a shortest route and from this shortest route, with some small modifications, I created a round trip using Google Earth along all the MUPIs where you can start at any place. (Open route in Google Maps.)

Thursday, June 24, 2021

Graduation presentation

This morning, Annabel gave her graduation presentation (online) for her Industrial Product Design major. She got an eight (on a scale of one to ten) for her graduation project, thesis, and presentation. She came up with a clever solution for an interesting engineering problem and I am proud of her achievement.

Self watering plant workshop

In the evening, I joined the self watering plant workshop organized by OfferZen Make in cooperation with TkkrLab. I had not done the preparation of the event. And I also had some problems interpretting the schematics in the documenation, but I managed to get the hardware setup working (which still needs some programming) and even build the Rubber Ducking Brick Set (by Tico Mini Bricks).

Saturday, June 19, 2021


Friday, June 18, 2021


Thursday, June 17, 2021

33.6° Celsius

The temperature at Twenthe Airport went up to 33.6° Celsius, which breaks the previous record of 31.3° for the temperature on this date in 2002. The predicted temperature according to the prediction at the start of the day, was 34.0° Celsius. This was the first national tropical day of the year.

Wednesday, June 16, 2021

30.2° Celsius

The temperature at Twenthe Airport went up to 30.2° Celsius, which breaks the previous record of 29.9° for the temperature on this date in 1966. The predicted temperature according to the prediction at the start of the day, was 29.4° Celsius. This was the first local tropical day of the year.


Monday, June 14, 2021


Sunday, June 13, 2021


Conny and I visited Hunenborg, a ring walburg along the Almelo-Nordhorn Canal near Volthe in the municipality of Dinkelland in Overijssel. The whole consists of the wooded remains of a main castle and an outer castle that is barely visible. The high burg is an oval-shaped site of approximately 100 by 150 meters with a moat around it. On the outside of the moat is a small elevation, on the inside an earthen wall has been built. We parked the car on the North side of the canal and walked through the burg into a farm field. From this we walked a long a road back to the canal. On the way home, we also stopped near Oldenzaal to search for some Marke stones. At 13:08, we found the marke stone called 'Steen in het veld' (20.24-02). We also found out that the other marke stones in the area are not accessible.

Saturday, June 12, 2021


This afternoon, I went to have a look at the exhibitions at Concordia. I first watched the exhibition Ik ben Ik (Dutch for: I am I), which is aimed at children. But I still found it interesting. I was not so much interested in the exhibition upstairs. The exhibition André Smits: Artist in The World was held in the hallway. Both sides of the walls were filled with a drawing by André Smits, a traveling artist who takes pictures of artists. His website is called Artists in the World: Never Ending Art Trip. The wall also included names of local artists and one work from each of them. I saw a work by Willemijn Calis. I found the work by Wout Zweers quite interesting. It took me some time to figure out how he had made it: it is a kind of magic trick.

Thursday, June 10, 2021

Solar eclipse

At 12:22, Conny and I went outside to have a short look at the solar eclipse, which at our location was only a partial eclipse with about 17% cover around that time.

Wednesday, June 9, 2021


I realized I have made a mistake in the sequence equivalence definition. It should not be about finite sequences, but about all infinite sequences. And I believe it is sufficient for all cyclic directed paths. This results in the following definitions:
CyclicDirectedPaths(G in DirectedGraphs)
= { (v[1], .., v[n])
  | ForEach i in NatNum
       (1 <= i and i < n implies (v[i],v[i+1]) in G."E")
    and (v[n],v[1]) in G."E"
Sequences(G in LabledFiniteDirectedGraphs)
= { (G."L".v[1], .., G."L".v[n])
  | (v[1], .., v[n]) in CyclicDirectedPaths(G."G")
(I have to admit that I am still wrestling with the syntax and the semantics I am using in these specifications. The idea is that it should be close to some mathematical notations, but these notations are often hard to interpret. The equal sign in the above notation can both mean equality and definition depending on the context. Maybe it is better to use a more explicit syntax for definition using the keyword define and at. The same is true for the set notation with the vertical bar.) If a directed labled graph has vertices with no outgoing and/or no incoming directed edges, those vertices can be removed without affecting the sequence equivalence. Probably another technique to find a smaller but sequence equivalent graph is to find a mapping between vertices that can be joined together with their incoming and outgoing edges. Of course, the question is whether this always leads to a minimal solution. Another question is whether there always exists a unique minimal solution or not.

Tuesday, June 8, 2021

Product of directed graphs

I am thinking about a puzzle problem and want to find an algorith to solve a certain problem. I am going to make an attempt to formalize the problem. It is related to directed graphs where the vertices are labled with values from a fixed alphabet. Lets start defining the set of all directed graphs:
= { { "V" : V, "E" : E }
  | V in FiniteSets and
    E subset { (v1, v2) | v1 in V and v2 in V }
To label the vertices, we first need to define the set of all functions over a given domain:
FiniteFunctionsForDomain(D in FiniteSets)
= { F | size F = size D }
  where F = { { d : c } | d in D and c in Any}
With this we can define the set of all labled directed graphs:
= { { "G" : G, "L" : L }
  | G in FiniteDirectedGraphs and
    L in FiniteFunctionsForDomain(G."V")
Now we can define a kind of product of two labled directed graphs, like:
Matching(G1 in LabledFiniteDirectedGraphs,
         G2 in LabledFiniteDirectedGraphs)
= { "G" :
     { "V" : { (v1,v2)
             | v1 in G1."G"."V" and v2 in G2."G"."V" and
               G1."L".v1 = G2."L".v2
       "E" : { ((v11,v12), (v21,v22))
             | (v11,v21) in G1."E" and (v12,v22) in G2."E"
    "L" : { (v1,v2) : G1."L".v1 }
  } in LabledFiniteDirectedGraphs
I would like to define something as sequence equivalence, where the sequences of lables that can be produced by any walk over a labled directed graph is equal to that of another graph. First we define the set of all directed paths of a directed graph and with this we define the sequences:
DirectedPaths(G in DirectedGraphs)
= { (v[1], .., v[n])
  | ForEach i in NatNum
       (1 <= i and i < n implies (v[i],v[i+1]) in G."E")
Sequences(G in LabledFiniteDirectedGraphs)
= { (G."L".v[1], .., G."L".v[n])
  | (v[1], .., v[n]) in DirectedPaths(G."G")
Now we can define what it means that two graphs a sequence equivalent:
SequenceEquivalent(G1 in LabledFiniteDirectedGraphs,
                   G2 in LabledFiniteDirectedGraphs)
= Sequences(G1) = Sequences(G2)
Now, one could argue that such a test is impossible to execute, because one would have to compare an infinite set of sequences, but I believe it is sufficient to test this for all sequences that are one longer than the largest number of vertices of one of the two graphs. Maybe, there are even beter ways to check the equivalence, for example, if one could construct a correspondance relationship between the two set of vertices and somehow prove that the graphs are isomorphic with respect to the lables of the vertices. The algorithm, I am looking for, is an algorithm that finds a smallest sequence equivalent labled directed graph of given labled direct graph, where smallest is defined by the number of vertices.


This afternoon, Conny and I walked along the dirt road Vrijdijk in Denekamp and whicj lies along the border with Germany. The name Vrijdijk (Dutch for free dike) refers to the fact that the Count of Bentheim and the Bishop of Utrecht at one point declared the area a no man's land that should be left untouched. We found the following border poles:

Sunday, June 6, 2021

Border poles


August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
-- contact --




Art works
Useless lists


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


Hamilton cycles
cutting sticks
Califlower fractal




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:

Privacy statement

This is a static website with no contact form and no way to add comments. It has no advertisements and no trackers. It does not use cookies. I am not using any method to analyse traffic to this website nor keeping any logs. I am not collecting personal data besides what is published on this website. If you want me to remove any personal data (including your name or link to your website), please contact me by above email address and I will make all effort to remove the data as soon as possible. I am private person and this website does not serve any economic purpose. All cost for maintenance are paid by myself. I do not receive any payments. The website is ad-free and does not have sponsored links.

Site statistics

If I did not count wrong, this site consists of 1004 HTML-files with a total size of 23,269,467 characters, having 49,813 internal links and 12,372 external links to (more than) 4,076 websites. (At least 745 of the external links are broken.) Furthermore, it contains 221 C/C++ program files with a total size of 4,867,089 characters, 9 MySample scripts with a total size of 75,004 characters, 3 PASCAL program files with a total size of 35,259 characters. and 2 Python program files with a total size of 3,764 characters. There are 67 text files with a total size of 739,138 characters. With respect to images, this site containts 1297 JPEG images (total size 57,440,636 bytes), 146 GIF images (total size 3,765,046 bytes), 94 PNG images (total size 2,280,364 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), 10 PDF files (total size 12,337,569 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, 127 KML files with a total size of 5,096,658 bytes, and 2 EXE files with a total size of 38,340 bytes. It also uses 18 JavaScript files with a total size of 900,911 bytes, This leads to a total size of 114,744,859 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.