Stand der Technik oder bleeding edge?

An der Fakultät für Informatik des KIT ist ein Vortrag zum Thema “How Do Professional Developers Comprehend Software?” angekündigt. Insgesamt möchte ich das gar nicht beurteilen, aber über einen Satz bin ich gestolpert:

Overall, our results show a gap between program comprehension research and practice as we did not observe any use of state of the art comprehension tools and developers seem to be unaware of them.

Das offenbart ein sehr merkwürdiges Verständnis des Begriffes “Stand der Technik”. Wenn niemand das einsetzt und niemand das kennt, ist es offenbar nicht Stand der Technik. Über die Gründe kann man spekulieren. Vermutlich ist das Zeugs, an dem der Vortragende vermutlich forscht und das er nun zum Stand der Technik erklären möchte, dafür einfach noch nicht ausgereift genug, und wird es möglicherweise auch nie sein. Im besten Falle könnte man es dann als bleeding edge bezeichnen, im schlechtesten Fall geht es, wie so oft bei akademischen Lösungen, an den eigentlichen Problemen in der Praxis meilenweit vorbei.

Makler und Vermieter

Wie vielleicht einige schon mitbekommen haben, arbeite ich jetzt in Hannover. Demnächst werde ich meine Karlsruher Wohnung dann auch endgültig aufgeben.

Meinen Vermieter hatte ich schon vor der Kündigung per Mail informiert, dass ich “gegen Jahresende” ausziehe. Darauf gab es erstmal gar keine Reaktion. Ende August habe ich dann fristgerecht zu Ende November gekündigt. In dem Schreiben habe ich dann auch mitgeteilt, dass ich die Wohnung demnächst aufräumen werde (vor einem Monat auch geschehen) und Besichtigungen gerne auch in meiner Abwesenheit geschehen können. Darauf bekam ich dann auf meine Mail (siehe oben) auch eine Antwort, mit Nachfragen, was von der Küche und an sonstigen Sachen in der Wohnung bleiben würde. Er (der Vermieter) würde demnächst den gleichen Makler beauftragen, über den auch ich damals die Wohnung gemietet habe. Soweit ok. Aber dann passierte erstmal nix. Diese Woche meldete sich dann der Makler. Ob ich denn Freitag Zeit für eine Besichtigung hätte. Ähm, nein. Ich würde zwar am Wochenende nach Karlsruhe kommen, aber erst abends. Dann vielleicht Samstag. Ähm, nein. Auch wenn ich in Karlsruhe bin, würde ich nur ungern jetzt schon mein Wochenende für irgendwelche Besichtigungen verplanen. Er könne das aber auch gerne ohne mich machen, die Wohnung sei auch halbwegs aufgeräumt (sie ist sogar ziemlich sehr aufgeräumt, hatte ich gar nicht mehr in Erinnerung). Hmm, ja, aber er habe gar keinen Schlüssel. Also habe ich ihm mitgeteilt, dass aber der Vermieter einen habe. OK, dann würde er da mal Kontakt aufnehmen.

Meine Güte, reden die Leute auch irgendwie miteinander? Wenn ich dem Vermieter mitteile, dass er Besichtigungen gerne ohne mich durchführen kann, ist es doch nicht völlig abwegig, dass er das auch dem Makler mitteilt. Und der Makler hat offenbar schon einen ersten Interessenten, war aber noch nicht (für Fotos beispielsweise!) in der Wohnung. Der Vermieter anscheinend auch nicht – dabei wäre es ja nicht völlig abwegig, den Quasi-Leerstand für eine Besichtigung und eventuell notwendige Instandhaltungsarbeiten zu nutzen.

Die Haltung sowohl von Vermieter als auch Makler scheint hier aber eher “Gebt mir das Geld und lasst mich in Ruhe.” zu sein :-/

Internal Server Error beim MDN

Ich hatte mich über Interpunktionsfehler im Mozilla-Entwicklerhandbuch des Mozilla Developer Networks (MDN) geärgert. Allerdings nur so geringfügig. Aus gutem Grund.

Als ich das kurz in einem IRC-Channel von Mozilla anmerkte, kam die Frage, ob ich schon einen Bug angelegt hätte. Nein, denn: Es hat mich nur geringfügig geändert, und sowas unterbricht immer den Arbeitsfluss. Aber wo schonmal die Frage kam, bin ich es halt doch angegangen.

