Previous Up Next

Diary, December 2025



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


Monday, December 1, 2025

Advent of Code: Day 1

I woke up early and failed to fall asleep again for the first day of Advent of Code. I solved the two puzzles without much problems. The first part, I did in one try (including compiling correctly) and for the second part, I needed two tries. I already had some idea that my first try of the second part was going to fail, but I nevertheless tried it. Then I resorted to a bit brute force approach for the second part. I also spend some time improving MarkDownC, the literate programming tool I am using.

Book and lithograph

At 15:53, I bought the book The Temporal Void written by Peter F. Hamilton in English, published by Pan Books in 2009, ISBN:9780330443036, from Het Goed for € 2.99 and I bougth a lithograph by Janny Endstra for €9.99.


Tuesday, December 2, 2025

Phoenix BIOS

At TkkrLab there was a box with old PCBs, mostly old motherboards, but also one with 7400-series TTL ICs, donated by someone for everyone who wanted to use them. On one of PCBs, I saw two ICs with the text Phoenix Technologies Ltd, 1987, 1988. The famous Phoenix BIOS, I presume. I found a screwdriver to remove them and took them with me.


Wednesday, December 3, 2025

Advent of Code: Day 3

I have been thinking about the math formulation of this years Advent of Code puzzles just using sets and vectors. For puzzle of today you have to find some sub sequence of 2 and 12 (for the second part) digits, such when interpretted as a number, the value would be maximum. This could be described with:
puzzle(V in Vectors of {1, ,, ,9}, l in {1, .. , sizeof(V)})
= max { value in Nat 
      | exists v in subvectors(V):
           (length(v) = l) and (value, v) in reverse_base_repensation(10)
      }
In this the V argument is the puzzle input represented as a vector of numbers from 1 to 9 (including) and l the required length, which is 2 for the first part and 12 for the second part. The function reverse_base_repensation returns a set with values and vectors representing that value in the given base where the most significant 'digit' is at the first location of the vector. (A more logical choice would be to have the least significant 'digit' first for when you want to define operations on those vectors.) To make this a bijection (if I am not mistaken), the following definition can be used:
reverse_base_repensation(n in Nat)
= { (n in Nat, v in Vectors of {0, .., n-1}
  |     n = sum i in {1, .. , size(v)}: v[i] * n ^ (size(v) - i)
    and not v[size(v)] = 0
  }
(One would still need to proof that this indeed a bijection.) A sub sequence or sub vector is made by taking a specified number of elements from a vector and arranging these in the same order. So, we need a vector with indices taking from the size of the vector in increasing order. One can achieve this by defining a sorting function for the values in a set and an order function.
sorting(S in Sets, order is Sets of Vectors of S) =
= { v is Vectors of S
  |     length(v) = size(S)
    and (forall e in S: exact one i: v[i] == s)
    and (forall i,j: i < j implies (v[i], v[j]) in order))
  }
subvectors(V in Vectors)
= { v 
  | forall s subset {1, .. , size(V)}
       exists a in sorting(s, {(a in Nat, b in Nat) | a => b }):
          forall i in {1, .. ,size(v)}: v[i] = V[a[i]]
  }
There are probably other and better ways to define this with mathematics and with a more mathematical correct notation. (I prefer to use words for mathematical symbols.) It is not tivial write a program that could execute these kind of definitions, because it is not immediately clear which is the correct execution method, let alone to optimize this into a low polynomial algorithm, because this requires reasoning that goes through all the definitions.


Thursday, December 4, 2025

A free space for experimentation

I went to Rijksmuseum Twenthe to see the exhibition Enschede: A free space for experimentation. The exhibition offers an overview of a groundbreaking avant-garde that emerged in the city in the past hundred years with as highlights the periodical 'De Enschedese School' and the AKI between 1980 and 2002. 'De Enschedese School' was a periodical of that was send by mail four to six times per year for a yearly subscription fee, at first only as printed material but later also other forms of art. It was started by Frans Oosterhof. I read in one of the publications (that was folded open under glass) that Wim T. Schippers was also on of the editors. (See for some more information the page about De Doka van Hercules, a comic book losely based on the Dutch literary novel De donkers kamer van Damokles by W.F. Hermans.) However, I agree with Ernst Bergboer, who wrote (in Dutch): "There was no lie in it, but the significance of art, and especially the experimental variants that emerged in Enschede, never penetrated the city". When in 2002 the AKI merged with some other art schools, it became less experimental and more traditional academic. I am not sure whether that should be considered as an improvement.

