<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18522301</id><updated>2011-04-21T19:34:39.742-05:00</updated><category term='feeds'/><category term='hack'/><category term='del.icio.us'/><category term='yahoo'/><category term='templates'/><category term='openid'/><category term='hatom'/><category term='javascript'/><category term='asynchronous'/><category term='conversion'/><category term='hacking'/><category term='jscripts'/><category term='syndication'/><category term='template'/><category term='general'/><category term='page'/><category term='form'/><category term='beta'/><category term='microformats'/><category term='firefox'/><category term='xoxo'/><category term='blogger'/><category term='web2.0'/><category term='survey'/><category term='hacks'/><category term='webos'/><category term='rss'/><category term='microsummaries'/><category term='delicious'/><category term='ning'/><category term='standards'/><category term='code'/><category term='ecmanaut'/><category term='trackback'/><category term='greasemonkey'/><category term='trackbacks'/><category term='pipes'/><category term='bleet'/><category term='comments'/><category term='update'/><title type='text'>Singpolyma - Technical Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default?start-index=101&amp;max-results=100'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>140</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18522301.post-5906025226460952158</id><published>2007-02-27T10:15:00.001-05:00</published><updated>2007-02-28T18:15:26.263-05:00</updated><title type='text'>Error: Blogger Disassemble</title><content type='html'>&lt;p&gt;&lt;br /&gt;Just FYI to my readers - I cannot access the Blogger posting interface.  This has been a problem on and off for the last six months and seems to be a problem with my ISP.  I've used a proxy to get around it in the past, but Blogger's new security features make that not work.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;br /&gt;&lt;p&gt;&lt;br /&gt;I can edit my template, but I can't edit my posts.  I'm posting this from Flock.  Flock does not support Blogger labels, and thus all I am getting are Technorati links in my post footer.  Old posts that should be updated with new information cannot be.  I will try to do some of that from school, but I cannot from home.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;br /&gt;&lt;p&gt;&lt;br /&gt;I apologise for the inconvenience.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style='font-size:88%' id='wtmb_tags'&gt;&lt;p&gt;Tags: &lt;a rel='tag' href='http://technorati.com/tag/general'&gt;general&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-5906025226460952158?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/5906025226460952158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=5906025226460952158&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/5906025226460952158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/5906025226460952158'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/02/error-blogger-disassemble.html' title='Error: Blogger Disassemble'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-5052386552083813100</id><published>2007-02-27T10:03:00.001-05:00</published><updated>2007-02-27T10:03:04.045-05:00</updated><title type='text'>FreshTaggy Goodness</title><content type='html'>&lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;FreshTags' core&lt;/a&gt; has been without update for quite some time (and, I believe, does not even render properly on the New Blogger.  &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/freshtags-singpolyma-2.html"&gt;My version&lt;/a&gt; has not fared much better (although I did upgrade it to work with the new blogger :) ).  Now it is time for some improvements!&lt;br/&gt; &lt;br/&gt; &lt;strong&gt;For Blogger&lt;/strong&gt;&lt;br/&gt; Full integration with the New Blogger labels system!  You have to paste a small code into your sidebar, and then FreshTags will pull its data directly from your local labels!  Great for new users or people who have fully migrated.  Best of all, to install this takes only a few steps on &lt;a href="http://singpolymaplay.ning.com/freshtags/?install&amp;amp;blogger"&gt;the wizard&lt;/a&gt;.  Select 'Blogger' as the data source, enter your blog URL, change any other settings you might want, and click 'Generate Code'.  Copy the code presented into your sidebar and then click the generated button to instantly install the widget with your settings!  (Does not work on FTP blogs.)&lt;br/&gt; &lt;br/&gt; &lt;strong&gt;For Everywhere&lt;/strong&gt;&lt;br/&gt; There are now three wizards for my version of FreshTags.  There is one to &lt;a href="http://singpolymaplay.ning.com/freshtags/"&gt;generate the JSON for individual widgets&lt;/a&gt; (hackers).  There is one to &lt;a href="http://singpolymaplay.ning.com/freshtags/?install"&gt;generate the full code for anywhere&lt;/a&gt; (some knowledge necessary).  Finally there is &lt;a href="http://singpolymaplay.ning.com/freshtags/?install&amp;amp;blogger"&gt;one that generates a one-click button&lt;/a&gt; (or instructions and a button) for the New Blogger.&lt;br/&gt; &lt;br/&gt; &lt;strong&gt;For MediaWiki&lt;/strong&gt;&lt;br/&gt; That's right.  Go over to &lt;a href="http://www.editthis.info/bloggerhacks/"&gt;BloggerHacks&lt;/a&gt; to see it in action.  FreshTags for MediaWiki!  The wizards (above) can generate the code, but it's a bit hackier to integrate with the sidebar.  Check out the &lt;a href="http://www.editthis.info/bloggerhacks/MediaWiki:Sidebar"&gt;BloggerHacks Sidebar&lt;/a&gt; and &lt;a href="http://www.editthis.info/bloggerhacks/Header"&gt;Header Section&lt;/a&gt; to see how I did it (click the view source wiki tab for wikicode).&lt;br/&gt; &lt;br/&gt; &lt;strong&gt;For WordPress&lt;/strong&gt;&lt;br/&gt; I have updated &lt;a href="http://singpolyma-tech.blogspot.com/2006/03/freshtags-for-wordpress.html"&gt;FreshTags for Wordpress&lt;/a&gt; (with the help of my friend, &lt;a href="http://trevorcreech.com/"&gt;Trevor Creech&lt;/a&gt;) to work as a Wordpress Widget.  If you don't have widgets on your Wordpress blog, don't worry!  It still works the old way.&lt;!-- technorati tags begin --&gt;&lt;p style="font-size:10px;text-align:right;"&gt;technorati tags:&lt;a href="http://technorati.com/tag/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;, &lt;a href="http://technorati.com/tag/blogger" rel="tag"&gt;blogger&lt;/a&gt;, &lt;a href="http://technorati.com/tag/wordpress" rel="tag"&gt;wordpress&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mediawiki" rel="tag"&gt;mediawiki&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tagging" rel="tag"&gt;tagging&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tags" rel="tag"&gt;tags&lt;/a&gt;, &lt;a href="http://technorati.com/tag/labels" rel="tag"&gt;labels&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-5052386552083813100?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/5052386552083813100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=5052386552083813100&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/5052386552083813100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/5052386552083813100'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/02/freshtaggy-goodness.html' title='FreshTaggy Goodness'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-4720070055686555152</id><published>2007-02-20T00:25:00.000-05:00</published><updated>2007-02-20T00:26:28.962-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microformats'/><category scheme='http://www.blogger.com/atom/ns#' term='webos'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='standards'/><title type='text'>WebOS Again</title><content type='html'>I &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/webos.html"&gt;wrote once before&lt;/a&gt; about the existing WebOS systems.  I planned to follow that post up, but time did not allow.  Now I will follow it up twofold.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Using&lt;/span&gt;&lt;br /&gt;I have come to use WebOS in a broader sense than I once did, which seems to be the 'catching' way to use it these days.  That is, defining WebOS to include things such as Netvibes and BoxtheWeb, Omnidrive and Box.net, Zoho and Google Docs.  I have been asked by some how I find WebOS useful at all, or if it is just an interesting experiment.  I will attempt here to answer that.&lt;br /&gt;&lt;br /&gt;Online storage is amazing.  Work at home, save online, work at school, save online, etc.  It is far more convenient than carrying flash media everywhere I go.  I have used YouOS, Google Docs, and Gmail for this, but the result is basically the same.&lt;br /&gt;&lt;br /&gt;Online office is similarly useful.  I can work on and access the same document across computers at my house, or on campus, without any real hassle.  Open, edit, save.  Collaboration features just make it that much more fun!  SVN for documents ;)&lt;br /&gt;&lt;br /&gt;AJD (ala BoxtheWeb or Netvibes) is something I really love.  I use BoxtheWeb, being the project originator, but there are many out there.  I have many feeds, but I still like to be able to glance at them all at once.  See what my contacts are reading these days, access my del.icio.us, and search, all from one page.  There's something to be said for that convenience.&lt;br /&gt;&lt;br /&gt;Last but not least (and I've likely forgotten others) : YubNub.  I couldn't live without it.  The amount of time saved being able to type 'g singpolyma', 'tet microformats', 'hwdial singpolyma.net' is amazing.  And the development stuff is fun.&lt;br /&gt;&lt;br /&gt;As for full-scale webtop integrations.  I haven't been using the full-fledged features yet.  There's something there though... just not ready yet (or maybe I'm too geeky to see it past the GUI ;) ).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Standards&lt;/span&gt;&lt;br /&gt;I mentioned in my last post the need for standards.  If I could run Netvibes widgets on my BoxtheWeb page while integrating my YouOS storage, that would be very most awesome.  &lt;a href="http://www.orcawebos.com/orcaa.com/forum.php?show_posts=115"&gt;The companies themselves seem to be organising,&lt;/a&gt; but it's private and they're not taking input.  So, as always, the community needs to get their foot in the door before the industry runs on its course and we have many too many products and it takes years to create standards.&lt;br /&gt;&lt;br /&gt;Drawing inspiration from the Microformats process, research into existing practices/standards should be present before suggesting something new.  To aid the community in organising such research and development, I have created a &lt;a href="http://webos.singpolyma.net/"&gt;wiki&lt;/a&gt; and a &lt;a href="http://groups.google.com/group/webos-standards/"&gt;discussion group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Perhaps not all of us are geeky enough to do the research and formal stuff for the wiki, but anyone who uses any of the products listed above, listed on the wiki, or related products, as well as those interested in &lt;a href="http://simile.mit.edu/"&gt;Simile&lt;/a&gt; and related projects can contribute to the discussion on the discussion group.  Anything from observations about how things work, suggestions as to how things should/could work, or even pointing out projects that may have been missed is welcome.  Feedback from users as well as geeks is necessary to make this project work.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-4720070055686555152?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/4720070055686555152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=4720070055686555152&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/4720070055686555152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/4720070055686555152'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/02/webos-again.html' title='WebOS Again'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-6561339213054888853</id><published>2007-02-15T09:34:00.000-05:00</published><updated>2007-02-15T09:35:09.984-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='syndication'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='pipes'/><category scheme='http://www.blogger.com/atom/ns#' term='feeds'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><title type='text'>Pipes</title><content type='html'>So if you read any blog besides mine (and surely you do) you've by now head of &lt;a href="http://pipes.yahoo.com/"&gt;Yahoo's Pipes application&lt;/a&gt;.  Mashups without programming, and a team that's promising more and better things to come.&lt;br /&gt;&lt;br /&gt;One of the immediate uses to the Blogger community occurred to virtually all hackers at once.  Sorting the feeds.  This has never been a problem for me (I screen-scrape my feed via hAtom), but for others the fact that Blogger feeds sort by when they were updated is annoying.&lt;br /&gt;&lt;br /&gt;Aditya suggested &lt;a href="http://lastword.blogspot.com/2007/02/pipes-to-rescue.html"&gt;creating individual pipes&lt;/a&gt;, but I wrote a &lt;a href="http://pipes.yahoo.com/pipes/sK0uY3G82xG_LbAtJjBjOg/"&gt;sorting pipe&lt;/a&gt;, as did &lt;a href="http://hackosphere.blogspot.com/2007/02/blogger-feed-corrector-yahoo-pipes.html"&gt;Ramani&lt;/a&gt; (who beat me to blogging about it and has a nice how-to written).  Ramani discovered an issue that causes this solution to be a bit buggy just yet.  It has to do with ATOM being stupid and RSS 2.0 being cool (yes, that's a partisan statement and not entirely true ;) ).  Basically the publishing date is not being copied from the ATOM format to the RSS format correctly.  &lt;a href="http://suggestions.yahoo.com/detail/?prop=Pipes&amp;fid=6300"&gt;Vote on Ramani's suggestion&lt;/a&gt; to get this fixed.  I also discovered a less critical issue with the UI that may confuse some less geeky users.  Please &lt;a href="http://suggestions.yahoo.com/detail/?prop=Pipes&amp;amp;fid=6251"&gt;vote on my suggestion&lt;/a&gt; to get that fixed.&lt;br /&gt;&lt;br /&gt;I also wrote a pipe for &lt;a href="http://pipes.yahoo.com/pipes/PPXhk0a82xGgYzqTFG_cUw/"&gt;mixing together Google Calendars&lt;/a&gt; (for those of us who track events from more than one) into a nice, sorted feed of upcoming events.  The email alerts system provided by Y! is dumb though, at least for this application.  I want the next 5 events emailed to me every day... likely gonna have to write my own emailer for that...&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-6561339213054888853?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/6561339213054888853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=6561339213054888853&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/6561339213054888853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/6561339213054888853'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/02/pipes.html' title='Pipes'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-349711597157813582</id><published>2007-01-30T16:44:00.000-05:00</published><updated>2007-01-30T16:47:28.631-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jscripts'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='ning'/><title type='text'>JScripts Gets Some Love</title><content type='html'>&lt;a href="http://jscripts.ning.com/"&gt;JScripts&lt;/a&gt;, my Ning app for storing JavaScript includes,  has got some upgrades!  At &lt;a href="http://ecmanaut.blogspot.com/"&gt;Johan&lt;/a&gt;'s prodding I have added the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Include multiple JavaScripts with just one request to save time!  It even &lt;a href="http://jscripts.ning.com/ids/"&gt;has a form&lt;/a&gt;!&lt;/li&gt;&lt;li&gt;Tack ?minify on to a script to have JScripts compress it before transfer (more time saving!)&lt;/li&gt;&lt;li&gt;Tack ?callback=whoever on to have whoever() called after the script has loaded&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-349711597157813582?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/349711597157813582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=349711597157813582&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/349711597157813582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/349711597157813582'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/jscripts-gets-some-love.html' title='JScripts Gets Some Love'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-7414969343506894972</id><published>2007-01-23T18:29:00.000-05:00</published><updated>2007-01-23T18:36:11.775-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><title type='text'>OpenID as True Single Signon</title><content type='html'>&lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;While the inability to store 'cookies' or similar across domains makes this not 100% possible, I have a suggestion that will make it easier.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-7414969343506894972?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/7414969343506894972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=7414969343506894972&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/7414969343506894972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/7414969343506894972'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/openid-as-true-single-signon.html' title='OpenID as True Single Signon'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-1781432285808243171</id><published>2007-01-22T20:50:00.000-05:00</published><updated>2007-01-22T20:56:51.429-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conversion'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><title type='text'>Template Conversion 'Wizard'</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://singpolymaplay.ning.com/blogger/old_to_new.php"&gt;Blogger Classic to New Blogger Template Conversion Helper&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-1781432285808243171?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/1781432285808243171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=1781432285808243171&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/1781432285808243171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/1781432285808243171'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/template-conversion-wizard.html' title='Template Conversion &apos;Wizard&apos;'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-771211685789789945</id><published>2007-01-17T15:19:00.000-05:00</published><updated>2007-01-22T20:52:57.216-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='templates'/><title type='text'>Table for Converting Blogger Classic to New Blogger</title><content type='html'>&lt;b title="Update 2007-01-22"&gt;I have added a lot of new tags and some corrections to the table.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://ecmanaut.blogspot.com/2006/09/blogger-beta-templates.html"&gt;Johan's original post&lt;/a&gt;.  Great stuff.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt; &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogPageTitle$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:blog.pageTitle/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogMetaData$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:include data='blog' name='all-head-content'/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:skin&amp;gt;&amp;lt;![CDATA[&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/style&amp;gt;&lt;/td&gt;&lt;td&gt;]]&amp;gt;&amp;lt;/b:skin&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogURL$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:blog.homepageUrl/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogDescription$&amp;gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;Blogger&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:section class='posts' id='posts' showaddelement='yes' growth='vertical'&amp;gt;&lt;br /&gt;&amp;lt;b:widget id='PostWidget' locked='false' title='Posts' type='Blog'&amp;gt;&lt;br /&gt;&amp;lt;b:includable id='main'&amp;gt;&lt;br /&gt;&amp;lt;b:loop values='data:posts' var='post'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/Blogger&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;lt;/b:includable&amp;gt;&lt;br /&gt;&amp;lt;/b:widget&amp;gt;&lt;br /&gt;&amp;lt;/b:section&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemNumber$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.id/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;BlogDateHeader&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:post.dateHeader'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/BlogDateHeader&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogDateHeaderDate$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.dateHeader/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemPermalinkUrl$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.url/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;BlogItemTitle&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:post.title'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/BlogItemTitle&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemTitle$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.title/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemBody$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.body/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemAuthorURL$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:blog.homepageUrl/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemAuthor$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.author/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemDateTime$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.timestamp/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;BlogItemCommentsEnabled&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/BlogItemCommentsEnabled&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemCommentCount$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.numComments/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemControl$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;span class='control'&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.emailPostUrl'&amp;gt;&lt;br /&gt;&amp;lt;span class='item-action'&amp;gt;&lt;br /&gt;&amp;lt;a expr:href='data:post.emailPostUrl' title='Email Post'&amp;gt;&lt;br /&gt;&amp;lt;span class='email-post-icon'&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;b:include data='post' name='postQuickEdit'/&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogEncoding$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:blog.encoding/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogTitle$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:blog.title/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemAuthorNickname$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.author/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogID$&amp;gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemUrl$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:post.link/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;ItemPage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:blog.pageType == &amp;quot;item&amp;quot;'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/ItemPage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;MainOrArchivePage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:blog.pageType != &amp;quot;item&amp;quot;'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/MainOrArchivePage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;MainPage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:blog.pageType == &amp;quot;main&amp;quot;'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/MainPage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;ArchivePage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:if cond='data:blog.pageType == &amp;quot;archive&amp;quot;'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/ArchivePage&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:if&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogItemCreate$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;a expr:href='data:post.addCommentUrl'&amp;gt;Post a Comment&amp;lt;/a&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;BlogItemComments&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:loop values='data:post.comments' var='comment'&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;/BlogItemComments&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;/b:loop&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogCommentNumber$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:comment.id/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogCommentDateTime$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:comment.timestamp/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogCommentAuthor$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;address style=&amp;quot;display:inline;font-style:normal;&amp;quot; class=&amp;quot;author vcard&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:comment.authorUrl != &amp;quot;&amp;quot;'&amp;gt;&lt;br /&gt;&amp;lt;a class=&amp;quot;url fn&amp;quot; expr:href='data:comment.authorUrl'&amp;gt;&amp;lt;data:comment.author/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&amp;lt;data:comment.author/&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/address&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogCommentBody$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;data:comment.body/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogCommentDeleteIcon$&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;b:include data='comment' name='commentDeleteIcon'/&amp;gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;&amp;lt;$BlogCommentPermalinkURL$&amp;gt;&lt;/td&gt;&lt;td&gt;#c&amp;lt;data:comment.id/&amp;gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;br /&gt;&lt;br /&gt;For how to use this syntax inside tag attributes, please see &lt;a href="http://ecmanaut.blogspot.com/2006/09/blogger-beta-templates.html#expr"&gt;Johan at Ecmanaut&lt;/a&gt;.  I would actually recommend that you read that whole post.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-771211685789789945?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/771211685789789945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=771211685789789945&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/771211685789789945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/771211685789789945'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/table-for-converting-blogger-classic-to.html' title='Table for Converting Blogger Classic to New Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-4674534945730426002</id><published>2007-01-16T15:05:00.000-05:00</published><updated>2007-01-17T13:20:21.218-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Lightbox Comment Form Update</title><content type='html'>I have updated my &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/comment-forms-and-blogger-beta.html"&gt;Lightbox Comment Form&lt;/a&gt; (&lt;a href="http://www.editthis.info/bloggerhacks/Lightbox_Comment_Form" title="BloggerHacks Entry"&gt;&lt;img src="http://www.awriterz.org/images/BloggerHacksIcon.png" alt="BloggerHacks Entry" /&gt;&lt;/a&gt;) so that it jumps down to the form when it comes up instead of making you scroll through the comments again.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-4674534945730426002?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/4674534945730426002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=4674534945730426002&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/4674534945730426002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/4674534945730426002'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/lightbox-comment-form-update.html' title='Lightbox Comment Form Update'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-6814713924829782760</id><published>2007-01-15T14:49:00.000-05:00</published><updated>2007-01-16T15:05:20.840-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ning'/><title type='text'>New Stuff on Ning</title><content type='html'>This post is to announce two previously unannounced projects of mine over on &lt;a href="http://www.ning.com/"&gt;Ning&lt;/a&gt;.  I've been working on both for some time, and both could do with some more work certainly.  Both are ready to be test-driven though (at least in the fundamentals).&lt;br /&gt;&lt;br /&gt;The smaller project is &lt;a href="http://someblogs.ning.com/"&gt;Some Blogs&lt;/a&gt;.  Some Blogs is a reporting engine for personal blogs, sexblogs, and other less-than-public-material blogs.  Inspired by &lt;a href="http://splogspot.com/"&gt;splogspot&lt;/a&gt;, this index is NOT for splogs (that's what splogspot is for).  It is for material that most people don't want to see (when I search for XOXO I want microformats articles, not 'I luv u Jodi!' :P).&lt;br /&gt;&lt;br /&gt;The other, larger, project which benefits from the first is &lt;a href="http://littluns.ning.com/"&gt;Littl'uns&lt;/a&gt;.  The original concept was to be like &lt;a href="http://techmeme.com/"&gt;TechMeme&lt;/a&gt; for smaller blogs, however the concept has evolved over time and the meme-engine is currently only an experimental 'related posts' link.&lt;br /&gt;&lt;br /&gt;Nestled in the code for Littl'uns is &lt;a href="http://littluns.ning.com/bsrch/"&gt;BSrch&lt;/a&gt;, a meta blogsearch engine.&lt;br /&gt;&lt;br /&gt;Anyway, enjoy!  Report bugs!  Give feedback! :D&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-6814713924829782760?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/6814713924829782760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=6814713924829782760&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/6814713924829782760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/6814713924829782760'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/new-stuff-on-ning.html' title='New Stuff on Ning'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-6882197786759554723</id><published>2007-01-15T12:30:00.000-05:00</published><updated>2007-01-15T12:41:26.650-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='bleet'/><category scheme='http://www.blogger.com/atom/ns#' term='survey'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>The Bleet</title><content type='html'>All geeks have their jargon, and the Blogger hacking community is no exception.  One of the big words right now is 'Bleet' - the Blogger Elite.  First coined by Avatar of &lt;a href="http://bloggeratto.blogspot.com/"&gt;Bloggeratto&lt;/a&gt;, this term is used to describe the best of the best of the Blogger hackers.&lt;br /&gt;&lt;br /&gt;Wh!13 7h!5 m4y 83 r3m3n!53n7 0f 1337, 37c, the term seems to be gaining acceptance among non-hackers as well.  Then the question becomes -- how do we keep track of who's 'in'? ;)&lt;br /&gt;&lt;br /&gt;Well, elite coders must write elite code.  I'd hazard a guess that all Bleet members must be hacking the new Blogger by now, but what else?  Who and what?  What do you think?&lt;br /&gt;&lt;br /&gt;I have created &lt;a href="http://www.surveymonkey.com/s.asp?u=86263136727"&gt;a survey&lt;/a&gt; with only three questions: the URL of a Bleet member (in your opinion), your favourite hack by this member, and one quality you think all Bleet should have.  Note to the Bleet : do not vote for yourself!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.surveymonkey.com/s.asp?u=86263136727"&gt;Fill out the survey&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another note to the Bleet : Check out the &lt;a href="http://wrinks.ning.com/wrink.php?id=1790699"&gt;Blogger Hacks Wrink&lt;/a&gt; and add yourself to it and it to your blog.  You can use any of the modes (some people dislike webrings, some dislike extra blogrolls, we have options!)  What's the point?  Well, right now that wrink is getting more than 500 traffic a week.  This means that each week (unless my stats are broken) at least 500 people travel from one Bleet site to another using this widget.  Great way for us to share our traffic with each other!&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-6882197786759554723?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/6882197786759554723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=6882197786759554723&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/6882197786759554723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/6882197786759554723'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/bleet.html' title='The Bleet'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-8107665244827668524</id><published>2007-01-15T12:08:00.000-05:00</published><updated>2007-01-15T12:28:27.935-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='page'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Static Pages in Blogger</title><content type='html'>This is a long-standing feature/hack request from much of the Blogger community.  Pages that are not posts.  This hack is a little messy and not the be-all solution, but I feel it is mature enough to publish as a start.&lt;br /&gt;&lt;br /&gt;The pages are all addressed as http://yourblog.blogspot.com/?page=pagename&lt;br /&gt;&lt;br /&gt;As always there are multiple options for this hack, but the basic starting is the same:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to &lt;a href="http://pages.google.com/"&gt;Google Pages&lt;/a&gt; (you're on the new Blogger, you have a Google Account) and create the page you want.&lt;/li&gt;&lt;li&gt;Click the 'View live' link from the Google Pages editor (after publishing the page)&lt;/li&gt;&lt;li&gt;Note the URL in the location bar / address bar, you will need it later&lt;/li&gt;&lt;/ol&gt;You will need to add this code to the &amp;lt;head&amp;gt; section of your blog &lt;span style="font-style: italic;"&gt;first time only&lt;/span&gt;, subsequent pages you can skip this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script src='http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;amp;id=2999987' type='text/javascript'/&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In code that follows, replace the red &lt;code style="color: red;"&gt;pagename&lt;/code&gt; with the what you want used as pagename in the URL (See above) and the red &lt;code style="color: red;"&gt;URL&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;If you want to just redirect to the other page (&lt;a href="http://singpolyma-tech.blogspot.com?page=aboutme-redirect"&gt;example&lt;/a&gt;) use this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&lt;br /&gt;//make sure the WidgetData object and staticpage section are defined&lt;br /&gt;if(typeof(WidgetData) != 'object') WidgetData = {};&lt;br /&gt;if(typeof(WidgetData['staticpage']) != 'object') WidgetData['staticpage'] = {};&lt;br /&gt;&lt;br /&gt;WidgetData['staticpage']['&lt;span style="color:red;"&gt;pagename&lt;/span&gt;'] = {&lt;br /&gt;'url':'&lt;span style="color:red;"&gt;URL&lt;/span&gt;',&lt;br /&gt;'type':'redirect'&lt;br /&gt;};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you want the other page superimposed in an IFRAME (&lt;a href="http://singpolyma-tech.blogspot.com/?page=aboutme-iframe"&gt;example&lt;/a&gt;) use this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&lt;br /&gt;//make sure the WidgetData object and staticpage section are defined&lt;br /&gt;if(typeof(WidgetData) != 'object') WidgetData = {};&lt;br /&gt;if(typeof(WidgetData['staticpage']) != 'object') WidgetData['staticpage'] = {};&lt;br /&gt;&lt;br /&gt;WidgetData['staticpage']['&lt;span style="color:red;"&gt;pagename&lt;/span&gt;'] = {&lt;br /&gt;'url':'&lt;span style="color:red;"&gt;URL&lt;/span&gt;',&lt;br /&gt;'type':'iframe'&lt;br /&gt;};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you want the other page superimposed (&lt;a href="http://singpolyma-tech.blogspot.com/?page=aboutme-raw"&gt;example&lt;/a&gt;) use this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&lt;br /&gt;//make sure the WidgetData object and staticpage section are defined&lt;br /&gt;if(typeof(WidgetData) != 'object') WidgetData = {};&lt;br /&gt;if(typeof(WidgetData['staticpage']) != 'object') WidgetData['staticpage'] = {};&lt;br /&gt;&lt;br /&gt;WidgetData['staticpage']['&lt;span style="color:red;"&gt;pagename&lt;/span&gt;'] = {&lt;br /&gt;'url':'&lt;span style="color:red;"&gt;URL&lt;/span&gt;'&lt;br /&gt;};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you want the other page included in a DIV so that it fits better into your page (you must style the DIV so that it works well.  The &lt;a href="http://singpolyma-tech.blogspot.com/?page=aboutme-inlineraw"&gt;example&lt;/a&gt; simply styles it to fill the page), use this code and put a DIV in your code with an ID the same as pagename:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&lt;br /&gt;//make sure the WidgetData object and staticpage section are defined&lt;br /&gt;if(typeof(WidgetData) != 'object') WidgetData = {};&lt;br /&gt;if(typeof(WidgetData['staticpage']) != 'object') WidgetData['staticpage'] = {};&lt;br /&gt;&lt;br /&gt;WidgetData['staticpage']['&lt;span style="color:red;"&gt;pagename&lt;/span&gt;'] = {&lt;br /&gt;'url':'&lt;span style="color:red;"&gt;URL&lt;/span&gt;'&lt;br /&gt;};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you want the other page included as an IFRAME in a DIV so that it fits better into your page (you must style the DIV so that it works well.  The &lt;a href="http://singpolyma-tech.blogspot.com/?page=aboutme-inlineiframe"&gt;example&lt;/a&gt; simply styles it to fill the page), use this code and put a DIV in your code with an ID the same as pagename:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&lt;br /&gt;//make sure the WidgetData object and staticpage section are defined&lt;br /&gt;if(typeof(WidgetData) != 'object') WidgetData = {};&lt;br /&gt;if(typeof(WidgetData['staticpage']) != 'object') WidgetData['staticpage'] = {};&lt;br /&gt;&lt;br /&gt;WidgetData['staticpage']['&lt;span style="color:red;"&gt;pagename&lt;/span&gt;'] = {&lt;br /&gt;'url':'&lt;span style="color:red;"&gt;URL&lt;/span&gt;',&lt;br /&gt;'type':'iframe'&lt;br /&gt;};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-8107665244827668524?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/8107665244827668524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=8107665244827668524&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/8107665244827668524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/8107665244827668524'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/static-pages-in-blogger.html' title='Static Pages in Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-2189629193031437567</id><published>2007-01-15T10:18:00.000-05:00</published><updated>2007-01-15T10:27:38.685-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microformats'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='microsummaries'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Microsummaries in Blogger</title><content type='html'>I recently learned of the &lt;a href="http://wiki.mozilla.org/Microsummaries"&gt;Microsummaries&lt;/a&gt; feature of &lt;a href="http://getfirefox.com/"&gt;Firefox 2.0&lt;/a&gt; from &lt;a href="http://lastword.blogspot.com/2007/01/microscope-on-microformats.html"&gt;Aditya&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically, when you bookmark a site that supports it there is an option to have Firefox automatically pull in the title of the most recent article (or similar) as the title/label on the bookmark.  Like simplified Live Bookmarks.  So I created a quick hack to let us generate these with Blogger.  If you have &lt;a href="http://blogxoxo.blogspot.com/2007/01/mostly-hatom-in-new-blogger.html"&gt;marked up your blog with hAtom&lt;/a&gt; put this in your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;link expr:href='"http://xoxotools.ning.com/extract_by_class.php?xn_auth=no&amp;amp;amp;amp;class=entry-title&amp;amp;amp;amp;url=" + data:blog.homepageUrl + "&amp;amp;amp;amp;_microsummary"' rel='microsummary' /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Otherwise use this code, which should work for 90% of new Blogger blogs:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;link expr:href='"http://xoxotools.ning.com/extract_by_class.php?xn_auth=no&amp;amp;amp;amp;class=post-title&amp;amp;amp;amp;url=" + data:blog.homepageUrl + "&amp;amp;amp;amp;_microsummary"' rel='microsummary' /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-2189629193031437567?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/2189629193031437567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=2189629193031437567&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/2189629193031437567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/2189629193031437567'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/microsummaries-in-blogger.html' title='Microsummaries in Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-1191772607559189202</id><published>2007-01-13T21:36:00.000-05:00</published><updated>2007-01-13T21:38:32.009-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microformats'/><category scheme='http://www.blogger.com/atom/ns#' term='hatom'/><title type='text'>hAtom in the New Blogger</title><content type='html'>If that &lt;a href="http://blogxoxo.blogspot.com/2007/01/hatom-backup-tool.html"&gt;Backup Tool&lt;/a&gt; intrigues you, or something else I've mentioned regarding &lt;a href="http://microformats.org/wiki/hatom"&gt;hAtom&lt;/a&gt;, or just &lt;a href="http://microformats.org/"&gt;microformats&lt;/a&gt; in general, then head over to my instructions on how to &lt;a href="http://blogxoxo.blogspot.com/2007/01/mostly-hatom-in-new-blogger.html"&gt;markup up New Blogger templates in hAtom&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-1191772607559189202?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/1191772607559189202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=1191772607559189202&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/1191772607559189202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/1191772607559189202'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/hatom-in-new-blogger.html' title='hAtom in the New Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-5232460938058036187</id><published>2007-01-12T16:33:00.000-05:00</published><updated>2007-01-12T16:35:15.777-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Moved to New Blogger</title><content type='html'>Hello!  I'm on the new Blogger!  Finally!  Can you see the difference?  It isn't major to the eye, but man does this backend feel nice to finally work with for real!&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-5232460938058036187?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/5232460938058036187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=5232460938058036187&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/5232460938058036187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/5232460938058036187'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/moved-to-new-blogger.html' title='Moved to New Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116861758231949050</id><published>2007-01-12T10:50:00.000-05:00</published><updated>2007-01-12T10:59:42.363-05:00</updated><title type='text'>New Tools and XOXO Blog Activity</title><content type='html'>After a long period of inactivity I have revived the former XOXO Blog as &lt;a href="http://blogxoxo.blogspot.com/" rel="me" rev="me"&gt;XOXO - A Semantic Weblog&lt;/a&gt;.  The following new tools have been announced:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An &lt;a href="http://blogxoxo.blogspot.com/2007/01/hcard-presentation.html"&gt;introductory hCard Presentation&lt;/a&gt; (not mine)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://blogxoxo.blogspot.com/2007/01/hcard-profile-generator.html"&gt;hCard Profile Generator&lt;/a&gt; (&lt;a href="http://singpolyma-tech.blogspot.com/2007/01/hcard-profile-generator.html"&gt;previously announced here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;An &lt;a href="http://blogxoxo.blogspot.com/2007/01/xfn-xoxo-hcard-blogroll-generator.html"&gt;XFN + XOXO + hCard Blogroll Generator&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;To use this with the new Blogger, simply paste the generated code into a new HTML widget.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;The &lt;a href="http://blogxoxo.blogspot.com/2007/01/hatom-backup-tool.html"&gt;hAtom Backup Tool&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Explanation on using hAtom with the New Blogger coming soon.  If you use any of &lt;a href="http://blogxoxo.blogspot.com/2006/01/xoxo-blog-templates.html"&gt;these templates&lt;/a&gt; (which include my templates) you already have hAtom support.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;There is also a discussion of &lt;a href="http://blogxoxo.blogspot.com/2007/01/distributed-social-networking.html"&gt;distributed social netoworking&lt;/a&gt; and a new &lt;a href="http://filess.ning.com/view.php?id=2983400"&gt;WordPress plugin&lt;/a&gt; to start implementing the idea.&lt;br /&gt;&lt;br /&gt;  &lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/microformats" rel="tag"&gt;microformats&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/xoxo" rel="tag"&gt;xoxo&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116861758231949050?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116861758231949050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116861758231949050&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116861758231949050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116861758231949050'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/new-tools-and-xoxo-blog-activity.html' title='New Tools and XOXO Blog Activity'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116843766590669505</id><published>2007-01-10T08:59:00.000-05:00</published><updated>2007-01-10T18:40:37.070-05:00</updated><title type='text'>Del.icio.us / Trackback Script Updated</title><content type='html'>I have made some minor bug fixes to the &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/for-new-blogger-blogger-delicious.html"&gt;del.icio.us, pinging, and trackback script for the new Blogger&lt;/a&gt;.  It also now saves trackback URLs when you save a draft.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/update" rel="tag"&gt;update&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116843766590669505?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116843766590669505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116843766590669505&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116843766590669505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116843766590669505'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/delicious-trackback-script-updated.html' title='Del.icio.us / Trackback Script Updated'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116838040824175214</id><published>2007-01-09T17:01:00.000-05:00</published><updated>2007-01-09T17:07:32.220-05:00</updated><title type='text'>New Singpolyma Templates</title><content type='html'>I have added variants to my &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/singpolyma-templates-for-new-blogger.html"&gt;Singpolyma Templates&lt;/a&gt; for my new &lt;a href="http://singpolyma-tech.blogspot.com/2007/01/asynchronous-peek-boo-comments.html"&gt;asynchronous peek-a-boo comments&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/update" rel="tag"&gt;update&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116838040824175214?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116838040824175214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116838040824175214&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116838040824175214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116838040824175214'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/new-singpolyma-templates.html' title='New Singpolyma Templates'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116837941644669161</id><published>2007-01-09T16:26:00.000-05:00</published><updated>2007-01-17T13:27:37.212-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='asynchronous'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Asynchronous Peek-a-boo Comments</title><content type='html'>Many people have benefited from my &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html"&gt;peek-a-boo comments hack&lt;/a&gt; for the new Blogger.  It has one serious downfall however.  Loading all that extra data inline can be slow.  This version of the hack is designed so that the comments are not loaded until after you click the link to display them.  This fixes some &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html#c116735074575460136"&gt;minor issues&lt;/a&gt; and improves speed like no one's business.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to the layout on your BETA blog and select 'Edit HTML'.&lt;/li&gt; &lt;li&gt;Check the 'Expand Widget Templates' box.&lt;/li&gt; &lt;li&gt;Paste the following code into the &amp;lt;head&amp;gt; section of the template:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;var comment_form_template = '&amp;lt;div class="commentelem"&amp;gt;&amp;lt;div class="comment-poster"&amp;gt;[[AUTHOR]]&amp;lt;/div&amp;gt;\n'&lt;br /&gt;+ '&amp;lt;div class="comment-body"&amp;gt;&amp;lt;div class="innerCmntBody"&amp;gt;[[BODY]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;\n'&lt;br /&gt;+ '&amp;lt;div class="comment-timestamp"&amp;gt;&amp;lt;a href="[[PERMALINK]]" title="comment permalink"&amp;gt;[[DATE]]&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;\n';&lt;br /&gt;&lt;br /&gt;if(typeof(thisblog_showCommentPhotos) == 'undefined')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;thisblog_showCommentPhotos = false;&lt;br /&gt;&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script src='http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;amp;id=2941927' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Find the code that looks something like:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:includable id='comments' var='post'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;div class='comments' id='comments'&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And replace that second line with:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;div class='comments' expr:id='"comments" + data:post.id'&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:blog.pageType != "item"'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;div expr:id='"commentsul" + data:post.id'&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById('comments&amp;lt;data:post.id/&amp;gt;').style.display = 'none';&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/li&gt; &lt;li&gt;Next, find the post-generating code.  It will look start something like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:includable id='main' var='top'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;!-- posts --&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In this section there will be a block of code that looks something like:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:if cond='data:blog.pageType == "item"'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;b:include data='post' name='comments'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Replace it with this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;b:include data='post' name='comments'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Find the post template section, which starts something like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:includable id='post' var='post'&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And then find the link to the comments area, which looks something like:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And replace it with:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:if cond='data:blog.pageType != "item"'&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;lt;b:loop values='data:post.feedLinks' var='f'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class="comments" rel="comments" expr:href='data:post.url + "#comments"' expr:onclick='"peekaboo_comments_display(&amp;amp;amp;quot;" + data:f.url + "&amp;amp;amp;quot;,&amp;amp;amp;quot;commentsul" + data:post.id + "&amp;amp;amp;quot;,thisblog_showCommentPhotos);toggleitem(&amp;amp;amp;quot;comments" + data:post.id + "&amp;amp;amp;quot;);return false;"'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class='comment-link' expr:href='data:post.url + "#comments"' expr:onclick='"toggleitem(&amp;amp;amp;quot;comments" + data:post.id + "&amp;amp;amp;quot;);return false;"'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Click 'Save Template' and, if it appears, 'Confirm &amp;amp; Save', then view your blog.&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;To make my &lt;a href="http://singpolyma-tech.blogspot.com/2006/05/comment-photos-and-highlighting.html"&gt;comment author photos and highlighting&lt;/a&gt; work with this you will need to make sure you have the latest version of that hack installed.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116837941644669161?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116837941644669161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116837941644669161&amp;isPopup=true' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116837941644669161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116837941644669161'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/asynchronous-peek-boo-comments.html' title='Asynchronous Peek-a-boo Comments'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116830824506271826</id><published>2007-01-08T20:55:00.000-05:00</published><updated>2007-01-09T16:34:54.646-05:00</updated><title type='text'>Peek-a-boo Widgets</title><content type='html'>I now have eight variations of my &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/peek-boo-link-lists.html"&gt;original peek-a-boo widget&lt;/a&gt;.  (See also &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-html-widgets.html"&gt;peek-a-boo HTML&lt;/a&gt; and &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-and-scrolling.html"&gt;peek-a-boo scrolling&lt;/a&gt;.)  I was then asked for &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-and-scrolling.html#c116782793901753979"&gt;yet another variant&lt;/a&gt;.  I realised that keeping these strictly in posts is insane and disorganised.  So I have added the variant (open links in new window) and created a wizard.  Just follow the steps and generate the code for your widget, just the way you like it!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://singpolymaplay.ning.com/blogger/peek-a-boo_wizard.php"&gt;Peek-a-boo Widget Generator&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widget" rel="tag"&gt;widget&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116830824506271826?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116830824506271826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116830824506271826&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116830824506271826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116830824506271826'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/peek-boo-widgets.html' title='Peek-a-boo Widgets'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116830474985664350</id><published>2007-01-08T20:00:00.000-05:00</published><updated>2007-01-08T20:05:49.883-05:00</updated><title type='text'>hCard Profile Generator</title><content type='html'>What is the point of getting that profile section in your sidebar marked up as an &lt;a href="http://microformats.org/wiki/hcard"&gt;hCard&lt;/a&gt;?  There are a number of reasons.  Your blog will be compatible with the features of the new &lt;a href="https://addons.mozilla.org/firefox/4106/"&gt;Operator Firefox Extension&lt;/a&gt;.  If you ping &lt;a href="http://pingerati.net/"&gt;Pingerati&lt;/a&gt; (or you're indexed by &lt;a href="http://technorati.com/"&gt;Technorati&lt;/a&gt;), people will be able to find you on the &lt;a href="http://kitchen.technorati.com/contact/search/"&gt;hCard Search Engine&lt;/a&gt;.  There are, obviously, other reasons as well.&lt;br /&gt;&lt;br /&gt;What's that?  Blogger doesn't output this markup by default, and you don't want to learn the codes?  No problem!  Use my new &lt;a href="http://singpolymaplay.ning.com/blogger/hcard_profile_wizard.php"&gt;hCard Profile Wizard&lt;/a&gt; and follow the easy two-step process to include an hCard-compatible profile in your blog!&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/microformats" rel="tag"&gt;microformats&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hcard" rel="tag"&gt;hcard&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116830474985664350?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116830474985664350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116830474985664350&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116830474985664350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116830474985664350'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2007/01/hcard-profile-generator.html' title='hCard Profile Generator'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116688681524733724</id><published>2006-12-23T09:26:00.000-05:00</published><updated>2006-12-23T10:13:35.253-05:00</updated><title type='text'>Hacks by Others</title><content type='html'>I toot my own horn too much.  This blog has more recently been at least 90% my own code.  My readership seems to be going up though (FeedBurner reporting over 60 as of yesterday).&lt;br /&gt;&lt;br /&gt;Either way I think I'll spend this posts talking about some of the more recent developments in the hacker community.  Some of this is new, some of it is old, it is not a comprehensive list.  This is just what I thought was cool recently ;)  These are in no particular order.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stubborn-fanatic.blogspot.com/"&gt;&lt;span style="font-weight: bold;"&gt;Stubborn Fanatic (Vivek Sanghi)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;...has used the new Blogger 'if' tags (as &lt;a href="http://stubborn-fanatic.blogspot.com/2006/11/only-on-comment-label-search-and.html"&gt;he documented them&lt;/a&gt;) to create a hack that &lt;a href="http://stubborn-fanatic.blogspot.com/2006/12/adsense-inside-your-post-only-on-post.html"&gt;shows Google AdSense ads&lt;/a&gt; inside posts on item pages.  My blog is ad-free.  I find ads inside posts the most annoying.  If I ever do ads I promise they will not interfere with the post.  But at least his hack keeps them from cluttering the main page.&lt;/li&gt;&lt;li&gt;...&lt;a href="http://stubborn-fanatic.blogspot.com/2006/12/add-background-colors-to-comments.html"&gt;colourful, colourful comments&lt;/a&gt;!&lt;/li&gt;&lt;li&gt;...&lt;a href="http://stubborn-fanatic.blogspot.com/2006/12/control-your-layout-editors-layout.html"&gt;fix your layout editor&lt;/a&gt; (you have a hacked-beyond-belief template!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;...has created a &lt;a href="http://stubborn-fanatic.blogspot.com/2006/11/recent-post-titles-navigation-menu-auto.html"&gt;horizontal menu bar&lt;/a&gt; of your tags (yawn...) with drop-down lists of the most recent posts (cool!)  Definately a hack to check out, even if you don't install it.&lt;/li&gt;&lt;/ul&gt;&lt;a style="font-weight: bold;" href="http://hoctro.blogspot.com/"&gt;Hoctro&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;...has a &lt;a href="http://hoctro.blogspot.com/2006/12/killer-hack-contents-by-category.html"&gt;wicked table of contents widget&lt;/a&gt; for your blog!&lt;/li&gt;&lt;li&gt;...&lt;a href="http://hoctro.blogspot.com/2006/12/simple-hack-basic-ajax-search-utility.html"&gt;Google AJAX&lt;/a&gt; using their API instead &lt;a href="http://singpolymaplay.ning.com/gajax.php"&gt;of YubNub&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Note to Hoctro : how about a way to browse your blog by date?  The newest entry on the main page and then no interface for date-based archives or a prevous-post link/list.  Nothing.  Annoying.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://hackosphere.blogspot.com/"&gt;Hackosphere (Ramani)&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://hackosphere.blogspot.com/2006/12/now-available-neo-template.html"&gt;Neo template&lt;/a&gt;.  Maxtrix-cool, fast, Web 2.0 extravaganza.  And he's selling it!  (You money-maker you... ;) )&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://purplemoggy.blogspot.com/"&gt;&lt;span style="font-weight: bold;"&gt;PurpleMoggy&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://purplemoggy.blogspot.com/2006/12/comment-author-photos.html"&gt;Instructions for the new Blogger&lt;/a&gt; for my &lt;a href="http://singpolyma-tech.blogspot.com/2006/05/comment-photos-and-highlighting.html"&gt;Comment Photos and Highlighting hack&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://purplemoggy.blogspot.com/2006/12/related-posts.html"&gt;Display related posts by tag&lt;/a&gt;.  Kind of like &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/freshtags-singpolyma-2.html"&gt;FreshTags&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://purplemoggy.blogspot.com/2006/12/pre-made-theme-switching-templates.html"&gt;Premade templates&lt;/a&gt; that let the user switch the colour scheme.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://bloggeruniversity.blogspot.com/"&gt;&lt;span style="font-weight: bold;"&gt;BlogU&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://bloggeruniversity.blogspot.com/2006/12/pretty-blockquotes.html"&gt;Nice styles&lt;/a&gt; for your blockquotes.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://web-messengers.blogspot.com/"&gt;&lt;span style="font-weight: bold;"&gt;iMessengr&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://web-messengers.blogspot.com/2006/12/3-column-rounders-template-modded-for.html"&gt;Nice hacks-included template&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;If you read here at all, you'll know I've been busy too... but you can just read that, I'm not going to make a list of links to myself ;)&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116688681524733724?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116688681524733724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116688681524733724&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116688681524733724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116688681524733724'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/hacks-by-others.html' title='Hacks by Others'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116688378882046576</id><published>2006-12-23T09:05:00.000-05:00</published><updated>2006-12-23T09:23:08.890-05:00</updated><title type='text'>Blogger Hacks Wiki Update</title><content type='html'>Tired of running from &lt;a href="http://singpolyma-tech.blogspot.com/"&gt;my blog&lt;/a&gt; to &lt;a href="http://blogfresh.blogspot.com/"&gt;FreshBlog&lt;/a&gt;, to &lt;a href="http://bloggeratto.blogspot.com/"&gt;Bloggeratto&lt;/a&gt;, to &lt;a href="http://hoctro.blogspot.com/"&gt;Hoctro&lt;/a&gt;, to &lt;a href="http://beautifulbeta.blogspot.com/"&gt;Beautiful Beta&lt;/a&gt;, to &lt;a href="http://hackosphere.blogspot.com/"&gt;Hackosphere&lt;/a&gt;, to &lt;a href="http://purplemoggy.blogspot.com/"&gt;PurpleMoggy&lt;/a&gt;, to others trying to find hacks?  Enter the &lt;a href="http://www.editthis.info/bloggerhacks/"&gt;Blogger Hacks Wiki&lt;/a&gt;.  &lt;a href="http://blogfresh.blogspot.com/2006/06/bloggerhacks-wiki.html"&gt;Launched back in June&lt;/a&gt; with the collaboration of many hackers and bloggers, this Wiki is meant to be the Wikipedia of Blogger Hacks.  Not all of the newest hacks are there, but the general available ones should be.&lt;br /&gt;&lt;br /&gt;Since the Blogger BETA (now the new Blogger) launch, the wiki has been stagnating just a little bit.  Hacks have been rolling out at record rate from many new players.  I myself have been very lax at entering all my new hacks into the Wiki.  One problem was that one could not tell from the wiki if a hack was for the old or new Blogger.&lt;br /&gt;&lt;br /&gt;No longer.  The main 'View Hacks' link now points to the &lt;a href="http://www.editthis.info/bloggerhacks/Category:New_Blogger"&gt;Wiki Category for the New Blogger&lt;/a&gt;, and I have added categories to all the hacks' pages based on platform.  We as hackers need to start adding our hacks back into this database -- everyone will benefit, even us!  (Who wants to duplicate work if there's an easy way to find out someone else already did it?)  There is also a category for hacks which I was unsure what platforms they would work on.  I need help going through and recategorising the pages in the &lt;a href="http://www.editthis.info/bloggerhacks/Category:Platform_Unknown"&gt;Platform Unknown&lt;/a&gt; category.&lt;br /&gt;&lt;br /&gt;I have also done some work on the &lt;a href="http://www.editthis.info/bloggerhacks/Request_Hacks"&gt;Request Hacks&lt;/a&gt; page.  New hack requests should now be added to the top section 'Undiscussed Requests'.  After the community has posted some feedback it gets moved to under the 'Discussed Requests' heading.  Requests which have been solved (ie, had hacks created for them) move to the &lt;a href="http://www.editthis.info/bloggerhacks/Request_Hacks/Solved"&gt;Solved Requests&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt;The Wiki benefits both hackers (easier to find our hacks, find other's hacks, and get ideas for hacks from the requests page) and the general people (find hacks so much easier!)  I would really like to keep it up-to-date and maintained :)&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/wiki" rel="tag"&gt;wiki&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshblog" rel="tag"&gt;freshblog&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116688378882046576?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116688378882046576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116688378882046576&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116688378882046576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116688378882046576'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/blogger-hacks-wiki-update.html' title='Blogger Hacks Wiki Update'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116688255498705706</id><published>2006-12-23T08:53:00.000-05:00</published><updated>2006-12-23T09:04:53.210-05:00</updated><title type='text'>Peek-a-boo and Scrolling</title><content type='html'>With some more inspiration from &lt;a href="http://jordansview.blogspot.com/"&gt;this man&lt;/a&gt;, and some help from &lt;a href="http://www.troll-babygraphics.com/archives/29"&gt;this post&lt;/a&gt; I have created alternate versions of my &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/peek-boo-link-lists.html"&gt;peek-a-boo links lists&lt;/a&gt; and &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-html-widgets.html"&gt;peek-a-boo HTML widgets&lt;/a&gt;.  These ones, when expanded, are a 200-pixel-high box with a scrollbar.  For those extra-long lists ;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Link List (Click Title to Expand)&lt;/b&gt;&lt;br /&gt;Note about installation : if you put this code into your template more than once at a time (for multiple lists) you must change the id='ALIST' (bold in the code) to id='BLIST' on the second list, etc.  This code should go inside the section for your sidebar.  Then, after saving, go to 'Page Elements' to customise its contents.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:widget id='&lt;b&gt;ALIST&lt;/b&gt;' locked='false' title='List Title' type='LinkList'&amp;gt;&lt;br /&gt;&amp;lt;b:includable id='main'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;if(typeof(rnd) == 'undefined') var rnd = '';&lt;br /&gt;rnd = Math.floor(Math.random()*1000);&lt;br /&gt;rnd = 'id-' + rnd;&lt;br /&gt;document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;"&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:if cond='data:title'&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;data:title/&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;\/a&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class='widget-content'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;div id="' + rnd + '" style="display:none;height:200px;overflow:auto;"&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ul&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:loop values='data:links' var='link'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a expr:href='data:link.target'&amp;gt;&amp;lt;data:link.name/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;\/div&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:include name='quickedit'/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/b:includable&amp;gt;&lt;br /&gt;&amp;lt;/b:widget&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Link List (Click [+/-] to Expand)&lt;/b&gt;&lt;br /&gt;Note about installation : if you put this code into your template more than once at a time (for multiple lists) you must change the id='ALIST' (bold in the code) to id='BLIST' on the second list, etc.  This code should go inside the section for your sidebar.  Then, after saving, go to 'Page Elements' to customise its contents.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:widget id='&lt;b&gt;ALIST&lt;/b&gt;' locked='false' title='List Title' type='LinkList'&amp;gt;&lt;br /&gt;&amp;lt;b:includable id='main'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;if(typeof(rnd) == 'undefined') var rnd = '';&lt;br /&gt;rnd = Math.floor(Math.random()*1000);&lt;br /&gt;rnd = 'id-' + rnd;&lt;br /&gt;document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;" style="float:left;margin-right:5px;"&amp;gt;[+/-]&amp;lt;\/a&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:if cond='data:title'&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;data:title/&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class='widget-content'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;div id="' + rnd + '" style="display:none;overflow:auto;height:200px;"&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ul&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:loop values='data:links' var='link'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a expr:href='data:link.target'&amp;gt;&amp;lt;data:link.name/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;\/div&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:include name='quickedit'/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/b:includable&amp;gt;&lt;br /&gt;&amp;lt;/b:widget&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTML (Click Title to Expand)&lt;/b&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt; &lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-and-scrolling.html" type="hidden" /&gt; &lt;input name="widget.title" value="Peek-a-boo HTML (from title)" type="hidden" /&gt; &lt;textarea name="widget.content" style="display: none;"&gt; HTML / JavaScript Here &lt;/textarea&gt; &lt;textarea name="widget.template" style="display: none;"&gt; &amp;lt;b:includable id='main'&amp;gt; &amp;lt;h2 class='title'&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ if(typeof(rnd) == 'undefined') var rnd = ''; rnd = Math.floor(Math.random()*1000); rnd = 'id-' + rnd; document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;"&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:title/&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;\/a&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;/h2&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;div id="' + rnd + '" style="display:none;overflow:auto;height:200px;"&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:content/&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;\/div&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;b:include name='quickedit'/&amp;gt; &amp;lt;/b:includable&amp;gt; &lt;/textarea&gt; &lt;input name="go" value="Peek-a-boo HTML (from title)" type="submit" /&gt; &lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTML (Click [+/-] to Expand)&lt;/b&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt; &lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-and-scrolling.html" type="hidden" /&gt; &lt;input name="widget.title" value="Peek-a-boo HTML ([+/-])" type="hidden" /&gt; &lt;textarea name="widget.content" style="display: none;"&gt; HTML / JavaScript Here &lt;/textarea&gt; &lt;textarea name="widget.template" style="display: none;"&gt; &amp;lt;b:includable id='main'&amp;gt; &amp;lt;h2 class='title'&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ if(typeof(rnd) == 'undefined') var rnd = ''; rnd = Math.floor(Math.random()*1000); rnd = 'id-' + rnd; document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;" style="float:left;margin-right:5px;"&amp;gt;[+/-]&amp;lt;\/a&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:title/&amp;gt; &amp;lt;/h2&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;div id="' + rnd + '" style="display:none;overflow:auto;height:200px;"&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:content/&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;\/div&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;b:include name='quickedit'/&amp;gt; &amp;lt;/b:includable&amp;gt; &lt;/textarea&gt; &lt;input name="go" value="Peek-a-boo HTML ([+/-])" type="submit" /&gt; &lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widget" rel="tag"&gt;widget&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116688255498705706?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116688255498705706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116688255498705706&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116688255498705706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116688255498705706'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/peek-boo-and-scrolling.html' title='Peek-a-boo and Scrolling'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116674324870843759</id><published>2006-12-21T18:11:00.000-05:00</published><updated>2007-01-09T17:06:48.800-05:00</updated><title type='text'>Singpolyma Templates for new Blogger</title><content type='html'>Now having translated most of my hacks to the new Blogger, it is time to unveil the templates.  I myself will likely be switching soon, and my template will be based on the code here published.  The features are similar to the &lt;a href="http://singpolyma-tech.blogspot.com/2006/06/singpolyma-templates.html"&gt;first set&lt;/a&gt;, but optomised for the new Blogger.&lt;br /&gt;&lt;br /&gt;To install one of these templates, just cut-n-paste the code into the 'Edit HTML' section of your blog and save.  Confirm deletion of widgets (Yes, unfortunately, you lose you widgets.  You can make them again).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Templates&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/new-blogger/basic-template.txt"&gt;Basic template&lt;/a&gt; - all the basic features of the original set, including peek-a-boo comments and backlinks.&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/new-blogger/comment-form-template.txt"&gt;Comment Form&lt;/a&gt; - based on basic, my &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/comment-forms-and-blogger-beta.html"&gt;lightbox comment form&lt;/a&gt; added in.&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/new-blogger/comment-photos-highlighting-template.txt"&gt;Comment Photos and Highlighting&lt;/a&gt; - based on basic, my &lt;a href="http://singpolyma-tech.blogspot.com/2006/03/profile-photos-with-comments.html"&gt;comment photos and highlighting&lt;/a&gt; hack (as translated by &lt;a href="http://purplemoggy.blogspot.com/2006/12/comment-author-photos.html"&gt;PurpleMoggy&lt;/a&gt;) added in.&lt;/li&gt; &lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/new-blogger/basic-template-asynch.txt"&gt;Basic Asynchronous&lt;/a&gt; - Same as basic but with &lt;a href="http://singpolyma-tech.blogspot.com/2007/01/asynchronous-peek-boo-comments.html"&gt;asynchronous peek-a-boo comments&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/new-blogger/comment-form-template-asynch.txt"&gt;Comment Form Asynchronous&lt;/a&gt; - Same as comment form but with &lt;a href="http://singpolyma-tech.blogspot.com/2007/01/asynchronous-peek-boo-comments.html"&gt;asynchronous peek-a-boo comments&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/new-blogger/comment-photos-highlighting-template-asynch.txt"&gt;Comment Photos and Highlighting Asynchronous&lt;/a&gt; - Same as comment photos and highlighting but with &lt;a href="http://singpolyma-tech.blogspot.com/2007/01/asynchronous-peek-boo-comments.html"&gt;asynchronous peek-a-boo comments&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/templates" rel="tag"&gt;templates&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/template" rel="tag"&gt;template&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/xoxo" rel="tag"&gt;xoxo&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/microformats" rel="tag"&gt;microformats&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116674324870843759?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116674324870843759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116674324870843759&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116674324870843759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116674324870843759'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/singpolyma-templates-for-new-blogger.html' title='Singpolyma Templates for new Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116674165116079593</id><published>2006-12-21T17:50:00.000-05:00</published><updated>2006-12-21T17:54:11.163-05:00</updated><title type='text'>Update : Peek-a-boo Comments</title><content type='html'>I have updated my &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html"&gt;Peek-a-boo Comments for new Blogger&lt;/a&gt; hack to include some bug fixes, the use of an external script (for performance and readability), and &lt;span style="font-weight: bold;"&gt;comment author links&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/update" rel="tag"&gt;update&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116674165116079593?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116674165116079593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116674165116079593&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116674165116079593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116674165116079593'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/update-peek-boo-comments.html' title='Update : Peek-a-boo Comments'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116672764919386418</id><published>2006-12-21T13:48:00.000-05:00</published><updated>2007-01-10T08:58:41.593-05:00</updated><title type='text'>For New Blogger : Blogger del.icio.us categorising, pinging, and trackback helper</title><content type='html'>&lt;b title="Updated 2007-01-10"&gt;I have made some minor bug fixes to this script, as well as made it so that it saves the trackback URLs when you save a draft.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Some time ago I married Johan's del.icio.us and pinging script with my own trackback script into &lt;a href="http://singpolyma-tech.blogspot.com/2006/07/blogger-delicious-categorising-pinging.html"&gt;one new script&lt;/a&gt;.  That script does not work on the new version of Blogger, and the trackback feature has been glitchy for some time.  Outgoing trackback is still something we need on the new version of Blogger, and the pinging services provided by this script might even be useful on other blogging services.  Del.icio.us posting?  Now that we have labels?  Well, &lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;Freshtags&lt;/a&gt;, &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/blogger-calendar.html"&gt;my calendar widget&lt;/a&gt;, and just tag management in general, will work better if you use del.icio.us.  If you disagree, this part of the script is optional.&lt;br /&gt;&lt;br /&gt;This script does not overwrite the old script.  Running both simultaneously will look dumb on the Blogger Classic interface (there will be duplication), but will not break anything.  If you only run on the new Blogger, please remove the old script (if you have it installed).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://userscripts.org/scripts/source/6842.user.js"&gt;Install the new script&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://userscripts.org/scripts/show/6842"&gt;Userscripts.org entry&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/trackback" rel="tag"&gt;trackback&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/trackbacks" rel="tag"&gt;trackbacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/del.icio.us" rel="tag"&gt;del.icio.us&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/delicious" rel="tag"&gt;delicious&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116672764919386418?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116672764919386418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116672764919386418&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116672764919386418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116672764919386418'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/for-new-blogger-blogger-delicious.html' title='For New Blogger : Blogger del.icio.us categorising, pinging, and trackback helper'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116671243211187761</id><published>2006-12-21T09:25:00.000-05:00</published><updated>2006-12-23T08:50:03.323-05:00</updated><title type='text'>Peek-a-boo HTML Widgets</title><content type='html'>&lt;b title="Update 2006-12-21"&gt;There was a minor styling error in this hack -- I have fixed it now :)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This hack was inspired by a &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/peek-boo-link-lists.html#c116666641698812622"&gt;comment on my peek-a-boo link lists&lt;/a&gt; hack.  It is a one-click install hack of a special HTML widget to your blog.  Edit the template and content of the widget to be whatever you want (such as JavaScript includes for external blogrolls).  The widget will appear either with just a title, or with '[+/-] TITLE'.  Clicking the title (or [+/-], depending on the version you choose) will display all of the HTML/JavaScript contents.&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt; &lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-html-widgets.html" type="hidden" /&gt; &lt;input name="widget.title" value="Peek-a-boo HTML (from title)" type="hidden"&gt; &lt;textarea name="widget.content" style="display: none;"&gt; HTML / JavaScript Here &lt;/textarea&gt; &lt;textarea name="widget.template" style="display: none;"&gt; &amp;lt;b:includable id='main'&amp;gt; &amp;lt;h2 class='title'&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ if(typeof(rnd) == 'undefined') var rnd = ''; rnd = Math.floor(Math.random()*1000); rnd = 'id-' + rnd; document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;"&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:title/&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;\/a&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;/h2&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;div id="' + rnd + '" style="display:none;"&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:content/&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;\/div&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;b:include name='quickedit'/&amp;gt; &amp;lt;/b:includable&amp;gt; &lt;/textarea&gt; &lt;input name="go" value="Peek-a-boo HTML (from title)" type="submit" /&gt; &lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt; &lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/peek-boo-html-widgets.html" type="hidden" /&gt; &lt;input name="widget.title" value="Peek-a-boo HTML ([+/-])" type="hidden"&gt; &lt;textarea name="widget.content" style="display: none;"&gt; HTML / JavaScript Here &lt;/textarea&gt; &lt;textarea name="widget.template" style="display: none;"&gt; &amp;lt;b:includable id='main'&amp;gt; &amp;lt;h2 class='title'&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ if(typeof(rnd) == 'undefined') var rnd = ''; rnd = Math.floor(Math.random()*1000); rnd = 'id-' + rnd; document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;" style="float:left;margin-right:5px;"&amp;gt;[+/-]&amp;lt;\/a&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:title/&amp;gt; &amp;lt;/h2&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;div id="' + rnd + '" style="display:none;"&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;data:content/&amp;gt; &amp;lt;script type='text/javascript'&amp;gt; /* &amp;lt;![CDATA[ */ document.write('&amp;lt;\/div&amp;gt;'); /* ]]&amp;gt; */ &amp;lt;/script&amp;gt; &amp;lt;b:include name='quickedit'/&amp;gt; &amp;lt;/b:includable&amp;gt; &lt;/textarea&gt; &lt;input name="go" value="Peek-a-boo HTML ([+/-])" type="submit" /&gt; &lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widget" rel="tag"&gt;widget&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116671243211187761?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116671243211187761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116671243211187761&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116671243211187761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116671243211187761'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/peek-boo-html-widgets.html' title='Peek-a-boo HTML Widgets'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116665541607586522</id><published>2006-12-20T17:38:00.000-05:00</published><updated>2006-12-21T09:16:27.650-05:00</updated><title type='text'>Die index.html!</title><content type='html'>It has annoyed me for some time that the default 'Home' links on the new Blogger (which I will continue to call Blogger BETA, at least for today, don't worry, I know that's officially wrong) go to /index.html.  Some internal links ('View Blog' from the dashboard) do not, which is worse.  Why have a URL longer than it need be?  Why have multiple URLs available that people can bookmark?  Doesn't that just confuse things.&lt;br /&gt;&lt;br /&gt;This hack is very simple and fixes the problem.&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt;  &lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/die-indexhtml.html" type="hidden" /&gt; &lt;input name="widget.title" value="" type="hidden" /&gt; &lt;textarea name="widget.content" style="display:none;"&gt; &amp;lt;script type='text/javascript'&amp;gt; if(window.location.href.match(/.*?index.html/)) window.location = window.location.href.match(/(.*)?index.html/)[1]; &amp;lt;/script&amp;gt; &lt;/textarea&gt;  &lt;textarea name="widget.template" style="display: none;"&gt;  &amp;lt;b:includable id='main'&amp;gt; &amp;lt;div style="display:none;"&amp;gt; &amp;lt;data:content/&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/b:includable&amp;gt;  &lt;/textarea&gt;  &lt;input name="go" value="Click Here to Fix the Problem" type="submit"&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt;  &lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/die-indexhtml.html" type="hidden" /&gt; &lt;input name="widget.title" value="Kill index.html" type="hidden" /&gt; &lt;textarea name="widget.content" style="display:none;"&gt; &amp;lt;form method="post" action="http://beta.blogger.com/add-widget"&amp;gt;  &amp;lt;input name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/12/die-indexhtml.html" type="hidden" /&amp;gt; &amp;lt;input name="widget.title" value="" type="hidden" /&amp;gt; &amp;lt;textarea name="widget.content" style="display:none;"&amp;gt; &amp;amp;lt;script type='text/javascript'&amp;amp;gt; if(window.location.href.match(/.*?index.html/)) window.location = window.location.href.match(/(.*)?index.html/)[1]; &amp;amp;lt;/script&amp;amp;gt; &amp;lt;/textarea&amp;gt;  &amp;lt;textarea name="widget.template" style="display: none;"&amp;gt;  &amp;amp;lt;div style="display:none;"&amp;amp;gt; &amp;amp;lt;data:content/&amp;amp;gt; &amp;amp;lt;/div&amp;amp;gt;  &amp;lt;/textarea&amp;gt;  &amp;lt;input name="go" value="Auto-redirect from index.html" type="submit"&amp;gt;&amp;lt;/form&amp;gt; &lt;/textarea&gt;  &lt;textarea name="widget.template" style="display: none;"&gt; &amp;lt;h2 class="sidebar-title"&amp;gt;&amp;lt;data:title/&amp;gt;&amp;lt;/h2&amp;gt; &amp;lt;data:content/&amp;gt; &lt;/textarea&gt;  &lt;input name="go" value="Click Here to Help Others Fix the Problem" type="submit"&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116665541607586522?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116665541607586522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116665541607586522&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116665541607586522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116665541607586522'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/die-indexhtml.html' title='Die index.html!'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116665296030227922</id><published>2006-12-20T16:50:00.000-05:00</published><updated>2007-01-16T15:06:44.576-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Comment Forms and Blogger BETA</title><content type='html'>The &lt;a href="http://singpolyma-tech.blogspot.com/2006/06/asynchronous-comment-form.html"&gt;old inline comment form&lt;/a&gt; is &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/inline-comment-form-for-beta-news.html"&gt;dead to Blogger BETA&lt;/a&gt; (or, should I say, &lt;a href="http://buzz.blogger.com/2006/12/new-version-of-blogger.html"&gt;the new Blogger&lt;/a&gt;).  Deader than ever, the form now does absolutely nothing.&lt;br /&gt;&lt;br /&gt;Have no fear -- there is good news!&lt;br /&gt;&lt;br /&gt;Since we must use Blogger's ugly comment page in some form (because of their new security token system), I wanted to include this in our pages somehow.  I thought of making it inline, but discarded this idea because it would look rather dumb (since we can't style that page) and would be displaying comments twice on the page, etc.&lt;br /&gt;&lt;br /&gt;Enter &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/lightbox-gone-wild-for-blogger.html"&gt;lightbox&lt;/a&gt;.  The following hack gives you a nice, integrated comment form that still appears somewhat separated (so visitors know you didn't create that ugliness!).  Visitors can close the 'popup' without commenting, but if they comment it will close and reload the page automatically.  (See a &lt;a href="http://singpolyma-beta.blogspot.com/"&gt;demo on my test blog&lt;/a&gt;, but I can't guarantee it will be there forever.  My test blog is for testing and is therefore unpredictable.)&lt;br /&gt;&lt;br /&gt;To install the hack, follow these steps:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt; &lt;li&gt;Go to the 'Template' tab and select 'Edit HTML'.&lt;/li&gt; &lt;li&gt;Check the 'Expand Widget Templates' box.&lt;/li&gt; &lt;li&gt;Add this code right before your &amp;lt;/head&amp;gt; tag (if you have my &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/blogger-calendar.html"&gt;calendar hack&lt;/a&gt;, or any other &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/lightbox-gone-wild-for-blogger.html"&gt;Lightbox Gone Wild for Blogger&lt;/a&gt; hack, installed, this step in unnecessary):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script src='http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;amp;id=1093361' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;amp;id=2655847' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;link href='http://singpolyma.googlepages.com/lightbox.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Find this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'&amp;gt;&amp;lt;data:postCommentMsg/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and replace it with this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;a class='lbOn' expr:href='"#comment-form-" + data:post.id'&amp;gt;&amp;lt;data:postCommentMsg/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;If you do not use &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html"&gt;peek-a-boo&lt;/a&gt; comments or have a footer link pointing to the inline comments section (if you don't know, you don't) then find this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and replace it with this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class='comment-link lbOn' expr:href='"#comment-form-" + data:post.id'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Find this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;b:loop values='data:posts' var='post'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;b:if cond='data:post.dateHeader'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;h2 class='date-header'&amp;gt;&amp;lt;data:post.dateHeader/&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And directly after it put this code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; var isLoad&amp;lt;data:post.id/&amp;gt; = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; function checkDeactivate&amp;lt;data:post.id/&amp;gt;() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if(isLoad&amp;lt;data:post.id/&amp;gt; &amp;amp;gt; 1) {&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; document.getElementById('lbContent').innerHTML = '&amp;lt;div style="text-align:center;width:100%;font-size:16pt;font-family:sans-serif;"&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Reloading...&amp;lt;/div&amp;gt;';&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; window.location.reload();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }//end if isLoad&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; isLoad&amp;lt;data:post.id/&amp;gt;++; &lt;br /&gt;&amp;nbsp;&amp;nbsp; }//end function checkDeactivate&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;div expr:id='"comment-form-" + data:post.id' style='display:none;'&amp;gt;&lt;br /&gt;&amp;lt;iframe expr:onload='"checkDeactivate" + data:post.id + "();"' expr:src='data:post.addCommentUrl + "&amp;amp;amp;amp;isPopup=true#commentForm"' frameborder='0' style='border-width:0px;width:100%;height:380px;'/&amp;gt;&lt;br /&gt;&amp;lt;div style='text-align: right;'&amp;gt;&amp;lt;a class='lbAction' href='#' rel='deactivate'&amp;gt;&amp;lt;img alt='' src='http://www.ning.com/xnstatic/icn/cross.gif' style='display: inline; width: 10px; height: 10px;'/&amp;gt; Close&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Save your template&lt;/li&gt; &lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116665296030227922?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116665296030227922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116665296030227922&amp;isPopup=true' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116665296030227922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116665296030227922'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/comment-forms-and-blogger-beta.html' title='Comment Forms and Blogger BETA'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116664099309543613</id><published>2006-12-20T13:53:00.000-05:00</published><updated>2006-12-20T13:56:33.096-05:00</updated><title type='text'>New(?) Splog Format</title><content type='html'>I discovered a new-to-me &lt;a href="http://en.wikipedia.org/wiki/Splog"&gt;Splog&lt;/a&gt; format today.  See &lt;a href="http://blogsearch.google.com/blogsearch?hl=en&amp;q=singpolyma&amp;amp;ie=UTF-8&amp;scoring=d"&gt;these search results&lt;/a&gt;?  See the acne scar removal articles?  These Splogs are rel=nofollow linking to me with my name in order to make their SPAM show up in other's search results... that's low...&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/spam" rel="tag"&gt;spam&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/splog" rel="tag"&gt;splog&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/search" rel="tag"&gt;search&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116664099309543613?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116664099309543613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116664099309543613&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116664099309543613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116664099309543613'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/new-splog-format.html' title='New(?) Splog Format'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116655590197938236</id><published>2006-12-19T13:46:00.000-05:00</published><updated>2006-12-21T19:28:30.716-05:00</updated><title type='text'>Blogger Calendar</title><content type='html'>&lt;b title="Update 2006-12-21"&gt;If you don't use del.icio.us and want more posts showing up in your calendar try appending ?max-results=999 to your feed URL.  So it will look like:&lt;br /&gt;http://&lt;span style="color:red;"&gt;yourblog&lt;/span&gt;.blogspot.com/feeds/posts/full?max-results=999&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So you're not satisfied with just an archive list?  You've perhaps switched to BETA and even the hierarchal menu just isn't cool enough?  Well, you've come to the right place.&lt;br /&gt;&lt;br /&gt;This hack allows you to generate a calendar of your posts for people to browse &lt;span style="font-style: italic;"&gt;inline in your blog&lt;/span&gt;!  This hack works with either Blogger Classic &lt;span style="font-style: italic;"&gt;or&lt;/span&gt; Blogger BETA and, best of all, is one of my easiest hacks to install yet!&lt;br /&gt;&lt;br /&gt;Just go to &lt;a href="http://singpolymaplay.ning.com/blogger/calendarWidget.php"&gt;the setup page&lt;/a&gt;.  Enter your feed URL (do NOT use a FeedBurner feed, it tends to mess things up) and your blog title.  Click generate.  Follow the instructions.&lt;br /&gt;&lt;br /&gt;Now, if you use mine (click the calendar next to the archives box in my sidebar) you'll note that I have posts in the calendar going all the way back to forever it seems.  Your probably only has this month's.  Well, that is just one extra hack, but there's a catch -- you have to be one of those who posts all blog entries to del.icio.us (I know, the BETA people no longer have a GM for that, I'm working on it.)&lt;br /&gt;&lt;br /&gt;Go to the &lt;a href="http://singpolymaplay.ning.com/blogger/full_del_rss.php"&gt;full del.icio.us feed setup page&lt;/a&gt; (I won't steal your password!), enter your del.icio.us username and password in the upper form.  Click Go.  Go back to the setup page.  Enter your username (and optional anchor tag) in the lower form.  Click Go.  Use the contents of your address bar as your feed URL for the calendar instead of your normal feed.&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-12-20"&gt;A &lt;a href="http://ggpi.blogspot.com/2006/12/blogger-30_20.html"&gt;translation&lt;/a&gt; of this page exists.  Not sure on the language of that page, but thought I'd give them a link.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/calendar" rel="tag"&gt;calendar&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/archives" rel="tag"&gt;archives&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116655590197938236?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116655590197938236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116655590197938236&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116655590197938236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116655590197938236'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/blogger-calendar.html' title='Blogger Calendar'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116655217323251878</id><published>2006-12-19T13:09:00.000-05:00</published><updated>2006-12-20T15:56:09.716-05:00</updated><title type='text'>Lightbox Gone Wild for Blogger</title><content type='html'>&lt;a href="http://particletree.com/features/lightbox-gone-wild"&gt;Lightbox Gone Wild&lt;/a&gt; is a JavaScript tool used to overlay other pages on the current page using AJAX.  It looks nice and is really user-friendly.  One problem : we on Blogger cannot create a static HTML page on the same domain to be included via AJAX.&lt;br /&gt;&lt;br /&gt;So I have modified the code slightly.  My version will include snippets from your local page instead.  Just include these lines in your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=1093361"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=2655847"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="http://singpolyma.googlepages.com/lightbox.css" /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Then, insert the HTML you want to be displayed in the lightbox like so:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;div id="&lt;span style="color:red;"&gt;lightbox-id&lt;/span&gt;" style="display:none;"&amp;gt;&lt;br /&gt;&lt;span style="color:red;"&gt;HTML HERE&lt;/span&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Make sure you have a link similar to this in the code to be inserted so that the lightbox can be closed again:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;a href="#" class="lbAction" rel="deactivate"&amp;gt;Close&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Then, insert a link to open the lightbox, like so:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;a class="lbOn" href="#&lt;span style="color:red;"&gt;lightbox-id&lt;/span&gt;"&amp;gt;Open Lightbox&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To see an example, click the calendar icon next to the archives in my sidebar.&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-12-20"&gt;Not sure why I'm linking to translations today.  I usually don't.  They show up in the backlinks, and saying in English 'here's a translation' doesn't make loads of sense.  They deserve a link though.  &lt;a href="http://sunr.blogspot.com/2006/12/bloggerlightbox-gone-wild.html"&gt;A translation of this post&lt;/a&gt;.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/lightbox" rel="tag"&gt;lightbox&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116655217323251878?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116655217323251878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116655217323251878&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116655217323251878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116655217323251878'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/lightbox-gone-wild-for-blogger.html' title='Lightbox Gone Wild for Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116654757395452674</id><published>2006-12-19T11:52:00.000-05:00</published><updated>2006-12-19T11:59:33.956-05:00</updated><title type='text'>BloggerBubble</title><content type='html'>&lt;a href="http://andufo.com/"&gt;Andrés Santos&lt;/a&gt; wrote &lt;a href="http://andufo.com/proyectos/bloggerbubble"&gt;a nice hack for Blogger&lt;/a&gt; that used &lt;a href="http://www.websnapr.com/"&gt;Websnapr&lt;/a&gt; to display pop-up thumbnails of links in your blog posts.  Just install one line of code and you're good to go.&lt;br /&gt;&lt;br /&gt;Problem : It didn't work with my Blogger template.&lt;br /&gt;&lt;br /&gt;And so I did what I often do -- hacked his hack!  If his code won't work for you, insert this code just before the &amp;lt;/head&amp;gt; tag in your template instead:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=2654582" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This should work with most Blogger templates (write me if it won't with yours and I'll update it).  Also, it will work with any &lt;a href="http://microformats.org/wiki/hatom"&gt;hAtom&lt;/a&gt;-based template.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jscripts.ning.com/view.php?id=2654582"&gt;JScripts Entry&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116654757395452674?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116654757395452674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116654757395452674&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116654757395452674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116654757395452674'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/12/bloggerbubble.html' title='BloggerBubble'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116483675597689510</id><published>2006-11-29T16:40:00.000-05:00</published><updated>2006-11-29T16:49:44.420-05:00</updated><title type='text'>To the Confused</title><content type='html'>Dear Confused Reader,&lt;br /&gt;&lt;br /&gt;You are reading this because much of the Geekery to come out of the Singpolyma - Technical Blog confuses you.  The code is far beyond your comprehension, and sometimes so are the instructions.  You are the one who emails me your template to hack, instead of hacking it yourself.  That's OK, and I'm willing to help, but in case you wanted to try doing a little bit more yourself....&lt;br /&gt;&lt;br /&gt;Hoctro, another brilliant hacker, has written a sort of 101 (or is that 411?) post on hacking your blog, or at least following the instructions to do so.  Complete with screenshots illustrating his points, this article will help you understand not only my writings, but those of other Blogger Hackers, forever.&lt;br /&gt;&lt;br /&gt;Yours,&lt;br /&gt;&lt;br /&gt;Singpolyma&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hoctro.blogspot.com/2006/11/hacking-technique-how-to-modify-beta.html"&gt;Read Hoctro's Post (Blogger BETA Only)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hoctro.blogspot.com/search/label/Learning%20Template%20Code?"&gt;Other template-related posts by Hoctro&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/introduction" rel="tag"&gt;introduction&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116483675597689510?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116483675597689510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116483675597689510&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116483675597689510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116483675597689510'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/to-confused.html' title='To the Confused'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116483498633151367</id><published>2006-11-29T16:14:00.000-05:00</published><updated>2006-11-29T16:16:26.333-05:00</updated><title type='text'>YubNub LocationBar 0.17</title><content type='html'>I have updated my &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/yubnub-locationbar.html"&gt;YubNub Firefox Extension&lt;/a&gt; to fix some URL resolution bugs.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/firefox" rel="tag"&gt;firefox&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/extensions" rel="tag"&gt;extensions&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116483498633151367?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116483498633151367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116483498633151367&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116483498633151367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116483498633151367'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/yubnub-locationbar-017.html' title='YubNub LocationBar 0.17'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116483425847726956</id><published>2006-11-29T15:56:00.000-05:00</published><updated>2006-12-14T09:05:23.226-05:00</updated><title type='text'>Peek-a-boo Link Lists</title><content type='html'>&lt;b title="Update 2006-12-14"&gt;I have fixed a bug that caused multiple instances of this hack to interact with each other and some other IE problems.  I have tested it in both Firefox and IE.  One extra note about installation - if you put this code into your template more than once at a time (for multiple lists) you must change the id="ALIST" (bold in the code) to id="BLIST" on the second list, etc.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I received the request for this hack via email, and since I thought it shouldn't be too hard and could prove very useful, I went at it.  Plus I actually had some time today to use on this kind of thing ;)  To get a link list in Blogger BETA that has a title you can click to show/hide the list, add this code to your template:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:widget &lt;b&gt;id='ALIST'&lt;/b&gt; locked='false' title='List Title' type='LinkList'&amp;gt;&lt;br /&gt;&amp;lt;b:includable id='main'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;if(typeof(rnd) == 'undefined') var rnd = '';&lt;br /&gt;rnd = Math.floor(Math.random()*1000);&lt;br /&gt;rnd = 'id-' + rnd;&lt;br /&gt;document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;"&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:if cond='data:title'&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;data:title/&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;\/a&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class='widget-content'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;div id="' + rnd + '" style="display:none;"&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;ul&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:loop values='data:links' var='link'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;li&amp;gt;&amp;lt;a expr:href='data:link.target'&amp;gt;&amp;lt;data:link.name/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;\/div&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;b:include name='quickedit'/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;  &amp;lt;/b:includable&amp;gt;&lt;br /&gt;&amp;lt;/b:widget&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Then go to the 'Page Elements' area to customise the title and links in the widget.&lt;br /&gt;&lt;br /&gt;The following code is identical except that it leaves the title of the widget alone and adds instead a little [+/-] for show/hide functionality:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:widget &lt;b&gt;id='ALIST'&lt;/b&gt; locked='false' title='List Title' type='LinkList'&amp;gt;&lt;br /&gt;&amp;lt;b:includable id='main'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;if(typeof(rnd) == 'undefined') var rnd = '';&lt;br /&gt;rnd = Math.floor(Math.random()*1000);&lt;br /&gt;rnd = 'id-' + rnd;&lt;br /&gt;document.write('&amp;lt;a href="#" onclick="tmp = document.getElementById(&amp;amp;quot;' + rnd + '&amp;amp;quot;); tmp.style.display = (tmp.style.display == &amp;amp;quot;none&amp;amp;quot;) ? &amp;amp;quot;block&amp;amp;quot; : &amp;amp;quot;none&amp;amp;quot;; return false;" style="float:left;margin-right:5px;"&amp;gt;[+/-]&amp;lt;\/a&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:if cond='data:title'&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;data:title/&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class='widget-content'&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;div id="' + rnd + '" style="display:none;"&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;ul&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:loop values='data:links' var='link'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;li&amp;gt;&amp;lt;a expr:href='data:link.target'&amp;gt;&amp;lt;data:link.name/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;document.write('&amp;lt;\/div&amp;gt;');&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;b:include name='quickedit'/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;  &amp;lt;/b:includable&amp;gt;&lt;br /&gt;&amp;lt;/b:widget&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Why is this not a &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/new-widget-system.html"&gt;one-click widget&lt;/a&gt;?  Blogger does not yet allow us to define alternate widget types (such as link list) in one click.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116483425847726956?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116483425847726956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116483425847726956&amp;isPopup=true' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116483425847726956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116483425847726956'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/peek-boo-link-lists.html' title='Peek-a-boo Link Lists'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116474862591335001</id><published>2006-11-28T15:44:00.000-05:00</published><updated>2006-11-28T16:17:05.940-05:00</updated><title type='text'>WebOS</title><content type='html'>Whoever first came up with the idea of WebOS was a genius.  Somehow I doubt it started with &lt;a href="http://blog.topix.net/archives/000016.html"&gt;Google OS&lt;/a&gt;, but my own interest certainly started there.&lt;br /&gt;&lt;span class="on" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;br /&gt;Soon there was &lt;a href="http://yubnub.org/"&gt;YubNub&lt;/a&gt;, the command line for the web.  A flexible, open command-line system for the Internet that is practical as well as cool.  A &lt;a href="http://yubnub.org/kernel/man?args=scrape"&gt;backbone&lt;/a&gt; kind of application while also being immediately &lt;a href="http://yubnub.org/kernel/man?args=g"&gt;useful&lt;/a&gt; to users.&lt;br /&gt;&lt;br /&gt;Webtops started popping up, such as those provided by &lt;a href="http://30boxes.com/"&gt;30boxes&lt;/a&gt; and &lt;a href="http://goowy.com/"&gt;Goowy&lt;/a&gt;.  They allow you to integrate the major services you use into one convenient location, sort of like an extension of the idea behind &lt;a href="http://www.google.com/ig"&gt;Google IG&lt;/a&gt;, &lt;a href="http://boxtheweb.4x2.net/"&gt;BoxtheWeb&lt;/a&gt;, and others.&lt;br /&gt;&lt;br /&gt;Now we have at least two genuine WebOS: &lt;a href="http://www.youos.com/"&gt;YouOS&lt;/a&gt; and &lt;a href="http://eyeos.org/"&gt;EyeOS&lt;/a&gt;.  Both provide their own 'standard' way to code apps, with APIs etc to help in GUI and back end building.  YouOS allows developers to code and share apps on the public server, as well as allowing users to install these apps.  EyeOS requires you set up your own server to install apps, but allows apps to be distributed in an offline format.  There are distinct pros and cons to both, and to the APIs provided by both.&lt;br /&gt;&lt;br /&gt;WebOS is where it's at, with YubNub, YouOS, and EyeOS.  Each has its own strengths and weaknesses.  However, if we want to see true Web 2.0 here we must not repeat the mistake that was made with offline OS.  WebOS communities/developers &lt;span style="font-style: italic;"&gt;must&lt;/span&gt; work together for standards and interoperability, etc.  Each will be so much better if it works with the strength of the others.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/web2.0" rel="tag"&gt;web2.0&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/web" rel="tag"&gt;web&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/website" rel="tag"&gt;website&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/youos" rel="tag"&gt;youos&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/eyeos" rel="tag"&gt;eyeos&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/standards" rel="tag"&gt;standards&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116474862591335001?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116474862591335001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116474862591335001&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116474862591335001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116474862591335001'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/webos.html' title='WebOS'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116463390850043098</id><published>2006-11-27T08:19:00.000-05:00</published><updated>2006-11-27T08:25:08.573-05:00</updated><title type='text'>Peek-a-boo Update</title><content type='html'>My &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html"&gt;peek-a-boo comments for BETA&lt;/a&gt; hack has been updated to use the new &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/json-from-google.html"&gt;native JSONP&lt;/a&gt;.  It should run faster now and the IE bug some were reporting should be gone.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comment" rel="tag"&gt;comment&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/update" rel="tag"&gt;update&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116463390850043098?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116463390850043098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116463390850043098&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116463390850043098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116463390850043098'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/peek-boo-update.html' title='Peek-a-boo Update'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116431954296225736</id><published>2006-11-23T16:54:00.000-05:00</published><updated>2006-12-21T14:47:29.786-05:00</updated><title type='text'>JSON from Google</title><content type='html'>&lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt; (and particularly &lt;a href="http://ajaxian.com/archives/jsonp-json-with-padding"&gt;JSONP&lt;/a&gt;) is one of the most useful data formats for hackers.  For quite some time we have had to do all sorts of hackish things to transform the data available from Google services to JSON(P).  No longer.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://googledataapis.blogspot.com/2006/11/calling-all-web-hackers-json-support.html"&gt;Blogger, Google Calendar, and Google Base now all support JSONP&lt;/a&gt;.  &lt;a href="http://buzz.blogger.com/2006/11/json-on-new-blogger.html"&gt;This was announced on Blogger Buzz&lt;/a&gt; and is perhaps one of the greatest advances in hackability in (at least recent) Google history.&lt;br /&gt;&lt;br /&gt;On top of this, &lt;a href="http://www.searchmash.com/"&gt;SearchMash&lt;/a&gt; (a Google susiduary) now offers &lt;a href="http://googlesystem.blogspot.com/2006/11/secret-google-json-api.html"&gt;JSON feeds of Google's Web, Images, Blog, and Video searches&lt;/a&gt;.  For JSONP a proxy service is required, but this still allows for getting Google's data out where we can hack with it.&lt;br /&gt;&lt;br /&gt;One thing that this will mean very soon is an upgrade to &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html"&gt;peek-a-boo for BETA&lt;/a&gt; that makes use of this and will definately be faster.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/json" rel="tag"&gt;json&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/jsonp" rel="tag"&gt;jsonp&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/google" rel="tag"&gt;google&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/syndication" rel="tag"&gt;syndication&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116431954296225736?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116431954296225736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116431954296225736&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116431954296225736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116431954296225736'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/json-from-google.html' title='JSON from Google'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116368714087217938</id><published>2006-11-16T09:15:00.000-05:00</published><updated>2006-12-20T17:43:43.493-05:00</updated><title type='text'>Feed Links Widget</title><content type='html'>As promised, here is the revised version of my &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/feed-links-in-beta.html"&gt;Feed Links Widget&lt;/a&gt;.  Just click the button and follow the wizard!&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt;  &lt;input type="hidden" name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/11/feed-links-widget.html" /&gt; &lt;input type="hidden" name="widget.title" value="Syndication"/&gt; &lt;textarea name="widget.content" style="display:none;"&gt;  &amp;lt;ul class='xoxo'&amp;gt; &amp;lt;li&amp;gt;&amp;lt;img src=&amp;quot;http://photos1.blogger.com/blogger/6537/1341/1600/feed-icon-12x12.jpg&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt; &amp;lt;a href=&amp;quot;/feeds/posts/default?alt=rss&amp;quot; rel=&amp;quot;alternate&amp;quot;&amp;gt;Post Feed&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;     &amp;lt;li&amp;gt;&amp;lt;img src=&amp;quot;http://photos1.blogger.com/blogger/6537/1341/1600/feed-icon-12x12.jpg&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt; &amp;lt;a href=&amp;quot;/feeds/comments/default?alt=rss&amp;quot; rel=&amp;quot;alternate&amp;quot;&amp;gt;Comment Feed&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;  &amp;lt;/ul&amp;gt;&lt;/textarea&gt;  &lt;textarea name="widget.template" style="display:none;"&gt;  &amp;lt;h2 class=&amp;quot;sidebar-title&amp;quot;&amp;gt;&amp;lt;data:title/&amp;gt;&amp;lt;/h2&amp;gt;  &amp;lt;data:content/&amp;gt;  &lt;/textarea&gt;  &lt;input type="submit" name="go" value="Get Feed Links Widget"/&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Some Notes&lt;/b&gt;&lt;br /&gt;Due to circumstances beyond my control, if Blogger changes the URL format for feeds this hack will break (and I will, of course, speed to fix it ;) ).&lt;br /&gt;&lt;br /&gt;If you want to make it easier for others to add this hack, clicking the button below will add the button above to your sidebar.&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt;  &lt;input type="hidden" name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/10/feed-links-in-beta.html" /&gt;       &lt;input type="hidden" name="widget.title" value="Get Feed Links Widget"/&gt;  &lt;textarea name="widget.content" style="display:none;"&gt;&amp;lt;form method="post" action="http://beta.blogger.com/add-widget"&amp;gt;  &amp;lt;input type="hidden" name="infoUrl" value="http://singpolyma-tech.blogspot.com/2006/11/feed-links-widget.html" /&amp;gt; &amp;lt;input type="hidden" name="widget.title" value="Syndication"/&amp;gt; &amp;lt;textarea name="widget.content" style="display:none;"&amp;gt;  &amp;amp;lt;ul class='xoxo'&amp;amp;gt; &amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;img src=&amp;amp;quot;http://photos1.blogger.com/blogger/6537/1341/1600/feed-icon-12x12.jpg&amp;amp;quot; alt=&amp;amp;quot;&amp;amp;quot; /&amp;amp;gt; &amp;amp;lt;a href=&amp;amp;quot;/feeds/posts/default?alt=rss&amp;amp;quot; rel=&amp;amp;quot;alternate&amp;amp;quot;&amp;amp;gt;Post Feed&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;     &amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;img src=&amp;amp;quot;http://photos1.blogger.com/blogger/6537/1341/1600/feed-icon-12x12.jpg&amp;amp;quot; alt=&amp;amp;quot;&amp;amp;quot; /&amp;amp;gt; &amp;amp;lt;a href=&amp;amp;quot;/feeds/comments/default?alt=rss&amp;amp;quot; rel=&amp;amp;quot;alternate&amp;amp;quot;&amp;amp;gt;Comment Feed&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;/li&amp;amp;gt;  &amp;amp;lt;/ul&amp;amp;gt;&amp;lt;/textarea&amp;gt;  &amp;lt;textarea name="widget.template" style="display:none;"&amp;gt;  &amp;amp;lt;h2 class=&amp;amp;quot;sidebar-title&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;data:title/&amp;amp;gt;&amp;amp;lt;/h2&amp;amp;gt;  &amp;amp;lt;data:content/&amp;amp;gt;  &amp;lt;/textarea&amp;gt;  &amp;lt;input type="submit" name="go" value="Get Feed Links Widget"/&amp;gt;&amp;lt;/form&amp;gt;  &lt;/textarea&gt;  &lt;textarea name="widget.template" style="display:none;"&gt;  &amp;lt;data:content/&amp;gt;  &lt;/textarea&gt;  &lt;input type="submit" name="go" value="Help Others Get Feed Links Widget"/&gt;&lt;/form&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widget" rel="tag"&gt;widget&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widgets" rel="tag"&gt;widgets&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116368714087217938?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116368714087217938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116368714087217938&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116368714087217938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116368714087217938'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/feed-links-widget.html' title='Feed Links Widget'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116368648259535919</id><published>2006-11-16T09:06:00.000-05:00</published><updated>2006-11-16T09:14:42.623-05:00</updated><title type='text'>New Widget System</title><content type='html'>&lt;a href="http://bloggeratto.blogspot.com/2006/11/blogger-v30-one-click-widget.html"&gt;Bloggeratto&lt;/a&gt; and &lt;a href="http://phydeaux3.blogspot.com/2006/11/omg-puppies.html"&gt;phydeaux3&lt;/a&gt; (and likely others) have blogged about a &lt;a href="http://help.blogger.com/bin/answer.py?answer=53219&amp;topic=9083"&gt;new one-click widget adding system for Blogger&lt;/a&gt;.  This system would allow us to create widgets and then just put a button in our blog post that, when clicked, places all the correct code into the user's template.  This is a huge step for ease-of-use, and could also be for prorogation (have users add a widget-adding widget to advertise instead of just linking back, etc.)  I've taken my look and the system is brilliant.  There is, however, one snag.&lt;br /&gt;&lt;br /&gt;You cannot define your widget to be of any type, it is simply in the &lt;a href="http://help.blogger.com/bin/answer.py?answer=47270#global"&gt;global namespace&lt;/a&gt;.  This means that, for example, it cannot be done with my &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/feed-links-in-beta.html"&gt;Feeds Widget&lt;/a&gt;.  Why?  Some genius in Blogger decided to put that data in the &lt;span style="font-style: italic;"&gt;post&lt;/span&gt; namespace, and thus make it inaccessible to this new system.&lt;br /&gt;&lt;br /&gt;We won't let a little thing like that spoil our fun now though will we?  Brace yourselves for a hack of the mod system!  Coming very soon - one click feeds widget (with comments feed link too!)&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widget" rel="tag"&gt;widget&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116368648259535919?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116368648259535919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116368648259535919&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116368648259535919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116368648259535919'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/new-widget-system.html' title='New Widget System'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116290928060865760</id><published>2006-11-07T09:07:00.000-05:00</published><updated>2006-11-07T09:21:20.643-05:00</updated><title type='text'>Inline Comment Form for BETA News</title><content type='html'>If there is one hack I get requests for more than any other it is this.  My inline comments form on Blogger BETA.  It was my first ever hack (before I had even fully moved to Blogger), and probably still my favourite as the most useful.  I recently &lt;a href="http://singpolyma-tech.blogspot.com/2006/10/regarding-inline-comment-forms-and.html"&gt;blogged somewhat optimistically&lt;/a&gt; about my progress, which only increased the demands.  I regret to inform you that I have hit a wall.  Perhaps not unsurmountable, but a huge one.&lt;br /&gt;&lt;br /&gt;The security token scraping did not work.&lt;br /&gt;&lt;br /&gt;I'm not entirely surprised.  After all, Blogger added the security token code to prevent people from doing just what I am attempting.  I cannot say that I fully understand how the whole technology works, or why my attempts to circumvent it have failed, I only know that they have.  It may take help from Blogger themselves (bah!) to get this working.&lt;br /&gt;&lt;br /&gt;For the community : to those who wish to put their heads with mine on this problem.  The code for this hack on BETA, such as it is for as far as I've got, can be found at the following URLs:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;id=1338954"&gt;http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;id=1338954&lt;/a&gt;&lt;br /&gt;&lt;a href="http://singpolymaplay.ning.com/blogger/blogger_beta_comment_form.txt"&gt;http://singpolymaplay.ning.com/blogger/blogger_beta_comment_form.txt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ning.com/view-source.html?view=app&amp;amp;op=viewFile&amp;amp;appUrl=singpolymaplay&amp;amp;fileName=commentFormData.php&amp;amp;currentDir=%2fblogger"&gt;http://www.ning.com/view-source.html?view=app&amp;amp;op=viewFile&amp;amp;appUrl=singpolymaplay&amp;amp;fileName=commentFormData.php&amp;amp;currentDir=%2fblogger&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As a side note : installing this hack as is actually does sort of work.  But it errors every time and requires that the user push the button on the inline form, and then on the other form.  (Similar to what is happening here since I was forced by mega-spammers to turn on word verification...)&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116290928060865760?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116290928060865760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116290928060865760&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116290928060865760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116290928060865760'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/11/inline-comment-form-for-beta-news.html' title='Inline Comment Form for BETA News'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116232286805373480</id><published>2006-10-31T14:20:00.000-05:00</published><updated>2006-10-31T14:27:48.056-05:00</updated><title type='text'>YubNub LocationBar 0.16</title><content type='html'>Version 0.16 of my &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/yubnub-locationbar.html"&gt;YubNub LocationBar Firefox Extension&lt;/a&gt; has been released.  There is now support for non-standard URLs (such as those from &lt;a href="http://redhanded.hobix.com/cult/whoNicDOffWithTheYummyJunkDomains.html"&gt;nic.d&lt;/a&gt;.  Arrow-key history navigation broke some default Firefox features, so it is now Ctrl+Arrow Key.  A hackish integration with Firefox auto-complete history has also been coded.  Type y: before a command to have the auto-complete work (or just to force it into YubNub mode).&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/firefox" rel="tag"&gt;firefox&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116232286805373480?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116232286805373480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116232286805373480&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116232286805373480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116232286805373480'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/yubnub-locationbar-016.html' title='YubNub LocationBar 0.16'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116205014054854100</id><published>2006-10-28T10:31:00.000-05:00</published><updated>2006-10-28T10:42:20.583-05:00</updated><title type='text'>Trackback Errors (Haloscan Bug?)</title><content type='html'>Many users of &lt;a href="http://singpolyma-tech.blogspot.com/2006/07/blogger-delicious-categorising-pinging.html"&gt;my trackback script&lt;/a&gt;, including myself, have compained of odd errors.  Awhile back, I upgraded the script to give better error messages.  On pinging a &lt;a href="http://www.haloscan.com/"&gt;haloscan&lt;/a&gt; trackback addresses (which we on Blogger mostly are) I get:&lt;br /&gt;&lt;br /&gt;Error #11 : Problem saving. Please contact Haloscan&lt;br /&gt;&lt;br /&gt;I have posted it in the appropriate thread of the &lt;a href="http://www.haloscan.com/forum/index.php?showtopic=5691&amp;view=findpost&amp;amp;p=25212"&gt;Haloscan forums&lt;/a&gt;, but that seems to be a thread where we report bugs and get no reply.  I have not changed the trackback code from what was previously working, and I cannot seem to find any problems with it.  Nor do I find any documenation on this error.&lt;br /&gt;&lt;br /&gt;So basically, this is a '&lt;a href="http://jonaquino.blogspot.com/2006/08/no-useful-search-results-post-blog.html#c115726468378278090"&gt;Googleseeding&lt;/a&gt;' post to see if anyone else has any bright ideas.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/trackback" rel="tag"&gt;trackback&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/haloscan" rel="tag"&gt;haloscan&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/bug" rel="tag"&gt;bug&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116205014054854100?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116205014054854100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116205014054854100&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116205014054854100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116205014054854100'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/trackback-errors-haloscan-bug.html' title='Trackback Errors (Haloscan Bug?)'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116204818819281560</id><published>2006-10-28T09:58:00.000-05:00</published><updated>2006-10-28T10:11:31.096-05:00</updated><title type='text'>Don't JUST Eat Your Dogfood</title><content type='html'>Blogger (and Google in general) have been getting some bad press lately.  They decided to make &lt;a href="http://buzz.blogger.com/2006/10/chowing-down-on-dogfood.html"&gt;a counterpost on Buzz&lt;/a&gt;, not a bad idea.  &lt;a href="http://bloggeratto.blogspot.com/2006/10/blogger-says-dont-dare-to-judge-us.html"&gt;Some people are cynical&lt;/a&gt; about the entire post, but it has good and bad points.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;They're right, Google is only a company and its employees are only human.  Mistakes are made and they're very good at fixing (at least the big ones).  The &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; eat their own dogfood and that is why bugs like this can be spotted faster.&lt;br /&gt;&lt;br /&gt;It's also what causes the press.&lt;br /&gt;&lt;br /&gt;If a single Blogger blog malfunctions, no one cares.  Unless that single blog is the Google blog.  They can't expect bloggers not to notice this.  This isn't the old-style press where we wait until it's a proven, serious, do-or-die issue before printing.  Bloggers write while the news is &lt;span style="font-style: italic;"&gt;hot&lt;/span&gt;.  If in two hours it's all fixed, that's not the point.&lt;br /&gt;&lt;br /&gt;Are our expectations of Google and Blogger too high?  Undoubtedly.  We all know that as consumers, especially geeky consumers, we demand more than is possible.  That's just the way things are.  Users of my hacks expect far more than I can deliver, and I expect far more than Blogger can deliver.  The mark of greatness is handling this well.&lt;br /&gt;&lt;br /&gt;Their post makes some good points, and I won't disagree with them completely.  We can give them some slack.  However, they try to get out of responsability a little too much.  EAT your dogfood, FIX the service, and BE RESPONSIBLE for what happened, even if it's no big deal.  They've done their PR bit, but actions speak louder than words.  It is far more powerful to say 'we did' than 'we do'.  So while I sympathise with them, I must side with the great penguin:&lt;br /&gt;&lt;br /&gt;Don't give me excuses - give me results!&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/google" rel="tag"&gt;google&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/buzz" rel="tag"&gt;buzz&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116204818819281560?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116204818819281560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116204818819281560&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116204818819281560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116204818819281560'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/dont-just-eat-your-dogfood.html' title='Don&apos;t JUST Eat Your Dogfood'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116146414626114229</id><published>2006-10-21T15:38:00.000-05:00</published><updated>2006-10-21T15:59:24.366-05:00</updated><title type='text'>Free 'Domain Names' in the Underground</title><content type='html'>&lt;i&gt;&lt;b&gt;Disclaimer:&lt;/b&gt; This article may be extremely geeky, and some links may not work unless you have specially-modified system settings.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hoodwinkd.hobix.com/"&gt;Hoodwink'd&lt;/a&gt;, the self-dubbed "&lt;a href="http://hoodwink.d/"&gt;underground mumbler's club&lt;/a&gt;", is very geek.  Until recently, the only way to access the main part of the site was by manually editing your hosts file (a settings file that is unknown to most users, and very hard to find for Windows users).&lt;br /&gt;&lt;br /&gt;Recently, &lt;a href="http://hoodwink.d/_why"&gt;_why&lt;/a&gt;, the founder/head-hancho of Hoodwink'd, set up a DNS server that allows the registration of domain names that do not exist (such as hoodwink.d and _.singpolyma).  As long as you have a simple settings change done on your system you can access all of these 'bogus' domain-names the same as normal websites, and if you're a member at Hoodwink'd you can create as many new ones as you want for free at &lt;a href="http://nic.d/"&gt;nic.d&lt;/a&gt; (&lt;a href="http://___._/2006/10/10/undergroundns.html"&gt;blog announcement&lt;/a&gt;, &lt;a href="http://wasteland.hobix.com/The%20Future,%20A%20request%20for%20why"&gt;forum thread&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;For more information on Hoodwink'd itself see &lt;a href="http://ecmanaut.blogspot.com/2006/01/hoodwinkd.html"&gt;Johan's article&lt;/a&gt;.  To get access to Hoodwink'd and nic.d domains on Windows XP follow these steps (linux and other users, just add 72.36.180.123 as your primary DNS, you likely know how):&lt;br /&gt;&lt;ol&gt; &lt;li&gt;Open your network connections pane (Start &amp;gt; Connect to &amp;gt; Show all connections).&lt;/li&gt; &lt;li&gt;Right-click on the connection you use to get on the Internet (the dial-up connection for dial-up users, and the Wireless Network Connectin or Local Area Connection for broadband, usually) and select 'Properties'.&lt;/li&gt; &lt;li&gt;Select Internet Protocol (TCP/IP) from the list box and click the 'Properties' button.&lt;/li&gt; &lt;li&gt;Select the 'Use the following DNS server addresses' radio button if not already selected.&lt;/li&gt; &lt;li&gt;If there is anything in the first box, move it to the second, otherwise find the automatically assigned DNS address from the status window for the connection and enter that to the second box.&lt;/li&gt; &lt;li&gt;Enter 72.36.180.123 into the first box.&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/geekery" rel="tag"&gt;geekery&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hoodwink'd" rel="tag"&gt;hoodwink'd&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/underground" rel="tag"&gt;underground&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116146414626114229?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116146414626114229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116146414626114229&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116146414626114229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116146414626114229'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/free-domain-names-in-underground.html' title='Free &apos;Domain Names&apos; in the Underground'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116112628917462113</id><published>2006-10-17T17:58:00.000-05:00</published><updated>2006-10-17T18:04:49.176-05:00</updated><title type='text'>Regarding Inline Comment Forms and Blogger BETA</title><content type='html'>I have run up into a wall in translating my inline comment form hacks to Blogger BETA code.  The translation is done, but the forms don't really work.  Why not?  The submission &lt;i&gt;always&lt;/i&gt; produces an error.  A quick analysis shows that Blogger BETA comment pages generate auth keys now to prevent non-Blogger forms from spoofing info (just what this hack tries to do).  While this is a security feature, it makes this hack (as it currently is) pretty useless.&lt;br /&gt;&lt;br /&gt;So what am I going to do?  I am going to attempt the creation of an offsite PHP script to scrape the auth key out of the form code (surprised?).  Based on how these systems usually work, it should fix the problem if this is then included (via JavaScript) into the comment form code.  What this does mean is that the comment form will require JavaScript to fuction, and so I will probably just translate the more popular asynchronous version which does already anyway (since the purpose of keeping the other version alive was to have one that didn't require JavaScript).&lt;br /&gt;&lt;br /&gt;If this approach is successful I will create a similar partner script to enable the inline comment forms to work with word verification, something many people have asked for in the past.&lt;br /&gt;&lt;br /&gt;So I'm not giving up just yet, but the process may take longer than I had anticipated.  To see the literally-translated hack with error messages see &lt;a href="http://singpolyma-beta.blogspot.com/"&gt;my BETA test blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116112628917462113?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116112628917462113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116112628917462113&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116112628917462113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116112628917462113'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/regarding-inline-comment-forms-and.html' title='Regarding Inline Comment Forms and Blogger BETA'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116112566179455601</id><published>2006-10-17T17:50:00.000-05:00</published><updated>2006-10-17T17:54:21.846-05:00</updated><title type='text'>BlogID in Blogger BETA</title><content type='html'>&lt;a href="http://beta.blogger.com/"&gt;Blogger BETA&lt;/a&gt; seems to have no template tag (or equivalent) any more for the BlogID, which is sometimes a very useful value to have.  I have hacked together the following JavaScript function which should return the BlogID of any Blogger BETA blog it is run on:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;   function getBlogID() {&lt;br /&gt;   &amp;nbsp;&amp;nbsp; var links = document.getElementsByTagName('link');&lt;br /&gt;   &amp;nbsp;&amp;nbsp; var href = '';&lt;br /&gt;   &amp;nbsp;&amp;nbsp; for(var i=0; i&amp;lt;links.length; i++) {&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(links[i].rel == 'EditURI') {&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; href = links[i].href;&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }//end if rel == EditURI&lt;br /&gt;   &amp;nbsp;&amp;nbsp; }//end for i&amp;lt;links.length&lt;br /&gt;   &amp;nbsp;&amp;nbsp; href = href.match(/blogID=([\d]+)/);&lt;br /&gt;   &amp;nbsp;&amp;nbsp; return href[1];&lt;br /&gt;   }//end function getBlogID&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116112566179455601?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116112566179455601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116112566179455601&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116112566179455601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116112566179455601'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/blogid-in-blogger-beta.html' title='BlogID in Blogger BETA'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116083185687875249</id><published>2006-10-14T07:38:00.000-05:00</published><updated>2007-01-18T07:48:12.847-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Comments on Main/Archive Page (Peek-a-Boo) in Blogger BETA</title><content type='html'>&lt;b title="Update 2007-01-18"&gt;There was a typo in this post!  I finally found it.  Your templates should be able to save after applying this hack now ;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2007-01-09"&gt;I have released an &lt;a href="http://singpolyma-tech.blogspot.com/2007/01/asynchronous-peek-boo-comments.html"&gt;asynchronous version&lt;/a&gt; of this hack.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-12-21"&gt;So now that people have stopped asking me for this feature (because I said I couldn't do it) I've done it!  Screen-scraping to the rescue!  If you re-install this hack you'll get more manageable code in your template, bug fixes for timezone logic, and &lt;i&gt;comment author links&lt;/i&gt;.  Finally!  Yay!  This also improves compatibility between this hack and my comment photos hack.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-12-11"&gt;You can not link to author's blogs or profiles from the main page because that data is &lt;i&gt;not available&lt;/i&gt; in the feed Blogger provides.  Some day I may dream up a way to do this -- or Blogger may start providing the information.  For now, it's not happening.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Updated 2006-11-27 to work with new &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/json-from-google.html"&gt;Native JSONP&lt;/a&gt;, should be faster now.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As I said back when I &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/first-blogger-beta-template.html"&gt;first released my BETA template&lt;/a&gt;, displaying comment data anywhere but on item pages in Blogger BETA is 'impossible'.  That is what this hack overcomes.  Both just plain displaying comments on main and also peek-a-boo comments are now possible (revised template coming soon ;) ).&lt;br /&gt;&lt;ol&gt; &lt;li&gt;Go to the layout on your BETA blog and select 'Edit HTML'.&lt;/li&gt; &lt;li&gt;Check the 'Expand Widget Templates' box.&lt;/li&gt; &lt;li&gt;Paste the following code into the &amp;lt;head&amp;gt; section of the template:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;var comment_form_template = '&amp;lt;div class="commentelem"&amp;gt;&amp;lt;div class="comment-poster"&amp;gt;[[AUTHOR]]&amp;lt;/div&amp;gt;\n'&lt;br /&gt;+ '&amp;lt;div class="comment-body"&amp;gt;&amp;lt;div class="innerCmntBody"&amp;gt;[[BODY]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;\n'&lt;br /&gt;+ '&amp;lt;div class="comment-timestamp"&amp;gt;&amp;lt;a href="[[PERMALINK]]" title="comment permalink"&amp;gt;[[DATE]]&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;\n';&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script src='http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;amp;id=2706908' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Advanced users will note that the first &amp;lt;script&amp;gt; section is taken from the &lt;a href="http://singpolyma-tech.blogspot.com/2006/06/asynchronous-comment-form.html"&gt;asynchronous comment form&lt;/a&gt; code, and that if that is installed (presuming I get a version working for Blogger BETA) that the code only needs to be in here once.  It can be changed to fit the code of the blog itself to improve appearance, etc.  Kudos to &lt;a href="http://ecmanaut.blogspot.com/"&gt;Johan Sundström&lt;/a&gt; for his help with the date code.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;If you want peek-a-boo functionality, you will need this code in your &amp;lt;head&amp;gt; section somewhere as well:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; function toggleitem(postid,linkid,newtxt,displaytype) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!displaytype) {displaytype = 'block';}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var whichpost = document.getElementById(postid);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (whichpost.style.display != "none") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; whichpost.style.display = "none";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; whichpost.style.display = displaytype;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(linkid) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var lnk = document.getElementById(linkid);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lnk.href = "javascript:toggleitem('"+postid+"','"+linkid+"','"+lnk.innerHTML+"');";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lnk.innerHTML = newtxt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }//end function toggleitem&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Find the place in your template where the comments are generated on item pages, it will probably look something like this:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:loop values='data:post.comments' var='comment'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;dt class='comment-author' expr:id='"comment-" + data:comment.id'&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And directly before that, insert this code:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:loop values='data:post.feedLinks' var='f'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;b:if cond='data:blog.pageType != "item"'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script expr:src='data:f.url + "?alt=json-in-script&amp;amp;amp;amp;callback=peekaboo_comments_display"' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/b:loop&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;If you want to use peek-a-boo functionality put, find  the code a little bit before that which you just inserted that looks something like:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:includable id='comments' var='post'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;div class='comments' id='comments'&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And replace that second line with:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;div class='comments' expr:id='"comments" + data:post.id'&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:blog.pageType != "item"'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById('comments&amp;lt;data:post.id/&amp;gt;').style.display = 'none';&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt; &lt;li&gt;Next, find the post-generating code.  It will look start something like this:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:includable id='main' var='top'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;!-- posts --&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;In this section there will be a block of code that looks something like:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:if cond='data:blog.pageType == "item"'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;b:include data='post' name='comments'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Replace it with this:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;b:include data='post' name='comments'/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;If you want to use peek-a-boo functionality you need to find the post template section, which starts something like this:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:includable id='post' var='post'&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And then find the link to the comments area, which looks something like:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And replace it with:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;b:if cond='data:post.allowComments'&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;a class='comment-link' expr:href='data:post.url + "#comments"' expr:onclick='"toggleitem(&amp;amp;amp;quot;comments" + data:post.id + "&amp;amp;amp;quot;);return false;"'&amp;gt;&amp;lt;b:if cond='data:post.numComments == 1'&amp;gt;1 &amp;lt;data:top.commentLabel/&amp;gt;&amp;lt;b:else/&amp;gt;&amp;lt;data:post.numComments/&amp;gt; &amp;lt;data:top.commentLabelPlural/&amp;gt;&amp;lt;/b:if&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Click 'Save Template' and, if it appears, 'Confirm &amp;amp; Save', then view your blog.&lt;/li&gt; &lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116083185687875249?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116083185687875249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116083185687875249&amp;isPopup=true' title='87 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116083185687875249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116083185687875249'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/comments-on-mainarchive-page-peek-boo.html' title='Comments on Main/Archive Page (Peek-a-Boo) in Blogger BETA'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>87</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116068620666522915</id><published>2006-10-12T15:43:00.000-05:00</published><updated>2006-11-16T09:27:50.306-05:00</updated><title type='text'>Feed Links in BETA</title><content type='html'>&lt;b title="Update 2006-11-16"&gt;Please see &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/feed-links-widget.html"&gt;the new, easier hack&lt;/a&gt; for this feature.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I love &lt;a href="http://beta.blogger.com/"&gt;Blogger BETA&lt;/a&gt;, but there are just some things about it that annoy me.  Duh.  That's why I'm a hacker.  One of these is that feed links are displayed at the bottom of the page instead of in my sidebar.  No longer.  Insert this code wherever you want the feed links to display and you'll have a feed links widget you can drag and drop in your template editor!&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;nbsp;  &amp;lt;b:widget id='FeedsWidget' locked='false' title='Feeds' type='Blog'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:includable id='main'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;h2 class='sidebar-title'&amp;gt;Syndication&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;b:if cond='data:feedLinks'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ul class='xoxo'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;b:loop values='data:feedLinks' var='f'&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;li&amp;gt;&amp;lt;img src='http://photos1.blogger.com/blogger/6537/1341/1600/feed-icon-12x12.jpg' alt='' /&amp;gt; &amp;lt;a expr:href='data:f.url + "?alt=rss"' rel='alternate'&amp;gt;&amp;lt;data:f.name/&amp;gt; Feed&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/b:includable&amp;gt;&lt;br /&gt;&amp;nbsp;  &amp;lt;/b:widget&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Coming soon for Blogger BETA: Comments on Main and Archive pages (peek-a-boo!) and a revised Singpolyma-Template.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/template" rel="tag"&gt;template&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/templates" rel="tag"&gt;templates&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116068620666522915?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116068620666522915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116068620666522915&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116068620666522915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116068620666522915'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/feed-links-in-beta.html' title='Feed Links in BETA'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-116034516571534271</id><published>2006-10-08T16:52:00.000-05:00</published><updated>2006-10-08T17:06:05.763-05:00</updated><title type='text'>FreshTags as API</title><content type='html'>The &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/freshtags-singpolyma-2.html"&gt;new FreshTags system&lt;/a&gt; comes with many benefits, such as the &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/widgetdata.html"&gt;WidgetData system&lt;/a&gt; and also a more flexible interaction with the code itself.&lt;br /&gt;&lt;br /&gt;Some basic example of this are the widgets one can create just using different settings.  To include a feed in your sidebar you can add this code in with the other FreshTags settings data:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;//feed widget&lt;br /&gt;WidgetData['freshtags']['freshtags_&lt;span style="color:red;"&gt;FeedName&lt;/span&gt;'] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'type':'posts',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'source':'feed',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'feedurl':'&lt;span style="color:red;"&gt;FeedURL&lt;/span&gt;',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'rows':10&lt;br /&gt;};&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And this code wherever you want the feed headlines to display:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;div id="freshtags_&lt;span style="color:red;"&gt;FeedName&lt;/span&gt;"&amp;gt;&amp;lt;i&amp;gt;Loading Feed...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Similarly, a minor tweak to that code yeilds 'Generic FreshTags' behaviour as existed in the original FreshTags release:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;//generic widget&lt;br /&gt;WidgetData['freshtags']['freshtags_generic'] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'type':'posts',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'source':'feed',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'feedurl':'http://del.icio.us/rss/tag/%tags%',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'rows':10&lt;br /&gt;};&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;div id="freshtags_generic"&amp;gt;&amp;lt;i&amp;gt;Loading del.icio.us...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Peek-a-boo headlines functionality also remains:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;//Headlines Widget&lt;br /&gt;WidgetData['freshtags']['&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;headlines'] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'type':'external',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'source':'del.icio.us',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'username':'&lt;span style="color:red;"&gt;del.icio.us username for blog&lt;/span&gt;',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'anchor':'&lt;span style="color:red;"&gt;anchor tag for blog&lt;/span&gt;',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'feedurl':'&lt;span style="color:red;"&gt;FeedURL for blog&lt;/span&gt;',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'tag_list':'freshtags_tags',&lt;br /&gt;&amp;nbsp;&amp;nbsp; 'rows':10&lt;br /&gt;};&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;a id="&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;link" href="javascript:toggleitem('&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;headlines','&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;link','-');freshtags_load('&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;headlines');"&amp;gt;+&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;a href="&lt;span style="color:red;"&gt;BlogURL&lt;/span&gt;"&amp;gt;&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;div id="&lt;span style="color:red;"&gt;BlogName&lt;/span&gt;headlines" style="display:none;"&amp;gt;&amp;lt;i&amp;gt;Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Note that the following must be included in the &amp;lt;head&amp;gt; section of your blog for this to work:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; function toggleitem(postid,linkid,newtxt,displaytype) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!displaytype) {displaytype = 'block';}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var whichpost = document.getElementById(postid);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (whichpost.style.display != "none") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; whichpost.style.display = "none";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; whichpost.style.display = displaytype;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(linkid) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var lnk = document.getElementById(linkid);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lnk.href = "javascript:toggleitem('"+postid+"','"+linkid+"','"+lnk.innerHTML+"');";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lnk.innerHTML = newtxt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }//end function toggleitem&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Below is a list of easily externally accesible functions in FreshTags:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;freshtags_load&lt;/b&gt; - called with no parameter it (re)loads all FreshTags widgets on a page.  If you pass it the ID of a widget, just that widget will be (re)loaded (and associated widgets).&lt;/li&gt; &lt;li&gt;&lt;b&gt;get_current_tags&lt;/b&gt; - takes three optional parameters, a space-separated string of default tags to use if none are found, an object containing a complete list of all tags avaliable for use in the format {'tag':count}, and a boolean value specifying whether or not to draw rel-tag data from the page if no tags are detected from the URL/referrer.  Returns a plus-separated string of tags found or the null string ('').&lt;/li&gt; &lt;li&gt;&lt;b&gt;main_tags_loaded&lt;/b&gt; - if you pass it false and teh ID of a FreshTags tag widget it will reload the widget (and associated widgets) without re-calling get_current_tags like freshtags_load does (thus enabling you to set the current tags to whatever you want).&lt;/li&gt; &lt;li&gt;&lt;b&gt;listTags&lt;/b&gt; - takes the ID of a FreshTags tag widget and returns a string of the renderation to XHTML.&lt;/li&gt; &lt;li&gt;&lt;b&gt;listTitles&lt;/b&gt; - takes the ID of a FreshTags posts (or external) widget and returns a string of the renderation to XHTML.  An optional second parameter specifies whether to hide the widget when there's no data (false, default) or &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/api" rel="tag"&gt;api&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widgetdata" rel="tag"&gt;widgetdata&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-116034516571534271?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/116034516571534271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=116034516571534271&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116034516571534271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/116034516571534271'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/10/freshtags-as-api.html' title='FreshTags as API'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115862686614902951</id><published>2006-09-18T19:27:00.000-05:00</published><updated>2006-09-18T20:07:17.016-05:00</updated><title type='text'>WidgetData</title><content type='html'>WidgetData is the new settings system that makes &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/freshtags-singpolyma-2.html"&gt;FreshTags-Singpolyma2&lt;/a&gt; tick.  It is a standard way of storing data for JavaScript widgets, so that they can share data and be less likely to have namespace conflicts with each other.  It is by no means set in stone, however this post will be a brief description of the system, and how it is used in FreshTags.&lt;br /&gt;&lt;br /&gt;The basic WidgetData system is a JSON object stored in var WidgetData in the global JavaScript scope of a page with the following basic structure:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Widget-System':{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'XHTML-block-ID':{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//widget data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Where Widget-System is the name of the system that should render this widget (ie, 'freshtags') and XHTML-block-ID is the DOM ID of an XHTML block the widget will be rendered into (ie, 'freshtags_tags').&lt;br /&gt;&lt;br /&gt;&lt;b&gt;As Used in FreshTags&lt;/b&gt;&lt;br /&gt;In the FreshTags WidgetData setup, there are certain standard fields on each block (all the fields here discussed are assumed to be on the JSON object at WidgetData['freshtags']['XHTML-block-id']).&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;type&lt;/b&gt; - Tells FreshTags what kind of widget this is.  Currently three types are supported: tags (a tag list), posts (a list of posts, either associated with a particular tag list or not), and external (a reserved type that simply tells FreshTags not to render this widget automatically).&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;tag_list&lt;/b&gt; - posts/external widgets only, tells FreshTags that this widget is linked to the tags widget whose id is tag_list.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;source&lt;/b&gt; - Tells FreshTags what service to pull the data from.  On tags widgets the only currently legal value (and the default value) is 'del.icio.us'.  On posts (and external which are to act like posts) widgets this may be 'del.icio.us' (default), 'wordpress' (pull data from a FreshTags for Wordpress enabled blog), or 'feed'.  Posts/external widgets which are linked to a tags widget will default to the same source as the tags widget.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;username&lt;/b&gt; - the username to give the service when extracting data (currently only valid on del.icio.us source).  Posts/external widgets which are linked to a tags widget will default to the same username as the tags widget.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;anchor&lt;/b&gt; - The anchor tag to use when drawing in posts.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;format&lt;/b&gt; - The format to render widget in (such as 'drop' or 'drop-add', may also be an @-separated cust_html string, an array of the type produced by the FreshTags switch, or a function that takes the widget ID and renders it to a string which it returns).&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;rows&lt;/b&gt; - Maximum number of posts/tags to display.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;feedurl&lt;/b&gt; - The URL to the feed for post data (to use if there is no other post data, or if source==feed)&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;url&lt;/b&gt; - posts/external widgets with source==wordpress only.  The URL to the WordPress blog's main page.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;prompt&lt;/b&gt; - Default entry in a drop-down list.  Default '- Tags -' for tags, default blank for all else.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;tag_url&lt;/b&gt; - tags widgets only, the URL to send browser to on tag selection.  Blank for current page.  ?tags=TAGS tacked on automatically, %tags% also replaced with tags&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;join_char&lt;/b&gt; - tags widgets only, the character to use between the tags in an intersection when replacing into %tags% for tag_url.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;defs&lt;/b&gt; - default tags if no tags detected.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;no_autocapture&lt;/b&gt; - default false, set to true to stop the attempt to autocapture rel=tag data on failure to detect tag from URL/refer URL.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;curr_tags&lt;/b&gt; - the tags currently detected/selected by this widget.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;all_tag_data&lt;/b&gt; - where the list of all tags in an account is stored in the JSON format {'TAG':'COUNT'}&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;tag_data&lt;/b&gt; - where the list of all tags in an account matching curr_tags is stored in the JSON format {'TAG':'COUNT'}&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;b&gt;posts_data&lt;/b&gt; - posts/external widgets only, stores the JSON data for all posts in the widget.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widgets" rel="tag"&gt;widgets&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115862686614902951?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115862686614902951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115862686614902951&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115862686614902951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115862686614902951'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/widgetdata.html' title='WidgetData'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115819568271818544</id><published>2006-09-13T20:00:00.000-05:00</published><updated>2006-09-26T15:29:28.786-05:00</updated><title type='text'>FreshTags-Singpolyma 2</title><content type='html'>&lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;FreshTags&lt;/a&gt; is a context-based navigation system based on tags.  The most current 'official' version is &lt;a href="http://blogfresh.blogspot.com/2006/01/freshtags-v-05.html"&gt;v0.5 as seen on FreshBlog&lt;/a&gt;.  I have also run &lt;a href="http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my own version&lt;/a&gt; as a contribution to the effort.  With the advent of &lt;a href="http://del.icio.us/jrfj44/blogger+beta"&gt;Blogger BETA&lt;/a&gt;, the original purpose of adding categories to Blogger is gone and now the emphasis is on the tag passing, etc.  Complaints have been abundant that neither version of FreshTags would work properly on the BETA.  This milestone upgrade in my version aims to both fix that problem, as well as give FreshTags the boost it needs for future growth.&lt;br /&gt;&lt;br /&gt;The script is hosted in the same entry on &lt;a href="http://jscripts.ning.com/"&gt;JScripts&lt;/a&gt;, and is 100% backwards-compatible with my previous version.  To use it forwards-compatably, however, requires a considerably different setup, therefore I am re-authoring the basic instructions post here, and the old one shall be 'deprecated' (with a link here).  There are many customisation options and different ways things can be done for FreshTags, especially with the new system.  In this post I will cover some basics.  Later posts will cover more functionality, and links to those posts will be added here.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Basic Installation for 'Classic' FreshTags Functionality&lt;/b&gt;&lt;br /&gt;To install this version of FreshTags so that it works about the same as the original FreshTags (as it runs on FreshBlog), you will need this code:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;!-- FreshTags0.5-Singpolyma2 --&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;   if(typeof(WidgetData) != 'object') WidgetData = {};&lt;br /&gt;   if(typeof(WidgetData['freshtags']) != 'object') WidgetData['freshtags'] = {};&lt;br /&gt;&lt;br /&gt;   //tag widget&lt;br /&gt;   WidgetData['freshtags']['freshtags_tags'] = {&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'type':'tags',&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'source':'del.icio.us',&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'username':'&lt;span style="color:red"&gt;Delicious Username&lt;/span&gt;',&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'anchor':'&lt;span style="color:red"&gt;Anchor Tag (optional)&lt;/span&gt;',&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'format':'drop'&lt;br /&gt;   };&lt;br /&gt;&lt;br /&gt;   //posts widget&lt;br /&gt;   WidgetData['freshtags']['freshtags_posts'] = {&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'type':'posts',&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'tag_list':'freshtags_tags',&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;'rows':'10'&lt;br /&gt;   };&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=818185"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;div id="freshtags_tags"&amp;gt;&amp;lt;i&amp;gt;FreshTags Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="freshtags_posts"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;a href="http://ghill.customer.netspace.net.au/freshtags/" title="Categories by FreshTags"&amp;gt;&amp;lt;img src=" http://ghill.customer.netspace.net.au/freshtags/freshtags-btn.png" alt="FreshTags" /&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;!-- /FreshTags0.5-Singpolyma2 --&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Advanced users will note that this JavaScript does not have the needed commented CDATA section for XML well-formedness.  This is because of an issue with Blogger BETA.  If you are on a classic blog, feel free to add it in (as I have), but since no special characters are likely to be used in this particular piece of JavaScript code, it doesn't matter much.&lt;br /&gt;&lt;br /&gt;Replace &lt;span style="color:red"&gt;Delicious Username&lt;/span&gt; with your del.icio.us username and &lt;span style="color:red"&gt;Anchor Tag (optional)&lt;/span&gt; with your del.icio.us anchor tag (or blank for none).  The 'format':'drop' may be set to list, flat, drop, drop-add, drop-add-async, or any other legal format string from my previous version.&lt;br /&gt;&lt;br /&gt;To install this on a Blogger Classic blog, add the entire code into your blog template at the place where you want the tag list and post list to appear.&lt;br /&gt;&lt;br /&gt;To install this on a Blogger BETA blog, create a new HTML/JavaScript widget, set the title to whatever you want, and place the entire code in the body, then save.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;'Fake Post' functionality&lt;/b&gt;&lt;br /&gt;To install this version so that it uses a 'fake post' to display tags, as my original did, add this line to the end of the '//tag widget' section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;WidgetData['freshtags']['freshtags_tags']['tag_url'] = '/2000/01/tags.html';&lt;br /&gt;&lt;br /&gt;//postpage widget&lt;br /&gt;WidgetData['freshtags']['freshtags_postpage'] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;'type':'posts',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;'tag_list':'freshtags_tags',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;'format':'list-extended'&lt;br /&gt;};&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;My original version also used the drop-add format, so if you want to mimic that behaviour exactly you must change the format line as well.&lt;br /&gt;(Note: for this to work you will have to have a post entitled Tags, dated January 1, 2000 with the code &amp;lt;div id="freshtags_postpage"&amp;gt;&amp;lt;/div&amp;gt;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Labels page (BETA only)&lt;/b&gt;&lt;br /&gt;To install this version so that it uses the Blogger BETA labels page for display, add this code to the end of the '//tag widget' section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;WidgetData['freshtags']['freshtags_tags']['tag_url'] = '/search/label/%tags%';&lt;br /&gt;WidgetData['freshtags']['freshtags_tags']['join_char'] = '/';&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;It is important to note that, except for the sidebar, the display on this page is generated by Blogger and not by FreshTags.  This breaks tag-passing a little bit.  In the next minor revision I will add code to append the ?tags=TAGS to the link URL on any links that have rel="bookmark" on them (the microformats standard for permalinks).&lt;br /&gt;&lt;br /&gt;To turn off autocapture of tags from rel=tag data on any of these, add this code to the end of the '//tag widget' section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;WidgetData['freshtags']['freshtags_tags']['no_autocapture'] = no_autocapture;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;One thing you're probably wondering is if this will work with the BETA labels with no del.icio.us account.  No.  That may be coming, but I can't promise anything yet.  Does the peek-a-boo sidebar, etc still exist?  Yes, but this post is long enough, so I will write another article explaining all that soon.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115819568271818544?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115819568271818544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115819568271818544&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115819568271818544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115819568271818544'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/freshtags-singpolyma-2.html' title='FreshTags-Singpolyma 2'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115781745227118098</id><published>2006-09-09T10:54:00.000-05:00</published><updated>2006-09-09T10:57:32.290-05:00</updated><title type='text'>FreshRolls (Wrinks)</title><content type='html'>I have added a new feature to my &lt;a href="http://wrinks.ning.com/"&gt;Wrinks&lt;/a&gt; app.  In the spirit of &lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;FreshTags&lt;/a&gt; we have &lt;a href="http://wrinks.ning.com/about.php#freshroll"&gt;FreshRolls&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you go to a wrink page (for example, the &lt;a href="http://wrinks.ning.com/wrink.php?id=1790699"&gt;Blogger Hacks Wrink&lt;/a&gt;), you will note a third code option.  FreshRolls are currently only available in JavaScript (no PHP yet).  You can select what blog to exclude (or none), just as on the normal roll output, and whether this code is to be used in conjuction with ring code or not (more on that in a bit).  The code is then a simple JavaScript include, as with standard rolls, that you place where you want the FreshRoll to appear.&lt;br /&gt;&lt;br /&gt;FreshRolls attempt to detect tags and 'passed tags', just like FreshTags.  If it finds some, it will display only those blogs which match the tag(s) found, otherwise it will normally display the entire roll.  If, however, you told it you would be using it with a ring, it will not display a roll title and if no tags are detected will output none of the roll.&lt;br /&gt;&lt;br /&gt;What is this 'combo-mode' useful for?  Well, if you paste standard ring code followed directly by FreshRoll code set to 'combo-mode', if tags are detected the matching blogs will be displayed following the ring, otherwise you just see the ring.  I have set it up this way in my sidebar.  You can test it by appending ?tags=blogger to this page's URL and reloading.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blogger BETA compatible&lt;/span&gt; : Just create a new HTML/JavaScript widget on your BETA blog and cut-n-paste in the code(s) from Wrinks.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/wrinks" rel="tag"&gt;wrinks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115781745227118098?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115781745227118098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115781745227118098&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115781745227118098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115781745227118098'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/freshrolls-wrinks.html' title='FreshRolls (Wrinks)'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115765697204635929</id><published>2006-09-07T14:08:00.000-05:00</published><updated>2007-01-13T18:52:14.802-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='templates'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><title type='text'>First Blogger BETA Template</title><content type='html'>&lt;b&gt;Please see my &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/singpolyma-templates-for-new-blogger.html"&gt;Singpolyma Templates for the New Blogger&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is the first Blogger BETA custom template based on my &lt;a href="http://singpolyma-tech.blogspot.com/2006/06/singpolyma-templates.html"&gt;Singpolyma Templates&lt;/a&gt;.  This will not be a final version because it still has some slight bugs, but I would like feedback from users before I make any changes.  You can preview the new template at &lt;a href="http://singpolyma-beta.blogspot.com/"&gt;my BETA blog&lt;/a&gt;.  The spirit and look of the original basic template has been ported to the new widget system, and all fonts and colours can also be edited from the new panel for that purpose.  Minor known issues are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Not even close to XHTML compliant.  This is not my fault.  There are significant JavaScript sections on Blogger BETA that are malformed XML and thus break any sort of compliance.  I've written support, but I doubt that will do any good.  We need to find a way to put &lt;span style="font-style: italic;"&gt;serious&lt;/span&gt; pressure on them to correct this.  The new template system is in XML, make XML-well-formed output (and perhaps even XHTML-compliant output) has never been easier, and yet so far away.  The changes they would have to make are minor (like, adding commented CDATA sections around the JavaScript).  I don't see a thing about it on&lt;a href="http://buzz.blogger.com/2006/09/known-issues-for-blogger-in-beta.html"&gt; Known Issues&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Ditto to peek-a-boo comments.  This is a limitation in the BETA as far as I can see... I &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; hope they can be persuaded to fix this.&lt;/li&gt;&lt;li&gt;The pre-included blogroll is XOXO compliant, but has fewer features as the manually-created ones did (ie, no option for feed data).&lt;/li&gt;&lt;li&gt;No link to main comments feed (it doesn't seem to be generating, I believe this is a known BETA issue...)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The profile section supports both single and group blogs, unlike the original which assumed a single-authorship blog.  I could also add previous/next links on item pages and a labels sidebar widget if people want it.  Versions with my other hacks (as before) will be forthcoming.&lt;br /&gt;&lt;br /&gt;To install this template on your blog, cut-n-paste the template &lt;a href="http://xoxotools.ning.com/templates/beta-basic-first.template.txt"&gt;from here&lt;/a&gt; into the 'Edit HTML' view on your BETA blog, click 'Save', and if you are asked to confirm the deletion of existing widgets click the affirmative option.  Then you can add/edit widgets or change the colours!&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115765697204635929?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115765697204635929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115765697204635929&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115765697204635929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115765697204635929'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/first-blogger-beta-template.html' title='First Blogger BETA Template'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115764776218255864</id><published>2006-09-07T11:33:00.000-05:00</published><updated>2006-09-07T11:49:22.393-05:00</updated><title type='text'>Windows Media Streams on Ubuntu</title><content type='html'>Since I did all the research on this yesterday to get it working, I figured I'd share it with the world in case someone else is having problems with it too!  These instructions assume Ubuntu, but should work on pretty much any Linux system with minor modifications.&lt;br /&gt;&lt;br /&gt;1) You must have a GStreamer player installed.  Totem (the defaul GNOME movie player/media player) is what I used because it was already installed.&lt;br /&gt;2) Install gstreamer0.10-plugins-bad with Synaptic&lt;br /&gt;3) Go to &lt;a href="http://www.mplayerhq.hu/design7/dload.html"&gt;MPlayer&lt;/a&gt; and download the binary codecs for Linux.  Unpack the file into either the /usr/lib/win32/ directory or the /usr/lib/codecs directory (depending on your system, I put it in both to be safe).&lt;br /&gt;5) Install gstreamer0.10-pitfdll with Synaptic (if available) or get it from &lt;a href="http://packages.ubuntu.com/dapper/libs/gstreamer0.10-pitfdll"&gt;a mirror&lt;/a&gt;.&lt;br /&gt;4) Install gstreamer0.10-plugins-ugly with Synaptic&lt;br /&gt;&lt;br /&gt;That should be it!  You should now be able to listen to Internet radio stations in the Windows Media format.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/linux" rel="tag"&gt;linux&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ubuntu" rel="tag"&gt;ubuntu&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/windows" rel="tag"&gt;windows&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/media" rel="tag"&gt;media&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/streaming" rel="tag"&gt;streaming&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115764776218255864?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115764776218255864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115764776218255864&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115764776218255864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115764776218255864'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/windows-media-streams-on-ubuntu.html' title='Windows Media Streams on Ubuntu'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115757545433563225</id><published>2006-09-06T15:22:00.000-05:00</published><updated>2006-09-06T15:44:14.590-05:00</updated><title type='text'>BETA Upgrades Progress</title><content type='html'>Since the Blogger-released &lt;a href="http://help.blogger.com/bin/answer.py?answer=47270"&gt;Widget Code Help&lt;/a&gt; and &lt;a href="http://ecmanaut.blogspot.com/2006/09/blogger-beta-templates.html"&gt;Johan's Post&lt;/a&gt;, progress on BETA conversion has been much easier.  Check my &lt;a href="http://singpolyma-beta.blogspot.com/"&gt;BETA Blog&lt;/a&gt; and you'll find that I have most of the old post functionality and look done, with the following exceptions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Feed information (often hidden) in template header.  This is because Blogger BETA puts feed information for the whole blog in with the posts (that's dumb) and basically expects you to have it in the footer of ever post (even dumber).  Have yet to find a way around this (besides hard-coding the links).&lt;/li&gt;&lt;li&gt;Peek-a-boo comments... uh... Blogger?  Little help?  Comment data is only accessible on item pages...&lt;/li&gt;&lt;li&gt;Date no longer links to archive... that data is gone (and wasn't terribly useful anyway)&lt;/li&gt;&lt;li&gt;I haven't got it so the colour-changer works yet, but you can't see that from my blog ;)&lt;/li&gt;&lt;li&gt;Minor XHTML breakage because the widget tags generate divs, and divs aren't legal inside ul tags&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Improvements due to BETA:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tags look the same, but are now drawn from the new labels field&lt;/li&gt;&lt;li&gt;Peek-a-boo backlinks are no longer a hack&lt;/li&gt;&lt;li&gt;Comment author is now properly marked up as an &lt;a href="http://microformats.org/wiki/hcard"&gt;hCard&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The sidebar will come next (widitized! although I'll leave the comments for full XOXO-compliant blogrolls for advanced users), then perhaps some new features (like next/prev links on item pages).  Then work will start on comment forms, etc.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115757545433563225?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115757545433563225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115757545433563225&amp;isPopup=true' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115757545433563225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115757545433563225'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/beta-upgrades-progress.html' title='BETA Upgrades Progress'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115745964214474423</id><published>2006-09-05T07:33:00.000-05:00</published><updated>2006-09-05T07:34:02.183-05:00</updated><title type='text'>IM vs Telephone</title><content type='html'>Why is it that while we all love IM systems (geeks especially loving our fair &lt;a href="http://jabber.org/"&gt;Jabber&lt;/a&gt;) we still use telephones? Is it that we like the voice aspect? Well, most IMs have that option. I don't even like that option. So what is it then?&lt;br /&gt;&lt;br /&gt;You don't 'turn on' a telephone.&lt;br /&gt;&lt;br /&gt;It's just on. So if someone is home and you call them, you will reach them. No problem. With IM you have to wait for them to be online... what a pain.&lt;br /&gt;&lt;br /&gt;Some systems have tried to overcome this with hardware, the Skype phone being a prime example. This works well as long as people can be made to understand that they must leave their computers on ALL the time for it to work. I can't help wondering though, could this be similarly overcome directly from text-only IM software?&lt;br /&gt;&lt;br /&gt;I think it can, but we will have to change the way many people think about IM. It seems that to many people, IM only works when a person is actively at their computer (which is mostly true at this point), so when someone is set to Away, etc, they do not initiate conversation, or even send a message. But what if the programs tried to 'call' a person the way a phone does when it rings? What if Jabber clients (or other IM programs) turned the volume up on your machine and played a really loud sound when someone initiated a chat while you were set to Away? They could then send an auto-message to the person telling them that the person they have started chatting with is away and it is trying to call them 1...2...3...4...up to a configurable number, then, please leave a message (easy to do in Jabber).&lt;br /&gt;&lt;br /&gt;We would have to retrain ourselves to leave the computer on and signed in during all waking hours (or all hours period for Google Talk where offline messaging still doesn't work). We would have to retrain ourselves to try talking to people set to away, we would have to be willing to 'run to the computer' when it 'rang' just as we do with our phone. We wouldn't have the conveniance of cordless like we do for phones (not at first anyway), but we would save ourselves so much time and effort... and maybe finally kill 'real' telephony.&lt;br /&gt;&lt;br /&gt;  &lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/jabber" rel="tag"&gt;jabber&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/im" rel="tag"&gt;im&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/communications" rel="tag"&gt;communications&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115745964214474423?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115745964214474423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115745964214474423&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115745964214474423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115745964214474423'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/09/im-vs-telephone.html' title='IM vs Telephone'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115697594870699542</id><published>2006-08-30T17:08:00.000-05:00</published><updated>2006-08-30T17:12:28.730-05:00</updated><title type='text'>Google Calendar Feed Cleaner</title><content type='html'>&lt;a href="http://calendar.google.com/"&gt;Google Calendar&lt;/a&gt;'s feeds are not the most useful in the world.  They are sorted by edit date instead of when they're happening, and they're only available in ATOM.&lt;br /&gt;&lt;br /&gt;No longer.  Using the extended feed information Google tacks into their calendar feed it is possible to create a clean, sorted feed with the start date as the pubDate.  Just go to the &lt;a href="http://singpolymaplay.ning.com/googlecalendar.php"&gt;Google Calendar Feed Cleaner&lt;/a&gt; and enter the URL to your calendar's feed, select the format you want (XHTML for testing, RSS 2.0, or JSON(P) ), and enter the max items to be in the results (default 5).  You will get a nice, clean feed of your Google Calendar data.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/google" rel="tag"&gt;google&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/calendar" rel="tag"&gt;calendar&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/syndication" rel="tag"&gt;syndication&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/rss" rel="tag"&gt;rss&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115697594870699542?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115697594870699542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115697594870699542&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115697594870699542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115697594870699542'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/08/google-calendar-feed-cleaner.html' title='Google Calendar Feed Cleaner'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115695808416324769</id><published>2006-08-30T12:10:00.000-05:00</published><updated>2006-08-30T12:26:00.213-05:00</updated><title type='text'>YubNub LocationBar 0.15</title><content type='html'>I have released version 0.15 of my &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/yubnub-locationbar.html"&gt;YubNub LocationBar Firefox Extension&lt;/a&gt;.  There are some minor changes to the look and feel (the location bar shows the YubNub URL and icon while processing, and the YubNub icon shows on blank pages).  It also extends the local firefox keyword bookmarks to allow for switches.  If switches are added to the bookmark's URL (using YubNub ${name} syntax), then the bookmark will accept switches according to normal YubNub syntax.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt;  I forgot to mention -- it also stores up to 50 commands from your command history between sessions now.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/firefox" rel="tag"&gt;firefox&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115695808416324769?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115695808416324769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115695808416324769&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115695808416324769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115695808416324769'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/08/yubnub-locationbar-015.html' title='YubNub LocationBar 0.15'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115677618118140846</id><published>2006-08-28T09:26:00.000-05:00</published><updated>2006-08-28T11:21:55.093-05:00</updated><title type='text'>Blogger BETA</title><content type='html'>Blogger BETA has launched and with it comes many new features and challenges for us as hackers.  I'm slow on the draw for this one.  I was on a trip when the whole thing came down and am just now catching up.  FreshBlog, as always, has &lt;a href="http://blogfresh.blogspot.com/2006/08/significant-blogger-upgrade.html"&gt;the scoop extrordinaire&lt;/a&gt;.  Much good stuff over there... I wish they had some sort of 'blogger-beta' tag for all of it (or tagged it all both blogger and beta) so I could link to the category list (hint, hint ;) ).&lt;br /&gt;&lt;br /&gt;I'm not going to give a rundown of all the new stuff, but instead am going to give a 'so what' as relates to my stuff.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Busted Hacks&lt;/span&gt;&lt;br /&gt;I'm going to be creating a test Blogger BETA account soon and trying to fix up hacks that don't work there.  However, from what I'm hearing it seems that there is no HTML editing in the new template system, and I don't want to spend work making the old hacks work on the old template system for the new Blogger (that's a mouthful!).  I'd rather wait until hacks can be implemented in their own right on the new system.  More on this when something happens.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bloggercomments.ning.com/"&gt;&lt;span style="font-weight: bold;"&gt;Blogger Recent Comments&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Is dead.  Full stop.  No question there.  Blogger BETA has comment feeds.  I will keep the app running, however, for people who have not upgraded yet (like me!) and just for reference.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;&lt;span style="font-weight: bold;"&gt;FreshTags&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Both the main FreshTags and &lt;a href="http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my version&lt;/a&gt; are far from dead.  Just as &lt;a href="http://singpolyma-tech.blogspot.com/2006/03/freshtags-for-wordpress.html"&gt;FreshTags features are useful on WordPress&lt;/a&gt;, where there was already a category system, so they will continue to live on here on Blogger.  Since it's not my baby, I won't say too much, but we are certainly discussing the best way to move forward in this area.  For now, I have upgraded my version to support incoming ?labels= from other blogs, and also to use that locally (still supporting ?tags= from old FreshTags and FreshTags for WordPress).  If you are on Blogger BETA and want to use FreshTags 'as is' (provided you can get the script to work...) the following code will use the proper label display page instead of the 'fake post' for post display:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;script type="text/javascript"&amp;gt;var freshtags_tag_url = "/search";&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Upgrades to the Greasemonkey script should also be forthcoming.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;&lt;br /&gt;Have created a &lt;a href="http://singpolyma-beta.blogspot.com/index.html"&gt;BETA test blog &lt;/a&gt;and I have a mixed reaction.  The new templates interface is nice, and as long as they get HTML editing working for it, it should be über cool.  Some of the new button graphics are uglier, and the post published page doesn't seem to have the details on it anymore (because of the dynamism), which will cause problems for the GM world...  the JS/XHTML module funcitonality is nice though -- hacks will make use of that!  (perhaps even FT?)&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/beta" rel="tag"&gt;beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115677618118140846?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115677618118140846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115677618118140846&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115677618118140846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115677618118140846'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/08/blogger-beta.html' title='Blogger BETA'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115516957191065820</id><published>2006-08-09T19:18:00.000-05:00</published><updated>2006-08-11T09:05:11.266-05:00</updated><title type='text'>Blogger Hacks Wrink</title><content type='html'>A way to organise our microsphere, if only a little.  A compendium of blogger hacks blogs.  A social blogroll, which can also double as a blogring.  A &lt;a href="http://wrinks.ning.com/"&gt;wrink&lt;/a&gt;.  I've created it and put it in my sidebar, you can see it under the heading 'Blogger Hacks'.  I've opted to include it in 'ring' mode, which means you get next, previous, and random links that let you navigate the list.  Click the title to see the full list, or add your own blog.&lt;br /&gt;&lt;br /&gt;If you go to &lt;a href="http://wrinks.ning.com/wrink.php?id=1790699"&gt;the wrink page&lt;/a&gt; you can use the 'Add Site to Wrink' link to suggest your site for inclusion on the list.  It will be help pending my approval, but I should be monitoring regularly for new entries.  Then use either the 'Get Ring Code' link and select JavaScript (to add it as you see on my page) or the 'Get Roll Code' link (again select JavaScript, this will display the full list as a blogroll) and paste the code into your page.&lt;br /&gt;&lt;br /&gt;Weekly traffic stats across the whole list will be monitored, and the whole thing is available in JSON(P) format for custom implementations.  Drive traffic to your site while also giving your visitors the ability to find other blogs about blogger hacks!&lt;br /&gt;&lt;br /&gt;Feature suggestions and bug reports are, as always, greatly appreciated and anticipated.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blog" rel="tag"&gt;blog&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115516957191065820?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115516957191065820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115516957191065820&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115516957191065820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115516957191065820'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/08/blogger-hacks-wrink.html' title='Blogger Hacks Wrink'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115507446492888167</id><published>2006-08-08T16:57:00.000-05:00</published><updated>2006-08-08T17:01:04.930-05:00</updated><title type='text'>YubNub LocationBar 0.14</title><content type='html'>I have updated my &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/yubnub-locationbar.html"&gt;YubNub LocationBar FireFox Extension&lt;/a&gt;.  There was a minor glitch that caused typing local IPs (for router setup, etc) to be interpreted as YubNub commands.  This has been fixed.  I have also added a new feature.  If you have any FireFox keyword 'quick search' bookmarks defined, these now work, and are considered a higher precedence than YubNub commands.  Thus if you have a FireFox keyword bookmark defined for 'g' that does something other than Google search, that will be done when you type 'g blah' instead of using YubNub's command.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115507446492888167?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115507446492888167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115507446492888167&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115507446492888167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115507446492888167'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/08/yubnub-locationbar-014.html' title='YubNub LocationBar 0.14'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115496289803978968</id><published>2006-08-07T09:52:00.000-05:00</published><updated>2006-08-07T10:04:05.943-05:00</updated><title type='text'>Comment Feeds Without Well-formedness</title><content type='html'>In response to the popular confusion about &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/importance-of-xml-well-formedness.html"&gt;XML well-formedness&lt;/a&gt; and a &lt;a href="http://blogfresh.blogspot.com/2006/07/sidebar-comments-and-hearsay.html#c115452427970473319"&gt;recent nudgeing by Greg&lt;/a&gt;, I have upgraded &lt;a href="http://bloggercomments.ning.com/"&gt;Blogger Recent Comments&lt;/a&gt;.  People who have been there before will note that there is now one less &lt;a href="http://bloggercomments.ning.com/instructions.php"&gt;instruction&lt;/a&gt; -- XML well-formedness is no longer necessary!  I have tested this with a Blogger template on which I purposely broke well-formedness and the comments still came through fine!  Originally introduced &lt;a href="http://singpolyma-tech.blogspot.com/2005/12/blogger-comment-syndication-service.html"&gt;on this blog&lt;/a&gt;, Blogger Recent Comments is a &lt;a href="http://www.ning.com/"&gt;Ning&lt;/a&gt; app that can automatially generate RSS, JavaScript, and JSON feeds of all comments on your blog.  Setup is now just three easy steps!&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/xml" rel="tag"&gt;xml&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115496289803978968?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115496289803978968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115496289803978968&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115496289803978968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115496289803978968'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/08/comment-feeds-without-well-formedness.html' title='Comment Feeds Without Well-formedness'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115297513879100262</id><published>2006-07-15T09:31:00.000-05:00</published><updated>2007-02-19T08:43:07.367-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trackbacks'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='delicious'/><category scheme='http://www.blogger.com/atom/ns#' term='trackback'/><category scheme='http://www.blogger.com/atom/ns#' term='greasemonkey'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='ecmanaut'/><category scheme='http://www.blogger.com/atom/ns#' term='del.icio.us'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Blogger del.icio.us categorising, pinging, and trackback helper</title><content type='html'>&lt;b title="Updated 2007-02-19"&gt;I have a &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/for-new-blogger-blogger-delicious.html"&gt;version of this script for the new Blogger&lt;/a&gt; as well.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Many people have installed &lt;a href="http://ecmanaut.blogspot.com/2005/11/blogger-publish-ping-and-categorizer.html"&gt;Johan Sundström's del.icio.us Categoriser Script&lt;/a&gt; and reaped the benefits.  Some have also used my &lt;a href="http://singpolyma-tech.blogspot.com/2006/05/trackback-inside-blogger.html"&gt;trackback script&lt;/a&gt; to enable outbound trackback inside Blogger.  Now the power of these two scripts comes together to benefit everyone!&lt;br /&gt;&lt;br /&gt;With Johan's full approval I have married the two scripts into one &lt;a href="http://userscripts.org/scripts/show/4712"&gt;categoriser and trackback&lt;/a&gt; script.  This script is set up in such a way that installing it should overwrite any previous installation of Johan's script and keep your existing script settings.  To find out more about the categorising and pinging functions of the script, please read &lt;a href="http://ecmanaut.blogspot.com/2005/11/blogger-publish-ping-and-categorizer.html"&gt;Johan's post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The trackback features work slightly differently than they did in my previous script.  On the post-create page there is now a 'Trackback' textarea, instead of a form on the 'post complete' page.  Enter one or more trackback URLs (each on it's own line in the textarea) to use the trackack feature.  After publishing the post your trackbacks will be sent out automatically and the status will be displayed on the 'post complete' page.  For more information on trackback, &lt;a href="http://en.wikipedia.org/wiki/Trackback"&gt;go to Wikipedia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are also a couple minor new features for the categorising in this release.  One is the option to use the first 200 characters of the post body in the extended field on del.icio.us, instead of the datestamp.  The 'Tags:' label that one clicks to change settings is now blue, and your cursor should change into a hand when hovering it.  Also, when republishing your whole blog the link to del.icio.us from your last post will not be displayed.&lt;br /&gt;&lt;a href="http://userscripts.org/scripts/source/4712.user.js"&gt;&lt;br /&gt;Install the Greasemonkey Script&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115297513879100262?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115297513879100262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115297513879100262&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115297513879100262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115297513879100262'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/07/blogger-delicious-categorising-pinging.html' title='Blogger del.icio.us categorising, pinging, and trackback helper'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-115029128682392391</id><published>2006-06-14T07:36:00.000-05:00</published><updated>2007-01-13T18:51:20.688-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microformats'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><category scheme='http://www.blogger.com/atom/ns#' term='templates'/><category scheme='http://www.blogger.com/atom/ns#' term='xoxo'/><title type='text'>Singpolyma Templates</title><content type='html'>&lt;b title="Updated 2007-01-13"&gt;For templates for the new Blogger see &lt;a href="singpolyma-tech.blogspot.com/2006/12/singpolyma-templates-for-new-blogger.html"&gt;the updated post&lt;/a&gt;.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Due to some of the feedback I've been getting from hack implementors recently I have decided to roll out my own set of templates for Blogger, implementing various and sundry features that different persons have expressed interest in.  These templates are all loosely based on the Blogger Minima concept, with some inspiration from my blog also.  They have been written from scratch, however, and all have the following features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Conformance to &lt;a href="http://microformats.org/wiki/hatom"&gt;hAtom&lt;/a&gt; and the &lt;a href="http://blogxoxo.blogspot.com/2006/01/xoxo-blog-format.html"&gt;XOXO Blog Format&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://validator.w3.org/"&gt;XHTML validity&lt;/a&gt; as much as is possible with Blogger&lt;/li&gt;&lt;li&gt;Support for comment feeds both on the whole blog and individual posts&lt;/li&gt;&lt;li&gt;&lt;a href="http://microformats.org/wiki/hcard"&gt;hCard&lt;/a&gt; markup on the profile section of the sidebar&lt;/li&gt;&lt;li&gt;&lt;a href="http://singpolyma-tech.blogspot.com/2006/04/standard-comment-markup.html"&gt;'Standard' comment markup&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html"&gt;XOXO Blogroll Format&lt;/a&gt; blogrolls&lt;/li&gt;&lt;li&gt;Backlink counts&lt;/li&gt;&lt;/ul&gt;So, if you're looking for a new template, or just want some of these features or some of those that follow, this is for you.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/blogger-basic.template.txt"&gt;Basic Template&lt;/a&gt; - Peek-a-boo comments and backlinks&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/blogger-basic-nopeekaboo.template.txt"&gt;No Peek-a-boo&lt;/a&gt; - Same as basic template, but without the peek-a-boo comments and backlinks&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/blogger-basic-commentform.template.txt"&gt;With Comment Form&lt;/a&gt; - Peek-a-boo comments and backlinks with my &lt;a href="http://singpolyma-tech.blogspot.com/2006/01/new-inline-comments-form.html"&gt;inline comment form&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/blogger-basic-asynchcommentform.template.txt"&gt;Asynch Comment Form&lt;/a&gt; - Peek-a-boo comments and backlinks with my &lt;a href="http://singpolyma-tech.blogspot.com/2006/06/asynchronous-comment-form.html"&gt;asynchronous comment form&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xoxotools.ning.com/templates/blogger-basic-commentphotos.template.txt"&gt;Comment Photos&lt;/a&gt; - Peek-a-boo comments and backlinks with &lt;a href="http://singpolyma-tech.blogspot.com/2006/05/comment-photos-and-highlighting.html"&gt;inline comment photos and author highlighting&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;If anyone wants another version of this template created (ie, some combination of the hacks, or for another hack) feel free to contact me.  If anyone has any ideas or feedback at all concerning the usefulness of / look of these templates, again, I have an open ear.  I would ask that you keep your comments positive.  'This Sucks!' is not all that helpful to me, even if that's how you feel ;)&lt;br /&gt;&lt;br /&gt;Notes to advanced users: Hopefully these templates will also be useful to you in examining my code, etc.  To remove peek-a-boo from comments or backlinks in any of the above templates, simply remove the onclick handler from the appropriate link.  It should also be mentioned that these templates all support both versions of &lt;a href="http://singpolyma-tech.blogspot.com/2006/01/blogger-comment-permalinks.html"&gt;blogger comment permalinks&lt;/a&gt;.  If you have any questions about the features on these templates I'm just an email/comment away!&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-115029128682392391?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/115029128682392391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=115029128682392391&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115029128682392391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/115029128682392391'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/singpolyma-templates.html' title='Singpolyma Templates'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114976179885663779</id><published>2006-06-08T05:01:00.000-05:00</published><updated>2006-12-21T10:08:03.663-05:00</updated><title type='text'>Asynchronous Comment Form</title><content type='html'>&lt;b title="Updated 2006-12-21"&gt;See &lt;a href="http://singpolyma-tech.blogspot.com/2006/12/comment-forms-and-blogger-beta.html"&gt;this page&lt;/a&gt; for a similar hack for the new version of Blogger.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="Updated 2006-12-05"&gt;This hack &lt;a href="http://singpolyma-tech.blogspot.com/2006/11/inline-comment-form-for-beta-news.html"&gt;does not&lt;/a&gt; work with Blogger BETA.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is a new, partly experimental, upgrade to &lt;a href="http://singpolyma-tech.blogspot.com/2006/01/new-inline-comments-form.html"&gt;my inline comments form&lt;/a&gt;.  Credit goes to Aditya of &lt;a href="http://the-lastword.blogspot.com/"&gt;The Last Word&lt;/a&gt; for inspiring this hack.  Comments are posted without ever leaving the post page and then the page is reloaded.  You never see the Blogger comment page unless there is an error.  The form is still &lt;a href="http://cocomment.com/"&gt;coComment&lt;/a&gt; compatible and supports posting using your Blogger account :)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Word verification for comments must be turned off (to do this go to the 'comments' tab in your blog settings, scroll to 'Show word verification for comments?' and select 'No')&lt;/li&gt;&lt;li&gt;Turn comment posting by anonymous users on (to do this go to the 'comments' tab in your blog settings, scroll to 'Who Can Comment?' and select 'Anyone')&lt;/li&gt;&lt;li&gt;Insert the following code into the &amp;lt;head&amp;gt; section of your blog template :&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=1338954"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt; var comment_form_template = '&amp;lt;div class="comment-poster"&amp;gt;[[AUTHOR]]&amp;lt;/div&amp;gt;\n'&lt;br /&gt;          + '&amp;lt;div class="comment-body"&amp;gt;&amp;lt;div class="innerCmntBody"&amp;gt;[[BODY]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;\n'&lt;br /&gt;          + '&amp;lt;div class="comment-timestamp"&amp;gt;&amp;lt;a href="[[PERMALINK]]" title="comment permalink"&amp;gt;[[DATE]]&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;\n';&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Insert the following code directly after your &amp;lt;body&amp;gt; tag:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;iframe id="comment_form_target" name="comment_form_target" style="display:none;" onload="if(comment_form) {check_comment_posted();}"&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Replace the &amp;lt;$BlogItemCreate$&amp;gt; tag with the following code:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;div id="comment_form_preview&amp;lt;$BlogItemNumber$&amp;gt;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ItemPage&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;var blogTool = "Blogger";&lt;br /&gt;var blogURL = "&amp;lt;$BlogURL$&amp;gt;/";&lt;br /&gt;var blogTitle = "&amp;lt;$BlogTitle$&amp;gt;";&lt;br /&gt;var postURL = "&amp;lt;$BlogItemPermalinkUrl$&amp;gt;";&lt;br /&gt;var postTitle = "&amp;lt;BlogItemTitle&amp;gt;&amp;lt;$BlogItemTitle$&amp;gt;&amp;lt;/BlogItemTitle&amp;gt;";&lt;br /&gt;var commentAuthorFieldName = "anonName";&lt;br /&gt;var commentAuthorLoggedIn = "false";&lt;br /&gt;var commentFormID = "cformtag&amp;lt;$BlogItemNumber$&amp;gt;";&lt;br /&gt;var commentTextFieldName = "postBody";&lt;br /&gt;var commentButtonName = "post";&lt;br /&gt;var cocomment_force = false;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script id="cocomment-fetchlet" type="text/javascript" src="http://www.cocomment.com/js/cocomment.js"&amp;gt; &amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;/ItemPage&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ItemPage&amp;gt;&amp;lt;a href="javascript:toggleitem('cform');"&amp;gt;Post a Comment&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;div style="display:block;" id="cform"&amp;gt;&amp;lt;/ItemPage&amp;gt;&lt;br /&gt;&amp;lt;MainOrArchivePage&amp;gt;&amp;lt;a href="javascript:toggleitem('cform&amp;lt;$BlogItemNumber$&amp;gt;');"&amp;gt;Post a Comment&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;div style="display:none;" id="cform&amp;lt;$BlogItemNumber$&amp;gt;"&amp;gt;&amp;lt;/MainOrArchivePage&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;form target="comment_form_target" id="cformtag&amp;lt;$BlogItemNumber$&amp;gt;" action="http://www.blogger.com/login-comment.do" onsubmit="comment_form_submit(this);isSubmit=true;" method="post"&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="hidden" name="blogID" value="&amp;lt;$BlogID$&amp;gt;" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="hidden" name="postID" value="&amp;lt;$BlogItemNumber$&amp;gt;" /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2 class="sidebar-title form-title"&amp;gt;&amp;lt;label class="cbody"&amp;gt;Leave your comment &amp;lt;/label&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2 class="sidebar-title"&amp;gt;&amp;nbsp; You can use some HTML tags, such as &amp;lt;b&amp;gt;&amp;nbsp; &amp;amp;lt;b&amp;amp;gt;, &amp;amp;lt;i&amp;amp;gt;, &amp;amp;lt;a&amp;amp;gt;&amp;nbsp; &amp;lt;/b&amp;gt; &amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textarea name="postBody" class="comment" rows="8" cols="40" onkeyup="comment_form_preview(this.form);"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2 class="sidebar-title identity"&amp;gt; Choose an identity &amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input id="idenBlogger&amp;lt;$BlogItemNumber$&amp;gt;" type="radio" name="iden" value="Blogger" checked="checked" onchange="toggleitem('cfo&amp;lt;$BlogItemNumber$&amp;gt;');comment_form_preview(this.form);" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt; Your Blogger display name &amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="radio" name="iden" value="Other" onchange="toggleitem('cfo&amp;lt;$BlogItemNumber$&amp;gt;');comment_form_preview(this.form);" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt;Other&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div style="display:none;" id="cfo&amp;lt;$BlogItemNumber$&amp;gt;"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table style="margin-left: 4em;" cellpadding="0" cellspacing="0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt; &amp;lt;td colspan="2" style="padding-top:.4em;position:relative;left:-4em;" align="left"&amp;gt; These fields are optional, but I would appreciate it if you filled them out. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; &amp;lt;label&amp;gt; Name &amp;lt;/label&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt; &amp;lt;div class="errorbox-good"&amp;gt; &amp;lt;input  type="text" name="anonName" value="" maxlength="100" class="text" /&amp;gt;&amp;nbsp; &amp;lt;/div&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; &amp;lt;label&amp;gt; Your web page &amp;lt;/label&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt; &amp;lt;div class="errorbox-good"&amp;gt; &amp;lt;input  type="text" name="anonURL" value="" maxlength="100" class="text" /&amp;gt;&amp;nbsp; &amp;lt;/div&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class="diff-user"&amp;gt;&amp;nbsp; Or you can sign in&amp;nbsp; &amp;lt;a href="http://www.blogger.com/login.g?r=http%3A%2F%2Fwww.blogger.com%2Fcomment.g%3FblogID%3D&amp;lt;$BlogID$&amp;gt;%26postID%3D&amp;lt;$BlogItemNumber$&amp;gt;"&amp;gt;&amp;nbsp; as a different user&amp;lt;/a&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class="errorbox-good"&amp;gt;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p class="buttons"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input style="margin-right:.3em" name="post" value="Publish Your Comment" class="publish"  type="submit" tabindex="2" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input value="Preview" type="submit" name="preview"  tabindex="3" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Save your template and republish your blog&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Note to advanced users : The variable set in step 3 is the template used by the script to generate previews.  You can modify it to be closer to the code generated for comments on your blog so that users get a better preview :)  Some may also wish to &lt;a href="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;id=1338954"&gt;browse the JavaScript source&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114976179885663779?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114976179885663779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114976179885663779&amp;isPopup=true' title='66 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114976179885663779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114976179885663779'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/asynchronous-comment-form.html' title='Asynchronous Comment Form'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>66</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114967366865600818</id><published>2006-06-07T04:27:00.000-05:00</published><updated>2006-06-07T04:47:48.673-05:00</updated><title type='text'>Survey: The Perfect Blogging Service</title><content type='html'>You know what you want from your blogging service.  If you use Blogger, you may have written a '&lt;a href="http://singpolyma-tech.blogspot.com/2006/03/beef-up-blogger.html"&gt;Beef up Blogger&lt;/a&gt;'-style post, even.  Or a Beef up WordPress post.  Or maybe even a Beef up Xanga post (yes, there are some real bloggers on Xanga).  I at one point even had a &lt;a href="http://www.awriterz.org/etcetc/BloggingReviews/ratingBreakdown.php"&gt;rating breakdown&lt;/a&gt; to see how well blogging services matched up to my ideal!  While my opinions have changed over time, one thing still remains - no service is perfect.  No matter what you use there are things you wish your service could do.  That's why we &lt;span style="font-style: italic;"&gt;have&lt;/span&gt; blog hacks!&lt;br /&gt;&lt;br /&gt;This post is a survey.  What &lt;span style="font-style: italic;"&gt;is&lt;/span&gt; the perfect blogging service?  We're all going to answer differently, but hopefully some patterns will emerge.  What features are important?  Forget for a moment what is supported by your particular platform and just tell us what you want.  Not what you wish you had, but what you want even if you have it.  Trackback can be important to you even if you use WordPress.  Maybe that's &lt;span style="font-style: italic;"&gt;why&lt;/span&gt; you're using WordPress.&lt;br /&gt;&lt;br /&gt;The purpose of this survey is not to determine one particular existing service that is the 'perfect blogging service', but rather to identify the feature set that is important to bloggers.&lt;br /&gt;&lt;br /&gt;You can respond to this survey by leaving a comment on this post (probably preferred) or by writing a post on your blog and linking back here.  I don't trust blog search or backlinks, so I'd really appreciate trackback pings if you decide on the latter, or a comment with a link to your post.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogging" rel="tag"&gt;blogging&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blog" rel="tag"&gt;blog&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/survey" rel="tag"&gt;survey&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114967366865600818?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114967366865600818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114967366865600818&amp;isPopup=true' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114967366865600818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114967366865600818'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/survey-perfect-blogging-service.html' title='Survey: The Perfect Blogging Service'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114959953985902812</id><published>2006-06-06T08:03:00.000-05:00</published><updated>2006-06-06T08:12:19.860-05:00</updated><title type='text'>Asynchronous FreshTags</title><content type='html'>I have updated &lt;a href="http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my version of FreshTags&lt;/a&gt; to include support for asynchronous loading of posts.  Now if you add the following code to your template:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;var freshtags_tag_format = "drop-add-async";&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Instead of the drop-down box taking you over to the tags post page it will load the posts for the tag combination for you asynchronously in the sidebar.&lt;br /&gt;&lt;br /&gt;A nice side-benefit of this is that you may now use all the other FreshTags tag-list types (except custom), including flat, flat-multi, list, list-multi, scroll, drop, and sub.  Just put them in the above code where I have 'drop-add-async'.&lt;br /&gt;&lt;br /&gt;You will have to be using the jscripts.ning.com version of my FreshTags implementation for this to work, instead of the old one hosted on AWriterz.  The code for the new include (which you can replace the old one with to upgrade) is:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=818185"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/update" rel="tag"&gt;update&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114959953985902812?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114959953985902812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114959953985902812&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114959953985902812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114959953985902812'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/asynchronous-freshtags.html' title='Asynchronous FreshTags'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114959663714598495</id><published>2006-06-06T06:51:00.000-05:00</published><updated>2006-06-06T07:23:57.356-05:00</updated><title type='text'>Last Updated Posts</title><content type='html'>Aditya of &lt;a href="http://the-lastword.blogspot.com/"&gt;The Last Word&lt;/a&gt; has made a very useful discovery -- the new Blogger RSS feeds are ordered by last update!  This means that when you make an edit on an old post, that post is moved to the top of your RSS feed!  The use for this immidiately becomes apparent : a widget for showing which posts have been updated recently!&lt;br /&gt;&lt;br /&gt;Based off of a quick hack Aditya threw together I have developed some reuseable code to just this end.  I have it running asynchronously in my sidebar under the 'Previous Posts' heading.  When you first load the page (or if you have JavaScript turned off) the normal Blogger-generated 'Previous Posts' list is displayed.  After the page has loaded, if you have JavaScript on, the list will update to a list of the most recently updated posts.&lt;br /&gt;&lt;br /&gt;So, on to the code!  There are two versions of this hack : synchronous and asynchronous.  If you want it to run synchronously (that is, the page waits for the hack to finish before it continues to render) place the following code where you want the widget to appear:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=1317016"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;do_updated_posts('&amp;lt;$BlogURL$&amp;gt;','',5);&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;You can change the 5 to whatever number of posts you want in the list.  Save and republish : you're done!&lt;br /&gt;&lt;br /&gt;If you want it to run asynchronously (the page loads before the hack does), insert the following code into your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=1317016"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;addLoadEvent(function(){do_updated_posts('&amp;lt;$BlogURL$&amp;gt;','last_updated_posts',5);});&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Again, you can change the 5 to whatever number of posts you want in the list.  Then, insert the following code where you want the list to display:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;div id="last_updated_posts"&amp;gt;&amp;lt;i&amp;gt;Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Save and republish.  You're done!&lt;br /&gt;&lt;br /&gt;The whole way this works may just be a bug in the rss.xml generating engine.  If it is, this hack will stop working when they fix it, since it is dependant on the order of items in rss.xml.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114959663714598495?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114959663714598495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114959663714598495&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114959663714598495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114959663714598495'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/last-updated-posts.html' title='Last Updated Posts'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114957784584320603</id><published>2006-06-06T02:01:00.000-05:00</published><updated>2006-06-06T02:10:45.860-05:00</updated><title type='text'>IM Interoperability</title><content type='html'>&lt;a href="http://www.jabber.org/"&gt;Jabber&lt;/a&gt; is the ineroperable-IM protocol... but only geeks even know it exists!  With the advent of &lt;a href="http://talk.google.com."&gt;Google Talk&lt;/a&gt; there are more people using it -- but many of them don't even know it.  So while Google has federated with the Jabber/XMPP universe, most IM users are still stuck in the MSN, Yahoo, AOL world unable to read out.&lt;br /&gt;&lt;br /&gt;The big guys may only be in it for the money, but they're not stupid.  They know that having an account on every major IM network is a huge pain.  They just haven't figured out yet how to work together without losing their precious revenue.  They seem to be moving in the right direction, however.  The MSN Messenger (soon to be Windows Live Messenger) team has affirmed and re-announced their &lt;a href="http://spaces.msn.com/messengersays/Blog/cns%215B410F7FD930829E%2116754.entry"&gt;intention to federation with Yahoo Messenger&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It seems to be unclear whether this will be an actual network federation or a multi-client style feature.  What I mean is, will only users of the newest versions of WLM be able to talk to Y!IM?  What about older clients?  What about Jabber transports?  Obviously the transports should be able to evolve to support this (yay!) but whether they themselves allow for full network federation, I think, will be an indication of how ready the big guys are for interoperability.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/im" rel="tag"&gt;im&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yahoo" rel="tag"&gt;yahoo&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/jabber" rel="tag"&gt;jabber&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114957784584320603?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114957784584320603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114957784584320603&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114957784584320603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114957784584320603'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/im-interoperability.html' title='IM Interoperability'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114950204097926196</id><published>2006-06-05T04:31:00.000-05:00</published><updated>2006-06-05T05:13:14.800-05:00</updated><title type='text'>Asyncronous Archives</title><content type='html'>This hack combines two popular archive hacks with a new functionality in the same script.  The two popular hacks included are the displaying of archive post counts in the archive list, and the re-ordering of the archive list.  These two can be applied using the script with or without the third, new, functionality with is asyncronous loading of archives into the sidebar.  If you don't know what that means, try it out in my sidebar.  Select an archive from the drop-down and notice that instead of being taken to the archive page, the posts in that archive are listed for you right in the sidebar.  The steps to implement either part of this hack follow:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Edit your blog template and add the following code directly after the &amp;lt;body&amp;gt; tag:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;ArchivePage&amp;gt;&lt;br /&gt;&amp;lt;!-- START ARCHIVE XOXO --&amp;gt;&lt;br /&gt;&amp;lt;ul class="xoxo posts" style="display:none;"&amp;gt;&lt;br /&gt;&amp;lt;Blogger&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href="&amp;lt;$BlogItemPermalinkUrl$&amp;gt;"&amp;gt;&amp;lt;BlogItemTitle&amp;gt;&amp;lt;$BlogItemTitle$&amp;gt;&amp;lt;/BlogItemTitle&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/Blogger&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;!-- END ARCHIVE XOXO --&amp;gt;&lt;br /&gt;&amp;lt;/ArchivePage&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Note: if you have your blog marked up using &lt;a href="http://microformats.org/wiki/hatom"&gt;hAtom&lt;/a&gt; or the &lt;a href="http://blogxoxo.blogspot.com/2006/01/xoxo-blog-format.html"&gt;XOXO Blog Format&lt;/a&gt; this step is unnecessary.&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add the following code into your sidebar where you want the archive list to display:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;div id="archive_list"&amp;gt;&amp;lt;i&amp;gt;Loading Archives...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="archive_display"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;noscript&amp;gt;&lt;br /&gt;&amp;lt;ul class="archive-list"&amp;gt;&amp;lt;BloggerArchives&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href="&amp;lt;$BlogArchiveURL$&amp;gt;"&amp;gt;&amp;lt;$BlogArchiveName$&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/BloggerArchives&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/noscript&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Note to advanced users.  The noscript section &lt;b&gt;is necessary&lt;/b&gt;.  You can edit it, but only if you pass two additional parameters to the function in the next step containing the code starting the list and ending the list.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Add the following code into your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=1286814"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;addLoadEvent(function(){get_archive_list('archive_list','archive_display','&lt;span style="color:red;"&gt;format&lt;/span&gt;',&lt;span style="color:red;"&gt;sort&lt;/span&gt;);});&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Where &lt;span style=";font-family:monospace;color:red;"  &gt;format&lt;/span&gt; is &lt;b&gt;drop&lt;/b&gt; if you want a drop-down archive list or &lt;b&gt;list&lt;/b&gt; if you want the archives displayed in an unordered list. &lt;span style=";font-family:monospace;color:red;"  &gt;sort&lt;/span&gt; is &lt;b&gt;true&lt;/b&gt; to sort the archive list oldest-to-newest and &lt;b&gt;false&lt;/b&gt; to sort newest-to-oldest.&lt;br /&gt;&lt;br /&gt;If you want the archive list to link to the archive pages instead of loading in the sidebar then delete the &lt;span style="font-family:monospace;"&gt;archive_display&lt;/span&gt; text from the code above.&lt;/li&gt;&lt;li&gt;Save your template and republish your blog.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Advanced users may be interested in the &lt;a href="http://singpolymaplay.ning.com/bloggerarchives/"&gt;information on the scripts behind this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/archives" rel="tag"&gt;archives&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114950204097926196?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114950204097926196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114950204097926196&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114950204097926196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114950204097926196'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/06/asyncronous-archives.html' title='Asyncronous Archives'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114905964151729364</id><published>2006-05-31T02:05:00.000-05:00</published><updated>2006-05-31T02:14:01.550-05:00</updated><title type='text'>Blogger Supporting RSS?</title><content type='html'>For the longest time Blogger has been ATOM-only.  This now seems to be a thing of the past.  While I can find no official announcement anywhere, RSS 2.0 feeds seem to now be available on all Blogger blogs (unless the blog has not had the index published since whenever the change was).  As you would expect, while the old was, say:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://singpolyma-tech.blogspot.com/atom.xml"&gt;http://singpolyma-tech.blogspot.com/atom.xml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;They have added to this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://singpolyma-tech.blogspot.com/rss.xml"&gt;http://singpolyma-tech.blogspot.com/rss.xml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's not the nicest implementation of RSS 2.0 I've seen, and I'm going to keep using my hAtom2RSS-through-feedburner feed for the comment options, but this is definately a step forward for Blogger.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/rss" rel="tag"&gt;rss&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114905964151729364?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114905964151729364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114905964151729364&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114905964151729364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114905964151729364'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/blogger-supporting-rss.html' title='Blogger Supporting RSS?'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114897911169276403</id><published>2006-05-30T03:41:00.000-05:00</published><updated>2006-10-28T10:28:23.136-05:00</updated><title type='text'>Trackback Inside Blogger</title><content type='html'>&lt;b title="Update 2006-10-28"&gt;It is reccomended that you use the new &lt;a href="http://singpolyma-tech.blogspot.com/2006/07/blogger-delicious-categorising-pinging.html"&gt;del.icio.us, pinging, AND trackback script&lt;/a&gt;.  This one may still work, but I no longer actively support it.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Blogger has no native trackback capabilities.  While trackback is a wonderful tool, it can sometimes just be too much of a pain for Blogger users.  After all, you just went to the work of writing a wonderful post, who wants to bother making a hop over to Haloscan afterwards to send trackbacks to others?  With the advent of the semi-automatic Backlinks we seem to be ever less inclined to make the extra hop.&lt;br /&gt;&lt;br /&gt;Now, the extra hop can be a thing of the past.  Install the &lt;a href="http://userscripts.org/scripts/source/4148.user.js"&gt;Blogger Trackback Userscript&lt;/a&gt; and get trackback functionality directly from your Blogger dashboard!  Every time you publish a post, the script harvests the title, permalink, and post excerpt (as well as blog title) and then displays a form on the 'post complete' page for trackbacks.  Enter the trackback URLs one at a time and hit enter.  The trackbacks will be completed AJAXially.&lt;br /&gt;&lt;br /&gt;Much thanks to Johan's &lt;a href="http://ecmanaut.blogspot.com/2005/11/blogger-publish-ping-and-categorizer.html"&gt;Blogger del.icio.us helper&lt;/a&gt; script which facilitated much of the code for this script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Possible Future Features&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Support for autodiscovery trackback RDF so that one can enter simply the post URL for a trackback and not have to use the full trackback URL&lt;/li&gt;&lt;li&gt;Optionally try auto-trackbacking to all posts linked to from the post&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/backlinks" rel="tag"&gt;backlinks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/trackbacks" rel="tag"&gt;trackbacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114897911169276403?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114897911169276403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114897911169276403&amp;isPopup=true' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114897911169276403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114897911169276403'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/trackback-inside-blogger.html' title='Trackback Inside Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114733238710103228</id><published>2006-05-11T02:17:00.000-05:00</published><updated>2006-05-11T02:26:27.116-05:00</updated><title type='text'>Virtually Synonymous Tags</title><content type='html'>Most of us are aware of the problem.  If I tag this post 'web2.0' and you monitor Technorati for the tag 'web20' then we're sunk.  You'll never find me.  If I tag a webpage on del.icio.us as 'hacks' and you monitor the page for 'hack', you may never see it.  These tags are &lt;a href="http://tagging.ning.com/about.php#synonymous"&gt;virtually synonymous&lt;/a&gt;, but a computer can't tell that.&lt;br /&gt;&lt;br /&gt;Enter &lt;a href="http://tagging.ning.com/"&gt;Tagging&lt;/a&gt;, a new &lt;a href="http://www.ning.com/"&gt;Ning &lt;/a&gt;app designed to solve this very problem.  The app stores groups of virtually synonymous tags (or &lt;a href="http://tagging.ning.com/about.php#taggroups"&gt;TagGroups&lt;/a&gt;) that are defined by the community and provides easy access to them via both XOXO and JSON(P) APIs.  With space to clearly define and describe TagGroups and a &lt;a href="http://www.cocomment.com/"&gt;coComment&lt;/a&gt; &lt;a href="http://www.cocomment.com/teamblog/?p=63"&gt;catch-all &lt;/a&gt;discussion system the community solves their own problem by defining for the system what tags mean the same thing.&lt;br /&gt;&lt;br /&gt;For more information see the &lt;a href="http://tagging.ning.com/about.php"&gt;Tagging About Page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/tagging" rel="tag"&gt;tagging&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/website" rel="tag"&gt;website&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/web2.0" rel="tag"&gt;web2.0&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114733238710103228?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114733238710103228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114733238710103228&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114733238710103228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114733238710103228'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/virtually-synonymous-tags.html' title='Virtually Synonymous Tags'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114715911896649571</id><published>2006-05-09T02:10:00.000-05:00</published><updated>2006-05-31T01:41:32.436-05:00</updated><title type='text'>Yurnet : When You Don't Know Where to Look</title><content type='html'>&lt;a href="http://ww2.yurnet.com:8080/"&gt;Yurnet&lt;/a&gt; is a search engine with an interesting model -- search for things instead of in places.  If you want to search for DVDs, but don't know what engine to use to do that, you could search Google for an appropriate engine, then search that engine, or just go to Yurnet and pick 'dvd'.&lt;br /&gt;&lt;br /&gt;Yurnet takes awhile to get your head around.  That's because at first it looks like a cheesy metasearch engine.  If you're still thinking search &lt;span style="font-style: italic;"&gt;where&lt;/span&gt; it seems almost rediculous.  Which is faster : going to Google Images and searching for what you want or going to Yurnet, picking Google Images, and searching?  The answer is they're basically the same.  After corrospondence back and forth to the site creator, however, I finally came to understand that the real point of Yurnet is search &lt;span style="font-style: italic;"&gt;what&lt;/span&gt; for when you don't &lt;span style="font-style: italic;"&gt;know&lt;/span&gt; what site to search.&lt;br /&gt;&lt;br /&gt;That said, the site is rather ugly.  The final resolved URL is http://ww2.yurnet.com:8080/ -- not exactly something that looks pretty in bookmarks.  The drop-down select box is a mélange of capitalization schemes, and the 'vs' searches (which really are out of the scope of the site) are listed first, giving an initial illusion that alphabetical order is not preserved.  Also, some things are listed as &lt;span style="font-style: italic;"&gt;where&lt;/span&gt;s still (ie Google Image).  Realistically the box should be cleaned up to use the same capitalization schemes throughout and be &lt;span style="font-style: italic;"&gt;only&lt;/span&gt; a list of &lt;span style="font-style: italic;"&gt;what&lt;/span&gt;s in alphabetical order, without engine names and the like getting in the way.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/search" rel="tag"&gt;search&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114715911896649571?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114715911896649571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114715911896649571&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114715911896649571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114715911896649571'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/yurnet-when-you-dont-know-where-to.html' title='Yurnet : When You Don&apos;t Know Where to Look'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114708199823636460</id><published>2006-05-08T04:14:00.000-05:00</published><updated>2007-01-09T16:49:31.690-05:00</updated><title type='text'>Comment Photos and Highlighting</title><content type='html'>&lt;b title="Updated 2006-12-19"&gt;&lt;a href="http://purplemoggy.blogspot.com/"&gt;PurpleMoggy&lt;/a&gt; has created a &lt;a href="http://purplemoggy.blogspot.com/2006/12/comment-author-photos.html"&gt;set of instructions for using this on Blogger BETA&lt;/a&gt;.  I have updated my hack to support his new features and fix the bugs he found.  There is also now a new 'no image' image.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Awhile back I wrote a post detailing my hack for adding &lt;a href="http://singpolyma-tech.blogspot.com/2006/03/profile-photos-with-comments.html"&gt;profile photos to comments&lt;/a&gt;.  Unfortunately that post was rather technical in its explanation.  This post attempts to deal with adding the hack to your blog in a more user-friendly fashion and also with using the hack to highlight blog-contributor comments.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 1&lt;/span&gt; - The first thing you need to do is find the comment section in your blog template.  Edit your template and scroll down until you find the &amp;lt;BlogItemComments&amp;gt; tag.  The code inside should look something like this:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;div class="comment-poster" id="c&amp;lt;$BlogCommentNumber$&amp;gt;"&amp;gt;&lt;br /&gt;&amp;lt;a name="c&amp;lt;$BlogCommentNumber$&amp;gt;"&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;$BlogCommentAuthor$&amp;gt; said...&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="comment-body"&amp;gt;&lt;br /&gt;&amp;lt;div class="innerCmntBody"&amp;gt;&amp;lt;$BlogCommentBody$&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="comment-timestamp"&amp;gt;&lt;br /&gt;&amp;lt;a href="#c&amp;lt;$BlogCommentNumber$&amp;gt;" title="comment permalink"&amp;gt;4/26/2006 07:49:51 PM&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2 &lt;/span&gt;- If you plan to use comment highlighting (so that the comments made by blog authors look different from those of users) this must be wrapped in another tag so that all of the code for each comment is in one tag.  Like so:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;div &lt;u&gt;class="commentelem"&lt;/u&gt;&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="comment-poster" id="c&amp;lt;$BlogCommentNumber$&amp;gt;"&amp;gt;&lt;br /&gt;&amp;lt;a name="c&amp;lt;$BlogCommentNumber$&amp;gt;"&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;$BlogCommentAuthor$&amp;gt; said...&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="comment-body"&amp;gt;&lt;br /&gt;&amp;lt;div class="innerCmntBody"&amp;gt;&amp;lt;$BlogCommentBody$&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="comment-timestamp"&amp;gt;&lt;br /&gt;&amp;lt;a href="#c&amp;lt;$BlogCommentNumber$&amp;gt;" title="comment permalink"&amp;gt;4/26/2006 07:49:51 PM&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;/div&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Some blog templates will already have a tag around their comments, as will those using the &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/standard-comment-markup.html"&gt;'standard' comment markup&lt;/a&gt;.  If you have one of those templates just write down the class of the wrapping tag or add one (the underlined section above).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3&lt;/span&gt; - Next we need the class of the element where we can look for the link to the author.  In the example code above this would be comment-poster.  When in doubt use the class of the overall wrapping tag.  Once you have it, write it down.  Count the number of &amp;lt;a&amp;gt; tags there are before the &amp;lt;$BlogCommentAuthor$&amp;gt; tag and write this number down (in the above example it is 1).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 4&lt;/span&gt; - The only thing left to do in this part of the code is to insert the element where the profile photo will go.  Add this code right before the &amp;lt;$BlogCommentBody$&amp;gt; tag: &amp;lt;div class="commentphoto"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 5&lt;/span&gt; - Now go to the &amp;lt;head&amp;gt; section of your blog and add the following code:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=830605"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;function thisblog_showCommentPhotos() {showCommentPhotos('commentphoto','&lt;span style="color:red;"&gt;class of author wrapper&lt;/span&gt;',&lt;span style="color:red;"&gt;# of a tags&lt;/span&gt;,'&lt;span style="color:red;"&gt;main wrapper class&lt;/span&gt;','&amp;lt;$BlogURL$&amp;gt;','&lt;span style="color:red;"&gt;highlighted text colour&lt;/span&gt;','&lt;span style="color:red;"&gt;highlighted text background&lt;/span&gt;';}&lt;br /&gt;addLoadEvent(thisblog_showCommentPhotos);});&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Where class of author wrapper is the class you wrote down in step 3, the # of a tags is the number you wrote down in step 3, and the main wrapper class is the class you wrote down in step 2.  If you are not going to use comment highlighting the last for parameters can be left off (from main wrapper class to highlighted tex background) otherwise you have to fill in the color you with the text and background of highlighted comments to be in their appropriate spots above.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 6&lt;/span&gt; - Save and Republish!&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114708199823636460?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114708199823636460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114708199823636460&amp;isPopup=true' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114708199823636460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114708199823636460'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/comment-photos-and-highlighting.html' title='Comment Photos and Highlighting'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114663970396853815</id><published>2006-05-03T01:48:00.000-05:00</published><updated>2006-05-30T11:47:40.433-05:00</updated><title type='text'>Windows XP Recovery Console</title><content type='html'>Well this is a bit of a different-style post for me, but this discovery struck me as extremely useful and so I thought I'd share it with any of my readers who may not have seen it yet.&lt;br /&gt;&lt;br /&gt;On the transition to Windows XP I was horrified to discover that the 'emergency boot disk' that XP creates &lt;span style="font-style: italic;"&gt;cannot&lt;/span&gt; read NTFS partitions.  It boots to MSDOS7.0 and then if your computer is NTFS you can do nothing.  This essentially destroyed any chance of accessing your data if you could not boot to Windows.  Many times during computer repair this was a hindrance and either elaborate workarounds had to be devised, or I fell back to the cure-all 'reformat and reinstall'.&lt;br /&gt;&lt;br /&gt;Yesterday I discovered an incredibly useful tool from Microsoft in an incredibly obvious place: the Windows XP install CD.  If you boot from the CD and press 'R' at the 'Welcome to Setup' screen you are taken to the &lt;a href="http://support.microsoft.com/?kbid=314058"&gt;Windows XP Recovery Console&lt;/a&gt;.  This is exactly what I had been looking for for so long: a reformulation of MSDOS that can access NTFS partitions!  I was able to use it to run CHKDSK (scandisk seems to be out) and fix the minor problem the drive had -- saving potentially hours of work to fix the problem any other way.  There are even some XP-centric commands for dealing with user accounts etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What this does not help&lt;/span&gt; is users of many preinstalled systems, especially laptops.  Most (if not all) of the 'restore disks' sent with such systems do not have the Recovery Console.  However, techies who have a copy of the install disks can use their copy to run the Recovery Console on another person's system.  No activation procedure ;)  Even XP Professional install disks' Console will work just fine with XP Home systems :)&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/windows" rel="tag"&gt;windows&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/repair" rel="tag"&gt;repair&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114663970396853815?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114663970396853815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114663970396853815&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114663970396853815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114663970396853815'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/windows-xp-recovery-console.html' title='Windows XP Recovery Console'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114656419179515665</id><published>2006-05-02T05:00:00.000-05:00</published><updated>2006-05-02T05:17:49.486-05:00</updated><title type='text'>Google AJAX</title><content type='html'>&lt;a href="http://singpolymaplay.ning.com/gajax.php"&gt;Google AJAX&lt;/a&gt; is an interface for Google search that allows you to get the search results AJAX-style.  This can be really handy when doing a series of quick searches.  Better yet, however, is the widget that comes with it.  Simply cut-and-paste the given code into your blog sidebar and you have inline Google search power -- the results are displayed right in your sidebar!  You can also (optionally) specify a URL to restrict the search to, thus creating a widget to do an AJAX-style search on your own site using the power of Google right from your sidebar!  You can see an example of this in my own sidebar.  The script is built using the power of &lt;a href="http://yubnub.org/"&gt;YubNub&lt;/a&gt;. &lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/google" rel="tag"&gt;google&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ajax" rel="tag"&gt;ajax&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widgets" rel="tag"&gt;widgets&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114656419179515665?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114656419179515665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114656419179515665&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114656419179515665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114656419179515665'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/05/google-ajax.html' title='Google AJAX'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114612738849424379</id><published>2006-04-27T02:38:00.000-05:00</published><updated>2006-08-11T09:06:02.516-05:00</updated><title type='text'>'Standard' Comment Markup?</title><content type='html'>What would be the benefits of standardising our comment markup?  Well, that all depends on who you are.  With the advent of comment crawling services a standard markup would really help them do their job.  If your blogging platform offers no syndication options a standard comment markup could allow you to generate comment feeds yourself (using &lt;a href="http://bloggercomments.ning.com/"&gt;Blogger Recent Comments&lt;/a&gt; or similar).  A standard markup about which we can make certain assuptions would also help the less technically inclined with implementing comment-centric hacks.&lt;br /&gt;&lt;br /&gt;So, the natural first place to look is &lt;a href="http://microformats.org"&gt;microformats.org&lt;/a&gt;.  Nada, yet.  Falling back to my own &lt;a href="http://blogxoxo.blogspot.com/"&gt;work with XOXO&lt;/a&gt; I have encapsulated comments as part of the &lt;a href="http://blogxoxo.blogspot.com/2006/01/xoxo-blog-format.html"&gt;XOXO Blog Format&lt;/a&gt;.  Testing that with &lt;a href="http://co.mments.com/"&gt;a comment crawler&lt;/a&gt; I find that it recognises the data 'as is' just fine.  If you mix it with &lt;a href="http://microformats.org/wiki/hatom"&gt;hAtom&lt;/a&gt; it is recognised by Blogger Recent Comments (more on this in a later post).  It also provides many of the things we hackers like in comment hacks -- an item surrounding the whole comment and the comment text, and a way of identifying some of the meta-type links.&lt;br /&gt;&lt;br /&gt;Thus this proposed 'standard' is both based on microformats (&lt;a href="http://microformats.org/wiki/xoxo"&gt;XOXO&lt;/a&gt;) and fits the three major reasons we would even want any sort of structure to our comment markup.  The markup should be on the main page for crawlers et al, but need not be visible.  Now to how to add it to your blog.  Advanced users can probably figure it out from teh XOXO Blog Format, for others here are simple instructions for both Blogger and WordPress:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Blogger&lt;/b&gt;&lt;br /&gt;Go to your blog template and find the section that begins with &amp;lt;BlogItemComments&amp;gt; and ends with &amp;lt;/BlogItemComments&amp;gt;.  Replace it with this code:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;   posturl = "&amp;lt;$BlogItemPermalinkUrl$&amp;gt;";&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ul class="xoxo comments"&amp;gt; &lt;br /&gt;&amp;lt;BlogItemComments&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li id="c&amp;lt;$BlogCommentNumber$&amp;gt;" class="commentelem"&amp;gt;Comment at &amp;lt;a href="#c&amp;lt;$BlogCommentNumber$&amp;gt;" title="&amp;lt;$BlogCommentNumber$&amp;gt;0"&amp;gt;&amp;lt;$BlogCommentDateTime$&amp;gt;&amp;lt;/a&amp;gt; by&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;$BlogCommentAuthor$&amp;gt;&lt;br /&gt;&amp;lt;a name="&amp;lt;$BlogCommentNumber$&amp;gt;"&amp;gt; &amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;!-- JS HERE --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dt class="body"&amp;gt;body&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dd class="body"&amp;gt;&amp;lt;$BlogCommentBody$&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dl&amp;gt;&lt;br /&gt;&amp;lt;$BlogCommentDeleteIcon$&amp;gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/BlogItemComments&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;If you are going to be visibly displaying comments on your main page it is reccomended you replace the &amp;lt;!-- JS HERE --&amp;gt;  in the above with:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp; commentlink = xget('//li[@id="c&amp;lt;$BlogCommentNumber$&amp;gt;"]//a');&lt;br /&gt;&amp;nbsp; if(commentlink) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;fragment = commentlink.href.split('#')[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;commentlink.href = posturl+'#'+fragment;&lt;br /&gt;&amp;nbsp; }//end if commentlink&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And add the following to your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;function xget(xpathSelector) {&lt;br /&gt;&amp;nbsp; var it = document.evaluate( xpathSelector, document, null,&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );&lt;br /&gt;&amp;nbsp; if(it.snapshotLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return it.snapshotItem(0);&lt;br /&gt;&amp;nbsp; return '';&lt;br /&gt;}//end function xget&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Now to style this to look like we are used to having comments look.  Skip past WordPress to Styling.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WordPress&lt;/b&gt;&lt;br /&gt;To use this code on WordPress blogs, edit your theme and go to the 'comments.php' file.  Find the section that starts &amp;lt;ol&amp;gt; and ends &amp;lt;/ol&amp;gt;.  Replace it with:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ol class="xoxo comments commentlist"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php foreach ($comments as $comment) : ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li class="commentelem &amp;lt;?php echo $oddcomment; ?&amp;gt;" id="comment-&amp;lt;?php comment_ID() ?&amp;gt;"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php if ($comment-&amp;gt;comment_approved == '0') : ?&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;em&amp;gt;Your comment is awaiting moderation.&amp;lt;/em&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Comment at &amp;lt;a href="&amp;lt;?php the_permalink() ?&amp;gt;#comment-&amp;lt;?php comment_ID() ?&amp;gt;" title="&amp;lt;?php echo strtotime(get_comment_date().' '.get_comment_time()); ?&amp;gt;"&amp;gt;&amp;lt;?php comment_date('F jS, Y') ?&amp;gt;&amp;nbsp; &amp;lt;?php comment_time() ?&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;by &amp;lt;?php comment_author_link() ?&amp;gt;&lt;br /&gt; &amp;lt;br /&amp;gt;&amp;lt;?php edit_comment_link('e','',''); ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dt class="body"&amp;gt;body&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dd class="body"&amp;gt;&amp;lt;?php comment_text() ?&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dl&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php /* Changes every other comment to a different class */ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ('alt' == $oddcomment) $oddcomment = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else $oddcomment = 'alt';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php endforeach; /* end for each comment */ ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ol&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This code seems to work with the most common themes.  Now to styling so that we get back our old look:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Styling&lt;/b&gt;&lt;br /&gt;Add this code to your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list-style-type: none;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin-left: 0px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin-top: 0.5em;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments li {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: block;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin-left: 0px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin-bottom: 1em;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments dl {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: inline;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments dd {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin-left: 0px;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments dt {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: none;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments dd.author {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: inline;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; font-size: 1em;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .comments dd.body {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: block;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin-top: 0.5em;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/aggregation" rel="tag"&gt;aggregation&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/markup" rel="tag"&gt;markup&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114612738849424379?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114612738849424379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114612738849424379&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114612738849424379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114612738849424379'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/standard-comment-markup.html' title='&apos;Standard&apos; Comment Markup?'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114587908556203025</id><published>2006-04-24T06:36:00.000-05:00</published><updated>2006-10-17T14:05:48.456-05:00</updated><title type='text'>OpenID for WordPress</title><content type='html'>&lt;b title="Update 2006-10-17"&gt;Someone else has written a (imho) &lt;a href="http://verselogic.net/projects/wordpress/wordpress-openid-plugin/"&gt;better plugin&lt;/a&gt;.  I have a backlog of tweaks to do to this plugin to make it work on more systems which I haven't got around to blogging/integrating.  Note that this new plugin does not support using your blog as an OpenID server.  It does, however, support sreg (but not hCard) and integrates into the WordPress account system.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have modified &lt;a href="http://the-notebook.org/12/01/2006/openid-comments-for-wordpress/"&gt;Alexander Nikulin's plugin&lt;/a&gt; for &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; that enables users to leave authenticated comments using &lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt; and enables blog owners/contributors to use the blog as their OpenId.  I have made the plugin compatible with WordPress 2.0, cleaned up the validity of the XHTML produced, and fixed a bug that kept some sites from finding the server.&lt;br /&gt;&lt;br /&gt;It is reccomended that when using the server the blog admin use the blogs main URL as their OpenID but that other users/contributors use BLOGURL/?author_name=USERNAME.&lt;br /&gt;&lt;br /&gt;When returning to the post page after posting a comment, if the comment was held for moderation ?moderated=true is appended to the URL.  Adding code like the following will alert your users to this fact:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;?php if($_GET['moderated'] == 'true') echo '&amp;lt;div style="display:block;padding:20px;background-color:#ccc; font-weight:bold;font-family:sans-serif;font-size:12pt;"&amp;gt; Your comment is awaiting moderation.&amp;lt;/div&amp;gt;'; ?&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Possible future features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Support for &lt;a href="http://www.openidenabled.com/openid/simple-registration-extension"&gt;sreg&lt;/a&gt; / &lt;a href="http://microformats.org/wiki/hcard"&gt;hCards&lt;/a&gt; to get an actual name for the commentor instead of just using their URL&lt;/li&gt;&lt;li&gt;Support for sreg / hCards in the server implementation&lt;/li&gt;&lt;li&gt;Support for &lt;a href="http://yadis.org/"&gt;YADIS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://filess.ning.com/get.php?xn_auth=no&amp;amp;id=1019353"&gt;Download the plugin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install the plugin:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the gzip from the link above and unzip it&lt;/li&gt;&lt;li&gt;Upload the resulting folder into your /wp-content/plugins/ directory&lt;/li&gt;&lt;li&gt;Edit your template and replace your comments form code (likely in comments.php) with&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&amp;lt;?php include dirname(__FILE__).'/../../plugins/openid/openidform.php'; ?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; &lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/wordpress" rel="tag"&gt;wordpress&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/plugin" rel="tag"&gt;plugin&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/openid" rel="tag"&gt;openid&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114587908556203025?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114587908556203025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114587908556203025&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114587908556203025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114587908556203025'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/openid-for-wordpress.html' title='OpenID for WordPress'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114561085911503937</id><published>2006-04-21T04:06:00.000-05:00</published><updated>2006-11-29T16:17:32.333-05:00</updated><title type='text'>YubNub LocationBar</title><content type='html'>My &lt;a href="http://singpolyma-tech.blogspot.com/2006/04/yubnub-toolbar.html"&gt;previous YubNub extension&lt;/a&gt; suffered from several glitches. While it was useful, it annoyed me enough to get me to research a new format.  So I have written a new extension.  This one functions a little differently and so I will leave the old one up.  This extension modifies the standard FireFox location bar to support &lt;a href="http://yubnub.org"&gt;YubNub&lt;/a&gt; commands.  If the entered text is determined to be a URL the location bar will function as normal, otherwise the text is passed to YubNub.  No more second bar, no more glitchy locationbar behaviour, just straight YubNub integration.  All YubNub commands will work, including single-word commands without parameters.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://filess.ning.com/get.php?xn_auth=no&amp;amp;id=1005609"&gt;Download YubNub Locationbar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-04-24"&gt;Version 0.11 has been released which fixes a glitch that broke access to about:config and typeing some javascript: URLs&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="2006-04-25"&gt;Version 0.12 has been released which fixes a flitch that caused commands that are passed URLs not to work&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="2006-04-26"&gt;Version 0.13 has been released which adds a command history feature.  Simply push your up/down arrow keys while in the location bar to access the command history.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="2006-08-08"&gt;Version 0.14 has been released which fixes some minor bugs with navigating to local IPs, and also allows defined FireFox keyword bookmarks to supercede YubNub commands.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="2006-08-30"&gt;Version 0.15 has been released which has some minor improvements to the look and feel of the extension, and also now allows local firefox bookmarks to use switches (using the same syntax as YubNub proper).  It also stores up to 50 commands from your command history between sessions now.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="2006-10-31"&gt;Version 0.16 has been released.  Support for non-standard URLs (such as those from &lt;a href="http://redhanded.hobix.com/cult/whoNicDOffWithTheYummyJunkDomains.html"&gt;nic.d&lt;/a&gt;.  Arrow-key history navigation broke some default Firefox features, so it is now Ctrl+Arrow Key.  A hackish integration with Firefox auto-complete history has also been coded.  Type y: before a command to have the auto-complete work (or just to force it into YubNub mode).&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b title="2006-11-29"&gt;Version 0.17 has been released which fixes some minor URL resolution bugs.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/firefox" rel="tag"&gt;firefox&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/extensions" rel="tag"&gt;extensions&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114561085911503937?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114561085911503937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114561085911503937&amp;isPopup=true' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114561085911503937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114561085911503937'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/yubnub-locationbar.html' title='YubNub LocationBar'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114535295957391147</id><published>2006-04-18T03:50:00.000-05:00</published><updated>2006-04-18T04:35:59.600-05:00</updated><title type='text'>The Importance of XML Well-formedness</title><content type='html'>XHTML validity is a buzzword around the Internet, but many people generally agree that it is not all that important.  It has its advantages, but it is not the end of the world if you can't quite get it.  XML well-formedness, however, is very important.  Why?  Because it makes server-side hackery much easier.  That may not be the only reason, but it is an important one.  Some people have mastered the art of screen-scraping with RegExps, but I and others like me have never quite mastered that often-complicated technique.    Instead, it is much easier to parse the webpage as XML and pull out the data that way.  This works especially well when the page is known to conform to some standard (as in the code addition for &lt;a href="http://bloggercomments.ning.com/"&gt;Blogger Recent Comments&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;While some leniancy can be built in, here are some basic guidelines for keeping your pages well-formed and making our job that much easier:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XHTML empty tags&lt;/span&gt; -- some tags, such as &amp;lt;br&amp;gt;, &amp;lt;link ...&amp;gt;, and others used to be written in HTML as you see them there.  This breaks XML well-formedness.  Instead, one should use &amp;lt;br /&amp;gt;, &amp;lt;link ... /&amp;gt; and the like. (note to advanced users, this can be partially overcome using a RegExp line similar to $XMLdata = preg_replace('/&amp;lt;(img|meta|link|hr|br)([^&amp;lt;&amp;gt;]*?)([\/]?)&gt;/i','&amp;lt;$1$2 /&amp;gt;', $XMLdata); )&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Escaping out Ampersands&lt;/span&gt; -- Many URLs contain the '&amp;amp;' character, and sometimes this character is used in content as well.  If this character is left unescaped it breaks XML well-formedness.  Use '&amp;amp;amp;' instead.  (note to advanced users, this can be mostly overcome use a RegExp line similar to $XMLdata = preg_replace('/&amp;amp;([^;]{10})/i','&amp;amp;amp;$1', $XMLdata); )&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Escaping Scripts&lt;/span&gt; -- JavaScript code will often contain characters that must be escaped out in XML, but which cannot be escaped out if the script is to work.  To overcome this you add '//&amp;lt;![CDATA[' after every &amp;lt;script&amp;gt; tag and '//]]&amp;gt;' before every &amp;lt;/script&amp;gt; tag.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Closing tags&lt;/span&gt; -- Some tags, such as &amp;lt;p&amp;gt; are often inserted by web designers without a closing tag.  instead of '&amp;lt;p&amp;gt;text&amp;lt;p&amp;gt;more text' use '&amp;lt;p&amp;gt;text&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;more text&amp;lt;/p&amp;gt;'.  Note that XML is case-sensetive, so if you open a section, say, with &amp;lt;head&amp;gt; you must end it with &amp;lt;/head&amp;gt; not &amp;lt;/HEAD&amp;gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Quoting Attributes&lt;/span&gt; -- &amp;lt;p class=&amp;quot;1&amp;quot;&amp;gt; not &amp;lt;p class=1&amp;gt;, etc.  Quotation marks &lt;span style="font-style: italic;"&gt;always&lt;/span&gt; go around attributes, no matter what.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Non-tag &amp;lt; &amp;gt;&lt;/span&gt; -- If you reference a Blogger template tag (such as &amp;lt;$BlogID$&amp;gt;) or for some other reason need to include a &amp;lt; or &amp;gt; character in content, you must escape it out with &amp;amp;lt; or &amp;amp;gt;, respecively.&lt;/li&gt;&lt;/ol&gt;A note about content : Blogger's post form and comment form is not very good at checking XML well-formedness.  Thus if you want to maintain a (at least mostly) well-formed page you must follow these rules in any code entered in these forms.  For example, if you enter a &amp;lt; character in the blogger post form, it does not escape it out for you, you must actually enter &amp;amp;lt;, and the same goes for the comment form.  This is sometimes annoying if you are trying to maintain full XML well-formedness because a well-meaning commentor can sometimes mess up your well-formedness and you must go and edit their comment.  This is not usually the biggest problem, however, since it is usually one of the first two problems which can be overcome as noted.  You can check for XML-formedness without validating XHTML using &lt;a href="http://www.ltg.ed.ac.uk/%7Erichard/xml-check.html"&gt;this tool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/xml" rel="tag"&gt;xml&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/design" rel="tag"&gt;design&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114535295957391147?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114535295957391147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114535295957391147&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114535295957391147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114535295957391147'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/importance-of-xml-well-formedness.html' title='The Importance of XML Well-formedness'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114423688125277213</id><published>2006-04-05T06:19:00.000-05:00</published><updated>2006-04-05T06:34:41.256-05:00</updated><title type='text'>coComment JSONP Native</title><content type='html'>&lt;a href="http://cocomment.com/"&gt;coComment&lt;/a&gt; has added &lt;a href="http://cocomment.com/json"&gt;native JSONP support&lt;/a&gt;.  They seem to have worked out the bugs from their first implementation and I have reworked the code for my sidebar to use their system.  Out of this has come two generic coCo JSON functions.  One, coco_flat, takes their nested group-comments-by-article format and flattens it to one-element-per-comment with all the article and comment attributes intact:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;function coco_flat(coco) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; var comments = [];&lt;br /&gt;&amp;nbsp;&amp;nbsp; for(var i=0; i&amp;lt;coco.length; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(var i2=0; i2&amp;lt;coco[i].comments.length; i2++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comments.push({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "blogID":coco[i].blogID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "blogTitle":coco[i].blogTitle,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "blogURL":coco[i].blogURL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "blogURLCoco":coco[i].blogURLCoco,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "articleID":coco[i].articleID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "articleTitle":coco[i].articleTitle,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "articleURL":coco[i].articleURL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "articleURLCoco":coco[i].articleURLCoco,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id":coco[i].comments[i2].id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "author":coco[i].comments[i2].author,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "authorURL":coco[i].comments[i2].authorURL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "authorAlias":coco[i].comments[i2].authorAlias,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "comment":coco[i].comments[i2].comment,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "commentURLCoco":coco[i].comments[i2].commentURLCoco,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "dateISO":coco[i].comments[i2].dateISO,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "date":coco[i].comments[i2].date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }//end for cocommentResultSet[i].comments&lt;br /&gt;&amp;nbsp;&amp;nbsp; }//end for cocommentResultSet&lt;br /&gt;&amp;nbsp;&amp;nbsp; return comments;&lt;br /&gt;}//end function coco_flat&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The other, coco_compare, is for use in sorting so flattened results by date:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;function coco_compare(a,b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; if(a.date&amp;lt;b.date) return -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; if(a.date&amp;gt;b.date) return 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;}//end function coco_compare&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;To use this function to sort a flattened array of coComment data oldest to newest call &lt;span style="font-family:monospace;"&gt;&lt;i&gt;array&lt;/i&gt;.sort(coco_compare)&lt;/span&gt;, and to sort by newest to oldest also call &lt;span style="font-family:monospace;"&gt;&lt;i&gt;array&lt;/i&gt;.reverse()&lt;/span&gt; as well.&lt;br /&gt;&lt;br /&gt;Here is an example piece of code putting together all that is above, an incidentally what I am using in my sidebar:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;function list_cocomment(blockid,username,charlimit,itemlimit,boxid) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; if(!charlimit) limit = 25;&lt;br /&gt;&amp;nbsp;&amp;nbsp; if(!itemlimit) limit = 10;&lt;br /&gt;&amp;nbsp;&amp;nbsp; if(!boxid) boxid = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; coco_callback = function(data) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var block = document.getElementById(blockid);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var txt = '&amp;lt;ul class="cocomment"&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comments = coco_flat(data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comments.sort(coco_compare);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comments.reverse();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var elipsis = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(var i=0; i&amp;lt;comments.length &amp;amp;&amp;amp; i&amp;lt;itemlimit; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elipsis = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(comments[i].comment.length &amp;gt; charlimit)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elipsis = '...';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt += '&amp;lt;li&amp;gt;&amp;lt;a href="'+comments[i].articleURL+'" title="Coment on '+comments[i].articleTitle+' by '+comments[i].author+'"&amp;gt;'+striphtml(comments[i].comment).substr(0,charlimit)+elipsis+'&amp;lt;/a&amp;gt; &amp;lt;a href="'+comments[i].articleURLCoco+'"&amp;gt;&amp;lt;img src="http://www.cocomment.com/images/logo-16x11.gif" alt="[co]" /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }//end for comments&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt += '&amp;lt;/ul&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt += '&amp;lt;a href="http://www.cocomment.com/comments/'+username+'"&amp;gt;&amp;lt;img src="http://www.cocomment.com/dyn/images/buttons/'+username.toUpperCase()+'.0.png" alt="More &amp;amp;raquo;" /&amp;gt;&amp;lt;/a&amp;gt; ';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt += '&amp;lt;a href="http://www.cocomment.com/mybox-rss2/'+username+'/'+boxid+'"&amp;gt;&amp;lt;img src="http://wrinks.ning.com/feedicon12x12.png" alt="[feed]" /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; block.innerHTML = txt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }//end function-var coco_callback&lt;br /&gt;&amp;nbsp;&amp;nbsp; writeScript('http://www.cocomment.com/mybox-json?nick=singpolyma&amp;amp;box=1&amp;amp;callback=coco_callback');&lt;br /&gt;}//end function list_cocomment&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/json" rel="tag"&gt;json&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/jsonp" rel="tag"&gt;jsonp&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/cocomment" rel="tag"&gt;cocomment&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114423688125277213?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114423688125277213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114423688125277213&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114423688125277213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114423688125277213'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/cocomment-jsonp-native.html' title='coComment JSONP Native'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114415826598808616</id><published>2006-04-04T08:37:00.000-05:00</published><updated>2006-04-05T03:54:29.076-05:00</updated><title type='text'>YubNub Toolbar</title><content type='html'>If you hadn't heard of &lt;a href="http://yubnub.org/"&gt;YubNub&lt;/a&gt; before, now you have.  The basic concept is easy to grasp -- typing "g test" takes you to a goole search for 'test' and "wink test" takes you to a wink search for test, etc.  Although much more powerful than search engines, that's a good place to start.&lt;br /&gt;&lt;br /&gt;If you send YubNub a raw URL it will take you there without processing.  This enables one to use YubNub as your location bar directly.  Problems with this approach have been that the search box in firefox (where YubNub has traditionally resided for FF users) is very small and does not update on page load.&lt;br /&gt;&lt;br /&gt;Solution?  Write a new FireFox extension to replace the location bar with YubNub.  Done.  This is my first ever FireFox extension, so it may be a bit quirky.  I'd appreciate feedback and bug reports, but cannot guarentee I can do anything about it, since my XUL etc knowledge is very limited at this point.&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-04-05"&gt;I have released version 0.11.  Install or reinstall using instructions below, uninstall previous version first if updating.  New features for this version include: integration with browser history, display of favicons, display of feed icon/security icon where applicable, alt+k selects textbox, icon on Go button same as standard Go button.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Steps to install plugin:&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://filess.ning.com/get.php?xn_auth=no&amp;amp;id=898591"&gt;Download the XPI file&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Open your Firefox 'Extensions' window and drag the XPI file on it&lt;/li&gt;&lt;li&gt;Restart Firefox&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; &lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/firefox" rel="tag"&gt;firefox&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/extensions" rel="tag"&gt;extensions&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/yubnub" rel="tag"&gt;yubnub&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114415826598808616?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114415826598808616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114415826598808616&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114415826598808616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114415826598808616'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/yubnub-toolbar.html' title='YubNub Toolbar'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114406448203239616</id><published>2006-04-03T06:26:00.000-05:00</published><updated>2006-04-03T06:41:22.053-05:00</updated><title type='text'>Include Feeds / Reading Lists in Your Sidebar</title><content type='html'>Including headlines in your sidebar is an old concept, one that can be very useful to both you and your readers.  This post will by no means be a comprehensive list of methods, but I will outline what I feel are the 'top 4' ways to do this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Peek-a-boo Headlines&lt;/b&gt;&lt;br /&gt;Peek-a-boo headlines are a part of &lt;a href="singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my version of FreshTag&lt;/a&gt;s and may be coming to primary FreshTags eventually as well.  I may soon be releasing a version of the hack that works well without a FreshTags installation.  I really like this method because my blogroll still sends out link-love and for FreshTags users you get context-sensitive headlines.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FeedDigest&lt;/b&gt;&lt;br /&gt;&lt;a href="http://feeddigest.com/"&gt;FeedDigest&lt;/a&gt; is an old friend of mine.  The first-ever feed-to-script service I used was RSSDigest, the forerunner to FeedDigest.  The service provides excellent features, including the ability to mix feeds together into a single digest, include scripts for JavaScript or PHP, and an RSS mashup feed of your digest.  You get 100% code control over the output as well as the many prefab templates for newbies.  The only problem here is that you can only run 5 digests -- any more and you pay.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Feed-o-Style&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.feedostyle.com/"&gt;Feed-o-Style&lt;/a&gt; is a newer cometitor to FeedDigest.  You don't get nearly the code control and there are no feed-mixing options, but their prefab templates are nice and customisable for most purposes.  The only include option is JavaScript.  There is also an 'API' by which you can generate feed-o-styles from a script.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grazr&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.grazr.com/"&gt;Grazr&lt;/a&gt; is a different sort of service.  Their code is barely customisable and again the only include option is JavaScript, but that's because the whole system runs using AJAX-style operation.  Headlines from a feed can be included in your sidebar, or an entire OPML reading list can be rendered (XOXO not yet supported, see my sidebar for an example).  ATOM feed support seems to be missing as of yet, and there are some other issues (mostly caused by the unreliability of implementations of the OPML 'spec') but overall it is a very interesting start.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/aggregation" rel="tag"&gt;aggregation&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/syndication" rel="tag"&gt;syndication&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/rss" rel="tag"&gt;rss&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/widgets" rel="tag"&gt;widgets&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/feeddigest" rel="tag"&gt;feeddigest&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/grazr" rel="tag"&gt;grazr&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/feedostyle" rel="tag"&gt;feedostyle&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114406448203239616?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114406448203239616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114406448203239616&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114406448203239616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114406448203239616'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/04/include-feeds-reading-lists-in-your.html' title='Include Feeds / Reading Lists in Your Sidebar'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114345846039740947</id><published>2006-03-27T06:07:00.000-05:00</published><updated>2006-03-27T06:21:00.420-05:00</updated><title type='text'>PsycHo - WYSIWYG Templates</title><content type='html'>&lt;a href="http://psyc.horm.org/"&gt;PsycHo&lt;/a&gt; is a WYSIWYG template generator for blogs that supports Blogger.  While some of the functionality is annoying to a hand-coder such as myself, this is definately a big step in the right direction for pushing Blogger to non-techies.  One of the things that I find odd about it is that by default you must enter your blog title/description manually, instead of using the ones from your Blogger settings.  While this &lt;a href="http://psyc.horm.org/?PsycHodrama=%7B100blogger%5D720px%5D90%5E25%5Drepeat%5Dscroll%5Dtop%5E20center%5Dsolid%5D1px%5DTahoma%5E2C%5E20sans-serif%5D5em%5D1.75em%5Dsolid%5D1px%5D30px%5D40px%5D5px%5Dsolid%5D1px%5Dsolid%5D1px%5D_L_DefaultDivBackIsColorEr%5Dsolid%5D1px%5Dsolid%5D1px%5DTahoma%5E2C%5E20sans-serif%5D150%5E25%5D1em%5D1em%5DTahoma%5E2C%5E20sans-serif%5Dsolid%5D1px%5Dsolid%5D1px%5DTahoma%5E2C%5E20sans-serif%5D1em%5D1em%5D1em%5D150%5E25%5D1em%5D1em%5D_R_DefaultDivBackIsColorEr%5Dsolid%5D1px%5Dsolid%5D1px%5DTahoma%5E2C%5E20sans-serif%5D150%5E25%5D1em%5D1em%5D4%5D4%5D%5E24DEFAULT%5D%5D%5E24DEFAULT%5D,%5D%28%5Dwhite%5D%28%5D%29%5D%5E2300F%5Dcoral%5Dnavy%5D,%5D%28%5D%28%5D%5D%5Dblack%5D,%5D3%5D1%5D2%5D3%5D1%5D1%5D3%5D1%5D2%5D3%5D1%5D1%5D,%5D%28%5D%28%5D%5E23CCC%5D%29%5D%29%5D%5E24DEFAULT%5D%5E24DEFAULT%5D,%5D%28%5D,%5D%28%5D%28%5Dblack%5D%28%5D%28%5D%28%5D%5E23666%5D%28%5D%28%5D%28%5D%5E23333%5D%28%5D%28%5D,%5D%28%5D75%5D20%5D,%5D%28%5D%28%5D%5E23F6F6F6%5D%29%5D%29%5Dblack%5D1.5%5D15%5D,%5D%28%5D%28%5D%5E23999%5D%29%5D%29%5Dblack%5D%5E23CCC%5D%29%5D%29%5D%5E23666%5D30%5Dblack%5Dblack%5D,%5D%28%5D%28%5D%5E23333%5D%28%5D,%5D%28%5D%5E23333%5D%5E23039%5D%5E2306C%5D,%5D%28%5D%28%5D%5E23CCC%5D%29%5D%29%5D,%5D%28%5D%28%5D%5E23EEE%5D%29%5D%29%5D,%5D%28%5D%28%5D%5E23CCC%5D%29%5D%29%5D,%5D%28%5Dblack%5D%5E23666%5D15%5D3%5D25%5D20%5Dblack%5D,%5D%28%5D%28%5D,%5D%28%5D,%5D%28%5D%28%5D,%5D%28%5Dblack%5D%28%5D%28%5D%28%5D,%5D%28%5D%28%5D%28%5D,%5Dblack%5D%28%5D%28%5D%28%5D,%5D%28%5D%28%5D%5E23333%5D%28%5D%28%5D%28%5D%28%5D%28%5D,%5D%5E2336F%5D%5E23333%5D%28%5D,%5D%28%5DWritten%5E20at%5E20%5E24TIME%5E20by%5E20%5E24AUTH.%5D20%5D,%5D%28%5D%28%5Dblack%5D%29%5D%29%5D%5E23CCC%5D%29%5D%29%5D%5E23666%5D30%5Dblack%5Dblack%5D,%5D%28%5D%28%5D%5E23333%5D%28%5D,%5D%28%5D%5E23333%5D%5E23039%5D%5E2306C%5D%5D%5D%5DHome%5D%5E24HOME%5DFirst%5E20Page%5DEmail%5D%5E24EMAIL%5DMail%5E20me%5E21%5DRSS%5D%5E24RSS%5DRSS%5E20Feed%5DArchive%5D%5D%5D%5E24ARCHIVE%5D%5E20%5D%5DFriends%5D%5D%5DHorm%5D%29blog.horm.org%5DHallucinations%5E20Of%5E20Reabsorbed%5E20Mind%5DPhorm%5D%29p.horm.org%5DAnother%5E20Phormation%5DEtc%5D%5D%5D%5E3Cimg%5E20src%5E3D%5E22%29psyc.horm.org/barimg/bar_psycho.png%5E22%5E20width%5E3D%5E2280%5E22%5E20height%5E3D%5E2215%5E22%5E20alt%5E3D%5E22PsycHo%5E3A%5E20Free%5E20Template%5E20Generator%5E22%5E20style%5E3D%5E22border%5E3A%5E200px%5E20solid%5E20black%5E22%5E20/%5E3E%5D%5E24PSYCHO%5DPsycHo%5E3A%5E20Free%5E20Template%5E20Generator%5D%5E3Cimg%5E20src%5E3D%5E22%29psyc.horm.org/barimg/bar_firefox.png%5E22%5E20width%5E3D%5E2280%5E22%5E20height%5E3D%5E2215%5E22%5E20alt%5E3D%5E22Get%5E20FireFox%5E21%5E22%5E20style%5E3D%5E22border%5E3A%5E200px%5E20solid%5E20black%5E22%5E20/%5E3E%5D%29www.mozilla.org/products/firefox/%5DGet%5E20Firefox%5E21%5D%5E3Cimg%5E20src%5E3D%5E22%29psyc.horm.org/barimg/bar_xhtml.png%5E22%5E20width%5E3D%5E2280%5E22%5E20height%5E3D%5E2215%5E22%5E20alt%5E3D%5E22XHTML%5E20Validator%5E22%5E20style%5E3D%5E22border%5E3A%5E200px%5E20solid%5E20black%5E22%5E20/%5E3E%5D%29validator.w3.org/check/referer%5DXHTML%5E20Validator%5E26%5E2361470%5E3BPsycHo%7D"&gt;can be overcome&lt;/a&gt;, the average user won't necessarily see that.&lt;br /&gt;&lt;br /&gt;I would like some more code-structure customisability options for hackers (especially hackers looking to help their non-techy friends).  For example, one could not implement &lt;a href="http://microformats.org/wiki/hatom"&gt;hAtom&lt;/a&gt; in a PhycHo template if he wanted to (at least so far as I can tell).  Other than that (a rather minor point to users anyway) the service seems to provide all the features a normal user would expect, including sidebar(s) cutomisation and linkroll(s) editing.  Just one more push to get people away from inferior blogging services like Xanga.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/opensource" rel="tag"&gt;opensource&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/templates" rel="tag"&gt;templates&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114345846039740947?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114345846039740947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114345846039740947&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114345846039740947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114345846039740947'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/psycho-wysiwyg-templates.html' title='PsycHo - WYSIWYG Templates'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114330003495463083</id><published>2006-03-25T10:09:00.000-05:00</published><updated>2006-03-25T10:31:59.626-05:00</updated><title type='text'>Profile Photos With Comments</title><content type='html'>Blogger does not provide a template tag for displaying the profile pictures of commentors in your blog template.  &lt;a href="http://ecmanaut.blogspot.com/2005/10/blogger-hack-inline-comment-faces.html"&gt;Johan Sundström&lt;/a&gt; had created a way around this using an IFrame, but I found that solution to be somewhat buggy, even on his own blog.  I have modified some of his code and added some of my own to create what I feel is a cleaner hack.  I have bundled the majority of the JavaScript into a &lt;a href="http://jscripts.ning.com/view.php?id=830605"&gt;JScripts entry&lt;/a&gt; and it also uses a script I wrote to scrape Blogger profiles to JSON(P) [&lt;a href="http://singpolymaplay.ning.com/bloggerProfile.php?url=http://www.blogger.com/profile/10992009"&gt;example&lt;/a&gt;].  The code to include the hack into your template is surprisingly simple:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=830605&amp;quot;&amp;gt; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;addLoadEvent(function(){showCommentPhotos('&lt;span style="color:red;"&gt;class of elements to put photos in&lt;/span&gt;','&lt;span style="color:red;"&gt;class of elements where links to authors can be found&lt;/span&gt;',&lt;span style="color:red;"&gt;number of &amp;lt;a&amp;gt; tags before the link to the author (0 if none)&lt;/span&gt;);});&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;br /&gt;You will need to add a &amp;lt;div&amp;gt; or other tag (with the class you pass in first) to the comment section, and style it so that the images show up the way you want.  The second class you pass is the element containing the link to the comment author, you must add a class to this element if one does not exist.  The third parameter is the number of &amp;lt;a&amp;gt; elements in this element before the link to the author.  The script runs after page load and should thus have no adverse affects on initial load times.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114330003495463083?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114330003495463083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114330003495463083&amp;isPopup=true' title='34 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114330003495463083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114330003495463083'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/profile-photos-with-comments.html' title='Profile Photos With Comments'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>34</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114302157141809965</id><published>2006-03-22T04:22:00.000-05:00</published><updated>2006-03-24T05:18:56.763-05:00</updated><title type='text'>Ning - the now</title><content type='html'>Back when I started using &lt;a href="http://www.ning.com/"&gt;Ning&lt;/a&gt; to create &lt;a href="http://comment.ning.com/"&gt;Commentosphere&lt;/a&gt; I wrote a &lt;a href="http://singpolyma-tech.blogspot.com/2005/12/ning-playground.html"&gt;review of the service&lt;/a&gt;.  I have since had much more experience in working with the tools provided by Ning and there have been some improvements and so this is an update on my previous review.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Language Support&lt;/b&gt;&lt;br /&gt;To the best of my knowledge Ning still only supports PHP and XNHTML.  While they &lt;a href="http://blog.ning.com/2006/01/some_of_whats_coming_down_the_1.html"&gt;expect to support more languages&lt;/a&gt;, for now if you don't like PHP you won't like development on Ning.  Their PHP support, however, is top-notch.  Full PHP5 support with &lt;a href="http://tech.ning.com/?action=post&amp;amp;id=677267"&gt;numerous extensions&lt;/a&gt; installed and many Ning-specific components that just make coding easier (&lt;a href="http://developerdocumentation.ning.com/post.php?Post:slug=XNC-XNC_Comment"&gt;automated comment system&lt;/a&gt;, &lt;a href="http://documentation.ning.com/post.php?Post:slug=XNCServicesGoogleGmail"&gt;Gmail support&lt;/a&gt;, etc).  Having previously only worked with servers supporting PHP4, just the PHP5 support seems like a miracle: code is cleaner and I can use some of those nice OOP features I've been reading about for ages.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Content Store&lt;/b&gt;&lt;br /&gt;The content store may still be hard to get into for a coder used to SQL, but once you get your head around it, it can be easier to use in some ways.  For example, there are some default fields (title, description, contributorName, createdDate, updatedDate) which, if used correctly, can make transferring code between apps easier.  Built-in support for tagging objects means you no longer have to have your code manage (sometimes complicated) many-to-many tables for the relationships between tags and content.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All query filters still behave like an AND operation, but this limitation can often be overcome through code design.  While the lack of a union (OR) operation can be painful to get around and would be very welcome, it is not a crucial thing in many apps.&lt;/li&gt;&lt;li&gt;There is still no proper pattern matching, but this too can be partially overcome by storing dummy fields that have appropriate characters (especially non-alphanumerics) replaced by spaces and using their full-text 'like' operator.  Not the ideal solution, but workable.&lt;/li&gt;&lt;li&gt;There is still no way to change the owner of an object, but this is not the biggest problem and it seems Ning is moving towards &lt;a href="http://tech.ning.com/?action=post&amp;amp;id=779038"&gt;providing API-style access themselves&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The OOP-style of returns still inhibits sorting to some extent, but not nearly as much as I originally feared.  SQL-returned arrays are often difficult to merge and sort themselves, and XN_Content objects on Ning are not unsortable, they just require self-written sorting functions.  Merging query results is not a common operation anyway.&lt;/li&gt;&lt;li&gt;The Content Store has been significantly speeded up.  While mass operations begin to bog, or even freeze, when you deal with volumes approaching 100 objects, at least it is fast enough for some mass-updating operations.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Other Considerations and Conclusions&lt;/b&gt;&lt;br /&gt;Multi-user development is still basically impossible on Ning.  This is probably the feature #1 on my list of things I wish they'd add.  The License problems are annoying (there's a lot of good GPL code out there I'd like to use) but not fatal.&lt;br /&gt;&lt;br /&gt;While Ning has not yet fully rectified my main initial points (speed content store to enable large scale importers, group development, pattern matching, better documentation) I have found that some of these points are mitigated as you get used to the service.  While the speed limitation on the content store are annoying, they can be got around if you take data in smaller chunks.  The documentation is not the greatest, but it is getting better, especially with the advent of the &lt;a href="http://tech.ning.com/"&gt;Ning Tech Blog&lt;/a&gt;.  Group development is definitely my #1 request at this point.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/reviews" rel="tag"&gt;reviews&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114302157141809965?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114302157141809965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114302157141809965&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114302157141809965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114302157141809965'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/ning-now.html' title='Ning - the now'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114294717547049801</id><published>2006-03-21T08:07:00.000-05:00</published><updated>2006-03-21T08:19:35.493-05:00</updated><title type='text'>JScripts</title><content type='html'>&lt;a href="http://jscripts.ning.com/"&gt;JScripts&lt;/a&gt; is a new &lt;a href="http://www.ning.com/"&gt;Ning&lt;/a&gt; app of mine for hosting JavaScript includes.  The benefits of a semi-centralised location for hosting JavaScript APIs/hacks (from the &lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;FreshTags&lt;/a&gt; system to the prototype framework) are many, but the greatest ones are (1) it makes it easier for us to find ones others have written (2) browsers can then cache the same JavaScript for use across sites.  I have put &lt;a href="http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my FreshTags system&lt;/a&gt; &lt;a href="http://jscripts.ning.com/view.php?id=818185"&gt;on the app&lt;/a&gt;, but will also keep it hosted in the other location for now.  This blog now includes the file hosted on JScripts, however.&lt;br /&gt;&lt;br /&gt;JScripts (and its parent app, &lt;a href="http://filess.ning.com/"&gt;FileSS&lt;/a&gt;, which I also wrote) has a &lt;a href="http://cocomment.com/"&gt;coComment&lt;/a&gt;-integrated comment system and also integrates features from &lt;a href="http://sweeties.ning.com/"&gt;Sweeties&lt;/a&gt;.  There are RSS feeds for new scripts (which can be filtered by tag, user, and search query) and for comments on each script.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/javascript" rel="tag"&gt;javascript&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hosting" rel="tag"&gt;hosting&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114294717547049801?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114294717547049801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114294717547049801&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114294717547049801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114294717547049801'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/jscripts.html' title='JScripts'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114257994226133317</id><published>2006-03-17T01:53:00.000-05:00</published><updated>2006-03-17T02:35:04.346-05:00</updated><title type='text'>feed2json</title><content type='html'>I have been doing some work recently with the &lt;a href="http://xoxotools.ning.com/outlineconvert.php"&gt;Outline Converter&lt;/a&gt;, upgrading its code and adding more input and output formats.  One of the benefits of this is that it can now act as a feed2json converter.  Since it is hosted on Ning it doesn't suffer from the bandwidth restrictions so many other feed2json scripts do.  To use it as a feed2json use the following URL format:&lt;br /&gt;&lt;br /&gt;http://xoxotools.ning.com/outlineconvert.php?output=json&amp;amp;classes=items&amp;amp;url=&lt;span style="color: rgb(255, 0, 0);"&gt;FEED URL&lt;/span&gt;&amp;amp;callback=&lt;span style="color: rgb(255, 0, 0);"&gt;CALLBACK&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have already upgraded &lt;a href="http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my version of FreshTags&lt;/a&gt; to use this instead of the other feed2json script so that I no longer have to worry about the bandwidth restrictions.  Here is the code for the function I am using to convert the JSON data to the Delicious.posts format:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;function feedjson2deljson(json_data) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; var rtrn = [];&lt;br /&gt;&amp;nbsp;&amp;nbsp; for(var i=0; i&amp;lt;json_data.items.length; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj = {};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.d = json_data.items[i].title;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.u = json_data.items[i].link;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.n = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(json_data.items[i].description)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.n = json_data.items[i].description;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(json_data.items[i].content)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.n = json_data.items[i].content;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rtrn.push(obj);&lt;br /&gt;&amp;nbsp;&amp;nbsp; }//end for&lt;br /&gt;&amp;nbsp;&amp;nbsp; return rtrn;&lt;br /&gt;}//end feedjson2deljson&lt;/div&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/json" rel="tag"&gt;json&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/jsonp" rel="tag"&gt;jsonp&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/syndication" rel="tag"&gt;syndication&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/rss" rel="tag"&gt;rss&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/atom" rel="tag"&gt;atom&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114257994226133317?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114257994226133317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114257994226133317&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114257994226133317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114257994226133317'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/feed2json.html' title='feed2json'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114233394570084007</id><published>2006-03-14T05:32:00.000-05:00</published><updated>2006-03-14T05:59:06.213-05:00</updated><title type='text'>Beef up Blogger</title><content type='html'>Googlist has published a list of "&lt;a href="http://thegooglist.blogspot.com/2006/03/18-ways-for-blogger-to-beef-up.html"&gt;18 Ways for Blogger to Beef up&lt;/a&gt;".  I strongly support most of the point there given, and have some comments and some points of my own.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1 and 2 - Category support&lt;/b&gt;&lt;br /&gt;While the &lt;a href="http://ecmanaut.blogspot.com/2005/11/blogger-delicious-categorizer-script.html"&gt;greasemonkey script&lt;/a&gt; and &lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;FreshTags&lt;/a&gt; method works fine, I must admit this would still be a welcome feature.  One thing that concerns me, though, is that it will be poorly done and force those of us who want the features to contine using a hack on a system that supports it natively...  I'm not going to want to lose the FreshTags functionality now that I've got it, and while FreshTags is not bound to del.icio.us, it &lt;span style="font-style: italic;"&gt;is&lt;/span&gt; bound to having a decent way to extract post by tag programatically.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5 - Plugin support&lt;/b&gt;&lt;br /&gt;If they enable this with any sort of usefulness it will eliminate their need to do some of the other stuff -- we'll do it for them!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7 - Static pages&lt;/b&gt;&lt;br /&gt;This would be an incredibly useful feature, but one addition could make all of Blogger that much more useful -- WYSIWYG.  I happen to dislike WYSIWYG, but there are a lot of non-coders out there who don't agree with me and resent the fact that they are bound to the boring blogger templates for their Look and Feel.  If Blogger created some simple way to edit template basics without coding for those people they could much better appeal to 'the masses'.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12 - Non-image File upload&lt;/b&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Please&lt;/span&gt;, Blogger?  Hosting images here is lovely, but what about my JavaScript includes?  Or external pieces of CSS?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;14 - Trackbacks&lt;/b&gt;&lt;br /&gt;Backlinks are swell, but incomplete.  I want to be able to send &lt;span style="font-style: italic;"&gt;and&lt;/span&gt; recieve proper trackbacks too -- and haloscan, while it works, is just so ugly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;17 - SPAM&lt;/b&gt;&lt;br /&gt;I, for one, would like to see some conditional moderation, as seen on WordPress.  I don't want to have to approve every single comment, but I'd rather have outright SPAM quarantined.  And what about the ability to block certain users from commenting?  A lot of the comment SPAM I get here is tied to a Blogger account and could be easily blocked if they'd just let us.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Other&lt;/b&gt;&lt;br /&gt;Another interesting thing, that I've been waiting for for a long time, is the integration of Blogger with the Google Accounts system.  &lt;a href="https://www.google.com/accounts/ServiceLogin?service=blogger"&gt;A page for the login&lt;/a&gt; is already active, but not functional as of yet.  Looks promising.&lt;br /&gt;&lt;br /&gt;Comment feeds anyone?  &lt;a href="http://bloggercomments.ning.com/"&gt;Blogger Recent Comments&lt;/a&gt; works, but nothing beats native support, especially if they start offering RSS 2.0 feeds with wfw:commentFeed support natively on top of that.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/googlist" rel="tag"&gt;googlist&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114233394570084007?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114233394570084007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114233394570084007&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114233394570084007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114233394570084007'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/beef-up-blogger.html' title='Beef up Blogger'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114197911077773233</id><published>2006-03-10T03:11:00.000-05:00</published><updated>2006-03-13T02:13:35.083-05:00</updated><title type='text'>FreshTags for WordPress</title><content type='html'>The &lt;a href="http://ghill.customer.netspace.net.au/freshtags/"&gt;FreshTags&lt;/a&gt; system is more than just categories for Blogger.  With the tag-passing features it adds a social aspect to blog browsing.  Not everyone runs on Blogger, and some of us are lucky enough to run on blogging systems that support categories natively.  The other FreshTags features would be and can be immensely useful to these people as well.  So, in a move to push FreshTags beyond Blogger and beyond del.icio.us I have created a FreshTags plugin for WordPress.&lt;br /&gt;&lt;br /&gt;&lt;b title="Update 2006-03-13"&gt;Update: Version 0.11 has been released.  Some minor bugs have been fixed and loading captured tags into the search box is now optional.  To load the searchbox you must add this code to your template: &lt;span style="font-family:monospace;"&gt;&amp;lt;?php freshtags_load_searchbox(); ?&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Detects tags passed directly via ?tags, ?tag, or ?cat&lt;/li&gt;&lt;li&gt;Detects tags from the referer URL, all the same formats as the original FreshTags are supported&lt;/li&gt;&lt;li&gt;Detects the tag of the current category page or the first tag on the current post, if applicable&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Supports tag intersections&lt;/li&gt;&lt;li&gt;Displays &lt;span style="font-style: italic;"&gt;n&lt;/span&gt; matching posts from detected tag(s) in the sidebar&lt;/li&gt;&lt;li&gt;Supports either list or drop form of tags in the sidebar, highlighting selected tag(s)&lt;/li&gt;&lt;li&gt;Rewrites post links when tags are selected to enable tag-passing &lt;span style="font-style: italic;"&gt;from&lt;/span&gt; the blog&lt;/li&gt;&lt;li&gt;Generates JSON(P) feeds for use in peek-a-boo sidebar headlines by other blogs&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Implementing&lt;/b&gt;&lt;br /&gt;To implement this plugin on your WordPress blog:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.awriterz.org/etcetc/freshtags.tar.gz"&gt;Download the plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Unpack the file and upload 'freshtags.php' to your /wp-content/plugins/ directory on your blog&lt;/li&gt;&lt;li&gt;Go to your WordPress dashboard and the plugins screen to activate the plugin&lt;/li&gt;&lt;li&gt;Edit your template and replace the code that outputs the category list in your sidebar with:&lt;br /&gt;&lt;pre&gt;&amp;lt;?php echo freshtags_taglist();&lt;br /&gt;       echo freshtags_postlist(); ?&amp;gt;&lt;/pre&gt;To customise the display you can pass 'drop' to freshtags_taglist to get a drop-down list of tags.  You can pass two parameters to freshtags_postlist, the first is the maximum number of posts to display (default: 10), the second is a string to output as a header for the list of matching posts (replacing %tags% with the detected tags, default none).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;Other&lt;/b&gt;&lt;br /&gt;I have updated &lt;a href="http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html"&gt;my version of FreshTags&lt;/a&gt; to support getting peek-a-boo titles from blogs using this WordPress plugin.  Just call &lt;span style="font-family:monospace;"&gt;load_otherblog_titles('wordpress','&lt;span style="color:red;"&gt;blog url&lt;/span&gt;','','&lt;span style="color:red;"&gt;feed url (optional)&lt;/span&gt;','&lt;span style="color:red;"&gt;id of element to put results in&lt;/span&gt;');&lt;/span&gt; after the normal FreshTags data has loaded.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/plugin" rel="tag"&gt;plugin&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/wordpress" rel="tag"&gt;wordpress&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114197911077773233?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114197911077773233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114197911077773233&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114197911077773233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114197911077773233'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/freshtags-for-wordpress.html' title='FreshTags for WordPress'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114181836720063680</id><published>2006-03-08T06:43:00.000-05:00</published><updated>2006-03-08T06:46:07.200-05:00</updated><title type='text'>Inline Comments Form Updated</title><content type='html'>I have updated my &lt;a href="http://singpolyma-tech.blogspot.com/2006/01/new-inline-comments-form.html"&gt;inline comments form hack&lt;/a&gt; to be compatible with &lt;a href="http://www.cocomment.com/"&gt;coComment&lt;/a&gt;.  Note that if you have the comments forms visible on your main and archive pages like I do there will still be a problem there, but on item pages the values will be filled it and the coComment detector automatically invoked.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/comments" rel="tag"&gt;comments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/update" rel="tag"&gt;update&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/cocomment" rel="tag"&gt;cocomment&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114181836720063680?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114181836720063680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114181836720063680&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114181836720063680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114181836720063680'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/inline-comments-form-updated.html' title='Inline Comments Form Updated'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114164126235504038</id><published>2006-03-06T05:28:00.000-05:00</published><updated>2006-03-08T06:35:53.190-05:00</updated><title type='text'>shortText.com</title><content type='html'>&lt;a href="http://www.shorttext.com/"&gt;shortText.com&lt;/a&gt; is a site with an interesting purpose -- to post any text.  Plain text only (which is nice for posting code) this site seems free and unlimited.  Just enter your text in the box and click the button.  A (rather random) URL is generated as a permalink to your content (&lt;a href="http://www.shorttext.com/dgic"&gt;example&lt;/a&gt;) and then you can send that URL to anyone.  For those of use who run blog(s) this isn't all that useful -- after all, most content we want to post should make sense on &lt;span style="font-style: italic;"&gt;one&lt;/span&gt; of our blogs, but it could be very useful to people who just want a one-time (or a few-time) publishing of something quickly and don't want to bother with an account registration process.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/shorttext.com" rel="tag"&gt;shorttext.com&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114164126235504038?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114164126235504038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114164126235504038&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114164126235504038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114164126235504038'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/shorttextcom.html' title='shortText.com'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114163930803569290</id><published>2006-03-06T04:50:00.000-05:00</published><updated>2006-03-06T05:01:48.943-05:00</updated><title type='text'>Wrinks</title><content type='html'>Yes, I know, another post on a Ning app of mine.  &lt;a href="http://wrinks.ning.com/"&gt;Wrinks&lt;/a&gt; is an app for the creation/management of webrings, blogrings, linkrolls, and blogrolls.  Ring/roll creators have full power over what sites are members of their wrink and wrinks can be embedded in web pages using either JavaScript or PHP (depending on your hosting situation) as either webrings or blogrolls.  The service aims at being a sort of 'social blogrolling' system.  The first person to add a site to the system has control over that site's metadata (title, description, feedurl, etc.).&lt;br /&gt;&lt;br /&gt;Traffic data is stored for each Wrink and wrinks can be browsed by tag, sorted by traffic number.  These lists of wrinks can be syndicated via either RSS 2.0 or JSON(P).  Each wrink can also be retreived via JSON(P) for custom inclusion in webpages.&lt;br /&gt;&lt;br /&gt;Wrink rolls can also be filtered by tag.  Each site on a roll has tags, and if &amp;amp;tag= is passed to the wrink, only sites matching that tag (or tag intersection) are returned.  This opens the way for the possibility of filtering blogrolls by tag.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogroll" rel="tag"&gt;blogroll&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogring" rel="tag"&gt;blogring&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/webring" rel="tag"&gt;webring&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/linkroll" rel="tag"&gt;linkroll&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114163930803569290?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114163930803569290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114163930803569290&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114163930803569290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114163930803569290'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/wrinks.html' title='Wrinks'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114130648341305741</id><published>2006-03-02T08:24:00.000-05:00</published><updated>2006-03-02T08:34:43.476-05:00</updated><title type='text'>Google Related Pages</title><content type='html'>No, it's not a new service provided by Google -- it's a &lt;a href="http://www.ning.com/"&gt;Ning&lt;/a&gt; app built on the &lt;a href="http://google.com/api"&gt;Google Search API&lt;/a&gt;.  The functionality is simple.  You feed &lt;a href="http://googlerelated.ning.com/"&gt;Google Related Pages&lt;/a&gt; a URL, and it gives you back a list of related webpages.  The data is collected using Google's 'related:' operator.  I have found in tests that it gets pretty good results when used on popular pages, but not as well when used on less popular ones.&lt;br /&gt;&lt;br /&gt;So what is the point?  Why use this instead of just doing a 'related:' search on Google?  Isn't this just a nicer interface to something we could already do?  Not quite.  You see the app also generates RSS 2.0 and JSON(P) feeds of the results. Ultimately &lt;i&gt;that&lt;/i&gt; is the point.  Results can be integrated into pages, such as blog sidebars, or watched in feedreaders.  Because the data is all in the Ning app, other formats will be easy enough to add if people want them.&lt;br /&gt;&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/ning" rel="tag"&gt;ning&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/websites" rel="tag"&gt;websites&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/search" rel="tag"&gt;search&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/google" rel="tag"&gt;google&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114130648341305741?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114130648341305741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114130648341305741&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114130648341305741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114130648341305741'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/03/google-related-pages.html' title='Google Related Pages'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114112892633320506</id><published>2006-02-28T06:46:00.000-05:00</published><updated>2006-09-14T08:54:17.946-05:00</updated><title type='text'>FreshTags-Singpolyma</title><content type='html'>&lt;b title="Updated 2006-09-14"&gt;This post has been 'deprecated'.  Please see &lt;a href="http://singpolyma-tech.blogspot.com/2006/09/freshtags-singpolyma-2.html"&gt;FreshTags-Singpolyma 2&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I have for some time had &lt;a href="http://singpolyma-tech.blogspot.com/2005/11/in-blog-tag-viewing.html"&gt;my own version&lt;/a&gt; of the &lt;a href="http://ghill.customer.netspace.net.au/freshtags/index.html"&gt;FreshTags&lt;/a&gt; system.  In the past, all upgrades to this version have been seamless to the user, but this time the changes were too radical to allow that to work.  I have rewritten the entire hack based off of the &lt;a href="http://blogfresh.blogspot.com/2006/01/freshtags-v-05.html"&gt;FreshTags v0.5&lt;/a&gt; code.  The major changes from FreshTags 0.5 are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Hidden post page is used for displaying tags, instead of reloading the current page and displaying in the sidebar (the primary purpose of the original modifications)&lt;/li&gt;&lt;li&gt;Completely asynchronous data load -- FreshTags no longer loads before the page content, but rather loads afterwards, resulting in a faster page load time&lt;/li&gt;&lt;li&gt;If no tag is selected one can be automatically pulled from relTag data on the page&lt;/li&gt;&lt;li&gt;Full support for peek-a-boo headlines in blogrolls&lt;/li&gt;&lt;/ul&gt;Please Note : If you are upgrading from my previous hack, you will need to remove all of its code from your template before upgrading.  You will also have to edit the Tags post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Basic Installation Instructions&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new post on the blog you would like to implement this hack on with the title 'Tags' and click the 'Edit Html' tab for the post body, pasting the exact code '&amp;lt;div id="freshtags_postpage"&amp;gt;&amp;lt;i&amp;gt;Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;' into the post body. Turn comments off for the post and set the post date to January 1, 2000. The time doesn't matter. Post this post.  (If you are upgrading from the previous version, just edit the post to contain the new code.)&lt;/li&gt;&lt;li&gt;Edit the template for your blog and insert this code into the &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;var del_user = "&lt;span style="color: rgb(255, 0, 0);"&gt;delicious username&lt;/span&gt;";&lt;br /&gt;var anchor = "&lt;span style="color: rgb(255, 0, 0);"&gt;anchor tag&lt;/span&gt;";&lt;br /&gt;var defs = "";&lt;br /&gt;var maxposts = 10;&lt;br /&gt;var freshtags_tags_id = "freshtags_tags";&lt;br /&gt;var freshtags_posts_id = "freshtags_posts";&lt;br /&gt;var freshtags_postpage_id = "freshtags_postpage";&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&amp;amp;amp;id=818185"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;Where 'delicious username' is the del.icio.us username you store your blog data in and 'anchor tag' is the anchor tag you use (if you use one).  If you don't use an anchor tag, just replace the words 'anchor tag' with nothing.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Insert this code where you would like the tags drop-down to go:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;div id="freshtags_tags"&amp;gt;&amp;lt;i&amp;gt;Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="freshtags_posts"&amp;gt;&amp;lt;/div&amp;gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Georgia,serif;"&gt;Save your template and republish your blog&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Customisation Options&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;no_autocapture -- setting this variable to true will keep the script from attempting to grab relTag data from the page.  For example, to keep a Blogger blog using this script from grabbing relTag data when on the main page use &lt;span style="font-family:monospace;"&gt;&amp;lt;MainPage&amp;gt;&amp;lt;script type="text/javascript"&amp;gt;var no_autocapture = true;&amp;lt;/script&amp;gt;&amp;lt;/MainPage&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;defs -- setting this variable sets what tag(s) will be selected be default if the user has not selected any.  This will do nothing if no_autocapture is not set to true unless the autocapture failes.&lt;/li&gt;&lt;li&gt;maxposts -- the maximum number of posts to display in the sidebar&lt;/li&gt;&lt;li&gt;freshtags_tags_id -- the ID of the block to put the tags dropdown in&lt;/li&gt;&lt;li&gt;freshtags_posts_id -- the ID of the block to put the posts list&lt;/li&gt;&lt;li&gt;freshtags_postpage_id -- the ID of the block in the Tags post&lt;/li&gt;&lt;li&gt;&lt;b title="Update 2006-06-06"&gt;freshtags_tag_format -- the format for the tags list (default is 'drop-add').  For example, to use asynchronous post loading add this code to your template: &amp;lt;script type="text/javascript"&amp;gt;var freshtags_tag_format = "drop-add-async";&amp;lt;/script&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Peek-A-Boo Blogroll Headlines&lt;/b&gt;&lt;br /&gt;To add peek-a-boo headlines to your blogrolls follow the following steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add this code to the &amp;lt;head&amp;gt; section of your blog to facilitate the actual show/hide:&lt;br /&gt;&lt;div style="font-family: monospace;"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;function toggleitem(postid,linkid,newtxt,displaytype) {&lt;br /&gt;if(!displaytype) {displaytype = 'block';}&lt;br /&gt;var whichpost = document.getElementById(postid);&lt;br /&gt;if (whichpost.style.display != "none") {&lt;br /&gt;whichpost.style.display = "none";&lt;br /&gt;} else {&lt;br /&gt;whichpost.style.display = displaytype;&lt;br /&gt;}&lt;br /&gt;if(linkid) {&lt;br /&gt;   var lnk = document.getElementById(linkid);&lt;br /&gt;   lnk.href = "javascript:toggleitem('"+postid+"','"+linkid+"','"+lnk.innerHTML+"');";&lt;br /&gt;   lnk.innerHTML = newtxt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add this code just after the blogroll link you want to add peek-a-boo headlines for (it's invisible defaultly, just the container for the headlines) '&lt;span style="font-family:monospace;"&gt;&amp;lt;div id="&lt;span style="color:red;"&gt;blogname&lt;/span&gt;headlines" style="display:none;"&amp;gt;&amp;lt;i&amp;gt;Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;'&lt;/li&gt; &lt;li&gt;If this blog stores post data in del.icio.us (they don't have to use FreshTags necessarily) add this code just before the blogroll link (it's the +/- link for showing/hiding the headlines):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&amp;lt;a id="&lt;span style="color:red;"&gt;blogname&lt;/span&gt;link" href="javascript:toggleitem('&lt;span style="color:red;"&gt;blogname&lt;/span&gt;headlines','&lt;span style="color:red;"&gt;blogname&lt;/span&gt;link','-'); load_otherblog_titles('del.icio.us','&lt;span style="color:red;"&gt;other blog's del.icio.us account username&lt;/span&gt;','&lt;span style="color:red;"&gt;other blog's anchor tag (if they use one)&lt;/span&gt;','&lt;span style="color:red;"&gt;URL to other blog's feed (optional)&lt;/span&gt;','&lt;span style="color:red;"&gt;blogname&lt;/span&gt;headlines');"&amp;gt;+&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Otherwise add this code to use just their feed:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&amp;lt;a id="&lt;span style="color:red;"&gt;blogname&lt;/span&gt;link" href="javascript:toggleitem('&lt;span style="color:red;"&gt;blogname&lt;/span&gt;headlines','&lt;span style="color:red;"&gt;blogname&lt;/span&gt;link','-'); load_otherblog_titles('feed','','','&lt;span style="color:red;"&gt;URL to other blog's feed&lt;/span&gt;','&lt;span style="color:red;"&gt;blogname&lt;/span&gt;headlines');"&amp;gt;+&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/freshtags" rel="tag"&gt;freshtags&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/blogger" rel="tag"&gt;blogger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/hack" rel="tag"&gt;hack&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114112892633320506?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114112892633320506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114112892633320506&amp;isPopup=true' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114112892633320506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114112892633320506'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/02/freshtags-singpolyma.html' title='FreshTags-Singpolyma'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18522301.post-114077902129307881</id><published>2006-02-24T05:41:00.000-05:00</published><updated>2006-02-24T06:03:41.296-05:00</updated><title type='text'>coComment JSONP</title><content type='html'>&lt;a href="http://www.cocomment.com/"&gt;coComment&lt;/a&gt; is a new service like &lt;a href="http://comment.ning.com/"&gt;Commentosphere&lt;/a&gt; that helps you tracks your comments/conversations across the web.    If you haven't heard of coComment yet check out &lt;a href="http://ecmanaut.blogspot.com/2006/02/cocomment-new-contender-in-two-way-web.html"&gt;Johan's article&lt;/a&gt; at Ecmanaut.&lt;br /&gt;&lt;br /&gt;One of the features missing from coComment has been JSON(P) feeds of data.  They have a 'blog box' JavaScript include, but it is limitedly customisable.  So, frustrated with the way it did work, but still wanting to display my coComment data in my sidebar like I have been doing with Commentosphere, I created a hack that generates JSONP feeds for coComment.&lt;br /&gt;&lt;br /&gt;Using the script is simple.  You pass the URL to the JavaScript for a customised blog box on coComment to the script, along with optionally the name of a callback function (using '&amp;amp;callback').  You can tack on '&amp;amp;raw' to make it output raw JSON data.  If no callback is specified and you do not specify raw data it will check to see if you have a coComment.callbacks objects with a comments function and call that.  The URL is:&lt;br /&gt;http://comment.ning.com/cocomment/json.php?url=URLtoBLOGBOX&lt;br /&gt;&lt;br /&gt;If you want a sidebar element, or just some example JavaScript code to work with, here is what I use.  Put this in your &amp;lt;head&amp;gt; section:&lt;br /&gt;&lt;div style="font-family:monospace;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script&amp;nbsp;type="text/javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;list_cocomment_limit&amp;nbsp;=&amp;nbsp;&lt;span style="color:red;"&gt;NUMBER OF CHARACTERS&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;list_cocomment_id&amp;nbsp;=&amp;nbsp;"cocomment";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;list_cocomment_url&amp;nbsp;=&amp;nbsp;"&lt;span style="color:red;"&gt;URL TO BLOG BOX&lt;/span&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;list_cocomment_callback()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;=&amp;nbsp;'';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;+=&amp;nbsp;'&amp;lt;ul&amp;nbsp;class="cocomment"&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var&amp;nbsp;i=0;&amp;nbsp;i&amp;lt;coComment.comments.length;&amp;nbsp;i++)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;+=&amp;nbsp;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a&amp;nbsp;href="'+coComment.comments[i].articlelink+'"&amp;gt;'+coComment.comments[i].body.substr(0,list_cocomment_limit)+'...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}//end&amp;nbsp;for&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;+=&amp;nbsp;'&amp;lt;/ul&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;val&amp;nbsp;+=&amp;nbsp;'&amp;lt;a&amp;nbsp;href="'+coComment.url+'"&amp;gt;More&amp;lt;/a&amp;gt;&amp;nbsp;on&amp;nbsp;&amp;lt;a&amp;nbsp;href="http://www.cocomment.com/"&amp;gt;coComment&amp;lt;/a&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;item&amp;nbsp;=&amp;nbsp;document.getElementById(list_cocomment_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;item.innerHTML&amp;nbsp;=&amp;nbsp;val;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}//end&amp;nbsp;function&amp;nbsp;list_cocomment_callback&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coComment&amp;nbsp;=&amp;nbsp;{};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coComment.callbacks&amp;nbsp;=&amp;nbsp;{};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coComment.callbacks.comments&amp;nbsp;=&amp;nbsp;list_cocomment_callback;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;list_cocomment()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coComment&amp;nbsp;=&amp;nbsp;{};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coComment.callbacks&amp;nbsp;=&amp;nbsp;{};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coComment.callbacks.comments&amp;nbsp;=&amp;nbsp;list_cocomment_callback;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;thescript&amp;nbsp;=&amp;nbsp;document.createElement("script");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;thescript.type&amp;nbsp;=&amp;nbsp;"text/javascript";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;thescript.src&amp;nbsp;=&amp;nbsp;'http://comment.ning.com/cocomment/json.php?url='+encodeURIComponent(list_cocomment_url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.body.appendChild(thescript);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}//end&amp;nbsp;function&amp;nbsp;list_cocomment&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;addLoadEvent(func)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;oldonload&amp;nbsp;=&amp;nbsp;window.onload;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(typeof&amp;nbsp;window.onload&amp;nbsp;!=&amp;nbsp;'function')&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.onload&amp;nbsp;=&amp;nbsp;func;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;else&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.onload&amp;nbsp;=&amp;nbsp;function()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oldonload();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;func();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}//end&amp;nbsp;if&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}//end&amp;nbsp;function&amp;nbsp;addLoadEvent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addLoadEvent(list_cocomment);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//]]&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And in your sidebar put '&lt;span style="font-family:monospace;"&gt;&amp;lt;div id="cocomment"&amp;gt;&amp;lt;i&amp;gt;Loading...&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;'.&lt;br /&gt;&lt;div class="tags"&gt;Tags:&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/cocomment" rel="tag"&gt;cocomment&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/json" rel="tag"&gt;json&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://del.icio.us/singpolyma.techblog/jsonp" rel="tag"&gt;jsonp&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"&gt;&lt;img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-nc-sa/2.5/88x31.png" /&gt;&lt;/a&gt;
© 2006 Stephen Paul Weber.  Some Rights Reserved.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18522301-114077902129307881?l=singpolyma-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://singpolyma-tech.blogspot.com/feeds/114077902129307881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18522301&amp;postID=114077902129307881&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114077902129307881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18522301/posts/default/114077902129307881'/><link rel='alternate' type='text/html' href='http://singpolyma-tech.blogspot.com/2006/02/cocomment-jsonp.html' title='coComment JSONP'/><author><name>Singpolyma</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar/3ab4d3a66e470ce10eb7ec812fab3c46'/></author><thr:total>1</thr:total></entry></feed>
