Dienstag, 31. Juli 2007

An Wikipedia schrauben im Dienste der Barrierefreiheit

Wie das Barrierefrei-Magazin Einfach für alle am 24. Juli 2007 berichtete, hat sich eine Initiative gebildet, um Wikipedia besser zugänglich zu machen — zu finden auf der Wikipedia-internen Seite Wikipedia:BIENE. Die BIENE ist der bekannteste deutsche Award im Bereich Barrierefreiheit. Anlass für die Initiative innerhalb der Wikipedia ist, dass die BIENE sich für 2007 vorgenommen hat, große Anbieter von Web-2.0-typischen Services genauer unter die Lupe zu nehmen. Dabei wird auch Wikipedia genannt.

Nun weiß jeder, der sich einmal mit der Barrierefreiheit von Webseiten befasst hat, dass dies eine vielschichtige Angelegenheit ist. Es beginnt schon damit, dass der Ausdruck „barrierefrei“ sich nicht einfach als Euphemismus für „behindertengerecht“ versteht. Auch Unübersichtlichkeit oder schwere Textverständlichkeit stellen Barrieren dar, und nicht nur Menschen mit Behindertenausweis scheitern an solchen Barrieren. Wobei die Grenzen natürlich von Mensch zu Mensch sehr verschieden sind. Ebenso verschieden wie die Ansprüche und anvisierten Zielgruppen von Web-Inhalten. Es gibt formale Regeln, die mit etwas redaktioneller Disziplin leicht einhaltbar sind, etwa die Verwendung von Alternativtexten bei Grafik und Multimedia, oder zusammenfassende Beschreibungen für Tabellen. Doch bei Themen wie Unübersichtlichkeit oder Textverständlichkeit scheiden sich die Geister. Manche finden viele Links auf der Startseite praktisch, andere werden dadurch verwirrt. Die einen verstehen keinen Satz mit mehr als zehn Wörtern, und andere fühlen sich eher für dumm verkauft, wenn sie wie bei der Sendung mit der Maus angesprochen werden.

Ein Webprojekt wie Wikipedia, dessen Bedeutung für die Menschheit von Tag zu Tag wächst, muss sich allerdings mit all diesen Dingen auseinandersetzen. Die BIENE-Initiative ist dabei wohl sicher nicht der erste Gedanke, der bei den Wikipedianern an das Thema Barrierefreiheit verschwendet wurde. Denn trotz des chaotischen HTML- und CSS-Gewirrs, durch das sich das Standard-Monobook-Layout der MediaWiki-Software auszeichnet, macht die komplexe Wikipedia-Startseite zumindest im Lynx-Browser einen recht ordentlichen Eindruck, wie auch der Lynx-Viewer von K&K Software bestätigt.

Gut gelöst ist beispielsweise die Möglichkeit, sehr weit oben im Text, für grafische Browser unsichtbar, zur Navigation und Suche springen zu können. Damit wird bereits ein typisches Hindernis und Ärgernis überwunden, an das nur wenige Seiten denken. Denn einerseits ist es für Erstbesucher schlecht, wenn zuerst die Navigation und erst dann der Seiteninhalt präsentiert wird, doch andererseits ist es für Benutzer, die von einer Artikelseite zur Hauptseite zurückspringen absolut nervtötend, sich jedesmal wieder durch den Einführungstext bis zur Navigation quälen zu müssen.

Auch die relativ weit oben angesiedelten Links zur Groborientierung, die zu Unterportalen wie Geographie, Geschichte oder Gesellschaft führen, sind durchdacht platziert. Auf den ersten Blick wirkt die Wikipedia also nicht so, als ob man sich überhaupt noch keine Gedanken zu dem Thema gemacht hätte. Gerade das aber könnte für Webdesigner, die über tieferes Know How in Sachen Barrierefreiheit verfügen, ein Anreiz sein, sich an der Wikipedia:BIENE zu beteiligen. Auf der Seite selbst kann man sich als Mitstreiter eintragen, indem man sie editiert. Oder man probiert erst mal durch Teilnahme an den Diskussionen, wie gut es mit der Wellenlänge mit den anderen Interessenten klappt. Benötigt werden aber nicht nur Webdesign-Experten, sondern auch Vertreter der Zielgruppe, also Web-Benutzer mit Handicaps.

Wichtig ist der Initiative, dass vor allem Lösungen erarbeitet werden, die nicht zur Folge haben, abertausende von Wikipedia-Artikeln umschreiben zu müssen. Die Lösungen sollen bereits auf der Software-Ebene von MediaWiki greifen, oder zumindest auf der Ebene der Skins, also etwa in den Sourcen des Monobook-Layouts. Da ist eigentlich alles erlaubt zu denken, von software-seitiger Artikel-Inhalts-Optimierung bis hin zu einem intelligenten System aus medienabhängigen CSS-Stylesheets. Falls die Initiative zu Ergebnissen führt, könnten die Lösungen möglicherweise auch für andere Software-Anbieter (etwa für Anbieter von Content-Management-Systemen) von Interesse sein.

Diskussionen zu diesem Eintrag im Webkompetenz-Forum:
Wikipedia will barrierearmer werden


Samstag, 28. Juli 2007

Wie das Web den Rest des Internets frisst (1)

Die (1) im Titel suggeriert, dass hier eine neue Serie entsteht. Steht aber noch nicht fest. Ein Trend setzt sich jedoch immer stärker durch, der mit Sicherheit noch mehr als diese eine Meldung hervorbringen wird. Diese Meldung hier lautet: Mozilla will sich von Thunderbird trennen. Mozilla ist bekanntlich die Dachorganisation einiger sehr erfolgreicher OpenSource-Produkte, alle hervorgegangen aus der Mozilla Application Suite. Das bekannteste davon ist zweifellost der Firefox-Browser, dessen Anteile auf dem Browsermarkt 20-30% betragen, Tendenz steigend.

Nicht ganz so bekannt wie Firefox ist das E-Mail-Programm Thunderbird. Dennoch ist seine Verbreitung groß genug, um es nicht einfach abzustoßen wie ein faules Stück Haut. IT-News-World, wo eingangs verlinkter Artikel zu lesen ist, meint die wahre Antwort zu kennen. Wenn sie wahr ist, ist sie sicherlich spektakulär. Dem Artikel zufolge steckt Google dahinter. Google, das sich ja immer deutlicher als einziger ernstzunehmender Konkurrent zu Microsoft profilieren will, unterstützt aus ebendiesem Grund die Entwicklung des Firefox-Browsers. Das ist übrigens keine bloße Behauptung. So optimiert Google Suchergebnisse im Firefox-Browser, und Nutzer des Microsoft-Browsers MS Internet Explorer bekommen beim Aufruf der Google-Startseite schon mal Werbung für Firefox eingeblendet.

Als Gegenleistung dafür, so vermutet IT-News World, verlangt Google nun, dass Mozilla in Zukunft nur noch Web-Software anbietet. Und zwar aus dem einfachen Grund, weil Google die „Webifizierung“ des Internets massiv vorantreibt. Google Docs soll die Alternative zur Desktop-Anwendungswelt von Microsoft Office werden, Google Groups soll die alter NNTP- und Newsreader-Welt überflüssig machen, und Google Mail tritt an, um E-Mail-Programme aus dem Rennen zu werfen. Wie also sollte Google einen Software-Anbieter unterstützen, der unter anderem auch ein zumindest nicht völlig unbekanntes Mailprogramm vertreibt?

