Das Internet schläft nie. Rund um die Uhr tickern unzählige Nachrichtendienste, Portale und auch Privatanwender die Neuigkeiten aus aller Welt. Feedreader entdecken aktuelle Meldungen und laden die Schlagzeilen herunter – dieser Artikel begutachtet vier Vertreter dieser Gattung .
Ob Neuigkeiten aus der Linux-Welt, die Nachrichten der Tagesschau oder der Blog der Lieblingsband – im Netz jagt eine Information die nächste. Viele Webseiten bieten einen Service, der die Überschriften zusammen mit einem Kurzabriss der Nachricht und einem Link zum Artikel enthält. Wer nicht in der Meldungsflut ertrinken, sondern relevante News herausfischen möchte, dem helfen verschiedene Feedreader, auch Aggregatoren genannt.
Diese Programme beobachten vom Anwender ausgesuchte Nachrichtenquellen, laden von diesen in regelmäßigen Abständen aktualisierte Schlagzeilen herunter und zeigen die Überschriften und Kurzinfos an. Der Anwender entscheidet dann nach einem kurzen Blick auf den Nachrichtenschnipsel, ob er die gesamte News lesen möchte. Wenn ja, startet in der Regel ein Klick oder Tastendruck den Lieblingsbrowser mit dem entsprechenden Artikel, einige Feedreader präsentieren die Texte auf Wunsch auch intern im eigenen Programmfenster.
Formatvielfalt
Meist handelt es sich bei den Nachrichtensammlungen um so genannte RSS-oder Atom-Feeds. Beide Formate basieren auf XML, das den plattformunabhängigen Austausch von Informationen ermöglicht. RSS steht wahlweise für “Rich Site Summary”, “RDF Site Summary” oder auch “Really Simple Syndication”. Die unterschiedlichen Bezeichnungen haben einerseits mit der Entstehungsgeschichte dieses Protokolls zu tun, andererseits mit den vielen verschiedenen Versionsnummern (0.90, 1.0, 2.0 und so weiter).
Dieser Mix aus Formaten und die Tatsache, dass verschiedene Firmen hinter der RSS-Technologie stehen, bewegten Open-Source-Vertreter dazu, den Atom-Standard zu entwickeln. Sie fassten die Vorteile der unterschiedlichen RSS-Formate zusammen und ergänzten neue Elemente. RSS und Atom sind nicht kompatibel zueinander; im Netz stehen jedoch zahlreiche Tools zur Verfügung, um die Formate zu konvertieren.
Beiden Standards gemeinsam ist das Prinzip: Ein Feed bündelt die einzelnen Nachrichtenbeiträge (auch Entries oder Items genannt) und enthält zu jedem Eintrag die folgenden drei Informationen: einen Titel (Überschrift), einen Link (URL der Nachricht) und eine Beschreibung (kurzer Abriss). Zum Auswerten der Feeds ist eine spezielle Software erforderlich. Mit einem Feedreader abonniert ein Anwender die Nachrichtensammlung. Dieser Client fragt in regelmäßigen Abständen beim Server nach, ob es aktuelle Meldungen gibt. Erscheint eine Tickermeldung interessant,öffnet ein Mausklick oder Tastendruck den Artikel.
Auch wenn einige Webbrowser, Mailclients und Online-Newsreader ebenfalls Aggregator-Funktionen anbieten, lohnt sich ein Blick auf die eigenständigen Feedreader. Ob als grafische Anwendung oder auf der Shell – unter Linux tickern viele komfortable Programme.
Liferea
Der Linux Feed Reader [1] ist ein schlanker und übersichtlicher grafische Aggregator. Das GTK-Programm tickert RSS/RDF und Atom, exportiert und importiert OPML (Outline Processor Markup Language), arbeitet als Podcatcher und präsentiert die Nachrichten auf Wunsch im eingebetteten oder externen Browser. Entscheidet sich der Anwender für Liferea als Anzeigeprogramm, sorgen zusätzlich Tabs für mehr Übersicht im Dschungel der Nachrichten.
Nach der Installation und dem Start präsentiert Liferea zwei Bereiche, der rechte unterteilt sich noch einmal, sobald eine Nachricht ausgewählt ist. Je nach Distribution hat der Reader in der Voreinstellung schon zahlreiche Feeds abonniert, die links im Bereich »Beispiel-Abonnements« auftauchen. Die schwarze Zahl in Klammern zeigt jeweils an, wie viele ungelesene Beiträge ein Feed enthält.

