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...
Thursday, November 10, 2005
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...
Sunday, October 30, 2005
"Der Bockerer" on TV
Today I was mainly relaxing and preparing exercises for our students.
An interesting thing I noticed is that the Bavarian TV will show the first three films of "Der Bockerer" this night. I immediately instructed vdr to record them because those are really good Austrian films.
Saturday, October 29, 2005
visiting Cologne
Ok, today I was all day occupied visiting Cologne. When I reached the conference building there was this concierge, an original native of Cologne. He was most likely the only one in the building with hundreds of signs that smoking is not allowed that was tolerated to smoke some strange cigars all day. Apart from smoking his primary job seemed to be asking everybody whether he has arrived by train and explaining that they offered a free parking space for his car. Actually he explained this to all people, whether they arrived by car or not. Then there was this Indian guy that asked him whether he speaks English. He claimed that he did so. So the Indian guy asked him whether he needs his passport. The concierge explained in clear English sentences that they have a garage and that he could use a free parking space. Obviously the concierge _could_ speak English --- and he never claimed that he could answer English questions.
After we had all work done, we did what would have been typical for an excursion of our department: We visited the cathedral and some cafes. What would have been not typical for an excursion of our department is that we walked more than 500 meters at once.
Finally I noticed that Cologne has more of everything than Mannheim: The church is bigger, there is more traffic and more nice girls although I have not checked whether the majority of them are natives but due to the fact that we were mostly in the inner city I suspect most of them have been tourists.
Friday, October 28, 2005
graduation ceremony
Today we did our yearly graduation ceremony of our faculty. I was responsible for taking photos of all people that were involved in the event. One former student first talked about why it is great to work at IBM. A professor from an other university was telling about how efficiency of solving 3-SAT problems were improved in recent years, although I suppose most people where just impressed and confused but did not understand anything. Then there was a talker from the alumni network that was a really good talker. Finally the certificates were issued to the students and then the most important part of the event took place: the buffet. Apart from eating this was the place to meet old friends and to backbite other persons.
Thursday, October 27, 2005
foolish act of the week
Today I was made aware that some people from our institute managed to win the foolish act of the week contest. Two of them attended a meeting of the university data processing center where they were offered an old 19" rack from the old local district court building that was no longer needed there. Immediately a group of happy campers went to the old local district court building and moved a 250 kilogram dusty and muddy rack first to the underground parking area, from there with a transporter to the institute building and up to the second floor where they finally found that the rack does not fit into the room where it was intended to be placed. Now the rack is blocking a door and the group of happy campers have heavy pain in arms, shoulders, and in the back.
A pocket rule could have saved much effort in this situation...
I for myself now completed the preparations for my trip to Cologne on Saturday which was much less painful.
Wednesday, October 26, 2005
PDF puzzle
My colleague did a PDF puzzle today. It was not really his intention to do so but he just created this PDF file. On most systems this PDF looks as expected but on some (Windows?) systems when watching it with the Adobe browser plugin it looks like this. I have created the same document as PDF with my tool chain that does not seem to have this problem. Anyone here with an idea what is happening here exactly? Is this a bug in the document or in the Adobe plugin?
Tuesday, October 25, 2005
student inflation, population of 10.1 repository, and lookup rules
What's the reason for the inflationary increase in the number of students visiting our university courses this semester? All courses I am aware of have a much higher number of students than was predicted by past experience. For some courses even the scheduled rooms are quite small.
To support an inflationary increase in my package repository I started to populate the repository for SUSE Linux 10.1 with the first two packages. Only two packages so far but it is a start. Note that you should _never_ install the package build-ccache on your system because it is intended to be used by morebuild only. Installing this package on a normal SUSE system might result in strange behavior. Maybe I should finally implement some ideas to morebuild that would obsolete this package completely.
Another point that results from latest SUSE releases and especially from the shipment of gcc 4.0.x is that I had to read the detailed rules for C++ lookup rules with templates to understand the details of why _exactly_ gcc rejected some specific code. I was aware about the basic facts but the specific case required the details. Funny thing was that this was the first case where gcc even provided a more detailed error message than compilers with the EDG front end. Typically it is the other way around. I use to run critical code through compilers with the EDG front end to get additional hints about problems but for this specific case one of the EDG based compilers that rightfully rejected the code like gcc did give much less detailed information about the problem and another one even accepted the illegal code like older gcc releases did. Seems the second one either uses a broken version of the EDG front end or just wants to be "compatible" to all the other broken compilers.
Monday, October 24, 2005
confession: I didn't give up and meeting inflation
Ok, ok, I must confess that I actually didn't give up with drpmsync. When I came home last night I had another idea how to sync to the current state and at 6:30am it was actually complete. Now I am the proud owner of a current repository.
But the meeting density today was definitely too high. There was a meeting for the organization of the graduation ceremony of our students. Then an even more important meeting was scheduled spontaneously. It was scheduled that spontaneously that I completely missed to cancel my participation in the other meeting. Some minutes after this meeting has completed I noticed by accident that another meeting on that topic was scheduled some minutes later and nobody noticed me about it. Finally I could even manage to participate this meeting. Will see what will happen during the rest of the week...
Sunday, October 23, 2005
not enough resources, giving up
Seems that SUSE has ways too less resources to handle a continuous access to the current set of RPM packages. As I told already yesterday I was in charge of evaluating the drpmsync service. Now I have detailed measurements and found that the drpmsync server was so much overloaded that he managed to stream out within 24 hours only the production of new packages that were made within 2 hours, i.e. less than 10%. Most likely it is not the drpmsync service that kills the machine it is running on but the fact that ftp and rsync run on the very same machine and this machine cannot handle this load.
Let's hope that they will get some public mirrors for this server or have the money to buy some additional machines. Until one of these situations happens to occur I am giving up syncing the data because in the current situation the service unfortunately is unusable.
Saturday, October 22, 2005
drifting away from the edge
After debugging all problems that were invented by securing the server with Adrian this morning I finally could start to sync the current SL-OSS-edge directory from the drpmsync server. I already had a local image of the full tree from the time when alpha 2 was released and thus expected to have a fast sync to the current state but there still are problems. The first one was that the delta set was quite incomplete in the beginning and thus instead of deltas often the full RPMs got transfered. Fortunately this seems to have been only a startup problem because later files show this problem more seldom. Now the current problem is that drpmsync.opensuse.org serves the deltas such extremely slow that I can sync less deltas than get added on a daily basis. The server sends data at a rate between 0KB/s and about 40KB/s, most of the time being less than 2KB/s. This leads to the result that people are drifting slowly away from the "edge" distribution. My current backlog is 58 hours and slowly increasing. There are only three solutions to fix this problem. Either the SUSE stuff slows down their work or they make the clock run slower or the drpmsync service gets faster. Let's hope they add some more machines in the near future to balance the load.
crazy drpmsync and seminars in the toilet
Today the drpmsync server again gave me a hint that it is quite useful to backup everything before working with a new tool. After long time syncing the repository the server was stopped and thus my client as well. After the client was restarted, it started to remove all files in my repository. Fortunately I have a policy manager running that stopped the client after some hundred deleted files. I found that the server was misconfigured and did not allow access to the data directory which made the client think that there is an empty repository on the server side and thus started to delete everything on the client side instead of doing nothing because of the error message received from the server. After learning about this annoying behaviour I added another rule to the policy manager to backup the whole destination directory before each drpmsync call.
Many students seem to be rather confused when searching for course rooms because it happens quite often during the last days that they appear at our department searching for a course room that is located in a completely different building. It seems that we should invent a course in the first semester on how to read street signs that announce the name of a street. Today a group appeard again that claimed that their seminar will take place at our building in the room C0.14. After some effort I managed to convince them that although there is always a shortage in course rooms it is quite unlikely that they do seminars nowadays in the ladies' toilet.
