Schade

Hin und wieder begegnen uns Menschen, die wir (auf Anhieb) sympathisch finden. Man ist freundlich und hilfsbereit, unterstützt sie und ist ihnen gegenüber selbstlos. Nach einiger Zeit bemerkt man, das sich die andere Person immer mehr von einem entfernt und schließlich alle Verbindungen kappt. Man ist enttäuscht und fragt sich, was man falsch gemacht hat - kann es sich aber nie tatsächlich erklären. Die Person darauf anzusprechen würde - so glaubt man - den Keil nur tiefer treiben und eine zeitlang glaubt man, früher oder später würde sich schon alles klären. In Wirklichkeit klärt sich natürlich nichts, und man ist immer noch genauso ratlos wie zu Beginn. Irgendwann ist der Kontakt dann ganz eingeschlafen und man vergisst die Person langsam.

Mehr oder weniger durch Zufall trifft man die Person wieder. Man muss feststellen, das sie sich sehr stark verändert hat - und nicht zum besten, wie auch Dritte meinen. Man versucht, den Kontakt wieder herzustellen, antwortet auf fachliche Fragen, die von der Person gestellt werden und hilft bei Problemen - nur um im Gegenzug den Kontakt wieder einschlafen zu sehen. Man sorgt sich um die Entwicklung der Person.

Da man bestimmte Interessen mit der Person teilt, läuft man sich hin und wieder über den Weg und man kann so, in Zeitsprüngen, sehen, wie sie sich entwickelt und welche Meinungen und Haltungen sie an den Tag legt. Aus der Sorge um die Person wird langsam Resignation - man hat aufgegeben und lässt die Person ihren Weg gehen.

Schließlich trifft man wieder auf einander. Die Person feindet einen offen an, nimmt dabei sogar Bezug auf das frühere Verhältnis: ‘den kenne ich’, ‘der ist so und so’, ‘der macht immer’ und ähnliches. Man muss erkennen, das man von Anfang an ausgenutzt wurde - und das man sich gründlichst in der Person getäuscht hat.

Alle Unterstützung, Förderung, Hilfe und Rat, die man angeboten hat - und die mit vollen Händen genommen wurde - wird nun zurüchgezahlt mit Hähme, Schlechtigkeit und übler Nachrede.

Man selbst ist machtlos - was soll man schon tun, wie die verdrehten Worte wieder zurechtrücken - vor allem aber fassungslos. Fassungslos über die bodenlose Frechheit und die eigene Naivität.

Welches Antivirentool ist zu empfehlen?

Features, die ich benötige:

  • Lauffähig unter WinXP Pro und Home.
  • Eine Lizenz, das Tool auf zwei Rechnern zu installieren wäre nett, muss aber nicht unbedingt sein.
  • Scannen von aktuell benutzten Dateien im Hintergrund.
  • Geplante Scans von benutzerdefinierbaren Laufwerken/Verzeichnissen.
  • Scannen von E-Mails, die per POP3 und IMAP reinkommen und von per SMTP ausgehenden Mails.
  • Scannen von Downloads. Gibts das überhaupt? Geht das nur mit bestimmten Browser? Alternativ: Ständige Überwachung ausgewählter Verzeichnisse.

Any hints?

Argh - Sommergrippe

Ich glaubs nicht… aber ich bin anscheinend wirklich krank. Sagt jedenfalls mein Arzt: Sommergrippe.

Ist ja nicht so, das ich mich nicht krank fühlen würde, aber das es sooo schlimm ist… Eigentlich wollte ich bloss was gegen das Kratzen im Hals und den Hustenreiz. Es folgt das übliche Mund-weit-auf-und-Aahhh-sagen, Spatel bis zum Anschlag reingesteckt, ein langer, prüfender Blick… ‘Machen Sie sich mal frei’. Och nö, tut des denn not? Hemd runter, Kälteschock vom plöden Stetodingsbums. Ein paar mal tief geatmet (das ich dabei übel anfangen würde zu husten hätte ich ihm auch so sagen können, aber er muss es ja unbedingt hören), husten, nochmal, wieder husten, diesmal intensiver, nochmal tief einatmen, voila, da kommt ja der kleine Schleimbatzen… Abschließen darf ich am Thermometer nuckeln, das freundlicherweise jenseits der 37 Grad zu stehen kommt, dann folgt der Showdown.

Nach ein paar fachmännischen Frage, die ich ebenso fachmännisch zu beantworten versuche, was ihn etwas irritiert, dann die Diagnose: Sommergrippe.

Also www.ab-ins-bett.de, Gelomyrtol - ach, damals bei der Bundeswehr… - und viel trinken. Dreimal täglich Fiebermessen (der kann mich mal, einmal tuts auch, aber das bleibt unter uns). Das ganze für mindestens 4-5 Tage, je nach dem, wie das Fieber und der Husten sich entwicklen. Sollte es schlimmer werden, jaja Doc, Du kommst schon zu deiner Kohle fürs Haus/Auto/Praxis/sexuelle Neigungen/…

Na denn, prosit.

Wann funktioniert ein Wiki nicht?

Clay blogt zwei Meinungen über Erfahrungen mit Wikis, die beide - aus ganz unterschiedlichen Gründen - eher negativ sind. Beide haben durchaus ihre Argumente und sind nicht einfach von der Hand zu weisen.

[My Brilliant Failure: Wikis In Classrooms | Kairosnews
, Connected, Distributed Work via Many-to-Many: WhyWikiWorksNot: 2004 Dance Re-mix]

Da ich im Moment ein Projekt begleite, bei dem es um ein Wiki geht, interessiert es mich ganz besonderns, welche negativen Erfahrungen andere gemacht haben.

Ich stelle diesen meine Ideen gegenüber und gehe auf die Schritte ein, die wir tun müssen/sollten, um mehr Erfolg zu haben.

Und weil ich Optimist bin: Die Idee ist gut, jetzt müssen wir es nur noch umsetzten ;)

To really use a wiki, the participants need to be in control of the content- you have to give it over fully.[My Brilliant Failure: Wikis In Classrooms | Kairosnews]

Dieser Punkt ist durchaus einsehbar, vor allem wenn man davon ausgeht, das exakt diese Idee hinter einem Wiki steckt: jeder hat jederzeit vollen Zugang zu allen Inhalten.

80% of my time goes into coordination - communicating with people. […] We made an effort to introduce all involved to the concept of Wiki and use it wherever possible to reduce the time and effort spent in writing/forwarding e-mails and communicating the same idea to a million people in a million ways (ok I’m exaggerating here). However all efforts went in vain.
[…]
Editing other people’s work might only lead to more friction in a diverse work environment than increase the amount of trust. Access control/workflow is the only way to preserve integrity. [Connected, Distributed Work]

Stellt sich die Frage, warum alle Versuche, den Nutzern das Wiki näher zu bringen, gescheitert sind - und, ob man trotz der ursprünglichen Intention von Wikis, dem echten Leben nicht doch den Vorzug geben sollte und Workflow und Zugriffsrechte definieren sollte.

Ein solches Wiki wäre kein echtes Wiki mehr, denn dort gibt es keine unterschiedlichen Rechte oder Aufgaben, jedenfalls keine formalisierten. Informell mag man sich durchaus auf so etwas wie einen Workflow geeinigt haben - vielleicht sogar auf eine Art Schreibschutz für auf bestimmte Weise markierte Inhalte. Doch schon beim Lesezugriff scheitert dieses Modell, denn über die Suche kann man per Zufall über etwas stoßen, das man eigentlich nicht lesen sollte/dürfte/wollte.

Sind die Regeln jedoch formalisiert und werden sie von der Wiki-Engine entsprechend umgesetzt, gibt es keine Grauzonen mehr und man kann sich ‘frei’ weil ‘geschützt’ bewegen. Frei ist hier nicht im Sinne von Freiheit, sondern von Unbeschwertheit gemeint.

Kommen wir nun zu dem o. g. Projekt. Bisher lief nur die Planung und Umsetzung, tatsächlich scharfgeschaltet wurde die Anwendung noch nicht. Kurz zum Hintergrund: es gut um ein Handbuch, das die Arbeit einer Abteilung eines bekannten deutschen Softwarehauses regelt. Dieses Handbuch wird den Mitarbeitern dieser Abteilung weltweit zur Verfügung gestellt und dient als erste und einzige Referenz für deren Arbeit.

Welche Vorteile hat man, wenn man dieses Handbuch als Wiki zugänglich macht? Die Vorgabe war schlicht, das komplette Dokument ins Intranet zu bringen. Von einem Word-Export nach HTML über konventionelle Web-CMS bishin zu Sitemanagementtools zu Frontpage oder Dreamweaver wurde alles angedacht, auch Wikis. Dieser Idee wurde der Zuschlag erteilt weil: klein und schnell; gute eingebaute Suchfunktion; problemlos auf dem Server zu installieren (wenigstens in der Theorie, wir werden sehen ;)) - und vor allem: Inhalte sind ohne Klimmzüge direkt im Browser editierbar, durch die Kommentare besteht die Möglichkeit eines direkten, wenn gewünscht anonymen Feedbacks, alle Feedbacks sind gesammelt an einer Stelle.

Die Umsetzung erfolgt mittels Wikka, einem Wakka-Clon.

Dieses Wiki lässt drei Dinge zu: Erstens die Einrichtung von Zugriffsrechten auf Seitenebene. Man kann für jede Seite sagen, welche Art von Nutzer (Gast, eingeloggt = authentisiert) oder welcher Nutzer (Herr X, Frau Y) welche Rechte hat: Lesen, Schreiben, Kommentieren.
Zweitens: Kommentieren. Da der Schreibzugriff eingeschränkt werden soll, benötigt man eine andere Feedbackmöglichkeit. Statt dies per Mail geschehen zu lassen, sieht die Idee vor, dies in Form von Kommentaren zu tun. Kommentare darf jeder an jede Seite anhängen. Die Kommentare sollen genutzt werden um Fragen zu klären und um Hinweise für neue Versionen des Dokuments zu sammeln.
Schließlich bietet Wikka die Möglichkeit, einen Administrator zu bestimmen. Dieser hat global alle Rechte, kann Zugriffsrechte bestimmen und Dokumente (auch Kommentare) löschen.

Die Situation bisher bzw. mit den anderen vorgeschlagenen Lösungen sähe so aus: Ein statisches Dokument im Intranet. Feedback kommt ungesteuert per Mail zu mehreren Leuten. Änderungen an dem Dokument sind nur über zwei oder mehr Köpfe (technisches Personal, andere Abteilung) hinweg möglich.

Ein Web-CMS hätte zumindest das letzte Problem gelöst, nicht aber den Wunsch, das alles klein und übersichtlich zu halten, vor allem den Aufwand im Hintergrund. Niemand der Beteiligten will eine neue Oberfläche lernen oder sich gar mit Templates oder anderem technischen Kleinkram auseinandersetzen müssen.

Das Wiki hat keine spezielle Oberfläche. Die Seitenansicht ist die einer jeden anderen Webseite. Die Editieransicht sieht aus wie Word im Browser, auch das ist für Büro-Geübte kein Problem. Um Workflows oder Zugriffsrechte muss man sich ebenfalls keine Gedanken machen, da es außer einem Vieraugen-Prinzip (eventuell werden es auch mehr, aber die Anzahl bleibt überschaubar) keinen Workflow gibt, und die Zugriffsrechte automatisch vergeben werden. Ändert sich etwas an denen, ist man mit einer Änderung in der Konfiguration sowie einer kleinen Datenbankänderung dabei.

Von daher also keine Probleme, oder jedenfalls keine unlösbaren.

Hakeliger wird es hinsichtlich der eigentlichen Nutzung und der Nutzer.

Wikis kennen keine formale Struktur, wie man dies von üblichen Web-CMS her gewohnt ist. Die Struktur eines Wikis entsteht beim Schreiben im Wiki. Dies erfordert ein hohes Maß an Disziplin, soll das Ergebnis konsistent und nutzbar sein. Hier werde ich einspringen (müssen) und den Hauptnutzern zumindest die Grundzüge erläutern und mit ihnen gemeinsam Richtlinien schaffen. Im Besten Fall umfassen diese Richtlinien Themen wie: Seitenerstellung, Refactoring, Strukturierung und Navigation. Aber auch die Software hilft beim Strukturieren. OrphanedPages und WantedPages sind in dieser Hinsicht sehr nützliche Tools.

Ohne Nutzer ist das ganze Projekt aber zum Scheitern verurteilt, wie üblich ;) Wird es nicht genutzt, hat man Zeit und Geld verschwendet. Wir müssen den Nutzern also genau erklären, warum wir uns für das Wiki entschieden haben und wie sie aus dem Wiki den größtmöglichen Nutzen für sich ziehen können. Denn subjektiv kanns ihnen wurscht sein, ob das Handbuch als schlichtes Word-Dokument oder eben per Wiki zu ihnen kommt.

People are resistant to change. [Connected, Distributed Work]

Wo sind die Vorteile für die Nutzer? Was ist am Wiki besser als an der alten Lösung?

