Resistente Virenschleuder

Als die Europäer das amerikanische Festland eroberten und die fälschlicherweise als Indianer bezeichneten Ureinwohner verdrängten, brachten sie neben Waffen und billigen Geschenken unbeabsichtigt noch etwas anderes mit: Krankheiten, gegen die sie selbst resistent waren, die den Indianern aber schwer zusetzten.

Warum erzähle ich das?

Als Linux in verschiedenen Distributionen begann, den Desktop zu erobern und mit der Ausbreitung des Internets auch Viren, Würmer und andere Malware populär wurden, stellte sich eines heraus: So richtig betroffen waren nur die Windows-Nutzer. Einen Virus für Linux zu schreiben, war ungleich schwerer und die Zahl der Nutzer war doch nicht hoch genug, als dass es sich lohnte. Folglich ist der Linux-Nutzer (und jeder Nutzer anderer Betriebssysteme) gegen die Windows-Viren resistent. Was besagten Nutzer jedoch nicht davor bewahrt, unwissend Überträger zu sein. Denn niemand verhindert, dass er auf seiner Festplatte, seinem USB-Stick und in seinen E-Mails Dateien hat, die eine Form von Schädling enthalten. Ein Windows-Nutzer, der eine Datei eines Linux-Nutzers weniger argwöhnisch öffnet, weil er ihm vertraut, wird so doch das Opfer einer Attacke gegen sein System. Ein Vertrauensbruch, der so nicht beabsichtigt war.

Jeder Windows-Nutzer lernt beizeiten, einen Virenscanner zu installieren, um sich gegen Schädlinge zu schützen. Linux-Nutzer fühlen sich sicher und brauchen solche Software nicht. Damit werden sie zum idealen Überträger, da sie nicht einmal wissen, was sich auf ihrer Platte tummelt.

Aufgefallen ist mir das, als mir jemand schrieb, in einer von mir hochgeladenen Datei (die ich auch von anderer Stelle per USB-Stick empfangen habe) einen Virus entdeckt zu haben. Zwar handelte es sich um einen Fehlalarm, trotzdem macht dies eines klar: Selbst wer nicht betroffen ist, sollte seinen Datenbestand hin und wieder nach Viren untersuchen!

Freie Virenscanner gibt es zum Beispiel mit ClamAV, die man per Cron-Job regelmäßig über seine Daten jagen kann. USB-Sticks lassen sich bei Bedarf automatisch überprüfen, wenn man auf die Daten zugreift, und schon ist das Netz ein wenig dichter und die Gefahr, selbst zur Virenschleuder zu werden, ein Stück geringer.

LaTeX zurück an den Start bringen

Neuer Tag, neue Geschichte, die ich einrichten muss. Heute ist LaTeX auf dem System dran. Wir reden immernoch von Debian Squeeze.

Erster Schritt:

aptitude install texlive-full vim-latexsuite

Ja ich weiß, das ist das Rundum-Sorglos-Paket, was mir auch sehr viel Kram auf die Platte spült, was ich nie nutzen werde. Macht nichts, so ist das halt mit Rundum-Sorglos-Paketen. vim-latexsuite will noch aktiviert werden – wie, musste ich auch erst im Netz wiederfinden. Sehr hilfreich:

man vim-addons

Soweit so gut, als nächstes habe ich dann den Ordner ~/texmf aus meinem Backup zurückgespielt. Einfach mal `texhash` eingeben hat dann allerdings noch nicht dazu geführt, dass das System da was mit anfangen wollte, also wieder Doku wälzen. Ergebnis:

mktexlsr ~/texmf

Führte erstmal dazu, dass ich das gewünschte Dokument kompilieren konnte, aber ich bekam noch Warnungen, dass was mit den Fonts nicht stimmte:

LaTeX Font Info:    Try loading font information for OMS+lmss on input line 110
.
LaTeX Font Info:    No file OMSlmss.fd. on input line 110.

LaTeX Font Warning: Font shape `OMS/lmss/m/n' undefined
(Font)              using `OMS/cmsy/m/n' instead on input line 110.

