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.

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 <~/git/bootstrap-seeds/POSIX/x86/hex0_x86.hex0 >hex0-seed
cmp -l hex0-seed ~/git/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

Suddenly warm

Yesterday morning, the temperature dropped as low as -1.3° Celsius (and -5.7° Celsius at ground) level at Twenthe Airport, while today it went up to 27.0° in the afternoon and remained above the 20° for the rest of the day, while in the past weeks the temperature but barely reachted 15°. This might also explain why today, there were still some flowers on our magnolia. In the afternoon, Conny and I went walking in a forrest just North of the area where we walked last Sunday. On the way there, we stopped near triangulation point 340331 and around 12:52 we succeeded in locating it just below the surface. After having it photographed we covered it up again. When we rested on a bench during our walk, we say a bee hover over the ground and than started to dig at some spot. After about a minute it had disappeared under the ground not leaving any visible hole. At home we created a small kitchen garden from the germinating seeds that Conny got from the supermarket Albert Heijn as MoestuinMaatjes.


Tuesday, May 4, 2021

Using Brainfuck for bootstrap

Yesterday, I came along a mentioning of live-bootstrap on Hacker News, which also lead me to the Bootstrappable builds website. I also found the Bootstrappable builds article on LWN.net. This morning, I spend some time digging into it, trying to understand the live-bootstrap GitHub reposity. I actually ended up looking at the oriansj/stage0 GitHub reposity in particular the hex0_x86.hex0. I am a little surprised that it is opening files as specified on the command line, instead of simply reading from the standard input and writing to standard output. According to bootstrap-seeds README.md file, one way to process the hex0_x86.hex0 file is using the sed UNIX utility to remove the comments and the xxd UNIX utility to change the hexadecimal pairs to raw bytes. However, the README.md also states (in capitals): "NEVER TRUST ANYTHING IN HERE". Because, yes, you have to trust the implementation of sed and xxd. I wondered whether Brainfuck could be of any help in this area or as a basis for a bootstrap environment, because it is a very simple language for which a large number of interpreters in many different languages have been implemented. I even spend some time working on a C program to generate Brainfuck code as I did before for the Brainfuck interpreter written in Brainfuck.

Addition May 6: In a comment on Hacker News, Kragen Javier Sitaker writes that he did consider Brainfuck for a Universal virtual computer (UVC) and bootstrapping a compiler from a tiny compiler using Brainfuck.

Sunday, May 2, 2021


Conny and I went walking this afternoon. But before we started on our walking trip, we first visited a marke stone and looked for a triangulation point. At 13:36, we visited the marke stone Steenen paal bij de Nijkerksdijk. It actually is not a marke stone, because the border of the two marke Haaksbergen en Honesch and Langelo runs to the East of it, but a stone that marked the border between the border of the provinces Overijssel and Gelderland as it was established in 1775. At 13:42, we searched for triangulation point 340331. On the side of the road we found a sign to locate the triangulation point stating the number 340 (on top) and 331 (on the bottom) with the number 2,7 in the middle. The 2,7 seems to indicate the distance to the actual triangulation point. It was not clear in which direction we should search. At home, I concluded from some pictures, which I only noticed then, that the point was close to the road and just below the surface. We probably have stood on top of it. The first part of our walking trip was along a brook called Koffiegoot (coffee gutter), which probably was called like this because of its brown colour. At about 14:10, we found the marke stone Hellekampspaal, which is rather large, about 170 cm tall and measuring 48 by 48 cm wide, and also served to mark the border between the two provinces and was placed there after a long running border conflict between 1611 and 1775.

Friday, April 30, 2021


Wednesday, April 28, 2021

End of curfew

Today, the curfew ends together with some other restrictions, one of them being that you no longer have to make reservation to visit a non-essential shop. On my way home, I visited charity shop Het Goed. There were some long queues before some large retail shops this afternoon. It is a little strange that some restrictions are lifted, because there is no real sign that the number of infected people is dropping. The number of people at the ICU of hospitals in the Netherlands remains high. We are still at the top op the fourth wave were the numbers are higher than during the second and third wave. Yesterday was Koningsdag (King's Day) and many people went to the city centers to celebrate it. It seems that people no longer view COVID-19 as a serious problem and are acting like it.

Saturday, April 24, 2021

Witte Veen

This morning Conny and I went walking in Het Witte Veen (The White Peat), a peat and forest area near the German border. At, 9:01, we visited the triangulation point 340204, which is on a stone. At 10:18, we visited triangulation point 340329, which is a bolt on a small building. At 10:35, we visited triangulation point 359306. Not sure if we actually saw it, because some note seems to suggest it is located underground.

Thursday, April 22, 2021

GOGBOT café, яєαℓιту ιѕ ѕуηтнєтι¢

I watched this GOGBOT cafeé on YouTube. It has talks by: Followed by video screening of Kesson live coding + AI generated visuals based on a sound recording of Chebedajha (aka Jeannetta Petrik).

Tuesday, April 20, 2021

Groot Peter

Conny and I walked to the shopping center called Winkelcentrum Zuid to visit some shop and way home we went to see the marke stone Steen bij Groot Peter (33.34-05). This a replica that is placed on September 16, 2016 in the North East corner of the intersection of Wesselerbrinklaan (runing North-South), Het Bijvank (on the West). and Het lang (on the East). The original marke stone was in the middle of Wesselerbrinklaan just South of the intersection . Behind the stone (as seen from the center of intersection) there are a number of oak trees that belonged to a farm called Groot Peter. The kadaster of 1832 shows a farm called Peters at that location. Often when a son of farmer would start a new farm near the farm of his father, the names of the farms were prefixed with the words Groot (big) for the original farm and Klein (small) for the new farm. This is probably how the name Groot Peter came into existence. The adjective Klein and Groot are also found in surnames from people coming from this region, because for a long time people were named after the farm where they came from instead of with a surname or patronym.


Monday, April 19, 2021

Hexagon puzzel

I gave Conny a small wooden puzzle as a present. In the Netherlands it is sold under the name Hexagon puzzel. It is produced in China, Yunhe County, Lishui City. The product model is XC-808 with the name Interesting Changeful Puzzle. She wanted to know how many solutions it had. After some wrong tries (including not realizing that the pieces could not be used upside down), I arrived at the conclusion that there are 4702 solutions excluding solutions that are the same with respect to rotation of the whole solution. I took the btc24_to_ec.cpp program, which I developed for the Beat the Computer No. 24 puzzle, and made it into a more generic program for puzzles on a hexagon grid (with either hexagons or triangles), calling it hexagon_to_ec.cpp. The command line arguments 1 --flat need to be used for the Hexagon puzzel. The output is fed into an exact cover solver and postprocessed with a small program that makes a letter string of each solution. Below all the solutions are shown in a random manner or can be traversed using the buttons. (The 'a' piece is always placed in the same orientation.)

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

Sunday, April 18, 2021

In full bloom

Today, finally, all the flowers of our magnolia opened. It is almost three weeks ago that the first flowers opened. The temperature has been quite low for the time of the year in recent weeks, even dropping below zero degrees Celsius, causing some of the flowers to turn brown. But this afternoon all the flowers had opened and you could smell the nice scent of the magnolia in the garden.

Saturday, April 17, 2021


Conny and I went walking through the adjecent forests Snippert and Het Haagse Bos. At one point we came to a location where the path was submerged in water and we wondered whether there was a way to get to the other side when there appeared a woman on the other side, who wanted to get to our side. After some searching, we found signs of a small path leading around the area, which seemed to have been used for some time, because at one place there were three wooden trunks laid side by side over a water filled ditch. During our trip we found two two marke stones:

Thursday, April 15, 2021


I have been thinking about genealogy the last days. Yesterday evening, I spend some time adding some data to WikiTree based on some data from the Dutch resource site: WieWasWie. First of all, I realized that the WikiTree is American centered because, for example, the concept of a middle name is not universal. Here in the Netherlands, we do not have the concept of a middle name. Someone can have one or more firstnames, where having four firstnames is not rare. (Not to talk about a generation name in some Asian countries.) The second thing I realized is that although it is possible to add sources, it is not a source based approach. During the night, I thought about an algorithmic approach to genealogy, where the 'family tree' is constructed based on a collection of records. This morning, I spend some time transcribing the marriage certificate of Leonardus van Bragt and Margaretha Dorothea Faase. The result of this is:

Where I have marked all the handwritten parts in italics. The ordinal indicator in the certificate has two dashes instead of one in the above transcription. I have used the Double Low-9 Quotation Mark as the two commas that indicate a continuation with the next line. Something that nowadays is usually done with a dash. This already shows some of the problems with transcribing documents. And, so far, no one has verified the transcription. In a distributed information system, you would at least have some mechanism to sign a transcription to indicate who did the transcription and who reviewed it with digital signatures. And there is also the problem that there could be multiple interpretations of the document and that one would like to record variants.

Next, I spend some time thinking about a way to represent all the data from the above marriage certificate in some form of JSON. Most of the information is already included in the page, but, for example, the information about the witnesses is not included. The extra information could be used to calculate the probability that two people mentioned in different records are indeed one and the same person. The information is also not in a computer readable form, although, I expect that it is retrieved from some kind of database with a welldefined structure. It would be nice if there is some kind of REST API to query this database. Below an example of how the information in the marriage certificate could be represented in a way that could be processed by a means of an application that constructs a family tree.

{ "source":{
    "Document type":"BS Huwelijk",
    "Institution name":"Noord-Hollands Archief",
    "Institution place":"Haarlem",
    "Collection region":"Noord-Holland",
    "Registration date":"07-05-1890",
    "Certificate place":"Schoten"},
           "name":"Leonardus van Bragt",
              "name":"Willem van Bragt",
              "name":"Maria Elisabeth Alders",
        "bride": {
           "name":"Margaretha Dorothea Faase",
               "name":"Jacob Faase",
               "name":"Petronella Catharina van der Veld",
            "name":"Franciscus Faase",
            "relationship":{"type":"uncle", "of":"bride"}},
            "name":"Johannes Franciscus Faase",
            "relationship":{"type":"uncle", "of":"bride"}},
            "name":"Cornelis Hendrik van Looij",
            "relation":{"type":"uncle through marriage", "of":"groom"}},
            "name":"Johannes Alders",
            "relation":{"type":"uncle", "of":"groom"}}]}}
      {"person":"Franciscus Johannes Faase", "signature":"bd078fe...."}]}

