Previous Up Next

Diary, May 2001

   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, May 1, 2001

Chestnut tree

This morning,
Annabel and I brought the car to the garage for repair. From the garage we walked to the city, and looked around a little bit. Then we went home with the bus. When we arrived at home, we saw that our little chestnut tree in the front garden was broken off. We also found the broken top. Apparently, some child from the neighbourhood broke it off. I asked around a little, but nobody had knew anyhting about it.

Later we put the top in a small bottle with some water. The droopy leaves turned strong again. Maybe it starts growing a root again, and then we can plant it again. Maybe the part that is left in the garden, will start growing again. Then we have two chestnut trees. I am thinking of putting them in a large pot in the back garden, and only put them in the front garden when they have become to tall to be considered just as some weed.

Reverse engineering the Quark Xpress format (Part 12)

The new Quark Xpress file caused for some new constructs, most of them are rather minor. But one thing has been causing me a lot of trouble. It appears that some box records are followed by an additional 12 bytes of data. I have not been able to find an easy way to determine when this data is present and when not. I found some way to parse the whole file, but I am not very happy with how I solved it, because it is not a very generic solution. This solution is likely not to work with yet another file. And that bothers me a lot.

Wednesday, May 2, 2001

Movie: Apollo 13

This evening, I watched the movie about the flight of
Apollo 13, during which an accident happened. I was amazed of the amounth of hacking that they performed to get the crew save home again. I also made me think about the description of the Apollo Guidance Computer that I once HTML-ized.

Friday, May 4, 2001

Reverse engineering the Quark Xpress format (Part 13)

Yesterday, I finally was able to parse the right document. Then I could compare the page layout with the boxes. This revealed a lot of interesting information. I also discovered that there is a rather simple relationship between the boxes and the text fragments. In each box there is a text identifier. Everytime when there is a new text identifier, the next text fragment should be assigned this text identifier. Whenever a box uses a text identifier that has been used before, the text with that identifier should be used. Whenever a text is used in more than one box, an offset is given that specifies from which character the text starts in that box. I also discovered some other things, and I figured out a way how I could dump all the boxes with their texts page by page. One of the small things I discovered was that the only unknown element that had not understand for the data representing all text, appeared to be length of the text fragement.

Until now, the program only has been reading and dumping contents. To be able to do dump all necessary information per page, I will have to change the program such that all data is stored. Today, I spend most of the time rewritting the program. I did spend some time figuring out a flexable way of printing out the data. Finally, I discovered that the best way to do it in C is to use an iterator, instead of using a strategy. First, I was thinking about using a strategy pattern where the printing was done in the strategy. But this requiers that you create an object for the printing strategy, which you pass to the function traversing the text with its formating. This solution appeared not to be so elegant in C. In C++ it would be easier. Next, I looked to the iterator pattern, where you create an iterator for the text with its formating, which will return information per character. Its appeared to be the right choice here. Apparently, not all patterns are as easy to implement in C then that they are in C++. It seems that for the strategy pattern you will at least need an abstract class, whereas this is not needed with the iterator solution.

(Previous and next part)

Friday, May 11, 2001

Availability of my home page

Today, I was phoned by someone from my ISP telling that they had discovered the problem with my home page, and that they hope to repair it next monday. Already since April 6 you would get a
"403 - FORBIDDEN" error, whenever you would try to read on of my pages. I had to send several emails and phone several times with the helpdesk before the problem received some attention. It is a good helpdesk in the sense that you do not have to wait long, but it seems that the communication between the helpdesk and the technical department is not very good. Only now I know that the problem was not a general problem, but specific for my account. Also the errors that I pointed out in the response page (which is only in Dutch) were not repaired. I have been quite disturbed by this. I wonder how many people have removed their links to my page.


Astronomical birthdays

Normally, we celebrate our birthday on the day and month as when we were born. However, an astromical year consists of 365 days, 5 hours, 48 minutes, and 46 seconds. Because this is not exactly a whole number of years, we need some leap day to compensate this every 4 years. But because the year is not exactly 365 days and 6 hours, the leap years compensate a little too much. That is why every 100 years we do not have a leap day, except when it is a multiple of 400, like we had on February 29, 2000. If we would celebrate our astronomical birthday, defined as the day that become a multiple of 365 days, 5 hours, 48 minutes, and 46 seconds, then our birthday would be on different dates. Some of us might even have to celebrate their astronomical birthday twice in the same year (which must be a leap year). And because the year 2000 was a leap year, the date of our astromical birthday is likely too be more early every year that we get older. By celebrating our birthday on the same day and month every year, we tend to celebrate our birthday more and more often too late.

Saturday, May 12, 2001

Andy has a girl friend

Once every two weeks, Andy also goes to the special daycare center on Saturdays. This is a special service from them, so that you have some time off. We enlisted Andy, also because he likes it there so much. He also likes to ride the taxi minibus. During week days Andy is the first one that they get in the morning. On Saturday there are always some other children in the minibus. One of them is Mette, who always shouts "Any" when she sees Andy. They used to be in the same group for some time. When we told Andy about this morning, he reacted very enthousiastic. When I asked if Mette was his girl friend, he said "yes". We had to laugh about this, but it also made us happy to see that he is interacting with some other childeren of his age, something that he has not been doing much so far.

Sunday, May 13, 2001

One year later

Today, it one year ago that the terrible
fire-works disaster struck Enschede. There was a possibility today to walk around the disaster area. I had liked to go there, but it did not work out.

Reverse engineering the Quark Xpress format (Part 14)

In the past days, I continued on verifying the hypothesis that the text fragments are used in the order as they are used in the box records. I did have some considerable problems with indentifying which box records used a text and which not. But once I had established this, it indeed appeared to be correct. It appeared that the box records that have the additional 12 bytes of data are empty boxes, which do not use up any text fragment. The problem is that I haven't found the mechanism yet for predicting when the 12 bytes of extra data appear and when not. So I am back to the problem that I stumbled on on the first of this month, and I also fear that the way-around solution that I have come up with, is not a very generic solution. I have no where seen any look-ahead constructions in the way the data is stored, which means that there must be a deterministic method of determining when the extra 12 bytes appear and when not.

Monday, May 14, 2001

Mollusca contagiosa

This morning, we took
Andy to the hospital for is half year check up. He weights 12 Kilo now and is 92.5 cm tall. Both his weight and length are far below the 3 percentile line now, but relative to his length, his weight is above the 10 percentile line, which is okay. We had noted some bumps on his back lately. The doctor concluded that these are dimple warts (mollusca Contagiosa), a harmless virus infection that will heal by it self. It lasts between six months and two years.

Afterwards we brought him to the day care center where he is going, and we saw the other children in his group. It surprised me that although all of these children are handicapped, everything goes very in an orderly manner.


My home page is available again! They kept their word when they told me last Friday.


Tuesday, May 15, 2001

Tom Gilb about EVO

This evening, I attended a lecture by Tom Gilb about Evolutionary Result Delivery (EVO) organized by CMG as part of their Guru4Pro program. It was preceded by a free dinner, which in itself was enough reason to attend the meeting. The lecture started at 6 o'clock and lasted till a little after 10, with two 10 minute and one half hour break It was only around half past eleven that he left the building. All the time Tom ("Call me Tom, otherwise I feel as old as I am") has been talking. His energy and enthousiasm seems to be without limit.

After the half hour break, their was an opportunity to ask questions. Because until now, I had felt that everything what he told seems to be very much like eXtreme Programming (XP), I dared to bear the brunt to ask a question about it. I received, what I later understood to be his standard reply, that XP was based on the same principles as EVO but had gone its own way. Tom furthermore said something like that XP is used by hackers to justify their way of working.

He also made some statements about pair programming. He had asked Kent Beck about some quantitative measurements about pairing. He said that Kent Beck had replied him that he did not need any quantitative measurements, because for him it worked. (I can perfectly imagine Kent Beck stating something like this. If you have experienced that something works for you, you indeed do not need a proof that it does work.) Tom also told that he had contacted the person from whom Kent Beck got the idea of pair programming, and asked him if he was still doing it. The answer was that the managers had forbidden it. This might suggest that managers think that their are no benefits for pair programming.
I replied that some research has been done with respect to the benefits of pair programming.