LaTeX Font Info:    External font `lmex10' loaded for size
(Font)              <10> on input line 110.
LaTeX Font Info:    External font `lmex10' loaded for size
(Font)              <7> on input line 110.
LaTeX Font Info:    External font `lmex10' loaded for size
(Font)              <5> on input line 110.

Die Suche, wie man das beheben kann, war nicht so super aufschlussreich. Ich hab das dann wie folgt beheben können, wo bei ich nicht weiß, ob das jetzt die eleganteste Lösung ist:

usepackage{textcomp}

Alles in allem, ich schau grad mal auf die Uhr, über eine Stunde, um den Kram zusammenzusuchen, um dann festzustellen, dass ich auch noch das Dokument übersetzen muss, weil es in Englisch geschrieben ist. *sigh*

HowTo: Windows booten mit Debian und GRUB 2

Bei Debian wurde vor einigen Wochen das neue GRUB 2 in Debian Testing (Squeeze) gespült, das alte GRUB, welches das jetzt offiziell »GRUB Legacy« heißen soll, ablöst. Bei Ubuntu ist das übrigens auch für das nächste Release (Karmic) geplant, das in wenigen Tagen rauskommen wird. Wer diese Systeme als einzige auf einem 08/15-PC einsetzt, wird von dem Wechsel vermutlich kaum etwas mitbekommen.

Auf meinem neuen Netbook ist nun Windows XP Home vorinstalliert gewesen. Ich hab das mitbezahlen müssen und ich gebe zu, dass ich es draufgelassen habe, einfach um ab und zu nochmal Diablo II spielen zu können, ohne da im Linux große Verrenkungen anstellen zu müssen mit Installation, Spiele-3D-Grafik oder gar Wine. Nun ist es drauf und ich will es auch booten können. Der Installer von Debian Stable (Lenny) hatte das seinerzeit korrekt erkannt und in der Konfiguration von GRUB Legacy eingetragen.

Beim Upgrade auf GRUB 2 hat Debian diesen Eintrag nun schlichtweg ignoriert. Es hat auch keine neue Suche nach alternativen Betriebssystemen angestrengt, obwohl man vermutlich nur ein bisschen Code aus dem Installer hätte nutzen müssen. In der Liste der zum Boot möglichen Systeme tauchte Windows jedenfalls nicht auf.

Wie das nun bei dicken Rewrites so ist, die noch während des Beta-Stadiums ohne richtige Dokumentation auf die Nutzer losgelassen werden: man steht erstmal im Regen. Dazu kommt, dass der Distributor sich dann noch was ausdenkt, um das sauber in sein System zu integrieren. Bei der Suche, wo ich das nun eintragen müsste, hab ich dann folgendes herausgefunden:

Die neue Config-Datei von GRUB 2 ist /boot/grub/grub.cfg. Das erste was bei Debian drin steht:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

Soviel Hilfe hätte ich gar nicht erwartet. In /etc/default/grub kann man zunächst mal ein paar Optionen für den Kernel zum Laden setzen. Sowas wie quiet oder vga=789 oder ähnliches. Die Syntax ist selbsterklärend.

In /etc/grub.d liegen dann verschiedene Skripte:

-rwxr-xr-x 1 root root 3223 12. Sep 18:08 00_header
-rwxr-xr-x 1 root root 1152 12. Sep 17:56 05_debian_theme
-rwxr-xr-x 1 root root 3221 10. Aug 19:49 10_linux
-rwxr-xr-x 1 root root 4418 12. Sep 18:08 30_os-prober
-rwxr-xr-x 1 root root  281  7. Okt 23:07 40_custom
-rw-r--r-- 1 root root  483 10. Aug 19:49 README

Die sollte man auch alle brav in Ruhe lassen, wenn man sich nicht wirklich gut mit Shell-Scripting auskennt. Allerdings ist 40_custom genau der richtige Ort für unseren Eintrag um Windows zu booten. Dieser Eintrag sieht dann ungefähr so aus, bzw. gleich mal die ganze Datei, damit das klar wird:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows XP" {
    set root=(hd0,2)
    chainloader +1
}

Auch dies ist nur ein Shell-Script, das irgendwann im Update-Prozess für die Konfigurationsdatei von GRUB 2 ausgeführt wird. Bei der Angabe der Partitionsnummer aufpassen, da gab es eine Verschiebung um +1 gegenüber GRUB Legacy. Jetzt also noch den abschließenden Debian-spezifischen Befehl ausführen, um die neue grub.cfg zu schreiben und schon kann man wieder Windows booten:

update-grub

Update: Seit dem Update von heute, 24.01.2010, erkennt Debian Squeeze die Windows-Installation wieder automatisch. D.h. man kann den Inhalt aus /etc/grub.d/40_custom wieder rausnehmen. Einmal update-grub aufrufen sollte danach genügen, um Einträge für Windows in die Liste zu zaubern.

Update: Die Option vga=789 ist übrigens keine gute Wahl mehr. Spätestens seit Kernel 2.6.32-3 ist KMS, also Kernel Based Mode Setting, aktiv und funktioniert auch und wenn man dann vga setzt, kommt man aus dem X nicht mehr per Strg+Alt+F2 auf die »normale« Konsole.

Einheitliches Verhalten des Compose Key unter Debian

Ich bin gerade dabei mein neues Netbook (Samsung NC10) einzurichten. Ein Problem, das ich auch schon beim alten Notebook hatte: das Verhalten des Compose Key, den ich übrigens gern auf Caps Lock lege, ist in Gnome bzw. GTK-Anwendungen nicht deckungsgleich mit anderen Anwendungen in X wie beispielsweise Qt-Anwendungen. Man findet dann im Netz häufig den Tipp, man müsse die Umgebungsvariable GTK_IM_MODULE="xim" setzen. Nur wird immer nicht so recht klar, wo genau. Ich hab die Zeile unter Debian Squeeze jetzt in $HOME/.xsessionrc eingetragen bzw. die Datei extra dafür angelegt. Das funktioniert jetzt so und beim nächsten Mal, wenn ich das Problem hab, schlage ich hier nach anstatt ewig zu probieren und zu suchen…

Nachtrag: Um die Frage aus den Kommentaren noch aufzugreifen, ich habe natürlich keine dedizierte Compose-Taste, so wie in der Wikipedia auf den Bildern zu sehen. Vielmehr kann man unter Linux andere Tasten mit dieser Funktion belegen. Ich verwende dazu die ansonsten nutzlose Taste Caps Lock. Die Verwendung des Compose Key ist dann simpel. Einmal Compose Key drücken und dann eine meist intuitive Sequenz von anderen Tasten danach. So gibt beispielsweise Compose + T + M das hier: ™. Praktisch ist das auch, wenn man oft ausländische Buchstaben hat. Das norwegische ‘ö’ gebe ich ein, indem ich Compose + / + o drücke: ø. Viele dieser Kombinationen sind wirklich intuitiv und man erreicht so auf einfache Weise eine große Vielzahl von Unicode-Zeichen, die man sonst nur schwierig einfügen kann. :-) Hier nun noch ein Foto von der deutschen Tastatur des Samsung NC10:

Keyboard Layout Samsung NC10

Ausgesperrt bei Nacht

Ursprünglich hatte ich angefangen, diesen Beitrag in meinem noch recht neuen privaten Blog zu schreiben (der Tux hat übrigens auch eins), im Laufe des Schreibens wurde das dann aber doch zu technisch und passt eher hier her.

Warum also ausgesperrt? Es begann vor einigen Wochen, als mein bis dato stets zuverlässiges Notebook Samsung X05 plötzlich ab und zu stehen blieb, also einfror, sprich im laufenden Betrieb plötzlich nichts mehr ging. Mauszeiger ging nicht mehr, Bildschirminhalt änderte sich nicht mehr und sämtliche Tastatureingaben waren wirkungslos. Da half nur harter Reset und fortan Notebook nicht mehr bewegen, was natürlich die erwünschte Mobilität ad absurdum führt.

Unterdessen sah ich mich nach einem Ersatz um, der noch etwas leichter und kleiner als das 14″-Gerät (Masse etwa 2.1kg) sein sollte. Mittlerweile bestellt ist das Samsung NC10 in schwarz mit UMTS-Option. Ich hoffe, dass es ebenso zuverlässig sein wird, die technischen Daten und Testberichte stimmen da optimistisch. (Meine Erfahrungen damit, speziell im Hinblick auf Linux, werden folgen.)

Wenige Stunden nach der Bestellung dachte ich mir dann, dass ich das BIOS-Passwort, was beim alten Laptop stets abgefragt wurde, mal abschalten könne. Das wiederholte Eingeben bei den ganzen hardwarebedingten Reboots war etwas nervig. Gesagt getan: im BIOS-Setup dann keine Möglichkeit das abzuschalten, nur es zu ändern. Im Dialog zum Ändern hab ich also einfach zweimal Enter gedrückt und dann war ich ausgesperrt. Seitdem wird weder zwar immernoch das Passwort abgefragt, aber weder das alte Passwort noch einfach »Enter« drücken hilft. Es endet stets mit der Meldung »System disabled«, wohlgemerkt noch vor dem eigentlichen Booten.

Zunächst sei dazu angemerkt, dass ich das für einen schweren Bug in der BIOS-Software halte, weil der Nutzer an keiner Stelle darauf hingewiesen wird, dass sich der Rechner bei dieser Art Eingaben so verhält. Oder anders gesagt: das Ding hat sich hier an meinen durch langjährige Erfahrung geprägten Erwartungen vorbei verhalten. :-/

Die offensichtliche Lösung im Weltnetz ein passendes Master-Passwort zu finden, war zum Scheitern verurteilt und so wendete ich mich an den Support von Samsung. Ich erwähnte wann und wo ich das Gerät gekauft hatte und zudem, dass ich wegen räumlicher Trennung derzeit nicht in der Lage bin, an den Kassenzettel zu kommen. Interessiert Samsung aber nicht:

Da das BIOS-Passwort eine sicherheitsrelevante Einrichtung darstellt, benötigen wir aus rechtlichen Gründen eine Legitimation von Ihnen, zum Beispiel in Form eines Kaufbelegs, bevor wir Ihnen mit der Entsperrung eines BIOS-Passworts behilflich sein können.

Ok, war zu erwarten, wirft aber dennoch die Frage auf, was ich machen soll, wenn ich das Gerät beispielsweise gebraucht ohne Original-Kassenbon oder Quittung gekauft hätte? Wie soll ich da mein Eigentum nachweisen? Fotos mit mir und dem Gerät beim Verkäufer? Router-Logfiles mit der MAC-Adresse? Ich meine, ich verstehe ja, dass die das nicht jedem potentiellen Langfinger erzählen wollen, aber dann sollen sie doch bitte das BIOS-Setup so programmieren, dass man sich nicht versehentlich aussperren kann. :-(

Nachtrag: Mittlerweile habe ich den Kassenbon eingescannt und an Samsung geschickt. Heute bekam ich den Rückruf und gemeinsam mit dem Support-Menschen, konnte das Problem näher eingegrenzt werden. Nach dreimaliger Fehleingabe des Passworts zeigt das Notebook einen längeren String an, den man dem Support-Menschen vorliest. Der wiederum erzählte mir dann das aktuelle Passwort, das mir dann seltsam bekannt vorkam. Es stellte sich heraus, dass es genau zwei Passwörter gibt: ein System-Passwort und ein User-Passwort. Ersteres benötigt man, um ins BIOS-Setup zu gelangen, letzteres nur um den Rechner zu starten. Das Problem war nun, dass ich vergessen hatte, dass ich unterschiedliche Passwörter vergeben hatte. Ich wäre also noch mit dem eigentlich bekannten System-Passwort ins BIOS-Setup gekommen. Dort stellte ich dann fest, dass die zuvor als buggy gebrandmarkte Methode das Passwort wieder zu entfernen doch korrekt funktionierte. Ich konnte also beide Passwörter auf diese Weise wieder »clear« bekommen. Das einzige Problem war nun, dass anscheinend das System-Passwort beim Boot abgefragt wurde, wenn das User-Passwort nicht gesetzt war. Das muss man dann aber auch wissen. ;-)

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.

Mit Kanonen auf Smileys

Es ist schon ein paar Tage her, dass ich ein Iconset für Psi mit Smileys einer beliebten lokalen Internet-Community gebastelt und hier zum Download bereitgestellt habe. Unterdessen habe ich die eine oder andere Beschwerde von Leuten bekommen, die zwar die selbe Community aber andere Instant Messenger benutzen. Wenn diese beispielsweise einen Smiley der Form :puppy: empfangen, sehen die im dümmsten Fall einen Smiley, der die Zunge rausstreckt und danach uppy:. Egoistisch gesehen, hätte ich damit leben können, aber da mir ja speziell meine lieben Mitbewohner am Herzen liegen, schaute ich mal, ob ich nicht auch für andere Messenger als Psi so Icon-Themes, Smiley-Sets oder wie auch immer die bezeichnet werden, basteln könnte.

Ein Theme für Kopete hatte ich schnell zusammen und kündigte das in jener Community an. Die Begeisterung war groß, zumindest bei den beiden Nutzern von Kopete… Stimmen wurden laut, man hätte sowas auch gern für Pidgin, Adium, Miranda usw. Ich nutzte dann mal direkt das eingangs erwähnte Psi um mit Tux Kontakt aufzunehmen und wir sponnen ein paar Ideen zusammen. Das Ergebnis darf ich an dieser Stelle nun verkünden, doch zunächst noch ein kleiner Abstecher in die Welt der Smiley-Themes.

Wie sieht so ein Theme intern aus? Für den Fall der bereits erwähnten Psi, Kopete, Pidgin und Adium sieht das so aus, dass man einen Ordner hat mit den kleinen Grafik-Dateien, entweder im GIF-Format für animierte Viecher oder für unbegliche auch GIF oder besser PNG. Dazu kommt dann eine Textdatei zur Zuordnung von Textsequenzen zu diesen Dateien und dann wird das in ein Archiv gepackt und gut. Der interessante Punkt ist diese Beschreibungsdatei, die sieht nämlich für jeden Messenger anders aus. Mal ist das XML, in unterschiedlicher Struktur natürlich, mal ist es Plain-Text, angereichert mit unterschiedlich viel Meta-Information. Aber es sind überall die selben Grafiken und es sind alles Textdateien, die man rein theoretisch ja auch einfach von einem cleveren Programm generieren lassen kann, das einmal die richtige Zuordnung von Smileys zu Dateien kennt.

In diesem Fall war die Kanone meiner Wahl Perl Template Toolkit 2. Im Rahmen der Neugestaltung meiner privaten Homepage (nein, kein Link, ist schließlich noch nicht fertig :P ) hatte ich das schon benutzt und es erschien mir geeignet, was sich auch später bestätigt hat. Nach dem Erzeugen der Beschreibungsdateien erledigt das Verpacken ein simples Shell-Skript. Die Smiley-Themes für Kopete, Pidgin und Psi können wir damit schon erzeugen. Für die Unterstützung weiterer Messenger brauchen jetzt nur noch die passenden Templates geschrieben werden.

Eins fehlt natürlich noch: die fertigen Templates und die Skripte an sich für die Leute, die das nachspielen wollen. Eine kleine Dokumentation nebst Download-Links für bereits gebaute Iconsets gibt’s im Wiki von den Penguineering Tools. Wer selbst dran rumfummeln will, schaut am besten ins Subversion-Repository.

Andere Länder, andere Adressen

Wie der eine oder andere vielleicht mitbekommen hat, halte ich mich derzeit in Trondheim auf. Für die weniger Kundigen der europäischen Geografie: das ist in Norwegen. Ein paar gute Freunde von mir, haben dieser Tage ihren DSL-Anschluss bekommen, bei einem der örtlichen Provider, der auch gleich ein DSL-Modem mit integriertem Router (ohne WLAN) mitgeliefert hat. Das Ding, das über vier Fast Ethernet Ports verfügt, angestöpselt, Zugangsdaten braucht man dank Fernkonfiguration ja heutzutage nicht mehr und los geht’s…

Interessant war dann, was der DHCP-Server des Providers (Tele2) tut. Ich bekam mit meinem Notebook eine IP 90.***.***.*** aus einem öffentlichen Adressbereich und mit einer Subnetz-Maske von 255.255.248.0. Wie bitte? utrace* sagte zunächst, dass ich eine IP aus Trondheim hätte. Ich befand mich in einem Subnetz für 2046 Hosts und die IP sollte öffentlich sein? Ein SSH von unserem Root-Server auf mein Notebook bestätigte dies. Auf ein

nmap -sP 90.***.***.***/21

antworteten auch noch 2010 Hosts und da würden die guten Menschen jetzt direkt ihre Windows-Kisten mit reinhängen? Womöglich noch ohne Firewall? Nix da! Für WLAN war eh der alte NAT-Router geplant und der wurde flux mal eben an die Kiste vom Provider gehängt. Jetzt surfen die Schäfchen brav in 192.168.1.1/24 und was da draußen passiert, stört nicht weiter.

Interessanterweise hatte der NAT-Router per DHCP übrigens eine ganz andere IP-Adresse aus dem Raum Oslo bekommen mit einer wesentlich stärker eingeschränkten Subnetz-Maske, ich glaube sogar für nur 2 Hosts. Da würde mich ja mal interessieren, wie der DHCP das erkannt hat. Der muss ja dann doch irgendwie Mac-Adressen auswerten oder ähnliches.