RSS-Feedreader selbst hosten.

RSS-Feeds gehören auch nach über zehn Jahren immer noch zu meinen Hauptnachrichtenquellen. Weniger für echte Nachrichten – das erledigt auch weiterhin fast ausschließlich SPIEGEL Online für mich – sondern für den ganzen anderen Rest. Computernachrichten einiger einschlägiger Ticker, viele Blogs, Update-Feeds vieler Open-Source-Projekte, einige Google-News-Feeds, Feeds meiner Kunden. Rund 100 Feeds kommen aktuell zusammen, von denen ich keinen vermissen möchte.

Fremdgehostete Dienste, oder: Ach, Google Reader!

Der Google Reader war der Beginn der echten Feed-Organisation. Vorher hatte ich Feeds noch direkt lokal am PC abonniert, was jedoch irgendwann ziemlich unpraktisch wurde, weil dazu logischerweise der PC zu Hause immer eingeschaltet sein musste. Zwar gab es mit Windows XP den Remote Desktop, aber zu Hause den PC eingeschaltet zu haben, nur weil Feeds bereitgehalten werden sollten, war Käse.

Der Google Reader konnte alles viel besser. Schnell, spartanisch-übersichtliche Oberfläche, eingängige Bedienung via Tastaturkurzbefehle. Nur leider machte der Google Reader im Jahre 2013 den Gang in die Ewigen Jagdgründe. Ein immer noch herber Verlust eines liebgewonnenen Dienstes.

Mehr aus Verzweiflung vertraute ich Feedly meine via OPML exportierte Feed-Liste an. Glücklich war ich mit Feedly von Anfang an nicht, sondern war schlicht froh, dass es so ähnlich funktionierte, wie der Google Reader. Und unter anderem eine Android-App mitbrachte, die ich auf meinen Android-Büchsen brauchte.

Sicherlich muss auch so ein Dienst wie Feedly von Geld leben. Allerdings bin ich mit meiner zweiten Hirnhälfte ein verkappter Kaufmann und 65 US-Dollar pro Jahr sind mir für das Bereithalten meiner Feeds zu viel. Ich syndiziere meine Feeds nicht komplex, sondern möchte sie mehrmals am Tag einfach von hinten nach vorn durchblättern und lesen. Und ab und zu die Suchfunktion benutzen, was dann aber mit dem kostenlosen Feedly-Account nicht geht. Wer also nicht diszipliniert interessante Feed-Diamanten bookmarkt, verliert sie im kostenlosen Feedly Account.

Selbst hostet der Mann.

Also blieb irgendwann keine Alternative zum Selbsthosten. Das wiederum habe ich doch tatsächlich fast drei Jahre vor mich hergeschoben. Unterm Strich bleiben bei einigen existierenden Projekten nur selfoss und Tiny Tiny RSS. Beide sind Open Source und kostenlos einsetzbar.

selfoss: Heißt wie ein Seeelefant und funktioniert in etwa auch so.

selfoss ist das erste Open-Source-Paket, das auf den ersten Blick mit einer interessanten Oberfläche daherkommt – und diesen ersten Eindruck beim ersten Durchblättern auch gleich wieder zerstört. Denn ein Artikel in ganzer Gänge wird doch tatsächlich in drei große Spalten aufteilt. Mit dem Ergebnis, dass man für einen sehr langen Text zunächst für die erste Spalte herunterscrollen muss, dann wieder herauf zum Beginn der zweite Spalte, runter bis zum Ende und wieder herauf zum Beginn der dritten Spalte. Das ist so unergonomisch wie eine Tageszeitung, die auf einem Bildschirm gelesen werden soll.

Zudem kommt selfoss sehr spartanisch daher. Keine Plugin-Schnittstelle, keine Organisationsmöglichkeiten für zu speichernde Artikel aus Feeds und nur die Möglichkeit, mit der offiziellen selfoss-App via Smartphone darauf zuzugreifen.

