<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: reltag</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/reltag.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-01-24T02:02:19+00:00</updated><author><name>Simon Willison</name></author><entry><title>Django People: OpenID and microformats</title><link href="https://simonwillison.net/2008/Jan/24/upgrade/#atom-tag" rel="alternate"/><published>2008-01-24T02:02:19+00:00</published><updated>2008-01-24T02:02:19+00:00</updated><id>https://simonwillison.net/2008/Jan/24/upgrade/#atom-tag</id><summary type="html">
    &lt;p&gt;In hindsight, it was a mistake to launch &lt;a href="http://djangopeople.net/"&gt;Django People&lt;/a&gt; without support for &lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt;. It was on the original feature list, but in the end I decided to cut any feature that wasn't completely essential in order to get the site launched before it drowned in an ocean of "wouldn't-it-be-cool-ifs".&lt;/p&gt;

&lt;p&gt;I thought that, once launched, the site would see a small amount of activity from a few interested parties and I'd have plenty of time to catch up on the feature backlog. What I didn't expect was that &lt;a href="http://djangopeople.net/about/"&gt;over 750 people&lt;/a&gt; would create profiles within the first 24 hours!&lt;/p&gt;

&lt;p&gt;So, I spent a few hours this evening integrating my current development version of &lt;a href="http://code.google.com/p/django-openid/"&gt;django-openid&lt;/a&gt;, which thankfully had about 80% of the code needed to integrate with Django's built-in authentication mechanism already written. Sadly the other 20% is either incomplete or a bit of a mess, but I've checked it in to &lt;a href="http://django-openid.googlecode.com/svn/branches/auth-integration/"&gt;a branch on Google Code&lt;/a&gt; for anyone who's interested.&lt;/p&gt;

&lt;p&gt;Anyway, there are a few new features on the site of interest to OpenID users:&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;When &lt;a href="http://djangopeople.net/signup/"&gt;signing up for a new account&lt;/a&gt;, you now have the option to start by signing in with an OpenID. If you do this, you'll be able to complete the signup form without having to pick a password. If your OpenID provider supports simple registration the name, e-mail address and username fields will be filled in for you.&lt;/li&gt;
    &lt;li&gt;If you already have an existing account, you can &lt;a href="http://djangopeople.net/openid/associations/"&gt;associate one or more OpenIDs&lt;/a&gt; with that account. You'll then be able to use any of them to sign in to the account. Why multiple OpenIDs instead of just one? Two reasons: firstly, it opens the potential for doing interesting things with multiple OpenIDs from different providers in the future; secondly, it gives you a fallback for if one of your OpenID providers becomes unavailable.&lt;/li&gt;
    &lt;li&gt;You can freely add and remove OpenIDs from your associations, with one exception: the site won't let you delete your last OpenID if your account doesn't also have a password associated with it, to prevent you from locking yourself out.&lt;/li&gt;
    &lt;li&gt;While I decided that I didn't want Django People to become &lt;em&gt;yet another&lt;/em&gt; OpenID provider, I do want to give people the ability to use their profile page on the site as an OpenID - so that they can prove that they own it (see my &lt;a href="http://simonwillison.net/2008/Jan/7/projection/" title="Yahoo!, Flickr, OpenID and Identity Projection"&gt;recent post on identity projection&lt;/a&gt;). To that end, the new account settings page lets advanced OpenID users set up an &lt;code&gt;openid.server&lt;/code&gt; and &lt;code&gt;openid.delegate&lt;/code&gt; for their profile page, as described in &lt;a href="http://simonwillison.net/2006/Dec/19/openid/" title="How to turn your blog in to an OpenID"&gt;my blog entry&lt;/a&gt; from just over a year ago.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One caveat: the site only supports OpenID 1.1, at least for the moment. I had originally planned to go for OpenID 2.0, but demand was such that I decided to get what I had up and running rather than digging in to the OpenID 2.0 libraries.&lt;/p&gt;

&lt;h3&gt;Microformats&lt;/h3&gt;

&lt;p&gt;While I was messing around with OpenID, &lt;a href="http://notes.natbat.net/"&gt;Natalie&lt;/a&gt; was updating the site's templates to clean up the crufty code I'd introduced and add some microformatted goodness. The site now uses &lt;a href="http://microformats.org/wiki/hcard"&gt;hCard&lt;/a&gt; where you would expect it (country listing pages, skill listing pages and the &lt;a href="http://djangopeople.net/search/"&gt;new search interface&lt;/a&gt;) and the profile pages have been updated with a healthy dose of &lt;a href="http://microformats.org/wiki/xfn"&gt;XFN&lt;/a&gt; (just rel="me", since there isn't a relevant microformat for "people who live nearby") and &lt;a href="http://microformats.org/wiki/rel-tag"&gt;Rel-Tag&lt;/a&gt;. On &lt;a href="http://adactio.com/"&gt;Jeremy Keith&lt;/a&gt;'s suggestion, the profile pages also use &lt;a href="http://microformats.org/wiki/hresume"&gt;hResume&lt;/a&gt; - all the more reason to add the Django projects you've worked on to your profile's portfolio.&lt;/p&gt;

&lt;p&gt;As usual, post feedback and bug reports as comments on this entry.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django-people"&gt;django-people&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hcard"&gt;hcard&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hresume"&gt;hresume&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/identityprojection"&gt;identityprojection&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/microformats"&gt;microformats&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/reltag"&gt;reltag&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xfn"&gt;xfn&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="django"/><category term="django-people"/><category term="hcard"/><category term="hresume"/><category term="identityprojection"/><category term="microformats"/><category term="openid"/><category term="python"/><category term="reltag"/><category term="xfn"/></entry></feed>