MDN ist ein Wiki. Ich war mir ziemlich sicher, mich dort schonmal angemeldet zu haben. Ein Passwort war im Firefox aber nicht (mehr) gespeichert. Egal, also anmelden. MDN benutzt inzwischen “Persona”. Das hieß früher mal “BrowserID”, ist aber nicht ansatzweise browserbasiert. Es ist irgendwie eine Alternative zu OpenID und SAML SSO, ohne das einem erklärt wird, warum man sich für Single Sign On nochmal wieder ein Konto anlegen soll. Dort hatte ich mich eigentlich auch schonmal angemeldet. Aber vermutlich war das, als es noch nicht Persona hieß. Also hab ich dort eine E-Mail-Adresse registriert. Mit der bin ich dann zurück zu MDN. Dort sollte ich einen Benutzernamen angeben. “tessarakt” gibt es schon. Aha, habe ich also doch schon ein Konto. Weiter unten konnte man sich dann zuschicken lassen, welche E-Mail-Adresse mit dem Konto verbunden ist. Also angeklickt. Ergebnis:

Persona hilft natürlich auch nicht beim tatsächlichen Verwalten mehrere Identitäten. Es ist nur die zigste Neuimplementierung von etwas, was es schon längst gibt, ohne über die eigentlichen Probleme auch nur nachzudenken.

Jedenfalls war die zuerst angegebene Adresse offenbar nicht die, die zu dem MDN-Konto gehörte. Als ich die zweite bei Persona angab, behauptete die/der/das:

Wir haben gerade eine E-Mail an diese Adresse verschickt! Wenn Sie wirklich noch eine senden möchten, warten Sie ein oder zwei Minuten und versuchen Sie es dann erneut.

Nein, habt ihr nicht. Und einige Minuten später ging es immer noch nicht.

Fazit: Durch diverse Umstellungen lief das ganze natürlich nicht reibungslos “mal eben schnell”. Und bei Mozilla ist man offenbar damit beschäftigt, “lustige” Bildchen zu produzieren, um 500er-Fehler zu illustrieren, als dafür zu sorgen, dass die gar nicht erst auftreten. Mit sowas vertreibt man leicht die Leute, die man eigentlich bräuchte …

Entwicklungs-Mozilla vom Produktiv-Mozilla trennen

Ich wollte mal wieder einen Mozilla (in diesem Fall: Thunderbird) bauen, um damit ein wenig rumzuspielen.

Im Prinzip ist das relativ unkompliziert. Die entsprechende Seite im MDN findet man allerdings nur, wenn man weiß, dass es so etwas doch wohl geben muss (MDN-Startseite > Themen – Mozilla > über Mozilla Entwickler-Guide ins Entwicklerhandbuch > “Mit dem Mozilla Quellcode arbeiten”. Dort ist dann gleich der erste Link nicht verfügbar. Also auf Englisch umstellen. Unter “Getting the code from the Mercurial repository” findet man die ausführliche Build-Anleitung schonmal nicht. Über “Bugs for Newcomers” bin ich dann hierhin gelangt. Dort ist dann schließlich ein Link auf “Simple Thunderbird build”. Gut strukturiert geht anders.) Wenn man das gefunden hat, kann man den Code auschecken (ich habe comm-beta genommen und den Code dann lokal gleich in ein Git-Repository gepackt) und die Build-Optionen setzen:

Meine .mozconfig sieht so aus:

ac_add_options --enable-debug
mk_add_options MOZ_MAKE_FLAGS="-j4"
ac_add_options --enable-application=mail
ac_add_options --enable-trace-malloc

ac_add_options --enable-calendar

Dann wollte ich aber endlich mal (bzw. mal wieder, ich hatte in die Richtung schonmal recherchiert) das Problem lösen, dass der Development-Build natürlich ein anderes Profilverzeichnis als das produktive ~/.thunderbird nutzen soll, und sich auch problemlos gleichzeitig mit der Produktivversion starten lassen soll. Mozillen sind da leider etwas eigen … Der Channel #maildev auf irc.mozilla.org war leider wenig hilfreich: Ich solle doch einfach ein weiteres Profil (im gleichen Profilverzeichnis) anlegen und mit --no-remote starten. Ja toll, dann muss ich IIRC die Produktivversion aber ebenfalls mit --no-remote starten und das Profil explizit auswählen. Eine kurze Suche brachte zutage, dass bei Debian die Profile unter ~/.mozilla-thunderbird liegen. Also habe ich dort ins Source-Archiv reingeschaut und herausgefunden, dass das Profilverzeichnis normalerweise aus dem Anwendungsnamen ermittelt wird und die entsprechenden Variablen in application.ini gesetzt werden. Ich habe dann einfach in mail/app/application.ini eine Minimal-Änderung vorgenommen:

@@ -4,7 +4,7 @@

#filter substitution
[App]
-Name=Thunderbird
+Name=ThunderbirdDev
Version=@APP_VERSION@
BuildID=@GRE_BUILDID@
#ifdef MOZ_SOURCE_REPO

Am Namen des Executables hat das zwar nichts geändert, und am Fenstertitel auch nicht. Aber der gebaute Thunderbird lässt sich jetzt problemlos gleichzeitig mit dem “normalen” starten und schreibt seine Config nach ~/.thunderbirddev. Die Feinheiten des Build Engineerings sind mir ja ansonsten ziemlich egal.