Archive for the 'microformats' Category

Saturday, February 9th, 2008

hAvatar updated version 0.3

The first release of hAvatar created some exposure and the testing page gathered a lot feedback with strange cases which were not being handled correctly yet.

I implemented some fixes and extra functionality both in hAvatar and in hKit so the entire page renders correctly now. One important update is that it now correctly finds the representative hCard for a page when there are multiple hCards.

That being done I release a new version 0.3 as an archive and into the mercurial repository.

Get it like this:
hg clone static-http://alper.nl/hg/havatar/

Microformats wiki page

The avatar on this page is not displayed using this plugin because of some obscure Solaris bug.

Sunday, January 20th, 2008

hAvatar Wordpress Plugin

I had the idea for a Wordpress plugin replacing the avatar systems of gravatar and MyBlogLog with a microformat based one a while back.

The principle is simple. If you comment somewhere and you leave behind a URL (be it a blog one or an OpenID) and we can follow that URL and find a representative hCard with associated picture for you, it means we can present that picture as your avatar.

It works just as well as most avatar standards out there, it’s distributed and built on top of a proven microformat and gives people a benefit for publishing an hCard on their blog or elsewhere.

Development

havatar

Writing that plugin didn’t prove to be too difficult. Integrating Drew McLellan’s hKit library into Wordpress was a bit harder due to my limited experience with PHP and its bizarre quirks.

That hurdle passed I have been using the plugin on my own blog and Cristiano is using it as well. We’ve only had problems running it on this weblog most probably because something on the Solaris installation we are running is interfering (I have no clue what). You can test the plugin yourself on this test weblog.

There are some ideas in here which are similar to those of DiSo in their wishlist for a wp-openid-avatars plugin.

Release

After having spent some due dilligence testing and refining this plugin, I think it’s ready to be released and tested by a larger group of people. The plugin will not do much without you editing your theme as well and making a decision about the presentation of the avatar images.

Alternatively if gravatar() is not defined yet, it will define itself as the gravatar function as well. So a theme which relies on gravatar can expect this plugin to support it.

Get a zip with the plugin in it here, or you can checkout my repository:
hg clone static-http://alper.nl/hg/havatar/

Feedback, suggestions and patches welcome. Caching and resizing are issues that have to be solved in the future.

I found a plugin called identikit which covers a lot of the same ground but is mostly in French. hAvatar is a simple and pure microformats based approach.

Saturday, October 6th, 2007

[FOWA Talk] Use OpenID Beyond Authentication

One of the talks at the Future of Web Apps (FOWA) showed me a way to use OpenID that I hadn’t realize yet. Many people, when they think of OpenID, think of it as a way to log in a.k.a. authenticate themselves towards a system. Clearly you could give them anything you want as long as you give them the same OpenID every time you drop by.

Matt Biddulph from Dopplr though, showed some ways how OpenID could be used beyond authentication. Dopplr for example lets you add more than one OpenID account to your Dopplr account, which enables you to login to Dopplr with any OpenID provider. This becomes quite redundant when you add more than two OpenIDs, but Matt Biddulp showed that you can use people’s OpenID for more purposes besides authentication.

I already knew, you could use an OpenID to verify that a person is simply a member of a certain group of people. Much like you could use your student card to get discount at a cinema, an OpenID from your university would show that you are a student. Extending on this your national OpenID could prove your nationality, and your corporate OpenID could prove the company you work for.

Note that the actual identity of the user is not relevant and doesn’t really need to be checked as only the type of the OpenID is the important part. Even better, there is no extension like XRI needed to make this even work.

Microformats logo+OpenID Logo

A second example though showed how OpenID+Microformats would be able to give any application a nice read-only API. Imagine that you have an app, and you would like to give your user a simple way to add their friends from their other networks. A simple way to do this would be to let the user provide the OpenIDs of some other networks. Checking with the OpenID server if this OpenID really belongs to that user would be enough for you to then simply fetch the Microformatted contact lists from their profile pages on those sites, and compare that info with your own list of users.

