Monthly Archives: August 2009

Automatische Keyword-Ersetzung mit Mercurial

In der Diskussion zu CRE130 über verteilte Versionsverwaltungssysteme kam die Frage auf, ob man Mercurial für die Bearbeitung von LaTeX-Files nutzen und dort dann vielleicht sogar eines der Pakete rcs, rcsinfo, rcs-multi, svn, svninfo, svn-multi oder vc verwenden kann. Ersteres ist kein Problem. Selbstverständlich kann man mit Mercurial seine LaTeX-Dokumente versionieren.

Die automatische Ersetzung von sogenannten Keywords, wie man das von RCS, CVS oder Subversion kennt, lässt sich bei Mercurial über die Erweiterung Keyword Extension realisieren, die bei Mercurial gleich dabei ist. Damit das möglicherweise mit einem der oben genannten LaTeX-Pakete zusammenspielt, beschreibe ich nun, wie man die Keywords denen von Subversion maximal ähnlich aussehen lässt.

Zunächst muss man die Erweiterung aktivieren. Das macht man am besten nicht global sondern einzeln im Repository, indem man im Repo in die Datei .hg/hgrc folgendes einfügt:

[extensions]
keyword =

Auf welche Dateien die automatische Ersetzung angewendet wird, bestimmt man in einem weiteren Abschnitt, hier z.B. für alle Dateien mit der Endung .txt in allen Unterordnern des Repositorys:

[keyword]
**.txt =

Die Ausgestaltung der Keywords kann man nun mit der Template Engine (in anderem Zusammenhang in Kapitel »Customizing the output of Mercurial« des großartigen Mecurial Buchs beschrieben) von Mercurial selbst vornehmen. Es gibt zwar default Keywords, aber in der .hg/hgrc definiert man die besser selbst. Meine aktuellen Einstellungen sehen wie folgt aus:

[keywordmaps]
Author = {author}
Date = {date|isodate}
Id = {file|basename} {rev}:{node|short} {date|isodate} {author|user}
Revision = {rev}:{node|short}

In einer Testdatei führt das dann zu folgendem Ergebnis bei der Ersetzung:

$Author: Alexander Dahl <alex@antiblau.de> $
$Date: 2009-08-13 10:43 +0200 $
$Id: bar.txt 1:986b794ecbb1 2009-08-13 10:43 +0200 alex $
$Revision: 1:986b794ecbb1 $

Um das dem Output von Subversion noch ähnlicher zu machen, könnte man den Teil für die Revision sogar noch auf {rev} abkürzen. Hier ist allerdings zu beachten, dass die Revisionsnummern von Mercurial nicht global eindeutig sind, sondern nur für das jeweilige Repository gelten.

Chaosradio Express – meine Lieblingsfolgen (bisher)

Huch, da bin ich bei der Überschrift schon mit der Tür ins Haus gefallen, dann kann ich ja auch gleich weitermachen. Der allseits (na hoffentlich) bekannte Tim Pritlove, seines Zeichens Kopf von Chaosradio Express, hat ein paar Folgen auf Halde produziert und ruft nun auf:

Jeder, der Lust hat mitzumachen, schreibt was über CRE in sein Blog. Irgendwas. Was Euch gefallen hat. Was Euch nicht gefallen hat. Oder: was Eure Lieblingsfolge ist. Oder was ihr generell so denkt oder wünscht oder was weiß ich. Irgendwas halt. Hauptsache, es ist auch Eure Meinung. Keine übertriebenen Lobhudeleien oder triebhafte Flames. Wer nicht mag, braucht ja auch nichts zu schreiben.

Nagut, ich fang doch mal vorne an. Was ist ein Podcast? Nein, nicht beim Urschleim. :-P Chaosradio Express jedenfalls ist ein Interview-Podcast. Tim fährt durch die Gegend und besucht Leute, mit denen er Gespräche über spannende Themen führt, meist so zwischen eineinhalb und zweieinhalb Stunden. Die Themen sind im weitesten Sinne was für uns Geeks, da geht’s um allen möglichen technischen Kram, aber auch Geek-Kultur, Politisches, Gesellschaftliches und immer wieder mal was Technisches.