Die Mutmaßungen von IT-News World sind zwar nicht belegbar, doch von der Hand zu weisen sind sie auch nicht. Mozilla kämpft weiter um wichtige Prozente im Browser-Markt. Ob man das Thunderbird-Projekt nun abstoßen will, um sich stärker auf die Weiterentwicklung des Firefox-Browsers zu konzentrieren, oder ob dies nur die offizielle Lesart eines Drucks ist, der in Wirklichkeit von Google ausgeht? Eins ist jedenfalls sicher: das allmähliche Sterben der klassischen Internet-Dienste geht weiter, weil sie durch leistungsstarke Webanwendungen und verändertes Nutzerverhalten (Flatrates) verdrängt werden. Web-Browser werden zur nächsthöheren allgemeinen Anwendungsschicht jenseits des Betriebssystems. Es ist kein Problem, wenn sie zwei Drittel des Arbeitsspeichers für sich alleine beanspruchen. So viel andere Anwendungen benötigt der konsequente Weblife-Mensch ja nicht mehr. Mozilla und Google haben diesen Trend jedenfalls erkannt. Google wohl schon länger, und Mozilla mittlerweile auch. Ob Google bei dieser Einsicht nachgeholfen hat, bleibt offen.


Dienstag, 24. Juli 2007

Was ist eigentlich: Dot Communism?

Von der Dotcom-Blase hat wohl fast jeder schon mal gehört. Im Zuge des ersten Web-Booms Ende der 90er Jahre investierten Banken und Sponsoren reichlich Risikokapital in Firmen, die häufig nur aus ein, zwei Köpfen, Festplatten und Modems bestanden. Die Börse griff den Trend auf und pushte den Hype in aberwitzige, realitätsfremde Höhen. Manch einer der so beglückten Wellenreiter prahlte sogar offen damit, zig Millionen Dollar wert zu sein, ohne jemals einen Cent Umsatz gemacht zu haben. Als die Blase in den Jahren 2000/2001 platzte, war immer wieder die Rede vom Zusammenbruch der New Economy.

Die Idealisten und Träumer des ersten Web-Booms wurden von der Dotcom-Welle scheinbar mit weggefegt. Doch aufgegeben haben sie eigentlich nie, und zwar aus dem gleichen Grund, weshalb die Dotcom-Blase letztlich platzte: das Web basierte auf einer Kultur von OpenSource und OpenContent. Sein Wesen war die Demokratisierung von Wissen. Die einen wussten es immer und glaubten weiter daran, und die anderen verkannten es. Ein feiner Seismograph in jenen Zeiten war das Magazin Wired. Dort erschien 1999, also mitten in der Hochphase der Dotcom-Welle, ein Artikel mit dem aufmüpfigen Titel The Rise of Dot-Communism. „On the Web, truth will have a bigger megaphone than money and "dotcommunism" will win out.“, so heißt es dort („Im Web hat die Wahrheit ein größeres Megaphon als das Geld, und deshalb wird "dotcommunism" überlegen sein“).

Doch ist es nur ein nettes Wortspiel, aus dotcom ein dotcommunism zu machen, oder sind die Verfechter von letzterem tatsächlich vom Schlage alter Kommunisten? Beim Wortspiel allein blieb es jedenfalls nicht. So ist auf der englischsprachigen Wikisource das Dot Communist Manifesto zu finden (die Original-Adresse war leider gerade nicht erreichbar). Eine deutsche Übersetzung davon ist ebenfalls verfügbar. Die Nähe zum Original von Anno 1847/48 kann und will das Dotcommunist-Manifest gar nicht leugnen.

Autor des Dot Communist Manifesto ist Eben Moglen, der eng in die Free Software Foundation involviert ist. Letztere ist bis heute die geistige treibende Kraft der OpenSource-Bewegung. Doch wie kommunistisch ist nun das Dotcommunist-Manifest? Es hantiert mit sehr authentischen, in heutiger Zeit aber eher abschreckend bis befremdlich wirkenden Begriffen wie Bourgeoisie oder Klassenkampf. Es versteht sich sehr wohl als legitime Neudeutung der kommunistischen Idee im digitalen Zeitalter. Zielscheibe sind dabei nicht mehr so sehr die Besitzverhältnisse bei den Produktionsmitteln, sondern der Privatbesitz an Ideen. Jedes Wissen, jede Information, die nicht öffentlich zugänglich im Netz steht, dient der Theorie des Manifests zufolge der herrschenden Klasse der Gegenwart, nämlich den Inhabern von Nutzungsrechten an geistigen Erzeugnissen, egal ob in der Musik, in der Literatur, beim Film oder in der Software-Entwicklung.

Die Erlösung besteht in OpenContent. Alles andere sind rein wirtschaftlich gesteuerte, aufoktroyierte Inhalte, die niemand haben will. Doch ist das tatsächlich so? Welcher OpenSource-Programmierer hört nicht gerne völlig gedankenlos Musik von Glenn Gould bis Linkin Park, entspannt sich bei Videos von Mr. Bean oder geht nur allzugerne mit seinen Kindern in Shrek-Filme. Der typische OpenSourcer oder OpenContentler ist eigentlich eher eine mehrschichtige Persönlichkeit und tolerant gegenüber allen erdenklichen Medienproduktionsformen. Ob das tatsächlich die geeigneten Frontsoldaten des Dotcommunism-Manifests sind? Und das Heer der Informations-Proletarier bleibt auch irgendwie unbestimmt. Elton John und Steven Spielberg sind dazu wohl kaum noch bekehrbar. Die vielen tausend kleinen Bands vielleicht, die von Gig zu Gig reisen in der Hoffnung, mal mehr zu erreichen als eine 500er-Auflage ihrer CDs? Wahrscheinlich nicht mal die. Letztlich reiht sich das Dotcommunist-Manifest einfach ein in die immer größer werdende Galerie skurriler und offen zugänglicher Hervorbringungen. Man könnte fast sagen, es ist sein eigenes Opfer geworden: das Netz ist nämlich längst viel zu selbstverständlich demokratisch, um sich von einer so heroisch-wichtigtuerischen Textsorte wie einem Manifest ernsthaft beeindrucken zu lassen. Die Dot-Communism-Blase darf ebenfalls als geplatzt gelten, und es wurde nicht mal bemerkt. Was übrigens alles gar nichts damit zu tun hat, dass OpenContent der richtige Weg ist ;-)

Diskussionen zu diesem Eintrag im Webkompetenz-Forum:
Zum Blog-Eintrag: Was ist eigentlich: Dot Communism?


Freitag, 20. Juli 2007

Ein eigenes hosted Wiki

Wikis sind doch nur was für Wikipedia. Ja, die Vorurteile über Wikis sind bekannt. Dabei ist das genauso, als würde das Vorurteil kursieren, mit HTML könne man nichts anderes als technische Dokumentation schreiben. Ist ja auch nicht ganz von der Hand zu weisen — da gibt es Elemente wie code, var, sample, kbd usw., die man für Software-Beschreibungen sehr gut gebrauchen kann, doch ein Journalist, der eine News schreiben will, oder ein Student, der eine Studie veröffentlichen will, braucht das in der Regel nicht. Da wären Elemente für Teaser oder Fußnoten besser. Egal, es geht trotzdem. Weil man mit <p class="sonstwas"> auch ganz gut auskommt. Vielleicht nicht perfekt für jeden Zweck, aber brauchbar. Sollen die Gralshüter der reinen Markup-Lehre ruhig nervösen Hautausschlag bekommen. Kreativer Umgang mit vorhandenen Techniken war schon immer die Lösung für mehr.

Bei den Wikis ist es nicht anders. Man kann sie als besonders bequeme Content Management Systeme für alles mögliche benutzen, nicht nur für menschheitsglobale Enzyklopädien. Das Praktische ist, dass Editieren und Präsentieren nicht wie bei richtigen Content Management Systemen weit voneinander getrennt sind, sondern unter dem gleichen Hut, innerhalb der gleichen Webanwendungs-Engine laufen. Eigentlich so, wie man es von normalen Desktop-Anwendungen kennt. Man kann ohne viele Umwege bearbeiten, was man sieht. Vieles bearbeitet man überhaupt nur deshalb, weil man es sieht und sofort bearbeiten kann. Müsste man erst eine separate Administrationsanwendung unter eigener URL-Adresse aufrufen, sich dort einloggen usw., würde man viel weniger editieren. Und das hat nichts mit Wikipedia zu tun. Es ist eine Eigenheit von allen Wikis.

