Robbinaer

Das Technikblog aus dem Robbenradio

Miniflux: Der minimalistische Feed-Reader wird in Go neu entwickelt

Geschrieben von Steffen Schultz keine Kommentare

Erst vor etwas mehr als einem Jahr berichtete ich über Miniflux, einem schlanken Feed-Reader auf PHP-Basis. Nun scheint es so, als wäre die Weiterentwicklung der PHP-Version nach gerade mal 4 Jahren zu einem plötzlichen Ende gekommen. Wie einem News-Beitrag auf der Projekt-Homepage zu entnehmen ist, möchte der Entwickler die Version 1 aufgeben und betrachtet sie als Legacy-Version, da ihm der Code zu alt geworden ist.

Weiter heißt es, dass Miniflux nicht tot ist. Stattdessen wird der Code nun von Grund auf neu geschrieben, jedoch kommt als Basis für die Version 2 das von Google mitentwickelte Go (Golang) zum Einsatz, eine sich an C orientierende, kompilierbare Programmiersprache. Miniflux wird also in Zukunft nicht mehr als Quellcode auf den Server hochgeladen, sondern lässt sich in einer einzigen ausführbaren Programmdatei aufrufen und als Server-Dienst starten. Des Weiteren soll nicht mehr wie bisher auf SQLite gesetzt werden, in Version 2 kommt ausschließlich PostgreSQL als Datenbank-Backend zum Einsatz.

Ich persönlich habe keinerlei Erfahrung mit Go und möchte diese Entwicklung daher nicht vorverurteilen. Ob es notwendig ist, eine Anwendung auf eine Codebasis zu portieren, die den Endanwender trotz der scheinbar einfachen Installation vor nicht unerhebliche Probleme stellen könnte, wage ich allerdings zu bezweifeln. Bisher war Miniflux theoretisch mit beinahe jedem Webhoster kompatibel. Die technischen Voraussetzungen haben sich durch die Umstellung auf Go und PostgreSQL nun signifikant erhöht.

Robbinär mit neuer Blogsoftware

Geschrieben von Steffen Schultz keine Kommentare

Angeregt durch meinen letzten Artikel, und weil Dotclear an einigen Ecken schon länger etwas Probleme verursachte, habe ich diesem Projekt mal eine andere Blogsoftware spendiert. Ja, PluXml hat es mir dann doch irgendwie angetan. Auch wenn die verfügbaren Informationen zur Software größtenteils in Französisch verfasst sind, habe ich am Ende relativ leicht alle benötigten Plugins gefunden und Theme-Modifizierungen vornehmen können. Einziger Haken war das Übertragen der Daten aus Dotclear. Hierfür gab es mal ein Plugin, welches mit der aktuellen PluXml-Version jedoch nicht mehr funktioniert. Also habe ich einfach die HTML-Quelltexte händisch übertragen, was zum Glück weniger Arbeit verursachte als gedacht, da sie noch lokal auf meiner Festplatte vorlagen. Lediglich die Kommentare habe ich mir erspart, außerdem einige wenige Artikel, die absolut nicht mehr aktuell sind oder einer Überarbeitung bedürfen.

Derzeit versuche ich noch, die alten Feed-Adressen auf das neue Format umzubiegen, was per 301-Redirect leider irgendwie nicht so recht klappen will. Am besten wird es daher sein, dass ihr die neuen Adressen manuell ändert. Die Hauptfeeds für Artikel und Kommentare finden sich in der letzten Zeile des Footers, die Feeds für individuelle Tags und Beitragskommentare jeweils am Ende einer Auflistung. Die Artikel im OSBN sollten bereits wieder funktionieren. Sollten sonst irgendwo noch Fehler auftauchen, lasst es mich ruhig wissen. Gerade designtechnisch entgeht mir hin und wieder etwas.