Abbildung 1: Auf Wunsch präsentiert Liferea Webseiten im unteren rechten Bereich oder im externen Browser. Für diesen stellt der Anwender optional ein, ob der Artikel im neuen Tab oder Fenster erscheint.
Nach einem Klick auf einen Feed in der linken Liste zeigt Liferea die enthaltenen Einträge im rechten oberen Bereich, nach Auswahl einer Headline erscheinen unten rechts mehr oder weniger ausführliche Informationen zu dem Beitrag sowie ein Link zu dem Online-Artikel. Über das Menü »Anzeige« bietet Liferea alternative Darstellungsmodi an.
Wie und wo Liferea den Artikel schließlich anzeigt, legt der Benutzer in den Einstellungen fest. Für den internen Betrachter bietet das Programm an, Javascript und Flash zu (de)aktivieren, und für externe Browser öffnet der Reader den Artikel optional in einem neuen Tab oder Fenster (siehe Abbildung 1).
Drei Methoden stehen zur Verfügung, um Feeds zu löschen, neue zu abonnieren oder vorhandene zu bearbeiten: über das Kontextmenü der rechten Maustaste, über Tastenkürzel oder über das Menü »Abonnements«. Dieses bietet darüber hinaus an, die aktuelle Feedliste zu exportieren oder eine bereits vorhandene Liste zu importieren. Für diesen Austausch greift der Aggregator auf das OPML-Format zurück und garantiert so den problemlosen Austausch mit vielen anderen Feedreadern. Importierte Feeds tauchen praktischerweise getrennt von den anderen Nachrichtenquellen in der linken Ansicht auf.
Die Suchfunktion wirkt auf den ersten Blick etwas spartanisch. Auf den zweiten Blick enthüllt sie ein cleveres Feature – die so genannten Suchordner mit einer
Art permanenter Fahndungsaufgabe. Evolution-Benutzer kennen das praktische Feature schon vom Gnome-Mailclient: Nach der Eingabe des Suchbegriffs und dem Betätigen der entsprechenden Schaltfläche oder über das Kontextmenü »Neu« | »Neuer Suchordner« erstellt Liferea ein Verzeichnis in der linken Ansicht für alle gefundenen Treffer. Öffnet der Anwender die »Eigenschaften« des Suchordners, hat er die Möglichkeit, weitere Kriterien für die Suche zu definieren, etwa einen Ort (»Schlagzeile«, »Titel der Schlagzeile«, »Lesestatus«) und den Status (»enthält« oder »enthält nicht«).
In der Voreinstellung wandert der Feedreader beim Schließen des Programmfensters in den Systemabschnitt des Panels und tickert dort im Hintergrund weiter. Ist dieses Verhalten nicht erwünscht, schaltet der Anwender es im Bereich »GUI« in den Programmeinstellungen ab. Hier definiert der Benutzer auch, ob das Panel-Symbol die Anzahl der ungelesenen Nachrichten anzeigt und ob Liferea mit einem Popup bei neuen Schlagzeilen alarmiert.
Neben allgemeinen Einstellungen zum Download-Intervall, zum Cache und zur Anzahl der zu sichernden Nachrichten erlaubt Liferea auch individuelle Konfigurationen für die einzelnen Feeds. Im Einrichtungsdialog der Feeds besteht auch die Möglichkeit, Benutzername und Passwort für Seiten mit Authentisierungs-Mechanismen anzugeben. Während hier das Kennwort als Sternchen im Dialog-feld auftaucht, steht es im versteckten Verzeichnis »~/.liferea« im Klartext. Die Zugriffsrechte für das Verzeichnis sind zwar auf 0600 gesetzt, ein potenzielles Sicherheitsrisiko bleibt dennoch.
Akregator
Der KDE-Feedreader Akregator [2] tickert wahlweise als eigenständige Anwendung oder als Komponente der PIM-Suite Kontact (Bereich »Nachrichten«). Als Mitglied dieser Programmsammlung erlaubt es Akregator, Schlagzeilen per Drag & Drop auf andere Kontact-Komponenten (Kalender, Aufgaben und Haftnotizen) zu ziehen. Ebenso wie Liferea unterstützt der KDE-Feedreader alle RSS-Versionen und Atom, importiert und exportiert im OPML-Format und zeigt die Artikel im internen oder externen Browser an. Für die Darstellung im Programmfenster selbst setzt Akregator auf Tabs, bietet aber anders als Liferea ein praktisches zusätzliches Feature: Per Rechtsklick auf die Reiter lassen sich diese verselbständigen und im externen Webbrowser öffnen.

