Ich habe mal ein kleines Plugin geschrieben welches den WordPress-Atom-Feed mit der ActivityStream-Syntax erweitert.

 <entry>
  <id>https://notiz.blog/?p=1775</id>
  <author>
    <name>Matthias Pfefferle</name>
    <uri>https://notiz.blog</uri>
  </author>
  <...>
  <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
  <activity:object>
    <activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
    <activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>
    <id>tag:notiz.blog,2009-07-13:/post/1775</id>
    <title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>
    <link rel="alternate" type="text/html" href="https://notiz.blog/2009/07/14/webstandards-kolumne/" />
  </activity:object>
</entry>Code-Sprache: HTML, XML (xml)

Die Syntax ist dazu gedacht, dem Feed-Parser/Feed-Reader zu erklären um was für einen Eintrag es sich handelt. Bei WordPress sind die <entry />s ausschließlich Blogposts/Artikel…

<activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
<activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>Code-Sprache: HTML, XML (xml)

…die gepostet wurden.

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>Code-Sprache: HTML, XML (xml)

Und für die Dienste wie NoseRub, die die Aktivität gerne in einen Satz packen, gibt’s das ganze auch noch in Prosa.

<title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>Code-Sprache: HTML, XML (xml)

Das ActivityStream Schema definiert übrigens noch ’ne ganze Reihe an weiteren Objekten und Verben, die auf alle möglichen Aktionen im Netz passen. Falls ihr also noch welche findet, die zu WordPress passen könnten… lasst es mich wissen 😉

Es gibt leider aber auch ein paar Probleme mit der Syntax und diversen Feed-Readern, die das zweite <title /> im <activity-object /> mit interpretieren und dann beide Titel ausgeben… aber da ja auch MySpace und Facebook die ActivityStream-Syntax einsetzen ist dieser Fehler sicherlich bald bei jedem Feed-Reader behoben 😉

Viel Spaß beim ausprobieren!

Die aktuelle Folge des OpenWeb Podcasts behandelt das Thema Distributed Social Networks. Wer sich mit der Idee der Dezentralen Netze bisher eher weniger beschäftigt hat, sollte sich unbedingt vorher Pixelsebis Screencast: Distributed Social Networking zu Gemüte führen. Sebastian gibt sich dabei sehr viel Mühe, das Thema so einfach wie möglich und auch für Nicht-Entwickler verständlich zu erklären.

Hier klicken, um den Inhalt von Vimeo anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von Vimeo.

Aber jetzt zum Podcast… Zu Gast hatten wir diesmal Dirk Olbertz, dem Mann hinter einer der ersten (wenn nicht sogar DER ersten) dezentralen Community-Lösung: Noserub. Wer Noserub einmal ausprobieren möchte, kann sich die aktuelle Version entweder herunter laden oder online unter Identoo.com testen.

Weitere Links zur Sendung gibt’s wie immer im Wiki!

Den Podcast abonnieren:

NoseRub hat ein WordPress-Plugin:

If you have an account on a social network site powered by NoseRub, i.e. identoo.com
this plugin provides a couple of widgets to show your lifestream your hCard, your contacts
and, on newer installations of NoseRub, your services.

You can also choose to use your weblog as an OpenID-URL, powered by your NoseRub account.

…außerdem wurde noch ne ganze Menge XFN verwendet 🙂

Mal schau’n was Dominik Schwind auf dem nächsten NoseRub-DevCamp so zaubert.

Eigentlich wollte ich NoseRub schon vor ner ganze Weile mal testen, jetzt habe ich die seit vorgestern erhältliche Version 0.6 zum Anlass genommen, NoseRub mal auf meinem Server zu installieren: pfefferle.org

Wer NoseRub, wie ich als SingleUser-System auf seinem Server/Webspace hosten will (anstatt als Service wie Identoo.com) muss nur zwei Dinge beachten:

NoseRub Registration Type

Zuerst sollte man sicherstellen dass sich keiner bei NoseRub registrieren kann, dazu einfach die Datei „app/config/noserub.php“ öffnen und den NOSERUB_REGISTRATION_TYPE auf none setzen.

define('NOSERUB_REGISTRATION_TYPE', 'none');Code-Sprache: JavaScript (javascript)

SocialStream durch „My Profile“ ersetzen

Im zweiten Schritt kann man die Startseite (SocialStream) durch sein eigenes Profil ersetzen. Hierzu muss man in der „app/config/routes.php“ einfach nur die Zeile

Router::connect('/', array('controller' => 'identities', 'action' => 'social_stream'));Code-Sprache: PHP (php)

…mit…

Router::connect('/', array('controller' => 'identities', 'action' => 'index', 'username' => 'USERNAME'));Code-Sprache: PHP (php)

…ersetzen und statt USERNAME den eigenen Benutzernamen eintragen. Das wars eigentlich schon.

Viel Spaß beim ausprobieren 🙂