Simon Szustkowski

Ein Blog über alles, was mir gerade so durch den Kopf geht

Oct 17, 2013

Fever - Hoher Mobildatentraffic

Nach dem Abschalten des Google Readers entschied ich mich dafür, Fever als zentralen, selbstgehosteten RSS-Hub zu nutzen. Im gegensatz zu tt-rss kann es mit Reeder gesynct werden, und der Kaufpreis von $30 sind im Vergleich zu Feedly Pro relativ schnell wieder raus.

Nun bemerkte ich aber in den ersten Monaten, dass mein mobiles Inklusivdatenvolumen viel zu schnell aufgebraucht war. Viel schneller, als zu der Zeit, wo ich noch Google Reader benutzt habe. Da sich sonst an meinem Nutzungsverhalten nicht viel geändert hat, habe ich in Richtung Fever mal weiter geforscht, und habe folgende Entdeckung gemacht:

Fever hat einen eingebauten Algorithmus, um Feed-Nachrichten nach Relevanz zu sortieren. Je mehr Feeds, oder deren Inhalt, auf einen bestimmten Link, etc. zeigen, desto relevanter ist dieser Link, und alle Feed-Einträge, die diesen Link verlinkt haben. Dieser Algorithmus generiert das Ranking anhand sämtlicher Feeds, die man sowieso zum lesen abonniert hat (sogenannte Kindling-Feeds). Es gibt aber auch die Möglichkeit, Feeds zu abonnieren, die man nie vorhat zu lesen, sondern nur für dieses Ranking abonniert hat. Fever sortiert die dann in eine eigene Gruppe, die sogenannten Sparks. Hier bieten sich Feeds mit hohem Post-Aufkommen an. Ich habe dort zB das TUAW drin, oder den Heisefeed.

In der normalen Webansicht von Fever werden diese Feeds nicht angezeigt, es sei denn, man ruft die Sparks-Gruppe explizit auf. Dennoch sammeln sich dort natürlich die Einträge an, die intern als Unread markiert bleiben, weil man sie ja aufgrund ihrer Charakteristik nie lesen wird.

Reeder macht bei der Synchronisation nun folgendes: Es zeigt diese Relevanzdarstellung zwar nicht an, schickt beim Sync aber den Request, dass es bitte sämtliche Unread Items haben möchte. Dies sind die regulären 200-300 Elemente pro Tag aus Kindling, aber, unbemerkt vom User, auch die tausenden ungelesenen Elemente aus Sparks. Und bei tausenden Elementen sammelt sich halt auch bei rein textbasierten Feeds doch eine ganz schöne Menge an Daten an. Spätestens, wenn der Sync über reguläres UMTS mehrere Minuten dauert, sollte man dort hellhörig werden.

Um nicht sinnlos Zeit und Daten zu verbraten, habe ich mir nun einen Cronjob eingerichtet, der Fever über seine API anspricht, und die Sparks-Feeds als gelesen markiert. Für das generieren des Rankings ist der Gelesen-Status nämlich nicht relevant.

Das Cronscript, was ich nutzte, findet ihr hier: