:: Das Neueste :: Das Archiv :: Die Links

Archive for the 'Programmieren' Category

Embedded Jabber

Wir haben gestern ein bisschen mit phpBB 3.0 RC1 herumexperimentiert. Das hat ein neues Feature, das ich absolut klasse finde: Jabber-Unterstützung!

Man kann sich alle seine Benachrichtigungen, die normalerweise per E-Mail kommen, auf Wunsch auch oder ausschließlich per Jabber übermitteln lassen. Das ist cool: wenn jemand auf ein abonniertes Thema antwortet oder mir eine PN schickt, kriege ich das in Echtzeit vom Server gesagt!

Mein Horizont ist damit mal wieder erweitert: ich bin die ganze Zeit schon am überlegen, wo man Jabber in meine Projekte so einbauen könnte ;)

[ 0 Comments ]

Visual Basic .net

Ich habe gerade meine .net-1.1-Runtime-Umgebung gefragt, welchen Wert der folgende Ausdruck hat:
"1,0000000000000001" = 1

Sie meinte dazu:
True

Na, das ist doch mal was, oder? Danke für diese hübsche Semantik, Microsoft.

[ 6 Comments ]

High Tech Sh*t

Heute ging plötzlich das Debuggen in meiner Entwicklungsumgebung nicht mehr: wenn ich auf den Starte-mein-verbugtes-Programm-Knopf geklickt habe, ist nicht viel passiert. Natürlich tut man da zuerst das Naheliegendste und macht das dämliche Visual Studio zu und wieder auf — allerdings diesmal ohne auffälligen Effekt.

Danach kommt dann bei mir normalerweise die Phase, in der ich den Fehler suche, den ich ja offenbar gemacht habe. Dank meiner inzwischen doch relativ langen Erfahrung mit Entwicklungsumgebung und Betriebssystem habe ich diesen langwierigen Prozess aber heute einfach mal übersprungen und bin gleich zum bewährten Hausmittelchen übergegangen:

Rechner neu starten…
… und geht. Dankesehr.

Manchmal darf man als Informatiker einfach nicht denken, man hätte die Kiste im Griff — dazu ist sie nämlich zu mies programmiert. Ich hoffe nur, dass mein Kram in Zukunft nicht auch so Bananensoftware sein wird…

[ 0 Comments ]

Microsoft und die Fehlerbehandlung

Was mich ganz irre macht beim Arbeiten mit Microsofts .net-Kram in der Firma ist nicht etwa hauptsächlich die Abneigung gegen die Firma, die das produziert, sondern diese kleinen Produktivitätshemmnisse, gegen die ich immer wieder renne.

Beispiel von heute: ich bekomme eine NullReferenceException von ganz tief unten im Microsoft-Code, wenn ich aus einer Gruppe von Radio-Buttons (diese runden Checkbox-ähnlichen Dinger, von denen immer nur eine ausgewählt sein kann) eine als angewählt markiere. Da staunt man: wie kann es sein, dass diese Exception, die klar einen Programmierfehler signalisiert und sonst gar nichts — und die überhaupt nicht hilfreich ist, weil sie mir nicht sagt, was ich falsch gemacht haben könnte — mitten aus der Library heraus geworfen wird?Sowas darf eigentlich nicht passieren.

Tut es eigentlich aber auch nicht wirklich — der Fehler kam nämlich aus meinem Code. Und wurde ganz woanders geworfen, nämlich an einer Stelle, die über drei Ecken dadurch getriggert wurde, dass vor dem Markieren des einen Radio-Buttons ja erstmal der andere, der gerade ausgewählt ist, abgewählt werden muss. Und irgendwo ganz weit unten im Code von Microsoft steht dann vermutlich in etwa sowas hier:

try {
   ...
} catch (Exception e) {
   ...
   throw e;
}

… und schon sieht das für mich aus, als käme die Exception von da, weil alle Informationen über die Stelle, von wo sie eigentlich kommen, in dem Moment überschrieben werden, wo die Exception wieder geworfen wird.

Das ist ein Bug. Und der hat mich heute eine Viertelstunde gekostet.

Wenn ich jetzt sage, dass mir sowas in meiner ganzen Laufbahn als Java-Programmierer mit den Libraries von Sun noch nie passiert ist, dann hat das sicherlich was mit Glück zu tun — aber ganz bestimmt nicht ausschließlich.

Library-Bugs dieser Art kosten mich eine ganze Menge Nerven, meinen Arbeitgeber bares Geld, und Microsoft hoffentlich aus genau diesen Gründen auf die Dauer Kunden.

[ 0 Comments ]

Kapitaler Bug

Beim Nachlesen der Geldautomaten-Story bin ich über diesen wunderbaren Post gestoßen, der die aktuelle Politik (der USA, aber hier irgendwie schon genauso) für Nerds wie folgt verständlich macht:

if (person = terrorist) {
   punish_severely();
} else {
   exit(-1);
}

Wer sieht den Bug? ;-)

[ 3 Comments ]

Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: