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.
愉快的春节Today is the first day of the year of the rat according to the Chinese calendar. The spring festival has begun. I wish everyone, and especially all people in China, a very healthy New Year in view of Wuhan coronavirus outbreak. (The genome of the Wuhan-Hu-1 virus just encodes for ten genes, producing ten different proteins. One of the ten gene takes up almost twothirds of the genome. It would not surprise me if this is the gene for the 'evil' protein, which allows the virus to enter the human cells and gets itself replicated by those cells.)
Volume irregular hexahedronOne way of calculating the volume of a hexahedron is to divide it into six (or five) tetrahedron for which there is a 'simple' formulea to calculate the volume. Another method consists of calculating the volume is to divide each side in two triangles and calculate the volume of the tetrahedron made of the triangle and an arbitrary point (usually the origin). This works as long as the sides are flat. But when the four points of a side do not lay in a plane, there are two ways to divide it into triangles, which result in a different volume. So, the volumne is not really defined in this case. One approximation is to take the average of the two ways. This can be done by adding half of the volume of the tetrahedron between the four corner points. If the four points are in a plane, the volume of this tetrahedron is zero. I have no idea if this approximation is the same as defining the volume when taking the curved surface between the four edges that is made out of straight lines connecting the edges at 'equivalent' distances, kind of simular to the hyperbolic paraboloid.
Monday, January 20, 2020
The Long Way to a Small, Angry PlanetI finished reading the novel The Long Way to a Small, Angry Planet by by Becky Chambers after I started reading it last Thursday, the day I bought the book. It is a long time ago that I read a book in a single go. Yesterday, I had a copy of the second part in my hand when at the American Book Center, but decided to first finish the book, before buying it. The book feels a little like a sitcom, because many of the chapters can be read as a separate story and the order of some of the chapters could be rearranged without hurting the story. (I guess, it would aid making a TV show based on the book.) I have admit that it touched on some interesting philosophical, psychological and social issues.
Kunstmuseum The HagueThis morning, I went to Kunstmuseum in The Hague to see the exhibition Monet: The Garden Paintings. (If I remember correctly, the previous time, I visited this museum was on March 31, 1977.) There, I saw the following works:
Next, I saw the exhibition about Jeroen Eisinga - The Social Ladder. Several of his films were shown and 'camera' from "The Most Important Moment in My Life" (1995) was on display. After this I went to Chambers of Wonder in the basement, in a certain way the most interesting part of the museum. There I saw the following works:
Next, I saw the exhibition Barbara Nanning with works by her. Followed by this, I saw the exhibition Mondrian & De Stijl. I liked the following works, where if no name is mentioned, are by Piet Mondrian:
The last exhibition that I saw was Discover the modern. I found the following works worth mentioning:
After this, I visited a number of bookshops in The Hague and Utrecht. In The Hague, I visited: Van Stockum, The American Book Centre, and Paagman. In Utrecht I visited Steven Sterk and Broese. At 18:22, I bought the book Het verborgen brein written by John Bargh, translated from the English Before You Know It to Dutch by Marianne Palm, Aad Janssen, and Nicole Seegers, published by Overamstel Uitgevers in 2018, ISBN:9789048827121, from Steven Sterk for € 7.90.
Friday, January 17, 2020
JPodI finished reading the novel JPod by Douglas Coupland, which I started reading on November 27 after I bought it on November 14 last year. I bought the book, because it looked interesting with respect to being a kind of epistolary novel with many fragments take from online communications and pages filled with semi-random words and numbers, such as prime numbers and the digits of pi. I did like the novel. I tried to find out if people already solved the many puzzles in the book, such as which non-prime number is inserted in the sequence of prime numbers. The only solution that I found, was in the Master thesis Puzzling translation: Breaking the code by Jonna Verdel, where on page 26 it mentions that the inserted three letter word is EMF.
BookAt 16:57, I bought the book Charlotte van Pallandt: gipsen en schetsen written by Charlotte van Pallandt and Gerdien Verschoor, written in Dutch and published by Hannema-De Stuers Fundatie in 2001, ISBN:9789070842420, from charity shop Het Goed for € 3.50.
Double dateThis year, there will be a lot of special dates. Today is a double date for the notation: DD-MM-YY: 12-01-20. The other special dates of this year are:
Books, sale and partyAt 16:52, I bought the following two auction catalogues published by Christies from charity shop Het Goed:
Next, I went to PlanetArt, where there was a kind of new years party for all the people who volunteerd for GOGBOT. I arrive around the time of the new moon, which was accompanied with the first, albeit penumbral, lunar eclipse of 2020, which was at maxium at 19:09:59 UTC. I forgot to look up in the sky to see if I could see the moon. I sat downstairs with some tea. Upstairs there was music. Several times, I opened the door for some guests and talked a bit with some. One of them I saw for the third time in three days. I had a good time working on RawParser. I stayed for about two hours.
The SwarmI went to the opening of the exhibition The Swarm by Anne de boer at TETEM art space. I arrived a little late and missed the start of the tour. I was not very impressed by the exhibition and the tour.
B93 NuI went to the exhibition B93 Nu, which was kind of a new year reception, with works from the various artists of the B93 artist collective. I was surprised by the quality of the works on display. I did like the work with the text "bobbinhood" and the words 'be' and 'somebody' in it. I also had a look at the book Saintscape by Claudio Beorchia, which was on display. I saw that the book has an ISBN, which might indicate that there is more than one copy of it. In that case, I would be interested to buy a copy.
LISP in C#Yesterday, someone pointed me at A Lisp interpreter in C# 7. LISP is the third programming languages that I used, after Algol 60 and Fortran. C# is a programming language that I just recently started to use. A long time ago, I made some attempts to program a LISP interpreter in Fortran. Having a lot of programming experience, I thought it would be easy to implement a LISP interpreter in C#, especially, because C# is a garbage collected language itself and in some sense rather close to LISP. I also got the idea to present the implementation is a didactic presentation with comments explaining the code in step-by-step manner. I have created the LISP interpreter in C# repository for this purpose.
Wednesday, January 1, 2020
New Years EveBecause Tuesday is the day that the space of TkkrLab is open for visitors, and usually also the time that most members are visiting, I decided to spend New Years Eve at the space. Someone suggested to order some Chinese/Indonesian food, and I joined in. Several people had brought some oliebollen and drinks. Someone had brought a SodaStream and we produced some carbonated Rooibos thea. As usally, most people did their own thing. Some people played some card games. When one other member exclaimed that he had no idea where to start with Escape room: The Game, I decided to give him some help. After about two thirds of the game, I got bored and another member completed the game with him. I continued working on RawParser. We were not going to see much of the traditional fireworks from the space, from which we have a good view of a large part of the city from about nine meter above ground level, because of the heavy fog outside. Visibility dropped below 100 meters.
'Raw' parserI remember working on a 'raw' parser during Overkill Festival, 2018. I had several reasons to work on this. I wanted to have a C version of IParse because I came to the realization that C is the most universal supported programming language, the language that is used to implement almost all other programming language (interpretters and compilers) or at least use it to bootstrap it. (IParse was originally written in C.) I also wanted to implement scannerless parsing instead of using a hand-code scanner as in IParse, based on experiments I did with introducing characters sets. During these experiments, I also encountered the need to be more flexable in constructing results of the parsing. IParse has a build-in implementation of abstract syntax tree (or abstract parse tree, as it is called within IParse). This also because I discovered that sometimes you want to deviate the abstract syntax tree from the parse grammar, such as the example of representing array declarations in IDL, which is kind similar to that of C. (As a side note: C# avoided this problem, by having an alternative syntax for declaring arrays.) Furthermore, I had developed a method for defining a grammar in IParse using code, instead of constructing it from a hard coded syntax tree. The idea was to make the parser algorithm agnostic to the data (by using a void pointer) and how it is constructed (by the use of function pointers). This gave me the idea to call it a 'raw' parser. In the past year, I did sometimes have a look at it, but most often I did not enough time to really get into it and make some progress. In the past week, I did set some time aside and also got the idea to make the implementation more self explanatory as a kind of educational tool to explain parsing by adding a narrative in comments. Doing this, already has led some improvements in the code. Interesting. The code can be found in the github repository RawParser.
ExhibitionsAt 14:58, I bought the book AKI-jaarboek 2005/06 written in Dutch and English, published by AKI akademie voor beeldende kunst in June 2006, ISBN:9073025087, from Kringloop Enschede for € 1.00. I went to TETEM art space to see the exhibition Should I Stay or Should I Go. I did the Nederlands Gastronomisch Inburgeringsexamen test, but I did not see if I passed of failed the test. Although I am Dutch and should pass the test, I guess, I might have failed, because I do no longer follow the typical Dutch eating habits. The installation Tune of the Hamlets did not work. This installation allows you to mix a choir of people who sing the same song in different dialects of Low Saxon. I also went to photo galery Objektief to the exhibition with pictures by Hessel Bosch, who has been a photographer for more than fifty years. He was present at the exhibition.
Tuesday, December 24, 2019
Friday, December 20, 2019
15°CelciusThis week, it has been warm for the time of the year. Today, the temperature at the airport Twente weather station, reached 15°Celcius, which is a record for this day (but not for this time of the year). 9789072250414, from charity shop Het Goed for € 1.50.
The Rise of SkywalkerThis afternoon, Annabel and I went to watch the movie Star Wars: The Rise of Skywalker. It has been a kind of traditiong that we go to see the new Star Wars movies on the day that they are released. Although there are tons of so called Star Wars fans who are going to say that this is the worst Star Wars movie ever, for me this one is going to be in the top three. I think this is a very balanced and well directed movie with a believable plot, which places the two previous movies in context and resolve some of the appearant plot holes.
Tuesday, December 17, 2019
Heliophile and moreI went to see the performance of Heliophile in Haaksbergen. I just missed the start of the performance, because I had left a little late and had to bike against the wind. This was the first performance where the background tracks were replaced with a life performance with a large modular synthesizer. It was also the last performance with Bernard, which means Heliophile will continue as a duo. In the room they were performing, there was also an exhibition of Fotobond Twente. I liked the photographs by Hans Wissink, Marinus Rouweler, and Anja Jalving. When I biked to Enschede, I saw several rainbows (which all originate from the same cloud, I guess). At 14:59. while I was biking on the Helweg, I saw a fragment (left) of a rainbow at the horizon. From 15:10 till about 15:13, I saw a rather bright, double partial (left) rainbow. Then at 15:16, I saw a partial (right) rainbow. It slowly started to rain, while the sun was still shining, and finally, around 15:20, I saw a full, but rather faint, rainbow. I went to Het Bolwerk, where the opening of the exhibition with drawings by Johan Leerkotte. There also were some music performances.
Groninger MuseumPeter Struycken invited me to visit the Groninger Museum with him, where there is an exhibition of some of his works. After we had some coffee and tea with applepie, we went to the top floor. In the hall we were greated by three of the Boulez carpets, from left to right: Boulez 44, Boulez 27, and Boulez 45e. We sat on a bench and watched ...explosante-fixe... with music by Pierre Boulez and Skrjabins Vision with music by Alexander Scriabin, two 20 minute long animations on music displayed on five large screens. Next we saw the exhibition Presenc by Daan Roosegaarde and the exhibition Mondo Mendini about the Italian designer Alessandro Mendini. At this exhibition, I liked the following works:
Kirsen EverinkI went to see the exhibition at B93 with paintings by Kirsten Everink. I have seen many of her paintings at the Finals 2017 exhibition, which means she has not produced many new works in the past two years. Dune by Frank Herbert. It was my fifth reading of the novel, fourth in Dutch, once in English. The last time, I finished reading the book (in English) was on Sunday, May 8, 2011. What surprised me during this reading, was my emotional responds to it at certain important points. Is this because I am older and have more emotional experiences of because I have become more sentimental. I started to read the book because at the moment, the book is made into a film again (for the third time). I have come to the conclusion it will be very hard to adapt the book and capture the depth of the struggle of Paul, which is so much hidden for the people around him.
Random mazeIn the past weeks, I have been analyzing algorithms to generate random mazes. The kind of mazes that I am studying are mazes within a rectangular grid of rooms where the maze is a spanning tree, meaning that there is exactly one route between each two rooms. In such a maze the number of doors (compared to walls) is one minus the number of rooms. Knowing how many doors and walls there are to be, you can calculate the change that at some position there door and wall. From this you can also calculate the changes for the different types of rooms (with respect to the position of the doors). There are rooms with one door, two opposite doors, two doors with a turn, three doors, and four doors. But it seems rather hard to generate random mazes that match these 'ideal' distributions. Wilson's algorithm is a simple algorithm to generate an unbiased maze. It has almost half the number of rooms with four doors as the 'ideal' maze. I also implemented an algorithm that starting with a balanced random assignment of doors and passages and fixes this by randomly changing passages into doors to connect unconnected rooms and doors into passages to prevent multiple routes between rooms. This algorithm is named 'Random' below. Alternatives of this algorithm, called 'Digging' and 'Trees' below, start with a maze with only walls and only doors, respectively. I also implemented a recursive division algorithm, called 'Spit' below. The traditional depth-first algorithm is called 'Depth-first' in the table below. This table gives for each algorithm the average percentage for the different type of rooms when the algorithm is run 500 times for a 50 by 50 room maze, and also the average distance between every two rooms (with its standard deviation).
one opp. turn three four dist.(dev) 'ideal' 26.69% 13.32% 26.69% 26.65% 6.65% Wilson 29.18% 17.35% 27.82% 22.18% 3.46% 111.14(12.72) Random 30.57% 16.15% 26.80% 22.47% 4.01% 96.49(10.20) Digging 31.70% 15.84% 25.25% 22.79% 4.42% 94.93(11.03) Trees 30.50% 16.45% 26.78% 22.15% 4.13% 58.50( 1.75) Split 28.11% 13.97% 32.90% 22.01% 3.01% 123.81(16.30) Depth-first 10.12% 31.00% 49.00% 9.72% 0.16% 403.49(32.92)
The depth-first algorithm clearly gives a different kind of maze than the other algoritms, resulting in lots of rooms with only two doors and only a very few rooms with four doors. It is obvious that this will lead to a high average distance between two rooms. However, note that the algorithm 'Random' and 'Trees', which are rather similar with respect to the types of rooms they have, yet have a different average distance. The name 'Trees' refers to the fact that the walls grow like trees from the sides, which make that the rooms in the center have short connections to the rooms further away. I have no simple explaination for the fact that the number of rooms with more doors are lower for all algorithms compared to the 'ideal' distribution. I also have not yet found an algorithm that generates mazes that on average are closer to the ideal numbers.
Has always been dystopiaI went to the opening of the exhibition Has always been dystopia by Erica Ferrari at XPO.
-- contact -- Frans
My life as a hacker
The Art of Programming
HTML to LaTeX
eXtreme Programming Programs Hamilton cycles
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:
This is a static website with no contact form and no way to add comments. It
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
program files with a total size of 4,750,060 characters,
9 MySample scripts with a total size of 75,004 characters.
and 3 PASCAL program files with a total size of 35,259 characters.
There are 68 text files with a total size of 738,916 characters.
With respect to images, this site containts 1257 JPEG images
(total size 55,071,822 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),
9 PDF files (total size 789,074 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,
104 KML files with
a total size of 4,333,995 bytes,
and 2 EXE files with a total size of 38,340 bytes.
a total size of 666,229 bytes,
This leads to a total size of 102,011,376 bytes.