Previous Up Next

Diary, December 2023



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, December 1, 2023

Advent of Code

I was a little hesitant whether I should join Advent of Code this year, but this morning, I decided to give it a try. I had a bit of trouble getting the hang of using literature programming with MarkDownC. The first puzzle took me a bit more work than I had expected, especially the second part of the puzzle. But I saw on Reddit r/adventofcode that I was not the only one. Again, I have been thinking about a small language to solve these kind of puzzles, but for the moment, I think I just stick with C. My progress can be followed in the repository AdventOfCode2023.

Lessons from two firework disasters

Today, the report Leren van Twee Vuurwerkrampen (which translates as: lessons from two firework disasters). The report is about the firework disaster that happened on Saturday, May 13, 2000 and about a firework disaster in Culumburg that happened on Thursday, February 14, 1991. The main conclusions (translated from Dutch to English with the help of Google Translate):
  1. 'Light' classified fireworks are much more dangerous in the event of a fire than thought.
  2. Extinguishing instructions for the fire brigade are inadequate for safely extinguishing fireworks fires.
  3. Problem of parallel licensing.
  4. Heated conflict between two ministries.
  5. Supervision of the fireworks industry was vulnerable.
  6. The role of the central government was much greater than has been reported so far.

Observers report

On the website of the indepent observers (Alle Kiezers Tellen Mee in Dutch), I found a report of their findings and a database with data from their observers. They claim that all data, based on photographs taken from the process report. In Enschede there was only one such report and it was about the polling station were I went to count, strengthening my impression that the observer that was present uploaded his photographs to the website. When I looked at the figures, I saw that there was an error. The party NSC is said to have gotten 237 votes, but it should be 337. That is also the number that is mentioned in the process report and in one of the data files. They claim that the numbers have been checked by at least one person besides the person who entered the data. Below a screen capture of the data:

I have send an email to the indepent observers about this difference. In their report they presenta a outcome of the election based on the 315 process reports that they have collected and entered into their database (with at least one mistake). It seems that they have not (yet) verified if the photographs they took from the process reports match with those published by the various city counsels. They do make some statements that the summing of the votes is not transparend, but how can they say this if they even have not yet taken the efforts to compare their data with the official published data.

They report that at ten polling stations, the observers were not allowed to take pictures of the process report. In a questionair filled in by the observers some more irregularities were reported. For example, one observer was asked to help with the counting of the votes, while this is forbidden. Also some process reports were signed by people counting before all results were entered.


Saturday, December 2, 2023

Harvest

This morning I cycled to Herenboeren Usseler Es. Some light snow fell from the sky on my poncho and I saw all kinds of small six pointed, star-shaped snowflakes on my poncho. I cannot remember ever seeing this. The snow did not really settle, except for some spots. It was not that busy at the farming cooperative. What you get depends on the number of mouths you are paying for and what choice you make when there are options to select from. I brought the following home: They can be seen in the picture below:

Recount

This morning, around 10:15, the Dutch House of Representatives came together for a meeting that lasted but 3 minutes and 3 seconds to vote about whether the ballots for four voting stations in the city Tilburg should be recounted. It is rather exceptional that they come together on a Saturday. Yesterday, the electoral council published the outcome of the 2023 Dutch general election. However, the 'Commission for the Verification of Credentials' raised some questions about the result outcome, because for some polling stations there was a rather large and unexplained gap between the ballot count at the polling station and the central recount of the ballots the next day. The counting report of polling station 21 reports a matching number of ballots compared to the voter cards. It does not contain a count per candidate. The recounting report reported a difference of 24 ballots less. I understand that in Tilburg the count per candidate is done at a central location. (This is legal according to the rules.) The report mentions one unexplained difference in the number of ballots for the VVD and an explained difference for the NSC where it states that the ballot was found with the DENK. From this I understand that the ballots were bundled per party. For the PVV there were nineteen less ballots counted and for the DENK seven (including the one that belonged to NSC). This indeed a bit strange. The electoral council advised against a recount, because they concluded that a recount would not change the outcome of the election. The House of Representative voted to have the ballots of four polling stations to be recounted. In the past weeks, already many recounts have been performed when people complained that they did not see their vote on a specific candidate. In many cases this lead to a correction, in some not. (There must be cases where voters made mistakes as well marking their ballot either by marking a different candidate or by marking way that made it an invalid vote. A ballot is counted as invalid if not exactly one circle has been marked with red or when the ballot contains text that could identify the voter, such as a name.) There are 15 pages with comments, recounts and/or recorrections in the report from the election counsel.

