Author Archive for Matthias Pfefferle

Google Contacts Data API unterstützt OAuth…

Tolle News für die OAuth Community:

We are happy to announce that the Google Contacts Data API now supports OAuth. This is our first step towards OAuth enabling all Google Data APIs.

Mehr dazu in der OAuth Google-Group

(via hackr)

MyBlogLog mit hCard & vCard support

Im MyBlogLog-Blog wurden gestern die neuen v/hCard Features von MyBlogLog vorgestellt.

Pfefferle-MyBlogLog.jpg

Der vCard-Export spricht ja eigentlich für sich selbst, aber die hCard-Implementierung bedarf ein paar zusätzlicher Worte. Wie schon in den Kommentaren des letzten Posts so treffend bemerkt wurde, ist es ja eigentlich kein wirkliches Hexenwerk seine Seite zu microfromatieren, umso schöner finde ich es wenn sich jemand dabei Mühe gibt.

MyBlogLog hat der hCard eine eigene Seite spendiert, die man über das hCard-Icon (siehe Bild 1) erreicht…

Pfefferle-MyBlogLog-hCard.jpg

Aber warum macht es Sinn die hCard auf eine extra Seite zu verbannen? Bei mehreren hCards auf einem Profil, wie im Falle von MyBlogLog (auch die Kontakte sind mit hCards ausgezeichnet), bekommt man beim interpretieren (parsen) der Seite das folgende Problem: Welche hCard ist die Richtige?

Der einfachste Weg um auf eine representative Identity zu verweisen ist, eine externe hCard auf der Profil-Seite mit rel-me zu verlinken. Im Fall von MBL sollte man dies über <link rel="me" /> im Header der Profilseite realisieren, da der Action-Stream auch eine hohe Anzahl an rel-me Links aufweist.

<link rel="me" href="http://www.mybloglog.com/buzz/members/pfefferle/hcard" type="text/html" />

Alternativ könnte man auch mit XRDS-Simple auf die hCard-Seite verweisen (siehe auch Service Catalogue):

<XRDS xmlns="xri://$xrds">
  <XRD xmlns:simple="http://xrds-simple.net/core/1.0"
          xmlns="xri://$XRD*($v*2.0)" version="2.0">
    <Type>xri://$xrds*simple</Type>
    <Service priority="10">
      <Type>http://www.w3.org/2006/03/hcard</Type>
      <URI simple:httpMethod="GET">
        http://www.mybloglog.com/buzz/members/pfefferle/hcard
      </URI>
    </Service>
    <Service priority="20">
      <Type>http://gmpg.org/xfn/11</Type>
      <URI simple:httpMethod="GET">
        http://www.mybloglog.com/buzz/members/pfefferle/hcard
      </URI>
    </Service>
  </XRD>
</XRDS>

Mal sehen was MyBlogLog als nächstes vor hat :)

Firefox HTML Validator mit RDFa - Support

Nachdem sich Benjamin Nowack gestern (via twitter) noch gefragt hat ob es möglich ist, einem Firefox-HTML-Validator RDFa beizubringen…

wondering if the FF HTML Validator extension could be hacked to support RDFa. Basic QA is a bit too complicated with only the w3.org checker

…hat er ihn heute auf seiner Webseite veröffentlicht :)

Benjamin Nowacks angepasster Validator basiert auf der HTML Validator Extension for Firefox von Marc Gueury und funktioniert leider vorerst nur Windows.

Zum Download

Weitere sehr interessante Projekte von Herrn Nowack die man sich auch unbedingt anschauen sollte:

  • ARC - Easy RDF and SPARQL for LAMP systems
  • SPARQLBot - Your Semantic Web Command Line

Maholo unterstützt Microformats

mahalo-microformats.jpg

…zwar vorerst nur hCard, adr und rel-license auf einer sehr geringen Anzahl von Seiten, aber immerhin ein Anfang. (via)

Beispiel: Paris Hotels

Cognition 0.1-alpha7

Cognition ist ein Parser (Perl 5) für alle möglichen Semantic-Web - und “lowercase semantic web” - Standards:

Cognition is a parser for both “upper case Semantic Web” (RDF, RDFa) and “lower case semantic web” (microformats) technologies. It includes modules for exporting parsed data in a variety of formats, including RDF, vCard, iCalendar, Atom and KML.

Die Liste der unterstützten Metadaten und Semantiken ist definitiv zu lang um sie hier zu posten :)

Beispiel: cognified notizBlog

NewsGator Online unterstützt APML

NewsGator Online, die online Version von den klassischen Feed-Readern FeedDemon und NetNewsWire, unterstützt jetzt auch APML.

NewsGator Online.jpg

Der APML-Feed beinhaltet alle RSS-Feeds mit einer Wertigkeit, wahrscheinlich nach dem selben Prinzip errechnet wie der Feed Report bei NetNewsWire oder FeedDemon.

Feed Report_ Attention.jpg

Der Online-APML-Feed ist also, wie auch der APML export bei FeedDemon nichts weiteres als ein OPML-Feed mit Attention Profile.