After the meeting, I asked Tom about his definition of a hacker. He said something like that a hacker is a person who enjoys programming for the programming, and is not focused on generating business value. This is not exactly the definition of a hacker as it is commonly understood by hackers. Yes, indeed a hacker is someone interested in playing with computers and getting to know all the details of a system and solving things in a smart way. But that does not mean that hackers could not be focused on generating business value as well. Furthermore, I think that the planning game is very much focussed on generating business values. Also XP has the principle to do the simplest thing possible. So, even if you are a hacker by nature, when using XP, you are forced to only do those things which will generate business value for the customer and nothing more. Of course, there is a difference between how "business value" is defined in EVO and XP. EVO uses so called Quality Dimensions which act as a goal you are aiming at. With XP the customer has to assign points to each requirement (called "user story"). Thus within XP the final goal is not made explicit. However, the question is whether these different methods of defining "business value" do differ in the end. Especially for the type of projects that XP is intended for, it might be the case that the way XP does it, is the most pragmatic way to implement EVO style of working, or maybe even better because EVO requires you to do a lot of work with defining your Quality Dimensions, measuring them accurately, and doing all the required book keeping. Of course, there are many kinds of project, both large and small, for which EVO is much better suited than XP.

So, I think that Tom Gilb is not right when he is saying that XP is only a means for hackers to justify their way of working. I find it a pity that he is connecting XP with a word that has a negative connontation with the general public, while XP is in reality applying all those key principles that lies behing EVO within a certain limited context, and doing this in a very succesful way. But anyway these kind of statements are typical for Guru's. It would be interesting to ask Kent Beck what he thinks about EVO.

When I talked some more, I also discovered that his opinion about XP is not as strong as I though it was. He also asked me to keep him informed about the developments with respect to XP. I promised to give him the figures about pair programming. When saying goodbye, I thanked him for having met him and the time we spend together talking with each other and others. I am happy having met him, even without getting his autograph in his book Principles of Software Engineering Management, which was handed out for free after the lecture.

Thursday, May 17, 2001

Andy knows where his shoe is

Andy often loses his shoes because the shoelaces are rather slippery and thus get loose very easily. This evening, we could not find one of his shoes any more. As a last resort we asked him if he knew where it was. He pointed to the hall, and indeed there was his shoe. Looks like he remembers these kind of things rather good.

Reverse engineering the Quark Xpress format (Part 15)

In the past days, I continued on verifying the hypothesis that the text fragments are used in the order as they are used in the box records. I did have some considerable problems with indentifying which box records used a text and which not. But once I had established this, it indeed appeared to be correct. It appeared that the box records that have the additional 12 bytes of data are empty boxes, which do not use up any text fragment. The problem is that I haven't found the mechanism yet for predicting when the 12 bytes of extra data appear and when not. So I am back to the problem that I stumbled on on the first of this month, and I also fear that the way-around solution that I have come up with, is not a very generic solution. I have no where seen any look-ahead constructions in the way the data is stored, which means that there must be a deterministic method of determining when the extra 12 bytes appear and when not.

Yesterday evening, I got very depressed about this. Tonight, I decided to analyse the first part of the binary data to find out more about the character and paragraph formatting. This proofed to be rather succesfull.

(Previous and next part)

Friday, May 18, 2001

Pair programming

I read some articles about pair programming because Tom Gilb asked me some questions about the effectiveness of pair programming. In the paper "The Costs and Benefits of Pair Programming" by Alistair Cockburn and Lauri Williams it says "Significantly, the resulting code has about 15% fewer defects". If I look at the accompaning graphs, I see that the number of post development test cases that passed went up from about 75% to 90%. This means that the number of passed test cases went up with 15% in the scale, which is an relative increasement of 20%. However the number of failed test cases went down from 25% to 10%. That means that the number of defects went down to 40%. It thus has 60% less defects, not 15% as mentioned in the article. Popular saying you could conclude that pair programming produces more than twice as much quality in only 15% more time. Or taking the 15% in account, the quality produced by pair programming is about twice as much.


This afternoon, Annabel and I attended the wedding of Paul and Elisabeth, two people from our church. I already know Elisabeth for a long time. About ten years ago, I often visited her family.

Saturday, May 19, 2001

De Winckelsteegh

Today, I went to a day organized by the
V.O.K.C.V.S, which was held at the 'Winckelsteegh'. At the 'Winckelsteegh' is the only eating therapy group for children with a (suspected) development delay in the Netherlands. Today, they had the official opening of their new unit. It was very interesting to hear how they are able to get children who are fed by means of a tube to eat again from a spoon. There success rate is rather high. They already having this therapy for more than ten years, and because of this have build up a lot of expertise in this area. Because Andy also has a development delay, he could go there. But because the Winckelsteegh is in Nijmegen about one and half hour driving (if there are no traffic jams) it means that Andy would have to stay there during the week and only stay with us during the weekends.


