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.

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

Since the first of June, the Netherlands is no longer a Hochinzidenzgebiet with respect to COVID-19, which means we can enter the country without having a recent test that shows we are not infected. Conny and I took the opportunity to continue our search for border poles: We found the following poles:

Friday, June 4, 2021


Thursday, June 3, 2021

OfferZen package

At the end of the afternoon, I received a package from OfferZen for the Make Event on June 24.

AGL: A Grammar Language

A former colleague pointed me to the virtual meetup AGL: when a regular expression is not enough about AGL: A Grammar Language by Dr. David H. Akehurst on the Strumenta Community: A Software Language Engineering community organized by Federico Tomassetti, the founder of Strumenta. The AGL Editor Demo is impressive with respect to syntax colouring and help. Althought the author claimed that the AGL parser is interpreted at runtine, i.e. has no generate parser step, it actually has a just-in-time parser generator, which constructs an 'automaton' that is used to parse the input. AGL uses a GLR based parsing algorithm. I understand that the construction of the 'automaton' is rather complex, especially if you do it on the fly in a lazy manner. I am using a much simpler approach in IParse, which interprets the grammar directly (except for some regrouping to support left-recursion). Whereas the AGL parser does not back-track over the input, IParse does back-track over the input, but still proves fast enough as a parser for small languages.


Wednesday, June 2, 2021


At 17:12, I bought the book Monumenta 2011 written by Anish Kapoor and Jean de Loisy (in French and some English), edited by Jean de Loisy, and published by RMN Editions in 2011, ISBN:9782711858170, from charity shop Het Goed for € 1.50.

Tuesday, June 1, 2021


Sunday, May 30, 2021


Saturday, May 29, 2021


At 11:04:51, I bought the book Het markeboek van de Eschmarke edited by Frans J. M. Agterbosch and H.F. Mensink, written in Dutch and published by Stichting Genealogische Werkgroep Enschede in 2010, ISBN:9789074983273, from bookshop Broekhuis for € 27.50. I got the book Wat wij zagen written by Hanna Marleen Bervoets in Dutch and published by Stichting Collectieve Propaganda van het Nederlandse Boek in 2018, ISBN:9789059654334, for free as part of the Boekenweek.

Friday, May 28, 2021


I ordered some items from TinyTronics including a multimeter, a JYE Tech DSO150 (a simple oscilloscoop), three Nano V3.0 compatible boards, and two FM62429 ICs. The FM62429 IC is a two channel digital volume control. I am thinking to build an ADSR envelop generator and VCA from a Nano and a FM62429.


Thursday, May 27, 2021

GOGBOT Café - Welcome to the post-truth paradise!

I watched GOGBOT Café - Welcome to the post-truth paradise! (It could not pay my full attention to this.) It had the following items: Because I stopped watching the live stream, I do not know if any discussions were held afterwards.

Tuesday, May 25, 2021

Kidney Pools

In the morning, Conny and I went walking in the Lankheet estate. We walked through the water park and ended at the Kidney Pools, an art work by Jim Buchanan. The water park is created in an area where there used to be water-meadow and now is made into a constructed wetland (12 hectares of reed bedds) to purify water from the Buursebeek to be used in the forests of the estate. We entered the Kidney Pools through the round tunnel which is visible in the picture below. It somehow reminded me of the exit of the Eder Kemo age of Uru: Ages Beyond Myst.


This afternoon, I received a small PCB with a MCP4728 IC on it, which I bought online. The MCP4728 is a 12-bits, quad digital-to-analog converter. I am thinking about using it in combination with a small microprocessor to create a control voltage generator for a modular synthesizer. I could use the Adafruit MCP4728 library.


Monday, May 24, 2021

HEMA puzzle

In the past week, I continued working on the HEMA puzzle, which resulted in the animation/tool shown below. The large square is basically the same as the one shown before, except that green is used to show that there exists a solution between the two solutions that has less changes with both solutions, meaning that difference is implied by other transitions. Bright green is used to indicate that the changes do not overlap, meaning that there at least two intermediate solution and that the transitions are commutative. On the right it shows the colours of the pieces that change place between two consecutive solutions. The more colours are shown, the more pieces change place. On the sides of the large square, black lines select which solutions are selected. On the bottom it shows these solutions and the one before and after it, when applicable. The following keys can be used (after clicking in the animation) to manipulate the display: The text area below the animation shows on the first line the number of coloured squares on the right. This can be seen as a measure of the quality of the ordering of the solutions. The remaining of the lines are used to show the current ordering of the solutions.

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

Sunday, May 23, 2021

TkkrLab: Space 6

TkkrLab is moving to a new space: Space 6, which is at Marssteden 98. Anything mailed to 'NL 7547TD 14' should arrive. This weekend, I helped a few hours moving some things, mainly Samla storage boxes.


Saturday, May 22, 2021


Thursday, May 20, 2021


This morning, Conny and I went walking (again) in the South of the Lankheet estate. On our route there, we stopped to have a look at the Morspaa, marke stone with number 48.50-02. At 9:27, we visited the stone, which in 1712 was placed at a location about 17.5 meter to the southeast. At some point it disappeared underground. On September 4, 2003, it was dug up and placed at its current location. At 10:05, we found the Mallumseveenpaal, which is about 1.80 meter high and measures about 45 by 45 cm. In this regard, it is very similar to the Hellekampspaal we found on May 2. Not so strange, because it too is placed at the border of the provinces Overijssel and Gelderland. It is also at the border of the marke Langelo (to the north) and Mallum (to the south).