Am Anfang eines Wikis ist die Startseite, und auf der Startseite steht irgendwelches software-seitig vorgegebenes Zeug. Mit einem Klick kann man den Inhalt editieren. Man kann den vorgegebenen Krempel löschen und stattdessen beispielsweise Links auf andere Seiten des Wikis setzen, die noch gar nicht existieren. Die Wiki-Software ist so nett und bestraft solche Links nicht mit einem 404-Error, sondern ermöglicht beim Anklicken des Links im Präsentationsmodus das Anlegen der noch nicht existierenden Seite. So kann man völlig zwanglos jede Art von Hypertext stricken. Egal ob Meeting-Notizen, Kontaktdaten, Projektdokumentationen, Zettelkasten, Linkverzeichnis, Rezeptesammlung, Fotoalbum, Code-Bibliothek, Lerninhalte, Vorlesungsskripte oder HowTo-Beschreibungen

Ein persönliches Wiki kann man sich am eigenen Rechner installieren. Dazu benötigt man in der Regel jedoch einen Webserver, den Script-Interpreter oder die Laufzeitumgebung der Programmiersprache, in der das Wiki geschrieben ist, in vielen Fällen beispielsweise PHP, oftmals auch ein DMBS wie MySQL usw. Nicht jeder kann oder will sich damit beschäftigen. Außerdem sind Wikis häufig nicht so ganz persönlich. Manche Wikis sollen vielleicht völlig offen sein für alle Besucher aus dem Internet, andere wiederum sollen nur bestimmten Personen zugänglich sein, etwa Freunden und Bekannten oder Kollegen und Geschäftspartnern. Solche Wikis sollten also besser gleich auf einem Server im Netz installiert werden. Auch hierbei gibt es wieder verschiedene Möglichkeiten. Man kann sich einen Root-Server mieten und alle erforderlichen Software-Produkte selbst installieren. Einige Provider sind auch auf Wikis spezialisiert und bieten Root-Server bereits mit vorinstallierter Wiki-Software an. Der einfachste Weg ist jedoch, sich bei einer sogenannten Wikifarm mit wenigen Klicks ein eigenes Wiki einzurichten. Der Aufwand ist vergleichbar dem, ein Blog bei einem Blog-Service einzurichten.

Auf dem Wikifarm-Markt tummeln sich etliche Anbieter. Der mit Abstand beste, den ich gefunden habe, ist wikidot.com. Von einem Polen namens Michal Frackowiak im Alleingang entwickelt, besticht wikidot.com durch gute Performance, viele nützliche Features, hohe Anpassbarkeit und Werbefreiheit. Es gibt keine Begrenzungen, was die Anzahl der Seiten eines Wikis betrifft. Lediglich für zusätzliche Dateien (z.B. Grafiken, Videos usw.) besteht derzeit eine Obergrenze von 100 MByte pro Wiki. Und wer es nicht glauben will, möge sich mal das noch inoffizielle Webkompetenz-Wiki ansehen!

Diskussionen zu diesem Eintrag im Webkompetenz-Forum:
Wikis


Dienstag, 17. Juli 2007

Tutorial: Ajax (8)

siehe auch:
(1): Was ist Ajax?
(2): Warum heißt Ajax so? Wo kann ich Ajax in Aktion sehen?
(3): Worin besteht die Ajax-Schnittstelle? Wie wird Ajax standardisiert?
(4): Welche Nachteile hat Ajax? Wie sicher ist Ajax?
(5): Ein einfacher Ajax-Kernel
(6): Eigenschaften und Methoden des XMLHTTPRequest-Objekts
(7): Ajax-Beispiel: Formularüberprüfung


Ajax-Beispiel: Tabellensortierung

Das Sortieren von Tabellen ist zwar mit etwas Aufwand auch direkt in JavaScript möglich. Doch dabei lauern zahlreiche Tücken, beispielsweise, wenn zu sortierende Einträge zusätzlich in Links verpackt werden sollen. Wenn die Daten der Tabelle aus einer Datenbank kommen, bietet sich Ajax als Alternative an. Wie so etwas aussehen kann, beschreiben wir im nachfolgenden Beispiel.

Tabellarische Daten aus einer Datenbank

Für unser Beispiel greifen wir auf die MySQL-Datenbank mit dem Namen cms aus dem ersten Beispiel zurück. Wir nehmen eine Tabelle namens users an, in der zugangsberechtigte Benutzer gespeichert sind. Aktuell seien dort unter anderem folgende Daten gespeichert:

+----+-----------------------+-----------------+---------------------+
| id | index_name            | group_name      | last_login          |
+----+-----------------------+-----------------+---------------------+ 
|  1 | Lyse, Anna            | developers      | 2007-07-12 09:27:23 |
|  2 | Wahnsinn, Reiner      | editors         | 2007-06-28 13:02:01 |
|  3 | Dolegstdinieder GmbH  | service-editors | 2007-06-28 13:56:39 |
|  4 | Error, Erika          | editors         | 2007-07-08 10:03:56 |
|  4 | Krieg, Frieda         | admins          | 2007-07-12 21:11:21 |
+----+-----------------------+-----------------+---------------------+

Die id-Spalte speichert Autoincrement-Werte. Die Spalte index_name enthält die Namen der Benutzer in einer Darstellungsform, die für eine sinnvolle alphabetische Sortierung optimal ist. In group_name werden Benutzergruppen gespeichert, denen die Benutzer zugeordnet sind. In der Spalte last_login wird der Zeitpunkt des letzten Logins eines Benutzers in einer für die Sortierung brauchbaren Form gespeichert.

Serverseitig setzen wir wieder ein PHP-Script ein, das die Datenbankabfrage besorgt. Außerdem bereitet das Script die HTML-Tabelle auf. Im HTML-Dokument wird wieder unser Ajax-Kernel eingebunden. In der ajax.js notieren wir der Einfachheit halber auch die Funktion zum Steuern der Tabellensortierung.

Basis-Dokument (PHP)

Vom Server lassen wir zunächst eine PHP-Datei (nennen wir sie z.B. index.php) ausliefern:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<title>Test</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<h1>Benutzer</h1>
<div id="user_list">
<?php
include("./userSort.php");
?>
</div>
</body>
</html>

Das „Script“ besteht vorwiegend aus gewöhnlichem, statischem HTML-Code. Lediglich an einer Stelle im Code ist ein PHP-Bereich notiert. Dort wird das Script userSort.php eingebunden. Im HTML-Kopfbereich wird das externe JavaScript ajax.js eingebunden.

Das HTML-Dokument besteht im sichtbaren Bereich nur aus einer Überschrift und einem div-Bereich mit dem id-Namen user_list. Diesen id-Namen werden wir verwenden, um in den entsprechenden div-Bereich die sortierte Tabelle zu platzieren.

Bevor das HTML-Dokument an den aufrufenden Browser gesendet wird, wird auf dem Server der Inhalt des PHP-Bereichs () durch den HTML-Code ersetzt, den das mit include eingebundene PHP-Script userSort.php erzeugt. Sehen wir uns dieses Script deshalb als nächstes an.

Serverseitiges Sortier-Script (PHP)

Der Code des Scripts userSort.php lautet wie folgt:

<?php

$dbh = mysql_connect("localhost", "dbuser", "dbpassword");
if(!$dbh) {
   echo "<div>Keine Verbindung zum Datenbank-Management-System"; 
   exit();
}
$sql = "USE cms";
$sqlResult = @mysql_query($sql, $dbh);
if(!$sqlResult) {
   echo "<div>Keine Verbindung zur Datenbank</div>"; 
   exit();
}
if(! isset($_GET['field']) or 
  ($_GET['field'] != "index_name" and $_GET['field'] != "group_name" 
   and $_GET['field'] != "last_login"))
   $sortField = "index_name";