Ich hoffe, dass mich diese Arbeit nicht in ein paar Jahren wieder ereilt, wenn das nächste Blogprojekt seine Entwickler verliert. Aber im Vergleich zu Dotclear ist PluXml weit weniger komplex gestaltet, und sollte daher auch mit einem kleinen Entwicklerteam sehr gut funktionieren. Die Umstellung hat mir aber auch sehr viel Freude gemacht, allein schon um meine Artikel der letzten 4 Jahre noch mal querzulesen. Wenn man bedenkt, wie unmotiviert ich dieses Blog angefangen habe (Lust darauf war zwar vorhanden, aber es fing halt als Testballon an), hat sich meine Nerd-Ecke doch recht gut entwickelt. Ich bin nicht der aktivste Blogger, aber ich tue es immer noch gerne.

Ticker, ein Feed-Parser für Yellow CMS

Geschrieben von Steffen Schultz keine Kommentare

Trial-And-Error-Productions proudly presents: Ticker, ein RSS-Parser für Yellow CMS.

Mein nächstes Yellow-Plugin, das diesmal sogar etwas umfangreicher ausfällt als meine anderen, die sich überwiegend auf das Umwandeln von HTML-Snippets in einen Yellow-Shortcode konzentrieren. Bei meinem neuen Plugin geht es allerdings auch um PHP-Code. Zwar ist es verhältnismäßig einfach, eigenen Code in die einzelnen, als "Snippets" bezeichneten Design-Bausteine von Yellow CMS zu integrieren, doch wirklich komfortabel ist das trotzdem nicht gerade. Im Falle meiner Projekt-Homepage auf www.robbenradio.de ging es um einen kleinen RSS-Parser, der sämtliche Feeds aller Unterprojekte als gebündelten News-Bereich ausgeben sollte. Also habe ich mich in den vergangenen Tagen mal drangesetzt, und den Code in ein halbwegs ordentliches Yellow-Plugin verwandelt.

Der Parser lief zunächst mittels der in PHP integrierten SimpleXML-Funktionen. Da es lediglich um meine eigenen Projekte ging, benötigte ich die ganzen Zusatzfunktionen wie etwa Caching nicht. Natürlich sollten auch andere Nutzer etwas damit anfangen können, daher habe ich den Parser noch etwas erweitern müssen. Prompt stellte sich nämlich heraus, dass SimpleXML nicht wirklich gut mit z. B. Atom-Feeds umgehen kann. Bevor ich mir aber beim Implementieren der entsprechenden Namespaces den Hals verrenke und auch nicht das Rad neu erfinden wollte, habe ich kurzerhand auf den SimplePie-Parser zurückgegriffen. Dessen API ist leicht verständlich, es werden alle gängigen Feed-Formate samt diverser Caching-Möglichkeiten unterstützt, und der Parser lässt sich bei Bedarf auch in eine einzige PHP-Datei kompilieren. Derzeit liegt SimplePie dem Plugin nicht bei, kann aber schnell nachinstalliert und durch Setzen einer Option ganz einfach aktiviert werden.

Das Plugin bietet einige globale und individuelle Konfigurationsoptionen. So kann die Anzeige des Datums und der Artikel-Zusammenfassung (Description) ein- und ausgeschaltet werden, außerdem lässt sich jedem [ticker]-Shortcode eine CSS-Klasse für individuelles Styling zuweisen. Weitere kleine Verbesserungen werden sicher noch folgen, vor allem um SimplePie besser konfigurieren zu können.

Miniflux: Schlanker RSS-Reader auf PHP-Basis

Geschrieben von Steffen Schultz keine Kommentare

Der Zufall wollte es, dass ich mal wieder meinen RSS-Reader wechsle. Mit FreshRSS war ich zwar bislang recht zufrieden, doch hier und da haben mich mit der Zeit einige Dinge etwas gestört. Hauptpunkt dürfte wohl die Zugänglichkeit via Bildschirmleser gewesen sein, die an einigen Stellen nur sehr rudimentär möglich war, da die meisten der mit Grafiken versehenen Bedienelemente kaum oder gar nicht mit sinnvollen Alternativtexten beschriftet waren. Des Weiteren hatte der Reader mit diversen RSS-Feeds Probleme, und rief sie trotz Gültigkeit und Erreichbarkeit nur noch sporadisch fehlerfrei ab.