In the afternoon, Conny and I went to charity shop Het Goed to donate some goods. We also went in to have a look at the books and other things. I ended up buying four books and a jigsaw puzzle. At 15:39, I bought the following books:

Wednesday, May 19, 2021


Some weeks ago, The Royal Netherlands Academy of Arts and Sciences awarded Jaap van Dissel, the Director of the Centre for Infectious Disease Control at the National Institute for Public Health and the Environment (CIb-RIVM) the Academy Medal for the way in which he has approached his role as scientific advisor to the Minister of Health, Welfare and Sport and the Dutch Government's crisis team during the COVID-19 pandemic. Recently, The Independent Panel issued their Main Report in which they concluded that the COVID-19 pandemic could have been far less serious, In the report it says: On 30 January 2020, it should have been clear to all countries from the declaration of the PHEIC that COVID-19 represented a serious threat. China had reported upwards of 20 000 confirmed or suspected cases and 170 deaths. The number of countries to which the virus had spread and where local transmission was occurring was growing by the day. Even so, only a minority of countries set in motion comprehensive and coordinated COVID-19 protection and response measures — a handful even before seeing a confirmed case, and the remainder once cases had arrived. My impression is that the CIb-RIVM did not take the PHEIC of the WHO very serious. Even when several weeks later the first cases were reported in the Netherlands, it felt like they were playing it down, afraid to cause panic. It seems that for the Academy the COVID-19 pandemic only started at the end of March 2020 and did they did not take into accound his role in the slow responds of the Dutch Government to the January 30 declaration of the WHO.


At 17:27:18, I bought the book Theo van Doesburg, schilder en architect written by Evert van Straten in Dutch and published by SDU in 1988, ISBN:901205902X, from bookshop Broekhuis for € 12.50.


Monday, May 17, 2021


Sunday, May 16, 2021

HEMA puzzle

In the past weeks, I have been working at the HEMA puzzle that I started looking at on October 27, 2017. Some weeks ago, I noticed that one solution for the puzzle that Conny had found could be changed into a number very similar solutions by pair wise rearranging of pieces. This raised the question about what would be the shortest arrangement of the 89 solutions, such that consecutive solutions had the largest number of pieces in common. I developed a program for finding it. The shortest sequences which was found by the program is:

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


The diagram below shows the similarity between solutions in the order the solutions are shown below. The redness indicates the extend that pieces that are not exactly at the same position and orientation, do overlap.

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

It seems you can conclude from the diagram that there are only five solutions that cannot be changed in another solution by swapping two pieces. There also seems to be three large groups of solutions that have three groups of two pieces that can be swapped.

Saturday, May 15, 2021

Radio Kootwijk

After having visited my mother, Conny and I visited Radio Kootwijk. We walked around Building A and when we saw dark clouds approach, we decided to go home and not search for a possible border pole of the municipality of Apeldoorn.

Friday, May 14, 2021


Wednesday, May 12, 2021


Tuesday, May 11, 2021

BrainFuck program for stage0 seeds

In the past week, I created a BrainFuck generator, which generates BrainFuck from a relatively simple programming language, for the purpose of writing a BrainFuck program that could replace the seeds for the oriansj/stage0 github repository. This BrainFuck basically implements the command line:
sed 's/[;#].*$//g' $input_file | xxd -r -p > $output_file
mentioned in the README.md. I extended my BrainFuck interpreter / code generator with the -eof0 command line flag for returning 0 when end of the input has been reached. I used the following two command to test it:
./bf -eof0 hex0.bf <bootstrap-seeds/POSIX/x86/hex0_x86.hex0 >hex0-seed
cmp -l hex0-seed bootstrap-seeds/POSIX/x86/hex0-seed
Where hex0.bf contains the BrainFuck program generated by the BrainFuck generator page. I know that it does really solve the basic problem of generating a binary without using a binary that one cannot trust 100%, but it does give an alternative for the sed and xxd commands or using. Even using a BrainFuck interpreter written in BrainFuck of a BrainFuck to x86 executable compiler written in BrainFuck cannot solve the fundamental trust problem.

Fixing carriage-return line-feed

This evening, I noticed that some of my files of my website contained other line ending than the windows carriage-return line-feed combination. I wrote a small program to fix these. With no command line switches it just reports the number of errors in each file that contains incorrect line endings. The command line switch -l will also report the lines and the combination with which that line ends. The command line switch -f will fix all files mentioned on the command line. This does require a directory org to be present, to which the original files will be copied.

Monday, May 10, 2021


Sunday, May 9, 2021


June 2021
May 2021
April 2021
March 2021
February 2021
January 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 1001 HTML-files with a total size of 23,245,337 characters, having 49,689 internal links and 12,306 external links to (more than) 4,066 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 1294 JPEG images (total size 57,239,387 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), 11 PDF files (total size 12,472,212 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, 125 KML files with a total size of 5,047,038 bytes, and 2 EXE files with a total size of 38,340 bytes. It also uses 17 JavaScript files with a total size of 879,564 bytes, This leads to a total size of 114,795,902 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.