Previous Up Next
Dutch / Nederlands

Diary, March 2016

Sun Mon Tue Wed Thu Fri Sat
          1   2   3   4   5
  6   7   8   9  10  11  12
 13  14  15  16  17  18  19
 20  21  22  23  24  25  26
 27  28  29  30  31

Friday, March 4, 2016

Street tiling patterns

I becamse interested in tile patterns using rectangle and square tiles with small sizes, three by two being the largest. Both regular and irregular tiling patterns. I found the following sites presenting such patterns:

Below an irregular (randomly generated) tiling pattern with two by one and two by two tiles. The algorithm used for this, is actually quite simple. The pattern is divided in squares of two by two and each of these squares is either filled with an H, an H rotated by 90°, or a square at random. The square is only drawn 10% of the time. Both H shapes 45% of the time. This means that there are no two by two tiles with the corners at odd values for both horizontal and vertical position. This means that the placement of the two by two tiles is not entirely uniform as it may seem. I have not come up with an algorithm to generate such a tiling.

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


At 17:50, I bought the book Eindexamencatalogus 2009: Artez Art & Design Enschede : AKI Jaarboek 08/09, ISBN:9789075522341, for € 3.95 from charity shop Het Goed.

Tuesday, March 8, 2016

Street tiling patterns

In the past day, I wrote a program for generating regular tiling patterns. The output of the program has been embedded in this webpage and can be viewed below. These patterns do not have places where four tiles (possibly of different sizes) touch in a corner. Also the tiles are restricted to tiles of one by one, one by two, two by two, two by three, and three by three. These are not all the possible 'small' regular tilings.
This text is displayed if your browser does not support HTML5 Canvas.

Wednesday, March 9, 2016

AlphaGo beats Lee Sedol

I went to the European Go Cultural Center in Amstelveen to attend the meeting around the first Go game in the match between AlphaGo and Lee Sedol. The broadcast of the game started at five in the morning, local time in The Netherlands, one in the afternoon in South Korea. During the broadcast, I replayed the moves on a nice go set. The picture on the right is from this set with the final position. During the analyses afterwards, I understood that Lee Sedol made some daring (over play) moves as a response to less than optimal moves by AlphaGo, maybe under the conviction that AlphaGo was not so strong.


At 11:57, I bought the following books from bookshop Het Martyrium in Amsterdam:

Saturday, March 12, 2016

Lee Sedol defeated by AlphaGo

This morning, I watched the third Go game between AlphaGo an Lee Sedol. After yesterday game, it was already clear that the defeat of the first game was not an accident and that it seems that AlphaGo is likely a lot stronger than Lee Sedol. Lee Sedol played much more solid moves during this game, and AlphaGo made some surprising moves, but some of them turned out to be quite good. The blog AlphaGo Don't Care by Anders Kierulf gives a good insight in how AlphaGo plays. AlphaGo displayes a deep understanding (intuition) of the game, not following sequences of moves that humans have learned to be good, but just evaluating all possible moves and finding the one that is best to secure a (possible minimal) win. Human go players have developed a mental vocabular to understand the game and reason about a certain position, but there is also a weakness in this, is that they tend to think along the lines of this vocabular. AlphaGo is (probably) not 'thinking' with such a vocabular. For this reason, some people say that AlphaGo does is not artificial intelligence. Yet it does encode knowledge of the game that is rather similar to how humans encode the knowledge. Many top professional players also heavy rely on their intuition and not always being able to explain why a certain move is correct. I mostly followed AlphaGo vs Lee Sedol 9p, game 3 with Cho Hyeyeon 9p commenting!. Cho Hyeyeon is very enthousiastic about AlphaGo and sees it as a great tool to improve her knowledge of the game. (She won two out of eight tournament games she played against Lee Sedol.) According to The Sadness and Beauty of Watching Google's AI Play Go, Fan Hui, who lost 5-0 from an earlier version of AlphaGo and kept playing the program in the past months (possibly part of the deal), shares this enthousiasm, as he has seen his play improve significantly. In the press conference afterwards, several people praised Lee Sedol's efforts, but he himself excused himself several times and seemed to have a hard time dealing with the defeat. I still hope he will win at least one of the remaining game, but I am not very sure he will be able to do so.

Sunday, March 13, 2016

Lee Sedol beats AlphaGo