Immerhin ist selfoss sehr begnüglich in Sachen Hosting. PHP ist Grundvoraussetzung, bei der Datenbank sollte eine MySQL-Datenbank genutzt werden. Hat man letzteres nicht, funktioniert selfoss mit einer eigenen sqlite-Datenbank auf Dateibasis. Das ist zwar weit von echter Performance entfernt, funktioniert aber wenigstens.

Tiny Tiny RSS

Tiny Tiny RSS ist ein weiteres Open-Source-Projekt zum Selbsthosten und braucht zwingend PHP und MySQL. Die Installation ist nicht ganz so eingängig, denn der TTRSS-Entwickler entwickelt „rollierend“, also ohne Versionsstände. Das ist leider beknackt, denn so kann jeder heruntergeladene Stand entweder stabil sein oder schwer beta, aber vermutlich ist das für den Entwickler so am einfachsten.

In Sachen Installation muss man sich an die Konfigurationsanleitung halten, Datenbank-Zugangsdaten in eine Konfigurationsdatei packen und mehr oder weniger testen und frickeln, wenn man nicht das Glück hat, bei einem Webhoster zu sein, der Tiny Tiny RSS selbst als Installationspaket anbietet. Hat man Tiny Tiny RSS aber erst einmal zum laufen bekommen, funktioniert es auch sogleich und lässt OPML-Archive importieren.

Die Oberfläche kommt der des Google Readers am nächsten. Von Hause aus gibt es leider jedoch andere Tastaturkürzel, es gibt jedoch im Basisumfang in den Einstellungen unter den Plugins ein Plugin, das die Google-Reader-Tastaturkürzel zurückbringt. Meine Rettung, da ich in diesem Leben wohl keine anderen Tastaturkürzel für das Lesen von Feeds mehr erlernen kann.

Was sowohl für selfoss und auch für Tiny Tiny RSS zwingend benötigt wird, ist ein cronjob auf Seiten des Webhosters. Das ist vom Prinzip her ein automatisierter, zeitlich gesteuerter Aufruf eines Programmmodules, das für die Aktualisierung der Feeds sorgt. Hier glänzt Tiny Tiny RSS leider mit einer komplizierten Anleitung, die auch noch nicht mal den aktuellen Stand darstellt.

In meinem Fall musste ich noch eine Scriptdatei mit folgendem Inhalt schreiben, da mein Webhoster (wie so viele) keine Übergabe von zusätzlichen Parametern erlaubt:

#!/bin/sh
env -i /usr/local/bin/php5 -f ./update.php -- --feeds --quiet

Was möglicherweise hilft, wenn dieses Script hier nicht funktioniert: In den Webforen des eigenen Webhosters zu schauen, ob sich schon jemand mal damit beschäftigt hat.

Immerhin: Tiny Tiny RSS hat eine eigene API, mit der nicht nur die offiziellen (kostenpflichtigen) Apps des Entwicklers Zugriff auf die Feeds haben, sondern auch Dritthersteller. Zumindest für Android habe ich die kleine und feine App TTRSS gefunden, die den Zugriff auf meine Installation gut beherrscht und sich auch von einer SSL-gesicherten Verbindung nicht irritieren lässt. Schön ist zwar auch die Oberfläche von TTRSS nicht, aber Schönheit ist beim Feed-Konsum etwas, was nicht gebraucht wird.

R.I.P. RSS Graffiti.

Kleine und sehr wichtige Information an alle, die automatisiert von Blogs bzw. RSS-Feeds aus Inhalte auf Facebook(-Seiten) teilen und dazu bisher das Quasi-Standardwerkzeug „RSS Graffiti“ genutzt haben: RSS Graffiti ist seit 30. April 2015 nicht mehr. Der Dienst wurde abgeschaltet. Es wird hierüber nichts mehr auf Facebook geteilt.

Mir fiel das auch erst heute morgen auf, als ich mich wunderte, warum auf der Facebook-Seite eines Kunden-Weblogs keine Sharings mehr ankommen. Eine kurze Recherche nach der RSS-Graffiti-App auf Facebook ergab dann folgendes Bild:

Das Ende von RSS Graffiti auf Facebook