Many networks like Twitter and Jaiku already present their friend lists using Microformats, but they don’t yet provide their users with an OpenID login that would allow any other app to actually verify if user X on your application is actually user Y on that other site. Currently Dopplr just scrapes your Twitter profile page for friends when you give them a username, so you could give them any name you want, but if Twitter would become an OpenID provider than they could use this to check if you are really that person on that network.

[More brainstorming on combining Microformats and OpenID]

Monday, September 3rd, 2007

FourStarters Back to Work

It has been a while since we had some regular posts here on FourStarters. The main reasons being the holiday season, which obviously also affects us. Starting today I am planning to bring FourStarters back to speed with some interesting posts about startups, webapps, and any other software.

Next up we also plan to attend a few conferences in the next few weeks, starting with dConstruct and BarCampBrighton this week. Alper and Sjors start of by going to the dConstruct conference this week in Brighton (UK) after which they will join Melinda, Reinier and me at BarCampBrighton during the weekend.

We are hoping that Alper and Sjors are able to give us some live feedback from the dConstruct conference, including some nice photos. Highlights of the conference will be the workshops on Microformats, Experience Design, and more. I haven’t got word from Alper or Sjors yet on what workshops they were going to attend, but I guess it must be something interesting.

Although BarCampBrighton will be the first BarCamp in Brighton ever, it will definitely be a strange one with 5% of the attendees being Dutch. There were only 100 tickets available for this small and local BarCamp, so this way it is going to be an interesting experience for both us and the other people at the conference. At least with this amount of people it can’t be hard to have some live reports from the conferences.

We are hoping to see you all soon at any of the conferences.

Friday, August 3rd, 2007

Social networking pickup

More people on Portable Social Networks

Yesterday Pascal tipped me off about a brainstorm session by some notables about Portable Social Networks.

They’ve got the stuff on the microformats wiki page right now.

On BarcampCologne (which I’m unfortunately going to miss) there is going to be a lot of activity around this subject, seeing at least the first release of Noserub (German post) a social network aggregator.

Here in the Netherlands Robert had also whipped up an implementation of this concept and he’s planning to hold a meeting around this same subject in Amsterdam. After my talk with Willem, we had agreed that PICNIC could be a nice event in or around which to embed these kind of meetings/devhouses.

And there’s going to b a Social Network DevCamp in Richmond sometime after.

I wrote about this earlier and it’s nice to see it getting adopted all over the web.

Dutch Hyvers

On the other hand, the leading Dutch social network is hinting at opening up its information to the outside world (Dutch article). It’s one of the largest silos of presence, profile and relation information in the Netherlands and as such is incredibly valuable. For now it has been hindered by a complete lack of applications from the outside and arguably amateurish development from the inside.

Yme Bosma —the guy leading the effort— looks like a decent sort and I’m curious as to how this will work out. Things that would be nice:

  1. Microformat (hCard, hReview, hResume and XFN) all content on the profile pages of Hyves members.
  2. Allow people to set their presence in Hyves using an API.
  3. Adopt an existing widget platform for integration in Hyves pages so the amount of widgets available will increase and developers can develop against a target.
  4. A smart implementation of OpenID providership would be nice. Log onto third party sites in the Netherlands using your Hyves username.
  5. Full application development inside the platform such as is possible on Facebook, judging from the current matureness level of Hyves, looks like it’s too far away to be realistic.

What’s next?

I think hResume and hReview are missing from the spec on the microformats wiki. I will add those today or tonight (I’m not completely sure what the procedure for editing is). Both should be optional but both could add much of the same information already contained on all those sites in a richer and opener fashion.

This does get my hands itching to implement some of this myself but it’s a bit of a conundrum what to implement. I know what the players already in the sphere should implement, but how do you get into the game?

(Posting has been a bit sparse lately. Summer is partly to blame for this. Expect lots of stuff from end of August onward and have a great summer.)

Wednesday, July 11th, 2007

OpenCI preparing to open up social network

Monday a week ago I visited Mediamatic on invitation from Willem Velthoven to talk about how they could fit in Portable Social Networks in their anyMeta system. This meeting was inspired by our meeting in Copenhagen and the talks we had about opening up social networks.

Picture by Matt Biddulph

anyMeta and OpenCI

