<?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/"
	>

<channel>
	<title>Web 3.0, 6 Bladed Razors, 7 Minute Abs &#187; OpenID</title>
	<atom:link href="http://www.zachleat.com/web/tag/openid/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zachleat.com/web</link>
	<description></description>
	<lastBuildDate>Mon, 06 Feb 2012 17:09:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Registration Forms Suck, Let&#8217;s Mitigate Suckiness</title>
		<link>http://www.zachleat.com/web/registration-forms-suck-lets-mitigate-suckiness/</link>
		<comments>http://www.zachleat.com/web/registration-forms-suck-lets-mitigate-suckiness/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 23:59:45 +0000</pubDate>
		<dc:creator>Zach Leatherman</dc:creator>
				<category><![CDATA[Application Design]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Registration]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.zachleat.com/web/?p=181</guid>
		<description><![CDATA[A lot of people <strong>complain about registration forms</strong>. Some people have suggested getting rid of them altogether, allowing users to utilize login credentials from accounts they already have through OpenID.  But registration forms aren't going away.  How can we make them more friendly?]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.zachleat.com/web/wp-content/uploads/2009/01/signup-form.png" alt="Signup Form" title="signup-form" width="250" height="293" class="size-full wp-image-183" style="float:right" /> A lot of people <strong>complain about registration forms</strong>. Some people have suggested getting rid of them altogether, allowing users to utilize login credentials from accounts they already have through OpenID.  But even with a highly technical audience, OpenID adoption is <a href="http://blog.stackoverflow.com/2008/10/stack-overflow-openid-case-study/">problematic</a>.</p>
<p>So, some sites have gone two ways, allowing OpenID, but also a proprietary registration system.  This too, <a href="http://www.wetpaintcentral.com/page/OpenID?t=anon">is problematic</a>.  It would seem that given a choice, the <strong>John Doe the Plumber style user will choose a proprietary account</strong> over the confusing user experience presented to them through OpenID.</p>
<p>But the annoyance doesn&#8217;t just lie with account registration for web applications.  Typing your personal information on every blog you comment at is also repetitive and unnecessary.  <a href="http://www.ajaxian.com">Some sites</a> even require account registration for something so minor and transient as a blog comment.</p>
<p>Unfortunately, for the time being, it looks like <strong>registration forms are here to stay</strong>.  So, what can we do to make those registration forms more usable, more efficient, and ultimately downright friendly?  I know that you&#8217;re ahead of me on this one: <strong>Let&#8217;s auto-complete information for the user</strong>.</p>
<p>Please keep in mind that this power can be used for both good and evil.  Essentially what we&#8217;re discussing here is data mining available information from various social networking sites on the internet, trying to glean personal information about an end user that has volunteered a piece of their data already.  What can we get from what we already have?</p>
<p>Once a user has typed in their <strong>e-mail address</strong>, we can:</p>
<ul>
<li>Retrieve Twitter profile information (<a href="http://www.wait-till-i.com/2009/01/08/using-twitter-as-a-data-provider-to-automatically-fill-forms/">example shown on Chris Heilmann&#8217;s blog</a>):
<ul>
<li>Full Name</li>
<li>Short Personal Description</li>
<li>Location</li>
<li>Web site URL</li>
<li>Time Zone</li>
<li>Favorite Colors (used on their profile)</li>
</ul>
</li>
<li>Retrieve an <strong>avatar</strong> if they&#8217;ve registered for the Gravatar web service (<a href="http://www.zachleat.com/web/2009/01/08/scare-your-visitors-with-this-javascript-gravatar-plugin/">See my earlier post discussing this</a>).</li>
<li>Get their <a href="http://gdata-javascript-client.googlecode.com/svn/trunk/samples/calendar/simple_sample/simple_sample.html">upcoming calendar events</a> from a public Google Calendar. (Perhaps not as useful for autocompleting forms, but interesting)</li>
<li>Find their <a href="http://www.flickr.com/services/api/flickr.people.findByEmail.html">UID on Flickr</a>, which gives you <a href="http://www.flickr.com/services/api/flickr.people.getInfo.html">a source</a> for:
<ul>
<li>Full Name</li>
<li>Location</li>
<li>Flickr Avatar</li>
</ul>
</li>
</ul>
<p>If you know any of their social networking usernames, you can:</p>
<ul>
<li><a href="http://developer.yahoo.com/mybloglog/V1/member_find_byservice.html">find their MyBlogLog profile</a>, if they&#8217;ve linked the service to their account (<a href="http://mybloglog.yahooapis.com/v1/user/service/twitter/zachleat?AppId=YahooDemo&#038;format=xml">Sample query, I added my twitter</a>).  Now we have:
<ul>
<li>MyBlogLog Screen Name and ID, from which you get their <a href="http://developer.yahoo.com/mybloglog/V1/member_find_byid.html">MyBlogLog profile</a>:
<ul>
<li>Nickname</li>
<li>Picture</li>
<li>Age</li>
<li>Sex</li>
<li>Location</li>
<li>A list of tags they use to describe themselves.</li>
</ul>
</li>
<li>MyBlogLog Avatar</li>
</ul>
</li>
</ul>
<p>Those are only some of the proof of concept API&#8217;s that I&#8217;ve listed here.  The interesting piece of this, is that once you have a small piece of information, it <strong>opens up the door to other searches</strong>.</p>
<p>One can only imagine how many leaves are in this tree.  For example:</p>
<ul>
<li>Facebook&#8217;s <a href="http://wiki.developers.facebook.com/index.php/Users.getInfo">Users.getInfo</a> (<a href="http://wiki.developers.facebook.com/index.php/JavaScript_Client_Library">in JavaScript</a>)</li>
<li>Yahoo&#8217;s Social Tools, get an <a href="http://developer.yahoo.com/social/rest_api_guide/introspective-guid-resource.html">end user&#8217;s GUID</a> and go to town on <a href="http://developer.yahoo.com/social/rest_api_guide/social_dir_api.html">their profile</a>.
<li>Google Contacts, I didn&#8217;t even start to look through <a href="http://code.google.com/apis/contacts/">their API&#8217;s</a>.</li>
</ul>
<p>Before you start jumping the privacy fence to a self induced heart attack, remember that <strong>all this information has been volunteered</strong> by each individual participating in each of these services.  Remember, with great power comes great responsibility.</p>
<p>What do you think?  Scary or useful?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachleat.com/web/registration-forms-suck-lets-mitigate-suckiness/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Double Whammy: OpenID and Microformats</title>
		<link>http://www.zachleat.com/web/double-whammy-openid-and-microformats/</link>
		<comments>http://www.zachleat.com/web/double-whammy-openid-and-microformats/#comments</comments>
		<pubDate>Fri, 23 May 2008 06:13:01 +0000</pubDate>
		<dc:creator>Zach Leatherman</dc:creator>
				<category><![CDATA[Application Design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[hCard]]></category>
		<category><![CDATA[microformat]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Technorati]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.zachleat.com/web/?p=141</guid>
		<description><![CDATA[<a href="http://www.ownyouridentity.com/2008/04/30/get-satisfactions-nice-import-profile-feature/">Own your Identity had a great post today</a> detailing a great feature on the signup form of the <a href="http://getsatisfaction.com/people/new">Get Satisfaction</a> site.

They rely on the fact that sites like Twitter and Flickr publish an <a href="http://microformats.org/wiki/hcard">hCard microformat</a> for all of their users publicly on their website.]]></description>
			<content:encoded><![CDATA[<h3>Microformategery</h3>
<p><a href="http://www.ownyouridentity.com/2008/04/30/get-satisfactions-nice-import-profile-feature/">Own your Identity had a great post today</a> detailing a great feature on the signup form of the <a href="http://getsatisfaction.com/people/new">Get Satisfaction</a> site.</p>
<p>They rely on the fact that sites like Twitter and Flickr publish an <a href="http://microformats.org/wiki/hcard">hCard microformat</a> for all of their users publicly on their website.  If you go to <a href="http://twitter.com/zachleat/">my twitter page</a> and view the source, you&#8217;ll find the following code available to anyone (without authentication):</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;address&gt;
   &lt;ul class=&quot;about vcard entry-author&quot;&gt;
      &lt;li&gt;&lt;span class=&quot;label&quot;&gt;Name&lt;/span&gt; &lt;span class=&quot;fn&quot;&gt;Zach Leatherman&lt;/span&gt;&lt;/li&gt;
      &lt;li&gt;&lt;span class=&quot;label&quot;&gt;Location&lt;/span&gt; &lt;span class=&quot;adr&quot;&gt;Omaha, NE USA&lt;/span&gt;&lt;/li&gt;
      &lt;li&gt;&lt;span class=&quot;label&quot;&gt;Web&lt;/span&gt; &lt;a href=&quot;http://www.zachleat.com/&quot; class=&quot;url&quot; rel=&quot;me&quot;&gt;http://www.zachle...&lt;/a&gt;&lt;/li&gt;
      &lt;li id=&quot;bio&quot;&gt;&lt;span class=&quot;label&quot;&gt;Bio&lt;/span&gt; &lt;span class=&quot;bio&quot;&gt;UI Programmer, JavaScript Enthusiast, Soccer Hooligan&lt;/span&gt;&lt;/li&gt;
   &lt;/ul&gt;
&lt;/address&gt;</pre></div></div>

<p>The premise here is that hCard tells you how to parse this markup to get usable information.  The <code>adr</code> CSS class tells you what my address is.  The <code>fn</code> CSS class tells you what my name is, and so on.  So, Get Satisfaction goes and spiders this page behind the scenes and autopopulates your profile with what it can find.  Pretty sweet.</p>
<p>Now, they don&#8217;t limit you to the services they provide, which are: Flickr, Technorati, Twitter, Upcoming, and last.fm.  They provide an Other category for any hCard enabled URL (your personal homepage or perhaps an <a href="http://microformats.org/wiki/hresume">hResume</a> you have posted on the web).</p>
<h3>Integrate with OpenID</h3>
<p>However, why not take it to the next level?  Why not integrate this microformat functionality WITH an openid login system?  You&#8217;d be able to kill two birds (not a twitter joke) with one stone in some cases, since both Twitter and Technorati are also OpenID producers (re-echo: We need more consumers).</p>
<p>So, not only do you get the benefits of having OpenID authentication on your website, but you&#8217;d be able to prepopulate a certain amount of profile data with an hCard parser.  And the best part is, if you already have a <a href="http://remysharp.com/2008/04/24/stop-using-openid-why-how/">nice clean user interface</a> set up to handle different OpenID producers, there wouldn&#8217;t be any additional clutter on the interface to get this benefit.  It&#8217;d be transparent to the user when it works, and fall back to a normal empty profile form when it doesn&#8217;t.</p>
<p>What I&#8217;d like to see, is more sites that are OpenID producers, also serve hCard microformats as well.  If we can get all the major producers on board, we&#8217;d have a nice tidy little system going.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachleat.com/web/double-whammy-openid-and-microformats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