else 
   $sortField = $_GET['field'];
if(! isset($_GET['order']) or ($_GET['order'] != "asc" and $_GET['order'] != "desc"))
   $sortOrder = "asc";
else 
   $sortOrder = $_GET['order'];

$data = array();
$sql = "SELECT * FROM users ORDER BY " . $sortField . " " . $sortOrder;
$sqlResult = @mysql_query($sql, $dbh);
if(!$sqlResult) {
   echo "<div>Kein Datenbankergebnis</div>";
   exit();
}
else 
   while($record = mysql_fetch_array($sqlResult, MYSQL_ASSOC))
      $data[] = $record;
if(empty($data)) {
   echo "<div>Die Tabelle enthält keine Daten</div>";
   exit();
}

$tableHTML = "<table border=\"1\">\n";
$tableHTML .= "<tr>\n";
$tableHTML .= "<th class=\"tlist\">Name ";
$tableHTML .= "<a href=\"javascript:ajaxUserSort('index_name', 
                                         'asc', 'user_list')\">&#x25B2;</a> ";
$tableHTML .= "<a href=\"javascript:ajaxUserSort('index_name', 
                                         'desc', 'user_list')\">&#x25BC;</a>";
$tableHTML .= "</th>\n";
$tableHTML .= "<th class=\"tlist\">Benutzergruppe ";
$tableHTML .= "<a href=\"javascript:ajaxUserSort('group_name', 
                                         'asc', 'user_list')\">&#x25B2;</a> ";
$tableHTML .= "<a href=\"javascript:ajaxUserSort('group_name', 
                                         'desc', 'user_list')\">&#x25BC;</a>";
$tableHTML .= "</th>\n";
$tableHTML .= "<th class=\"tlist\">Letztes Login ";
$tableHTML .= "<a href=\"javascript:ajaxUserSort('last_login', 
                                         'asc', 'user_list')\">&#x25B2;</a> ";
$tableHTML .= "<a href=\"javascript:ajaxUserSort('last_login', 
                                         'desc', 'user_list')\">&#x25BC;</a>";
$tableHTML .= "</th>\n";
$tableHTML .= "</tr>\n";
$tableHTML .= "[%tableAllRows%]\n";
$tableHTML .= "</table>\n";

$tableRowHTML  = "<tr>\n";
$tableRowHTML .= "<td><a href=\"?showUser.php?id=[%id%]\">[%index_name%]</a></td>\n";
$tableRowHTML .= "<td><a href=\"?showGroup.php?name=[%group_name%]\">[%group_name%]</a></td>\n";
$tableRowHTML .= "<td>[%last_login%]</td>\n";
$tableRowHTML .= "</tr>\n";

$tableAllRowsHTML = "";
foreach($data as $record) {
   $recordHTML = $tableRowHTML;
   $recordHTML = str_replace("[%index_name%]", $record['index_name'], $recordHTML);
   $recordHTML = str_replace("[%group_name%]", $record['group_name'], $recordHTML);
   $recordHTML = str_replace("[%last_login%]", $record['last_login'], $recordHTML);
   $recordHTML = str_replace("[%id%]", $record['id'], $recordHTML);
   $tableAllRowsHTML .= $recordHTML;
}
$tableHTML = str_replace("[%tableAllRows%]", $tableAllRowsHTML, $tableHTML);

echo $tableHTML;

?>

Das Script versucht zunächst eine Verbindung zu MySQL herzustellen. Im Fehlerfall gibt es eine entsprechende Meldung aus und wird beendet. Anschließend setzt es das SQL-Statement USE cms ab, um die CMS-Datenbank unseres Beispiels auszuwählen. Auch hier wird im Fehlerfall eine Meldung ausgegeben und das Script beendet.

Als nächstes wird geprüft, ob das Script mit GET-Parametern aufgerufen wurde. Denn über die GET-Parameter field und order erfährt das Script, nach welcher Tabellenspalte ($_GET['field']) und in welcher Sortierrichtung ($_GET['order']: aufsteigend = asc oder absteigend = desc) sortiert werden soll. Fehlen die GET-Parameter, werden Defaultwerte (Feld index_name und Sortierrichtung asc) festgesetzt. Genau das, also der Aufruf ohne GET-Parameter, geschieht beim ersten Aufruf des Scripts mit der include-Anweisung im Basis-Dokument, die wir weiter oben bereits beschrieben haben.

Nachdem die Parameterfrage geklärt ist, wird ein Array namens $data initialisiert. In diesem Array werden die Daten gespeichert, die MySQL liefern soll. Der Grund, weshalb wir für dieses Beispiel Ajax einsetzen, ist ja, dass wir MySQL die Sortierung der Daten überlassen. Deshalb bauen wir das SQL-Statement zur Abfrage der Tabelle users so zusammen, dass sich die gewünschte Sortierung ergibt:

$sql = "SELECT * FROM users ORDER BY " . $sortField . " " . $sortOrder;

Die Variablen $sortField und $sortOrder wurden ja zuvor mit den Werten der GET-Parameter field und order oder mit Default-Werten versorgt. Je nach übergebenen GET-Parametern können also SQL-Statements entstehen wie beispielsweise:

$sql = "SELECT * FROM users ORDER BY last_login desc";

MySQL liefert die Daten in der gewünschten Sortierreihenfolge aus. Falls ein Fehler auftritt, wird wieder eine Meldung ausgegeben, und das Script wird beendet. In einer while-Schleife werden die von MySQL gelieferten Datensätze in den Array $data eingelesen.

In der zweiten Hälfte des Scripts userSort.php wird der HTML-Code der auszugebenden Tabelle zusammengesetzt. In der Variablen $tableHTML wird zunächst das Grundgerüst der Ausgabetabelle gespeichert. An der Stelle, wo die Zeilen der Tabelle mit den auszugebenden Datensätzen stehen sollen, haben wir einen Platzhalter namens [%tableAllRows%] notiert, der später ersetzt wird. In der Variablen $tableRowHTML wird der HTML-Code einer einzelnen Tabellenzeile gespeichert. Auch dort arbeiten wir mit Platzhaltern der Marke Eigenbau, nämlich [%id%], [%index_name%], [%group_name%] und [%last_login%]. Dann wird die Variable $tableAllRowsHTML initialisiert. In einer foreach-Schleife wird nun der Array $data abgearbeitet. Bei jedem Schleifendurchlauf wächst der Inhalt der Variablen $tableAllRowsHTML um den Wert von $recordHTML. In $recordHTML wird jeweils eine frische Version von $tableRowHTML gespeichert. Dann werden die darin enthaltenen Platzhalter durch die tatsächlichen Daten des jeweils abgearbeiteten Datensatzes ersetzt. Am Ende muss dann nur noch in $tableHTML der Platzhalter [%tableAllRows%] durch $tableAllRowsHTML ersetzt werden. Die fertige HTML-Tabelle mit den sortierten Daten wird in einem Stück mit echo $tableHTML ausgegeben.

JavaScript zur Steuerung der Sortierung

Doch wie kommt nun die für den Anwender so komfortable Möglichkeit zustande, die Tabelle während der Anzeige im Browser zu sortieren? Dazu werfen wir einen Blick auf die Tabelle, die das Sortierscript ausgibt:

sortierte Tabelle

Im HTML-Code der ausgegebenen Tabelle sind neben den Spaltenüberschriften jeweils zwei Links notiert, die durch die Symbole ▲ und ▼ aus dem erweiterten Unicode-Bereich das Sortieren der Tabelle nach der jeweilgen Spalte in der jeweiligen Sortierrichtung ermöglichen. Jeder dieser Links definiert einen JavaScript-Aufruf, zum Beispiel:

