Thursday, February 15, 2007

Sometimes it's a strange thing with academic conferences and the publishing of the proceedings. First people pay money (the conference fee) to be allowed publishing something there. Then they pay again by ordering the proceedings for their local university libraries. Finally they blame the big conference organizers that everything is so expensive but they still insist on publishing at the most expensive conferences and reading only papers submitted there because they claim that they are on the highest academic level. Aren't they actually supporting these expensive conferences that way? They could just submit their papers to cheaper conferences and thus increase the quality level there.

After all I am not that sure at all that the quality of the most expensive conferences is necessarily the best. Those conferences suffer as well from bad quality assurance during the reviewer process. Currently I have again a paper lying on my desktop where I found two mathematical errors within a very short time. One of those errors is even fundamental for the algorithm thus doing it the way it is described in the paper simply does not give useful results. I wonder why we need a review process if such fundamental errors are not caught there? It seems all the reviewers involved in the process for this papers did not really understand that part of the paper and then just accepted it because they didn't want to confess that they don't understand it.

After all this paper has good contents in general but I would have expected the reviewers either to catch these errors (at least the fundamental one) or to confess that they don't understand the content and opt-out of the review process. --- Ok, I agree that this is another dream of an ideal world...

Friday, February 09, 2007

Since James claimed at http://rubberturnip.org.uk/index.cgi/2007/02/09#1171039696planet_suse_work_continues that he has fixed some things on planetsuse.org I just wanted to test with this message whether it actually works for my blog again...

Wednesday, October 11, 2006

Hmm, apparently you can now use Google Docs (used to be Writely) to blog messages. If you can read this message it actually works.

But it seems using the document title as headline does not work yet. :-(

Sunday, September 24, 2006

Also switched to Beta Blogger

After Andreas' post about Beta Blogger I also tried the switch, just to see whether things are improving...

Monday, August 14, 2006

Blogging-Tool and activities in the meantime

Anyone with a good suggestion for a _usable_ blogging tool that also allows adding pictures without clicking hundreds of buttons for each?

This and the fact that some features of the crappy web frontend of Blogger did not work at all were the reasons I did not post recently and why I will make all this here less frequent and shorter.

In the meantime I had a meeting with a black bear in the wilderness. It seems the bear was at least as surprised meeting me there as I was meeting him. Thus we both just looked at each other and after some time of mutual inspection we just continued our way.

Yesterday I was hiking this mountain.

Friday, August 11, 2006

Mail data recovery successful

All mail data got now recovered successfully. So I am completely back again.

Mail System Failure

Due to a system failure of a central mail processing machine I currently don't have regular access to all mails sent to me via mailing lists or that were sent to me at 2006-08-10 from about 00:00 GMT to 04:11 GMT. All mails sent to my mail address after 04:11 GMT were handled correctly by an automatic service recovery system. A data recovery process will try to recover the data at 2006-08-11 03:45 GMT. If this fails I will read your mail not before 2006-08-21.

Thus if you have sent me an important mail just within the critical four hours please send it again.

Saturday, August 05, 2006

Grouse Mountain

Yesterday I decided to hike Grouse Mountain in the evening. I set up my GPS receiver to head to Grouse Mountain. To see what happens when you select a destination that is not reachable by car I selected the peak. This was not a wise idea because where a car navigation system would have just said that this is not reachable my system with a full topographic card loaded just said: Well, if we can't reach it on public roads then let's continue on some trails and thus wanted to send me up the Old Grouse Mountain Highway. Unfortunately I didn't inspect this any further and started to move the car with the intention just to drive as long as it is possible and allowed to use the car. The result was that I didn't reach the Grouse Grind hiking trail and had to drive around half of the mountain again.

Finally I reached the right place a short time before the trail closed and I can say that the navigation system is really helpful if you have no clue about the street system of an area. The first thing I saw was a number of warning signs about the trail being dangerous and about a black bear in the area. I started going upwards. The first part was stressful but comfortable to walk. After some time of sweating I reached a point that claimed itself as being the 1/4 mark and informed that nobody will take any responsibility if you continue. And it mentioned that it will become steep now and one might consider to return. I continued and found again a sign warning of the black bear. Actually this sign was customizable for various sorts of bears. I climbed and climbed and I found what they meant with steep. There were some areas where it was more comfortable to make use of your hands while climbing. After about 75 minutes and 800 meters in height I reached the platform of the Skyride mountain station. The people there are really funny: They have placed a sign that the ground might be wet. I suppose if you manage to slip on their wet ground you shouldn't have climbed the trail at all.

From this point I could see the peak:

You could also see Vancouver:

And I finally found the bear!

Then I decided to go down again here:

Actually I used a cabin like this:

"Und wer hat's erfunden?"

Reaching the base again I found that the bear didn't take my car and I could drive home again.

Thursday, August 03, 2006

SeaBus, North Vancouver, Lions' Gate Bridge, and Stanley Park

Yesterday evening I was using SeaBus to North Vancouver. Vancouver seen from there looks like this:

Having reached Lion's Gate Bridge after about 4km from the SeaBus terminal I was reaching Stanley Park:

Unfortunately I decided for the wrong side to walk on the bridge thus this picture has too much bridge included in the spectacular view to Vancouver Downtown:

In Stanley Park there was someone else inspecting the area. But most likely he just inspected whether there are tourists to feed him.

Finally a look back to the bridge

I was walking some dark paths through the park back to Vancouver. The wood is really making everything dark there. In the evening you feel that sun has already set because it is so dark but when reaching an area with less trees you find that this is definitely not true.

Tuesday, August 01, 2006

First Vancouver report

Ok, since the first complaints arrived that there is nothing to read here I will start now with a first report. At Frankfurt Airport I was waiting until this airplane arrived to bring me to Toronto:

In Toronto there was a similar Airplane to bring me to Vancouver. But since this is getting boring now and there was no good place to make a nice picture of it anyway (it was blocked by all sorts of loading ramps and stuff like that) I decided to fly with it without taking a photo.

In Vancouver I took the bus to the house I am living for the next three weeks. No pictures yet because there should be something left in case days are getting boring. ;-)

The first day I was mostly organizing stuff, buying essential things, fetching my car from the car rental company and so on. To see as many places of the city as possible, I decided to walk all the way (with the exception of the car obviously).

I have seen many famous tourist attractions on my way but did not take any photos that day. You may look up these things in any tourist guide book. I can confirm that pictures there are appropriate. When trying to buy some electronic map data for my GPS receiver I failed to do so in any job in Downtown (the staff in some Canadian computer shops is as clueless as in many German computer shops). Finally I found a great equipment store in an industrial area east of Chinatown that had everything in store you could dream of if you do outdoor activities. The guy at the shop was extremely confused about how someone that never was there could find his shop at all.

Since the way I walked that day summed up to about 40km and I was a bit tired because of changing the time zone I decided to call it a day.

Today I started with running along the shore line to the English Bay Park. You can track these activities here.

Then I found something familiar to German people:

Must have been a spy because he was parking near operations center of one of his competitors:

Currently I am sitting here at the Vancouver Public Library to write all these stupid things:

Now I have to do some useful stuff again. Have fun!

Sunday, July 30, 2006

Off to Vancouver

Ok, finally I am taking off from Frankfurt Airport to Vancouver, BC in a few hours.

Thursday, April 27, 2006

First Assignment for "Programmierkurs II für Bachelor SIT"

