Geolizer patch to webalizer
Sunday, December 19, 2004, 23:18 - Software
I'm using webalizer to analyze my web server access log files, and I noticed that many IP addresses could not be translated into a name automatically, resulting in an "Unresolved/Unknown" percentage of about 50. I would like to have as many hosts grouped in .com, .net and the country codes as possible.

I came across this article on optimizing Apache server performance. They amongst others recommend turning off HostnameLookups completely in Apache for performance reasons and do any hostname lookups only when processing the log files.
I found out that webalizer has its own DNS lookup mechanism and tested that a little. But still about half of the IP addresses could not be resolved.

Then I came across this geolizer patch for webalizer. It uses the GeoIP library to generate faster and more reliable geographic statistics than using the default DNS suffix method.
Now I only have 20% unknown, and that seems to mostly come from hostnames that already have been resolved in the past. From now on I will only be using IP addresses and I have good hopes that the hit rate then will be even better.
Saturday, December 18, 2004, 22:45 - Personal
If you ever happen to be in The Hague looking for a nice cafe-restaurant, I definitely can recommend rootz.
We went there Friday night with a couple of colleagues and had a great time. The food was very good, and the drinks were as well :)

Another small .NET project
Friday, December 17, 2004, 01:29 - Programming
Today at work I had to do some performance testing on our intranet. When we use a java applet on the intranet, it takes very long to load the homepage. We suspect that it is caused by the virus scanner, because when you turn that off, it seems to load faster.

But to prove anything we of course need hard measurements. First I tried using a web stress tool, but it appears to not load up the java applet at all, as the response times are too short.

So I decided to whip up a simple .NET tool using the Microsoft Internet Explorer ActiveX component as described in this article on
When you load a page using the Navigate method however, the call is done asynchronously so the call immediately returns. This makes it impossible to get relevant timing.

So I used the Navigate2 method and added an event handler to the NavigateComplete2 handler. That event is fired multiple times before the page is fully loaded, so I had to trick it a little to get the last event as the total time needed to load the web page.
But now I can select how many times the web page should be loaded and I collect a nice min/avg/max load time. Timing is written to a log file for later analysis. Simple, but it seems to be capable of doing what we need.

Only problem we haven't tackled yet: how to get the plugin to use the Sun java virtual machine instead of the MS VM.

BTW: I love the way you can add event handlers in the .NET 2003 IDE! After you type "axWebBrowser1.NavigateComplete2 += " the IntelliSense autocomplete kicks in, and by pressing TAB twice, you have added a handler with the correct signature. Now you just need to add your code there.

BTW2: Here it is promised that IntelliSense in Visual Studio 2005 will be even greater! Still need to wait half a year for that one though...

Dutch government: Linspire or MS Windows?
Thursday, December 16, 2004, 03:05 - The News
Recently the Dutch government announced that it is about to close a deal with Microsoft for a 5 year software contract for 260.000 computers. As an amount of about 150 million euro is involved, some parties are protesting that there should have been an open-bid process, which is required by European guidelines.

Yesterday Michael Robertson, CEO of Linspire, published an open letter to the Dutch prime minister, offering software and support for a total price of about 6 million euro.

Of course quite an amount of effort would be needed to migrate away from MS Windows, the costs of which should be added to the 6 million, but the open letter is fun reading, especially about pretending that there was an open request for quotes that Robertson is reacting to.

And as someone responded in Dutch: it's nice of the open source community to publish open letters :)

Prince Bernhard buried in Delft
Saturday, December 11, 2004, 19:30 - The News
Today Prince Bernhard, the father of the Dutch queen was buried in the Royal Tomb Cellar in the New Church here in Delft. He died on December 1, 2004, age 93.

Even though this is the third royal burial in just over two years (Prince Claus, the husband of the queen died in October 2002 and her mother, Queen Juliana died in March of this year), it still is a very impressive ceremony, which we are not very used to here in The Netherlands. Especially now there were extra military honors as Prince Bernhard played an important role for Dutch resistance in World War II and attended the capitulation of the Germans on May 5, 1945.
The Royal Netherlands Air Force performed a fly-past in a Missing Man Formation, where a Spitfire broke out of the formation with three F16 fighter aircraft as they flew over the coffin on the Markt in Delft.
Prince Bernhard also helped to establish the World Wildlife Fund in 1961.

I work in The Hague, adjacent to the route the horses take, in this case with the coffin on an undercarriage of a canon used in WWII, from The Hague to Delft. So last two times we stepped out of the office to watch the cortege pass by. Very impressive.
Today I stayed at home, because it is very crowded in the city of Delft, and it is very hard to see anything. I watched it all on TV.

After a remembrance service in the New Church, the coffin was brought into the cellars, to find its final resting place next to his former wife, the previous Queen Juliana. Afterwards the cellars will be closed again. The only thing the public can see there is the mausoleum of William of Orange, the "Father of the Fatherland".

I wish Queen Beatrix and the Royal family much strength in handling these losses in such short time.

Thursday, December 9, 2004, 02:29 - Programming
Today I continued with my Outlook plugin in .NET project. All required features are now present and there even is a configuration screen to edit the settings and store them in the Windows Registry. So now I have two buttons in the Outlook standard bar: one to perform the actual action and one to display the configuration screen.

I thought it would be cool to combine these into a so called msoControlSplitButtonPopup, just like e.g. the New Mail button in Outlook or the font color selection in Word: when you press the button the default action occurs but when you click the little down arrow on the right hand side of the button, a menu pops up and you can select other actions.

After a lot of experimenting and googling I unfortunately came to the conclusion that this is not possible. This specific button type is only available to Microsoft itself, they did not make it available through the addin API. The customer doesn't mind because he is already happy with the functionality I offered him, but it would have been very cool to have it under a single split button popup....

I'm still thinking about what other possible MS Office addin I could make, because I am very enthousiastic about it and would love to play around with this material some more. I'm also interested to play around with .NET Remoting so perhaps something challenging will come up involving a client-server setup.....

Virtual Bartender Commands
Wednesday, December 8, 2004, 03:06 - Humor
The link to my Virtual Bartender Commands page seems to be quite popular, according to the hits I get from Google / Yahoo / MSN, so I made it into a static SPHPBlog file instead of the loose HTML file that it was.

Now people can see that there is more to this site than just that single page :)

Back Next