Direkt eigentlich nur die Suche. Die erzeugt nicht nur eine Trefferliste, sondern liefert die Treffer im Kontext des Dokuments, so daß man leichter erkennen kann, was ein guter Treffer ist und was nicht.

Die wahren Vorteile stecken in der Hintergrundarbeit und müssen von innen nach außen gekehrt werden.

“Weil Ihr direkt auf der Seite (anonym) Feedback geben könnt, haben wir es leichter mit neuen Versionen des Handbuchs weil wir alle Kommentare an einem Platz haben und schneller mit den einzelnen Dokumenten fertig sind. Wir müssen nicht mehr stundenlang im E-Mail-Programm bzw. in uralten E-Mail-Archiven (Outlook) wühlen, statt dessen sind alle Kommentare zu einer Seite direkt auf der Seite sicht- und verarbeitbar. Wenn wir mit Überarbeitungen und Korrekturen schneller sind , könnt Ihr schneller wieder an die Arbeit, verliert weniger Zeit und könnt effektiver arbeiten.”

“Weil Ihr (anonym) Feedback geben könnt, werden Fragen öffentlich beantwortet - im Laufe der Zeit erhält man eine Kommentarsammlung mit Tipps, Hinweisen und Use Cases (auch die Kommentare sind im Volltext suchbar, nebenbei bemerkt.)” [Anm.: Das könnte aussehen wie die User Comments im MySql-Handbuch (etwas nach unten scrollen, sie folgen unterhalb des eigentlichen Dokuments) oder die User Contributed Notes bei PHP.]

“Weil Ihr (und wir) das alles ohne Medienbrüche tun könnt, funktioniert die Kommunikation reibungsloser und weniger Informationsverlust. Keine dauernden doppelten Rückfragen mehr, Unklarheiten können sofort ausgeräumt und Fehler sofort korrigiert werden.”

Fassen wir also zusammen, wie wir unser Ziel erreichen wollen und was wir dafür tun müssen:

Übernahme gewohnter Strukturen aka Workflows und Zugriffsmechanismen sollen die Umgewöhnung für alle Beteilgten so schmerzfrei als möglich machen. Dazu bedienen wir uns der besten Ideen beider Welten, der Wiki-Welt und der Formalismen-Welt des Unternehmensalltags.

Ehrliche Information der Benutzer über die Möglichkeiten des Systems und warum wir glauben, das es besser ist als das alte. Schrittweises Vermitteln unserer Vision und der Vorteile, die mit ihrer Vollendung einhergehen. [Das ist natürlich bei fast jeder Neueinführung, Umstellung, … nötig. Dennoch kann gar nicht genug darauf hingewiesen werden. Viel zu oft wird dieser Punkt vernachlässigt, mit dem Ergebnis, das Neuerungen nicht angenommen werden.]

Eventuell habe ich hier noch das eine oder andere vergessen/übersehen/falsch gedacht. Kommentare willkommen ;)

Nachschlag: XML korrekt ausliefern

Ich bin geneigt, das hier unter Lust und Frust einzusortieren ;)

Nachdem ich die Tage groß und breit von XML, Zeichensätzen und Content-Types erzählt habe, hier ein paar Infos wie man sich solchen Ärger sparen kann.

Testen
Betrifft mich das Problem überhaupt? Und wenn ja, wo muss ich ansetzen? Beide Fragen klärt der iHHC. Nach Eingabe einer URL (ich bitte darum, dieses Tool nicht zu mißbrauchen, sonst verschwindet es ganz schnell wieder) zeigt es die gesamte Antwort des Webservers auf die Anfrage nach der eingegebenen URL. Zum Beispiel hier die URL des WWWorker-Feeds.

Zwei Stellen sind hier wichtig: Erstens die mit Content-type: beginnende Zeile im ersten Teil der Ausgabe, dem HTTP Header. Zweitens die Angabe des XML-Dokuments selbst, zu finden in der ersten Zeile nach dem Header, beginnend mit <?xml (diese Zeile nennt man übrigens XML-Prolog, nur mal so am Rande).

Stimmt die Angabe im XML-Dokument nicht?
Den im Dokument bestimmten Zeichensatz kann man, jedenfalls in den meisten Fällen, leichter ändern als den vom Server mitgeschickten, deswegen fangen wir damit an. Welcher Zeichensatz ist nun eigentlich der Richtige für mein XML-Dokument? Wenn im Dokument nur lateinische Buchstaben ein paar Zahlen vorkommen, kann man ruhig us-ascii nutzen. Kommt aber zum Beispiel das EUR-Zeichen € vor, sollte es iso-8859-15 sein. Zu den Zeichensätzen siehe Teil 1 dieser Trilogie.