Abbildung 2: Die Zusammenarbeit von Akregator mit anderen KDE-Programmen ist vorbildlich: Der Reader integriert sich nicht nur in die KDE-PIM-Suite Kontact, sondern kooperiert auch mit Kwallet.
Auch dieser Reader präsentiert nach dem Start eine Vorauswahl von Feeds, welche die KDE-Entwickler für ihre Benutzer ausgesucht haben. Diese tauchen links im Bereich »KDE« auf. Außer der Anzahl der ungelesenen Beiträge zeigt Akregator auch die Gesamtzahl der News für die jeweiligen Feeds an. Im rechten Bereich stehen die Schlagzeilen und Kurzübersichten. Alternativ bietet das Menü »Ansicht« einen breiten oder einen kombinierten Anzeigemodus.
In der Voreinstellung öffnet Akregator die Artikel bei einem Linksklick im eigenen internen Browser und ordnet die Nachrichten auf Tabs an. Die mittlere Maustaste startet hingegen einen externen Browser. Welcher das ist und die Maustastenbelegung selbst, stellt der Benutzer im Einrichtungsdialog ein. Neue Feeds landen über das Menü »Nachrichtenquelle« im Reader, alternativ über einen Rechtsklick auf ein Ordnersymbol in der linken Leiste. Akregator bietet ebenso Funktionen zum Löschen und Bearbeiten der Feeds. Wie bei Liferea auch, kann der Benutzer für jede Quelle das Aktualisierungsintervall, die Archivierung und anderes Verhalten beeinflussen. Im Einrichtungsdialog hingegen richtet der Benutzer diese Dinge allgemeingültig für alle Feeds ein.
Angenehm ist, dass Anwender – wie von KDE-Applikationen gewohnt – das Look & Feel detailgenau an eigene Bedürfnisse anpassen können. Dazu gehören neben der Schriftart auch die Schriftgröße und farbliche Gestaltung im Programmfenster. Auch das Verhalten beim Schließen des Programmfensters (Standard ist ein Icon in der Kontrollleiste) und die Benachrichtigungsfunktion beeinflusst der Benutzer im Konfigurationsdialog.
Über das Feld »Suche« auf dem Reiter »Artikel« durchforstet der Anwender die Nachrichten nach Stichwörtern. Um nach mehreren Ausdrücken zu fahnden, gibt der Benutzer diese durch Leerzeichen voneinander getrennt ein. Das Drop-down-Menü neben dem Suchfeld bietet weitere Filtermöglichkeiten an.
Der Umgang mit passwortgeschützten Feeds ist etwas besser geregelt als bei Liferea. Akregator speichert nur auf expliziten Wunsch hin die Zugangsdaten. Wenn der Anwender sich dafür entscheidet, startet (sofern sie nicht generell abgeschaltet ist) die KDE-Brieftasche (siehe Abbildung 2) und legt die Zugangsdaten verschlüsselt auf der Platte ab. Aber auch wenn Kwallet deaktiviert ist, landen die Benutzernamen und Kennwörter nicht unverschlüsselt auf der Platte.
Newsbeuter
Dieser praktische Feedreader für die Konsole [3] tickert nicht nur unter Linux, sondern läuft auch auf anderen Unix-Systemen wie etwa FreeBSD oder Mac OS X. Genau wie die grafischen Vertreter unterstützt der Aggregator fürs Terminal sämtliche RSS-Versionen und Atom-Feeds, verwaltet Podcasts und importiert und exportiert Feedlisten mit Hilfe des OPML-Formats.