I got up to watch the fourth Go game between AlphaGo an Lee Sedol. I felt that both the commentaries on the official stream and the one of AYA with Kim Myungwan were mostly focusing on analysing alternatives to moves that were already played, instead of focusing on possible moves to be played. At one point Haijin Lee, also known as Haylee, the current secretary of the International Go Federation, took a seat behind the computer. While Lee Sedol was taking a long time to think about the 78 move, she suggested the "wedge" move to Kim Myungwan. He first asked with some surpise: "This one?", and after she confirmed he exclaimed: "O, that is very creative". They analyzed the various possibilities to take benefit of the move, but did not see how it could work. Haijin at one time remarked, "It has to work", indeed because otherwise the game would be a loss. Then with still 6:16 on the clock, Lee Sedol played the proposed "wedge" move at L11. Then Haylee has to go. Then AlphaGo plays the move that Kim Myungwan just played as a possible continuation. Soon it is acknowledged that it is a mistake and that the chances for Lee Sedol have turned. The "wedge" move is later recognized as the genius move with which Lee Sedol defeats AlphaGo. Demis Hassabis tweeted Mistake was on move 79, but #AlphaGo only came to that realisation on around move 87 and When I say 'thought' and 'realisation' I just mean the output of #AlphaGo value net. It was around 70% at move 79 and then dived on move 87. The question remains if there is another move that AlphaGo could have played to prevent Lee Sedol from winning. If this is not the case, then move 78 is simply an over play that tricked AlphaGo.

It seems that AlphaGo suffers from the horizon effect, meaning that when it is ahead, it becomes blind for wining sequence that starts with an unusual move. It is great that Lee Sedol has won this game, because it shows that humans still have a better understanding of the game. As I argued yesterday that relaying on a mental vocabular for reasoning about the game, has some weaknesses, it might still prove superior when reasoning about very complex situations like the one encountered in this game. It seems that Lee Sedol took most time to think about this move. Later on in the game, AlphaGo, played some bad moves, probably because its winning percentage had dropped.

Addition: Lee Sedol defeats AlphaGo in masterful comeback - Game 4

Monday, March 14, 2016


At 11:07, I bought the book Uitgelicht 3: startstipendia beeldende Kunst 97-98 by Kirsten Algera, ISBN:9789080143173, from charity shop Het Goed for € 1.95.

Validate UTF-8 string

The following rather obscure, but also kind of fascinating and elegantly looking, C code checks if a given string is a valid UTF-8 character sequence. It relies on short-circut Boolean evaluation and the prefix increment operator. Note that in C the Boolean 'or' operator has higher precedence than the Boolean 'and' operator. Also note that for a correct UTF-8 string, six tests are performed to terminate the while loop, where two would be sufficient if a pair of brackets are added, but that would make the code look less elegant.

bool valid_UTF8(const unsigned char *s)
  while (0 < *s && *s < 0x80
         || ((*s & 0xe0) == 0xc0
             || ((*s & 0xf0) == 0xe0
                 || ((*s & 0xf8) == 0xf0
                     || ((*s & 0xfc) == 0xf8
                         || (*s & 0xfe) == 0xfc
                         && (*(++s) & 0xc0) == 0x80)
                     && (*(++s) & 0xc0) == 0x80)
                 && (*(++s) & 0xc0) == 0x80)
             && (*(++s) & 0xc0) == 0x80)
         && (*(++s) & 0xc0) == 0x80)
  return *s == '\0';

Remark of June 3: It seems this code does not recognize terminated UTF-8 sequences at the end of the string. Follow-up story

Wednesday, March 16, 2016


At 10:45, I bought the book Aki 2000 : eindexamens, ISBN:9789075522167, from charity shop Het Goed for € 1.95.

Thursday, March 17, 2016

Our Inner Ape

I finished reading the book Our Inner Ape by Frans de Waal, which I started reading on February 28. I bought about five years ago, on March 1, 2011. I found this a very interesting read and found it quite insightfull with respect to my own behaviour and emotional struggles. De Waal remarks that apes (and other animals) exhibit a very similar social intelligence than humans. The paper What's the Use of Consciousness? How the Stab of Conscience Made Us Really Conscious by Chris D. Frith and Thomas K. Metzinger argues that consciousness is the result of conscience, having the ability to regret actions done in the past. If that is true, then it is likely that some animal species, especially apes, have a similar kind of consciousness as us.

Friday, March 18, 2016


At 17:48, I bought the book Gödel, Escher, Bach: An Eternal Golden Braid by Douglas R. Hofstadter, ISBN:9780394745022, from charity shop Het Goed for € 3.75. On Saturday, May 24, 2008, I already had bought the Dutch translation of this book.

Monday, March 21, 2016

Science and reporting