Der Nachfolger in meinen Self-Hosted-Apps nennt sich Miniflux. Das ist mal eine Webanwendung, die so ganz nach meinem persönlichen Geschmack ist. Einfach zu installieren, schlank und schnell, ohne überflüssige Features, und dennoch mit einigen Funktionen ausgestattet, die man bei anderen Readern vermissen dürfte. Dazu noch für Nutzer von Bildschirmlesern sehr gut zugänglich, was will man mehr?

Herausragend ist die Möglichkeit, Artikel-Texte direkt im Reader zu lesen, auch wenn der Feed keinen Volltext anbietet. Hierzu bringt die dem Reader zugrunde liegende und vom selben Autor entwickelte PicoFeed-Bibliothek einen Content-Grabber mit, der anhand bestimmter Regelsätze die Artikelseiten filtert, und lediglich den Text des Artikels ausgibt. Hierzu muss jedoch für jede Seite eine eigene Regel erstellt werden. Heise und Spiegel Online sowie Golem sind neben einigen weiteren deutschsprachigen Seiten bereits vorhanden, mit etwas HTML- und PHP-Kenntnis lassen sich aber neue Regeldateien relativ einfach erstellen.

Auch in Sachen Geschwindigkeit macht Miniflux einiges besser. Während es bei FreshRSS schon mal Minuten dauern konnte, bis alle Feeds abgerufen waren (ja, das geht natürlich auch automatisiert, habe ich jedoch aus bestimmten Gründen nicht eingerichtet), erledigt Miniflux dies in nicht mal einer halben Minute. Grund dafür ist, dass mehrere Feeds gleichzeitig abgerufen werden, und nicht einer nach dem anderen. Tritt irgendwo ein Fehler auf, wird dies sofort beim entsprechenden Feed angezeigt, und man kann über den Debugmodus weitere Nachforschungen im Protokoll anstellen. Leider ist die PicoFeed-Bibliothek etwas pingelig bei nicht validen Feeds, sodass ich einige wenige Feeds damit nicht mehr lesen kann.

Die Bildschirmleser-Zugänglichkeit der Anwendung ist auf Desktop- und Mobilgeräten durchweg positiv. Alle Bedienelemente sind sinnvoll beschriftet, und mittels Überschriftennavigation lassen sich die einzelnen Artikel bequem durchblättern. Die abgerufenen Artikel werden in einer Art Stream angezeigt, sodass man nicht erst umständlich jeden Feed einzeln anklicken muss. Wer dennoch nur einzelne Abos oder Kategorien sehen möchte, findet auch diese Möglichkeit sehr schnell. Am Ende der Seite erlaubt ein Link, sämtliche Artikel als gelesen zu markieren.

Miniflux ist eine PHP-Anwendung und verwendet eine Sqlite-Datenbank als Backend, dementsprechend einfach ist daher auch die Installation. Des Weiteren kann ein Cronjob zum automatisierten Abrufen der Feeds im System oder, falls nicht verfügbar, über einen Webcron-Dienst angelegt werden. Auch für den Fernzugriff ist alles vorhanden. Neben einer eigenen API gibt es eine Fever-Unterstützung, was die Steuerung über geeignete Mobil- und Desktop-Apps erlaubt. Für Android ist eine App nahmens MiniFlux Embedded verfügbar, wobei es sich aber lediglich um einen One-Purpose-Browser handelt, also um eine App, welche die Miniflux-Seite darstellt, sonst aber keine Zusatzfunktionen wie etwa Benachrichtigungen mitbringt. Eine Plugin-Unterstützung gibt es bei Miniflux nicht, dafür lässt sich der Reader mit Themes den eigenen Farbwünschen anpassen.

Kurzum: Miniflux ist vielleicht kein Reader, um hunderte von Feeds sinvoll mit allen Rafinessen zu verwalten, doch für den einfachen Bedarf ist diese Anwendung sehr zu empfehlen.

Artikel-Feed (RSS) dieser Tag