Ok, after a long time not writing a message here due to time constraints I am back writing something actually useful (at least for my students).

I have now put the first sheet with assignments online at pi3.informatik.uni-mannheim.de/~schiele/pk2/ .

If you can't reed German, already have some basic knowledge in C, or are occupied with something more important you might want to skip this one because this is really a beginner's course for the C programming language in German. Nothing advanced to be seen here. Otherwise if you find an error somewhere feel free to drop me a note.

Please do not post answers to the assignments here before the date when the students have to complete the assignments because you would take away their chance to learn something.

Wednesday, February 01, 2006

another unused keyword

Another keyword that is almost never used in C++ is "auto". Did you see it ever? Do you understand its meaning? Explain when it should be used.

Tuesday, January 31, 2006

exporting information to the public

After a discussion about open-sourcing a tool Szann recommended to make a puzzle about a topic that currently is irrelevant for software that relies on an open source tool chain.

C++ does provide a keyword "export". Most people don't even know about this keyword because unfortunately there currently is no open source compiler that does support it and commercial compilers that support it are quite rare as well. Instead of making use of the export keyword people are used to put all template code into header files that have to be included from every source file that creates concrete instances of the template code. This is a problem because it makes the compiler compiling the same code multiple times and it is a problem because commercial software vendors have to ship the full source code of template code of their libraries.

Explain how the export keyword can be used instead of including the full template code from each translation unit. Does this improve compilation time? Does this allow commercial software vendors to build a shared library of their template code instead of shipping the full code?

Monday, January 30, 2006

having a good friend

It is always important to have a good friend. C++ has a special keyword for this purpose. Thus you sometimes read code like this:

namespace n { template<typename T> void f(T o); }
class a { friend void n::f(a); };

Is this code correct? Do you have reasons for your opinion given you have an opinion at all? Ignoring the fact whether this code is correct or not, is it smart to write code like this or is something else to be preferred? Explain.

Sunday, January 29, 2006

exception party

Because I had no time to do a puzzle today myself and there was still one from my former colleague Thomas in the queue I will present this puzzle today.

The question is what the following application does produce when built with a standard compliant compiler.

#include <iostream>

struct A {};

void foo(bool t) {
    if (t)
        throw A();
}

void bar(bool t) {
    try {
        try {
            foo(t);
            throw;
        } catch (const A&) {
            std::cout << "catched const A&" << std::endl;
            throw;
        }
    } catch (...) {
        std::cout << "catched ..." << std::endl;
    }
}

int main() {
    bar(true);
    bar(false);
    std::cout << "done." << std::endl;
}

Saturday, January 28, 2006

template specialization

If you want to test whether someone has understood how template specialization works is the following which is derived from a famous example by Peter Dimov and Dave Abrahams. So let's test you!

What's the return value of the function g in the following code? Explain your opinion!

template<typename T> int f(T) { return 1; }
template<> int f<>(int*) { return 2; }
template<typename T> int f(T*) { return 3; }
int g(int* i) { return f(i); }

geeky Hello World application

Today's C++ puzzle was originally developed together with my student assistant Juergen as a geeky idea on how to write a full blown Java application without a main method. The same "technology" does work on C++ as well but you have to fake the linker with a symbol main to translate the program. You can do this by providing a global integer variable main instead of a main method.

Now for today's puzzle: Write a Hello World application without a function main. What is the drawback of this "technology" to write applications, apart from the obvious one that it is a ugly hack?

Friday, January 27, 2006

finally clause in C++

The following puzzle was suggested by my former colleague Thomas. Explain how to port a finally clause as used in Java to C++ without loosing its semantics.

Wednesday, January 25, 2006

travel, meeting, snow, and broken code

Today I finally booked my travel to Brussels next month. In the afternoon I had a refreshing meeting of the faculty council. In the evening it started snowing a bit and thus I designed the following broken code:

namespace n {
    class c;
    void f(c&);
};

void f(n::c& v) {
    f(v);
}

Explain why this is broken code in C++.

Tuesday, January 24, 2006

deducing types from code

One of the ugliest things in C++ is reading complex type names. It is even uglier to deduce types from ugly code. It gets worst if templates are involved as well. We skip templates here for a first shot. Watch the correct(!) C++ statement 0[new weird](1)()(3,"strange")((weird(*)())0,5); and try to understand the syntactic meaning. Next describe the signature of the class weird that contains one method only.

I hope you will never _write_ code like that but you most likely will _read_ similar code if you have to work with code from other people. --- This is not a joke but a horror!

Monday, January 23, 2006

deemed to fail

On Mondays people often write broken code. Actually they do it the other days as well but this leads to the following C++ puzzle for today.

The following code is broken and any instantiation of an object of a class derived from this abstract class is deemed to fail. Explain why this is the case. Note that your first thought might be wrong!

struct broken {
    virtual void v() = 0;
    void n() { v(); }
    broken() { n(); }
};

Sunday, January 22, 2006

casting from base classes

After visiting Schwetzingen I designed the following C++ question for today:

C++ has two reasonable options to cast from a base class to a sub class. These options are the static_cast operator and the dynamic_cast operator. Explain the differences between these two operators and compare their advantages and disadvantages.

Explain why one cannot use the dynamic_cast operator to cast from a base class that does not have a virtual function.

Explain why one cannot use the static_cast operator to cast from a virtual base class.

placement syntax

While having a funning day with friends Szann suggested the following topic for today's C++ puzzle:

Explain the placement syntax of the operator new(). What are possible uses of it? How is the operator coded with this syntax? How is it called?

Also explain what must be considered when destroying objects that were created using the placement syntax.

Friday, January 20, 2006

understanding C++

The problem with the C++ programming language is that it is a rather complicated language for the unexperienced programmer.

A colleague of mine decided that he wants to learn more C++ to really understand the software he is writing instead of writing code that the compiler just compiles by accident. He asked me to provide him with regular exercises to learn something about the language. Due to the fact that there might be some more people out there that want to learn additional stuff about the language I will do this within this Blog.

If you have an issue with the language you don't understand and you cannot find in the standard C++ books, feel free to suggest the issue for discussion here by sending me a mail. Given that the issue is really interesting, i.e. not a beginner's question, and I understand the issue myself I might add it here.

But now to the first exercise:

Consider the following application:

#include <iostream>

struct C {
    C& operator=(const C&) {
        std::cout << '=' << std::endl;
        return *this;
    }
};

int main() {
    C a;
    C b = a;   // (1)
    b = a;     // (2)
    return 0;
}

Explain why this application does print only one equal sign although the lines (1) and (2) are present.

Wednesday, January 18, 2006

refreshing weekend

Szann confirmed that she will leave San Bruno tomorrow after lunch to reach Frankfurt the day after tomorrow. There Joanna will fetch her to organize some stuff in Frankfurt before they will come to Ludwigshafen where we will have a refreshing weekend together.

Tuesday, January 17, 2006

upgrading subversion?

Maybe I should consider an upgrade of our Subversion server because the currently installed 1.1.x release seems to have problems handling the repository which has grown to 22 GB in the meantime. After some time of operation Apache processes grow and grow in size of memory and finally crash, leaving the Berkeley Database files in an inconsistent state. Maybe the most recent Subversion release does no longer have this problem.

Monday, January 16, 2006

teaching abilities to abstract