Eingestiegen bin ich glaube ich irgendwann im letzten oder vorletzten Jahr mit Chaosradio, dem alten Nicht-Podcast-Radio-Format bei Radio Fritz!, das schon seit längerer Zeit an jedem letzten Mittwoch im Monat bei eben diesem Radiosender läuft. Ich hab da auch schon mal angerufen, war in einer Sendung sogar live on air (wenn ich nur wüsste, wann das war?) und wenn ich’s nicht vergesse, hör ich da auch sehr gern rein. Hab dann natürlich bisschen rumgeklickt und erst so gedacht »Öh, zwei Stunden Podcast? Ich bin doch mit ‘ner viertel Stunde schon überfordert.« und hab’s dann wieder beseite geschoben.

Die erste Folge, die ich dann gehört hab, war Folge 090 über die Programmiersprache Java, zu Hause auf der Stereo-Anlage. Ich glaube, ich war ständig am Zurückspulen, weil ich nebenbei was anderes gemacht hab. Etwas später hab ich’s dann an gleicher Stelle nochmal mit Folge 098 probiert, da drehte sich alles um den Mifare-Hack, der ja auch hier im Blog schon zur Sprache kam.

Dann hab ich CRE wieder liegen gelassen, bis dieses Jahr im Juni, als ich mich zum Abschluss meines Studiums mit einem iPod Shuffle (blau, 2nd Generation) belohnte. Seit dem höre ich CRE, wenn ich unterwegs bin, in der Bahn, im Flugzeug und hauptsächlich auf dem Fahrrad. Anfangs waren es noch ausgewählte Folgen zu Themen, die mich interessieren, seit CRE125 hab ich jetzt aber alle gehört und zwischendurch immer mal ein paar ältere. Zu ein paar Folgen jetzt also noch ein paar extra Worte:

CRE092 – Virtualisierung: Ein spannendes Thema, wurde auch hier im Blog schon thematisiert. Ich hab recht guten Einblick in die Entwicklung von eisXen und der Server in unserer WG läuft auch mit Xen. VMware nutze ich hier und da mal, insofern wie gesagt sehr interessant.

CRE104 – E-Mail: eine der richtig langen Ausgaben (fast 3 Stunden) und geschichtlich recht interessant. Die Jungs sind da wirklich vom hundertsten ins tausendste gekommen und ich hatte direkt auch noch ein paar Anregungen für meinen Mailserver, auch wenn ich das noch nicht umsetzen konnte bisher. (Weiß zufällig jemand, wie ich mit Exim bestimmte Strings wieder aus dem Subject entfernen kann?)

CRE118 – Das Wahlcomputer-Urteil: hier ging es natürlich auch um Wahlcomputer, aber dann doch eher um das bundesdeutsche Wahlrecht und vor allem, wie man so eine Verfassungsbeschwerde durchführt und wie sich das sozusagen »von innen« anfühlt. Das Fazit ist dann so einfach wie klar, aber ich will das Ende nicht vorweg nehmen.

CRE119 – Kaffee: für mich eine der sympathischsten Off-Topic-Folgen, wenn man das so sagen darf. Ab und zu hätte ich mir da noch ein bisschen mehr Tiefe gewünscht, aber es war trotzdem sehr unterhaltsam und angenehm zuzuhören.

CRE129 – Globales Dorf – Rechtsfreier Raum?: mit Udo Vetter war auch hier ein sehr sympathischer Gesprächspartner dabei. Diese Folge wurde ziemlich viel im Netz verlinkt, wenn mich nicht alles täuscht und das völlig zu Recht. Es wird hier ganz klar mit dem Vorurteil des rechtsfreien Raums aufgeräumt und auch die Abstecher in Politik und Gesellschaft sind hörenswert, auch wenn Tim und Udo sich häufig einig sind.

