Previous Up Next

Diary, December 1996

 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 10, 1996

It more than a week ago that I wrote something in this only diary, and I have a feeling of falling behind on many things. So, I am going to write some things about what happened in the past week.

Huygens satalite

Huygens satalite is going to be send to Titan, the only moon in our solar system which an atmosphere. It will carry a CD-rom with on it the signatures of a large number of people. I have enlisted Li-Xia, Annabel, and myself.

Tripterygium Wilfodii Hook

Today, I did a search on Tripterygium Wilfodii Hook, which is a herbal plant growing in South China, which has proven to be a good medicine against Rheumatoid Arthritis, but also has been called the Male Infertility Plant.

Thursday, December 12, 1996

Li-Xia phoned me, she said `Do you know which day it is?'. This usually means that something special has happened on a day with this date. When I realized that today is the the twelved of the twelved, I remembered what she was hinting at. Today it is four years ago, that we first talked about being in love with each other.

And, Yes, I am still in love with her. Especially, the last weeks this feeling of being in love has been growing stronger again.

Physical versus Spritual

The last week, I haven't feel too well physically. Not realy ill, but almost. And that may even be worse, than being ill. I might get ill. But realy, that would not be nice, because I have to go to a meeting in Darmstadt next week.

But spiritually, I have been feeling well. Especially, reading parts of Keys to the Song of Solomon, by Lambert Dolphin, has made me feeling closer to God.


There is more, I would like to tell, but it seems that has to wait until later (maybe tomorrow).

Friday, December 13, 1996

Hello, here I am again, continueing the story, I started on

Security bug

One of the most common security bug is caused by a legacy problem. In the past when most computers did not use virtual management, it was considered a good design to make the run-time stack grow downwards. With virtual memory the most logic design would let the run-time stack grow upwards in a separate segment.

If a stack runs downward, and you have a procedure having a local string buffer (and that is often the case), and if the procedure does not check against buffer overflows, you can overwrite the return address on the run-time stack. Such a hole can be used to call a system procedure. If the run-time stack grows upward, this can never happen.

About programming

If you really think about it, the main reason why we still spend so much efforts in programming, is because computers are too slow. Programming is implementing existing algorithms on new data structures. (More to say later.)

Talking with Annabel

At four 'o clock, I phoned home. Li-Xia gave the phone to Annabel, and I talked with her. It looked like a real telephone converstation. She said `Hoi Papa', and after that started to tell me some story (which I did not follow). When I asked her whether she was going to bed (something she does not like), she said `Nee'. And finally, at the end she said `Dag'.

Monday, December 23, 1996

Only two days working left this year. Many of my colleages have taken of some days. And because the students are also off, it is rather quiet in the building.

The Art of Programming

Programming is sometimes called an art. Lately, I have been wondering whether it is an art, or a technique. For example, what do the following two programs in common?
void main()
{   int n500 = 0, n250 = 0, n100 = 0, n25 = 0,
        n10 = 0, n5 = 0, a = 500, m = 0;

    while (a >= 0)
    { while (a >= 0)
      { while (a >= 0)
        { while (a >= 0)
          { while (a >= 0)
            { m++;
              n10++; a -= 10;
            a += 10 * n10; n10 = 0; n25++; a -= 25;
          a += 25 * n25; n25 = 0; n100++; a -= 100;
        a += 100 * n100; n100 = 0; n250++; a -= 250;
      a += 250 * n250; n250 = 0; n500++; a -= 500;
  printf("Number of combinations is %d\n", m);
void main()
{   int m[100][5];
    int i,j;
    int v[] = { 2, 5, 20, 50, 100 };

    for (i = 0; i < 100; i++)
        for (j = 0; j < 5; j++)
            m[i][j] = 0;

    for(i = 0; i <=500; i++)
        for (j = 0; j < 5; j++)
            m[i%100][j] =   (j == 0 ? 1 : m[i%100][j-1])
                          + m[(i + 100 - v[j])%100][j];

    printf("Number of combinations is %d\n", m[500%100][4]);
The answer is that these programs both print the value of c(500, {5, 10, 25, 100, 250, 500}), where the function c is defined as follows:
   c(a : posint, {v_1, .. , v_n} : P posint)
   = count({ { (v_1, c_1), .. , (v_n, c_n) } : P (posint, posint)
           | v_1 * c_1 + .. + v_n * c_n = a })

Sunday, December 29, 1996

It's one of these empty days between Christmas and new years eve. Today it finally started
snowing after one week of freezing temperatures. I do not know whether I should be happy about it after I heared on the 10 'o clock news that several people have died in car accidents. Here in the east it is not exceptional slippery, but in the west of the country this seems to have been the case.

Home | November 1996 | January 1997.