Abbildung 3: Der Konsolen-Feedreader Newsbeuter erinnert an den vielseitigen Mailclient Mutt. Farben, Sortierreihenfolge, Hervorhebungen und vieles mehr passt der Anwender in der Einrichtungsdatei an.
Als Einziger der vorgestellten Reader bietet Newsbeuter keine vorkonfigurierte Feedliste an, daher führt der einfache Aufruf von »newsbeuter« zunächst nur zu einer Fehlermeldung. Der “Nachrichtenjäger” erwartet die Feedliste standardmäßig in der Datei »~/.newsbeuter/urls«. Der Anwender legt diese entweder von Hand an (jeder Feed steht in einer eigenen Zeile) oder importiert eine bestehende Liste im OPML-Format mit der Aufrufoption »-i«. Feeds, die durch Benutzername und Passwort geschützt sind, enthalten die Zugangsdaten in der URL selbst, etwa »http://Username:Passwort@Hostname.de/feed.rss«. Da »~/.newsbeuter/urls« in der Voreinstellung systemweit lesbar ist, muss der Benutzer selbst für entsprechende Zugriffsrechte und damit rudimentären Schutz sorgen.
Auf den ersten Blick erinnert Newsbeuter an den Mailclient Mutt: Der Index zeigt eine Übersicht aller abonnierten Feeds und der Pager den Inhalt einer Kategorie an. Zusätzlich schmücken Statuszeilen den oberen und unteren Rand (siehe Abbildung 3). Die Bedienung des Terminal-Newsreaders dürfte Mutt-Fans vertraut erscheinen, aber auch anderen Anwendern schnell in Fleisch und Blut übergehen. Die meisten Tastaturkommandos sind intuitiv und leicht zu merken. So aktualisiert [Umschalt]+[R] alle Feeds, [R] den Feed unter dem Cursor, [Enter] wechselt zur Artikelliste des Feed, noch mal [Enter] zeigt die Kurzübersicht der News und [O] öffnet den Artikel im voreingestellten Browser. Mit [Q] geht es jeweils eine Ebene zurück bis zum Programmende.

