<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel>
    <title>markpasc.org weblog: OpenID</title>
    <link>http://markpasc.org/weblog/openid.html</link>
    <description></description>
    <dc:language>en-us</dc:language>
    <dc:creator>markpasc@markpasc.org</dc:creator>
    <dc:rights>Copyright 2006</dc:rights>
    <dc:date>2006-04-14T23:32:40-08:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.2" />
    <admin:errorReportsTo rdf:resource="mailto:markpasc@markpasc.org"/>

    <item>
      <title>OpenID Comments for MT 1.6</title>
      <link>http://markpasc.org/mark/2006/04/14_openid_comments_for_mt_16</link>
      <description>Now with userpiccy goodness. (154 words, 2 links)</description>
      <guid isPermaLink="true">http://markpasc.org/weblog/2006/04/14/openid_comments_for_mt_16</guid>
      <content:encoded><![CDATA[<p>My <a href="http://markpasc.org/code/mt/openid_comments/">OpenID Comments plugin for Movable Type</a> is now available in version 1.6. New:</p>

<ul>
<li>Finds userpic/avatar images in commenters' FOAF profiles, and provides them with the <code>MTCommentAuthorPictureURL</code> tag.</li>
<li>Properly handles cancelled signins.</li>
<li>Signing out of the blog no longer signs commenters out of TypeKey.</li>
<li>Per-blog option to disable inline styles in the <code>SignOnThunk</code> tags.</li>
</ul>

<p>You might see <code>PictureURL</code> in action on this very blog, which is sporting a slight variation on the new style I made for <a href="http://markpasc.livejournal.com/">my LiveJournal</a>.</p>

<p>I tried to figure out how to use a fake email address to get around the "Require email addresses" setting when OpenID commenters are commenting, but faking and unfaking it in all the right places seems too ugly to bother with. As you can reasonably argue that's fine, and it warns commenters when they first try to sign in that the setting is wrong, I probably won't fix it in the future either.</p>
]]></content:encoded>
      <dc:subject>OpenID</dc:subject></MTIfNotEmpty>
      <dc:date>2006-04-14T23:32:40-08:00</dc:date>
      <comments>http://markpasc.org/weblog/2006/04/14/openid_comments_for_mt_16#comment</comments>
    </item>
    <item>
      <title>My commenting template code</title>
      <link>http://markpasc.org/mark/2006/01/13_my_commenting_template_code</link>
      <description><![CDATA[Araceli wanted to see the template code I use for my OpenID commenting tabs, so here it is: &lt;h3 class="postComment"&gt;Post...]]> (407 more words, 2 links)</description>
      <guid isPermaLink="true">http://markpasc.org/weblog/2006/01/13/my_commenting_template_code</guid>
      <content:encoded><![CDATA[<p><a href="http://markpasc.org/weblog/2005/11/14/openid_comments_for_mt_15_and_typekiss_11#c1253">Araceli wanted to see</a> the template code I use for my OpenID commenting tabs, so here it is:</p>

<div class="note"><p><code>
&lt;h3 class="postComment"&gt;Post a comment&lt;/h3&gt;
&lt;script type="text/javascript" language="javascript" src="&lt;$MTBlogURL$&gt;comments.js"&gt;&lt;/script&gt;

&lt;div class="postComment"&gt;

&nbsp; &nbsp; &lt;MTIfSignedIn&gt;&lt;MTElse&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;script type="text/javascript"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; function hide(x) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById(x).style['display'] = 'none';
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; function show(x) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById(x).style['display'] = 'block';
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/script&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;div id="postCommentTabs"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a class="postCommentTab selected" href="#" onclick="show('comments-form'); hide('postCommentOpenID'); hide('postCommentLiveJournal'); return false"&gt;Anonymous&lt;/a&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a class="postCommentTab" href="&lt;MTRemoteSignInLink static="1"&gt;"&gt;&lt;img src="/weblog/nav-commenters.gif" width="22" height="15" alt="" /&gt; TypeKey&lt;/a&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a class="postCommentTab" href="#" onclick="hide('comments-form'); show('postCommentLiveJournal'); hide('postCommentOpenID'); return false"&gt;&lt;img src="&lt;MTStaticWebPath&gt;/openid-comment/livejournal.gif" width="17" height="17" alt="" /&gt; LiveJournal&lt;/a&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;a class="postCommentTab" href="#" onclick="hide('comments-form'); hide('postCommentLiveJournal'); show('postCommentOpenID'); return false"&gt;&lt;img src="&lt;MTStaticWebPath&gt;/openid-comment/openid.gif" width="16" height="16" alt="" /&gt; OpenID&lt;/a&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;div id="postCommentLiveJournal"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;MTLiveJournalSignOnThunk&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;div id="postCommentOpenID"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;MTOpenIDSignOnThunk&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;

&nbsp; &nbsp; &lt;/MTElse&gt;&lt;/MTIfSignedIn&gt;

&nbsp; &nbsp; &lt;form method="post" action="&lt;$MTCGIPath$&gt;&lt;$MTCommentScript$&gt;" id="comments-form" name="comments_form" onsubmit="if (this.bakecookie.checked) rememberMe(this)"&gt;&lt;p&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="static" value="1" /&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="entry_id" value="&lt;$MTEntryID$&gt;" /&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;MTIfVar name="previewing" value="1"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type="hidden" name="token" value="&lt;MTRequirePreviewToken&gt;" /&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/MTIfVar&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;MTIfSignedIn&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;label class="formrow"&gt;&lt;span class="label"&gt;You:&lt;/span&gt; &lt;span class="widget"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;MTSignedInName&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&lt;a href="&lt;MTRemoteSignOutLink static="1"&gt;"&gt;sign out&lt;/a&gt;)&lt;/span&gt;&lt;/label&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;MTElse&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div id="postCommentAnonymous"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;label class="formrow"&gt;&lt;span class="label"&gt;Name:&lt;/span&gt; &lt;span class="widget"&gt;&lt;input id="author" name="author"&lt;MTIfVar name="previewing" value="1"&gt; value="&lt;MTCommentPreviewAuthor&gt;"&lt;/MTIfVar&gt;&gt;&lt;/span&gt;&lt;/label&gt;&lt;br /&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;label class="formrow"&gt;&lt;span class="label"&gt;Email:&lt;/span&gt; &lt;span class="widget"&gt;&lt;input id="email" name="email"&lt;MTIfVar name="previewing" value="1"&gt; value="&lt;MTCommentPreviewEmail&gt;"&lt;/MTIfVar&gt;&gt; (optional; not shown)&lt;/span&gt;&lt;/label&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;/MTElse&gt;&lt;/MTIfSignedIn&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- rest of the posting form --&gt;

&nbsp; &nbsp; &lt;/form&gt;

&lt;/div&gt;
</code></p></div>

<p>Kinda complicated. I wouldn't recommend using this as it is. It also uses <a href="http://markpasc.org/code/mt/typekiss/">the TypeKISS plugin</a>; you don't normally have an <code>MTIfSignedIn</code> tag. I'd like to get rid of the tabs, myself, but I haven't figured out how to simplify the interface but keep the features.</p>]]></content:encoded>
      <dc:subject>OpenID</dc:subject></MTIfNotEmpty>
      <dc:date>2006-01-13T15:44:23-08:00</dc:date>
      <comments>http://markpasc.org/weblog/2006/01/13/my_commenting_template_code#comment</comments>
    </item>
    <item>
      <title>OpenID Comments for MT 1.5 and TypeKISS 1.1</title>
      <link>http://markpasc.org/mark/2005/11/14_openid_comments_for_mt_15_and_typekiss_11</link>
      <description>I built a new version of OpenID Comments this morning. This version implements the original idea of using the other... (256 more words, 4 links)</description>
      <guid isPermaLink="true">http://markpasc.org/weblog/2005/11/14/openid_comments_for_mt_15_and_typekiss_11</guid>
      <content:encoded><![CDATA[<p>I built a new version of <a href="http://markpasc.org/code/mt/openid_comments/">OpenID Comments</a> this morning. This version implements the original idea of using the other metadata headers on your OpenID for profile exchange. Now if you sign in and your OpenID has a discoverable FOAF document or Atom feed, it'll use the name from there as the name displayed on your comments.</p>

<p>I added this support quickly, testing on my LiveJournal, so it might not work with every FOAF or Atom document. Feel free to comment here if it doesn't work with yours. I should probably also support RSS and vCards, but FOAF and Atom were easy. (vCard metadata isn't exposed by Net::OpenID::Consumer, and probably won't be, since Brad and David are busy building a new system so OpenID services can use LID's profile exchange mechanism.)</p>

<p><a href="http://markpasc.org/code/mt/openid_comments/">So here's 1.5.</a> FOAF and Atom name discovery was the only change, so feel free not to upgrade if you don't care about that.</p>

<p>This change in OpenID Comments exposed another problem with <a href="http://markpasc.org/code/mt/typekiss/">the TypeKISS plugin I use for the sign-in notice</a>: if you have spaces in your name, they're displayed as URL-escaped <code>%20</code>s. I went ahead and fixed the existing problem where <code>SignedInName</code>s on the preview page were garbage (it was using the actual <code>name</code> of the commenter object, which is <code>openid</code> plus a random number). But if your name has a space in it, TypeKISS (which I'm using here) will still show it with a <code>%20</code> in the middle. I don't see any way to do URL decoding in SSI. It'll take some more experimentation to figure that out.</p>

<p>Meanwhile, that old bug is fixed in <a href="http://markpasc.org/code/mt/typekiss/">TypeKISS 1.1</a>.</p>
]]></content:encoded>
      <dc:subject>OpenID</dc:subject></MTIfNotEmpty>
      <dc:date>2005-11-14T12:49:26-08:00</dc:date>
      <comments>http://markpasc.org/weblog/2005/11/14/openid_comments_for_mt_15_and_typekiss_11#comment</comments>
    </item>


  </channel>
</rss>