<a href="javascript:ajaxUserSort('index_name', 'asc', 'user_list')\">&#x25B2;</a>

Es wird eine JavaScript-Funktion namens ajaxUserSort() aufgerufen. Dieser Funktion werden drei Parameter übergeben. Der erste Parameter ist der Datenbankname der Tabellenspalte, nach der sortiert werden soll. Der zweite Parameter bestimmt die Sortierrichtung, und der dritte Parameter gibt den id-Namen des HTML-Elements an, als dessen Inhalt die fertig erzeugte Tabelle eingefügt werden soll. Im obigen Beispielaufruf soll also nach der Tabellenspalte index_name (= „Name“) aufsteigend (asc) sortiert werden. Das Ergebnis soll als Inhalt des Elements mit dem id-Namen user_list ausgegeben werden.

Die Funktion ajaxUserSort notieren wir der Einfachheit halber wieder in ajax.js, wo auch der Code des Ajax-Kernels notiert ist. Der Code dieser Funktion lautet:

function ajaxUserSort(sortField, sortOrder, outputId) {
   if(!document.getElementById)
      return;
   if(sortOrder != "asc" && sortOrder != "desc") {
      document.getElementById(output_id).innerHTML = 
           "<span class=\"errortext\">Ungültige Angabe zur Sortier-Richtung!</span>";
      return;
   }
   scriptUrl = "http://localhost/ajax-test/userSort.php";
   paramStr = "?field=" + sortField + "&order=" + sortOrder;
   doHttpRequest(scriptUrl + paramStr, outputId);
}

Die Funktion prüft zunächst, ob die DOM-Methode getElementById verfügbar ist. Falls nicht, kann das Script gleich abgebrochen werden. Als nächstes wird geprüft, ob der Parameterwert für die Sortierrichtung entweder asc (für aufsteigend) oder desc (für absteigend) lautet. Abschließend wird der Aufruf des Scripts zusammengesetzt, und die Ajax-Kernel-Funktion doHTTPRequest() wird aufgerufen. Der Parameter outputId, der den id-Namen des Ausgabeelements enthält, wird an diese Funktion weitergereicht. Der Ajax-Kernel besorgt den Aufruf des Scripts userSort.php und gibt die fertig sortierte Tabelle an der gewünschten Stelle im Dokument aus.

Alle Quelltexte dieses Beispiels einschließlich komplettem HTML-Dokument und MySQL-create-Daten können Sie als ZIP-Datei downloaden.


Montag, 16. Juli 2007

Wertvolle Tippfehler

Falsch geschriebene Wörter können sehr einträglich sein. Das gilt besonders für Zeichenfolgen, die sich nur ganz knapp von einem sehr bekannten Domain-Namen unterscheiden. Eine solche Domain ist beispielsweise flicker.com. Welcher Normalo weiß denn schon, dass man beim Original Flickr das e absichtlich ausgespart hat, um — nun ja, es darf gemutmaßt werden. So bekommt also flicker.com eine Menge Zulauf, und nicht wenige scheint es in den Fingern zu jucken, diese segensreiche Falschtipper-Domain für teueres Geld zu erwerben.

Am meisten Traffic hat natürlich Google, und der Name lädt ja geradezu ein zu Ideen. Nun hat hat sich Google wie einige andere große Anbieter durchaus abgesichert. So führt die Eingabe von www.gooogle.com (mit drei o) per Redirect zum Original. Das stört diejenigen, die sich verkäuflichen Traffic durch Falschtipper erhoffen, allerdings wenig. Es könnte ja sein, dass beim einen oder anderen User das o klemmt. Und deshalb gibt es goooogle.com mit vier o. Klar, dass das noch weiter geht. Aber wer da glaubt, gooooogle.com mit fünf o sei der nächste Trittbrettfahrer, der irrt. Diese Domain führt wieder zur Originalseite von Google. Der nächste Geier hat sich sich erst wieder bei goooooogle.com mit sechs o angesiedelt. Sieben, acht und neun o funktionieren natürlich auch. Danach hatte ich keine Lust mehr weiterzuforschen.

Wer nach dem Unternehmen von Bill Gates sucht und zur Deutschtümelei neigt, landet bei mikrosoft.de. Immerhin gibt es dort ein bislang offenbar unabgemahntes Forum zu Windows-Produkten. Ganz typisch dagegen wieder jeise.de — ein paar Pseudo-Links, aber das Wesentliche ist, dass das j als direkter Tastaturnachbar des h dem Domain-Inhaber derzeit 500 Euro wert ist. Vermutlich hat er sich schon mal mehr ausgerechnet. Anwältin Traude Geise könnte sicher das Gleiche verlangen, aber sie heißt wirklich so und darf ganz legitim von Vertippern in der URL-Zeile profitieren.

Neuerdings sind ja auch Zeichen jenseits von a-z in Domainnamen erlaubt. Auch das haben sich einige Spezialisten bereits zunutze gemacht. Denn wie tippt Dummdoofie auf der Suche nach EBay: nein, nicht etwa ebäi.de, man kann ja schließlich Englisch: also ebäy.de. Dummdoofie bekommt, was er/sie vermutlich ohnehin gesucht hat: Klingeltöne fürs Handy.

Domainnamen sind billig geworden. Da lohnt es sich, gleich viele zu reservieren. So führen etwa so unterschiedliche Vertipper wie selfhmtl.org und wckipedia.de zweifellos zum gleichen Mafioso. Es darf angenommen werden, dass er einige hundert solcher Domains besitzt. Insgesamt eine knallbunte bis aschgraue Web-Unterwelt also, bei der man einiges Lustiges erleben kann. Wer nun Lust bekommen hat, nach anderen möglichen Vertippern zu forschen, dem sei aber geraten, im Browser die Sicherheitsstufe zu erhöhen. Denn gerade auf Trittbrettfahrer-Seiten ist die Gefahr besonders groß, sich Spyware einzuhandeln!


Freitag, 13. Juli 2007

Grundbegriffe von Web 2.0 als kostenlose PDF-Broschüre

Im Blog-Eintrag Die Grundbegriffe des Web2.0 leicht gefasst weist Manfred Schindler auf eine bei O'Reilly erschienene Broschüre über Web 2.0 hin. Die Broschüre ist als PDF-Datei kostenlos downloadbar.

Da das Schlag- und Buzzword Web 2.0 auf diese Wortschmiede zurückgeht, genießt eine solche Broschüre gewissermaßen Heimvorteil. Autorin Corina Lange behandelt auf den 42 Seiten der Broschüre Themen wie Podcasts, Bürgerjournalismus, Datenschleuder, Ajax, Ruby on Rails, RSS und Atom, Yahoo Pipes, Wikis, modernes E-Learning, social Networks, social Bookmarks, Second Life, web-basierte Office-Pakete, Maps, Earth und Plazes. Eine breite Palette also, innerhalb derer die einzelnen Aspekte natürlich nur ganz grob angerissen werden können. Dennoch eine nette Sight-Seeing-Tour durch die neueren Trends im Web, aufbereitet im Stil eines Zeitschriftenartikels, mit zahlreichen Abbildungen und Extra-Kästen. Henri Oreal, der Satz und Gestaltung der Broschüre besorgte, hat natürlich auch auf die runden Ecken und das Babyblau geachtet — beides ganz typisch für Web 2.0 (ja, auch dieses Blog hier benutzt beides, wobei als Entschuldigung vorgebracht werden soll, dass es hier bei der Gestaltung um die optische Abstimmung mit dem Webkompetenz-Forum ging und die Gestaltungsmöglichkeiten bei den Google Groups nicht sehr weitgehend sind).


Mittwoch, 11. Juli 2007

Homepages und Blogs