Abbildung 4: Newsbeuter nimmt Podcasts in die Download-Queue auf, sein Kollege Podbeuter kümmert sich anschließend um den Download. Auch dieses Tool zeigt oft benutzte Befehle in der Statuszeile an.
Häufig verwendete und für die aktuelle Ansicht sinnvolle Kommandos zeigt der Konsolenticker auch in der Statuszeile am unteren Fensterrand an. So verrät die Zeile in der Kurzübersicht beispielsweise, dass ein Druck auf [O] den Artikel im Browser öffnet. Sämtliche Shortcuts listet Newsbeuter über [?]; alternativ lohnt sich ein Blick in das sehr ausführliche und gut geschrieben Handbuch auf der Projektseite.
Das Hinzufügen, Löschen und Bearbeiten von Nachrichtenfeeds findet über die erwähnte Feedliste (»~/.newsbeuter/urls«) statt. Es ist allerdings nicht nötig, den Aggregator zu beenden, die Datei im Texteditor anzupassen und den Reader neu zu starten. Stattdessen betätigt der Benutzer in der Übersichtsanzeige [Umschalt]+[E], um den Feed unter dem Cursor zu bearbeiten. Welcher Texteditor startet, legt der Anwender beispielsweise über die Variable »$EDITOR« fest. Die Änderungen sind anschließend sofort aktiv und Newsbeuter abonniert den neuen oder veränderten Feed.
Über [/] und Eingabe eines Suchbegriffs fahndet Newsbeuter nach Wörtern oder Phrasen. Welche Bereiche der Reader durchsucht, hängt von der Ebene ab, auf der sich der Benutzer gerade befindet. In der Übersichtsanzeige durchforstet das Kommando alle Artikel in allen Feeds, in der Artikelliste nur die Nachrichten aus diesem Bereich. Die Treffer hebt Newsbeuter hervor.
Wirklich praktisch ist in diesem Zusammenhang die History-Funktion, die neuere Programmversionen bieten. Newsbeuter speichert die letzten Fahndungsaufrufe in der Datei »~/.newsbeuter/history.search«; die Anzahl bestimmt der Benutzer in der Einrichtungsdatei des Readers selbst (Standard sind 100 Einträge). Auch kompliziertere Filteroperationen sowie das Setzen von Tags und Flags sind möglich. Eine Anleitung und Beispiele bietet das Newsbeuter-Handbuch.
Wie erwähnt importiert Newsbeuter optional Feedlisten im OPML-Format. Der Austausch funktioniert aber nicht nur in eine Richtung. Über die Aufrufoption »-e« exportiert der Terminalreader seine eigene Liste der Abonnements und schreibt den OPML-Code auf die Standardausgabe. Alternativ exportiert der Anwender eine Liste gelesener Artikel mit dem Parameter »-E«, also etwa »newsbeuter -E feeds_read.opml«. Eine Kurzübersicht aller Aufrufoptionen zeigt Newsbeuter über »-h« oder in der Manpage.
Der Feedreader unterstützt genau wie die grafischen Artgenossen den Download und die Wiedergabe von Podcasts. Ein Umweg über den Browser ist dazu nicht nötig. Der Konsolenticker bietet eine elegante Möglichkeit, auch für Multimediales auf der Shell zu bleiben. Dazu schiebt der Anwender den Podcast mit Druck auf [E] in die Warteschlange (»~/.newsbeuter/queue«) und startet den Download dann mit Podbeuter. Dieses Tool ist Bestandteil des Newsbeuter-Pakets und arbeitet in diesem Fall als Download-Manager (siehe Abbildung 4). Da sich Newsbeuter und Podbeuter dieselbe Einrichtungsdatei teilen, kann der Anwender in »~/.newsbeuter/config« auch direkt ein Abspielprogramm definieren. Der Eintrag »player “mp3blaster”« beispielsweise sorgt dafür, dass MP3blaster aus Podbeuter heraus (Taste [P]) die Wiedergabe startet.
Newsbeuter und Mutt weisen eine weitere Gemeinsamkeit auf: die zahlreichen Konfigurationsmöglichkeiten. Die mitgelieferte Beispieldatei (auf Debianbasierten Systemen unter »/usr/share/doc/newsbeuter/examples«) und die ausführlichen Erklärungen im Newsbeuter-Handbuch dienen als Vorlage.
Canto
Canto [4] ist ein weiterer Feedreader für Konsolenfans. RSS- und Atom-Feeds, eingeschränkter Support für Podcasts sowie die bekannten Im- und Exportfunktionen dank OPML stehen auch bei diesem in Python geschriebenen Aggregator auf der Featureliste. Der wohl größte Unterschied zu Liferea, Akregator und Newsbeuter ist die Darstellung der Schlagzeilen, Kurzinfos und Artikel untereinander in nur einer einzigen Spalte (siehe Abbildung 5). Laut FAQ auf der Webseite entspricht dieses Layout den Vorlieben des Entwicklers Jack Miller, der nicht verstehen kann, wie Anwender dreigeteilte Programmfenster ertragen können.

