Archive for August 2007

Thermosbecher

Am Samstag war ich auch ein wenig mit dem Rad unterwegs und nahm meinen mit heißem Tee gefüllten, frisch erworbenen Thermosbecher mit. Allerdings kam ich dann doch nicht dazu den Tee zu trinken. Als ich am Sonntagabend erst dazu kam den Becher zu spülen, war der Tee erkaltet und mit ihm die eingeschlossene Atmosphäre. Dummerweise war der Becher nicht ganz voll. Jedenfalls ließ er sich nicht mehr öffnen. Ich probierte es einige Male. ließ ihn bis heute stehen (ich dachte ein bißchen Luft wird da sicher reinkriechen, aber ich konnte ihn nicht öffnen. Ich löste das Problem dann, indem ich den Becher 3 Stunden in heißem Wasser stehen ließ – wo Wärme rausgeht muss auch welche reingehen oder so ähnlich dachte ich. Und siehe da mit ein wenig Kraft ließ er sich öffnen und enthielt warmen Tee.

Moral: Thermosbecher immer ganz voll machen?

Hisingen

Am Sonntag war ich zum ersten mal dieses Jahr einigermaßen ernsthaft Radfahren. Ich habe eine Runde über Hisingen, Schwedens viertgrößte Insel gedreht.

Nebenbei habe ich auch festgestellt, dass Hisingen sicherlich Schwedens am stärksten industrialisierte Insel ist und kein so beliebter Wohnort. Tausend eigenartige Gerüche lagen da in der Luft. Aber alles in allem eine gute Tour, wenn auch in die falsche Richtung. Immerhin habe ich die Bohusfestung gesehen.

sonntags_fahrt.jpg

How do we tell truths that might hurt?

Is the title of a pamphlet written by the late Edsger Dijkstra back in 1975. Working in “enterprise development”, I find that most of the stuff is still true. Replace PL/1 and Cobol with J2EE and ABAP or some other “crap du jour” and it will sound still very familiar.

One point I like a lot is the fact that a programmer needs to master his native language exceptionally well (besides from an mathematical inclination). I think this is even more of a problem today, as in the face of outsourcing, we all use English all the time and the so an exceptional mastery of English is also required. Reality is quite different. There is a lot of Europeans and Indians out there in the industry, who are using a very dumbed down Pidgin dialect, which is for sure not adequate for developing complex systems.

I beg to differ though about the effects exposure to BASIC – being a rehabilitated BASIC user myself. Fortunately I was lucky enough to move on to PASCAL, but looking at all the other “real business” programming languages I can see where he comes from.

Class#isAssignableFrom()

The naming of this method is rather poor. I allways spend ages figuring out what it does. To sort it out once and for all I will put the translation into human language here:

isAssignableFrom < => isSuperTypeOf

Gegen das Ignorabimus

Musste bei Anekas Kommentar an Hilbergs Epitaph denken:

Wir müssen wissen, und wir werden wissen.

Schöner Spruch und die Tatsache, dass das Hilbertprogramm ja eigentlich gescheitert ist, tut dem keinen Abbruch, sondern macht es umso wichtiger weiterzusuchen.

Noch mehr dummes Geschwätz

Wider besseres Wissen am Wochenende auf den Seiten Frankfurter Rundschau unterwegs gewesen und über einen Artikel mit dem Titel Der tödliche Stachel der Konkurrenz gestolpert. Einerseits lamentiert der Autor über die neoliberale Konkurrenzideologie, die der Natur des Menschen zuwiederlaufe. Andererseits beklagt er die zunehmenden Konzentrationsprozesse. Nebenher lamentiert er noch über die Unfähigkeit des Martksystems unter externen Effekten eine effiziente Güterverteilung zu erreichen. Dann wird noch ein wenig von Umverteilung und gleichberechtigter Mitbestimmung der Produktionsfaktoren Kapital und Arbeit gefaselt.

Natürlich ist ein freier Markt nicht Effizient, wenn es externe Effekte gibt. Würde auch kaum ein neoliberaler Ökonom behaupten. Aber eben das ist der Grund, dass wir z.B. eine Ökosteuer haben (Pigou-Steuer). Nebenbei muss ich auch bemerken, dass die planwirtschaftlichen Systeme weder effizienter noch umweltfreundlicher waren. Konkurrenz ist gut. Das Argument des Autors ist meiner Meinung nach Konkurrenz ist schlecht, weil sie eine Tendenz zu Machtkonzentration (Abnahme von Konkurrenz) hat. Natürlich hat er recht, dass es eine solche Tendenz gibt, aber gerade das zu verhindern ist eine Kernaufgabe auch des neoliberalen “Nachtwächterstaats”. Die Bundesrepublik hat auch als Lehre aus den Erfahrungen in der Weimarer Republik einen strengen gesetzlichen Schutz des Wettbewerbs. Natürlich versuchen gerade die Großen Martkteilnehmer ihre Macht zu Konzentrieren. Ein typisches Beispiel wäre der Streit um die europäische Patentrichtlinie. Hier versuchen die großen Player, die sich alle Rechtsabteilungen leisten, den Kleinen den Markteintritt zu erschweren.

Letztendlich führt Konkurrenz auch zu mehr Macht für den “Faktor” Arbeit, wenn ich mir meinen Arbeitgeber aussuchen kann, habe ich natürlich mehr Einfluss auf die Bedingungen. Einmal mehr stelle ich mir die Frage, warum die Verteilung Kapitalerträge/ Erwerbseinkommen mit Umverteilung von Unten nach Oben gleichgesetzt wird, anstatt zu hinterfragen, ob man nicht den Anteil der Einkommensarten der Individuen verschieben kann. Ich würde (ohne Zahlen zu haben) behaupten, dass dies durch den Umbau des Rentensystems bereits geschieht. Früher wurden alle Arbeitseinkommen und Renten aus Arbeitseinkommen bezahlt. Durch die Zunahme kapitalgedeckter Altersvorsorgeformen kommt hier ein Anteil aus Kapitalerträgen hinzu. Die deutsche Mitbestimmung ist sicherlich ganz gut geeignet um Unternehmen vor den dümmsten Management Trends zu bewahren, aber es muss auch so bleiben, dass der Unternehmer, der das Risiko trägt auch seine Rechte als Eigentümer ausüben kann. Andernfalls muss man auch hier von externen Effekten sprechen. Fragen der Corporate Governance in den Dienst der Einkommensverteilung zu stellen ist sicherlich kontraproduktiv.

Fazit: Wir brauchen nicht weniger, sondern mehr Wettbewerb – jedenfalls auf den Märkten. Wichtig erscheint mir zu Unterscheiden zwischen Märkten und allgemeinen “sozialen” Situationen. Im zwischenmenschlichen Bereich ist sicherlich Kooperation erfolgreicher, innerhalb der Unternehmen und auch sonst.

Wenn es um gerechte Einkommensverteilung geht ist sicherlich eine interessante Frage, wie beteilige ich “die Massen” an den Kapitalerträgen, statt auf Teufel komm raus den Einsatz von Arbeitskraft zu pushen. Außerdem ist auch die Bildungspolitik äußerst wichtig. Studiengebühren und die MBA- und FHisierung (wer das Akronym GAAP expandieren kann und über elementare Prozentrechnungskünste verfügt, bekommt einen Master) der deutschen Bildungslandschaft sind sicherlich der falsche Weg.

Umweltschutz zu weit getrieben

Vor einigen Wochen haben sich die dänische und die deutsche Regierung darauf geeinigt eine feste Fehmarnbeltquerung zu bauen. Die Reisezeit zwischen Hamburg und Kopenhagen würde damit drastisch verkürzt.

Leider sind einige Berufsökos der Meinung, dass die Brücke allerlei negative Auswirkungen habe. Ich halte das für relativ unverantwortlich. Wer heute von Hamburg nach Kopenhagen muss, kann eigentlich nur fliegen, wenn er nicht einen ganzen Tag verlieren möchte. Das ist ökologisch wohl weit bedenklicher. Insbesondere erscheinen die angeführten Gründe (Beeinflussung Strömungsverhältnisse usw.) eher absurd. Ich wage es zu bezweifeln, dass ein paar Brückenpfeiler die Unerwasserumwelt stärker beeinflussen als die Fährschiffe.

The Trouble with Deprecation

Java has this feature, that allows you to deprecate stuff. The compiler will then issue warnings, if those elements are used by non deprecated elements.

While this seems to be a good idea in fact it isn’t. If you have to change something, just do it and get immediately rid of all the crap or it will stay around.

Just suppose you want to change the return type of a method. You have to deprecate the old method and introduce a new method with a new (and probably awkward) name. Then you can remove the old one at some point. Another step of deprecation will allow you to rename the new method to the original name. This is not going to lead to nice code!