Today we agreed that I will tell our students something about functional programming language based on examples in Scheme. In my opinion it is important to teach people concepts like functional programming languages. Nowadays most universities (ours included) tend to teach only main stream languages like Java. People responsible for these decisions often argue that programming languages like Java are the languages that are actually used in industry where functional programming languages like Haskell, ML, or Lisp are used by academics only and are thus not relevant. Although the empiric observation about language usage is mostly true this seems to be a really strange argument.

My first argument is that it is not the primary job of the university to teach a programming language but to teach concepts. And in my opinion it is useful for a computer scientist to learn ability of functional programming abstraction because they learn to look at complex problems from a higher level of abstraction and thus solve problems with higher effectivity. Even in a project that does not make any use of a functional programming language at all you can make use of this ability to abstract to write less braindead code.

My second reason why this is a strange argument is that one reason why functional programming languages are used very seldom might be that almost nobody is capable to really use them --- I mean _use_ them in the sense of "think in them", not just hack some stupid Hello-World-program.

Obviously I will not manage to teach our students to become full-fledged functional programming language hackers within one lecture of 90 minutes but I hope at least some of them will find some interest to look themselves a bit deeper into that topic. I hope that this knowledge will not get lost within the next years because from my experience most people capable of imperative programming often have problems to understand a functional style. On the other hand side people with a deep knowledge in functional programming tend to write cleaner code even when they use imperative languages.

All time when I read Java code like "if (x == 42) return true; else return false;" I feel the immediate need to talk to the author of this code...

Sunday, January 15, 2006

wiring new telephone system controller

Today Joanna assisted me in wiring the new telephone system controller to the base telephone system at the Ludwigshafen building. Since all communication is transmitted by fiber optic cables you need more time to mount the box to the rack and installing the power supply than connecting the controller to the base system. But you have to be more careful not to bend the cables because this might break the fiber. Fortunately the high quality cables are coated so much that you needed relatively much force to destroy the cable. Now we have to wait until Szann is uploading the actual firmware.

To make waiting a bit more comfortable we had a nice evening there with Martin who is always a great help in making a boring weekend funny.

fixing various stuff

Today I was fixing various stuff. First I wanted a solution for my Firewire hard disk that was always inaccessible when the disk went to power-save mode because the driver did not manage to wake the disk up again. The solution was pretty easy because when I connected the disk by USB instead of Firewire everything was fine. Although the disk is a bit slower when connected by USB this is an acceptable solution until there is a fix for the sbp2 driver.

After I found that the current SUSE Linux Factory tree is completely broken I decided that I will at least update the kernel manually because I wanted to make use of the very rare opportunity that the main kernel package and the nongpl package were in sync. This fixed two problems on my laptop. The first one was the crashing ath_pci driver and the second one was the fglrx driver that did not work recently but does now again.

Then I provoked the situation too much by upgrading VMware to a newer update release which resulted in broken kernel drivers. I decided to fix this problem another day and instead meet with Martin and Joanna in the club to celebrate the success. Martin did a really strange drink. We will see whether Martin or my VMware kernel modules are more broken tomorrow...

Saturday, January 14, 2006

some nice graphics

I did a small script to do some statistics about the package repositories of our build servers. For an example you can see a graph containing all packages and other files of the current SUSE Linux Factory release by date and age here . It is interesting to see that there are files in the repository that are more than a decade old.

Thursday, January 12, 2006

rebuilding the build server

Yesterday my build server found that the disk holding the repository cache is defective. Because of that I installed a new disk and started the rebuild process. We decided to watch "Espion, lève-toi" on TV during the rebuild. Unfortunately the film was too short and the rebuild not yet complete after the film has ended. Actually it has only rebuilt 191GB of the 253GB repository up to now.

party

And now for today...

This evening I was invited to a small party at the center for academic didactics which was a very nice event. Met some new people there as well as some old friends and obviously I used this opportunity to exchange latest information about stuff happening at the various institutes of our university.

Wednesday, January 11, 2006

Mulholland Drive like conversations

The following was actually already posted yesterday but it seems that the Mail-to-Blogger service of Google seems to have some problems sometimes.

Yesterday Mulholland Drive was on TV here in Germany. Yesterday I thought that some of the conversations in this film are somehow mysterious. Today I had some conversations with some officials. Today I changed my mind that the conversations in Mulholland Drive are pretty real compared to conversations with officials.

Tuesday, January 10, 2006

improving an algorithm a bit

Today I decided to optimize a naive implementation of a solver algorithm a bit that took about 22 minutes to solve the problem. After only reordering some clauses an implementation resulted that did solve the problem in about 30 milliseconds which is about 50,000 times as fast. This is what I like with programming languages like Prolog. If you understand how they work you often can drastically improve your algorithms without much effort.

Sunday, January 08, 2006

survived another long weekend

I survived another long weekend by doing some pending office work, celebrating the new year (or whatever else was left to celebrate) with some friends, and by doing a running exercise to Heddesheim.

Saturday, January 07, 2006

stupid youth gangs

Today I met a gang of youth in the city that made me wonder whether humanity really managed in general to develop to a more intelligent species than gorillas. Some of them behave in a more stupid and annoying way, when appearing with their gang, than other people when their brain is already completely washed out by alcohol.

Friday, January 06, 2006

infrastructure library for logical equations

Today I hacked a small infrastructure library to solve logical equations in Java. I will use this for the next assignment for our students. Actually the library is quite stupid and not as generic as it should be but most likely it is not a really good idea to make the library more generic because this would just make usage more complicated for most students.

Thursday, January 05, 2006

machine crash

After coming back from the Club yesterday I wanted to upgrade on of my systems to the latest SUSE Factory packages. I did so and suffer now from the fact that the kernel does end his life in an oops message when setting up the WLAN network connection. It seems I have to do another bug report.

Monday, January 02, 2006

shortage

You might have read in the news that we currently suffer from gas shortage here in Germany because the Russians and the Ukrainians have some disagreements about the conditions of their gas supply contract. Fortunately we have some buffer of gas here in Germany to delay the resulting problems.

You most likely didn't read in the news that we have water shortage at our department. This is not because of some disagreements about the conditions of any contract of our supplier but because nobody ordered water the last days. Fortunately I have some buffer of water at home to delay the resulting problems.

Sunday, January 01, 2006

back in Mannheim

I am back in Mannheim again. Although some houses burned here because of firework hobbyists yesterday mine is still there. Will see what else has changed or not...

Happy New Year to everybody!

I wish everybody a Happy New Year!

Celebrating the new year was the last family event for me before leaving to Mannheim again. Will have to celebrate the new year which will be 9 hours and 1 second longer for me than the last one with some friends there during the upcomming week.

Friday, December 30, 2005

there is nothing to see here

There was nothing to see here today. So go away because there is really nothing to see.

Thursday, December 29, 2005

certificate of birth, snow, and reinventors of the wheel

This morning I called the civil registry office because I needed a certificate of birth and thus wanted to ask how to apply for such a document. The officer told me that there is no need to apply for that document but I could just come along with my ID card and some money for the fee and get it --- immediately. I was confused! She also told me that it is possible to issue the document on international formulas if I need it for foreign countries. I was shocked! I am now living for 28 years here in Germany and my experience with German bureaucracy told me that there must be something wrong with that. I immediately took the car to drive there and try what I almost couldn't believe. And actually I got exactly what I wanted. Perfect service! --- Amazing! I still wonder whether there is some special trick I did not notice yet...