Monday, May 21, 2001


Today, the date and place of the wedding between
Alexander and Máxima was announced. It will be in Amsterdam on February 2, next year. A date never to forget indeed: 02-02-02, the next nice date. Because there was a choice between Amsterdam (our capital) and The Hague (the city where our government is), the major of Amsterdam was very happy to announce that the wedding was in Amsterdam. He also hoped that he would given the right to marry them before the law. A interesting detail is that he also married the first four homo couples on April 1.

Last Saturday, the brother of Alexander got married (before the church) with the daughter of the minister of argriculture. (The already got married before the law two days before.) During this event Alexander read some scripture from the bible. If I am not mistaken, it was John 15:9,10. I wish he would fully understand what that scripture part means, and that he would apply it in his personal life. The Royal family belongs to one of the mainstream protestant churches in the Netherlands, and the prince himself has said that he is a believer in some interview. In what he did not explain. Máxima is Roman Catholic, and it is not clear so far whether she will remain Roman Catholic or become protestant. Some say that because she already made so many sacrifices to be able to marry Alexander she might remain Roman Catholic. It is my prayer that the two of them will investigate the religion they received from their parents, and find true faith in Christ Jesus when thining and talking about the differences.


Tuesday, May 22, 2001

Reverse engineering the Quark Xpress format (Part 16)

Yesterday evening, I worked hard to combine all the data from the frames and the texts into a single output format using some XML-like style of storing the data. In the output the text is presented per page and according to the frame layout. Everything looked fine, excepts at the last page some texts were mingled up.

Tonight, I decided to investigate this problem. I quickly found the cause. The hypothesis was that the texts were used by the frame in the same order as they are needed. In the frames the texts are given some kind of identifier. I already had noticed that these were in increasing order. But for the last page this was not the case. Apparently, you have to collect all the identifiers used for texts, sort them, and then assign them to the texts as they occur in the file. As this is a rather complicated way of doing things, it makes me suspect that the identifier is somehow associated with the text in a different manner. Such a mechanism could also tell when a frame has no text, another problem that I haven't solved yet. So the hypothesis is that the there is a mechanism for associating identifiers with texts. The rest of the evening, I have been searching for such a mechanism, but to no prevail. I am getting the strange feeling that it is hidden in a place where I haven't looked yet.

(Previous and next part)

Thursday, May 24, 2001

Ascension day

Today is Ascension day. 22 years ago, on Thursday, May 24, 1979, it was also Ascension day. I remember that day very well, because it was the day
I became a Christian. So, actually, it is my 22nd spiritual birthday today.


Soccer has never interested me, maybe because I am a nerd. As a young boy I never understood what was so interesting about running behind a ball and kicking it further everytime when you got at it. Yesterday evening, the soccer club of Enschede 'F.C. Twente' won the Amstel bowl. Today, this was celebrated. This was the first after the fireworks disaster the our city did have a reason to celebrate something, and the victory was celebrated. We did not join the celebration but by accident we saw the open coach carrying the team from the townhall to the soccer stadium where a celebration was held. We also saw a glimps of them carrying the bowl.

Sunday, May 27, 2001

Sick spam message

Spam messages come in all kinds of forms. Today, I received the first spam messages (if I am not wrong) on the email address of the
Dutch Kabuki Syndrome home page. It started with the lines: When I thought about this, I really felt this was a rather sick spam messages, as one of the most typical feature of the Kabuki Syndrome is certain facial abnormalities. Not all people with the syndrome have it so strong, but there are some in which it is unmistakeble. I cannot imagine that Roger McKenssy, the sender, send this message on purpose to this email address, but nevertheless, it shows how sick spamming can be.

Tuesday, May 29, 2001

Andy can say his name

Li-Xia asked Andy: "Whoes mother am I?" And as a reply, he started pointing at himself, and pronounced his name. This morning, when I woke him up, I tried out the same question. And also to me he gave the same response.

Making a CD label

Last week, a colleague wanted to make a CD-Rom label with some small application. For this he had to define a rectangle on the label layout. Trying out different places for the rectangle, he disovered that the area also changes in a non-linear way. The question is how to place the rectangle, such that the area is maximal.

To find this answer, we define the radius of the outer circle as one, and of the inner circle as equal to r. Lets assume we put the rectangle exactly in the middle of the top half of the label layout. The bottom of the rectangle now touches the inner circle at the point (0, r), and the upper corners touch the outer circle on the points (-xy) and (xy). Of course, x2 + y2 = 1. The area of the rectangle is then equal 2x(y - r). Now we need to optimize the value of x such that the area is maximal. One way yo do this is to express y in terms of x and determine the zero points in the first derivate of the expression of the area. But this is not the most clever way to do it. For x and y we substitute sin(alpha) and cos(alpha). The area is now equal to twice sin(alpha)(cos(alpha) - r). The first derivate of this expression is:

Using sin2(alpha) + cos2(alpha) = 1, we can rewrite this into: Which can be rewritten as x2 - r.x - 1. This is a simple second order polynomial. From this we can find that the optimal value of x for a given value of r is equal to (r + sqrt(r2 + 8))/4. The expression for the the maximal area for a given r is left as an exercise to the reader.

For the particular label r is about 0.36. This results in an x value of about 0.803 and an y value of about 0.596. This gives a surface of about 0.1897. The outer diameter of the label is 11.4 cm. The real maximal surface is thus about 6.163 cm2.

The pill of Drion (Cont'd)

Today, I read that some questionair had revealed that about 46% of the Dutch have nothing against making the a suicide pill available for old people who are tired of living. 15% of the people feel that the pill should be available without constraints. The questionair also revealed that under people older than sixty there are much more people against makeing it available.

Thursday, May 31, 2001

School trip

Annabel has a school trip to a place called 'De spelerij' in a city called Dieren. When we drove from Enschede to Almelo, the sky became darker and darker. Close to Almelo, I saw a light flash in a cloud, and when we came close to her school it started pouring rain. Within minutes the streets were flooded with water. I gave her an umbrella when I dropped her before the school. And then to think that in the past weeks we had very sunny weather with high temperatures.


This afternoon, after Andy had come home and while he was sitting in the living room, he called out "Mamma", the Dutch for mommy, because he needed help. This was the very first time that he called someone in this way. Of course, Li-Xia got a very warm feeling inside when she hear Andy calling her.

Green electicity

The term "green electricity" is used to denote electricity that is generated by means of environmental friendly methods. Earlier this week we received some offer to start using green electricity instead of the normal electricity. Because I had already considered about starting to us it, I was quite open to this offer. In this offer they explained that it is not really more expensive, because you do not have to pay the eco-tax that you pay for the normal kind of electricity. What made the offer extra attractive is that they a half year subscription to the Dutch edition of the National Geographic for free. We decided to accept the offer.

This evening, I saw a news item about a nearby city that had been labelled as the first "green electricity" city because most of the people used green electricity. When they told that from the first of the next month that you were free to get the "green electricity" from any of the electricity companies in the Netherlands, I suddenly understood the reason behind the nice offer. But when one of the directors of our electricity company remarked that they were going to make big money from the "green electricity" I felt like being tricked into somethings. Appearently, the electricity companies can make a lot of money from the green electricity more than from the normal electricity probably because they can sell it a higher price, because the people don't have to pay the eco-tax.

In the same news item some expert said that the Dutch electricity had actually not become cleaner although more people use green electricity. The reason behind this is that the Dutch electricity companies are now buying more electricity from abroad, which is cheaper. The reason why it is cheaper is that in the countries arround us the environmental constraints for producing electricity are less strict then in the Netherlands. So, at one hand the electricity companies have made investments to produce green electricity, but they have financed this with buying cheap and dirtier electricity from elsewhere. It looks like the government is indirectly giving money to the electricity companies by putting eco-tax on the normal electricity. At the moment the government is also in the process of making the electricity companies private, with the idea that competition will lower the prices for electricity. The first step in this process is allowing people to decide for themselves from whom they buy their green electricity. The funny thing is that in the past months there have been several commercials from electricity companies trying to associate a warm feeling with their company, as if electricity is something with a feeling, while they really have no service to offer yet. How smart they are.

Home | April 2001 | June 2001 | Random memories.