Lifestream DIY

12.07.2007, 13:11 in css, essays, tutorial, lifestream, web2. Trackback-URL, Kommentar-Feed.

lifestream-alpha-version In der letzten Zeit bin ich immer wieder über so genannte »Lifestreams« wie z.B. das von Jeremy Keith und Jeff Croft gestoplert. Als »Lifestreams« verstehe ich dabei Seiten, die die Aktivitäten einer Person im Netz chronologisch zusammengefasst aufzeigen. Das lässt sich leicht durch die Kombination verschiedener RSS-Feeds realisieren, dachte ich mir. Nachdem eine kleine Umfrage zeigte, dass es keine wirklich schnelle Methode gibt, so etwas auf dem eigenen Server zu starten, habe ich gebastelt und das ist dabei rausgekommen: Eine schnell zusammengehackte Zusammenstellung meiner Aktivitäten per Feed, angehübscht durch viel CSS. Es ist wirklich eine absolute Alpha-Version, die kein Caching oder sonstige Finessen hat. Wer so etwas auch starten bzw. weiterentwickeln möchte, braucht Folgendes:


  • Den PHP RSS Parser Magpie.

  • Ein Tool zum Kombinieren verschiedener Feeds. Ich schwanke zwischen Yahoo! Pipes und Johns RSS-Combiner, der den Vorteil der Installation auf dem eigenen Server hat. Außerdem hat Pipes wohl Probleme mit den Twitter- und Pownce-Feeds. In »Was man mit RSS so alles anstellen kann« hatte ich schon einmal weitere Tools angesprochen.

  • Viel CSS

  • Den folgenden Code in einer PHP-Datei:



<? //Magpie einbinden und konfigurieren define("MAGPIE_DIR", "./magpie/"); define("MAGPIE_CACHE_ON", true); define('MAGPIE_CACHE_AGE', "15*15"); define("MAGPIE_CACHE_DIR", "./cache/"); define('MAGPIE_OUTPUT_ENCODING', "UTF-8"); include(MAGPIE_DIR."/rss_fetch.inc");

//Feed-URL $url = "http://www.mein-kombiniertes-feed"; //Feed laden und parsen $feed = fetch_rss($url); //Anzahl festlegen, momentan 25 $feed->items=array_slice($feed->items, 0, 25); //Ausgeben echo "<ol>"; foreach ($feed->items as $item) { $link = $item["link"]; $title = $item["title"]; echo "<li><a href="$link">$title</a></li>"; } echo "</ol>"; ?>

Diesen habe ich vor ganz langer Zeit mal aus dem Netz geholt und immer wieder verwendet. Leider weiß ich nicht mehr woher…

