Nun liegt das letzte Release von rsslounge auch schon einige Monate zurück. Die Entwicklung daran ist aber nicht eingeschlafen, auch wenn die fehlenden Commits im Repository das vermuten lassen. Die letzten Monate habe ich mich daran versucht rsslounge lernfähig zu machen. Anhand von Vorgaben des Benutzers (ob bestehende Artikel interessant oder langweilig sind), sollten neue Beiträge automatisch einsortiert und interessante weiter oben eingruppiert werden. Eine Problemstellung aus der Textklassifikation, die nicht ganz trivial ist. Leider habe ich keine praxistaugliche Lösung gefunden. Zu diesem Thema und den Verfahren, die ich hierfür getestet habe, werde ich die nächsten Wochen ein Paper veröffentlichen. Vielleicht schaffe ich es ja jemanden zu inspirieren oder vermittle zumindest ein paar Erkenntnisse, die ich in diesen Zusammenhang hatte.
Trotzdem geht die Entwicklung weiter und so wird die neue Version neben einer Menge Fehlerbereinigungen auch neue Features haben. So wird rsslounge nun auf mit dem Internet Explorer 7+ kompatibel sein. Darüber hinaus gibt es einen öffentlichen, schreibgeschützten Modus, so dass die eigene Feeds öffentlich gemacht werden können, ohne das ein Besucher etwas verändern kann. Auf meiner ToDo Liste steht nur noch “rsslounge fit für das ipad machen” und dann wird die nächste Version online gehen. Ich bitte also nur noch um ein wenig Geduld
Seit wenigen Minuten ist die neueste Version 1.3 von meinem kostenlosen, webbasierten RSS Reader rsslounge verfügbar.
Es wurden wieder einige Fehler beseitigt, aber auch neue Features sind auf der Liste der Neuerungen. So gibt es nun Tastenkürzel, mit denen z.B. durch die Einträge navigiert oder Einträge als gelesen markiert werden können. Bei der Wahl der Tastenkürzel habe ich mich am Google Reader orientiert, um es so Umsteiger leichter zu machen. Eine Liste mit allen Tastenkürzel ist hier im Wiki zu finden.
Zudem gibt es zwei neue Einstellungen, mit denen festgelegt werden kann, ob Links in einem neuem Fenster geöffnet werden sollen und ob beim Öffnen externer Links ein Anonymisierungsdienst (z.B. anonym.to) verwendet werden soll.
Das vollständige Changelog könnt ihr ebenfalls im Wiki finden. Zudem habe ich ein RSS Feed für neue Releases eingeführt. Erscheint eine neue Version, so wird dieses Feed aktualisiert.
Wer rsslounge schon installiert hat und aktualisieren will, findet hier eine Anleitung wie das in wenigen Schritten funktioniert: Wiki Update. Wer rsslounge noch nicht benutzt, sollte mal schnell einen Blick darauf werfen. Kann ich nur jedem empfehlen
Heute ist mein Gastbeitrag auf php hates me erschienen. An der Stelle vielen Dank an Nils, dass er mir Gelegenheit gibt rsslounge vorzustellen. Und jetzt schnell zum Beitrag:
In diesem Blog habe ich ja schon öfters über rsslounge geschrieben. Vor einiger Zeit habe ich einen webbasierten RSS Reader entwickelt, der auf PHP und MySQL aufsetzt und als Open Source Projekt jedem frei zur Verfügung steht.
Die letzten Monate habe ich den Reader nun auf Herz und Nieren getestet und selbst jeden Tag verwendet. Zudem habe ich Feedback gesammelt und den Reader im Detail verbessert. So kann er jetzt beispielsweise auch fehlerhaftes HTML in Feed Einträgen verarbeiten und korrigieren. Die permanente Nutzung über die letzten Monate hat gezeigt, dass der Reader stabil ist und einwandfrei arbeitet. Daher habe ich mich entschlossen den aktuellen Stand als Version 1.0 zu veröffentlichen.
Ihr könnt die aktuelle Version jederzeit auf der Projektseite http://rsslounge.aditu.de herunterladen. Wer skeptisch ist, oder rsslounge noch nicht kennt, findet dort natürlich auch eine Demo Installation und kann alles erst einmal testen. Interessierte können auch die Entwicklung verfolgen oder einen Blick auf den Quellcode werfen. Hierfür gibt es eine Projektseite auf Google Code.
Feedback, Bugmeldungen oder Anmerkungen sind jederzeit willkommen. Ihr könnt hier kommentieren, das Kontaktforumlar auf http://rsslounge.aditu.de oder das Tracking System von Google Code verwenden.
Frameworks und Bibliotheken zu verwenden hat viele Vorteile. Vor allem spart es aber Zeit, weil viele Funktionen so schon out of the box zur Verfügung stehen und wozu auch für jedes Projekt das Rad neu erfinden. In diesem Blogeintrag will ich alle Bibliotheken und Frameworks vorstellen, die ich für meinen aktuellen Feed Reader rsslounge verwendet habe. Die Liste ist als kleine Empfehlung zu verstehen und soll gleichzeitig einen kleinen Einblick in rsslounge geben.
Zend Framework
Das Zend Framework ist ein objektorientiertes PHP Framework, das auf dem MVC Pattern basiert und viele viele Funktionen bietet. Das Zend Framework ist in diesem Blog ja ohnehin ein Thema und deshalb will ich an dieser Stelle dazu nicht schreiben. Einen ersten Überblick gebe ich hier, wobei natürlich innerhalb des letzten Jahres einiges hinzu gekommen ist.
jQuery
Auch jQuery ist mittlerweile kein Geheimtipp mehr und wie eine Umfrage des Webstandard Blogs zeigt, auch das beliebteste JavaScript Framework. Ich kann das gut verstehen, nachdem ich bisher auf prototype und script.aculo.us gesetzt habe, hat mich jQuery sofort überzeugt.
Alle weiteren JavaScript Bibliotheken basieren auf jQuery. Die Auswahl an Plugins ist schier unendlich und es gibt eine große Zahl an hervorragenden Projekten, die auf jQuery aufsetzen.
jQuery UI
Aufbauend auf jQuery gibt es jQuery UI, eine Bibliothek, die verschiedene Widgets und Funktionen bietet. Neben Widgets deckt jQuery UI das ab, was bei prototype durch script.aculo.us ergänzt wird: Drag n Drop, sortierbare Listen und animierte Effekte. In rsslounge basiert der Slider für die Priorität, das Drag n Drop der Feeds und Kategorien, sowie die Processbar für den ajaxbasierten Update auf dieser Bibliothek.
Impromptu
Es gibt ja eine ganze Reihe guter Lightbox Skripte. Für rsslounge habe ich aber ein LightBox Skript gesucht, das sich besonders gut für Dialoge eignet. Impromptu bietet hier eine einfache Möglichkeit Buttons zu setzen und eigene Funktionen an die verschiedenen Aktionen der Popup-Box zu binden. Lediglich bei der Positionierung der Box, die pauschal auf top:15% gesetzt ist, war ich nicht zufrieden. Allerdings hat man hier vollen Einfluss auf das CSS, so dass auch das kein echtes Problem ist. Eine sehr gute Alternative wäre die ModalBox gewesen. Diese basiert allerdings auf prototype.
Date Picker
Ein hervorragendes Skript für die Auswahl eines Datumbereichs ist der Date Picker von Stefan Petre. Date Picker für die Auswahl eines einzelnen Datums gibt es ja viele, so bietet jQuery UI hier auch ein grundsolides Widget. Aber wenn es darum geht einen Bereich zu wählen, wird die Auswahl plötzlich sehr klein. Der Date Picker hat ein schickes Design und kann sehr genau konfiguriert und mittels CSS gestaltet werden.
jgrowl
jgrowl orientiert sich an dem Benachrichtigungssystem von Growl, welches für Mac OS X verfügbar ist. Es zeigt Benachrichtigungen in einer kleinen Box am Bildschirmrand an. rsslounge nutzt dieses Skript nur recht selten, für Fehlermeldungen und wichtige Informationen ist es aber hervorragend geeignet.
Ajax Upload
Mit Hilfe dieses jQuery Plugins können bei rsslounge OPML Dateien importiert werden. So lässt sich der Dateiupload mit einem Klick auf den entsprechenden Menüpunkt starten, ohne das explizit ein neu Laden der Seite oder das Datei Eingabefeld nötig ist.
Tipsy
Das Plugin Tipsy ermöglicht beliebige ToolTipps zu erstellen. Diese verwende ich für den Eingabedialog von neuen Feeds. Manchmal bleiben die ToolTipps noch hängen, hier muss ich also nochmal genauer testen. Der erste Eindruck ist aber sehr gut und die zusätzlichen Informationen sind für Neulinge dann doch eine gute Hilfe.
SimplePie
Das Herzstück von rsslounge ist die Bibliothek SimplePie. Diese PHP Bibliothek ermöglicht es sehr einfach RSS Feeds zu lesen und zu verarbeiten. Ich habe mich für SimplePie und nicht für Zend_Feed entschlossen, da es um einiges ausgereifter ist, mit keinem Feed Probleme hat und sich bereits in vielen Applikationen bewährt hat. Ein erster Test hat dann auch gleich gezeigt das SimplePie schwer zu toppen ist. rsslounge selbst ist so aufgebaut, dass sich problemlos SimplePie durch eine andere Bibliothek ersetzen lässt (oder eine zweite Bibliothek optional gewählt werden kann), bisher gab es aber keinen Grund dafür. SimplePie besteht lediglich aus einer Datei und einer Hand voll Klassen.
WideImage
Für das Erzeugen der Thumbnails verwende ich die Bibliothek WideImage, welche sich zwar noch in Beta befindet, aber im Test super funktioniert. WideImage basiert auf der GD2 Erweiterung und kapselt alle Funktionen in eine Klasse und erlaubt es komfortabel Bilder zu laden, zu verkleinern oder anderweitig zu verändern. Ein Beispiel wie das dann aussehen kann:
wiImage::load('image.png')->resize(50, 30)->saveToFile('new-image.jpg');
Icons
An der Stelle will ich auch nicht die Icons vergessen. Diese stammen von DryIcons, welche die Sticker Icons unter einer Free Lizenz anbieten, sowie vom Smashing Magazine. Letztere erlauben eine freie Verwendung der Icons (auch für kommerzielle Zwecke, ohne Einschränkungen).
Die Liste ist ganz schön lange, aber bestätigt mich darin laufend gute Skripte zu sammeln. Besonders Funktionalitäten, die sich gut kapseln lassen, oder kompliziert zu entwickeln sind, sind für eigene Projekte eine wahre Bereicherung.
Wie bereits angekündigt, ist rsslounge jetzt für alle öffentlich verfügbar. Für alle die nicht wissen worums überhaupt geht, hier ein kleiner Überblick:
rsslounge ist ein kostenloser, webbasierter RSS Feed Reader. Der Reader ist kein gehosteter Service und muss auf dem eigenen Webserver installiert werden.
Features:
- Vollständiger RSS Reader
- Unterstützt Bilder und Fotoblogs
- Setze Prioritäten und filtere Feeds und Einträge
- Einfache ajaxbasierte Oberfläche
- Unterstützt auf Ajax basierende, sowie Cronjob Updates
- Offenes Pluginsystem zum Hinzufügen eigener Datenquellen
Also keine falsche Scheu, einfach saugen und austesten. Über Feedback, egal welcher Art, bin ich dankbar und freue mich über eure Meinungen, Gedanken, Ideen und Probleme.
Downloaden könnt ihr rsslounge hier.
Wer sich für den Quellcode interessiert, der kann sich auf der Google Code Seite informieren. Dort findet ihr ein Wiki, das SVN Repository und weitere Infos. Die Seite werde ich nach und nach mit weiteren Infos befüllen.
Jetzt habe ich schon lange nicht mehr gebloggt und hoffe ich bin noch nicht bei allen aus der RSS Reader Liste geflogen. Aber in diesem Fall habe ich eine ganz gute Ausrede. Momentan programmiere ich fleißig an einem neuen webbasierten RSS Reader.
Auch nach vielen Stunden Suche habe ich keinen guten RSS Reader gefunden, den man auch auf dem eigenen Webspace installieren kann und der dabei einfach und praktisch zu bedienen ist. Bisher nutze ich Gregarius, der leider nicht mehr weiter entwickelt wird. Der Google Reader konnte auch überzeugen, aber hier mache ich mir aus Sicht des Datenschutzes sorgen, da die eigene Feedauswahl doch so einige Rückschlüsse auf Interessen und Hobbys zulässt. Ein weiterer interessanter Reader ist Fever, dieser kostet aber $30. Das wäre ich schon bereit zu zahlen, wenn die Software dann auch gut ist. Aber mit einer domainbezogenen Lizenz wollte ich mich dann einfach nicht herumschlagen. tiny tiny RSS scheint auch solide zu funktionieren, ist mir aber zu überladen und irgendwie unpraktisch.
Da Meckern nicht hilft habe ich mich also selbst ans Werk gemacht. Dazu habe ich mir aus bestehenden Reader die Features herausgepickt, die mir besonders gefallen, oder die ich bereits in Gregarius regelmäßig benutze.
Mein Wunsch-RSS-Reader muss darüber hinaus folgende Features haben (und hat sie auch schon):
- Neben normalen Feeds soll der Reader auch Medien lesen können. Ich verfolge viele Fotoblogs und Communitys und die sollen komfortabel als Thumbnailübersicht angezeigt werden (und nicht wie gewöhnliche Textnachrichten).
- Der Reader soll Prioritäten unterstützen. Jedes Feed soll dabei eine Priorität bekommen und je nach gewählten Prioritätsbereich wird nur eine Teilmenge (oder alle) Feeds angezeigt. In stressigen Lebensphasen lassen sich so gezielt Feeds ausblenden und man kann sich auf das Wesentliche konzentrieren. Am Wochenende kann dann der Prioritätsbereich erhöht und der Rest gelesen werden.
- Es soll ein offenes Pluginsystem für die Datenquellen vorhanden sein. Neben gewöhnlichen RSS Feeds soll man auch die Möglichkeit haben später neue Quellen zu definieren. So kann z.B. dann eine Seite manuell geparsed, verarbeitet und verfolgt werden, auch wenn diese kein RSS Feed anbietet (hierzu braucht man dann natürlich Programmierkenntnisse).
- Eine komfortable ajaxbasierte Oberfläche, die schlicht und übersichtlich sein soll. Zudem soll sich alles intuitiv mit Drag n Drop bedienen lassen (z.B. die Feeds zwischen den Kategorien verschieben, oder die Reihenfolge der Kategorien verändern).
- Es soll die Möglichkeit bestehen einen bestimmten Zeitraum vorzugeben, um nur Einträge dieser Periode zu sehen.
- Feeds sollen wahlweise mit Cronjob oder ohne (also via Ajax Aufruf) aktualisiert werden können.
Als Namen habe ich rsslounge aggregator gewählt. Ich finde das ziemlich passend, denn ich lese immer abends oder morgens ganz gechillt, bei einer Tasse Tee meine Feeds. Zudem soll das Prioritätsfeature dabei helfen Stress zu vermeiden und immer nur die Menge an Feeds zu zeigen, für die man auch Zeit hat. Der Rest kann ruhig bis zum Wochenende warten (oder wird nur grob überflogen).
Was nun auf der Agenda steht, ist ein ausführlicher Test. Dazu werde ich den Reader erst selbst einige Monate testen und anschließend einen geschlossenen Betatest unterziehen. Erst dann werde ich den Reader unter GPL in Deutsch und Englisch jedem frei zur Verfügung stellen. Hinzu kommt dann natürlich auch eine Anleitung, wie man selbst Plugins schreiben kann.
Als ersten Einblick gibts erst einmal ein paar Screenshots. Ich hoffe, dass ich bei einigen Interesse wecken kann. Mal sehen was daraus wird.
