CRE131 – Mensch-Maschine-Interaktion: hier hatte ich bei »Maschine« ja zunächst an Roboter gedacht und war super gespannt, weil ich genau das Thema ja auch in meiner Diplomarbeit hatte (Experimentelle Evaluierung für zulässige Zusammenstöße zwischen Mensch und Roboter). Naja der Titel war dann aber auch schon genug der Übereinstimmung, in diesem Podcast ging es im Wesentlichen um die Geschichte der Mensch-Computer-Interaktion. Mit Peter Purgathofer hatte Tim hier einen wirklich bewanderten Experten am Start und die Aha-Effekte waren wirklich gut.

Was mich dann natürlich noch interessieren würde. Tim steigt oft mit »ein Thema, das ich schon lange auf meiner Liste hatte« ein. Wie kommt man denn auf diese Liste? Einfach so Stichwörter in den Raum werfen? Da hätte ich nämlich auch noch eins: Jabber (bzw. XMPP). Das wär doch auch mal spannend!

Soviel also zu meinen Gedanken zu CRE. Zum Abschluss noch die obligatorischen Links für die doppelt verkettete Link-Liste für #blog4cre. Laut Wiki müsste das zwischen Nummer 60 und 70 liegen. *gg*

zurück zur 64auf zur 66

Verlorene Nachrichten im OnlineChat von GMX und web.de

GMX und web.de, neben 1&1 die beiden großen Marken der United Internet AG, bieten seit etwas über zwei Jahren nun den sogenannten MultiMessenger an, ein Programm mit dem man gleichzeitig in verschiedenen Instant-Messenger-Netzwerken online sein kann. Das ganze basiert auf Jabber beziehungsweise XMPP. Ein willkommener Nebeneffekt ist, dass man mit den Zugangsdaten vom Mail-Konto eines der beiden Provider prinzipiell direkt einen Jabber-Account hat, den man mit beliebigen Clients nutzen kann. In unserem Freundeskreis machen von dieser Möglichkeit (also Jabber-Account am MultiMessenger vorbei) etwa ein halbes Dutzend Leute Gebrauch und haben so einen Jabber-Account mit leicht zu merkendem Nutzernamen und Passwort – die selben wie beim Mail-Account halt.

Heute mittag war ich etwas verwundert, jemanden aus dieser Runde im Jabber online zu sehen, der um diese Zeit während der Arbeit üblicherweise keinen Jabber-Client benutzt, sondern maximal im Browser die E-Mails abruft. Die verwendete Ressource lautete webmessenger, was mich vermuten ließ, dass GMX und web.de da jetzt ein wenig wie GoogleMail arbeiten. Dort kann man GoogleTalk, also Google’s Form von Jabber, auch nutzen, während man über das WebFrontend seine Mails liest. Also hab ich mich mal bei den beiden Portalen eingeloggt und siehe da:

Am oberen Rand des Browserfensters (naja also des sog. Viewports, vom Inhalt oder sagen wir mal der Seite selbst eben) sind neuerdings verschiedene Symbole. Von links nach rechts sind das das Logo von GMX bzw. web.de, ein Briefumschlag für den Posteingang und dann eine bunte Sprechblase. Hinter dieser verbirgt sich sozusagen das Webfrontend des Multimessengers. Wer diesen oder einen anderen Jabber-Client mit diesen Zugangsdaten schon benutzt hat, sieht auf der linken Seite zunächst mal seine Kontaktliste, wahrscheinlich sind sogar ein paar Leute online. Mit den kann man dann ganz normal chatten, soweit so gut.

Jetzt sehe ich aber bei dieser Geschichte ein paar Probleme. Wie eingangs erwähnt, wird man automatisch im Jabber-Netzwerk angemeldet, wenn man bei GMX oder web.de nun seine Mails liest. Für alle, die den MultiMessenger oder den Account mit einem alternativen Jabber-Client sowieso nicht nutzen, ist das relativ egal, weil da auch die Kontaktliste leer ist. Diese Leute empfangen dann sowieso keine Nachrichten.

