<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Will Norris &#187; xrds-simple</title>
	<atom:link href="http://willnorris.com/tag/xrds-simple/feed" rel="self" type="application/rss+xml" />
	<link>http://willnorris.com</link>
	<description>there&#039;s more to life than this</description>
	<lastBuildDate>Sun, 05 Feb 2012 17:41:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<item>
		<title>The Open Stack (in PHP)</title>
		<link>http://willnorris.com/2009/03/the-open-stack-in-php</link>
		<comments>http://willnorris.com/2009/03/the-open-stack-in-php#comments</comments>
		<pubDate>Thu, 19 Mar 2009 20:35:43 +0000</pubDate>
		<dc:creator>Will Norris</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[diso]]></category>
		<category><![CDATA[lrdd]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[open stack]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[xrd]]></category>
		<category><![CDATA[xrds]]></category>
		<category><![CDATA[xrds-simple]]></category>

		<guid isPermaLink="false">http://willnorris.com/?p=533</guid>
		<description><![CDATA[A couple of months or so ago, I made a conscious shift in my focus with the DiSo Project. Instead of continuing to concentrate on some of the higher level deliverables like WordPress plugins, I decided it was time to step back and evaluate where the development community (specifically the PHP development community) is with [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of months or so ago, I made a conscious shift in my focus with the <a href="http://diso-project.org/">DiSo Project</a>.  Instead of continuing to concentrate on some of the higher level deliverables like WordPress plugins, I decided it was time to step back and evaluate where the development community (specifically the PHP development community) is with the Open Stack.  For the purposes of this discussion, I&#8217;m going to use <a href="http://netmesh.info/jernst/2008/11/05">Johannes Ernst&#8217;s</a> redux of <a href="http://www.flickr.com/photos/56624456@N00/3020508770/">John McCrea&#8217;s</a> Open Stack graphic.  I&#8217;m also only going to concentrate on three of the middle components: Metadata Discovery, Authentication, and Access Control.</p>

<p><img src="http://farm4.static.flickr.com/3462/3367793731_45903b3cab_o.png" alt="The Open Stack" title="The Open Stack" style="display: block; border: 1px solid #000; margin: auto; padding: 1px;" /></p>

<p><span id="more-533"></span></p>

<h2>PHP</h2>

<p>First a quick note, to make sure this discussion does not get derailed.  There is a time and a place to talk about these topics in the abstract.  That is incredibly important work, especially in the development of these specifications, but that&#8217;s not what I&#8217;m currently interested in.  I&#8217;m focused on developing solid PHP libraries to implement these technologies.  Why PHP?  Because that&#8217;s what WordPress uses, which is the current platform I&#8217;m targeting with the work I&#8217;m doing in DiSo.  I know that PHP isn&#8217;t as sexy as Python or Ruby, but it&#8217;s what we&#8217;re using.  I agree that we need solid libraries written in these other languages as well, but that&#8217;s not my focus.  PHP is widely deployed and used, including companies very involved in implementing the Open Stack like Facebook and Plaxo (Luke, Joseph &#8212; I&#8217;m expecting some help from you guys :) ).</p>

<p>I&#8217;ll also note that I&#8217;m specifically targeting PHP 5.  PHP 4 is no longer supported, and maintaining backwards compatibility (especially when talking about XML parsing) is a complete pain.  This creates a problem with getting code into WordPress core, but I&#8217;m okay with that&#8230; they&#8217;ll move to PHP 5 eventually.</p>

<h2>OpenID</h2>

<p>Let&#8217;s start with the most mature library we&#8217;ve got.  JanRain made a huge name for themselves in the OpenID community a couple of years ago by providing <a href="http://openidenabled.com/">open source libraries</a> in a number of different languages, including of course PHP.  Like any library, there are a few weird things here and there, but by and large it is an excellent implementation that has served the community (including this developer) very well.  Last week, <a href="http://openid.net/pipermail/code/2009-March/000000.html">JanRain announced</a> that they were restructuring the development process of the PHP library to make it more open to developers.  The code itself has moved from their internal darcs repository <a href="http://github.com/bce/php-openid/">to github</a>, they&#8217;ve added <a href="http://www.sociallipstick.com/">Luke Shepard</a> of Facebook and myself as committers, and releases, bug tracking, etc will eventually be moved to the Google Code project.  Going forward, we&#8217;ll be looking at trimming down the library a bit, removing support in core for older protocol versions and edge cases that weren&#8217;t really used, and overall making it easier for developers to use.</p>

<h2>OAuth</h2>

<p>There are two OAuth PHP libraries that I&#8217;m aware of, the &#8220;official&#8221; library stored in the <a href="http://code.google.com/p/oauth/source/browse/#svn/code/php">OAuth Google Code project</a>, and the <a href="http://code.google.com/p/oauth-php/source/browse/#svn/trunk/library">Mediamatic library</a> from Marc Worrell.  The former library seems to have more users because of it&#8217;s exposure from the OAuth website, and is <strong>much</strong> lighter weight than the Mediamatic library (too much so for my taste).  I initially chose the Mediamatic library for my work in getting OAuth working with WordPress, but eventually found some problems with the general library architecture.  After <a href="http://groups.google.com/group/oauth-php/browse_thread/thread/e78feefe1d568c87">some discussion</a> with developers of both libraries, I&#8217;ve begun work on a <a href="http://github.com/willnorris/oauth-php/">new OAuth library</a>.  I re-architected the library from scratch, and then used a combination of the two libraries for much of the actual implementations.  It&#8217;s probably about 80+ percent done, and should hopefully provide something both communities can work with.</p>

<h2>Metadata Discovery</h2>

<p>Discovery has certainly received the least amount of love from the development community, which is a bit ironic given that it&#8217;s a foundational part of almost every application of the Open Stack.  There&#8217;s no shortage of metadata discovery and parsing libraries: Joseph Smarr contributed one to the <a href="http://code.google.com/p/xrds-simple/source/browse/code/php/XrdsSimpleParser.php">xrds-simple Google Code repository</a>, the OpenID library <a href="http://github.com/bce/php-openid/tree/master/Auth/Yadis">has its own</a>, and the Mediamatic OAuth library <a href="http://code.google.com/p/oauth-php/source/browse/trunk/library/discovery/xrds_parse.php">has its own</a>.  Yet amazingly, none of these help you at all if you&#8217;re wanting to manipulate or publish a metadata document.  They&#8217;re all half-baked, each written for a very specific use-case.  What we need is a full implementation of the discovery protocols.  And that, of course, is where it gets a little more complicated&#8230;</p>

<p><strong>Disclaimer</strong>: If you really want everything there is to know about this subject, go read the writings of <a href="http://www.hueniverse.com/">Eran Hammer-Lahav</a>&#8230; I&#8217;m just going to gloss over it a bit.</p>

<p>Metadata discovery includes two steps: you need to know how to get the metadata about a resource, and you need to know what format that metadata is in so that you can parse it and make sense of it.  OpenID uses a technology known as <a href="http://yadis.org/">Yadis</a> to retrieve the metadata document, which is in an XML language known as <a href="http://en.wikipedia.org/wiki/XRDS">XRDS</a> (Extensible Resource Descriptor Sequence).  <a href="http://oauth.net/discovery/">OAuth Discovery</a> uses a combined and simplified version of these two known as <a href="http://xrds-simple.net/">XRDS-Simple</a>.  Discovery for OpenID and OAuth is more-or-less compatible.</p>

<p>Now, there is also work being done in the <a href="http://www.oasis-open.org/committees/xri/">OASIS XRI TC</a> (of which I&#8217;m a member) to develop the simpler, and more uniform successor to these protocols.  Retrieval of the metadata will use a collection of methods known as <a href="http://www.hueniverse.com/hueniverse/2009/03/the-discovery-protocol-stack.html">LRDD</a> (pronounced &#8220;lard&#8221;), while the metadata     itself will be in a much simpler format known as <a href="http://www.hueniverse.com/hueniverse/2009/03/xrd-document-structure.html">XRD</a>.  While identical in spirit, these are complete rewrites of the previous specs.  The new specs are not compatible with the old, but they are also designed so that they do not conflict either, so that both may be used simultaneously.  Shifting to these new discovery protocols will certainly not be easy, but believe me when I tell you that it will be worth it.  In fact, it&#8217;s absolutely essential for players like Google to implement OP-driven identifier selection (allowing users to login with OpenID by simply entering &#8220;gmail.com&#8221;).</p>

<p>So as I said earlier, we don&#8217;t have any real good discovery libraries for PHP.  As part of my work on WordPress, I started development on a <a href="http://github.com/willnorris/php-xrd/tree/master">XRDS-Simple library</a> in PHP.  More recently, I created a <a href="http://github.com/willnorris/php-xrd/tree/XRD">separate branch</a> of the code which implements LRDD+XRD exclusively.  Realistically, we&#8217;ll probably need a library which handles both the old and new protocols for a while.  The idea would be that none of the higher level libraries like OpenID or OAuth need worry about metadata discovery, except for maybe a lightweight wrapper around the discovery library.  The new OAuth library I&#8217;m working on will do this from day one; the existing OpenID library will take a little while, but I think we&#8217;ll eventually see it rely on a separate library for discovery.</p>

<h2>Feedback and Help</h2>

<p>First of all, I welcome any feedback on the implementations that currently exist, especially the OAuth and discovery libraries I&#8217;m working on.  They are not complete and most certainly not production ready, but they&#8217;re getting close.  I&#8217;d also like to solicit development help, especially from people with larger deployments and/or a vested interest in this technology.  All the new development is happening on github, so creating a clone to hack on is incredibly simple.  Even if you don&#8217;t have development cycles you can put into this, I&#8217;ve already got at least one technical decision I need to make that I&#8217;d love feedback on, which I&#8217;ll be covering in my next post: &#8220;<a href="http://willnorris.com/2009/03/http-client-library-for-php">Why Does HTTP Suck So Much in PHP</a>&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://willnorris.com/2009/03/the-open-stack-in-php/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Challenges in changing my OpenID</title>
		<link>http://willnorris.com/2008/12/challenges-in-changing-my-openid</link>
		<comments>http://willnorris.com/2008/12/challenges-in-changing-my-openid#comments</comments>
		<pubDate>Fri, 19 Dec 2008 22:35:21 +0000</pubDate>
		<dc:creator>Will Norris</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xrd]]></category>
		<category><![CDATA[xrds-simple]]></category>

		<guid isPermaLink="false">http://willnorris.com/?p=457</guid>
		<description><![CDATA[I recently decided to combine two personal websites I had (this one, willnorris.com, and will.norris.name) so that I had a single web presence. I chose to use willnorris.com as my canonical URL, but this presented two problems: I have been listing will.norris.name as my homepage in my various social networks profiles and on blog comments. [...]]]></description>
			<content:encoded><![CDATA[<p>I recently decided to combine two personal websites I had (this one, willnorris.com, and will.norris.name) so that I had a single web presence.  I chose to use willnorris.com as my canonical URL, but this presented two problems:</p>

<ul>
<li><p>I have been listing will.norris.name as my homepage in my various social networks profiles and on blog comments.  I&#8217;ve built up some Google page rank love through these links, and I want to make sure that is transferred over to willnorris.com.  I also want any visitors that go to will.norris.name to be sent over to willnorris.com.  The easiest (and correct) way to accomplish both of these is to setup a simple 301 &#8220;Moved Permanently&#8221; redirect.</p></li>
<li><p>I have also been using will.norris.name as my primary OpenID to login to numerous websites.  Many OpenID consumers will allow you to connect multiple OpenIDs or at least change your OpenID, so I can go through them all and update my account.  But that will take a while, and I&#8217;d like to combine my domains now.  The problem is that if I go ahead and setup a 301 redirect (as mentioned above), then it breaks my ability to use will.norris.name as an OpenID (see #4 under <a href="http://openid.net/specs/openid-authentication-2_0.html#normalization">OpenID Normalization</a>).</p></li>
</ul>

<p>So I want Google and other visitors to see a permanent redirect to willnorris.com, but I don&#8217;t want to break my ability to use will.norris.name as an OpenID.  I was originally planning to use Apache to perform the redirect, and I wasn&#8217;t sure if I&#8217;d actually be able to find a solution to my problem.  Then I started thinking about WordPress request processing, and came up with the following bit of code:</p>

<pre><code>add_action('wp', 'redirect_wp');

function redirect_wp($wp) {
    // only redirect plain home page requests
    if (!is_front_page() &amp;&amp; !is_home()) return;
    if (!empty($_SERVER['QUERY_STRING'])) return;

    // don't redirect OpenID requests
    if (stripos($_SERVER['HTTP_ACCEPT'], 'application/xrds+xml') !== FALSE) return;
    if (stripos($_SERVER['HTTP_USER_AGENT'], 'openid') !== FALSE) return;
    if (empty($_SERVER['HTTP_USER_AGENT'])) return;

    wp_redirect('http://willnorris.com/', 301);
    exit;
}
</code></pre>

<p>So it&#8217;s pretty simple really&#8230; First, we only care about requests to the front page.  Because I was only using will.norris.name as a one-page identity site, not a full blog, I only need to worry with requests to the front page.  If I had been writing blog posts or other pages on this site, I would need to have different logic here.  Second, we do some basic detection for OpenID requests &#8212; things like the content negotiation header for XRDS, or the &#8220;openid&#8221; string that appears in the user agent of JanRain OpenID libraries.  If it doesn&#8217;t look like an OpenID request, we go ahead and redirect to willnorris.com.</p>

<p>Now of course this only works in my specific use case, but perhaps it will prove useful for others.  For what it&#8217;s worth, the new work we&#8217;re doing on <a href="http://groups.google.com/group/metadata-discovery">metadata discovery</a> with XRD would prevent this problem, since we&#8217;re moving away from overloading normal HTTP requests where possible.</p>

<p><strong>Update:</strong> I now also treat an empty user agent string as an OpenID request.  This covers Blogger, which uses the <a href="http://openid4java.org">OpenID4Java</a> library.  I&#8217;m fairly certain all major search engine spiders include a user agent, so this should be a fairly safe addition.</p>

<h3>Additional Note for FastCGI Users</h3>

<p>It&#8217;s worth noting as well that WordPress loses the HTTP status code when using FastCGI, as is used at Joyent.  A <a href="http://trac.wordpress.org/browser/tags/2.7/wp-includes/pluggable.php#L848">comment in the code</a> claims that it causes problems with some FastCGI setups, but I&#8217;ve not experienced that.  This is very important, because Google will not transfer your page rank repuation if only using a 302 &#8220;Moved Temporarily&#8221; redirect; it must be a 301.  A quick fix for this is to add the following to the very beginning of the above code:</p>

<pre><code>add_filter('wp_redirect_status', 
    create_function('$s', 'status_header($s); return $s;'));
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://willnorris.com/2008/12/challenges-in-changing-my-openid/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>DiSo - One Year Later</title>
		<link>http://willnorris.com/2008/12/diso-one-year-later</link>
		<comments>http://willnorris.com/2008/12/diso-one-year-later#comments</comments>
		<pubDate>Thu, 18 Dec 2008 20:35:13 +0000</pubDate>
		<dc:creator>Will Norris</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[diso]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[openstack]]></category>
		<category><![CDATA[poco]]></category>
		<category><![CDATA[xrds-simple]]></category>

		<guid isPermaLink="false">http://willnorris.com/?p=444</guid>
		<description><![CDATA[I&#8217;m not sure that anyone mentioned it really, but a couple of weeks ago was the one year anniversary of the DiSo Project. In that time, Chris and I were both hired by Vidoop to work on DiSo full-time, and Steve was picked up by Six Apart. We&#8217;ve also seen the entire discussion about these [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure that anyone mentioned it really, but a couple of weeks ago was the <a href="http://factoryjoe.com/blog/2007/12/06/oauth-10-openid-20-and-up-next-diso/">one</a> <a href="http://redmonk.net/archives/2007/12/05/diso">year</a> <a href="http://willnorris.com/2007/12/wp-openid-moving-to-diso">anniversary</a> of the <a href="http://diso-project.org/">DiSo Project</a>.  In that time, Chris and I were both hired by <a href="http://vidoop.com/">Vidoop</a> to work on DiSo full-time, and Steve was picked up by <a href="http://sixapart.com/">Six Apart</a>.  We&#8217;ve also seen the entire discussion about these technologies, now dubbed the &#8220;Open Stack&#8221;, move forward tremendously.  Because of that, I&#8217;ve changed how I explain the DiSo Project to people.</p>

<p>Early in the project, it didn&#8217;t seem like too many people were talking openly about the state of social networking.  We all commonly referred to Facebook and MySpace as &#8220;silos&#8221; and &#8220;walled gardens&#8221;, but few people were talking about what the alternative would actually look like.  Now, I&#8217;m sure there were far more people working on this than I realized&#8230; I have no doubt about that.  But for me, it seemed like we were somewhat alone out there trying to figure out what protocols and technologies we could piece together to build a truly distributed social network.  Because of this, I often described DiSo almost as a think-tank for developing the model and the technologies.  We were writing code as well because we had to have a reference implementation that proved what we were talking about was possible, but I always de-emphasized that.  Code comes and goes, dozens of implementations of these protocols will be written in different languages for different platforms, and that&#8217;s fine.  What&#8217;s more important then, is the protocol itself.  That&#8217;s what DiSo was all about&#8230; gathering (and creating when necessary) the collection of protocols necessary to make this stuff work.  At least that&#8217;s how I viewed it, and explained it.</p>

<p>Today, the Open Stack is becoming very real.  We have agreed upon standards for <a href="http://xrds-simple.net/">service and metadata discovery</a>, <a href="http://openid.net/">authentication</a>, <a href="http://oauth.net/">API access</a>, and <a href="http://portablecontacts.net/">contact information</a>.  We have commitments and production deployments from key players in this space including Google, Yahoo!, MySpace, AOL, Microsoft, and many others.  What seemed like a small effort between a few individuals is now a full-scale shift of how we think about social interaction online.  Just to be clear, I&#8217;m not trying to take credit for any of this stuff happening.  The DiSo Project has played a small role in helping to shape and direct a few of the individual discussions, but this truly is a concerted effort between a lot of people who see the real potential for what we&#8217;re trying to do.</p>

<p>So where does this all leave DiSo today?  Well, it&#8217;s obvious now that DiSo is not the think-tank for these technologies&#8230; they&#8217;re being developed all over the web, inside and between dozens of companies.  Instead, I now put more emphasis on the code that we&#8217;re writing, because I think we represent a key principal of this entire Open Stack model.</p>

<p>The easiest example to give a layman for distributed social networking is &#8220;being able to interact with your Facebook friends using your MySpace account.&#8221;  In the future, most people will likely have accounts with one or two of the large social networks or identity providers, and participate in the open web from there.  With these large networks and providers at the table now, we can ensure that we develop a solution that will give users choice and the freedom to participate from anywhere.  If this is truly going to be &#8220;user-centric&#8221;, then in fact, a user shouldn&#8217;t even have to join one of these large social networks in order to participate.  Just like you can setup a server to host your own email instead of using a provider like GMail, you should be able to run your own server which provides the various pieces of the Open Stack.  And that&#8217;s precisely where DiSo fits in &#8212; we&#8217;re working to provide the software that lets you participate in the open web from the comfort of your own domain.  While there may be advantages to using one of the large providers, in order for this system to be truly open, then users must always have the option of maintaining complete control and running everything themselves.  As soon as DiSo users become second-class citizens because they are not in one of the major social networks, then we&#8217;ve failed to achieve the level of openness we sought.</p>

<p>Today, all of my development for DiSo is being done in PHP, and most of it specifically for <a href="http://wordpress.org/">WordPress</a>.  Between myself, Steve Ivy, and <a href="http://singpolyma.net/">Stephen Weber</a>, we have basic WordPress plugins for OpenID, OAuth, XRDS-Simple, rich profiles (hCard), Activity Streams, contacts, and permissions.  Many of them have work yet to be done before they are really stable and ready for mass consumption, but many can be seen right here on <a href="http://willnorris.com/">willnorris.com</a>.  Six Apart is also developing implementations on top of <a href="http://www.movabletype.org/">Movable Type</a>, including the recently announced <a href="http://www.movabletype.com/motion/">Motion</a>, which provides some real cool functionality around activity streams.</p>
]]></content:encoded>
			<wfw:commentRss>http://willnorris.com/2008/12/diso-one-year-later/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Next Steps with wp-openid</title>
		<link>http://willnorris.com/2008/09/the-next-steps-with-wp-openid</link>
		<comments>http://willnorris.com/2008/09/the-next-steps-with-wp-openid#comments</comments>
		<pubDate>Tue, 16 Sep 2008 21:17:21 +0000</pubDate>
		<dc:creator>Will Norris</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-openid]]></category>
		<category><![CDATA[xrds-simple]]></category>

		<guid isPermaLink="false">http://willnorris.com/?p=265</guid>
		<description><![CDATA[I&#8217;m really excited about what&#8217;s been happening with the WordPress OpenID plugin the last couple of weeks. When it&#8217;s ready to ship, I&#8217;m sure I&#8217;ll do some really deep contemplative post about &#8220;how far we&#8217;ve come&#8221; or something like that. In the meantime however, I think I&#8217;ve got something that is mostly feature complete and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really excited about what&#8217;s been happening with the WordPress OpenID plugin the last couple of weeks.  When it&#8217;s ready to ship, I&#8217;m sure I&#8217;ll do some really deep contemplative post about &#8220;how far we&#8217;ve come&#8221; or something like that.  In the meantime however, I think I&#8217;ve got something that is mostly feature complete and more or less ready for some &#8220;alpha&#8221; level testing.  There&#8217;s a lot that will be new in this release, which I&#8217;m going to try and cover in my next couple of posts.  That should give people more manageable chunks to look at, test, and comment on.  If you&#8217;ve got a test WordPress instance laying around and like playing with unreleased code, please dive right in.</p>

<h3>Here Be Dragons!</h3>

<p>Let me say first and foremost, don&#8217;t use this on a production blog.  I always say that when I blog about unreleased code, but this time it&#8217;s much more important.  There are major database changes in this version&#8230; changes which are non-trivial to reverse.  There is a very good chance there will be more database changes before the final release, and there will not be an upgrade path from this development version (there will however be an upgrade path from the last stable version&#8230; 2.2.x).</p>

<h3>What&#8217;s New</h3>

<p>For now, I&#8217;m just going to have two follow-up posts talking about changes in the coming release.  I&#8217;m sure I&#8217;ll overlook something and may have to add a third post, but for now we&#8217;re looking at:</p>

<ul>
<li><a href="http://willnorris.com/2008/09/wp-openid-faster-stronger-better">Making the plugin more stable, extensible, and overall simpler</a></li>
<li><a href="http://willnorris.com/2008/09/providing-and-delegating-openids">OpenID Providing and Delegation</a></li>
</ul>

<h3>Test it Out</h3>

<p>The current plugin can be checked out from the DiSo subversion repository; grab the <a href="http://diso.googlecode.com/svn/wordpress/wp-openid/branches/3.0/">3.0 branch</a> .  In addition, it requires a special branch of the <a href="http://diso.googlecode.com/svn/wordpress/wp-xrds-simple/branches/refactoring/">XRDS-Simple plugin</a> to provide all the XRDS publishing stuff.  If you have a previous version of wp-openid installed, you <strong>must</strong> deactivate and reactivate the plugin for the database changes to be applied.  Again, keep in mind that these will be somewhat substantial changes to the OpenID portions of the database, so don&#8217;t do this on your production blog just yet. Please direct any support questions to the <a href="http://groups.google.com/group/diso-project">DiSo Mailing List</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://willnorris.com/2008/09/the-next-steps-with-wp-openid/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