Früher hatte der coole Zeitgenosse eine Homepage, heute betreibt er ein Blog. Jedenfalls wird sehr auf den Unterschied geachtet. So ist in vielen Beiträgen, egal ob innerhalb der Blogosphäre oder im außenstehenden Journalismus, von „Blogs und Homepages“ oder von „Homepages und Blogs“ die Rede, ganz so, als seien das unterschiedliche Medien, die man zwar in einem Atemzug nennen, aber ansonsten auf keinen Fall vermengen darf, und von denen Homepages das ältere Medium sind, Blogs das jüngere. Doch ist ein Blog denn eigentlich etwas so viel Anderes als eine Homepage? Es gibt Gemeinsamkeiten und Unterschiede. Es gibt auch Blogs, die besser eine klassische Homepage wären, und es gibt Homepages, die sich besser als Blogs organisieren ließen.

Die Inhalte: technische Bewältigung vs. Publikationsstress

Der klassische Homepage-Besitzer war unter anderem deshalb so stolz auf seine Homepage, weil er sich wegen ihr aufregend viel Neues angeeignet hat: er hatte sich mit HTML beschäftigt, vielleicht auch mit CSS oder JavaScript, und er hatte sich mit unzähligen Tücken und Merkwürdigkeiten herumgeschlagen, bis die Homepage endlich halbwegs vorzeigbar war. Doch die technischen Möglichkeiten entwickelten sich weiter. Vor allem gab es immer mehr Spielereien, die man als Homepage-Besitzer einfach haben musste: Rollover-Effekte bei Buttons, animierte Grafiken, Lauftexte und vieles mehr. Über all den Anstrengungen, den technischen Anschluss nicht zu verpassen, vergaßen viele Homepage-Inhaber völlig, sich Gedanken um die Inhalte ihrer Homepage zu machen. Grafiken von Baustellenschildern gehörten deshalb zum Standardinventar. Wo Zeit und Lust fehlten, um redaktionell zu arbeiten, kam einfach ein Baustellenschild hin. Für viele war der Inhalt sowieso sekundär. Die Homepage sollte in erster Linie etwas präsentieren, nämlich das programmiertechnische und gestalterische Können ihres Inhabers. Und nebenbei vielleicht auch noch seine Lieblingswitze, einen Bericht von irgendeiner Reise, ein paar Bilder von sich und Freunden, ein paar Links und einen Disclaimer.

Im Reich der Blogs besteht zwar ebenfalls die Möglichkeit, alles Technische von der Pike auf selbst zu stemmen, doch nur einige Profi-Blogger, denen es auf volle Kontrolle ankommt, nutzen diese Möglichkeit. Die Masse der Blogger meldet sich lieber bei einem der zahlreichen Gratis-Blogservices an. Wenige Minuten später kann dann bereits der erste eigene Beitrag im Netz stehen, in einem attraktiven, selbst ausgewählten und vielleicht noch angepassten Layout, und mit allen Standardfunktionen versehen, die ein modernes Weblog zu einem ebensolchen macht. Denn moderne Blogs basieren auf Web-Anwendungen, nicht mehr auf dem Erstellen statischer HTML-Dateien. Zur Webanwendung gehört auch ein mehr oder weniger komfortables Backend, also eine web-basierte Verwaltungsoberfläche. Für die Eingabe von Blog-Beiträgen sind gar keine oder nur geringe HTML-Kenntnisse erforderlich. So wird der Blogger sehr schnell auf seine eigentliche Aufgabe zurückgeworfen, nämlich das Erstellen von Inhalten. Blogs leben von neuen Inhalten. Wer keine oder zu wenig neue Inhalte bringt, wird nicht oder kaum gelesen. Ein Blog wird im Gegensatz zu einer Homepage nicht danach beurteilt, wie schön es aussieht, sondern ob sich darin inhaltlich etwas tut. Das Blog wird für viele Blogger schnell zum schreienden Tamagotchi, das ständig nachgefüttert werden will. Die Versuchung ist dann groß, sich bei fremden Inhalten zu bedienen, nachzuplappern und einfach nur zu zitieren.

Die Sortierung der Inhalte: thematisch vs. chronologisch

Eine Homepage präsentiert sich normalerweise thematisch sortiert. Die Inhalte der Startseite sind tendenziell statisch und wollen möglichst rerpäsentativ sein. Die Navigation führt den Benutzer in die Tiefen des Inhaltsangebots (sofern vorhanden). Selbst wenn auf den einzelnen Webseiten der Zeitstempel der letzten Bearbeitung oder der Entstehung des Inhalts verzeichnet ist, so nimmt der Benutzer primär wahr, welche Themen behandelt werden, doch nicht, wann sie behandelt wurden. Ein Blog dagegen ist typischerweise chronologisch sortiert. Auf der Startseite bekommt der Benutzer dynamisch die neuesten Inhalte angezeigt. Weitere Inhalte nimmt er oft zunächst über das kalendarisch geordnete Archiv wahr. Erst über zusätzliche Features wie Labels (Tags) oder eine Volltextsuche kann er sich einen Überblick über das thematische Spektrum eines Blogs verschaffen.

Wer also gar nicht viel und regelmäßig schreiben möchte und stattdessen eigentlich nur eine repräsentative Visitenkarte im Web haben möchte, sollte die Finger vom Bloggen lassen und sich eine Homepage einrichten. Wer dagegen seit Jahren eine Homepage unterhält, auf der sich in Form regelmäßiger Updates allerlei verstreute Beiträge, Berichte, Kommentare, Bilder und sonstiges Material angesammelt haben, sollte durchaus in Erwägung ziehen, auf ein Blog umzusteigen. Wie das geht? Nun, die Inhalte müssen vermutlich „zu Fuß“ übertragen, also kopiert und angepasst, also beispielsweise mit Tags/Labels versehen werden. In den meisten Blog-Software-Produkten ist es kein Problem, Beiträge auf das Datum zurückzudatieren, an dem sie tatsächlich einmal veröffentlicht wurden. So lässt sich durchaus nachträglich ein Blog mit jahrelanger Geschichte einrichten. Den Rest der Vorteile eines Blogs besorgt die Blog-Software automatisch: Indexierung der Inhalte für die in die Blog-Software integrierte Volltextsuche, Automatisierung der Navigation im Archiv usw.

Die Auffindbarkeit

Blogs haben in Sachen Auffindbarkeit unbestreitbare Vorteile: die Blogsoftware versendet bei neuen Beiträgen Pings an Zentralserver, wodurch neue Beiträge schnell in große und vielgenutzte Blog-Suchen wie die Google-Blogsuche oder Technorati geraten. Inhalte von Blogbeiträgen werden von der Blog-Software außerdem ganz oder teilweise in RSS- oder Atom-Feeds mitgeführt. Dadurch wird auch die stetig wachsende Anwenderschicht erreicht, die Inhalte mittlerweile lieber über einen Feedreader konsumiert statt direkt irgendwelche Websites nach Neuigkeiten abzuklappern. Die beiden Fakten, dass sich die Blog-Startseite mit jedem neuen Eintrag ändert, und dass ein ordentlich geführtes Blog über viele Inhalte verfügt, machen Blogs auch für Suchmaschinen attraktiver als Websites, deren wenige Inhalte seit ewigen Zeiten unverändert dastehen.

Dazu kommt der Zusammenhalt der Blogosphäre, der für eine bessere Auffindbarkeit sorgt. So etwa durch die verbreiteten Blogrolls, durch das System der Trackbacks und ganz allgemein durch die erhöhte Bereitschaft der Blogger, untereinander zu kommunizieren und sich reichhaltig untereinander zu verlinken. In den Anfangsjahren des Web hatte es im Homepage-Bereich durchaus vergleichbare, wenn auch weniger pfiffige Ansätze gegeben, wie etwa Webringe. Doch heute stehen herkömmliche Homepages eher isoliert da und haben im Vergleich zu Blogs weniger Chancen, entdeckt zu werden.