Abbildung 5: Auf den ersten Blick wirkt Canto etwas ungewöhnlich, nach kurzer Eingewöhnungszeit findet sich der Anwender im einspaltigen Feedreader jedoch gut zurecht.
Canto präsentiert nach dem Start vier vorkonfigurierte Feeds. Neben Slashdot, Reddit und Kerneltrap ist auch der Canto-Newsfeed in der Voreinstellung abonniert. Diese Abonnements und die Zeilenbreite sind in der Beispielkonfiguration (»~/.canto/conf.example«) definiert. Die Datei dient dem Anwender als Vorlage für eine eigene Einrichtungsdatei (»~/.canto/conf«). Alternativ importiert er eine vorhandene Feedliste im OPML-Format über »-i datei.opml«, Canto erstellt die Konfigurationsdatei mit der Feedliste selbstständig. Über den Befehl »canto -o« exportiert der Benutzer die Feeds der Canto-Konfiguration ins OPML-Format.
Durch Zugangsdaten geschützte Abos erfordern einen zusätzlichen Eintrag in der Konfigurationsdatei, etwa »add(“http://Hostname.de/feed.xml”, username=”geheim”, password=”geheim”«). Im Test funktionierte dies aber nur mit der neueren Programmversion 0.6.13. Ein Canto 0.5.7 auf einer anderen Maschine weigerte sich, die Authentisierung anzuerkennen, und brach mit dem HTTP-Fehlercode 401 ab. Besonders sicherheitsbewusst zeigt sich auch dieser Aggregator nicht und schützt die im Klartext abgelegten Daten nicht vor neugierigen Augen. Der Anwender muss sich auch hier um die Zugriffsrechte selbst kümmern.
Eine Statuszeile mit häufig verwendeten Kommandos fehlt – Canto konzentriert sich ganz auf das Wesentliche: die Anzeige der Schlagzeilen und Artikel. Betätigt der Anwender die Taste [H], öffnet sich die Manpage des Programms, die auch die wichtigsten Tastaturbefehle erklärt. Mit den Pfeiltasten geht es hoch und runter, die Leertaste öffnet einen Eintrag und führt auch wieder zur übergeordneten Ebene zurück. Ein Druck auf [G] öffnet einen Artikel im Browser. Enthält die Kurzübersicht mehr als eine Verknüpfung, fragt der Reader nach, welchen Link er öffnen soll.
Das Handbuch auf der Projekt-Homepage ist einen Besuch wert. Doch gilt es aufzupassen, um auch die richtige Anleitung passend zur Programmversion zu erwischen, da sich im Laufe der Canto-Entwicklungsgeschichte doch einiges geändert hat. Praktischerweise enthalten sowohl die Online-Dokumentation als auch die Manpage viele Konfigurationsbeispiele. Hier findet der Anwender Vorlagen, um Feeds zu taggen, einen GUI- oder Textbrowser abhängig vom Terminaltyp zu starten, das Look & Feel des Readers anzupassen und vieles mehr.
Fazit
Für das Lesen von Newsfeeds im RSS-und Atom-Format ist nicht zwingend ein Aggregator nötig. Wer nur ab und zu in solchen Newsquellen stöbern möchte, verwaltet diese bequem im Webbrowser, auch viele Mailclients bieten mittlerweile Ticker-Features. Wer hier aber an Grenzen stößt oder die Vermischung der Nachrichtenquellen als nicht komfortabel empfindet, sollte zu einem Standalone-Reader greifen.
Die grafischen Feedreader Liferea und Akregator passen sich mehr oder weniger gut in die Desktopumgebungen ein und trumpfen mit einem internen Betrachter auf. Für welchen Aggregator der Anwender sich entscheidet, ist letztlich Geschmackssache. Liferea wirkt insgesamt schlanker und intuitiver und überzeugt durch seine Suchordner. Dennoch wäre eine bessere Integration in die Gnome-Umgebung und die damit verbundene Speicherung der Zugangsdaten für passwortgeschützte Feeds im Gnome Keyring Manager wünschenswert.
Hier hat Akregator eindeutig die Nase vorn, da die KDE-Anwendung nicht nur mit anderen Kontact-Komponenten, sondern auch mit der KDE-Brieftasche zusammenarbeitet. Als Einziger der hier vorgestellten Feedreader schützt Akregator zufriedenstellend. Etwas enttäuschend ist jedoch die eingebaute Suchfunktion. Dass diese im Menü »Einstellungen« unter »Schnellfilter« an- und abgeschaltet wird, ist nicht weiter verwunderlich – mehr als ein schneller Filter, der nicht einmal Groß- und Kleinschreibung unterscheidet, liegt hier wirklich nicht vor. Auch die zusätzlichen Filtermöglichkeiten sind längst nicht so komfortabel zu bedienen wie die Suchordner von Liferea.
Schnell auf der Shell
Die beiden Konsolenreader können sich in puncto Funktionsvielfalt durchaus mit den GUI-Kollegen auf eine Stufe stellen. Wer seine Mails mit Mutt liest, sollte sich unbedingt Newsbeuter anschauen – der Umstieg fällt nicht schwer und die Tastaturshortcuts gehen schnell in die Finger. Cantos einspaltiges Layout ist zunächst vielleicht etwas ungewohnt, aber durchaus ein interessanter Ansatz. Dass dieser Reader nicht so spartanisch ist, wie er auf den ersten Blick erscheint, beweisen die unzähligen Konfigurationsmöglichkeiten.
Eines haben alle hier vorgestellten Reader auf jeden Fall gemeinsam: Sie unterstützen den Import und Export von Feedlisten im OPML-Format. Auf diese Weise ist nicht nur der Austausch der Lieblingsabonnements garantiert, auch der Wechsel auf einen anderen Aggregator fällt leicht.
|
Infos |
|---|
|
[1] Liferea: [http://liferea.sourceforge.net] [2] Akregator: [http://akregator.kde.org] [3] Newsbeuter: [http://www.newsbeuter.org] [4] Canto: [http://codezen.org/canto] |





