Projektwerkstatt: RSS Proxy
Heute habe ich mir mal meine Handy UMTS Statistik angeschaut. Ich habe ja leider nur einen 30 MB pro Monat Vertrag und da muss man schon mal auf jedes Megabyte gucken. Jetzt ist mir aufgefallen, dass 80% meines Traffics über meinen RSS Reader anfallen. So viele Feeds abonniere ich aber eigentlich gar nicht.
Kurz drüber nachgedacht, an was das liegen könnte, war es eigentlich schon klar. Der RSS Reader holt sich jedes mal wenn ich auf Aktualisieren klicke den kompletten Feed, bei phphatesme wären es zum Beispiel die letzten fünf Artikel. Beim php Planet schon zehn. Da kann schon mal einiges zusammenkommen, wenn man täglich zwei mal den Knopf drückt.
Da die meisten, oder zumindest viele, RSS Feed über Feedburner laufen könnte man doch so eine Art RSS Proxy dazwischen schalten. Dieser Proxy würde einen Parameter bekommen, der das Datum angibt, ab welchem Datum die neuen Nachrichten angezeigt werden sollen. Wir würden also nur das Delta zum letzten Update bekommen, wenn wir den richtigen Timestamp anhängen.
Wenn die Tools dieses Format beherschen, könnte man eine Menge Traffic sparen, ohne das man Gefahr läuft Inhalt zu verpassen. Ich denke mal, dass die versendenten Daten auf einmal nur noch ein Fünftel aufbringen würde. Zur Zeit wäre das eh eine super Idee, denn leider finde ich in den deutschen Blogs, die ich abonniert habe, zur Zeit sehr selten neue Beiträge, was ich wirklich schade finde. Also Cem, Tim und Co, haut rein in die Tasten, ihr fehlt mir und meinem Handy.
Imho braucht es aber dann zumindest einen Viewer der auch mit conditional get umgehen kann und die gegenseite (oder in deinem wunschfall der proxy) sollte das auch vernünftig umsetzen:
http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers/
Das ganze müsste sich doch recht einfach mit der Zend_Feed Komponente umsetzen lassen. Auf eine Website gehen, registrieren, Feeds eintragen (oder mit Feedburner verknüpfen), einstellen, dass man nur die letzten 2 Tage kriegen will und die kleine Zend Framework Applikation filtert entsprechend die Einträge 😉 Ich glaub, da kann ich mal was zusammenschreiben wenn ich bissl Zeit habe und das ganze mal einschicken.
Ein anderer Client wäre die bessere Lösung. Clients die kein Conditional-GET machen sollte man boykottieren.
Ich bin dafür, dass wir einen neuen Standard einreichen 🙂 Den RoboDennisTobyNils-Standard (RDTN).
@robo: Kam leider grad erst zu den Artikel anzulesen. Ist auf jeden Fall ein super Ansatz, danke dafür. Vielleicht schaffe ich es ja mal was drüber zu schreiben.
Ok, dann nenn ich das Tool „RDTN Mobile Feed Consumer & Filter“ 😀
@Dennis: Ist gekauft 🙂 Es muss aber noch ’nen Cache geben, denn an den User ausliefern möchte ich ja den kompletten Feed.
Schickt nicht eigentlich jeder Client mittlerweile ein „If-Modified-Since“ mit? Dann brauchst du natürlich auch nur die Beiträge zurückliefern die seitdem erstellt wurden.
@Ben: Ich müsste da mal nachforschen. Wenn ich meine übertragenen Daten (Größe) so anschaue, dann macht er es nicht 🙂
Bringt doch nichts, die Zukunft sieht so aus, dass man immer mehr im Internet per Handy/Smartphone surft und somit auch die Datenmengen steigen. Da wird es nicht mehr auf jedes MB ankommen…
@Lukas: Du hast Recht … langfristig gesehen. Wenn ich aber heute mit meinen 30MB auskommen will, dann isses eher doof.
@Lukas
Und zudem sollte man nicht immer diesen (meist einfachen) Weg einschlagen!
Weniger Datenverkehr, weniger Kosten, mehr freie Bandbreite.
Wer weiss was in Zukunft so auf uns wartet und was wir noch an Bandbreite benötigen werden.
Je weniger übertragen werden muss, desto schneller baut sich die Seite auf! Das darf man nicht unterschätzen! Wenn ich überleg, wie lahmarschig GPRS / Edge ist (nicht jeder hat UMTS!) dann spielt die zu übertragende Menge eine extrem große Bedeutung im mobilen Internet! Manche Webseitenbetreiber haben dies aber leider immernoch nicht erkannt 🙁
Man sollte es dann auch noch komprimieren (gzip), sofern der Reader das unterstützt. Da lassen sich auch noch ein paar Bytes sparen ;o)
Um dem ganzen noch etwas Schwung mitzugeben, hier noch nen Tipp von mir 😉 Das ZF geht so langsam auf Version 1.9 zu. Laut Roadmap wird es in Version 1.9 eine Zend_Feed_Reader Komponente geben, die das Lesen von RSS & Atom Feeds vereinfachen soll und auch HTTP Contitional GET unterstützen soll. Das dürfte solch eine Feed-Filter-Applikation deutlich vereinfachen. Wer sich das Proposal mal anschauen will, kann es sich ja mal hier => http://framework.zend.com/wiki/pages/viewpage.action?pageId=6324361 durchlesen. Ich bin auf jeden Fall begeistert 🙂