Allerdings stellt sich in vielen Fällen die Frage, von wem man eigentlich aufgefunden werden will. Muss es immer die ganze Welt sein? Wer eine elektronische Visitenkarte ins Netz stellt, braucht nicht tausende von Besuchern, sondern hat eine Webadresse, die er auf einer echten Visitenkarte abdrucken kann. Es genügt, wenn sich Freunde, Bekannte oder Geschäftspartner, die eine solche Visitenkarte erhalten haben, unter der angegebenen Adresse schlauer machen können. Der Google-Bot wird gar nicht benötigt.

Der Coolness-Faktor

Gerade weil die Blogs derzeit so stark boomen, dass tagtäglich hunderte und tausende neuer Blogs im Web eingerichtet werden, ist es nicht mehr zwangsläufig „cooler“, ein Blog anstelle einer Homepage zu unterhalten. In einigen Großstädten ist die Bloggerdichte bereits so hoch, dass Blogs so selbstverständlich sind wie Namensschilder an den Türen. Wer gerne gegen den Strom schwimmt, um sein Ego zu nähren, ist mit einer sehr individuellen, CSS-layoutierten und hochgradig barrierefreien Edel-Homepage vermutlich besser bedient. Und außerdem gibt es noch weitere Alternativen. Wer nicht gerne chronologisch publizieren mag, aber dennoch gerne auf Basis einer modernen Webanwendung arbeiten möchte, kann es ja auch mal mit einem Wiki probieren. In vielen Wiki-Systemen lässt sich skalieren, wer in dem Wiki publizieren und/oder kommentieren darf. Richtig skaliert, ist ein Wiki durchausaus nicht nur als Publikationsplattform für große und offene Communities geeignet, sondern auch für wenige Autoren bis hin zum Einzelautor, der das Wiki einfach als kreatives Content Management System für seine Web-Inhalte nutzt.

Diskussionen zu diesem Eintrag im Webkompetenz-Forum:
Homepage
Noch mal: Homepages und Blogs


Freitag, 6. Juli 2007

Tabellenlayouts einmal anders

Über das Webthreads-Blog bin ich auf ein japanisches YouTube-Video gestoßen, das die alte HTML-Tabellenkunst und den kreativen, zweckentfremdenden Umgang mit der Markupsprache HTML noch einmal richtig hochleben lässt:

Nun ist die Idee nicht neu. Schon vor Jahren kursierten Quelltexte im Web, in denen HTML-Tabellen so fein gerastert werden, dass daraus Pixelgemälde werden. Neu ist, dass einer der Wahnsinnigen, die sich mit so etwas befassen, seine ganze Editierarbeit bis zum fertigen Manga-Girl als Zeitraffer-Video aufgenommen hat und damit etwas Einblick gibt in seine Werkstatt. Wer also keine Zeit mehr findet, die diesjährige Documenta in Kassel zu besuchen, kann mit diesem Video ein wenig moderne Kunst schnuppern.


Hypertext (7): Vannevar Bush: Memex

siehe auch:
(1): Text und Linearität
(2): Computer und Hypertext
(3): Inhaltseinheiten und Verlinkung
(4): Suchen und Stöbern
(5): Orientierungsmittel für Hypertext
(6): Hypertext und Informationsaufnahme


Hypertext-Meilensteine

Hypertext hat eine Tradition. Denn Hypertext ist eine Konsequenz aus der Vorstellungswelt, die sich im Laufe des 20. Jahrhunderts herausgebildet hat und alle Bereiche des modernen Alltags der Industriegesellschaften durchdrungen hat. Das moderne Leben darin ist gekennzeichnet durch Fragmentierung. Berufsleben, Familienleben, Vereinsleben erfordern verschiedene Rollen von ein und demselben Menschen und berühren sich nicht oder kaum. Der Broterwerb findet meist woanders statt als dort, wo die Früchte genossen werden. Auch für Erholung und Konsum sind Zonen entstanden, die eigens dafür aufgesucht werden. Der moderne Mensch hat gelernt, Dinge im Leben und im Kopf klar auseinanderzuhalten. Genau das aber ist das Prinzip der fragmentierten Einheiten, das auch Hypertext zugrunde liegt. Und Hypertext lässt sich als der Wunsch begreifen, diese fragmentierten Einheiten zumindest wieder sinnvoll zu verknüpfen, die Verbindungen zwischen ihnen sichtbar und ausführbar zu machen.

Man kann nur Brücken schlagen zwischen Ufern, die man auseinanderhält. Schon Friedrich Nietzsche sah menschliche Stärke darin, Gegensätze in sich auszuhalten. Der Mensch hat die Fragmentierung gewollt, um sich weiterzuentwickeln. Aber ebenso bleibt der Wunsch nach Einheit. Manche versuchen es mit Rückzug in einfache, traditionelle Lebensformen. Und andere eben damit, dem Gedanken der Vernetzung zu folgen. Sie spinnen das Netz (Weaving the Web!).

Vannevar Bush: Memex

Vannevar Bush
Vannevar Bush

The human mind...operates by association. With one item in its grasp, it snaps instantly to the next that is suggested by the association of thoughts, in accordance with some intricate web of trails carried by the cells of the brain" (Bush)
Übersetzung: der menschliche Geist ... arbeitet mit Hilfe von Verknüpfung. Gerade mal einen Inhalt in seiner Reichweite, schnappt er sich sogleich den nächsten, der von der Assoziation der Gedanken vorgeschlagen wird, entsprechend einem undurchsichtigen Netz aus Pfaden, die von den Gehirnzellen getragen werden.

1945 schrieb Vannevar Bush dieses Zitat. Es stammt aus dem als bahnbrechend geltenden Aufsatz As we may think, den Bush in jenem Jahr in der amerikanische Zeitschrift The Atlantic Monthly veröffentlichte, und durch den er berühmt wurde.

Die Memex-Apparatur

Bush kritisiert in diesem Aufsatz die umständliche und unnatürliche Art und Weise, wie Menschen sich Informationen beschaffen müssen. In seinem Aufsatz entwirft er die technische Vision einer Apparatur, die Informationen aufzeichnen und schnell wieder finden und präsentieren kann. Der Apparatur gibt er den Namen „Memex“. Bush stellt sich darunter ein Gerät vor, das alle Inhalte aufzeichnet und speichert, mit denen ein Mensch zu tun hat, wie Bücher, Akten oder Briefe. Das Gesamtgerät soll ein Schreibtisch sein. In einem Teil davon befindet sich der Massenspeicher, und fest installierte Wiedergabeschirme zeigen aufgefundene Inhalte an.

Memex speichert seine Inhalte auf Mikrofilm. Mikrofilme für Bücher, Zeitschriften usw. können erworben werden. Persönliche Dokumente oder handschriftliche Notizen können über eine Art Scan-Vorrichtung auf Mikrofilm übertragen werden.

Adressierung und Auffindbarkeit

Bush stellt sich für sein Memex riesige Datenspeicher vor, auf denen zahllose Mikrofilme abgelegt werden können. Damit entsteht aber auch das Problem der Adressierung. Wie wird ein bestimmtes Buch, ein bestimmter Brief, ein bestimmtes Foto ganz schnell gefunden? In Bushs Memex stellen Mikrofilme die Inhaltseinheiten der gesamten Information dar. Adressierbar sind die einzelnen Filme über Codes. Da sich niemand alle Codes merken kann, gibt es ein Code-Buch, also eine Art Telefonbuch für die Codes. Durch Eingabe von Codes über eine Tastatur lassen sich bestimmte Mikrofilme auf einen der Wiedergabeschirme projizieren. Das schnelle Heraussuchen des richtigen Films besorgt die Memex-Maschine.

