Previous Up Next
Dutch / Nederlands

Diary, December 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 

Tuesday, December 6, 2016


At 17:34, I bought the book Architectuur in Roombeek: Een wandeling van 4,5 km langs 53 gebouwen edited by Peter van Roosmalen, Tom de Vries, Clemens Jongma, and Jo Molenaar, written in Dutch, published by Architectuurcentrum Twente in September 2010 from charity shop Het Goed for € 0.50.

Chinese Wooden Puzzle

Tonight, I took the Chinese Wooden Puzzle with me and showed it at TkkrLab. Jurjen suggested an extra condition (besides all pieces of the same colour touching each other) that the pieces of each colour should both touch the bottom and the top edge. He played with it for some time, and then concluded that it is probably not possible because some black coloured pieces need to be horizontal and will use too much space at the bottom and the top edge to leave enough room for the other pieces. He did arrive at a solution that he considered his best possible result. Then Annabel arrived, and when she heard of the extra condition, she could not help giving it a try, and she did find the following solution:

When I arrived at home, I quickly found another solution, basically by swapping the red and yellow pieces, and rearrange some of the white pieces. I also started thinking about how to implement a program that will find all possible solutions. I guess that there are about ten to a hundred solutions.

Colour of my nick

Some member at TkkrLab remarked that my nick could be read as a colour value and that it looked like my hat. Actually, it looks like this:

Wednesday, December 7, 2016

Chinese Wooden Puzzle: six solutions

I wrote a program to find all the solutions to the Chinese Wooden Puzzle where pieces of each colour touch both the bottom and the top edge. The green and purple pieces are excluded, because they are very limited in the way the can be placed. I have no idea if the program is correct, but the six 'unique' solutions that it found, do include the two solutions that were found yesterday. Presuming that the result is correct, my estimate of ten to a hundred solutions was too high and too low. Too high in the sense that there are only six 'unique' solutions, where 'unique' is defined not taking into account mirroring and two pieces of the same colour that could be rearranged without affecting the visual appearance of the solution. It was too low in the sense that the program returned 104 non-unique solutions. The six unique solutions are given below, excluding the green and purple pieces, which could be placed on both sides in various combinations, resulting in a total of 36 unique solutions for all colours.

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

Friday, December 9, 2016

Chinese Wooden Puzzle: more solutions

I worked on a simpler implementation of the algorithm to find Chinese Wooden Puzzle solutions where all colours touch both the bottom and top edge. The reason for this was to verify the result of two days ago. I also hoped that the simple algorithm would be faster. That actually did not seem to be the case. But the program did return the same solutions as the previous one. I then used it to find all other solutions for 'smaller' Chinese Wooden Puzzles for all combinations of colours and number of pieces per colour. I combined all the results in to a single page.

Sunday, December 11, 2016

Fractal Jigsaw: combined program

In the past weeks, I worked on perfecting the various programs for generating Fractal Jigsaw puzzles and combining them into a single program with seven different functions. The usage is:
  pianofrac gen_ec_hc [-with_name]
  pianofrac gen_ec [-con] [-range=n,n-n,n-] [-with_name]
  pianofrac normalize [-minimal]
  pianofrac used_pieces [-max_occ=n] [-sup_occ=n] [-max=n] [-min=n]
  pianofrac filter (<pieces>)
  pianofrac print
  pianofrac svg [-border_rad=n] [-border_d=n] [-depth=n]
                [-colour=c] [-stroke_width=n] [-side_length=n]
The first two functions gen_ec_hc and gen_ec can be used to generate an Exact Cover. The function gen_ec_hc generates a Exact Cover based on a hard coded set of pieces. With gen_ec one can specify a range for the size of pieces and with the -con option, if 'empty' connections should be generated, without which the number of possible solutions is strongly reduced. The command gen_ec -con -range=2-3 is equivalent to gen_ec_hc. The option -with_name causes each piece to receive a unique number, which is required for some other the other functions. The other commands work on the output of an Exact Cover solver, that lists the names of the selected rows appended with a vertical bar. (I adapted Exact Cover program such that it can be used in a pipe command.) The normalize function normalizes the solutions and the -minimal option filters out all double solutions with respect to the six symmetries of the board. The used_pieces function can be used to filter the solutions on the pieces used. With the option -max=n and -min=n it is possible to limit the number of pieces in the solution, where the specified values are included. Often it happens that a piece is included more than once. To limit the number of times a piece is repeated, the option -max_occ=n can be used, and to limited the total number of supplemental occurances, the option -sup_occ=n can be used. This function returns on each line a list of numbers of the pieces separated by commas, and sorted from low to high. To find combinations of pieces that have a low number of solutions, the resulted can be piped into sort | uniq -c | sort. The filter command, can be used to return the rows that match a list of numbers of pieces as produced by the used_pieces command. The function print can be used to print a solution for each line of the input. An example of the output generated by this function is:
         _/ \_
       _/ \ / \_
      /  _/ \_  \
      \ /  _  \ /
     _/ \_/ \_/ \_
    / \_   _/  _  \
    \_/ \ / \ / \ /
   _/ \ / \ / \ / \_
  /  _/ \_/ \_/ \_  \
  \ /  _  \ /  _  \ /
  / \ / \_/ \_/ \ / \
  \_/ \_  \_/  _/ \_/
  /  _  \_   _/  _  \
  \_/ \_/ \_/ \_/ \_/
    \_   _   _   _/
      \_/ \_/ \_/