Alle anderen haben nun zunächst folgendes Problem: für die Kontakte sieht das so aus, als wären sie online und quasi bereit zu chatten. Die entsprechenden Nachrichten schlagen dann in diesem Webinterface auf. Da erscheint dann eine unscheinbare rote Nummer mit der Anzahl der neuen Nachrichten über dem Sprechblasensymbol. Wenn ich jetzt nicht in diesen OnlineChat klicke, dann ignoriere ich damit nicht nur diese Nachricht, ich bekomme die auch nirgends wieder zu sehen: nicht im normalen Jabber-Client beim nächsten Einloggen und auch nicht im Webinterface beim nächsten Einloggen!

Die Konsequenzen dürften abgesehen von der fehlenden History vielfältige soziale Probleme folgender Art sein:

»Wieso hast Du meine Nachricht heute mittag nicht beantwortet?«
»Ich war heute mittag gar nicht online.«
»Doch, im Jabber, ich hab Dich doch gesehen.

Das wäre nicht so schlimm, wenn die ungelesenen Nachrichten später nochmal auftauchen würden, tun sie aber nicht! Wenn sowas wiederholt passiert, wird das bei technisch nicht versierten Nutzern zu Frustration, Missverständnissen und was weiß ich nicht führen. Das mag sich bitte mal jeder selbst ausmalen.

Was kann man nun dagegen tun? Gute Frage. Nach meinen bisherigen Erkenntnissen, kann man das Einloggen beim Jabber-Server nicht einfach abschalten, so wie das, wenn ich mich recht entsinne, bei Google der Fall ist. Was man derzeit machen kann: man klickt in diesem Messenger-Interface auf »Hauptmenü« und dann auf »Einstellungen«. Dort gibt es derzeit nur eine mögliche Einstellung, nämlich zu eben dieser Anmeldung, wo man auswählen kann, welchen Status man bei der Anmeldung haben möchte. Hier sollte man, um den zuvor geschilderten Missverständnissen vorzubeugen, unbedingt »unsichtbar« auswählen! Das verhindert zumindest, dass die Kumpels einen online sehen und dann Nachrichten an einen schreiben, die nie gelesen werden.

Für den weiteren Verlauf wäre es wünschenswert, wenn GMX und web.de den Nutzer deutlich auf dieses Verhalten hinweisen und das ganze abschaltbar machen würden. Ich werde mal versuchen, diese Betreiber zu kontaktieren, mache mir da aber keine großen Hoffnungen.

Bis dahin schlage ich vor: wenn Ihr Nutzer kennt, die Jabber über GMX oder web.de nutzen und ihre Mail auf der Webseite lesen, weist diese Nutzer deutlich auf diesen technischen Missstand hin und wie sie in zumindest umgehen können!

Technisch ein wenig versierte Nutzer: wenn Ihr in Eurem Jabber-Client seht, dass der Gegenüber gerade nur auf der Ressource »webmessenger« online ist, verzichtet auf das Senden der Nachricht!

Für weitere Vorschläge bin ich offen, könnt Ihr gern hier in den Kommentaren oder per Mail abladen.

Davon abgesehen, habe ich noch ein weiteres Problem festgestellt. Wenn ich aus dem Webinterface heraus Kontakte einlade, die ihren Account auf einem anderen Jabber-Server haben, kann ich mit denen nicht das normale Autorisierungs-Spielchen durchspielen. Die Kontakte verbleiben als unbestätigt in der Liste. Für den Fall, dass die andere Jabber-ID auch als Mail-Adresse funktioniert, kommt dort eine Mail mit einem entsprechenden Hinweis an. Man kann die Autorisierung aber nicht direkt über Antwort auf die Mail oder Anklicken eines Links abschließen, sondern muss von der Gegenseite aus seinem Jabber-Client heraus den GMX/web.de-Kontakt hinzufügen. Danach hat der dann aber den Eintrag doppelt in der Kontaktliste. Kurz und gut: wo »beta« drauf steht, ist in dem Fall auch »beta« drin. :-(

Nachtrag: Zum Glück werden Offline-Nachrichten nicht von diesem OnlineChat abgeholt sondern landen im normalen Jabber-Client, wenn der wieder online geht.