I found the following works from the exhibition noteworthy:

I also walked through the rest of the museum and saw (among many other things) the exhibition Calculating Empires, which I had seen before, and the following works:


Friday, December 5, 2025

Sauerkraut

Today we opened our first jar of sauerkraut, which we made with white cabbage. There are still jars in the meter cupboard with sauerkraut made from red cabbage and Savoy cabbage. The meter cupboard has a relatively stable temperature due to the district heating pipes. The potatoes (not visible in the photo) are also from Herenboeren Usseler Es. We browned 200 grams of ground beef with an onion and three cloves of garlic. Then mixed in the sauerkraut (500g) and left it simmer over low heat. Just before the potatoes were done, we sautéed a red bell pepper in a little oil and added some Mrs. H.S. Ball Chutney Hot for a sweet and a bit spicy sauce. We mashed the potatoes with a generous splash of milk.


Tuesday, December 9, 2025

Phoenix BIOS (Part 2)

When I was ready to depart from TkkrLab, I noticed that the box with PCB was still there. I causually made a remark about having taken the Phoenix BIOS ICs from one of the other motherboards. Then another member of the hacker space made some remark that he would like to have them as he took the motherboard, which happens to be from a 286 PC, and already had noted that the BIOS ICs were missing. I have promised to return them to him.


Wednesday, December 10, 2025

Enschede 0,7K

In the evening, I paid a short visit to the exhibition Enschede 0,7L at artist collective B93 with photographs by Cyril Wermers and collages by Torino.


Friday, December 12, 2025

Advent of Code

At 6:57:25, I finished this year of Advent of Code. I spend the most time on solving the second part for last Wednesday. My process of solving the second part is recorded on this mark down page. I am a bit proud that I was able to solve this all on my own. I read on reddit that many people solving it with the Z3 Theorem Prover. I felt a bit getting trolled for todays puzzle, because it looked like a very hard puzzle, even for the first part, but it turned to be rather simple in the end. And the second part was just a bonus part for it you had solved all previous parts, just like in the past years. I was a bit afraid that this last puzzle would keep us busy till Christmas.


Tuesday, December 16, 2025

14.2° Celsius

The temperature at Twenthe Airport has gone up to 14.2° Celsius, which breaks the previous record of 14.1°C on this date in 1989.

Phoenix BIOS (Part 3)

This evening, I went to TkkrLab and I gave the two Phoenix BIOS ICs, which I removed two weeks ago, to member who took the motherboard from which I removed them. He was quite happy with it and inserted the ICs in the sockets where they came from. He promised me that if he would find some other BIOS ICs (from a non-working motherboard), that he would give them to me.

Success in compiling TCC

After a lot of debugging the C compiler I am developing as a replacement for the MES-compiler used in Live-bootstrap, I succeeded in compiling the Tiny C Compiler (TCC) version 0.9.26 resulting in a tcc-boot0 executable. Yesterday, I found a bug in calculating the offset of fields in anonymous structs and unions. This evening, I wrote the code to fix that problem. The last bug was related to the fact that the program:
#include <stdio.h>
#include <stdint.h>

int main(int c, char *argv[])
{
    uint_32_t x = 45456;
    uint_32_t a = x >> 32;
    printf("%u\n", a);
}
does print zero but 45456 when compiled with the GNU C compiler to an executable for an Intel processor. The reason is that the shr %cl,%eax instruction only looks at the value of the 5 least significant bits in the cl register, thus interpretting 32 as 0. I fixed this in my compiler by replacing any right shift expression with a constant larger than 31 by the constant value 0. After I did this, the produced tcc-boot0 was the same as the one compiled with the GNU C compiler. See the 1fcde7aa commit for the final fix. In the coming days, I am going to write some documentations in the GitHub repository and maybe also do some additional testing.


Wednesday, December 17, 2025

Photos and videos

I went to the city where I saw two exhibitions. At Fotogalerie Objektief, I saw the exhibition Field of Play with photographs by Klaas Jan van der Weij. He takes unusual sport photographs. At Concordia, I saw the exhibition Blue Light District with videos (and one computer 'game'). The works on display are:


Thursday, December 18, 2025

Amsterdam

I went to Amsterdam. I first visit the Huis Marseille, Museum for Photography, where I saw two exhibitions. I first saw the exhibition Shima no Ama with black/white by Kusukazu Uraguchi who for thirthy years took pictures of the Japanese diving women known as Ama. Next, I saw the exhibition Rooms We Made Safe with colour photographs by Michella Bredahl. I found the following photograpsh noteworthy:

Next I went to the Stedelijk Museum Amsterdam. In first saw the installation Skin to Skin by Sandra Mujinga. Below one of the two pictures I took.

Next I saw the exhibition Things I've Never Seen Before. I found the following works noteworthy

From the exhibition Prix de Rome: Visual Arts 2025, I found the following works noteworthy:

From the exhibition Blue Dots, I found the following works noteworthy:

From the exhibition Collection, I found the following works noteworthy:

I saw the following in-situ art works:

From the exhibition The Best Dutch Book Designs 2024, I found the following books noteworth (from about half of the books I took a look at):

Finally, I saw the exhibition Erwin Olaf - Freedom, which made a big impression on me. I found the following works (photographs if not specified otherwise):

I walked to FOAM. From the exhibition Mid-Air with photographs from Blommers & Schumm, I found the following noteworthy:

From the exhibition Atlanta Made Us Famous with photographs by Hajar Benjinda, I found the following noteworthy:

From the exhibition Witnessing Life with photographs by Co Rentmeester, I found the following noteworthy:

At last, I saw the exhibition You Don't Look Sick by Jasmijn Vermeer. Just outside the museum, I took the following photograph:

On my walk to the Central train station, I visited the bookshops De Slegte and Scheltema as usual.


Saturday, December 20, 2025

Book

At 16:21, I bought the book Mathaf Collection Summary, Part 1 | مجموعة متحف فهرس، جزء 1 edited by ʻAbd Allāh Karrūm, Laura Barlow, Leonore-Namkha Beschi, and Yasser Mongy written in English and Arabic, published by Mathaf publisher on Saturday, November 1, 2014 from Het Goed for € 0.99. The book has two front pages, one for English (where pages are numbered from left to right) and one for Arabic (where pages are numbered from right to left). This book is the catalogue of the exhibition with the same title at Mathaf: Arab Museum of Modern Art. I have no idea what makes the art modern, as it seems not directly related to western modern art, and maybe modern should be replaced with contemporary. There are some 'geometric' works that appeal to me, and those are:


Thursday, December 25, 2025

Cold Christmas

This night, the temperature at Twenthe Airport dropped to -6.5° Celsius, which is not close to the record low of -13.1° on Christmas 1961 here in Enschede, but still rather cold. In 2021, the temperature dropped to -6.0° and on 2010 it dropped to -11.4°, which means it has been fifteen years since we had such a cold Christmas. In this part of the Netherlands the temperature dropped the lowest. The prediction for tomorrow is that it will get less cold. There is some chance for snow on New Years day and it might get colder again.


Friday, December 26, 2025

Even colder

This night, the temperature at Twenthe Airport dropped to -7.4° Celsius, which is not close to the record low of -14.9° on Christmas 1961 here in Enschede, but the last time the temperature dropped this low was in 1970, more than half a century ago, when it dropped to 7.7°. Again Enschede was the coldest place in the Netherlands.


Tuesday, December 30, 2025

Alternative hex0

In the past days, I have been working on producing an alternative for hex0_x86.hex0. The alternative is hex0.hex0 which is compiled from hex0.c with the C compiler and toolset I have developed. Although the hex0 that can be compiled from hex0.hex0 is more than eight times larger than the original and also not compatible because it proceses less input file correctly, it has the following advantages: The file is generated with the help of reimplementations of M1 and hex2 programs that are part of state0 of live-bootstrap.

Walking in our quarter

This afternoon, Conny and I walked through our quarter for the last time this year. We are not planning to go on a walk tomorrow, because there probably will be a lot of fireworks during the day, although it is only allowed after 12, when the new year starts. In the past months we tried to walk roads and alleys we had not walked before this year (or even never before). In 2026 we will start afresh and I was thinking about writing a program to plan all the routes of between 4.1 and 4.4 kilometer through our quarter, such that with the shortest number of routes, we would walk through all roads and alleys. If I had to implement this, I would first draw all the pieces of the routes we would like to walk, than create an algorithm to find all the routes of the desired length and also have some properties, such as not crossing itself or containing 'loops', where you walk around a block and return to the same crossing. The hardest part will finding the smallest subset of routes that cover all pieces of the routes. It looks to be a set cover problem, which is known to be NP-complete, but it might be a subset that is actually not NP-complete. Interesting.

TkkrLab

I went to TkkrLab and found that some member had put some random stuff from cleaning his home on a table. I looked through it and I took the following items:


This months interesting links


Home | November 2025 | January 2026