The function svg produces an SVG file on the output. The options can be used to modify the appearance. The option -depth=n, with values 1 to and including 4, specifies the recursion depth of the fractal. The default value is 2. The options -border_rad=n and -border_d=n can be used to change the border around the puzzle. The first option specifies the relative radius of the circle parts of the border. The default value is 1.5. The second option specifies the size of the triangle from which the radius is offset. The default value is 1.7. Note that the sum of the values determines the distance of the border to the center of the puzzle. The option -colour=c can be used to specify a colour (should be valid SVG stroke colour). The default value is red. The option -stroke_width=n can be used to specify the stroke width. The default value is 2. The option -side_length=n can be used to specify the length of the triangles of the pieces. The default value is 100. Note that most programs that can import SVG files (such as Inkscape) can change the stroke with and stroke colour easily in preperation of sending the design to a laser cutter. The SVG file matching the above print output is this. There is still room for improvement of the program with respect to possible options and some details.

(Fixed serious bug)

Monday, December 19, 2016

Documenta 7 books

I received the two volumes book Documenta 7, edited by Saskia Bos, written in German and English, published by D + V Paul Dierichs in 1982, ISBN:9783920453026, from 'De Terechte Kronkel', which I bought last Wednesday for € 10.00. The Documenta 7 exhibition also included some works by Peter Struycken. There are a lot of errors in the reproductions of his works. Many of the reproductions are mirrored, rotated and/or labelled incorrectly.

Tuesday, December 20, 2016


At 17:40, I bought the book Austrian Heartbeats - A Contemporary Music Travel Guide to Austria, edited by Franz Hergovich and Robert Rotifer, written in English, published by Verlag für Moderne Kunst, Nürnberg in 2014, translated by Robert Rotifer from Austrian Heartbeats - Reiseführer für aktuelle Musik aus Österreich written in German, ISBN:9783869844930, from charity shop Het Goed for € 1.50. This is a typical example of a little book that I cannot resist buying, although I know I will never read it completely, simply because it an odd type of book.

Tuesday, December 27, 2016


Arrived at Wintergo. I did bring the Fractal Jigsaw puzzles that Annabel made for me last Friday with a lasercutter according to the selected design. It appears that due to the fine cutting line, the pieces easily get stuck when the are not moved exactly parallel to each other. Getting the pieces out of the puzzle is almost harder than to put them in. Probably have to try again with a simpler design or by making the cutting line broader, for example by using two cutting lines and remove the thin material in between.

In the afternoon, I played a game of Go against Henk and I won with a slight margin. After the state as shown above, we continued playing to see if the 'dead' group in the bottom right corner could still be used to kill the white group around it. This appeared not to be the case.

Wednesday, December 28, 2016

Wintergo: Second day

This morning, I played my second game against Rob and I lost with 72½ points with white. About half way the game, I knew that my position was lost, nevertheless, I did not resign, but continued playing till the end. In the last ten moves, I was still able to gain about ten points, due to an error of my opponent. We played for almost two hours, which I found quite an achievement, to stay concentrated till the end, after a night sleeping on a strange bed.

Thursday, December 29, 2016

WinterGo: Last day

This morning, I played my final game of the tournament against Francien. In the middle of the game, it looked like I was winning, but I guess I became a little over confident and played to quickly without thinking much. I did not notice that six of my stones could be captured, and that by capturing those stones some dead stones of Francien would become alive and one of my groups could die. When Francien noticed this, she captured the stones, and things turned to my disadvantage. I still tried to attack a weak group of Francien, but again, I played too quickly and did not play a required defending stone, and I decided to resign.

This months interesting links

Home | November 2016 | January 2017