<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-448949748899908402</id><updated>2008-07-17T04:48:28.067+05:30</updated><title type="text">Blogger Hacked</title><link rel="alternate" type="text/html" href="http://blogger-hacked.blogspot.com/" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><link rel="self" href="http://feeds.feedburner.com/blogger-hacked" type="application/atom+xml" /><feedburner:emailServiceId>503103</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fblogger-hacked" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fblogger-hacked" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fblogger-hacked" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-4554004005865894776</id><published>2007-08-19T18:24:00.000+05:30</published><updated>2007-08-19T18:46:52.967+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><title type="text">News and updates</title><content type="html">I apologize for all those broken promises of new hacks. I have a plethora of ideas, but I'm so busy with a lot of "more important things", that I'm not finding time to code at all. I'm afraid this trend will continue for another couple of months. All I can do now is assure you that this blog is not dead.&lt;br /&gt;&lt;br /&gt;I would like to request all of my readers to subscribe to my feed, so that you will know when another hack comes up here. During this time, I will continue to support my existing hacks. I will respond to any queries or bugs within a week (Under normal circumstances). I am planning to buy some web space too to support my hacks further (Especially get rid of the Googlepages bandwidth problem). But there won't be any substantial progress until after one or two months.&lt;br /&gt;&lt;br /&gt;BTW, there is an update in my quote of the days widget to support more number of quotes. To add to that, I would like to make something clear about that particular hack. Several people have tried to compare that to the random quotes widgets found all around the web. There is stark contrast between my widget and those in the following aspects:&lt;br /&gt;1. I don't like the idea of quotes changing for every refresh of the page. This one doesn't change. It only changes with your calendar.&lt;br /&gt;2. You can write your own quotes, rather than some bullshit from those quote pages.&lt;br /&gt;3. This one goes in a cyclic manner through your quote list. So you never ever miss displaying any of your quotes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Later.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=gj2Y5DxK"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=gj2Y5DxK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=yHCH3xed"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=yHCH3xed" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=wwm4nVni"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=wwm4nVni" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=06W8vhpc"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=06W8vhpc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=9LZOBp2E"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=9LZOBp2E" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/145785442" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/145785442/news-and-updates.html" title="News and updates" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=4554004005865894776" title="19 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/4554004005865894776/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/4554004005865894776" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/4554004005865894776" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F08%2Fnews-and-updates.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/08/news-and-updates.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-1807278699874319618</id><published>2007-05-17T18:49:00.000+05:30</published><updated>2007-05-17T19:21:16.042+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Enhancements" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta Hacks" /><title type="text">AJAX Labels with Label Cloud</title><content type="html">Owing to high demand, I will explain the steps required to integrate &lt;a href="http://blogger-hacked.blogspot.com/2007/02/ajax-labels-reloaded.html"&gt;AJAX Labels&lt;/a&gt; with the immensely popular Phydeaux3's &lt;a href="http://phydeaux3.blogspot.com/2006/09/code-for-beta-blogger-label-cloud.html"&gt;Label Cloud&lt;/a&gt; hack.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note: &lt;/span&gt;Please back up your template at three places as a precaution:&lt;br /&gt;a. Before installing Label Cloud&lt;br /&gt;b. Between installation of Label Cloud and AJAX Labels.&lt;br /&gt;c. Before Step 4 below.&lt;br /&gt;&lt;br /&gt;1. Your first step is to install Label Cloud. Go to &lt;a href="http://phydeaux3.blogspot.com/2006/09/code-for-beta-blogger-label-cloud.html"&gt;Phydeaux3&lt;/a&gt; and follow the steps that are mentioned there. Please comment in Phydeaux3's blog if you find difficulties in installing that hack. I cannot help you there. If you have already installed Labels Cloud, then move on to the next step.&lt;br /&gt;&lt;br /&gt;2. The second step is to install part of my &lt;a href="http://blogger-hacked.blogspot.com/2007/02/ajax-labels-reloaded.html"&gt;AJAX Labels&lt;/a&gt;. Jump to this link and follow all the steps &lt;span style="font-weight: bold;"&gt;except Step 3&lt;/span&gt; (The optional one)&lt;br /&gt;&lt;br /&gt;3. If you have a Labels widget, you probably have to delete it. (Although I'm not sure about that) Do as Phydeaux3 suggests.&lt;br /&gt;&lt;br /&gt;4. Search for the following code snippet inside the code you copied from Phydeaux3 for Label Cloud:&lt;br /&gt;&lt;code class="code-block"&gt;a.href = '/search/label/'+encodeURIComponent(t);&lt;/code&gt;&lt;br /&gt;and replace it with this:&lt;br /&gt;&lt;code class="code-block"&gt;a.href = 'javascript:getCat("' + encodeURIComponent(t) + '",null)'&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I haven't tested this anywhere. I hope this one will work. If it doesn't, please revert back.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=TDjbZYOX"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=TDjbZYOX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=5eKVNdHG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=5eKVNdHG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=VdkFpNXu"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=VdkFpNXu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=eCJwtnEy"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=eCJwtnEy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=VDvcBDsz"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=VDvcBDsz" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/117439939" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/117439939/ajax-labels-with-label-cloud.html" title="AJAX Labels with Label Cloud" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=1807278699874319618" title="21 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/1807278699874319618/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/1807278699874319618" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/1807278699874319618" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F05%2Fajax-labels-with-label-cloud.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/05/ajax-labels-with-label-cloud.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-8005246449538071968</id><published>2007-05-17T13:00:00.000+05:30</published><updated>2007-05-17T18:47:38.600+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title type="text">Loading time improvements with Javascript</title><content type="html">This is another tidbit for coders.&lt;br /&gt;(To be honest, I'm just finding enough time to do some finishing touches for my drafts which are gathering dust and post them here!)&lt;br /&gt;&lt;br /&gt;We come up with new hacks, invariably with a javascript file attached. You add all the hacks, end up with a truckload of javascript includes and thus, a longer loading time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE ROOT CAUSE&lt;/span&gt;&lt;br /&gt;The real problem is the sequential nature of XHTML. XHTML is parsed a tag at a time. So, if you have a couple of lines like this:&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;script type="text/javascript" src="script1.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="script2.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;the files are loaded as follows:&lt;br /&gt;The parser first encounters the first script tag. It then slowly retrieves script1.js and loads it into memory, which takes a lot of time. The parser thinks this is the best time to take a nap and doesn't proceed to parse the next script tag until the current download of script1.js is finished.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_DIv8mEgmnjU/RkBxKWRuMwI/AAAAAAAAACg/cEkFm3hVWgg/s1600-h/noscript.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_DIv8mEgmnjU/RkBxKWRuMwI/AAAAAAAAACg/cEkFm3hVWgg/s400/noscript.jpg" alt="" id="BLOGGER_PHOTO_ID_5062170403756978946" border="0" /&gt;&lt;/a&gt;See the circled portion above. Never mind the loading times. The stuff to notice is that &lt;code&gt;scriptaculous.js&lt;/code&gt; doesn't start loading until &lt;code&gt;prototype.js&lt;/code&gt; finishes loading.&lt;br /&gt;Now, we have a hell lot of bandwidth going wasted during this time. We can do other activities in parallel. But how to do it?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE FIX&lt;/span&gt;&lt;br /&gt;The simple answer: Load the scripts asynchronously!&lt;br /&gt;I call it EOF. EOF for Execute-Open-Forget. (Well!! These things ought to have a geeky name!) We execute a javascript function, request for a download of script1.js, forget it, and execute the function again with another argument for a download of script2.js&lt;br /&gt;&lt;br /&gt;The result is very evident from the following graph below.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_DIv8mEgmnjU/RkBxh2RuMxI/AAAAAAAAACo/WqIC_G2LvPI/s1600-h/script.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_DIv8mEgmnjU/RkBxh2RuMxI/AAAAAAAAACo/WqIC_G2LvPI/s400/script.jpg" alt="" id="BLOGGER_PHOTO_ID_5062170807483904786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Again, don't worry about the load times of singular files. We cannot improve it for the user. But check out the total time taken for the two javascript files circled. It is lesser because the second one starts even before the first one is finished. This difference will be evident if the javascript files are large and takes a few seconds to load.&lt;br /&gt;&lt;br /&gt;Now you might be asking how to make it an EOF?&lt;br /&gt;That's what Javascript is here for. We use Javascript to load a Javascript file. It cannot get weirder.&lt;br /&gt;&lt;br /&gt;Check out this nifty function:&lt;br /&gt;&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;function loadScript(src) {&lt;br /&gt;var script = document.createElement("script");&lt;br /&gt;script.type = "text/javascript";&lt;br /&gt;document.getElementsByTagName("head")[0].appendChild(script);&lt;br /&gt;script.src = src;&lt;br /&gt;}&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now you can load any number of functions using the function.&lt;br /&gt;You just have to add the calls wherever you want&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;loadScript("script1.js");&lt;br /&gt;loadScript("script2.js");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This can go anywhere in the code, including onload event.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BE SMARTER&lt;/span&gt;&lt;br /&gt;This technique can be used cleverly in specific situations.&lt;br /&gt;For example, you may be using some JS libraries for some of your hacks. If the hacks don't show up during loading and does only when uses does some action, we can set a timer to load the script in background after, say, 5 seconds. The main page will be loaded in a jiffy, and the user will be effectively hoodwinked.&lt;br /&gt;This will result in a really critical timing issue, if not handled carefully. Too much of timeout, and the user may get ample time to tamper with the related hack before the script is loaded.&lt;br /&gt;&lt;br /&gt;You can also place the &lt;code&gt;loadScript()&lt;/code&gt; call at some convenient place in the HTML code. It can be as far as the bottom portion of your HTML just before body tag, so that the page is rendered very fast. (Again, the above problem holds good here also.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CAVEATS&lt;/span&gt;&lt;br /&gt;Everything comes with a price. This too has its own deficiencies. Some which I know of:&lt;br /&gt;1. This one is because of the different behavior of IE. IE and Firefox both can download scripts in the manner specified above. The difference is that IE executes them in the order they finish downloading,  whereas Firefox executes them in the order they are appended to the DOM.&lt;br /&gt;This means that your scripts cannot have dependencies on each other in IE. You can get away sometimes, if you are not using the script files until long after loading. (An example is my &lt;a href="http://blogger-hacked.blogspot.com/2007/02/ajax-labels-reloaded.html"&gt;AJAX Labels&lt;/a&gt; Hack)&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Update:&lt;/span&gt; You have to be really careful that you don't allow the user to make calls to a particular function in the dependent script in that case. The only advantage that you can get is a slight improvement in overall loading time.&lt;br /&gt;2. You can download more than two files at the same time only if they are from different domains or subdomains. Normal browsers (including Firefox) can open only upto 2 simultaneous HTTP connections to a domain. If you try to download too many files at the same time, you may even witness bottlenecks. So use this discreetly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ET AL.&lt;/span&gt;&lt;br /&gt;There are many more ways of improving load times:&lt;br /&gt;1. Compress the javascript file. There are umpteen ways of doing that. Refer to my previous post.&lt;br /&gt;2. Check this link out: &lt;a href="http://betterexplained.com/articles/speed-up-your-javascript-load-time/"&gt;Speed Up Your Javascript Load Time&lt;/a&gt; - BetterExplained&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=kUNZtFGz"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=kUNZtFGz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=EYVkYmc8"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=EYVkYmc8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=eme1oGXW"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=eme1oGXW" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=8He26b8B"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=8He26b8B" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=DhECvOfF"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=DhECvOfF" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/117369737" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/117369737/loading-time-improvements-with.html" title="Loading time improvements with Javascript" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=8005246449538071968" title="8 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/8005246449538071968/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/8005246449538071968" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/8005246449538071968" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F05%2Floading-time-improvements-with.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/05/loading-time-improvements-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-5508678149264593011</id><published>2007-04-10T19:00:00.000+05:30</published><updated>2007-04-10T20:21:51.079+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Thinktank" /><title type="text">10 Tools that a Web Developer ought to have</title><content type="html">I'm alive, but not kicking. I'm dead lazy nowadays. Don't ask me why, but I just am into several other things.&lt;br /&gt;&lt;br /&gt;Anyway, to break the ice (again), I'll start with a tip for the budding developers out there. Most of the seasoned folks already know about most of these tools. This is just my personal list of essential tools used for my web development.&lt;br /&gt;&lt;br /&gt;1. &lt;span class="title"&gt;&lt;a href="http://www.mozilla.com/en-US/firefox/"&gt;Mozilla Firefox&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_DIv8mEgmnjU/Rhsn2SACjyI/AAAAAAAAABg/3ue1-9sxhFA/s1600-h/FF.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 175px; height: 175px;" src="http://bp0.blogger.com/_DIv8mEgmnjU/Rhsn2SACjyI/AAAAAAAAABg/3ue1-9sxhFA/s320/FF.jpg" alt="" id="BLOGGER_PHOTO_ID_5051675220524568354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you love customizations, Firefox is the browser you want. It is not "the" complete browser around, but its extensibility is enough to make it a clear winner.&lt;br /&gt;As I read somewhere out on the internet, Firefox's secret is the same as Jessica Simpson's: it's chic style is the result of... ahem... extensions.&lt;br /&gt;&lt;br /&gt;The single best thing that I love about Firefox is extensions... extensions for any damn thing you can do in the universe (Except, maybe, brewing a cup of coffee :P)&lt;br /&gt;In fact there are so many Firefox extensions around, that your head will spin.&lt;br /&gt;Now the interesting part. Even you can create an extension yourself. You just have to have a basic knowledge of XUL and Javascript, which is so easy to be called a trifle.&lt;br /&gt;Firefox is a much better browser than Internet Explorer (On second thought, a &lt;span style="font-weight: bold;"&gt;real&lt;/span&gt; browser unlike IE, as &lt;a href="http://lastword.blogspot.com/"&gt;Aditya&lt;/a&gt; once pointed out.)&lt;br /&gt;&lt;br /&gt;So what are you waiting for? Just dump Internet Explorer and start using Firefox.&lt;br /&gt;&lt;br /&gt;2. &lt;span class="title"&gt;&lt;a href="http://www.getfirebug.com/"&gt;Firebug&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_DIv8mEgmnjU/Rhsn9yACjzI/AAAAAAAAABo/JFo_kjJynUw/s1600-h/FB.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 213px; height: 158px;" src="http://bp2.blogger.com/_DIv8mEgmnjU/Rhsn9yACjzI/AAAAAAAAABo/JFo_kjJynUw/s320/FB.jpg" alt="" id="BLOGGER_PHOTO_ID_5051675349373587250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This was the first extension I looked for after I installed Firefox in my new laptop at office. I cannot live without this extension. This is a very desirable tool for any web developer.&lt;br /&gt;It lets you inspect and edit HTML, change the CSS style on the fly, debugs javascript code and even monitor the loading times of the components in a web page.&lt;br /&gt;&lt;br /&gt;I'm particularly impressed with the CSS/HTML editing on the fly, because I can perfect the CSS without the toiling job of saving the page-loading-saving again.&lt;br /&gt;The AJAX debugging capabilities are also too good. I still don't know of any other method to debug AJAX calls.&lt;br /&gt;&lt;br /&gt;3. &lt;span class="title"&gt;&lt;a href="http://ietab.mozdev.org/"&gt;IE Tab&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This is for those people who just can't ignore their readers who still use Internet Explorer. Even if I loathe IE, I can't turn a blind eye towards that pathetic software which calls itself a browser.&lt;br /&gt;This Firefox extension adds an option to open in IE Tab in your Status Bar and in the right-click menu.&lt;br /&gt;If you open in IE Tab, it uses the rendering engine of Internet Explorer, so you will get a view just like in IE, without going out of the luxury of Firefox.&lt;br /&gt;This is useful to fix the nasty IE bugs.&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://www.ning.com/"&gt;Ning&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_DIv8mEgmnjU/RhstlSACj1I/AAAAAAAAAB4/VjlAkM7KEAY/s1600-h/ni.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 243px; height: 157px;" src="http://bp0.blogger.com/_DIv8mEgmnjU/RhstlSACj1I/AAAAAAAAAB4/VjlAkM7KEAY/s320/ni.jpg" alt="" id="BLOGGER_PHOTO_ID_5051681525536558930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ning calls itself a personal Social Network creator. But it is more than that. It can do a lot of things like hosting server side scripts for free. Of course, I know it is not all that Ning can do.&lt;br /&gt;I myself am not very much aware of the power of Ning, because I haven't ventured into those seas yet. I'm still in a learning phase with Ning.&lt;br /&gt;Several of the PHP scripts of the bleet are hosted in Ning:&lt;br /&gt;a. &lt;a href="http://wrinks.ning.com/"&gt;Wrinks&lt;/a&gt;&lt;br /&gt;b. &lt;a href="http://jscripts.ning.com/"&gt;Javascript Minify&lt;/a&gt;&lt;br /&gt;c. &lt;a href="http://phpplay.ning.com/"&gt;Native Search Suggest&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All I can say is that very few people have usefully tapped Ning's power.&lt;br /&gt;&lt;br /&gt;5. &lt;a href="http://www.adobe.com/products/dreamweaver/"&gt;Macromedia Dreamweaver&lt;/a&gt;&lt;br /&gt;I'm so spoilt by this software that I can't think of anything else to edit my XHTML/CSS/JS code. I don't use it for any pleasure other than proper syntax check and coloring while I code.&lt;br /&gt;&lt;br /&gt;6. &lt;a href="http://www.raboof.com/Projects/TidyJson/"&gt;TidyJSON&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_DIv8mEgmnjU/RhsoUyACj0I/AAAAAAAAABw/zt-ej_TrbYM/s1600-h/tj.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 231px; height: 185px;" src="http://bp2.blogger.com/_DIv8mEgmnjU/RhsoUyACj0I/AAAAAAAAABw/zt-ej_TrbYM/s320/tj.JPG" alt="" id="BLOGGER_PHOTO_ID_5051675744510578498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Programmers working with JSON feeds encounter a very irritating problem. The feed you get will usually be a one-liner, and it is a toilsome, if not impossible effort to check the objects inside the JSON feed. This is where TidyJSON comes in handy.&lt;br /&gt;It is a commandline utility to read JSON from a file and format it with good coloring and indentation. Working with JSON will never be the same!&lt;br /&gt;&lt;br /&gt;7. &lt;a href="http://andrewu.co.uk/tools/uriencoder/"&gt;URI Encoder&lt;/a&gt;&lt;br /&gt;You will definitely need this if you are posting some code in your blog. You'll need to convert all those tags to corresponding URIs. There are umpteen number of online tools to do that. This is just one of them.&lt;br /&gt;&lt;br /&gt;8. &lt;a href="http://www.javascriptcompressor.com/"&gt;Javascript Compressor&lt;/a&gt;&lt;br /&gt;You can always save some valuable load time by compressing your JS code. This basically removes all unnecessary stuff like extra newlines, comments and renames some variables, so that you end up getting a much smaller file size.&lt;br /&gt;For those crazy ones, you can obfuscate the code too. I don't do that. I want my readers to read and understand the code, if they want.&lt;br /&gt;&lt;br /&gt;There are umpteen number of static compressors out there. One which needs particular mention is Stephen's &lt;a href="http://jscripts.ning.com/"&gt;JScripts Minify&lt;/a&gt;. It is a dynamic Javascript compressor which requires you to just host the original JS file in jscripts.ning.com and access the file with argument ?minify. Check &lt;a href="http://singpolyma.net/2007/01/jscripts-gets-some-love/"&gt;his post&lt;/a&gt; for more info.&lt;br /&gt;&lt;br /&gt;9. &lt;a href="http://jcay.com/javascript-code-improver.html"&gt;JavaScript Code Improver&lt;/a&gt;&lt;br /&gt;This does just the reverse of the previous. This converts compressed or obfuscated code into a more readable format. Very useful in reverse engineering.&lt;br /&gt;&lt;br /&gt;10. &lt;a href="http://www.prototypejs.org/api"&gt;The Prototype API document&lt;/a&gt;&lt;br /&gt;This is a very useful document for people who use Prototype library extensively. Available as a PDF document as well as a sidebar extension for Firefox.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=YkedM79R"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=YkedM79R" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=TGRoFv8V"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=TGRoFv8V" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=HGekUupa"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=HGekUupa" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=zJoyUNPp"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=zJoyUNPp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/108001325" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/108001325/tools-web-developer-ought-to-have.html" title="10 Tools that a Web Developer ought to have" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=5508678149264593011" title="12 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/5508678149264593011/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/5508678149264593011" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/5508678149264593011" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F04%2Ftools-web-developer-ought-to-have.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/04/tools-web-developer-ought-to-have.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-3363562366106306271</id><published>2007-02-28T14:20:00.000+05:30</published><updated>2007-05-16T13:29:14.050+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Updates" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta Hacks" /><title type="text">Alternating Sidebar Styles: Update</title><content type="html">For those who have reaped the benefits of &lt;a href="http://blogger-hacked.blogspot.com/2007/01/alternating-sidebar-styles.html"&gt;Alternating Sidebar Styles&lt;/a&gt; hack, it has now become even better.&lt;br /&gt;&lt;br /&gt;The original hack supported only single-sidebar templates.&lt;br /&gt;This update will automate the even-odd styled sidebar widgets for &lt;span style="font-weight: bold;"&gt;any number&lt;/span&gt; of sidebars.&lt;br /&gt;The only thing you have to bear in mind is that each sidebar section (which you want to show in alternate style) should have a class &lt;code&gt;sidebar&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;This update is a result of constant bugging by &lt;a href="http://www.techzilo.com/"&gt;Sumesh&lt;/a&gt;. Great going, kiddo! :p&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;STEPS FOR UPGRADING&lt;/span&gt;&lt;br /&gt;Absolutely none!&lt;br /&gt;I have made the changes in the javascript file itself.&lt;br /&gt;However, you have to make sure that each sidebar section is of &lt;code&gt;sidebar&lt;/code&gt; class. (If you are using &lt;a href="http://hackosphere.blogspot.com/"&gt;Ramani's&lt;/a&gt; or &lt;a href="http://hoctro.blogspot.com/"&gt;Hoctro's&lt;/a&gt; templates, or have used the instructions from Beautiful Beta for adding sidebars, then it already has that classname)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FIRST TIME INSTALLERS&lt;/span&gt;&lt;br /&gt;Rush to the &lt;a href="http://blogger-hacked.blogspot.com/2007/01/alternating-sidebar-styles.html"&gt;instructions for the original hack&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please don't ask me on instructions to add a new sidebar. Check out &lt;a href="http://beautifulbeta.blogspot.com/2006/09/adding-second-sidebar-to-your-template.html"&gt;Beautiful Beta&lt;/a&gt; which already has the instructions.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=76w1GuY0"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=76w1GuY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=uNN82zXi"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=uNN82zXi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=FHkvvjHz"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=FHkvvjHz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=TaOXDZgn"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=TaOXDZgn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/97262570"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/97262570/alternating-sidebar-styles-update.html" title="Alternating Sidebar Styles: Update" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=3363562366106306271" title="7 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/3363562366106306271/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/3363562366106306271" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/3363562366106306271" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F02%2Falternating-sidebar-styles-update.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/02/alternating-sidebar-styles-update.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-7820464570637660599</id><published>2007-02-23T19:10:00.000+05:30</published><updated>2007-07-14T12:43:04.183+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta Hacks" /><title type="text">AJAX Labels Reloaded</title><content type="html">The AJAX Labels is back with more features! I was planning to release this with my new template, but the template design is slipping beyond schedule.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note: &lt;/span&gt;If you want to integrate AJAX Labels with Phydeaux3's Label Clouds, &lt;a href="http://blogger-hacked.blogspot.com/2007/05/ajax-labels-with-label-cloud.html"&gt;read this post&lt;/a&gt; and come back here.&lt;br /&gt;&lt;br /&gt;Some of the new features are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Built-in navigation system.&lt;/li&gt;&lt;li&gt; More user customisability. (You don't even need to know coding for that!)&lt;/li&gt;&lt;li&gt; Support for Unicode Categories in IE.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; More user-friendly installation. (Code to be copied/modified in template is reduced)&lt;/li&gt;&lt;/ul&gt;The installation of this hack afresh would be easy. But upgrading from my previous version is a bit knotty. Anyway, I will explain both. If you get stuck, feel free to comment and I'll be there to help.&lt;br /&gt;&lt;br /&gt;&lt;a name="fresh"&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;FRESH INSTALLATION&lt;/span&gt;&lt;br /&gt;&lt;a href="#upgrade"&gt;Click here for Upgradation instructions&lt;/a&gt;.&lt;br /&gt;If you already have AJAX Labels installed, you can directly jump to upgradation instructions.&lt;br /&gt;&lt;br /&gt;Like the first version, this one too needs the Prototype JS framework. You can either store it in a location of your preference, or use the location that I've given below.&lt;br /&gt;First of all, back up your template. It is always a good idea to back up your template, so that you can revert if you mess things up.&lt;br /&gt;&lt;a name="fresh1"&gt;&lt;/a&gt;&lt;br /&gt;1. Click Page Layout-&gt;Edit HTML. Check the box saying "Expand Widget Templates"&lt;br /&gt;Look for the &lt;code&gt;&amp;lt;/head&amp;gt;&lt;/code&gt; tag in your template. Insert the following code just above that.&lt;br /&gt;&lt;pre&gt;&lt;code class="code-block"&gt;&amp;lt;style type='text/css'&amp;gt;&lt;br /&gt;#indicator {position:fixed;z-index:1000;padding:15px 0;top:40%;background-color:#FFFFFF;border:1px solid #AAAAAA;width:176px;left:50%;margin-left:-88px;text-align:center;}&lt;br /&gt;#search-result {border:1px solid #AAAAAA;padding:10px;padding-bottom:30px;font-size:85%;}&lt;br /&gt;.search-result-meta {background:#EFEFEF;padding:2px;}&lt;br /&gt;.search-result-meta img {border-width:0;vertical-align:text-bottom;}&lt;br /&gt;.search-title {font-size:1em;padding-bottom:3px;font-weight:bold;text-align:left;text-decoration:underline;}&lt;br /&gt;.search-cat {display:block;padding:3px;font-size:1em;margin-top:5px;margin-bottom:5px;border-bottom:1px solid #C0C0C0;font-weight:bold;}&lt;br /&gt;.search-close {color:silver;float:right;border:1px solid #F5F5F5;margin-top:10px;cursor:pointer;}&lt;br /&gt;.search-result-nav {font-size:1.4em;font-weight:bold;padding:5px 0pt;text-align:center;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript' src='http://bloggerhacked.googlepages.com/prototype.js' /&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;// User customisable parameters&lt;br /&gt;// ----------------------------&lt;br /&gt;// maxresults - Number of results to show per page&lt;br /&gt;// navFlag    - Set Navigation ON or OFF. Give 1 for ON and 0 for OFF.&lt;br /&gt;// feedLabel  - Text to show for the label feed link.&lt;br /&gt;// catLabel   - Label for categories.&lt;br /&gt;// closeLabel - Label for Close button. You can use hypertext also.&lt;br /&gt;var &lt;span style="color: rgb(255, 0, 0);"&gt;maxresults = 5&lt;/span&gt;;&lt;br /&gt;var &lt;span style="color: rgb(255, 0, 0);"&gt;navFlag = 1&lt;/span&gt;;   //ON by default&lt;br /&gt;var &lt;span style="color: rgb(255, 0, 0);"&gt;feedLabel = "Subscribe to"&lt;/span&gt;;&lt;br /&gt;var &lt;span style="color: rgb(255, 0, 0);"&gt;catLabel = "Sorted into:"&lt;/span&gt;;&lt;br /&gt;var &lt;span style="color: rgb(255, 0, 0);"&gt;closeLabel = "Click to close";&lt;/span&gt;&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type='text/javascript' src='http://bloggerhacked.googlepages.com/ajaxlabels.js' /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; You can avoid the prototype script addition line if you already have added the prototype.js script to your template (It is quite likely, if you have added some hack to your blog). If you don't understand what I'm saying, never mind.&lt;br /&gt;&lt;br /&gt;Now the customisation part.&lt;br /&gt;See the snippets in red above. Those are the stuff which you can customise.&lt;br /&gt;Just above that I have written comments on what each represent. To customise them, you just need to modify them to the appropriate value.&lt;br /&gt;For example, if you want to change the close button text from "Click to close" to, say, "[X]", then simply change "Click to close" in the red area to "[X]".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Navigation Feature:&lt;/span&gt; The navigation feature allows pagination of the results. So you can view all the results in several pages.&lt;br /&gt;&lt;code&gt;maxresults&lt;/code&gt; and &lt;code&gt;navFlag&lt;/code&gt; together determine how it is shown.&lt;br /&gt;navFlag is the parameter saying whether you want this feature or not. The number of results shown per page will be decided by &lt;code&gt;maxresults&lt;/code&gt;. The number of pages will be calculated automatically.&lt;br /&gt;&lt;br /&gt;Eg: Lets say, you have 13 posts with a particular label in your blog.&lt;br /&gt;Case 1: &lt;code&gt;maxresults=5&lt;/code&gt; and &lt;code&gt;navFlag=1&lt;/code&gt;&lt;br /&gt;You will have 3 pages (peekaboo blocks) with 5 results each. There will be a navbar which will let you go to any of those 3 pages.&lt;br /&gt;Case 2: &lt;code&gt;maxresults=5&lt;/code&gt; and &lt;code&gt;navFlag=0&lt;/code&gt;&lt;br /&gt;You will have a single page with 5 recently updated posts with the particular label.&lt;br /&gt;You won't be able to view other results&lt;br /&gt;Case 3: &lt;code&gt;maxresults=20&lt;/code&gt; and &lt;code&gt;navFlag=1&lt;/code&gt;&lt;br /&gt;You will have a single page with 13 results (Because 13 is less than 20).&lt;br /&gt;&lt;br /&gt;If you know CSS, you can modify the look of your result block as well.&lt;br /&gt;&lt;br /&gt;2. Locate the following code in your template:&lt;br /&gt;&lt;pre&gt;&lt;code class="code-block"&gt;&amp;lt;b:loop values='data:post.labels' var='label'&amp;gt;&lt;br /&gt;&amp;lt;a expr:href='data:label.url' rel='tag'&amp;gt;&amp;lt;data:label.name/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Replace it with this:&lt;br /&gt;&lt;pre&gt;&lt;code class="code-block"&gt;&amp;lt;b:loop values='data:post.labels' var='label'&amp;gt;&lt;br /&gt;&amp;lt;a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null)"' rel='tag'&amp;gt;&amp;lt;data:label.name/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Optional:&lt;/span&gt; If you have the labels widget in your template.&lt;br /&gt;&lt;br /&gt;Locate the following code in your template:&lt;br /&gt;&lt;pre&gt;&lt;code class="code-block"&gt;&amp;lt;b:if cond='data:blog.url == data:label.url'&amp;gt;&lt;br /&gt;&amp;lt;data:label.name/&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;a href='data:label.url'&amp;gt;&amp;lt;data:label.name/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Replace it with this:&lt;br /&gt;&lt;pre&gt;&lt;code class="code-block"&gt;&amp;lt;b:if cond='data:blog.url == data:label.url'&amp;gt;&lt;br /&gt;&amp;lt;data:label.name/&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&amp;lt;a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null)"' &amp;gt;&amp;lt;data:label.name/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="fresh4"&gt;&lt;/a&gt;4. Click on the button below.&lt;br /&gt;&lt;form method="post" action="http://beta.blogger.com/add-widget"&gt;&lt;input name="widget.title" value="" type="hidden"&gt;&lt;textarea name="widget.content" style="display: none;"&gt;&lt;div id="indicator" style="display:none"&gt;&lt;img alt="Indicator" src="http://bloggerhacked.googlepages.com/indicator.gif" /&gt; Loading...&lt;/div&gt;&lt;div id="search-result" style="display:none"&gt;&lt;a name="sres"&gt;&lt;/a&gt;&lt;div class="search-close" onclick="javascript:Element.hide('search-result')"&gt;&lt;script type="text/javascript"&gt;document.write(closeLabel);&lt;/script&gt;&lt;/div&gt;&lt;div id="show-result"&gt;&lt;/div&gt;&lt;div class="search-close" onclick="javascript:Element.hide('search-result')"&gt;&lt;script type="text/javascript"&gt;document.write(closeLabel);&lt;/script&gt;&lt;/div&gt;&lt;/div&gt;&lt;/textarea&gt;&lt;input name="go" value="Add Widget" type="submit"&gt;&lt;/form&gt;&lt;br /&gt;This will take you to an Add Widget Screen. Select your blog and click on Add widget.&lt;br /&gt;&lt;br /&gt;5. Save your template. That was a breeze, wasn't it?&lt;br /&gt;&lt;br /&gt;&lt;a name="upgrade"&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;UPGRADATION&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Caution!&lt;/span&gt;&lt;br /&gt;If you are installing AJAX Labels for the first time, don't proceed any further. You are already finished with your installation. This section is only for upgrading from the previous version.&lt;br /&gt;&lt;br /&gt;1. Back up your template first. (Be pessimistic in these matters ;) )&lt;br /&gt;2. Go to Edit HTML. Look for my previous installation of Javascript. It is very easy to find. It is enclosed within &lt;code&gt;&amp;lt;!-- Begin Categories --&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;!-- End Categories --&amp;gt;&lt;/code&gt;&lt;br /&gt;Delete that entire portion.&lt;br /&gt;3. Now check &lt;a href="#fresh1"&gt;Step 1&lt;/a&gt; of the FRESH INSTALLATION section. Follow that step and come back here.&lt;br /&gt;4. Search for the following snippet in your template.&lt;br /&gt;&lt;code class="code-block"&gt;'"javascript:getCat(\"" + data:label.name + "\")"'&lt;/code&gt;&lt;br /&gt;There will be two places where this occurs.&lt;br /&gt;Replace both places with this&lt;br /&gt;&lt;code class="code-block"&gt;'"javascript:getCat(\"" + data:label.name + "\",null)"'&lt;/code&gt;&lt;br /&gt;5. Save your template and go to page layout screen and delete the HTML/Javascript widget you had created when you installed the previous version.&lt;br /&gt;6. Go to &lt;a href="#fresh4"&gt;step 4&lt;/a&gt; of FRESH INSTALLATION section. Follow that step and come back here.&lt;br /&gt;7. Save your template and you are done. There! That was not very difficult.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ACKNOWLEDGEMENTS&lt;/span&gt;&lt;br /&gt;Tsung-Kai Chen - For his several comments and the bugs he found in the previous version.&lt;br /&gt;Bahram - For the heads up on the Unicode Category issue in IE.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 1:&lt;/span&gt; The code had minor syntax errors (due to wrong copy paste)because of which the hack was not working. Problem is fixed now. Reinstalling the hack will make it work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 2:&lt;/span&gt; Drat! Another silly mistake. The Close button was not working. I've fixed this. Just delete the widget and add it again (&lt;a href="#fresh4"&gt;Step 4&lt;/a&gt;) . You don't have to redo any other steps.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 3:&lt;/span&gt; Arrgh!! Another bug. I have made the corrections. You will have to redo Steps 2, 3 and 4. This will remove support for the rel-tag microformat. I will release an update if I find a way to work around that.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=nC1GKQnH"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=nC1GKQnH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=6KVEBdmN"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=6KVEBdmN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=lbjDy3HR"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=lbjDy3HR" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=RcMOx4zE"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=RcMOx4zE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=Tj6ChdDy"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=Tj6ChdDy" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/94752246"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/94752246/ajax-labels-reloaded.html" title="AJAX Labels Reloaded" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=7820464570637660599" title="73 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/7820464570637660599/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/7820464570637660599" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/7820464570637660599" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F02%2Fajax-labels-reloaded.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/02/ajax-labels-reloaded.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-8500693680448170120</id><published>2007-02-14T13:46:00.000+05:30</published><updated>2007-02-21T18:45:50.696+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Thinktank" /><title type="text">Rewired Feeds</title><content type="html">Those who know UNIX might know the use of pipes. Pipes are what make the shell scripts do their job. Think pipes. Think Feeds. Think mash-up. And think Yahoo!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_DIv8mEgmnjU/RdLwRon3qaI/AAAAAAAAAA4/eWaKryZHRaM/s1600-h/logo_1.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_DIv8mEgmnjU/RdLwRon3qaI/AAAAAAAAAA4/eWaKryZHRaM/s320/logo_1.gif" alt="" id="BLOGGER_PHOTO_ID_5031347919479351714" border="0" /&gt;&lt;/a&gt;The result is &lt;a href="http://pipes.yahoo.com/"&gt;Yahoo! pipes&lt;/a&gt;.&lt;br /&gt;Yahoo! pipes is a versatile method of filtering out unnecessary data from feeds and getting exactly what you want.&lt;br /&gt;&lt;br /&gt;Yahoo! pipes works similar to UNIX pipes, to redirect output to different blocks/widgets sequentially and get a final format which the user wants. But the best part is, there is no coding involved. Any amateur user can use the pipes to get a personalized feed. It is so simple. Just drag and drop filters, give the proper parameters in each, and connect each through pipes.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_DIv8mEgmnjU/RdMHson3qbI/AAAAAAAAABE/Kft-_c8UEZY/s1600-h/sample_pipe.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_DIv8mEgmnjU/RdMHson3qbI/AAAAAAAAABE/Kft-_c8UEZY/s320/sample_pipe.JPG" alt="" id="BLOGGER_PHOTO_ID_5031373672103258546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check the following pipe for instance. I create a Fetch block and give my feed URL. Then I pipe it to a Filter block which will filter it based on a simple rule - Select all the entries which have category "Stories". It is then connected to "Pipe output".&lt;br /&gt;The result is a feed which has only those entries with category "Stories", filtered out from the original feed.&lt;br /&gt;&lt;br /&gt;This is just a simple application. There are a myriad of possible ways you can create a mash-up. Heaven is the limit to the number of smart ways you can customize your feeds.&lt;br /&gt;&lt;br /&gt;You can even give query strings and get the output as feeds. You have the option of getting RSS or JSON feeds.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE VERDICT&lt;/span&gt;&lt;br /&gt;Feeds have already been making news as an excellent way of representing data. Pipes just made it better. As I said, heaven is the limit. We can expect some new hacks for Blogger too which uses Yahoo! pipes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FURTHER READING&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://lastword.blogspot.com/2007/02/pipes-to-rescue.html"&gt;Pipes to the rescue!&lt;/a&gt; - Aditya&lt;br /&gt;2. &lt;a href="http://radar.oreilly.com/archives/2007/02/pipes_and_filte.html"&gt;Pipes and filters for the internet&lt;/a&gt; - O'Reilly&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: line-through;"&gt;1. There is a bug in Yahoo! pipes currently which results in published date field to be blank in the feed. Ramani has mentioned this to the "Pipes Suggestion Board". It is important that we get this bug out of the way. So please &lt;a href="http://suggestions.yahoo.com/detail/?prop=Pipes&amp;fid=6300"&gt;vote for his feedback&lt;/a&gt;. Ramani reckons that Yahoo! is not like the Blogger Support; they are very responsive. :)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;This problem is fixed by Yahoo!&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=0aItTbyN"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=0aItTbyN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=NGtChLad"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=NGtChLad" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=1Fiq88j1"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=1Fiq88j1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=aQUt4R6P"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=aQUt4R6P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=DTOJd8cp"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=DTOJd8cp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/90656481"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/90656481/rewired-feeds.html" title="Rewired Feeds" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=8500693680448170120" title="13 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/8500693680448170120/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/8500693680448170120" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/8500693680448170120" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F02%2Frewired-feeds.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/02/rewired-feeds.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-3632648494430905331</id><published>2007-02-01T15:12:00.000+05:30</published><updated>2007-02-01T15:19:16.255+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title type="text">Do you hear me? Do you know me?</title><content type="html">I was initially reluctant to write this post here when Aditya tagged me. I didn't want this to be in my tech blog. After months, I decided to write it anyway. (Just as a gap filler, as I am in the process of rolling out more interesting stuff)&lt;br /&gt;&lt;br /&gt;Five things you don't know about me. Well! I'm so new to the hacker arena that most people don't know anything about me.&lt;br /&gt;&lt;br /&gt;For a starter, read &lt;a href="http://deepakiyer.blogspot.com/2006/10/weird-things-about-weirdness.html"&gt;this post&lt;/a&gt; about six weird things about me.&lt;br /&gt;&lt;br /&gt;1. I am not a Computer Engineer. If you ask me about "OS concepts", I won't be able to understand what you ask, let alone answer it. I did my engineering in Electronics and Communication (because I like it more) from &lt;a href="http://www.nitc.ac.in/nitc/index.jsp"&gt;NIT Calicut&lt;/a&gt;. I work in Mobile Multimedia domain. I was introduced to the world of computers in my 8th grade (1996), although it wasn't until 2000 that I started liking computers.&lt;br /&gt;&lt;br /&gt;I don't know when I started liking programming. I learned C and found out that programming was fun. Then I went on to write some simple games like &lt;a href="http://en.wikipedia.org/wiki/Bulls_and_cows"&gt;Bulls and Cows&lt;/a&gt;. My first big project was to create an IDE for 80x86 Assembly Language Programming. This was created in C to aid myself and my classmates with their Microprocessor Lab work.&lt;br /&gt;&lt;br /&gt;2. Most of what I've learned with respect to computers is self-taught. From assembling computer hardware to programming hacks. My interest in Blogger hacks was born out of necessity. I started blogging sometime around 2004. I really hated all the templates in Blogger so I wanted to make one myself. It started with small mods for my template, which then went on to learning Javascript, the JSON, XML and so on.&lt;br /&gt;&lt;br /&gt;3. I am 23 years old, although I look much younger. People still think that I'm in college when they see me. I usually quip with quotes from an Indian ad.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Only Indians will understand this :) )&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Person: You don't look like you are 23.&lt;br /&gt;Me: That's because I use Santoor soap. "Chehraa Dekhke umr ka pataa hi nahin chalta"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(means "You can't guess my age by looking at my face". That was the tagline of that supposedly age-defying soap.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4.  I play the Violin. I started learning violin when I was seven. I hold a National Scholarship in Violin and am a part time professional. I was a singer in our college band too. Another instrument which I can "claim" to play is the keyboard. I know how to touch it. :D&lt;br /&gt;&lt;br /&gt;Other hobbies I have are making crazy contraptions and small electronic circuits, solving cryptic crosswords, to name a few. I'm an avid reader of novels and a movie-watcher.&lt;br /&gt;I am a big big fan of Harry Potter. People say I'm crazy about Harry Potter. In fact, the lime green theme of my blog was inspired by the lime green cover of Half-Blood Prince.&lt;br /&gt;&lt;br /&gt;5. I crack more PJs (Poor Jokes) than good jokes. You might've had a taste of it from my Profile ;)&lt;br /&gt;&lt;br /&gt;That's as much as I can say right now. I'm feeling a kind of deja vu because I've written most things about myself in my personal blog.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=DDB2PLPD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=DDB2PLPD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=y5n11Phy"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=y5n11Phy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=v5wuvt0C"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=v5wuvt0C" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=aYV61XIx"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=aYV61XIx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=XnBkkJZh"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=XnBkkJZh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/84836675"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/84836675/do-you-hear-me-do-you-know-me.html" title="Do you hear me? Do you know me?" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=3632648494430905331" title="13 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/3632648494430905331/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/3632648494430905331" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/3632648494430905331" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F02%2Fdo-you-hear-me-do-you-know-me.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/02/do-you-hear-me-do-you-know-me.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-1949021333372462512</id><published>2007-01-28T14:18:00.000+05:30</published><updated>2007-01-28T14:17:11.055+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Thinktank" /><title type="text">To innerHTML or not to innerHTML</title><content type="html">Is innerHTML an angel or the devil?&lt;br /&gt;&lt;br /&gt;There are two faces of innerHTML.&lt;br /&gt;On one hand, it’s proprietary. It's certainly not part of the W3C DOM specifications. It’s also not very robust. It takes a single argument - a string - and squeezes that into the element, regardless of whether the string contains well-formed markup or not. Heck, it doesn't even check if the markup has a closing tag, and is often the reason for baffling layout bugs. It is very dangerous compared to the standard DOM methods - &lt;span style="font-weight: bold;"&gt;createElement&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;createTextNode &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;appendChild&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;On the other hand, innerHTML reduces the lines of code. It is easy to write, if you can stand the trouble of escaping characters in the string. It is very well-supported. In fact, it enjoys better cross-browser support that DOM methods don't have. It also is faster than DOM. This is a &lt;a href="http://www.quirksmode.org/dom/innerhtml.html"&gt;proven fact&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To use or not to use innerHTML...That's a definite toughie to answer!&lt;br /&gt;I have to admit that I always have been tempted to use innerHTML through and through. I just can't stand the clumsy extra lines needed with DOM and all the variables declared.&lt;br /&gt;&lt;br /&gt;It is much easier to use innerHTML when it comes to Ajax. It even is a part of a microformat - the &lt;a href="http://microformats.org/wiki/rest/ahah"&gt;AHAH&lt;/a&gt;.&lt;br /&gt;It’s the simplest way of taking the responseText property of the XMLHttpRequest object and inserting it into a specified part of a page.&lt;br /&gt;And it reduces the LOC (Lines of code) by at least 3 times.&lt;br /&gt;&lt;br /&gt;innerHTML does look dirty. But there’s no way to make Ajax work without making some sort of trade-off with non-standard technologies.&lt;br /&gt;&lt;br /&gt;Followers of the DOM standards would say not to follow innerHTML. As a programmer, even I shouldn't. innerHTML is a bad programming practice, just like using magic numbers in a piece of code. But I'm tempted. I think innerHTML makes my life easier. Only I have to be a little careful. I keep following innerHTML because, standard or not, innerHTML is gonna stay.&lt;br /&gt;&lt;br /&gt;The confusion haunts me forever.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=IZQTeQ8s"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=IZQTeQ8s" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=4uRLrVnP"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=4uRLrVnP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=65KHS94L"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=65KHS94L" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=PrX7tTwB"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=PrX7tTwB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=992XS12C"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=992XS12C" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/82824408"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/82824408/to-innerhtml-or-not-to-innerhtml.html" title="To innerHTML or not to innerHTML" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=1949021333372462512" title="17 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/1949021333372462512/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/1949021333372462512" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/1949021333372462512" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F01%2Fto-innerhtml-or-not-to-innerhtml.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/01/to-innerhtml-or-not-to-innerhtml.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-2665237948248464540</id><published>2007-01-11T21:01:00.000+05:30</published><updated>2007-01-11T20:59:10.813+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta Hacks" /><title type="text">Alternating Sidebar Styles</title><content type="html">I was in the process of changing the template for my personal blog when I got this idea. I'm not sure whether anyone has already released this hack. Anyway, it is a very useful one.&lt;br /&gt;&lt;br /&gt;We have seen several webpages where the sidebar blocks are alternating in style. (color, generally)&lt;br /&gt;In websites, it is easy to do this by manually giving different classnames for alternate sidebar blocks. But this wouldn't be possible in Blogger, particularly because of the Drag-and-drop mechanism in Page Layout, which makes it difficult, because the owner has to change the class every time he repositions the widget. Also, it is tedious to add our custom code every time we add a new widget. After all, we are supposed to render ourselves indolent by making a one-time change to ease our work! ;)&lt;br /&gt;&lt;br /&gt;So, is there a way to automate the alternating sidebar block styles? Sure there is!&lt;br /&gt;Even I didn't expect it to be so simple a code when I started coding this.&lt;br /&gt;If you want to see this hack in action, visit my &lt;a href="http://matrix-archive.blogspot.com/2006/12/test1.html"&gt;test blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IMPLEMENTATION&lt;/span&gt;&lt;br /&gt;1. Look for &lt;code style="color: rgb(255, 0, 0);"&gt;]]&amp;gt;&amp;lt;/b:skin&amp;gt;&lt;/code&gt; tag in your template  and copy this code just above that.&lt;br /&gt;&lt;code class="code-block"&gt;&lt;br /&gt;.even {&lt;br /&gt;background-color: #EEEEEE;&lt;br /&gt;}&lt;br /&gt;.odd {&lt;br /&gt;background-color: #AAAAAA;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This is where you make your customisations. Use whatever CSS you want to customise these two classes. I have just given background colors here.&lt;br /&gt;&lt;br /&gt;2. Copy the following code just above the &lt;code&gt;&amp;lt;/head&amp;gt;&lt;/code&gt; tag.&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;script src='http://bloggerhacked.googlepages.com/prototype.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src='http://bloggerhacked.googlepages.com/evenodd.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Save the template and you're done. That's neat and easy. :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note for advanced users:&lt;/span&gt; You might already be having prototype framework and addLoadEvent routine attached to your blog. In that case, feel free to take my Javascript file, modify it and host it in your preferred location.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=KviF6JBj"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=KviF6JBj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=2aMMGSAA"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=2aMMGSAA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=t5qD1Ep8"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=t5qD1Ep8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=h7JL3IFK"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=h7JL3IFK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=SQsK1RwM"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=SQsK1RwM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/73939906"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/73939906/alternating-sidebar-styles.html" title="Alternating Sidebar Styles" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=2665237948248464540" title="12 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/2665237948248464540/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/2665237948248464540" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/2665237948248464540" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F01%2Falternating-sidebar-styles.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/01/alternating-sidebar-styles.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-3094544768029108503</id><published>2007-01-08T19:45:00.000+05:30</published><updated>2007-01-09T14:39:53.479+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="Greasemonkey" /><title type="text">Comment Buttons User Script</title><content type="html">This was a result of a sudden bulb which glowed in my head today morning. The current for the bulb was provided &lt;a href="http://lastword.blogspot.com/2007/01/blogger-smilies.html"&gt;here&lt;/a&gt;. =) (Sorry that was a really bad joke)&lt;br /&gt;&lt;br /&gt;Smileys sure increase the viewer experience, but don't they increase the writer experience too?&lt;br /&gt;How often have you complained about enclosing text inside &amp;lt;b&amp;gt; and &amp;lt;/b&amp;gt;, if you had to highlight something in your comment?&lt;br /&gt;&lt;br /&gt;Well! You don't have to do that any more.&lt;br /&gt;This hack is just for you. &lt;span style="font-weight: bold;"&gt;YOU &lt;/span&gt;decide how you want the experience to be in another blog; not the owner of that blog. (I admit that sentence was too farfetched! You need some leniency from the owner also. What if he doesn't let you comment? :-/ :D )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FUNCTIONALITY&lt;/span&gt;&lt;br /&gt;This Greasemonkey script will add a few buttons in every blogger comments page that you visit, thus helping you to italicize, make bold or even add smileys to your comments.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_DIv8mEgmnjU/RaJQp7RJpVI/AAAAAAAAAAc/Du_xSLU1kFo/s1600-h/GM-buttons2.bmp"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_DIv8mEgmnjU/RaJQp7RJpVI/AAAAAAAAAAc/Du_xSLU1kFo/s320/GM-buttons2.bmp" alt="" id="BLOGGER_PHOTO_ID_5017661616058639698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It works closely with Smileys hack, but will work without that hack also.&lt;br /&gt;If the original blog (the one where you are commenting) has the Smileys hack, it will show the smileys as little images. Otherwise, they will remain as smiley text. No problems!&lt;br /&gt;&lt;br /&gt;You need &lt;a href="http://www.mozilla.com/"&gt;Firefox&lt;/a&gt; with &lt;a href="http://greasemonkey.mozdev.org/index.html"&gt;Greasemonkey&lt;/a&gt; installed to use this.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;For those who don't know much about Greasemonkey:&lt;/span&gt; Please be aware that this script &lt;span style="font-weight: bold;"&gt;*will not*&lt;/span&gt; change the look of your blog. It will do nothing to your blog. A person can see the buttons only if &lt;span style="font-weight: bold;"&gt;he/she &lt;/span&gt;has the user script installed in his/her browser. So you cannot provide this as a feel-good feature to your readers. (You can recommend this to them, though. ;) )&lt;br /&gt;&lt;br /&gt;But on the other hand, you can use this as a feel-good feature for &lt;span style="font-weight: bold;"&gt;yourself&lt;/span&gt;, in all blogger blogs. (you heard it right! All!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSTALLATION&lt;/span&gt;&lt;br /&gt;1. Install Greasemonkey Extension in your Firefox browser.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_DIv8mEgmnjU/RaJNdbRJpUI/AAAAAAAAAAU/FySh5OAoqmg/s1600-h/GM-install.bmp"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_DIv8mEgmnjU/RaJNdbRJpUI/AAAAAAAAAAU/FySh5OAoqmg/s320/GM-install.bmp" alt="" id="BLOGGER_PHOTO_ID_5017658102775391554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://userscripts.org/scripts/source/7023.user.js"&gt;Click on this link&lt;/a&gt; to get your user script.&lt;br /&gt;3. You will get a popup to install the user script, which looks like this:&lt;br /&gt;4. Click Install.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;USAGE&lt;/span&gt;&lt;br /&gt;This will work similar to most text editors.&lt;br /&gt;Select some text, click the button for Bold; the selected text will be enclosed in &amp;lt;b&amp;gt; tags. Similarly for italics and links.&lt;br /&gt;If you click on the smiley buttons, the equivalent text will be inserted. If the owner of the blog has installed the smiley hack, then it will be shown as images in the item page.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note1:&lt;/span&gt; &lt;span style="text-decoration: line-through;"&gt;The smiley images won't show up in the comment page, even if the smiley hack is installed. So don't come complaining that they don't work.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note2:&lt;/span&gt; Thanks to Aditya for hosting the images. :)&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; The smiley images will show up in the comment page now. I have made a mod of Aditya's hack into my userscript to show them. If you have already installed my script, just uninstall and reinstall it from the link above in INSTALLATION step #2&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=U6HfEY8j"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=U6HfEY8j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=QRlclaQ5"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=QRlclaQ5" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=7KgRNmRr"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=7KgRNmRr" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=ORNpACZX"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=ORNpACZX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=Lm4xHCAG"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=Lm4xHCAG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/72405643"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/72405643/comment-buttons-user-script.html" title="Comment Buttons User Script" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=3094544768029108503" title="42 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/3094544768029108503/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/3094544768029108503" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/3094544768029108503" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F01%2Fcomment-buttons-user-script.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/01/comment-buttons-user-script.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-2049143371353448878</id><published>2007-01-02T11:56:00.000+05:30</published><updated>2007-01-02T21:09:08.500+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Thinktank" /><title type="text">Navigations, Suggestions and Asynchronism</title><content type="html">A few ideas came to my mind when it was idle over the weekend. (An idle mind is the devil's workshop!!?? :D )&lt;br /&gt;&lt;br /&gt;What are the limits to which we can tweak the blogger template? I can't say for sure. Too much of anything is bad. If we have to modify the entire architecture of the template, then it is not worth pursuing that hack.&lt;br /&gt;&lt;br /&gt;Anyway, here are the ideas. Discussion is open.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Idea #1: Seamless Asynchronism in Navigation&lt;/span&gt;&lt;br /&gt;Let me be specific. Is it worth implementing the entire post section in a custom manner, and getting rid of the GML portions altogether?&lt;br /&gt;Right now, I can't think of any way other than that.&lt;br /&gt;I stumbled upon a slider based asynchronous navigation in one &lt;a href="http://getk2.com/"&gt;website&lt;/a&gt;. We can use similar stuff for the older posts and newer posts links. Rather than bringing up the results in a freshly loaded page every time, we can just load the posts section. I reckon that will be a mammoth change.&lt;br /&gt;&lt;br /&gt;The idea of seamless navigation encompasses any page inside a particular blog.&lt;br /&gt;We can very well modify the blog to load only the post section every time. Why? Answer is simple; we seldom have sidebar sections which change with the type of page (Item, Index or Archive)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Idea #2: Search Suggest&lt;/span&gt;&lt;br /&gt;&lt;a href="http://lastword.blogspot.com/"&gt;Aditya&lt;/a&gt; had created the Native Search Suggest hack which he just showed a trailer of, but never released. I bet it was one of the most anticipated hacks, but Alas!&lt;br /&gt;&lt;br /&gt;If you ask me, the idea of Google Suggest is one of the best AJAX implementations ever.&lt;br /&gt;&lt;br /&gt;This idea is again something which I stumbled upon while experimenting with Firebug. I saw the response of the AJAX requests sent by Google Suggest, which was in a very desirable function call format.&lt;br /&gt;&lt;br /&gt;When I typed "suggest", the HTTP request sent was&lt;br /&gt;&lt;blockquote&gt;GET http://www.google.com/complete/search?hl=en&amp;js=true&amp;amp;qu=suggest&lt;/blockquote&gt;And the response text was&lt;br /&gt;&lt;blockquote&gt;sendRPCDone(frameElement, "suggest", new Array("suggest", "suggest link", ...&lt;/blockquote&gt;(Truncated, as it is too long)&lt;br /&gt;&lt;br /&gt;So it is just a matter of defining the function, sendRPCDone. (i.e., deciding what the function does.)&lt;br /&gt;But there is a catch here too. There is an inherent feature of Gecko-based browsers (don't know about others) where XMLHttpRequests (known to common man as AJAX, although there is more to AJAX than XMLHttpRequest) to other domains are not possible. So you cannot get the results in this case. Can we do this without XMLHttpRequest? This is something to be investigated.&lt;br /&gt;&lt;br /&gt;So, Aditya, if you promise you'll release your Native Search Suggest soon, then there's no need to pursue the above one ;)&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=WjKnDzYT"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=WjKnDzYT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=8RtlXkPR"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=8RtlXkPR" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=0tLAeD9w"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=0tLAeD9w" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=nkVhBiOw"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=nkVhBiOw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=VlPvEk94"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=VlPvEk94" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/69775917"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/69775917/navigations-suggestions-and.html" title="Navigations, Suggestions and Asynchronism" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=2049143371353448878" title="14 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/2049143371353448878/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/2049143371353448878" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/2049143371353448878" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2007%2F01%2Fnavigations-suggestions-and.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2007/01/navigations-suggestions-and.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-7809729909961443308</id><published>2006-12-17T15:11:00.000+05:30</published><updated>2007-02-23T19:20:31.097+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="Beta Hacks" /><title type="text">AJAX Labels: Updated</title><content type="html">This version is outdated. A newer (and better) version is present &lt;a href="http://blogger-hacked.blogspot.com/2007/02/ajax-labels-reloaded.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;div class="comment-line"&gt;&lt;/div&gt;&lt;br /&gt;What if you can view the posts  having a particular label without leaving the current page? What if you can do your bit of reading and other stuff and keep clicking away without wasting your time while the labels are loaded in the background and displayed when they are ready? (Okay, enough of that. I see some people rolling their eyes now. :D )&lt;br /&gt;&lt;br /&gt;AJAX labels does just the same... It opens a block of text just above all the posts, showing snippets of posts having the label you selected. Click on any of the categories on the right sidebar to see the hack in action.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INTRODUCTION&lt;/span&gt;&lt;br /&gt;I had this hack in my personal blog about a month back. It had some really rigorous logic to parse the RSS feed, and hence was not very fast. Now that Google has implemented JSON feeds in their GData structure, my job becomes easier. I also decided to open this hack for the public.&lt;br /&gt;&lt;br /&gt;My earlier implementation was in AJAX, i.e. I had used the XMLHttpRequest function for asynchronous procurement of the RSS data and XML DOM parsing to display it. Needless to say, JSON cuts down most of the logic, because of its inherent nature. (I could have used Singpolyma's excellent &lt;a href="http://xoxotools.ning.com/outlineconvert.php"&gt;Outline Converter&lt;/a&gt; application, but it would simply have added to the overhead. Also, I don't like NING because they take the website offline too frequently. :p)&lt;br /&gt;If you are interested, &lt;a href="http://bloggerhacked.googlepages.com/ajaxlabelsxml"&gt;here&lt;/a&gt; is the link to my original script to parse the XML feed.&lt;br /&gt;&lt;br /&gt;This &lt;span style="font-weight: bold;"&gt;looks&lt;/span&gt; strikingly similar to &lt;a href="http://lastword.blogspot.com/"&gt;Aditya's&lt;/a&gt; ABC Index, but the similarity ends there. The ABC Index was for old Blogger which didn't have the category support or JSON feeds. So he had to make use of del.icio.us categories. Also, the implementation did not use the XMLHttpRequest, but was nevertheless asynchronously loaded. But the XMLHttpRequest gives the best asynchronous experience.&lt;br /&gt;The idea of showing the categories in a block was originally Aditya's, so I should give him due credit.&lt;br /&gt;&lt;br /&gt;So much for the intro babble. Lets get on with the hack, shall we?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE HACK&lt;/span&gt;&lt;br /&gt;1. First things first. You should get yourself a copy of the prototype JS framework for this hack to work. Host it in a place of your convenience, maybe your Google Pages, since you already have a Google account. Otherwise, you can get one from here.&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;script type="text/javascript" src="http://bloggerhacked.googlepages.com/prototype.js" /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Add this (Change the link if you opt to host the file) inside the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; section of your template. I would recommend pasting it just above the closing &lt;code&gt;&amp;lt;/head&amp;gt;&lt;/code&gt; tag.&lt;br /&gt;&lt;br /&gt;2. Now the heart of the hack.&lt;br /&gt;Go to &lt;a href="http://bloggerhacked.googlepages.com/ajaxlabelsscript"&gt;http://bloggerhacked.googlepages.com/ajaxlabelsscript&lt;/a&gt;&lt;br /&gt;and copy the javascript and paste it just below the code you just added in step 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Optional Step&lt;/span&gt;: You can modify the CSS part of the javascript you just copied to suit the theme of your blog. I will give some basic tips to modify them here.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#indicator&lt;/code&gt; is the loading indicator. To change the background color, modify the hex value of background-color inside. To change the border color, change the hex value of border inside the #indicator.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#search-result&lt;/code&gt; is the box in which the category results are displayed.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;.search-result-meta&lt;/code&gt; is the RSS feed for the label on the top.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;.search-title&lt;/code&gt; is the post title of the category results.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;.search-cat&lt;/code&gt; is the list of other categories of each post.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;.search-close&lt;/code&gt; is the "Click to close" text at the bottom.&lt;br /&gt;&lt;br /&gt;3. Locate the following code in your template:&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;div class='tags'&amp;gt; Labels:&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;b:loop values='data:post.labels' var='label'&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;a expr:href='data:label.url' rel='tag'&amp;gt;&lt;/span&gt;&amp;lt;data:label.name/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/b:loop&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Replace the red part of the code with this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;a expr:href='"javascript:getCat(\"" + data:label.name + "\")"' rel='tag'&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. Go to Page Layout screen. Add a HTML/Javascript widget just above the Blog Posts widget.&lt;br /&gt;Give the title as blank and following code in body.&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;div id="indicator" style="display: none;"&amp;gt;&lt;br /&gt;&amp;lt;img alt="Indicator" src="http://bloggerhacked.googlepages.com/indicator.gif" /&amp;gt; Loading...&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;div id='search-result' style='display:none'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5. Save your template and you are done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ADDITIONAL STEPS IF YOU HAVE LABELS WIDGET IN YOUR SIDEBAR&lt;br /&gt;&lt;/span&gt;1. Look for the code of your labels widget. If you don't know how, search for the following:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code class="code-block"&gt;&amp;lt;b:loop values='data:labels' var='label'&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;b:if cond='data:blog.url == data:label.url'&amp;gt;&lt;br /&gt;&amp;lt;data:label.name/&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;a expr:href='data:label.url' rel='tag'&amp;gt;&lt;/span&gt;&amp;lt;data:label.name/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;br /&gt;(&amp;lt;data:label.count/&amp;gt;)&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/b:loop&amp;gt;&lt;/code&gt;&lt;br /&gt;Change the red portion of code with this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;a expr:href='"javascript:getCat(\"" + data:label.name + "\")"' rel='tag'&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;USAGE&lt;/span&gt;&lt;br /&gt;Simply click on the label at the sidebar or at the bottom of a post and see the results coming up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LIMITATIONS AND ROADMAP&lt;/span&gt;&lt;br /&gt;I have limited the number of results returned to 5, because it will take up too much of page space otherwise. You can change the value if you change the max-results variable in the query inside the javascript.&lt;br /&gt;I am planning to make a web-based script creator for this, with a truckload of customisations.&lt;br /&gt;Also in the papers is support for navigation of the query results within the result block, a la the previous-posts-next-posts navigation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: Minor correction based on comment by Tsung-kai Chen. Changes in blue. Sorry for the error.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 2&lt;/span&gt;: Another correction in the main script in &lt;a href="http://bloggerhacked.googlepages.com/ajaxlabelsscript"&gt;http://bloggerhacked.googlepages.com/ajaxlabelsscript&lt;/a&gt;.&lt;br /&gt;I won't make silly mistakes anymore. Promise! :D&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=w5JQadRs"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=w5JQadRs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=wRPQJU49"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=wRPQJU49" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=v52c8LUW"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=v52c8LUW" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=3tG0SFoD"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=3tG0SFoD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=OxrKZrAZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=OxrKZrAZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/63841933"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/63841933/ajax-labels.html" title="AJAX Labels: Updated" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=7809729909961443308" title="56 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/7809729909961443308/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/7809729909961443308" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/7809729909961443308" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2006%2F10%2Fajax-labels.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2006/10/ajax-labels.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-8350442029266625595</id><published>2006-12-17T09:01:00.000+05:30</published><updated>2007-08-19T18:22:06.610+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="Widgets" /><title type="text">Updated: Quote of the day widget</title><content type="html">&lt;div style="background-color: rgb(255,255,168); border: 1px solid whitesmoke;"&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt;&lt;br /&gt;There are subtle changes in the script so that it now supports more than 31 quotes. The limit is now technically 365, which I think is more than enough. Please edit the widget and repeat Step 3 below. For those who are interested, the changed portions are in blue.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;If you have visited my personal blog, (Cheap publicity here, I know ;) ) you might have noticed a "Quick Quote Quill's Quote of the day". Do I change the quote every day? No. It is automatic. It is one of my earliest javascript codes and not specific to blogger or even for blogs. However, I made it into a widget so you can use it in Beta Blogger.&lt;br /&gt;&lt;br /&gt;This is more than a quote fetcher. You can add whatever quotes you want. (Even quoted by you!) This code cycles a set of quotes each day, i.e., it will display a new quote each day. When it reaches the last quote in your list, it starts from the first again. And all these quotes are added by you.&lt;br /&gt;&lt;br /&gt;You can make it a widget in your Blogger Beta blog. How? Read along:&lt;br /&gt;&lt;br /&gt;1. First thing you have to do is create a HTML/Javascript element from your Page Layout view. Create it anywhere you like.&lt;br /&gt;You probably want it just below the blog title/description block, but will see that you are not able to add or drag elements to the area just below the blog title block.&lt;br /&gt;To overcome that limitation, go to Edit Template and look for this code in there.&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;div id="header-wrapper"&amp;gt;&lt;br /&gt;&amp;lt;b:section class="header" id="header" &lt;span style="color: rgb(255, 0, 0);"&gt;showaddelement="no"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;b:widget id="Header1" locked="false" title="xxxxxx(Header)" type="Header"&amp;gt;&lt;br /&gt;&amp;lt;/b:widget&amp;gt;&lt;br /&gt;&amp;lt;/b:section&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The part of interest is the red-colored one - showaddelement.&lt;br /&gt;The name suggests it all. Make it yes and save. You will find the "Add element" region in your layout next time.&lt;br /&gt;&lt;br /&gt;2. Give a name you like to be the title of your quote of the day.&lt;br /&gt;&lt;br /&gt;3. Paste the following code inside the content area of the widget:&lt;br /&gt;&lt;code class="code-block"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var today= new Date();&lt;br /&gt;var first = new Date(today.getFullYear(), 0, 1);&lt;br /&gt;var day = Math.round(((today - first) / 86400000), 0);&lt;/span&gt;&lt;br /&gt;var numquotes = &lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;;&lt;br /&gt;quotes = new Array(numquotes+1);&lt;br /&gt;authors = new Array(numquotes+1);&lt;br /&gt;quotes[1] = "&lt;span style="color: rgb(255, 0, 0);"&gt;Quote_1&lt;/span&gt;";&lt;br /&gt;quotes[2] = "&lt;span style="color: rgb(255, 0, 0);"&gt;Quote_2&lt;/span&gt;";&lt;br /&gt;quotes[3] = "&lt;span style="color: rgb(255, 0, 0);"&gt;Quote_3&lt;/span&gt;";&lt;br /&gt;authors[1] = "&lt;span style="color: rgb(255, 0, 0);"&gt;Author_1&lt;/span&gt;";&lt;br /&gt;authors[2] = "&lt;span style="color: rgb(255, 0, 0);"&gt;Author_2&lt;/span&gt;";&lt;br /&gt;authors[3] = "&lt;span style="color: rgb(255, 0, 0);"&gt;Author_3&lt;/span&gt;";&lt;br /&gt;var ran = (day % numquotes) + 1;&lt;br /&gt;document.write(quotes[ran] + '&amp;lt;p style="text-align: right"&amp;gt;&amp;lt;i&amp;gt;' + authors[ran] + '&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;');&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Note the red colored regions. This is where you make your customisations.&lt;br /&gt;You can modify the text (Quote_1, Author_1 etc.) to the quotes of your choice.&lt;br /&gt;You can leave the Author text blank, i.e. just the &lt;code style="color: rgb(255, 0, 0);"&gt;""&lt;/code&gt;.&lt;br /&gt;(Technically, the quote text too, but that doesn't make sense, does it?)&lt;br /&gt;&lt;br /&gt;4. You can even add new quotes.&lt;br /&gt;I have given an example with 3 quotes. You can give as many quotes as you want.&lt;br /&gt;For that, add a new line just below the last quote line (&lt;code&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;quotes[3] = "Quote_3"; &lt;/span&gt;&lt;/code&gt; in this case).&lt;br /&gt;The line should read like &lt;code&gt;quotes[4] = "YOUR_QUOTE";&lt;/code&gt;&lt;br /&gt;(You know what to fill in instead of YOUR_QUOTE)&lt;br /&gt;Similarly, add a new authors line.&lt;br /&gt;&lt;code&gt;authors[4] = "YOUR_AUTHOR";&lt;/code&gt;&lt;br /&gt;Also change &lt;code&gt;numquotes&lt;/code&gt; to 4.&lt;br /&gt;&lt;br /&gt;Remember, you can add more quotes in a similar fashion.&lt;br /&gt;Just make sure that the&lt;br /&gt;&lt;code&gt;&lt;br /&gt;numquotes=N;&lt;br /&gt;quotes[N]="";&lt;/code&gt; and&lt;br /&gt;&lt;code&gt;authors[N]="";&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;lines tally.&lt;br /&gt;&lt;br /&gt;5. Save the widget. Save the template.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=atAUywui"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=atAUywui" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=pWm1luxv"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=pWm1luxv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=1ljCzBqp"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=1ljCzBqp" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=2DxpsxqN"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=2DxpsxqN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=1mOXQiX0"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=1mOXQiX0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/25532585"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/25532585/quote-of-day-widget.html" title="Updated: Quote of the day widget" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=8350442029266625595" title="31 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/8350442029266625595/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/8350442029266625595" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/8350442029266625595" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2006%2F09%2Fquote-of-day-widget.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2006/09/quote-of-day-widget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-448949748899908402.post-6002514723760085549</id><published>2006-12-16T19:33:00.000+05:30</published><updated>2006-12-16T19:34:07.427+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><title type="text">First post</title><content type="html">Hello all,&lt;br /&gt;&lt;br /&gt;So I finally decided to open my technical blog after about 6 months of creating it. I don't know what made me do that. I had been hacking my personal blog for a long time, but all the hacks remained in my blog only. After months of prowling in Blogger Help Group as Janus (&lt;span style="font-weight:bold;"&gt;Janus&lt;/span&gt;, because I'm a man with two faces. We all are!), one fine day I got a inner call to publish my hacks. :D&lt;br /&gt;&lt;br /&gt;I have to admit that it's really tough to compile a step by step procedure for others to implement a hack, particularly when you have to keep in mind that most of them won't understand the code and it's a kind of spoon feeding.&lt;br /&gt;&lt;br /&gt;But now I'm into the waters. And you can expect some cool hacks for your blog.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=9eV1sPKf"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=9eV1sPKf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=8sLwDHga"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=8sLwDHga" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=AXZezoeE"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=AXZezoeE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=ArVnhBbL"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=ArVnhBbL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/blogger-hacked?a=pK6YbyNl"&gt;&lt;img src="http://feeds.feedburner.com/~f/blogger-hacked?i=pK6YbyNl" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogger-hacked/~4/25532586"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/blogger-hacked/~3/25532586/first-post.html" title="First post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=448949748899908402&amp;postID=6002514723760085549" title="4 Comments" /><link rel="replies" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/6002514723760085549/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://blogger-hacked.blogspot.com/feeds/posts/default/6002514723760085549" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/448949748899908402/posts/default/6002514723760085549" /><author><name>Deepak</name><uri>http://www.blogger.com/profile/00009857277794962700</uri><email>noreply@blogger.com</email></author><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=blogger-hacked&amp;itemurl=http%3A%2F%2Fblogger-hacked.blogspot.com%2F2006%2F08%2Ffirst-post.html</feedburner:awareness><feedburner:origLink>http://blogger-hacked.blogspot.com/2006/08/first-post.html</feedburner:origLink></entry><feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetFeedData?uri=blogger-hacked</feedburner:awareness></feed>