To have enough time to think about this amazing experience I did my regular running exercise. Today this was really hard because gusty winds did occur and made the snow lying around everywhere to be blown all over the streets and running on soft snow is much more laborious than running on plain ground. Additionally it was that cold that the water from my breath was freezing in my beard.

Later that day I was shocked again by a new example of people from the reinventors-of-the-wheel community. People from this community are those that invent something that does exist already for years but in a much better way. --- I mean the original version is the better one not the new one. This time it was again a special purpose programming language for an application for engineers. It is always the same: There is an application for which an automation component should be added. Instead of reusing a well established programming language with libraries that fit the need they decide to design a more simple language that does fit the need better because they don't need all the funky features of a full blown programming language. But then there are two problems. First they have no clue how to design a programming language and thus reinvent all the problems others have already solved years ago. Second they find that they actually need a full blown programming language and thus blow up their special purpose language with hundreds of thousands of special cases because their original language design does not support all stuff that is needed. This all does not lead to a programming language but to a horror story. --- Please, if you are the developer of a special purpose tool, learn to reuse stuff others have thought about for years and don't fall into the trap of thinking that you can invent the perfect version without prior knowledge in only a few weeks instead. --- It simply does not work!

And now for something completely different...

Today was completely different from the days before. I didn't visit relatives. They were visiting me for a reason that is completely unrelated to Christmas. Well, at least we had much fun again.

Tuesday, December 27, 2005

This is getting boring...

I know this is getting boring for you, but guess what I have done today... Right! You got it!

Monday, December 26, 2005

family celebrations part III

We did some more Christmas celebrations with relatives. The topic that has drawn most attention was the new BMW car of my cousin. If you wanted to support him buying his cars you could buy some products from his company.

Sunday, December 25, 2005

overheating the GPS receiver and visiting some more relatives

Today I was overheating my GPS receiver. This did not happen when I was doing my running exercise in the morning because we had about 0 degree Celsius with much snow lying around which is a situation that is quite unlikely to overheat the receiver. But then we visited some relatives by car and I placed the GPS receiver near the ventilation shaft. After about 15 minutes of driving the receiver did an emergency power-off. I decided to find a better position to place the receiver in the car.

When we reached our destination I had the opportunity to get some more of the latest family gossip. In a family consisting of more than a hundred members there is always something to talk about. You definitely cannot talk about everything in one meeting.

Saturday, December 24, 2005

Merry Christmas everybody!

I wish everybody a Merry Christmas or whatever your favorite religious culture celebrates these days!

I for my part have already completed the most important part of the story which is typically Christmas Eve here in Germany. Tomorrow we will leave to visit another part of our huge family.

Friday, December 23, 2005

visiting the family

Now I am again in my hometown visiting my family and celebrating Christmas during the following days.

After syncing up with the latest family gossip everything is perfect again.

exams and strange students

Today we did the midterm exams. I wonder how long it will take until the first emotions from the students come to my attention.

Some students are really strange. They prefer not to submit the exam papers at the end of the test even if you tell them that they will get zero points then. Some of them have even reasons not to do so but neither our student assistants nor my colleague and myself could understand them. It seems that some people just think on a different level normal people could not understand.

Wednesday, December 21, 2005

caught and ethics

Today when I went to my office I was immediately caught by one of my colleagues because I missed to write a message here yesterday. I apologize for confusing my colleague that way. Obviously doing that was not conforming with my personal ethical code and I will try not to confuse him again in that way.

We also had a discussion about ethics in the club this evening. I tend to have more and more interest in that sort of discussion since I am learning more and more about political games. The more experience you have with political games the more real-world examples you have for ethical discussions.

Monday, December 19, 2005

stress-testing copiers

Today we were stress-testing the copiers at our department. Actually we had to print the midterm exams for 300 students. Fortunately we have copiers that support duplex printing and automatic binding the copies with retaining clips.

The first copier did fail the stress test in quite an early stage. He started to scan the source documents and printed the first copy. Unfortunately he did not include the last page into the binding with the retaining clip. We first thought this was an accident but this happened as well with the second and the third copy thus we gave up with this copier and went down one floor to the next copier.

With this second copier we started again to scan the source documents but obviously he didn't like them and crippled one page of the source documents. We printed the source documents again and because we started to become paranoid we did this twice. This time the scan completed successfully. Unfortunately I had forgotten to type the number of copies this time and thus the copier only made one. So we scanned the source documents again. The copier didn't like it to scan the same documents again and crippled again one page. We still had the copy of the source document we printed because of our paranoia and started the whole process again. This time the copier succeeded and started to print. The first copies were all perfect. After some time the copier went hot and decided to add a light gray background to every page. This was not a big problem because the text was still perfectly readable but somehow it was a bit annoying. When the printer went really hot (after about 5000 pages) he started as well to omit random pages in the automatic binding mechanism. I will have to count the failed copies tomorrow to decide whether I have to print some more copies.

Sunday, December 18, 2005

Google's new blogging tool for Firefox

Google has a new blogging tool for Firefox I am testing with this message now.

If you can read this message you might want do consider downloading it here as well.

Saturday, December 17, 2005

sleeping, running, and updating

Yesterday I didn't write a message here because I just forgot after not having really slept from Thursday to Friday thus I did so early at Friday evening. At least I was fit enough again today to run to Viernheim and half way to Weinheim from there and then back to Mannheim. After that I updated a SUSE Linux 10.1 system to the latest set of packages which is a bit more than Alpha 4. Up to this point I didn't find any new bugs they introduced for this release.

Thursday, December 15, 2005

no further rant for today

There will be no further rant from me for today here because I am leaving now for a travel to Nuremberg for offline ranting...

Wednesday, December 14, 2005

funny German words

I like those special long words in the German language that nobody uses in daily language and most likely there is not direct translation available to any other language. These words are a special creation of the famous German bureaucracy. One of these words is "Rechtsbehelfsbelehrung". You find this word on official letters informing you about a decision by officials thus it is a special type of disclaimer. The "Rechtsbehelfsbelehrung" gives you all the details about what you have to do if you do not agree with the decision and how long you have time to state your disagreement. If the officials omit the "Rechtsbehelfsbelehrung" you have unlimited time to state your disagreement. (Well, not really unlimited, actually there is still an upper limit defined by law anyway.) The funny thing with all this is that typically it is much easier to read and understand the decision itself than the "Rechtsbehelfsbelehrung".

Tuesday, December 13, 2005

computer scientists at the Christmas market

I was visiting the Christmas market with some colleagues today. You guess what happens when a bunch of computer scientists go to a social event. Actually it was relatively harmless and we managed to exchange the most important gossip.

Monday, December 12, 2005

birthday hotspot

Today was a real birthday hotspot. Whatever is responsible for this local birthday inflation I found that four of my direct acquaintances celebrate their birthday today. But actually it seems that some people already suffer from this inflation and feel the strict requirement to announce their birthday on public mailing lists to prevent other people from forgetting them in these times.

Sunday, December 11, 2005

yet another weekend completed

Another weekend is complete. Nothing special happened. After doing my regular running exercise, this time to Ruchheim, I called Szann for the latest news from the Western Hemisphere. Finally I concluded the day with Joanna and Martin in the club.

Saturday, December 10, 2005

academic concepts for quality assurance

Many projects have big problems with quality assurance. With academic projects you even see some groups that invest large amounts of their working time in finding and fixing bugs most of which most likely would not have occurred if they had established a small amount of quality assurance. Many commercial software development groups have the very same problem in principle but they are forced to hold at least a certain internal quality level to prevent bankruptcy.