It is always interesting how science papers are reported in popular science. Today, I found the report Caught For The First Time: The Early Flash Of An Exploding Star, which shows a nice graph and a video animation. However, after looking at the graph, I read that Kepler makes a measurement every 30 minutes, while the graph seems to suggest that measurement was taken every minute. I searched the article to see if they had changed the measurement interval for this star, but could not find any. Next I found a link to the scientific paper Shock Breakout and Early Light Curves of Type II-P Supernovae Observed with Kepler. When I opened it, it affirms the fact that measurements were only taken every 30 minutes. Figure 4 focusses on the breakout event. One has to zoom in quite a bit to see the blue dots that represent the actual measurements. Not a stable line at all, but a lot of noise. Only when looking at the three and half hour average, one sees that the graph has a slight jump before it started to rise steadily. Here on the top right I have put the graph of the blue dots side by side with the 'nice' graph, from which I can only conclude that the 'nice' graph is just fabricated based on the assumption that the bump in graph shown in Figure 4 is actually the result of breakout event, which does seem likely. Furthermore, the video animation suggest another event, before the very bright flash, that is being suggested in the paper, but where the authors affirm there is no conclusive evidence. Although the supernova event of KSN2011d follows the predicted model, the supernova event at KSN2011a does not, because it rises more steap than expected. The authors give some suggestion how this can be explained.

Saturday, March 26, 2016

Simple repository build on file sharing service

I got some ideas about how to implement a simple repository on top of a file sharing service. Usually, I file sharing service only supports synchronization of files amongh locations, with the only guarantee that the files are shared without corruption. There is usually no mechanism to exclusively lock a file and most services are time-stamp based, meaning that the version of the file with the latest time-stamp overwrites earlier versions. This means that if two users at different locations save a new version of a file to a shared file location, the version with the latest time-stamp will overwrite the earlier changes applied by the user who saved with the earlier time-stamp. Usually cases of changes being overwritten are difficult to detect. One way to prevent data to be overwritten is taking sure that only new files are created. Because file sharing services usually also have no mechanism to 'claim' unique names for files, one needs to implement a scheme for generating unique files. One simple solution is to include a GUID in the name of the file. One could also use a hash function (such as SHA-1) over the contents of the file to generate a unique name, with the added bonus of defense against possible data corruption introduced by the file sharing service. To allow cooperation, we assume that the data representing the repository is stored in separate files and that social protocols are used to avoid people working on the same file. If the application has the added ability to merge two parallel versions, then there is no problem. (I argued before that merging is a complex process.) At least each file needs to have a reference to an earlier version, assuming there is one. Maybe it is beter to include the whole history of previous versions and in case the version is the result of a merge, to include both versions. We assume that each file contains a key-value store, and that the values can contain arbitrary complex structure with references to other keys. There are two type of such references, namely to keys in the file and keys stored in some other file. The second kind of references need to contain the name of the file. For efficiency reasons, it can be smart to have a table of files that are being referenced at the start of the file. They keys only need to be unique per version of the file. There also needs to be a mapping between the keys in the current version of the file and the earlier version. In case the key has not changed, it can be ommitted. In case the version is a merge between two versions, two keys may be needed, in case key-value pairs were merged. In case a file has references to another file and a new version of that file become available, then the version need to be updated with a process where the keys are replaced with keys to the new version. I described this form of 'updating' before. Note that in case there are two path along which the versions of a file can be reached (through nested references in files), it is possible that the file contains references to different versions of the key-value pairs. This is known as diamond problem. The application using such a repository needs to scan the available files on regular intervals, either controlled by the user of by some kind of timer mechanism, to discover newer versions of the files and to establish if the files are consistent. Each consistent combination of files, represents a state of the repository. Note that due to the implementation delay in the synchronisation, it is possible that states of the repository appear in different order in each location. Note that there is a cycle problem when two files contain references to each other, because each reference is always to a version of a file. In case a hash is used, there is no way to avoid it. To resolve this problem, each version of the file could also use a GUID at the start, which is used as the version identification for a version of a file. In that case it is possible to implement a procedure that writes files included in cycles, such that all references are to the latest version of the files.

Monday, March 28, 2016


I found a pair of open flowers on our magnolia tree in the backgarden of our house. They met with some stormy weather and rain. The picture on the top right was taken slightly from above.


I visited the TETEM art space. I first looked at the exhibition Sellfable City: Circuit Circus, but I was not very impressed. Next I looked at a part of the video Amerikan Teenager: Earthworm Jim by Sebastian Schlicher. Typical stream of consciousness, but rather clever. Next, I lookwd at the exhibition Drawing Front: Teach me a new language. I was impressed by the works Impulse I and Achy breaky heart by Henrik Kröner.


At 16:56, I bought the magazine N°B Magazine: featuring Bernhard Willhelm, the issue of February 2002, with Gerdi Esch as editor and with contributions by Bernhard Willhelm for € 0.95 from charity shop Het Goed. The original price was € 9.50, but I on Cult Jones it is offered for sale for € 175.00.

Sunlit hail

On the way home, some hail fell from the sky, when the sun started to shine, I took this picture, where it seems that the hail is lit by the sun through a hole in the clouds. There would have been a rainbow if the hail would have been rain.

This months interesting links

Home | February 2016 | April 2016 | Random memories