Leider ist NewsGator Online nur APML-Provider und bietet mir keine Möglichkeit, z.B. neue Feeds anhand meines Attention Profiling zu finden.

(via)

APML als Filter für meinen Feed-Reader

Ich höre immer häufiger von Leuten, die ihren RSS-Reader ausmisten, da einfach viel zu viele Informationen auflaufen, die in keiner annehmbaren Zeit “abgearbeitet” werden können. Natürlich hat man mittlerweile einen Mechanismus entwickelt, mit dem man recht schnell zwischen wichtigen von unwichtigen Artikeln unterscheiden kann, aber warum sollte man diesen Vorgang nicht automatisieren?

Warum nicht einfach eines meiner Attention Profiles (z.B. der APML-Feed meines Weblogs) dazu verwenden, die Inhalte meiner abonnierten Feeds zu bewerten und dementsprechend zu filtern/sortieren. Das würde mir ne Menge Zeit ersparen und ich müsste auf keinen meiner Feeds verzichten.

…aber sicherlich arbeiten Google und NewsGator schon an genau diesem APML Filter für GoogleReader bzw. NewsGator Online :)

Webslices und Activities für Firefox

Webslices und Activities, zwei neue Features im IE8, gibt es jetzt auch als Firefox-Addons:

MyOpenID for Domains

MyOpenID for Domains bietet die Möglichkeit, den MyOpenID Service mit einer eigenen Domain zu nutzen.

myOpenID for Domains is a new service that helps you give members of your small business, family, or organization an OpenID URL at your own domain. Members get all the features of myOpenID, but get a URL at your domain instead of at myopenid.com.

Mehr dazu bei Carsten Pötter

Das kleine Problem mit MicroIDs

Nach den Ankündigungen, dass myBlogLog MicroID für die eigenen Profilseiten einsetzt (bsp.: www.mybloglog.com/buzz/members/pfefferle/) habe ich mich gefragt, warum myBlogLog MicroIDs nur anbietet, nicht aber für die Verifizierung der Blogs verwendet.

Aber zuerst mal eine kurze Einführung. MicroID ist eine einfache Möglichkeit, den Besitz von Webseiten zu validieren.

MicroID enables anyone to claim verifiable ownership over content hosted anywhere on the web (social networking sites, discussion forums, blogs, etc.).

Das Prinzip ist einfach, es wird ein Hash-Wert aus zwei unterschiedlichen URLs (auch Pseudo-URLs wie z.B. “mailto:” oder “xmpp://” sind möglich) gebildet und als Metatag in die Webseite eingebunden.

hash = sha1(
    sha1( "mailto:mustermann@example.com" )
    +
    sha1( "http://www.example.com/" )
  )

Alternativ zu sha1 kann z.B. auch MD5 verwendet werden. Der Aufbau des Metatags sieht folgendermassen aus uri+uri:algo:hash

<meta name="microid"
  content="mailto+http:sha1:
    ba37d92454792b65838c9827a8d75171c7241924" />

Der Vorteil eines proprietären Formats im Gegensatz zu MicroID

Was die genauen Gründe dafür sind, dass myBlogLog ein eigenes Format verwendet weiß ich natürlich nicht, aber schaut man sich MicroID etwas genauer an, findet man doch einige kleine Problemchen.

Eigentlich ist es ja nur ein wirkliches Problem, und zwar die URL… Eine URL kann man auf zu viele verschieden Weisen schreiben, als dass sie eine valide ID abgeben könnte:

  • http://example.com
  • http://www.example.com
  • http://example.com/

Zusammen mit der E-Mail - Adresse mustermann@example.com bekommt man drei verschiedene Hash-Werte:

  • 19358536d8c443614bc7d861f4b050ee34a549b9
  • 05c732700bfa89cd234bb7fc08cb673f7c0d88b8
  • 9275b4dcd7cc2c997b2a5249420b422e937d36e0

Das heißt, es kommt immer darauf an wie der Benutzer seine URL bei einem entsprechenden Service angibt. Ist für den Metatag der Webseite http://example.com verwendet und beim Service http://www.example.com/ angegeben worden, kann die Webseite nicht verifiziert werden, da sich die Hash-Werte unterscheiden.

Lösungsvorschläge

Eine mögliche Lösung wäre alle denkbaren URLs auszuprobieren, was nicht sehr performant wäre und eine menge Zeit beanspruchen würde. Die (meiner Meinung nach) bessere Lösung wäre eine Art “service catalogue” an, in dem festgelegt ist wie z.B. die von myBlogLog verwendete MicroID-URL aussieht.

Ein Beispiel: http://www.mybloglog.com/buzz/members/Username/

Das Problem bezieht sich natürlich nur auf Services/Communities, bei denen man keinen Einfluss auf die MicroID hat. Bei persönlichen Weblogs ist das natürlich was anderes, da die URL und der Matatag vom Benutzer selbst angelegt werden.

Falls jemand noch nen tollen Lösungsvorschlag hätte wäre ich sehr dankbar, weil ich MicroID trotz allem gerne einsetzen würde… Das Prinzip ist einfach so schön simpel :)