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 🙂

Anfang Februar habe ich einen interessanten Bericht über „How portable is your Skype data?“ von Phil Wolff gelesen. Der Artikel befasst sich mit der Daten-Portabilität von Nicht-Web-Applikationen am Beispiel von Skype. Leider wird diese Art des Datenaustauschs (z.B. zwischen Desktop-Anwendungen und Web-Anwendungen) auch von DataPortability.org noch nicht ausreichend behandelt und es fehlen Formate die diese Art von Austausch ermöglichen (APML mal ausgenommen).

Genau diesen Bericht müssen auch Microsoft und Google gelesen haben bevor beide diesen Monat ihre Contacts-APIs veröffentlichten 🙂

Nach den Beschreibungen von Google:

  • Import a user’s Google contacts into their web or desktop application
  • Export their application’s contact list to Google
  • Write sync applications for mobile devices or popular, desktop-based contact management applications

…und Microsoft:

To tackle the issue of contact data portability it is important to reconcile the larger issue of data ownership. Who owns the data, like email addresses in a Windows Live Hotmail address book? We firmly believe that we are simply stewards of customers’ data and that customers should be able to choose how they control and share their data. We think customers should be able to share their data in the most safe and secure way possible, but historically this openness has been achieved largely through a mechanism called “screen-scraping,” which unduly puts customers at risk for phishing attacks, identity fraud, and spam. Now with the Windows Live Contacts API, we have provided an alternative to “screen-scraping” that is equally open but unequivocally safer and more secure for customers.

…könnte man fast meinen, dass die Hürde des Datenaustauschs zwischen Desktop-Anwendungen und Web-Anwendungen überwunden wäre.

Nicht ganz… Leider basieren beide Systeme „noch“ auf proprietären Webservices und müssen unterschiedlich angesprochen werden, was eine Menge zusätzlichen Entwicklungsaufwand bedeutet. Die wesentlich bessere Lösung wäre natürlich eine einheitliche Contacts-API oder wie Carsten Pötter meint:

Of course, it was great if a more open protocol like OAuth was used, but the announcement might encourage more social networks and other corporations to pursue similar steps.

Immerhin gehören die Social-Network-Anti-Patterns durch diese Entwicklungen hoffentlich bald der Vergangenheit an…

Wie schon mehrfach berichtet wurde, hat Google mit der Social Graph API einen großen Schritt in Richtung DataPortability gemacht. Die Social Graph API ist eine weiterer Coup von Brad Fitzpatrick (Live Journal, memcached und OpenID) und bietet eine einfache API um „public connections“ die man zu genüge im Netz erstellt hat zu interpretieren um wiederverwendbar zu machen.

With the Social Graph API, developers can now utilize public connections their users have already created in other web services. It makes information about public connections between people easily available and useful.

Social Graph API

Die Google API setzt hauptsätzlich auf das Microformat XFN (V 1.1) zum darstellen des Sozialen Netzes.

XHTML Friends Network benutzt das rel Attribut von Links um Verbindungen zwischen Personen darzustellen. <a rel="me" /> kennzeichnet z.B. eine weitere Webseite des Verlinkenden. Weitere Formate (bei Google Edge Types) sind das auf RDF basierende FoaF und OpenID delegation Links <link rel="openid.delegate" />.

Die API ist recht simple und lässt sich komplett über URL Key/Value Paare konfigurieren…

http://socialgraph.apis.google.com/lookup?<parameter 1>&<parameter 2>&<parameter n>

…und stellt die Ergebnisse in JSON dar.

Social Graph API Client

Steve Ivy einer der Gründer des DiSo Projekts hat eine Social Graph API Client Klasse in PHP geschrieben und im DiSo SVN zur Verfügung gestellt.

I wrote a quick and dirty client in PHP that cosumes the JSON and returns it in a data structure. #


Eine kleine Einführung in die Social Graph API vom Autor selbst:

Weiterlesen