Mediamatic.lab implements and maintains a series of social networking sites for the creative industries (CI) in Amsterdam. These are sites built on the anyMeta system that resemble structured wikis with a strong social dimension. They are positive towards open source, but the anyMeta system is not open source for reasons of manageability of the projects.

Seeing as that these sites have a lot of overlap in both in functionality and in the people that have an account on them, they wanted to abstract and syndicate the social stuff as much as possible. Currently people can have accounts on each of the different sites, all with the same information on them.

Seeing as Mediamatic builds anyMeta themselves and they have total control, it is very feasible for them to devise and mandate the exchange of information between their own sites. To enable the exchange between their own sites, they will use their own protocol and data format to provide for a high fidelity exchange of information. Leaving implementation details for what they are, it should become possible to use one account on any of the sites in the network.

To verify your identity on the various sites of the network they are going to enable OpenID consumer and provider functionality in the next version. This way they will have a way of distributed authentication both within their network of sites and throughout the rest of the internet.

anyMeta and the rest of the web

Microformats logo

Having solved the problem of information exchange between anyMeta sites, they would also like to play along with the rest of the internet as far as that is possible. Being able to share public information with the rest of the internet in a logical way is also on the agenda but not so straight forward.

Making public profile information available using hCard and related microformats looks easy enough. Problems arise however because the templates are made by different people and that is the location of the microformatted markup. This means the template authors have to be educated on the subject of microformats.

Whenever I advocate the use of microformats, I always have to fight against the blank looks and criticism about the aplicability of the technology. It’s a solid Catch 22 that has to be taken on with real life use cases and benefits to extoll the virtues of a dirty semantic web. For hCard there are various uses cropping up over the internet, but for the others it is a lot more limited. Having microformatted data on sites and being able to parse that using browser plugins is a first step and essential groundwork for the real use cases and richer interaction that we all want to have.

Another plan they have at Mediamatic is to first enable the sharing of information between their sites and make plugins for some of the bigger CMS’es out there (Drupal, Joomla) so they can also exchange information with those systems.

In these use cases and in the case with the internet the issue of fidelity comes up again and again. How much information can you exchange reliably and what do you do when stuff is missing? This is an important and valid question with no ready answer; though mine would be ‘get what you can, and ignore the holes where possible’.

Other stuff

Facebook logo

I am currently not implementing anything relating to OpenID and Social Networks but I think I would like to. One idea was to make a Facebook front-end site which uses the information in Facebook to offer you a microformatted profile. There already is an hCard application but extending this with XFN, hReview and hResume would be a real winner.

Yesterday on the O’Reilly event I heard about Yme Bosma who’s job it now is to drag Hyves kicking and screaming into the world of Open Social Networks. I wish him a lot of luck as that would be a good thing to have. I have started my own work on scraping the Hyves site but that hasn’t been as simple as I would have liked.

Wednesday, June 20th, 2007

The Future of Everything is Social: Consolidate and take back your social network

This is a delayed entry about a small session I held on Reboot about social networks. It ties in nicely to a recent series on Four Starters about trust and how friends are a solution to this.

In this article I will lay out why social networks are too important too leave in other people’s walled gardens and I will lay out a tentative way to connect the gardens and cultivate your own using microformats and other open standards.

Feedback is greatly appreciated.

The buddy list is key

Social networks and your online identity were prominent in various Reboot talks this year. I lifted Stowe Boyd’s quote: “The buddy list is the center of the universe.” (see slide). This has been true always but is ringing more so as the web matures and we are seeing the breakdown of centralized application models.

In a recent article, Dare Obasanjo wrote about the same subject and how he thinks that Facebook is going to be a big driver in this space. Maybe for America, but I don’t see this happening for Europe in the near future.
And does it seem like a good idea to have all the social information of the world under the control of one company?

But as Dare says, knowing who I know and who I trust, whether that information is in your address book or in your IM application, is usable in other contexts and can greatly improve the trust and interaction in those contexts. You apply the wisdom of crowds to a subset of people —the people you know— to circumvent the trust breakdown Reinier wrote about in current sites.

Yet another social network

