Singpolyma

Technical Blog

Archive for the "Tech" Category

JScripts Gets Some Love

Posted on

JScripts, my Ning app for storing JavaScript includes, has got some upgrades! At Johan‘s prodding I have added the following:

  • Include multiple JavaScripts with just one request to save time! It even has a form!
  • Tack ?minify on to a script to have JScripts compress it before transfer (more time saving!)
  • Tack ?callback=whoever on to have whoever() called after the script has loaded

OpenID as True Single Signon

Posted on

OpenID is meant as a distributed single signon protocol. Unlike corporate-only systems (ie, Google Accounts) however, you have to sign on at every single site. When I sign in to Gmail I am automatically signed in to Blogger, etc.

While the inability to store ‘cookies’ or similar across domains makes this not 100% possible, I have a suggestion that will make it easier.

Make every page on an OpenID-enabled site accept the openid_url GET parameter. If it is there, authenticate the user using that OpenID and then redirect back to the page the GET string was passed to – minus the openid_url parameter. Thus if I click a link from one OpenID-enabled site (where I am signed in) to another, I can be signed in automatically.

A browser plugin (ie, Firefox extension, or built into the browser as may come in Firefox 3) could be used to store the last-entered value into a form with text input named openid_url (dependent on user settings of course). This value would then be added to the GET request on any URL (or pertinent URL, depending) the browser goes to. OpenID-less sites won’t care, OpenID-enabled sites will automatically sign you in.

Template Conversion ‘Wizard’

Posted on

Well, not really. ‘Helper’ would be a better word. You upload an old-style template to the form and it translates most tags to the new syntax. It does not force your template to be well-formed (which is required), nor does it properly do attributes with expr: It is meant as a help for converting, not an auto-converter.

Note : especially for crufty or very-much-hacked templates (like mine was) I recommend re-engineering from scratch, from a default Blogger template, or from one of my templates. It is almost easier, and better for you in the long run.

Blogger Classic to New Blogger Template Conversion Helper

Table for Converting Blogger Classic to New Blogger

Posted on

I have added a lot of new tags and some corrections to the table.

A few people have asked for something like this. A table of Blogger Classic template tags and their new equivalent. This is not entirely possible because it is not a 1:1 relationship, but I will do my best. This is a post for those who were somewhat literate in the old Blogger and want to upgrade. Another post to check out would be Johan’s original post. Great stuff.

If you have a template tag from Blogger Classic that you don’t see here, post it in a comment and I’ll try to add it. This is a work in progress.

<$BlogPageTitle$> <data:blog.pageTitle/>
<$BlogMetaData$> <b:include data=’blog’ name=’all-head-content’/>
<style type="text/css"> <b:skin><![CDATA[
</style> ]]></b:skin>
<$BlogURL$> <data:blog.homepageUrl/>
<$BlogDescription$>
<Blogger> <b:section class=’posts’ id=’posts’ showaddelement=’yes’ growth=’vertical’>
<b:widget id=’PostWidget’ locked=’false’ title=’Posts’ type=’Blog’>
<b:includable id=’main’>
<b:loop values=’data:posts’ var=’post’>
</Blogger> </b:loop>
</b:includable>
</b:widget>
</b:section>
<$BlogItemNumber$> <data:post.id;
<BlogDateHeader> <b:if cond=’data:post.dateHeader’>
</BlogDateHeader> </b:if>
<$BlogDateHeaderDate$> <data:post.dateHeader/>
<$BlogItemPermalinkUrl$> <data:post.url/>
<BlogItemTitle> <b:if cond=’data:post.title’>
</BlogItemTitle> </b:if>
<$BlogItemTitle$> <data:post.title/>
<$BlogItemBody$> <data:post.body/>
<$BlogItemAuthorURL$> <data:blog.homepageUrl/>
<$BlogItemAuthor$> <data:post.author/>
<$BlogItemDateTime$> <data:post.timestamp/>
<BlogItemCommentsEnabled> <b:if cond=’data:post.allowComments’>
</BlogItemCommentsEnabled> </b:if>
<$BlogItemCommentCount$> <data:post.numComments/>
<$BlogItemControl$> <span class=’control’>
<b:if cond=’data:post.emailPostUrl’>
<span class=’item-action’>
<a expr:href=’data:post.emailPostUrl’ title=’Email Post’>
<span class=’email-post-icon’> </span>
</a>
</span>
</b:if>
<b:include data=’post’ name=’postQuickEdit’/>
</span>
<$BlogEncoding$> <data:blog.encoding/>
<$BlogTitle$> <data:blog.title/>
<$BlogItemAuthorNickname$> <data:post.author/>
<$BlogID$>
<$BlogItemUrl$> <data:post.link/>
<ItemPage> <b:if cond=’data:blog.pageType == "item"’>
</ItemPage> </b:if>
<MainOrArchivePage> <b:if cond=’data:blog.pageType != "item"’>
</MainOrArchivePage> </b:if>
<MainPage> <b:if cond=’data:blog.pageType == "main"’>
</MainPage> </b:if>
<ArchivePage> <b:if cond=’data:blog.pageType == "archive"’>
</ArchivePage> </b:if>
<$BlogItemCreate$> <a expr:href=’data:post.addCommentUrl’>Post a Comment</a>
<BlogItemComments> <b:loop values=’data:post.comments’ var=’comment’>
</BlogItemComments> </b:loop>
<$BlogCommentNumber$> <data:comment.id;
<$BlogCommentDateTime$> <data:comment.timestamp/>
<$BlogCommentAuthor$> <address style="display:inline;font-style:normal;" class="author vcard">
<b:if cond=’data:comment.authorUrl != ""’>
<a class="url fn" expr:href=’data:comment.authorUrl’><data:comment.author/></a>
<b:else/>
<span class="fn"><data:comment.author/></span>
</b:if>
</address>
<$BlogCommentBody$> <data:comment.body/>
<$BlogCommentDeleteIcon$> <b:include data=’comment’ name=’commentDeleteIcon’/>
<$BlogCommentPermalinkURL$> #c<data:comment.id;

For how to use this syntax inside tag attributes, please see Johan at Ecmanaut. I would actually recommend that you read that whole post.

Lightbox Comment Form Update

Posted on

I have updated my Lightbox Comment Form (BloggerHacks Entry) so that it jumps down to the form when it comes up instead of making you scroll through the comments again.