Stimmt die Angabe im HTTP Header nicht?
Wie ändere ich den Zeichensatz für meine XML-Dokumente? Per Webserverkonfiguration. Bei Apache httpd geht das per

AddCharset iso-8859-15 .xml

Diese Zeile kann auch in einer .htaccess-Datei definiert werden (siehe Context: in der AddCharset-Doku.

Wenn wir nun schon dabei sind, checken wir doch gleich noch den vom Server angegebenen Content-type. Für RDF sollte dieser application/rdf+xml lauten, für RSS application/rss+xml und für Atom, richtig geraten, application/atom+xml. Das bekommen wir mittels AddType auch problemlos hin.

Fies wirds wenn wir, wie im Fall des WWWorkers, zwei verschiedene Feeds anbieten: einen RSS 2.0- und einen Atom-Feed. Beide haben die Dateiendung .xml. Der RSS-Feed bekommt aber einen anderen Content-Type als sein Atom-Bruder. Dank der Files-Direktive gelingt auch dies. Hier der Einfachheit halber ein Auszug aus dem .htaccess-File des WWWorker:

AddCharset iso-8859-15 .xml
AddType application/rss+xml .xml

<Files atom.xml>
	ForceType application/atom+xml
</Files>

Was geschieht hier: Zunächst bekommen alle Dateien mit der Endung .xml den Zeichensatz ISO-8859-15 verpasst. Außerdem wird all diesen Dateien der Content-Type application/rss+xml zugewiesen. Die Datei atom.xml erfährt eine Spezialbehandlung, ihr wird per ForceType application/rss+xml aufgezwungen.

An dieser Stelle sollte das Dokument mit korrektem Zeichensatz und korrekter Content-Type-Angabe ausgeliefert werden.

Und was sagt der Feedvalidator?
Strenggenommen kann uns dessen Meinung egal sein. Er ist nämlich kein SGML-Parser, und damit eigentlich nicht geeignet, hundertprozentige Aussagen über ein XML-Dokument zu machen. Aber seis drum, er ist das Beste, was wir haben.

URL eingeben, ENTER drücken und warten. Im besten Fall gratuliert er schlicht. Im schlechtesten ist der Feed sowieso nicht wohlgeformt, und wir haben uns all die Mühe für einen kaputten Feed gemacht. Los, reparieren! Im zweitbesten Fall meckert der Feedvalidator nur noch über ein oder zwei Zeichen, die er nicht korrekt auflösen kann. In diesem Fall passt entweder der Zeichensatz nicht 100%ig (zum Beispiel wurde ISO-8859-1 angegeben, das Dokument enthält aber das EUR-Zeichen €, das es nur im -15er gibt), oder die Anwendung, die den Feed erzeugt hat, macht Fehler.

Im Falle des WWWorker ist dem so. Aus unerfindlichen Gründen generiert Movable Type das EUR-Zeichen als XML-Entität, die leider mit dem Zeichensatz ISO-8859-15 nichts zu tun hat. Wer hier eine Idee hat, was falsch läuft oder wo ich krumm denke, her damit.

Sollte ein Eingriff in die Konfiguration des Webservers nicht möglich sein, hier noch ein kleines PHP-Skript, das XML-Dokumente nach außen hin kapselt. Mit Perl, Python, whatever ist das mit Sicherheit auch möglich.

<?php
header('Content-type: application/rss+xml; charset: iso-8859-15');
readfile('index.xml');
?>

Dieses Skript kapselt immer nur ein Dokument, man braucht also für jedes Dokument, das man kaspeln will, ein Skript.

Frühstück, ich komme! Bis demnächst in diesem Theater.

Wurm prüft E-Mailadressen über Suchmaschinen

WORM_MYDOOM.M verbreitet sich mittels SMTP und Emails. Auf befallenen Systemen sucht der Malicious Code zunächst nach einem Internetanschluss und verbindet sich daraufhin über einen Mail-Exchanger. Darüber hinaus werden Email-Adressen potenzieller Angriffziele aus der Windows Address Book Datei gesammelt und mittels Suchmaschinen wie Google oder Yahoo überprüft. Der Wurm fälscht zudem die Absenderadressen der infizierten Nachrichten. [MYDOOM.M tarnt sich als Meldung von Email-Systemen]

Weitere Quellen: Google News ‘mydoom+suchmaschinen’