My session was after that of Willem Velthoven (write up) who talked about their anyMeta social networking application. Their angle is to reduce the duplication of effort and enable sharing of data. Willem spoke about how he got quite sick of filling in his profile on every social networking site he wanted to participate in.

I have the same feeling and that is mainly what stopped me from filling in my Facebook profile, that and the fact that nobody I know is on Facebook. I could not bring myself to fill in another profile and try to get all my friends onto a new social network just because it looks like the next big thing.

Putting your profile information into these closed social networks gives them a lot of value but you rarely get the option of retrieving that information or using it elsewhere. The facebook API is an exception and is one way of getting access to data while it stays firmly in the silo. At what terms you can get at the data and what you can use it for is firmly in the hands of Facebook.

Microformats to the rescue

What I propose and what we talked about during my session is the concept of Portable Social Networks enabled by microformats. A social network that is open and readable and can be with you anywhere you want. During the Mediamatic session we discussed the use cases and the issues that would crop up and I invited people to attend my session for a discussion on the technical aspects.

We had a brief chat afterwards with interested people and after a break I was joined by some people among whom Willem Velthoven and Jeremy Keith (his post) to talk further about the technical stuff. I got the impression that some of the people attending my session were happy —maybe relieved even— that there was also a technical session to be found on Reboot.


Photograph by Jeremy Keith

Photograph by Tijs Teulings

I will go into deeper technical detail in a following post but the concept is to use microformats to markup most of the information found on a typical Myspace, Facebook or Hyves (the Netherlands’ most prominent social network) profile page. This way you can either get the data out from supporting social applications or hook into the network by hosting your own identity web page with correctly formatted data.

So what can we do with technology we already have (POSH+microformats)? As it would seem, a lot:

hCard

Your hCard can contain most of your personal information including your personal details, your address and your picture. This is equivalent to the personal details and picture which are usually listed on any given social network.

XFN

Most social networks have a prominently visible list of friends and a count of your total number of friends. This is very easy to implement using XFN. You can markup the links to the people in your network with the rel=”" metadata which XFN defines. XFN allows you to hook into the network from anywhere. So an XFN link from suppose Hyves could also lead to a profile page on another social network or a self-hosted one. Or at least, that is the vision.

This way you can also differentiate between trust levels withouth using numeric values which Reinier also talked about would be necessary. I am bound to trust a friend more than a contact and you could derive more relations like that.

You could also link to other sites where you have a profile or store data such as your Flickr account, your del.icio.us bookmarks or any other site. The rel="me" value could be used for this, but it is required to be symmetric, so those other sites would have to link back using the same rel="me".

hResume

A lot of social networks also allow you to markup your current job, sometimes your previous places of employment as well and in many cases also your school history so you can get in touch with former school friends.

This information is very similar to the information you can markup using hResume. You could only present the information you want to share in a casual social network but you might want to enter a full hResume to provide all the functionality of professional social networks such as LinkedIn or Xing.

hReview

Most social networking sites and even Flickr have you keep lists of your hobbies, favorite music, movies and books. You could easily mark these up as hReviews and have the fn be an URL to a generally known catalog for that item. For books I would say something such as Librarything or Amazon (with an associate ID!), for music maybe Last.fm and for movies probably IMDb.

This also solves the problem Willem suggested could arise when we use different (language) titles for the same object. Just link them all to the same uniquely identifying resource.

OpenID

OpenID logo

The microformatted information listed above can be on any page you want, in fact it probably already is if you have a Flickr or a Twitter account. I do think that there is a case to be made for linking this to your OpenID.

OpenID solidifies the notion of identity online and creates a place for everything to come together. It gives you a URL with which you can refer to a person and you can be reasonably sure that the person and the URL belong together.

Applications that will want to use this kind of information will probably already ask for your login credentials. Those credentials could very well be an OpenID from where on you could automatically retrieve a load of information as described above.

Consolidating or delegating

The question is: do you host this information yourself or do you have someone else do it for you? Since I already host my own OpenID at http://alper.nl, I have already started by embedding an hCard there and I am building the MySpace-esque portal page with all my information on there (preview).

Not everybody will want to host this themselves, but it is analogous to OpenID. Anybody can self-host their OpenID but they can also use a hosted version and the same for the providers. If at any time you want to switch OpenID providers, just change the reference.

The various internet sites which host your profile information such as the social networks and the profile sites such as MyBlogLog or 30boxes need only to mark up their essential data with these standards for it to become instantly accesible and portable.

Even for those hosting this information themselves, it would be nice to have some sort of interface beyond editing the HTML yourself. For instance it would be nice to have an ‘Add as friend’ button on your own site which would ask for your permission to add somebody to your XFN list.

Completeness and Clients

You can make the markup as rich as you want or you can leave stuff you don’t want to share out. Adoption and convention is completely up to you. There are advantages in adhering to a certain standard, but smart clients should be able to deal with holes in this picture.

Below are some use cases which can be realized today already and will also work if not all of the information is present.

Use case: Get an Avatar for somebody

I already talked about this in a previous article (“OpenAvatar - Combining OpenID and hCard”). This concept is just an extension which loads more data onto the page. If a page —such as an OpenID page— contains an hCard with an associated picture, you can retrieve it.


My avatar retrieved from my Flickr profile page

I already wrote a parser as a webservice which takes a URL and returns the associated picture. This parser can take either my OpenID or my Flickr profile (which contains an hCard). This way you can get an avatar for someone that they can manage and update to their own liking.

This concept had already been brainstormed on the microformats wiki.

Use case: Get registration information

A lot of information you need to fill in once during registration such as your full name, date of birth and some other stuff can be gleaned from the hCard. The site getsatisfaction.com already offers to scrape this information from an hCard supporting profile when signing up, saving you the trouble to fill it in.

Flickr lets users list their preferences in music, literature and cinema on their profile page. This listing could be marked up as an hReview with a rating of 1.0 on a worst/best scale of -1.0 to 1.0 (like is 1.0, dislike is -1.0). Then I could reuse it on all the social networking sites that want to know my favourite movies.

Use case: Find out who I trust

The stuff Dare and Reinier talked about with building trust networks and using that information can be realized by walking the XFN web.

Any site imaginable can be improved by adding the knowledge of my network. Imagine IMDb which shows you which movies your friends have recently watched. Or anything really, and all this without having to add your friends on every such network.

Wouldn’t that be a dream?

Monday, June 18th, 2007

Reboot - Willem Velthoven on OpenCI

(This post got stuck somewhere in the queue. Tomorrow my longer post about Portable Social Networks.)

Willem Velthoven was scheduled to speak about anyMeta on the second day. I was already familiar with Mediamatic and their work and Willem had already contacted me about their social networking offering but his talk provided a lot of insight anyway.

Willem on the left (picture by Julian Bleeckr)

I did not know that Mediamatic is significantly in the social networking business. They seem to implement a great number of them on top of their standard anyMeta platform. Having done this a number of times, they began to wonder if they could abstract away the commonalities to reduce the duplication of effort. Willem talked about how his personal information is duplicated on a great number of websites and how this gets tiring.

AnyMeta is also the system as it has been used for the Reboot.dk website for before, during and after the event itself. It is a structured wiki which takes some getting used to but I think is quite rich in functionality. The only thing I am missing right now is a fine grained setting to receive notifications from the system.

Willem also talked about the API which any anyMeta site exposes at a standardized URL and which provides hooks to do pretty much anything you would want to with the site.

OpenID support both ways —by which I think he means both being an OpenID, accepting OpenID logon and being an OpenID provider— is supposed to be forthcoming.

In his talk Willem outlined the use cases he envisioned a networked social networks should accommodate and what the problems would be that come up with that. He was also very curious if other people had already started doing the same so that no effort would be duplicated.

I had registered myself on the Reboot site to host a conversation about the technical aspects of implementing social networks using OpenID. I mentioned that this could be a great follow-up to Willem’s talk to first talk about the need and the use cases for an open social networking system and then talk about the technical means we already have to our disposal to realise such.

See the following post on my talk.

Monday, May 21st, 2007

OpenAvatar - Combining OpenID and hCard

Cristiano and myself wanted to add avatar support to Four Starters so that people could put a face to the writer of a post or comment. There already exist some solutions for this, but something more open might be nice.

(more…)