Im Idealfall werden nun die Nachrichten in der Reihenfolge ihres Erscheinens ausgegeben. Um sie zu formatieren verwende ich Attribut-Selektoren der Form: a[href ^='http://twitter … Wenn also ein Link mit Attribut href auftritt, dessen Wert mit »http://twitter« beginnt, greift die entsprechende Regel. Das sieht in meinem Stream dann z.B. so aus:

a[href ^=&apos;http://twitter&apos;], a[href ^=&apos;http://twitter&apos;]:visited { background: #B3ECEF url(images/twitter.png) no-repeat 10px 50% !important; color: #111 !important; }

Das bewirkt, dass eine spezielle Hintergrundfarbe, das Twitter-Favicon und eine spezielle Schriftfarbe zugewiesen werden. Diese Formatierungen müssen nun für alle eingebundenen Dienste definiert werden und fertig ist der Stream.

Hinweise

Achtung bei Feedburner-Umlenkungen. Hier werden nicht die ursprünglichen Adressen sondern die Feedburner-URLs verwendet. Wer ein del.icio.us-Feed einbindet, wird merken, dass del.icio.us keinerlei Hinweise im Feed hinterlässt. Ich habe deshalb die del.icio.us Formatierung zum Standrad gemacht. Das heisst, alle Links, die nicht gesondert über Attribut-Selektoren angesprochen werden, werden als del.icio.us formatiert. Wer Yahoo! Pipes verwendet, sollte das zusammengestellte Feed für dem Output nach »item.pubDate« absteigend sortieren lassen.

Update: Simplepie Version

In den Kommentaren hat Thomas die Nutzung von SimplePie anstelle von Magpie vorgeschlagen. Der Vorteil: Es ist nicht nötig, die Feeds extern zu kombinieren. Außerdem ist SimplePie hervorragend dokumentiert. Die aktuelle Version nutzt denn auch SimplePie. Es gibt zwei gute Tutorials, die jeder lesen sollte, der so einen Stream basteln möchte: Sort multiple feeds by time and date und Use Relative Dates.

Weiterführende Links

Viel Spaß!

Werbeunterbrechung

Kommentare und Feedback (25)

Gravatar von outlaw_wolfoutlaw_wolf (#)
12.07.2007, 13:24

Danke für das Tutorial. Ich freu mich schon darauf es im Laufe der nächsten Woche zu testen.

Hier noch ein Screenshot zu deinem Hinweise, wie die Feeds nach Datum sortiert werden:
Link

Gravatar von Thomas GigoldThomas Gigold (#)
12.07.2007, 13:39

Ich empfehle ja seit geraumer Zeit nicht mehr MagPie, sondern SimplePie. Hat den einfachen Grund, dass SimplePie mehr kann und weiter entwickelt ist und wird … Magpie ist eingeschlafen (Vgl. Versionen: Magpie vom November 2005, SimplePie ist in seiner aktuellen Beta gerade einmal ein paar Tage alt).

Gravatar von KaiKai (#)
12.07.2007, 14:03

Schickes Tutorial! Danke für die Mühe.

Gravatar von RenatoRenato (#)
12.07.2007, 14:24

Sehr schön, danke Manuela! Thomas, ich wollte ebenfalls vorschlagen SimplePie zu verwenden. Demnächst soll auch eine Version veröffentlicht werden, welche nicht auf PHP angewiesen ist. Dann wird es noch spannender!

Gravatar von Tobias BielohlawekTobias Bielohlawek (#)
12.07.2007, 15:54

Schöner Beitrag! Meine Diplomarbeit geht genau in diese Richtung. Ich setzte aber noch eins drauf: ich stelle zusätzlich über die Tags, Hyperlinks und Textanalyse semantische Verbindungen her. z.B: welches Foto wurde wo geschossen und gehört zu welchem Video und oder welcher Bookmark wurde wann im welchem Blogposting erwähnt.
Dies wird anschließend über Tags sowie zeitlich, örtlich visualisiert und ermöglicht weitere Untersuchungen auf Data Clustering, Userbehavior o.ä.
Zudem aggregiere ich die Daten nicht nur über Feeds sondern auch teilw. via APIs was effektiver ist. Bei Interesse mal vorbei schauen: http://www.videntity.de

Gravatar von ThomasThomas (#)
12.07.2007, 17:29

Ganz einfache Frage: Wozu?

Gravatar von ManuelaManuela (#)
12.07.2007, 17:35

Ganz einfache Antwort: Weil es Spaß macht, mal was anderes zu machen :-).

Und damit neue Wege zu beschreiten und Ideen zu finden, die man dann wiederum woanders mal brauchen kann …

Zu SimplePie: Vielen Dank für den Hinweis. Magpie hatte ich schon ewig auf Server, auch RSS Combiner verwendet es. Aber ich werde mir SimplePie ansehen. Schaut viel versprechend aus!

Gravatar von Tobias BielohlawekTobias Bielohlawek (#)
12.07.2007, 20:13

WOZU ist eine gute Frage!

  • Ist es nicht ‘einfach’ wieder das Zusammenführen was zusammen gehört und (technisch bedingt) im Netz verteilt wurde?
  • Ist es nicht aussagekräftiger (vertrauensvoller?) wen man nicht nur den Blog oder nicht nur die Bilder, sondern alles im Überblick hat?
  • Ist es nicht einfach das was du im Internet bist/machst?

Gravatar von JohnJohn (#)
12.07.2007, 20:21

Danke, tolle Idee! Bastel ich mir auch. :-)

Gravatar von SebastianSebastian (#)
12.07.2007, 21:51

Oh man…

Muss anderen Menschen wirklich jeden Husten mitteilen? :-/

Gravatar von MartinMartin (#)
12.07.2007, 22:06

Hallo,
die Idee find ich spitze… allerdings hat das verwendete PHP noch ein paar Ecken und Kanten.
Ich würde z.B diese Zeile:

$title = $item[“title”];

durch diese ersetzen:

$title = htmlentities(utf8_decode($item[“title”]));

Da es ansonsten Probleme mit den Sonderzeichen gibt.

Gravatar von ManuelaManuela (#)
12.07.2007, 22:10

@Sebastian: Wer was wann veröffentlicht entscheidet jeder selbst. Wenn man wie ich sieben Blogs, ein paar Bilder und Bookmarks hat, kommt da ganz gut was zusammen, was gar nicht privat ist.

@Martin: Danke Dir!

Gravatar von JohnJohn (#)
12.07.2007, 23:12

Oh man… Muss anderen Menschen wirklich jeden Husten mitteilen? :-/

Speziell die Deutschen sind immer so rational. Warum braucht man Gravatare, warum zeigt man anderen Fotos, warum dies, warum das? Braucht man doch alles nicht. Manchmal kann man auch einfach machen und gut. Der eine mags, der andere nicht.

An der Lifestream-Geschichte interessiert mich primär eigentlich eher die Umsetzung und die Gestaltung (da sind schöne Sachen denkbar), als der Inhalt. ;-)

Gravatar von NilsNils (#)
13.07.2007, 00:28

Oh nice, sowas wollte ich mir auch mal zusammenbasteln

Gravatar von TamaraTamara (#)
13.07.2007, 10:06

Aber hallo ist das geil.

Gravatar von Bastian WidmerBastian Widmer (#)
13.07.2007, 14:22

Danke für die Anleitung! Genial! Bin gerade mittels SimplePie die Geschichte am nachbauen.

Gravatar von ThomasThomas (#)
14.07.2007, 14:53

Ich finde es irgendwie interessant wie freizügig die meisten Menschen werden. Das betrifft jetzt sicherlich nicht jeden Streamanbieter/-nutzer, aber seit Web 2.0 so angesagt ist, scheint es die meisten nicht mehr zu interessieren wieviel sie anderen gegenüber preisgeben. Und wehe es schreit dann nochmal einer von denen was von Datenschutz usw.
Aber letztendlich muss jeder selbst wissen was er anderen zugänglich macht :D

Gravatar von ManuelaManuela (#)
14.07.2007, 15:13

Wie freizügig die meisten »Blogger« werden ;-). Durch RSS ist das eine ganz andere Herangehensweise an den Umgang mit Informationen. Dabei sollte man aber nicht außer Acht lassen, dass Dienste wie Flickr, del.icio.us und Pownce z.B. es einem ja ermöglichen Privates von Öffentlichem zu trennen.

Bei einem solchen Stream interessiert mich persönlich die Umsetzung viel mehr als der Inhalt. Der ist eh bekannt :-).

Gravatar von MarkusMarkus (#)
14.07.2007, 19:35

Nett. Ich habe vor ‘ner Weile mal was in der Richtung gemacht, auf der Basis von SimpleXML.

Gravatar von rougerouge (#)
22.07.2007, 15:05

Sehr schöner Stream. Ich hab mal versucht bei mir den SimplePie zu installieren aber leider bekomme ich nichts aggregiert. Auch nicht mit den Demoseiten von SimplePie :-(

Gravatar von baexbaex (#)
25.07.2007, 23:32

Warum will ich sowas auch unbedingt? ;)

Gravatar von JohannesJohannes (#)
18.11.2007, 23:59

Hm, leider reichen meine PHP-Kenntnisse nicht, um RelativeDate in meinen LifeStream eingebaut zu bekommen, den ich mit dem SimplePie-WordPress-Plugin geschustert habe. Falls du mal wieder Lust auf ein Tutorial hast… ;-) Aber auf jeden Danke schon mal für die guten Anregungen.

Gravatar von Maximilian SchöningMaximilian Schöning (#)
28.11.2007, 14:52

Hier ist noch ein netter screencast für Simple Pie: http://simplepie.org/tutorials/introduction_to_simplepie.mov

Gravatar von TickerTicker (#)
15.02.2008, 16:35

Hallo Gemeinde,

kann man eigentlich auch mit SimplePie in Kombination mit Wordpress die Inhalte aus den RSS-Feeds in die Blog-Page einbinden, die News jedoch vor Veröffentlichung prüfen und ggf. editieren und mit eigenen Posts aus anderen Quellen (nicht Feeds) manuell ergänzen?

Wäre dankbar für einen kurzen Hinweis, bevor ich mich ans Basteln mache…

Gravatar von FrankyFranky (#)
19.04.2008, 23:34

Da ich mich aktuell gerade mit dem Thema intensiver beschäftige, möchte ich euch mal http://www.sweetcron.com vorstellen. Momentan ist es wohl noch in der Entwicklung, was ich aber auf der Demoseite (http://www.yongfook.com) gesehen habe, ist echt vielversprechend.

Folgende Seiten verweisen auf diesen Beitrag

Dieser Eintrag kann nicht mehr kommentiert werden.

Werbung

Vorheriger Artikel: Haltet mir einen Platz frei!, nächster Artikel: Sozial browsen 0.9 mit Flock