I did get a reply from independ observers. They acknowledge the error and said that it was going to be corrected on their website.


Monday, December 4, 2023

2.5 cm of snow

This morning, there was about 2.5 cm of snow on the table in our backgarden. However, not all the ground was covered with snow. The snow was mostly on the trees, the plants and the grass. During the day it quickly melted away. The temperatures are going to rise in the coming days. Below a picture that Conny took of our backgarden.


Wednesday, December 6, 2023

Decompiler Explorer

I uploaded the M0 program produced when executing the i386 emulator to the Decompiler Explorer to see what it would produce. I looked at the input produced by the four decompilers that are selected on default. I noticed that the decompilers angr and Ghilda ignore the interupt 0x80 calls, which are rather essential for understanding the code. There is not even a comment about some part of the machine code not being included. Binary Ninja does include them, but has a hard time dealing with arguments that are passed through the regsters. The functions are annotated with __convention("regparm"), but the function bodies contain nonsense declarations of variables with the names of the registers. Also the results of interupts are not returned correctly. It looks like IDA Pro by Hex-Rays, a commercial solution, performs the best. I downloaded the source and tried to compile it. I made some edits, but did not make much progress. I decided to leave it at this for the time being. I tried the other decompilers. Boomerang and dewolf reported an error not being able to decompile the file. RecStudio did produce some output, but I could not locate any interupt 0x80 calls. Reko, Relyze, and RetDec do recognize the interupt calls, but seem to have a hard time with handing passing values through registers. Snowman does generate structure definition and also seems to deal well with the register passing, but does not process the interupt 0x80 calls. It also generates some illegal C(++) syntax. I the M2 program to decompilers behaved, because it has a different calling strategy.


Wednesday, December 13, 2023

Debugging the emulator: generating code

In the past weeks (since November 28), I have continued on debugging the emulator. I have done this by implementing a code generator that can generate a program with the same behaviour as that of the interpreter with the idea of being able to debug the code. It seems that the generated program has the same behaviour as the emulator. I am now in the process of comparing this behaviour with the source program.


Thursday, December 14, 2023

Book

At 15:05, I bought the book '60 '80, Attitudes, Concepts Images written in Dutch and English and published by Stedelijk Museum in 1982, ISBN:9789060125267, from charity shop Het Goed for € 3.50.


Friday, December 15, 2023

Enschede Lights Up

Conny and I went to the Enschede Lights Up event, just like we did a year ago. We again recieved two glow sticks when I went to get the booklet. We both liked the 'Digital Forest' installation with over 100,000 LEDs, the best.


Saturday, December 16, 2023

Harvest

This morning I cycled to Herenboeren Usseler Es to collect my part of the harvest for the last time this year. There was hot chocolate and mulled wine. A group was singing outside and there was also someone who was going to blow a midwinter horn a little later, but that was after I left. What you get depends on the number of mouths you are paying for and what choice you make when there are options to select from. I brought the following home: They can be seen in the picture below:


Sunday, December 17, 2023

Advent of Code, Day 17

I woke up at 5:52, stayed a bit in bed and decided to get up and give todays Advent of Code puzzle a try. At 6:02, I opened my laptop and started reading. I solved both parts of the puzzle at 7:08. Although, I have decided to take a relax approach this year, like I did last year, I notice that I still become competitive when I start early like today and that as a result of this I become nervous and making more mistakes than I should. This year, I am trying to implement correct solutions in one time, taking some time to think over everything carefully. Most of the time, I only have to fix some syntax mistakes to get the correct answer. Today, I ignored several compiler warnings, that could have helped solve the bugs in the code I had written. Todays experience made me aware again that when competing in mental games (just like playing chess or go) the greatest challengs if often to keep your mind under control and not be overcome with your nervousness.


Tuesday, December 19, 2023

Square polygons

Yesterdays Advent of Code puzzle was about calculating area of a polygon on a grid. Because the input polygon was not self-overlapping, the answer could simply be found by use of Pick's theorem. If the polygon would have been self-overlapping and the question would have been to determine the area inside the most outside lines of the polygon, the question would have been much harder. Yesterday, I thought I could solve this keeping tracks of minimum and maximum values on each line (for example the most left and right squares on each horizontal line) and I wrote an implementation for this only to find out that it does not work. I am well aware of libraries, such as Clipper2 - Polygon Clipping and Offsetting Library and polybooljs, which implement algorithms for operations on polygons. I have been thinking about an implementation for the case of square polygon where all edges are horizonal or vertical connecting points on a grid, or even more close to the puzzle, consist of squares on a grid that touch at the sides.

Scrum Master

Someone approached me with the question what I would feel about becoming a Scrum Master, which is an important, maybe the most important role in a team that follows the Scrum software development method, which is said to be a agile software developement method. The first agile software methode that I came in contact with is eXtreme Programming (XP). (I have never been able to practice XP in a job.) Later, I heard about the Manifesto for Agile Software Development, which basically consists of four statement, where the first one is: We have come to value individuals and interaction over processes and tools. I think that this statement should be true for every software development method because people are central to software development. Earlier this year I wrote about my life of a software engineer and why I think that software developing is a very demanding task. I have developped software with and without Scrum and I come to the conclusion that I am more effective when working without Scrum. This is partly due to how it was implemented and the people who fullfilled the various roles at the working places where it was used. I have several experiences where people were given the role of Scrum Master who did not have the personal qualities for the role. I think it is an error to ask people who admire a leadership position for this role. I also think that most software engineers are not good Scrum Masters and that maybe it is better to ask people outside the field of software development who have a job coaching and/or psychological background. They should be at least people who understand the needs of software engineers. And that is not something you automatically have after you followed a on-line course and received a Certified Scrum Master title. In the past years, I did have had some good experiences with team leaders who simply helped me dealing with work related issues.

At my current job, we do not have daily-standups. We just have one meeting per week and it only lasts one hour where report what we have been working on. We just use a rather chaotic development method. Of course, we keep a list of issues with some prioritization, but for there rest everybody just picks issues that we feel comfortable to work on. We just communicate with each other when needed, either face-to-face, but probably more often through one of the several messaging apps or our group chat. I do not miss the daily-standups, a common practice with Scrum, and I even got conviction that they are not the right solution to the problem of a lack of communication between team members and might even hamper normal communication during the working day.

I am rather introvert and I know that meetings, especially with larger groups, drain my energy. I still have a deep need for time on my own, to work on complex problems. I do know that I am strongly motivated in my work, when I can help others, no matter in which way. I also like helping others figure out how they work best, deal with their weaknesses and to help develop themselves. I am well aware that software development is a team effort and it makes me happy when a team functions well and everyone feels happy. I think I am good at resolving conflicts and helping to find solutions that both parties can work with. I have a lot of experiences with developing software and I would like to pass this on to the next generation. One way of doing this is to take upon me the role of 'Scrum Master', but probably not in combination with the Scrum development methode. Because Scrum has so many processes, that you have to follow in order to claim that you do Scrum, I wonder whether it does adhere to the Agile Manifesto and thus can be considered as a true agile development method.


Thursday, December 21, 2023

City archive