Auf der Website von RSS Graffiti bedauern die Macher die Einstellung und begründen dies mit dem Scheitern des Businessmodells. RSS Graffiti gehört zu den ältesten Facebook-Apps überhaupt und jeder, der ein Blog dazu bringen wollte, auf Facebook automatisch geshared zu werden, hatte wohl mal Kontakt mit RSS Graffiti. Vor einigen Jahren versuchten die Macher die einst völlig kostenlose App sehr moderat zu monetarisieren, was aber, wie nun offensichtlich ist, gescheitert ist.

So nützlich RSS und Feed-Syndication auch immer ist: Es ist immens schwer, in diesem Umfeld ein tragfähiges Verdienstkonzept unterzubringen. RSS Graffiti ist hier nur ein Opfer von vielen.

Alternativen.

Alternativen gibt es einige. Sowohl innerhalb Facebooks als Facebook-App, als auch als externe Dienste. Darunter dann auch einige kostenlose und einige richtig teure, die sich vornehmlich an professionelle Social-Media-Redakteure richten.

Ein kostenloser, externer Dienst ist IFTTT, der die Einrichtung relativ einfach hält, allerdings das zentrale Problem hat, dass immer nur eine Facebook-Seite pro IFTTT-Account als Ziel angelegt werden kann. Das ist für den professionellen Einsatz mit dem Sharen von Inhalten auf getrennte Facebook-Seiten relativ umständlich, weil man dann mit einer Vielzahl von IFTTT-Accounts hantieren muss. Einigermaßen absehbar ist, dass IFTTT – so wie viele andere Dienste auch – irgendwann einmal Geld kosten dürfte.

Eine weitere Alternative empfiehlt sich für WordPress, nämlich mit dem Plugin „Jetpack“ von Automattic, den Machern von WordPress. Hier gibt es in der riesigen Sammlung von integrierten Tools eine Rubrik namens „Sharing“, die genau das tut: Sharing auf Social Networks. Neben Facebook und Twitter unter anderem auch zu Tumblr und vor allem – zu Google+. Interessant dabei ist, dass dies mit WordPress- bzw. Automattic-Mitteln funktioniert und damit wohl auch ein längerfristiger Erhalt gewährleistet sein dürfte.

WordPress, RSS und die Möglichkeit einer Digest-Seite.

Seit einiger Zeit brüte ich über eine akute Schwäche vieler Weblogs: Da hast du ein Weblog, sogar richtig viele Hundert Artikel drin und es kommt ein Neuleser. Der findet auf den ersten Blick auf der Startseite erst einmal nur die zehn Artikel und mehr nicht. Vielleicht gibt es noch einen Einführungsartikel, aber der steht meist nicht auf Seite 1 und macht generell nur verhältnismäßig wenig Eindruck auf den Leser.

Nun gibt es bei Web-Entwickler zwei Fraktionen: Die einen, die ein Blog darin sehen, dass auf der ersten Seite bereits das Blog passiert und die ersten zehn Artikel dort aufgeführt werden und die anderen, die die Seite 1 eines Blogs lieber als Portal haben möchten und Artikel dort anteasern. Ich bin – für ein Weblog wohlgemerkt – Anhänger der Theorie 1. Ein Blog muss auf Seite 1 passieren. Das ist das größte Unterscheidungsmerkmal zu einer normalen Website.

Nun aber zu der besagten Schwäche: Wäre es nicht wenigstens schön, wenn es eine Seite 2 gäbe mit echten Highlight-Artikeln aus der Blog-Vergangenheit? Wie oft schreibt man einen Blog-Artikel, nimmt sich richtig viel Zeit und Schmalz und dann läuft das Ding nach zehn Artikeln unten durch und verschwindet im Archiv? Zu oft. Und auf so einer Seite 2 könnte man so ein Archiv aufbauen, sozusagen mit den Highlightartikeln, schön angeteasert oder auch einfach nur mit Überschrift versehen.