Most software developers don't like to do quality assurance because some parts of this work are boring. Especially academics often don't want to do work that is not directly involved with their topic. This is understandable because they cannot write shiny papers about this basic work and thus don't want to waste their time for it. Actually they often waste their time because if every developer in a development group does omit this work completely you get extremely broken code resulting in the situation that all developers in the group waste most of their time finding the same bugs. Because of the fact that fixing a bug takes more time than adding an ugly workaround, they often skip to fix the bug hurting their colleagues this way because they have to do the very same work for this bug as well. Often academics also have never learned how to use their development tools appropriately. For example many of them use revision control systems in a way that they check in their work no earlier than they think their whole subproject is complete. This results in lost revision history and many bugs when one decides to check in the work of the last four(!) months at once.

But there is a special sort of people that can drive me into a rage in such a situation. This sort is always reading the latest books about project management and quoting the smartest ideas from these books. Additionally they design new shiny test systems to improve the quality of the product ignoring the fact that they already have a huge amount of tests that work but nobody actually cares about their failing results.

When will those people learn that the work is not complete when you design and implement infrastructure tools. It is no earlier complete than you actually _use_ them.

Friday, December 09, 2005

strange people and public transport

I am a bit fan of public transport, especially because you meet the really strange people there. Today I met again a _very_ strange person. When I reached the tram stop there was a man of about 40 to 50 years old with a fine black suit. When I reached the platform he walked towards me and then asked when the next tram will arrive. At least this is what I supposed he wanted to know. Actually it was not a real question but some fragments of almost incomprehensible fragments of German sentences and numbers. I wondered why he didn't look at the time table himself. Anyway I told him that the next tram will arrive in about 5 minutes. He took his mobile phone, starred at it, and walked slowly away some meters. About two minutes staring at his mobile phone and some places of the tram stop platform he walked again towards me and began again talking to me in incomplete and strange fragments about when the tram will arrive. I wondered whether he was drunk but apart from his articulation nothing seemed to point to this assumption. So was he some foreigner that was not really fluent in German and thus did not understand what I explained him two minutes earlier and cannot formulate correct and complete sentences? But although his articulation was pretty strange I didn't get the impression that there was any foreign accent. I decided to explain him again. He confirmed what I told him so that I was sure he did understand this time and then walked again away some meters and stared at his mobile phone. Some more minutes later he came again to ask his strange questions about the time and the tram showing that he seems to have forgotten everything that I told him a few minutes ago. I decided that it is worthless to invest many time in explanations again and just gave him a short answer. The situation repeated. Unfortunately the tram was late this time which allowed the situation to repeat multiple times. While the situation was repeating multiple times there was one instance with an interesting variation. Once he didn't walk towards me but towards the time table, reading in a loud voice numbers from the time table that were not listed there. I felt somehow relieved when the tram finally came along to move me out of this Groundhog Day situation.

Thursday, December 08, 2005

PhD defense, midterm exams, and Santa Claus party

Today was a day with many topics. First one of my colleagues did defense his PhD thesis. You know this is this event where some professors from the department ask questions to a PhD student to show him that they are still superior compared to him. Afterwards he organized a small reception to celebrate his success.

Then we started to design the midterm exams to make our students happy in two weeks.

Finally I completed the day at the students' Santa Claus party which is always a nice place to talk to other people in a nice environment.

Wednesday, December 07, 2005

AggressivePowersave

kpowersave in SUSE Linux 10.1 has recently got a new scheme "AggressivePowersave". I wanted to know what they mean when they say "Aggressive" thus I tried this option and immediately learned how aggressive "Aggressive" can be. My kernel immediately produced an Oops message which resulted in the system being almost unusable until the next reboot. Maybe it saves some power if you no longer can work with your system but most likely this is a bit too aggressive for the average user.

Tuesday, December 06, 2005

the global trap

The nice thing with script languages is that you can do quick powerful hacks to solve problems. The ugly thing with script languages is that you can do quick powerful hacks to solve problems. Whenever you do so with a problem that is not trivial you reliably walk into one of the many traps script languages provide for you. Today I walked again into the global trap. This trap is constructed by the fact that by default every variable is global in many script languages thus if you forget to declare all variables local in a function you are likely to overwrite another variable with the same name in a somewhere completely unrelated place of your script. Some script languages even don't allow you to declare variables local.

This is not the only trap script languages provide for you to fall into. Another one for example is that variables are typically not typesafe and there are myriad numbers of operators that "magically" cast variables to arbitrary appropriate types. Although this seems to be a quite convenient feature and some designers of script languages are even proud that their operators "attempt to do what you mean", on a second thought this is one of the nastiest traps these languages prepare for you. The problem is that even when a operator in most cases does "what you mean" there are some cases where it does not. And because of the fact that the operator "attempts to do what you mean" in a huge number of special cases it is typically such complex that most programmers don't really understand the rules that control the way the operator works and thus they cannot understand bugs that result from a case where their intention differs from the meaning of the operator.

So be prepared to run in these or many similar traps when you go the script way you pretend the most easy one. And if your project is a bit more than a trivial one you _will_ run into these traps even if you consider yourself a guru programmer.

killing my system softly

I started to destruct my system slowly now by updating to the latest SUSE development snapshot. I could not update the kernel because the available nongpl modules did not fit the kernel base package thus I decided to keep the old kernel. After rebooting to the new system I found the wireless network card and the sound chip did no longer work. A short inspection uncovered that the modules were not loaded. Manually modprobing the drivers made the network available again. Christoph urged me to upgrade the kernel to a recent version so I updated to the one from the Alpha3 release. Now all driver modules were loaded again automatically as before but since that upgrade I need to run wpa_supplicant and dhcpcd manually and I can no longer hear the sound that is claimed to be played which is not really an improvement over modprobing the drivers.

Sunday, December 04, 2005

security by naivety

Some people have really strange security concepts. Telecommunication companies are typically among them. On a German news site there was an article about the fact that one can access answering machines of mobile phones of any customer of many telecommunication companies without a password just by sending a manipulated caller id. Typically the idea is that a customer can access his answering machine without a password when calling from the corresponding mobile phone but has to enter a password when calling from anywhere else. This actually does make some sense but the implementation often seems to be pretty braindead. Did nobody tell them that you should check input parameters you receive from external sources? I mean as long as you can be sure the parameter comes from a controlled source where nobody can manipulate anything this _might_ be acceptable but what they are doing here is even more stupid than deciding about access to an Internet server based on the IP address. No, _this_ concept is as if you _asked_ the client for his IP address and decided based on this information without checking correctness of the information provided. I mean the telecommunication companies should be able to check whether a caller that claims to come from their _own_ network actually does, shouldn't they?

experimental drpmsync client published

I have now put my experimental drpmsync client here. If you like to test it feel free to do so but note that this code is still in the quick hack status although it has already improved. This means that it is not yet really userfriendly and if you want to change some settings you should have some basic knowledge of shell programming.

Saturday, December 03, 2005

most expensive retaining clip of the world