As is often the case with a more formal approach to solving a problem is that it requires a lot of more effort (and a different kind of mindset) than a more informal approach. Also it requires a greater attention to details of the people involved. And we should not forget that reality is always more complex than one thinks at first and that it is thus very difficult to develop a formalism which covers all cases.

Wednesday, April 14, 2021


Tuesday, April 13, 2021


Sunday, April 11, 2021

Het Haagse Bos

Because last week, the German governments demands all negative test for COVID-19 for people crossing the border from the Netherlands, Conny and I decided to halt our search for border poles and instead search for some marke stones and go for a walk through the forests known as Het Haagse Bos where a marke stone can be found. We found the following marke stones: The last stone is there were the marke Lonnekermarke, Lossermarke and Luttermarke meet.

Wednesday, April 8, 2021


After I came home from work, I worked on a program (at first based on hexagonnum.cpp) to calculate the number of convex polygons that can be constructed from a given number of equal sized, equilateral triangles. When it did produce a sequence that looked correct, I entered it in On-Line Encyclopedia of Integer Sequences. To my surprise, it did not return any results. Instead of suggesting it as a new sequence, I took the advice to first search the encyclopedia. I came along sequence A096004: Number of convex triangular polyominoes containing n cells, which looked like describing what I had calculated. When I compared it with my own sequence, I discovered that the value for fifteen triangles/cells was different. After some debugging, I discovered a bug in my program and after fixing it, it returned the same sequence.

Wednesday, April 7, 2021


There was about 1cm of snow on my car this morning. The roofs of houses, plants and some place on the ground were also covered with snow. In the past days, there were a lot of winter showers with snow and hail alternating with sunshine, several times even at the same time. On Monday evening and Tuesday morning, there was also some snow on roofs and some other areas. Todaym we also had some rain showers, but later in the afternoon, again some hail.

Monday, April 5, 2021


During the Easter weekend, Conny and I went to Voorthuizen where we rented hotel room at holiday part De Boshoek. We arrived on Friday after we had searched for 'border stones' of the city Apeldoorn. In 1750 the border of the municipality of Apeldoorn was established with wooden poles. Around 1794 the 26 wooden poles were replaced with stone poles. Most of these stone poles have since been removed. Along the entry roads, stone name signs of the city have been placed. It is these name signs, on the East side of the city, we have searched. Conny used the report (in Dutch) Speurtoch naar grenspalen and Google streetview to record the location of these in Google maps. Later, I discovered that some of these poles and also some others are indicated on various topographic maps.