An so einer Seite 2, wie gesagt, zahne ich schon eine ganze Weile herum und habe auch schon an einer Programmlogik gemalt, bis mir eine Standardtugend bei solchen Fragestellungen eingefallen ist: Erst mal schauen, ob WordPress das nicht mit RSS-Bordmitteln kann. Und ja, WordPress kann. Denn WordPress kann nicht einfach nur den RSS-Feed der letzten zehn Artikel bereitstellen, sondern auch Feeds zu einzelnen Kategorien. Und zu einzelnen Schlagwörtern. Und – nun wird es spannend – auch Kombinationen von Kategorien und Schlagwörtern.

Nehmen wir an, wir haben in einem Weblog die Artikelkategorie „Technik“, die die interne Kategorie-ID 2 hat. Nun schreibe ich in dieser Kategorie beispielsweise zehn Artikel und zwei dieser Artikel finde ich so gut, dass ich sie gern auf die Seite 2 nehmen würde, sozusagen auf die „Besim’s Digest“. Die sehr einfache Vorgehensweise ist nun, diese zwei Artikel mit einem zusätzlichen WordPress-Tag zu versehen, beispielsweise mit „Highlight“.

Der nächste Schritt ist nun, auf der besagten Seite 2 eine Programmlogik zu integrieren, die einen RSS-Feed ausliest und parst. Und der lautet folgendermaßen:

http://blogname.de/feed/?tag=Highlight&cat=2

Dieser Aufruf des RSS-Feeds ruft demnach nur die Artikel auf, die mit dem Begriff „Highlight“ getaggt sind und in der Kategorie-ID 2 laufen. Fertig.

Ab in die Google-Cloud mit den Feeds.

Ich bin ja nun nicht wirklich jemand, der bei jedem Mist ganz vorne mitlaufen muss. Zumindest von der zeitlichen Warte aus betrachtet. Und so kam es trotz meines Faibles für so manch Web-2.0-Spielerei soweit, dass ich bis gestern doch tatsächlich noch den Luxus genoss, meine RSS-Feeds zu Hause, auf meinem PC zu sammeln und zu aggregieren, im FeedReader für Windows, jahrelang und zuverlässig im Einsatz.

Was am Anfang noch ganz wunderbar lief, störte mich im Laufe der Zeit dann doch ganz gewaltig im Workflow, denn die Feeds sitzen ja sicherlich gut auf dem PC, allerdings deutlich außer Reichweite, wenn ich bierflaschenschwenkend und furzend auf dem Sofa liege nicht am Schreibtisch sitze. Bis dato behalf man sich mit einem VPN nach Hause und dem windows’schen Remote Desktop, allerdings ist das am Ende vor allem eine vor einigen Tagen hier bereits gestellte Frage des sinnlosen Stromverbrauchs. Und dass ein Remote Desktop auf dem iPhone nun wirklich überhaupt nicht zu den wirklich nützlichen Dingen des Lebens gehört, muss man hier gar nicht erwähnen.

Privacy hin oder her – das Warten meines PC auf das Lesen von rund 80 RSS-Feeds und ein paar E-Mails kostet mich unterm Strich 50 Euro im Jahr und eine nicht zu unterschätzende EDV-Abnutzung. Ich musste mir das tatsächlich erst einmal rechnerisch vor Augen führen, um schlagartig zu erkennen, dass das so keinesfalls weitergehen kann.

Also, Feeds aus dem FeedReader als OPML-Datei ex- und ab in die Google-Cloud, in den Google Reader importiert. Die Lernkurve für die gefühlten 2.000 Einstellungsmöglichkeiten des Google Readers ist nicht ganz flach, so richtig hübsch sieht das alles auch nicht aus und es ist nebenbei auch ein tolles Problem aufgetreten: Der Google Reader (und übrigens die meisten Online-Dienste für RSS-Feeds) haben eine flache Verzeichnisstruktur, ermöglichen also keine verschachtelten Verzeichnisse. Genau davon habe ich im FeedReader aber ausgiebig Gebrauch gemacht. Also musste ich mal eben alles neu gruppieren und bei der Gelegenheit sind auch den 80 RSS-Feeds nun 62 geworden, weil es doch erstaunlich viele Weblogs in meiner Sammlung gibt, die es gar nicht mehr gibt oder zumindest so tun, als ob es sie nicht mehr gäbe.