Today I have bought one of the most expensive retention clips of the world. Actually I had to sign a commercial document for which notarization was required. Thus I went to the notary's office early in the morning. The secretary first wanted to have the document and my ID card and told me to wait in the hall. So I was waiting while something secret happened in the office. In the hall another person passed by with a cereals bowl. Some other people passed by as well. After some time the person with the cereals bowl passed by again. I wondered what they were doing with my document and my ID card in the mean time. The person with the cereals bowl passed by for the third time. Again some other people passed by. I was not really puzzled when the person with the cereals bowl passed by a fourth time. Obviously he was hungry. The door opened and I was instructed to enter the room. Then I had to sign the document, received back my ID card and was instructed to leave the room again to wait again in the hall. This time there was no one passing by with a cereals bowl. After some more minutes of waiting and secret things happening behind the closed door I was handed out my document bound by a sealed cord to a second document stating that it was me signing the document. When you look up the fees you have to pay for all this it is most likely the most expensive retention clip to clip two sheets of paper together.

Thursday, December 01, 2005

random invites

Today I received an invitation to an interview for a job I never applied for. This actually was neither spam nor a headhunter but just a human resources manager that mistyped the email address when she replied to an application. Maybe I should have gone to the interview date trying to get the job just for fun. Maybe I would have even found out what the job actually was I was invited for an interview.

Wednesday, November 30, 2005

computer scientists and political games

It seems that most computer scientists (and people working on other technology oriented areas) cannot handle a situation where someone is playing a political game on them. I found that there are basically three different ways they react when someone is saying something to attack their position:

1. They start to argue with their colleagues why it is not true what the other person is saying and how dumb this other person must be to think in such a stupid way. --- This obviously means they have not the slightest idea that the other person just wants to polemize.

2. They immediately offer a compromise by going five steps backwards from their own opinion. Typically they think that this will smooth the opponent. Actually in such situations this only leads to the effect that the next time the opponent will come back with an even more extreme position.

3. They become totally bullheaded. In this situation they even don't try to find an appropriate compromise, even when this hurted themselves because any solution would be better than having no solution.

Some position in between 2. and 3. would enable them to handle the situation quite well by entering the political game as an active and smart player. --- But as computer scientists are binary people they can't mix that stuff.

Tuesday, November 29, 2005

trendsetting

It seems we are again real trend-setters here in Germany. After our former government decided this summer to force early elections there are more and more other countries doing the same now. Two weeks ago the Israelis announced to do the same and now the Canadians are following as well. We could invent a global annual reelection day where we reelect all governments all over the world to have some more fun --- although on a second thought there are also countries that have that boring elections that even the international observers don't like to go there...

prototype for drpmsync client

Because the author of drpmsync does not like the idea of a drpmsync client that can use various non-drpmsync servers to balance the load I have now implemented a first prototype myself. The only thing this client needs from a drpmsync server is the contents file. After it got this file he can do everything else with any rsync, ftp, or http server that does mirror the original drpmsync tree including the deltas. Obviously there is a problem when the mirror server is out of date but this is not really a problem because a final run with the official drpmsync client can then fix up these minor glitches.

I am now trying to catch up again with the current state of the factory distribution with this client. If this works fine I will publish this client for anyone interested.

Sunday, November 27, 2005

winter is coming back

It seems the winter is now coming back here in Germany. In the Muensterland, an area in Northern Germany (I hear some people crying now... ;-) there was so much snow that they suffer from the heaviest electrical power outage since World War II because the weight of the snow has broken down many power poles.

I was doing my running exercise from Mannheim over Ludwigshafen to Altrip and backwards today. There was no snow at all at these places but when it started snowing a bit on my way backwards from Altrip to Ludwigshafen I found that it becomes somewhat uncomfortable when running with a tee-shirt only when 2 degree Celsius are combined with snowing and gusty winds.

Saturday, November 26, 2005

usual weekend stuff

Was doing the usual weekend stuff today. Joanna considered this boring. Maybe I should do some unusual weekend stuff tomorrow.

Friday, November 25, 2005

radeon driver broken

Today I found that unfortunately the radeon driver is again broken for my machine. Immediately when the X server is started, the whole machine crashes. I first switched to the vesa driver but due to the fact that I need a dual head setup I installed the proprietary fglrx driver again. After some fiddling I got it running. After all it's a pity that many hardware vendors do not publish specs to allow implementing a stable open source driver. I still hope this will change when Linux gets more and more market share.

Thursday, November 24, 2005

copying other's work aka teamwork

Today I did again a course for our freshmen. Some started to complain because they got no points for their assignments. Actually we decided that they won't get any points for assignments where we get exact copies from multiple students. Some argued that this is not fair treatment because we adviced them to build learning groups. So I had to explain again what a learning group is and why it is more advisable to _do_ the assignments instead of copying it from someone else. Then there were those people that complained because they suffered from the fact that others copied their work. I answered them that they at least now have learnt something about whom to trust.

I think that most of them now have realized some basic rules on that topic.

Wednesday, November 23, 2005

the German way of creating equitable laws

We have some strange way here in Germany when we create our laws. There are two things that are quite special about German mentality when it comes to creating laws.

The first thing is that most Germans are obsessed by the idea of creating perfect equality for everybody, especially themselves. I mean there is nothing wrong with egalitarianism in principle but most people here are so notorious about this idea that they _always_ find a point where they are discriminated.

The second thing is that most Germans think that they can fix disparity by adding exception rules to the existing laws. They don't understand that they just create _more_ disparity by inventing new exceptions instead of simplifying the rules to a level where they actually still can control the results of their changes somehow.

The result of all this is that we get more and more laws here. One of the most interesting things about this is that in 2000 it was said that about 60% of all publications worldwide related to tax laws was written in German language. (When I do my taxes I get the impression that this number is still increasing...) This leads to the paradox situation that the rich people that can afford paying a qualified tax advisor pay less taxes and the poor ones, the exceptions are designed for, often cannot make use of these exceptions because they are nor aware of them. Fortunately I am pretty sure they will invent yet another exception rule just to fix this problem...

Tuesday, November 22, 2005

security checker

Ulrich completed the security audit of our new security checker tool thus we could merge it to the production branch. I immediately tried to make some use of it by adding meta descriptions to some well audited functions to allow the tool doing automatic pre-auditing of new code only using functions with complete meta descriptions. According to my first tests our manually audited code seems to be pretty clean according to the tool. Cross-checking with some external code that did not get a manual code audit did show that the tool could actually detect many problems. Seems the tool could really be helpful in the future when implementing new code or when looking at existing one.

Monday, November 21, 2005

Acrobat Distiller, the PDF specification, and coding style

Was running pstoedit on a PDF file today and got the following error message:

**** This file had errors that were repaired or ignored.
**** The file was produced by:
**** >>>> Acrobat Distiller 6.0.1 (Windows) <<<<
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.

Seems that either pstoedit is not telling the truth or Adobe did not read their own specification when implementing their PDF creation tool. I wonder whether I should send them a note...

Then someone posted some coding styles on Slashdot that are obviously used by some developers of projects I am involved in. This page is definitely worth reading!

Sunday, November 20, 2005

working up some pending stuff

Today I was working up some stuff pending for a long time but there is still some stuff left up to work up --- just to prevent me getting bored.

Afterwards I went swimming with Joanna. Martin was lazy again and preferred staying at home. But this way he could at least prepare everything for the nice evening we had.

Saturday, November 19, 2005

usual weekend

We decided to build a new policy file today to install the development machines for a project because the old one became too difficult to maintain. Then we did. After doing so and exchanging latest gossip we went to the cinema to watch another old cult movie.

Friday, November 18, 2005

real interest

Seems my body was actually interested in getting some iron because he didn't complain about the ferrous sulfate today.