On Saturday, we visited the Green Cathedral, which I visited before on August 25, 2016. We also walken around castle Geerestein just North of Woudenberg.

Yesterday, we continued our search for the name signs. This time on the West of the city. We also entered the crown domain Het Loo where we found another name sign just besides one of the original border stones with the letter A and E on opposing sides. We continued walking through the woods, which we felt were rather boring. Today, we decided to go home early and not visit any places on the way home, because rain, wet snow, hail, thunder and strong winds were predicted. We did see some wet snow on the way home.

Thursday, April 1, 2021

De Poppe

Conny and I continued our search for border poles. We walked in an area called De Poppe. We encountered the following border stones:

Wednesday, March 31, 2021

24.4° Celsius

The temperature at Twenthe Airport went up to 24.4° Celsius, which breaks the previous record of 23.7° for the temperature on this date in 2017. The predicted temperature according to the prediction at the start of the day, was 21.8° Celsius.

Tuesday, March 30, 2021


Monday, March 29, 2021

Idoneal numbers

On February 5, 2019, I wrote about hexagon numbers. Today, I discovered that the numbers I found, are sequence A229757 in the On-Line Encyclopedia of Integer Sequences. With the sequence, there are references to two publications: Reguläre Dreieckpflasterungkonvexer Polygone.and Tiling Convex Polygons with Congruent Equilateral Triangles by Eike Hertel and Christian Richter. The second paper is an extension of the first one with respect to proofs. The numbers for pentagons the numbers are related to the Idoneal numbers. It is not known if there are more idoneal numbers than the one that are known, but there are no more if generalized Riemann hypothesis is true. As a pentagon can often be changed into a hexagon by removing, one would expect that both sequence match with an offset of one. That is indeed the case for many numbers, but not all.

First two flowers

The first two flowers of our magnolia have opened today.

Sunday, March 28, 2021

Revisiting Coevorden

Conny and I revisited Coevorden to look for border poles we had missed on previous visits after I created a GPX file with waypoints using the ArcGis viewer and downloaded this (through Google Drive) to OsmAnd on my Galaxy Tab 3 tablet. The weather was a bit rainy for most of the time. We had brought some devices to remove weeds and brambles. We encountered the following border poles: We searched for about a quarter of an hour for pole 133-III, cutting away weeds and brambles, but failed to locate it. To our horror, the area where poles 145 to 146 stood is now a construction site with a large warehouse like building surrounded by parking lots (still under construction). It seems the poles have been removed. We also searched for poles 151-VI (D) and 152-I (N). It looks like these two have disappeared.

Saturday, March 27. 2021


Wednesday, March 24. 2021


Tuesday, March 23, 2021

Border changes around Losser