Assoziative Verknüpfungen

Bis zu diesem Punkt der Gedankenführung leistet die Memex-Maschine noch nichts anderes als eine maschinelle Beschleunigung der gleichen Art von Information Retrieval, die auch das klassische Suchen in Bibliotheken und Dokumentarchiven charakterisiert. Es gibt ein Schema zur Ablageadressierung, und es gibt Möglichkeiten, Adressen herauszufinden. Mit Hypertext hat das alles noch nichts zu tun.

Bush denkt jedoch weiter: Für Memex sieht er darüber hinaus die Möglichkeit vor, dass ein Memex-Benutzer zu jedem gespeicherten Mikrofilm Verknüpfungen zu beliebigen anderen Filmen speichern kann. Wann immer er einen Film aufruft, werden auch die dazu gespeicherten Verknüpfungen zu anderen Filmen angeboten. Die dabei verwendete Technik ist noch halbmechanisch. Doch durch die Möglichkeit individuell setzbarer, beliebiger Verknüpfungen zwischen Mikrofilmen wird ein zusätzliches Zugriffsnetz über den gesamten gespeicherten Inhalt gelegt. Dieser Gedanke innerhalb der Vision von Bush gilt als Geburtsstunde des Hypertextgedankens.

Die Memex-Apparatur
Die Memex-Apparatur

Bush erkennt mit ganzer Klarheit die Auswirkungen des einfachen Prinzips beliebiger Inhaltsverknüpfungen auf Enzyklopädien, persönliches Information Management und Wissenschaft. Er sieht sogar einen völlig neuen Berufszweig entstehen, nämlich den des „Fährtensuchers“, der fachkundig Inhalte verknüpft. Seine Memex-Vision gipfelt schließlich allerdings in einer Vorstellung, mit der wir heute eher Intensivmedizin oder Gehirnwäsche assoziieren: über Elektroden sollen menschliches Gehirn und Memex ohne Umwege über Eingabegeräte kommunizieren können.

Den Ausdruck „Hypertext“ gab es 1945 noch nicht. Dennoch gilt Bushs Aufsatz über die Memex-Maschine als frühe Quelle für die Erforschung dessen, was man unter Hypertext versteht. Bei allem Verhaftetbleiben in den technischen Möglichkeiten von 1945, und bei aller Verstiegenheit, zu der sich Vannevar Bush in seinem Aufsatz wagt, bleibt es doch ein legendäres Dokument, das einen einfachen, aber bedeutenden neuen Gedanken in die Welt gesetzt hat.


Dienstag, 3. Juli 2007

Unbildung im Informationsdschungel

Vor einiger Zeit erschien der Telepolis-Artikel Die besten Kopisten konnten nicht lesen — ein Interview mit „Österreichs Wissenschaftler des Jahres 2006“, dem außerordentlichen Wiener Philosophieprofessor Konrad Paul Liessmann (Homepage). Es geht in dem Interview um die Frage, ob die Menschen durch den intensiven Einfluss moderner elektronischer Medien irgendwie schlauer, gebildeter und klüger werden. Liessmanns Antwort ist, dass alle Medien zu mehr Klugheit beitragen können, doch nur dann, wenn die Menschen wissen, wie sie die Medien richtig nutzen. Man kann also nicht von Medien erhoffen, dass diese allein durch eine fortschrittlichere technische Beschaffenheit die Menschheit auf eine neue geistige Stufe heben.

Liessmann stellt fest, dass die Summe von menschlicher Dummheit und Klugheit im wesentlichen konstant geblieben ist, allem medialen Überfluss unserer Zeit zum Trotz. Denn in dem Maß, in dem Informationen leichter verfügbar geworden sind und die Anzahl von Informationsquellen zugenommen hat, hat sich die verbindliche Kraft einer „normativen Bildungsidee“ verflüchtigt. Liessmann wörtlich: „Unbildung ist nicht gleich Unwissen oder Dummheit. Unbildung bedeutet die Abwesenheit einer normativen Bildungsidee. Das ist der Unterschied zwischen gegenwärtigen Konzepten zur Wissensgesellschaft und jenen aus der Vergangenheit“.

Mit der Beobachtung, dass der klassische „abendländische“ Bildungskanon in den letzten Jahrzehnten allmählich aus den Köpfen der Menschen entweicht, steht Liessmann sicherlich nicht allein. Immerhin sieht er die gegenwärtigen Entwicklungen pragmatisch und versucht nicht krampfhaft, sich für die Rettung der alten Wissensordnung stark zu machen. Als Realist ist ihm zu klar, dass die Entwicklung nicht mehr rückgängig zu machen ist. Allerdings spart er nicht mit Kritik an trendigen Euphorismen, etwa wenn er die Visionen vom kollaborativen Schreiben in Wikis mit dem Hinweis auf anonyme Schreibkollektive in der früheren DDR abtut, die gemeinsam mit vielen anderen sozialistischen Zwangsvorstellungen im Keller der Kulturgeschichte gelandet sind.

Doch gerade die Wikis sind damit nicht wirklich angreifbar. Das Konzept, dass jemand einfach so den Text eines anderen umschreiben kann, und dass auf diese Weise viele Inhalte am Ende nicht mehr von einem Autor stammen, sondern Ergebnisse von informellen Review-Prozessen sind, ist natürlich ein herber Schlag gegen die klassische Autorenherrlichkeit. Und mehr noch, es ist ein Bruch mit dem bisherigen Rollenverständnis von Akteuren und Publikum. Im Gegensatz zu den anonymen Schreibkollektiven der früheren DDR kann man Wikis jedoch nicht mehr als Randerscheinung betrachten. Wikipedia ist eines der größten kulturellen Projekte der Gegenwart, und in immer mehr Firmen und anderen Organisationen werden Wikis erfolgreich eingesetzt, um Praxiswissen zusammenzutragen, zu strukturieren und zu bewahren. Wikis sind kein Ergebnis der Übertragung sozialistisch-idelologischer Vorstellungen auf die Produktion von Inhalten. Sie sind vielmehr entstanden, weil die Zeit dafür reif war.

Dass die „Dummheit“ der Menschen konstant ist, lässt sich meines Erachtens nur spekulativ behaupten (ebenso wie das Gegenteil), weil jedes empirische Testverfahren Maßstäbe ansetzt, die man ebensogut in Frage stellen kann. Vermutlich ist es auch eher dumm, überhaupt zu fragen, ob die Menschheit als Ganzes klüger oder dümmer wird. Fest steht, dass sie sich verändert, und dass solche Veränderungen nicht aufhaltbar sind. Also bleibt nur, sich mit den Veränderungen auseinanderzusetzen. Einige Veränderungen erweisen sich als schädlich, andere dagegen als nützlich. Es gilt, weitere Verdänderungen so voranzutreiben, dass sie vor allem auf den nützlichen Veränderungen basieren. Veränderungen sind aber immer auch mit Verlustängsten verbunden. Wo die einen Erfolge des social Networking bejubeln, sind andere bestürzt über den rapiden Schwund klassisch-abendländischen Bildungsguts. „Unbildung“ mag ein vorübergehend verständlicher Begriff sein, um die verwirrend vielfältige, stark technisierte Medienumgebung zu kennzeichnen, die der Niedergang bildungsbürgerlicher Ideale hinterlässt. Auf die Dauer gesehen wird sich jedoch vermutlich eine andere Sichtweise dieser bunten Pixelwelt aus Millionen von Angeboten und Mitmachmöglichkeiten durchsetzen — auch in der Kultur- und Medienphilosophie. Es ist eine Frage der Gewöhnung, und auch die Philosophie gewöhnt sich, über Jahrzehnte und Jahrhunderte gesehen.

Diskussionen zu diesem Eintrag im Webkompetenz-Forum:
Zum Blog-Eintrag: Unbildung im Informationsdschungel