I am not that sure what the inventors of the openSUSE project are actually interested in. Was this just one big marketing bloat? Are some people still completely shocked by the Novell press announcements of the last weeks. Seems like the Novell head managed almost all of their employees to fear losing their job. At least I have made the experience that when you want to discuss some issues about the openSUSE project in the last weeks you meet mainly three sorts of people: First there are those that don't know about the issue and are not responsible for any problem. Second there are those that don't answer to messages at all. And finally there are those that tell you that they have already discussed about a solution internally but they cannot tell you about it. --- Huh? Wasn't the project named _open_SUSE? --- Well, ok, they spell the "open" in openSUSE in small letters. Will they drop the small letters again like they once dropped the dots?

What's up SUSE? You can't complain about FUD that claims that Novell wants to cancel the desktop products or things like that if you give external people the impression that there is some horrible thing going on internally nobody is allowed to talk about. And you can't really eliminate that FUD by just denying it. This just leaves a similar impression like this famous German quote: "Niemand hat die Absicht, eine Mauer zu errichten." ("Nobody has the intention to build a wall." --- Walter Ulbricht said this about two months before they started to build the Berlin Wall.)

Thursday, November 17, 2005

replacement product test scheduled

Now I got ferrous sulfate pills as a replacement for the ferrous glycine sulfate. Will test tomorrow whether my body likes them but because I don't want to overstress it, I will first try with half of the recommended dose rate.

Wednesday, November 16, 2005

ferrous glycine sulfate received --- core dumped

Got a package with ferrous glycine sulfate pills yesterday by the blood donation service because they consider me having some iron deficiency from doing regular blood donations. So I took one of those pills as instructed this morning before I went to work. About two hours later I felt extremely sick thus I called the blood donation service for advice. They recommended not to take the pills for the following two days and then test again. My body had a different opinion. It was pretty sure that I shouldn't have taken the pill in the first place and thus reverted the process of taking the pill completely. After that I felt completely comfortable again. Seems I should never ever use those pills again and fetch a replacement product at the blood donation service.

Tuesday, November 15, 2005

Everything just one big bloat!

It was everything just one big bloat! The earth shrinked back to normal size. At least this is what my GPS receiver was telling me when I was doing my running exercise again this morning. The course that used to be 10km was again 10km. Most likely it was because it is getting cold now here. I also had to switch to a long pair of trousers now because the temperature went below 5 degree Celsius in the morning.

Monday, November 14, 2005

openSUSE codename competition

Today Andreas officially opened the openSUSE codename competition. Naturally I immediately added the suggestion "Impressive Places of the World" which should allow a huge amount of wonderful colored photos for the boot loader and everywhere where they should be placed.

Sunday, November 13, 2005

student skills

Some of our freshmen seem to start the usual panic because they realize that the exercises sometimes include questions where the answers where not explained in the course before. Our student tutors seem to become nervous about this fact as well. Seems that I have not convinced them yet that it is not sufficient for a university student to apply knowledge they learned from the courses but that they should learn to find appropriate solutions for problems that arise while trying to answer the exercises. Seems that there is some work for the next meeting...

Saturday, November 12, 2005

openSUSE governance

As already mentioned in other blogs Peter Flodin opened an interesting discussion on the opensuse list about "governance". Although in my opinion this is not the most important question in the current situation it is at least more refreshing then the boring KDE vs. Gnome discussion that goes on for too much days now on all SUSE related lists.

The funny thing with all that governance thing is that many people still think that Novell should ask them about how they should do their business. I mean giving an advice is ok but if those people deduce a right to decide about other's business from that, they are somehow brain dead in my opinion (and Pascal seems to have the same opinion).

In my opinion the current issues with openSUSE are not about decisions but about communication and information flow from SUSE staff to the outside world. But I won't go into details here again. If you are actually interested in my opinion on that topic read my mails on the list. I am curious how often I have to repeat this argument before this does actually improve.

Friday, November 11, 2005

The world is actually growing!

People often say that the world is getting smaller and smaller nowadays because of means of travel you have in our modern times. This morning when I was doing my running exercise I uncovered an alarming thing: Actually the world is growing! After about the first two kilometers (or better what always used to be the first two kilometers every other day when I was running this path in the past) my GPS receiver told me that I was running a bit further than two kilometers. First I thought that this is the result of one of these synchronization fault peaks you sometimes get shortly after initializing a GPS receiver that results in movements of some hundred meters although you actually did not move at all. Actually it was not. Continuously the number of difference in meters I was running this day up to a specific point on the path and I was running in the past up to the very same point grew higher and higher slowly, although the GPS receiver was pointing exactly to the correct point on the map I was running at that time. I was really alarmed. What did happen? The only solution that came to my mind was: The earth is actually growing and thus enlarging its own surface. What will happen if the surface can no longer stand the pressure of the internal growth? Will the earth explode? My blood ran cold! What if the earth will grow faster than I am able to run towards my home? Will I suffer a similar problem Achilles had when he was running after the turtle? Fortunately with strong effort I finally reached my home again and my GPS receiver told me that the course that used to be about 10 kilometers long has grown by 1500 meters. Stay tuned, I will report the latest findings --- if there are any...

Thursday, November 10, 2005

building a linear solver

I did now build again the current version of a linear solver I used in another project some years ago. It is always funny to see how some people build their projects. Instead of using a makefile they use really heroic shell scripts. At least they are using a compiler toolkit instead of implementing a broken parser manually like many other projects. But what you definitely don't want to do is turning compiler warnings on...

Wednesday, November 09, 2005

preparing course with limited sarcasm

Today I did some preparations for the course tomorrow where I have to tell our students about object oriented programming. Unfortunately the explanations should be based on Java thus I had to do some extra training to limit my sarcastic comments about that language to the strictly mandatory minimum level...

In the afternoon we had a meeting of the faculty council. Obviously I cannot tell stuff from there in public and even if I did you most likely wouldn't believe it...

Tuesday, November 08, 2005

security experts and linear package dependency resolver

Today I was shocked again (as it happens most days of my life). I saw how an academic research group working mainly on the area of computer security have configured their own IT systems. Obviously I cannot go into details here but I can repeat my general advice to all people working on theoretic concepts to at least apply these concepts they are publishing papers on it to their personal practice. If you don't do so, you definitely will lose contact to reality...

Another thing I thought about today was how to improve dependency resolving in our build system. Currently we are doing basic dependency checking with a greedy algorithm that continuously takes the decision required to resolve a dependency as long as it is not ambiguous. If the decision is ambiguous the resolver stops and requests manual specification. This does work and is implemented by most RPM install tools as well. But for a build system it becomes more and more annoying the more distributions it supports because every distribution likely adds some more ambiguous choices. The alternative some other build systems use is to hard code some special selection rules is not really better because it tends to blow the rules for each additional distribution you add. My current idea is to convert all package dependencies into linear equations, adding an objective function to minimize the number of packages, and then solve the simplex matrix by a linear solver. This would definitely give a generic algorithm and converting dependency rules to linear equations is straight forward. To prevent the solver from selecting one solution randomly if there are multiple minimal sets possible, I might give some extra weight (< 1/(total number of packages)) in the objective function to the packages. Nice thing with these idea is that it will work with any package management system, solving the sparse simplex matrix should be acceptable fast with good solvers, and you don't need any user interaction as long as the dependencies are solvable.

Monday, November 07, 2005

top secret --- this message will suffer self destruction in 20 seconds...