I continued working on a KML file (to be viewed in Google Earth) about the border changes just North of Losser. I spend a long time determining the position of the border poles 8 to 11 using the available data. The positions I have chosen, are inferred from cadaster data from now and 1832, do not perfectly match with the positions I calculated from the positions of the assurance stones and the map by Otto Koolmann. They are about seven meter off. My GPS measurements of the locations are probably not very accurate. The possibility that the border poles have been moved between the two dates, should not be excluded, because it is known that the poles were washed away several times by the meandering river. I do not know if it is possible to get more accurate GPS locations (without having to spend hunderds of Euro's). I found the ArcGis viewer where you can get GPS coordinates on a recent topographic map. It did show a dot at the location of one of the assurance stones. The GPS locations where close to the one that I measured myself. I used the viewer to adjust the GPS coordinates of some of the border stones along the current border. The KML file contains the following folders: Besides the folders there are also some border poles that were used during periods before and after the annexation.

Sunday, March 21, 2021


This morning, I was looking through the book Grensgang: een historische reis langs de randen van Overijssel (in Dutch) written by Jan ten Hove (starting from the back). It is about the history of the borders of Overijssel described as a trip along the border. On page 149, I found a reproduction of a drawing by Otto Koolmann about the 'Verzekeringsstenen', which could be translated (from Dutch) to English as 'assurance stones'. They are at a place where a turn of the border with Germany was established in the middle of the river Dinkel. To define it, on each side of the river two poles were placed, where the crossing point of those poles defined the exact position of the turn in the border. However, the river, as most rivers, was meandering, and over time some of the stone poles, (mostly on the German side) were washed away. To overcome this problem, four new stones were placed at a larger distance of the river as kind of assurance. Hence the name of these poles. We realized that the two unmarked stones we found last Thursday might have been two of the four verzekeringsstenen. We also read some account of some unmarked stones on the other side of the river. This afternoon, Conny and I decided to have a closer look and try to determine the location of the stones with GPS. We encountered the following stones and border poles: At home, I used the coordinates to locate the position of the orginal four border poles (with the numbers 8, 9, 10, and 11 of the pre-1949 border) using the drawing by Otto Koolmann. I tried to match these with the cadaster map of 1832 from the area, but failed to make an exact match. The article (in Dutch) De Verzekeringsstenen by Aafke de Wijk suggests that the two stones on the former Dutch side of the river might be two of the original border stones. I think that is not very likely. Conny send me a link to the article Loakgang langs de Markestenen en Rijksgrenzen van de Marke Losser, which was published in Oet Dorp en Marke with some more information about the part of the border we visited. In it we also read that the location were we parked our car last Thursday has a history that goes back to the fourteenth century and that just North of border pole there used to be a neutral area where border disputes were resolved.

Saturday, March 20, 2021

Parsing workshop

This afternoon, at 14:00 (CET), I gave the workshop A modern approach to parsing programs as part of the CyberSaturdays of TkkrLab. For some unknown reason, the mircophone of my headset was not working, and I had to use a MacBook of someone else. My intention of the workshop was that everyone, no matter their level, would get something out of the workshop. But afterwards, I felt that I had failed this objective. I realized that in the past weeks, I spend a lot of time working on the materials and the programs, instead of thinking about the workshop itself. I think that my previous experience would be enough to just improvise during the workshop, but I am afraid I was blinded by my pride to realize that giving a workshop online is a quite different. I think, I should have taken some time at the start to see the attendees and ask them about their experience level. I also think, I should have started with an example of parsing an expression and evaluating its value and use this as a starting point to explain everything that is needed to parse it. Something, like I start doing at 22:22 of the presentation. Taking the normal priority rules used in numerical expression, I could have explained the use of priorities and how you could use a formal grammar to describe it.

And then only explain something about the history of parsing and how I started developing IParse and that I took a very different approach from the traditional way of developing parsers. I remembered, for example, that IParse cannot parse all Context-Free Grammars (CFG), but that this has never been a problem for all the practical grammars that I have encountered in the past 20 years. Apparently, grammars used for programming languages are more limited than the general class of CFG, probably due to what can be easily comprehended by us humans.

Thursday, March 18, 2021


Conny and I spend some time walking near Losser, searching for border poles. We ended up walking a part along a walking path called Graafschapspad which was flooded at certain locations probably because of the high water level in the Dinkel river. We encountered the following border poles: There are some poles between pole 4 and 5-I, but they are between a nature reserve (on the Dutch side) and private property (on the German side). There are also some poles between 6-I and pole 11 that are along farm fields. When walking back, we looked if we could locate these from the path we walked. I took some tele pictures from places where we thought to see a pole. At home, I did discover a pole in one of the pictures. I think it is either from pole 7 or 7-I. At home, I spend a long time investigating all kinds of maps (from the Dutch websites: topotijdreis, PDOK viewer, and HISGIS, horigheid) because there has been some border changes after the second war. An area of about one square kilometer was annexed in 1949 and for the most of it returned in 1963 except from some farm field on the east bank of the river. I studied some old maps and also discovered something about four poles, numbered 8, 9, 10, and 11, that were placed two by two on both sides of the river as shown on a map from 1832. In the past centuries the river often changed it course and now is east of the location where these poles where placed. I created a KML file (to be viewed in Google Earth) with my findings so far, which I probably will update again. It seems that one pole has survived. In the area an artwork with the name De landmeter (the surveyor ) has been placed. We have not visited this.

Monday, March 15, 20210


Sunday, March 14, 2021


May 2021
April 2021
March 2021
February 2021
January 2021
December 2020
-- 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 1000 HTML-files with a total size of 23,207,872 characters, having 49,583 internal links and 12,213 external links to (more than) 4,026 websites. (At least 745 of the external links are broken.) Furthermore, it contains 220 C/C++ program files with a total size of 4,850,851 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 1293 JPEG images (total size 57,108,817 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, 123 KML files with a total size of 4,960,217 bytes, and 2 EXE files with a total size of 38,340 bytes. It also uses 17 JavaScript files with a total size of 877,446 bytes, This leads to a total size of 114,522,690 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.