This afternoon, I went to the city archive because I had discovered that they had a document about a narrow gauge to the Usselerveen moor that from 1926 till about 1954 was used to transport garbage from the city to a dump. I wanted to know if I could found out where exactly this narrow gauge was running. When I arrived at the archive, I discovered that it was not a single document but a folder with all kinds of materials including several maps about the plans. I made several pictures of the documents. Later, at home, I spend some time to create a KML file (in Google Maps) with the estimated location of the tracks. Besides Google Earth, I made use of the following websites: It looks like the tracks ran along a bike path for far from our home. The bike track is slightly elevated from the surrounding streets.

Exhibitions

While I was in the city, I also visited two exhibitions at Concordia. I first saw the exhibition Iemand en Niemand with drawings/paintings by Astrid Oudheusden. Upstairs I saw the exhibition Liefde Houdt Ons Bij Elkaar with works (paintings, drawings and some sculptures) by six artist from Syria who came to the Netherlands as refugee. I liked the works by:


Monday, December 25, 2023

Adent of Code

Yesterday, I spend a lot of time working on the first part of the puzzle of Day 24 of Advent of Code. I did not finish the second part. I also have no clear idea how to solve it. With a low-level language like C without the help of packages to solve equaltions and/or inverse matrices, it is a rather difficult puzzle, only solvable for people who have solved it before and are versed in the field. I woke up early this morning, I could not fall asleep again, as I am usual able to do, because the puzzle kept on going in my mind. I am not sure whether I should continue working on this or that I better work on one of my other projects. I always get annoyed when other are able to solve a certain problem and I not. I just saw that todays puzzle is a graph connection problem. Simple to describe but probably hard to solve, unless you know the trick.


Tuesday, December 26, 2023

Flooding

Some rivers in the Netherlands are having high water levels and in several locations sandbags are used to prevent flooding. There are also mentiones of many reports of water nuisances in crawl spaces and basements of hourse. When we went walking through the neighbourhood we had take some detour because an alley was flooded. We saw also saw large pools of water in some of the fields. Yesterday, when we went walking with Annabel and her partner, to the fields of Herenboeren Usserler Es we saw some water pools there as well. I did check our crawl space to see if it had any water, but it was dry. We have had a lot of rain in the past months. This year is going to be wettest on record. It looks like this year is also going to be hotest on record. I you look at the Daily Surface Air Temperature you will see that this year temperature has been the highest for more than half of the year and at some days breaking the previous record with 0.7° Celsius. Sinds may the Daily Sea Surface Temperature has been breaking records everyday since mid May for the Word (60S-60) and North Atlantic (0-60N, 0-80W). Although the Antarctic Sea Ice Anomaly seems to be over it it still kind of shocking to see how large it was compared with the past years.


Thursday, December 28, 2023

Nico

I finished reading the book You Are Beautiful and You Are Alone: The Biography of Nico written by Jennifer Otter Bickerdike, which I started reading on July 23 this year, after I bought it on July 18. It is quite a tragic story. She definitely is not the only female artist who does not receive the recognition that she deserved. I was impressed by the amount of sources that the author has researched. On October 28, I listed some videos about Nico.


Friday, December 29, 2023

Advent of Code

In the past days I was a bit under the weather with a fever. I did spend some time working on the last two Advent of Code puzzles. It took me a long time to solve the second part of the puzzle of December 24. At the end I did have a peak at the video Advent of Code 2023 Day 24: Never Tell Me The Odds, which made me realize that I had ignored an important fact that helped me solve the puzzle. I last puzzle was related to finding a 3-cut in a graph. I already the problem om December 25 and spend some time thinking about it. Today, I tried out the approach that I had in mind. In the end it turned out to be the right approach. I struggled a long time with it due to a bug in the function to parse the input. Maybe I should have spend some time to reproduce the input from the internal representation. For all the details see AdventOfCode2023 on GitHub.


This months interesting links


Home | November 2023 | January 2024