Some companies have the annoying habit to label every document they publish internally by the word "confidential". I understand that there are things that should not become public and thus must be kept confidential but some companies often label stuff published internally as confidential although the same thing with almost the same wording was published to the press as well. You may ask: "What's the problem?" --- Well, what do you think how serious the company employees will take the word "confidential" if it seems to be already included in the letterhead of the standard internal letter paper of the company.

But some companies have already recognized this problem and thus invented the wording "strictly confidential". --- What's the meaning of this? And what's the difference to the simple version of "confidential"? Does this mean that you should tell around the "confidential" stuff but not the "strictly confidential" stuff? But it seems that at some companies even the "strictly confidential" stuff is no longer to be considered serious because I have already seen flyers placed near the entrance to the lunchroom of a company that was labeled "strictly confidential". Do they really believe that this information does not spread if they place it at such a prominent place? Especially when the lunchroom is also accessible by some visitors.

So what is the reason for all this? Did some people from internal marketing just watch too many James Bond films, are they just plain stupid, or is their intention actually to attract attention by labeling leaflets that way. Ok, you can't do anything about the first two possible causes but if the last one is the actual reason then those people should notice that it is problematic what they are doing. If they are using words like "confidential" in such a meaningless way people might ignore it even when they get information that is _really_ confidential and this actually _can_ hurt a company.

Sunday, November 06, 2005

Copy&Waste programmers and compiler crash

Tried to build our database system with gcc 4.1 today. The first thing I noticed again was that the so called Copy&Waster programmers were active again. You don't know what a Copy&Waste programmer is? This is this sort of programmer that is too lazy to write something like a function body but instead takes a random file with similar code, copying all the errors of the original author and adding some new one. This sort of programmer is the same sort like the ones that implement almost all member functions of a C++ class within the class declaration resulting in two problems. The first one is that by the C++ standard member functions implemented within the class declaration are always inlined, which most likely fails for functions with thousands of lines of code. The second one is that it makes the class declaration complex and unreadable. This second problem combined with Copy&Waste programming then results in compiler errors like this:

myclass.hh:42: error: extra qualification 'myclass::' on member 'foo'

If the class declaration would have been clear from implementation code people would have noticed immediately that there is broken code. So, if you are a Copy&Waste programmer or you implement member functions within the class declaration please stop this _now_ unless you want to become non-replaceable in your company because you become famous for nobody wants to maintain your code.

After I fixed those stupid bugs I found that the compiler again crashes when trying to build the runtime engine. Will have to check tomorrow whether it is ok to show the preprocessed code in the public to do a proper gcc bug report.

useless road signs and "Wetten dass..." event

This message about yesterday is a bit late because yesterday I did two things that made so much exhausted in the evening that I didn't want to do anything else afterwards.

The first thing was my usual 30km running exercise for the weekend. There I found one of the most useless German road signs I have ever seen. In Ilvesheim there is a blind alley of about 150m which is easily identifiable as a blind alley from the beginning. They have but a sign that says that it is only allowed for cars that have their destination in that street to pass through. --- You won't guess that! Whoever might be interested to pass through a blind alley of 150m if he does not want to go there? The city council would have better invested the money for that sign into the local school for blind people or some project like that. But we have many useless road signs like that. In Ludwigshafen for example there is a road on the Parkinsel which is as well closed for cars. They have placed an additional sign there which reads "Zufahrt fuer Berechtigte frei" which means basically that access is allowed for authorized people. Well, I always thought that it is exactly the _definition_ of "authorized" to be allowed to do something thus if I am authorized to access a road by car I am allowed to do it whether there is such a sign or not.

In the evening I went to an event at the water tower of Mannheim related to the German TV show "Wetten dass..." which is the most famous TV show here in Germany. Yesterday they sent live from Mannheim and because of that there was an event at the water tower where 250 electric guitar players had to be found to play together the central theme of "Smoke on the Water". They had a nice supporting program there and almost everybody was in high spirits.

Friday, November 04, 2005

teaching to use tools properly

Why the hell are most academic computer scientists of the opinion that it is not important to learn using the tools for their daily work properly? Actually I found that most researchers at a university for instance actually don't use a revision control system in a way that it helps them to track revisions of their developed software (what typically a revision control system is designed for) and most of them don't have a clue what a linker is actually doing.

So, why is that the case? You expect those people to be quite intelligent (often even with some amount of arrogance when comparing themselves to "simple" people working in the industry). I think this is often a result of that sort of arrogance because if you talk to such people you are often told that it is of no academic interest to learn about existing tools. I understand that there is no academic conference where you can publish a paper on how to compile a C++ application. But couldn't it still be useful to understand the tool you are using to save much of your valuable time by not needing to work around problems that result from improper usage of the tools? And of which actual use is a benchmark report about various algorithms implemented in C++ when the fastest one works unreliably because the implementor did not understand the aliasing rules?

The same problem occurs when teaching students. In recent times it becomes more and more a common practice for many teachers at universities to expect students to be no longer able to learn an additional programming language or something like that on their own. Instead they start to standardize to one programming language for all courses just to make sure every student has at least seen it once before. The very same teachers then complain that most students are no longer capable to do productive work in a project. When should students learn autonomous work when they have to learn only exactly what the teacher tells them in the course instead of being forced to learn some additional stuff that is useful to understand the topic?

In my opinion those academics should understand that they are not superior compared to someone working in the industry but they have a different focus. _Both_ sides could and should learn from each other. Where academics have a clear focus on trying much interesting stuff, a person working for a company is more interested in creating a product that is of an actual use and does actually work. Have you ever tried to use software from an academic project in a productive environment?

Thursday, November 03, 2005

still alive and fighting again with the drpmsync server

I am still alive!

Actually the strange package I received today was not a parcel bomb but only some boring contract papers from a company I am involved in. The fact that I did not know the sender was just because I did not receive the documents directly from that company but from another company that sent them on their behalf.

Currently I am again running my specially modified drpmsync client doing some dirty tricks to catch up again with the current SUSE edge distribution because the normal client is still not usable because of the slow server. Thanks to Eberhard's fast server my special hacked up client can fetch some files in parallel from there although his server does not support the drpmsync protocol. If that situation holds on for some longer time it could be useful to clean up this version and publish it.

Wednesday, November 02, 2005

receiving strange package

One day after they went into panic in the Netherlands because of a package in a train I had a notice from UPS in my mailbox informing me that they wanted to deliver a package to me but were not able to. Obviously this was because I was at work. The strange thing with this is that the notice claims the package is from a company or person I never heard of before. If I were paranoid I would suspect the package now to be a parcel bomb or something like that. --- Wait actually I _am_ known to be paranoid...

Well, let's hope that you read another message from me tomorrow...

Tuesday, November 01, 2005

Halloween tricks

You noticed that I did a Halloween trick yesterday by not writing anything here? --- Ok, actually it was not really a trick but just the result of the fact that I was on the greatest Halloween parties I have ever seen and after that party I forgot to do so.

It still seems that everybody is doing Halloween tricks here although Halloween is not really based on any tradition in Germany. The most famous tricks are currently done by the SPD, one of our political parties. It all started with the board of managers electing a secretary general that the chairman didn't like to have. This lead the chairman and various other persons to announce their retirement and lead the party into another big crisis. It seems someone should have given them some treat instead. Let's see whether someone manages to form a new government in the near future, the whole thing slowly begins to become a staircase wit...