<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bin-Blog &#187; JavaScript</title>
	<atom:link href="http://www.bin-co.com/blog/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bin-co.com/blog</link>
	<description>Learn about the latest in Web Development - as soon as I do.</description>
	<lastBuildDate>Tue, 13 Oct 2009 18:55:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Link Code Insert: A GreaseMonkey UserScript</title>
		<link>http://www.bin-co.com/blog/2009/07/link-code-insert-a-greasemonkey-userscript/</link>
		<comments>http://www.bin-co.com/blog/2009/07/link-code-insert-a-greasemonkey-userscript/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 18:43:33 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[userscript]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/?p=338</guid>
		<description><![CDATA[Link Code Insert inserts the HTML code for creating a link at the active element location when the user presses Ctrl+Alt+A. I use it a lot when I am writing a comment and want to add a link. Just select the text you want to link and the userscript will add the HTML code '<code>&#60;a href=""&#62;</code>' before the selected text and a '<code>&#60;/a&#62;</code>' after it.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bin-co.com/blog/wp-content/uploads/2009/07/greasemonkey.png" alt="GreaseMonkey" title="GreaseMonkey" width="192" height="217" class="aligncenter size-full wp-image-337 intro" align="right" /></p>
<p class="intro">Link Code Insert inserts the HTML code for creating a link at the active element location when the user presses Ctrl+Alt+A. I use it a lot when I am writing a comment and want to add a link. Just select the text you want to link and the userscript will add the HTML code &#8216;<code>&lt;a href=""&gt;</code>&#8216; before the selected text and a &#8216;<code>&lt;/a&gt;</code>&#8216; after it.</p>
<p>Technically, this is a UserScript &#8211; and not a plugin. But I prefer to think of a userscript as a plugin of a plugin. So I guess it can be included in the Plugin Week.</p>
<p>Note: You must be using Firefox and must have installed GreaseMonkey for this script to work.</p>
<h3><a href="http://www.openjs.com/scripts/greasemonkey/utilities/link_code_insert/link_code_insert.user.js">Download/Install the UserScript</a></h3>
<h2>Plugin Week 2</h2>
<p>This plugin is part of the Plugin Week 2 series. <strong class="highlight">Plugin Week is a week when I publish a new plugin each day for an entire week</strong>. I have already one this <a href="http://www.bin-co.com/blog/2008/12/wordpress-plugin-week/">one time</a> &#8211; so this is Plugin Week 2. The plugins released so far&#8230;</p>
<ul>
<li><a href="http://www.bin-co.com/blog/2009/07/plugin-week-2-wordpress-plugin-weather-man/">Weather Man</a></li>
<li><a href="http://www.bin-co.com/blog/2009/07/minicart-wordpress-plugin-shopping-cart-for-wordpress/">MiniCart WordPress Plugin</a></li>
<li><a href="http://www.bin-co.com/blog/2009/07/gallifrey-image-gallery-wordpress-plugin/">Gallifrey WordPress Plugin</a></li>
<li><a href="http://www.bin-co.com/blog/2009/07/gimp-plugin-web-2-0-shadows/">GIMP Plugin – Web 2.0 Shadows</a></li>
<li><a href="http://www.bin-co.com/blog/2009/07/drupal-plugin-page-ad/">Drupal Plugin: Page Ad</a></li>
<li><a href="http://www.bin-co.com/blog/2009/07/export-to-wordpress-joomla-plugin/">Export To WordPress: Joomla Plugin</a></li>
</ul>
<p>If you want to get news about the upcoming plugin releases(remember, 1 per day), please <strong class="highlight"><a href="http://feeds2.feedburner.com/bin-blog">subscribe to this site</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2009/07/link-code-insert-a-greasemonkey-userscript/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Gallifrey Image Gallery WordPress Plugin</title>
		<link>http://www.bin-co.com/blog/2009/07/gallifrey-image-gallery-wordpress-plugin/</link>
		<comments>http://www.bin-co.com/blog/2009/07/gallifrey-image-gallery-wordpress-plugin/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:41:59 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[gallifrey]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wp-plugin]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/?p=315</guid>
		<description><![CDATA[Gallifrey is an image gallery WordPress plugin based on the <a href="http://www.twospy.com/galleriffic/">Galleriffic jQuery plugin</a>. It will replace the standard wordpress gallery when you activate it. You don't have to change the code of all the earlier galleries.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bin-co.com/blog/wp-content/uploads/2009/07/gallery.jpg" alt="Gallifrey WordPress Plugin" title="Gallifrey WordPress Plugin" width="360" height="313" class="aligncenter size-full wp-image-314" /></p>
<p class="intro"><strong class="highlight">Gallifrey is an image gallery WordPress plugin</strong> based on the <a href="http://www.twospy.com/galleriffic/">Galleriffic jQuery plugin</a>. It will <strong class="highlight">replace the standard wordpress gallery</strong> when you activate it. You don&#8217;t have to change the code of all the earlier galleries.</p>
<h3><a href="http://downloads.wordpress.org/plugin/gallifrey.zip">Download Gallifrey Image Gallery WordPress Plugin</a></h3>
<p><a href="http://wordpress.binnyva.com/plugin/gallifrey-plugin-demo/">Gallifrey Demo</a></p>
<h2>Features</h2>
<ul>
<li>Smart image preloading <strong class="highlight">after</strong> the page is loaded</li>
<li>Thumbnail navigation</li>
<li>Support for bookmark-friendly URLs per-image</li>
<li>Slideshow (with optional auto-updating url bookmarks)</li>
<li>Events that allow for adding your own custom transition effects</li>
<li>Graceful degradation when javascript is not available</li>
<li>Same shortcode as WordPress Gallery &#8211; so previous galleries will be updated as well</li>
</ul>
<h2>Installation</h2>
<ul>
<li>Download the <a href="http://downloads.wordpress.org/plugin/gallifrey.zip">zipped file</a>.</li>
<li>Extract and upload the contents of the folder to /wp-contents/plugins/ folder</li>
<li>Enable the plugin from WordPress admin area</li>
<li>Add galleries into your post using the normal method</li>
</ul>
<p>If you have any issues with the plugin, post a thread at the <a href="http://projects.binnyva.com/forum/viewforum.php?f=18">Gallifrey Plugin Forum</a>.</p>
<h2>Plugin Week</h2>
<p>This plugin is part of the Plugin Week 2 series. <strong class="highlight">Plugin Week is a week when I publish a new plugin each day for an entire week</strong>. I have already one this <a href="http://www.bin-co.com/blog/2008/12/wordpress-plugin-week/">one time</a> &#8211; so this is Plugin Week 2. This is the second plugin released this week. The first is <a href="http://www.bin-co.com/blog/2009/07/plugin-week-2-wordpress-plugin-weather-man/">Weather Man</a> and the second one is <a href="http://www.bin-co.com/blog/2009/07/minicart-wordpress-plugin-shopping-cart-for-wordpress/">MiniCart WordPress Plugin</a></p>
<p>If you want to get news about the upcoming plugin releases(remember, 1 per day), please <strong class="highlight"><a href="http://feeds2.feedburner.com/bin-blog">subscribe to this site</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2009/07/gallifrey-image-gallery-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>JSL &#8211; a New JavaScript Library</title>
		<link>http://www.bin-co.com/blog/2008/07/jsl-javascript-library/</link>
		<comments>http://www.bin-co.com/blog/2008/07/jsl-javascript-library/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 18:17:56 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jsl]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/?p=119</guid>
		<description><![CDATA[Yesterday, I published a new JavaScript Library &#8211; JSL. It borrows many ideas from the famous jQuery library. Download Packed Version &#8211; 13 KB Source &#8211; 38 KB Features The Standard Stuff&#8230; CSS DOM Selectors Ajax Functions Event Handling is abstracted Ability to change style of an element. Extendable by Plugins Supports all Modern Browsers [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bin-co.com/blog/wp-content/uploads/2008/05/javascript_logo.jpg" alt="Javascript Rhino Logo" title="Javascript Logo" width="230" height="194" class="wp-image-109 intro" align="right" /></p>
<p class="intro">Yesterday, I published a new <a href="http://www.openjs.com/scripts/jslibrary/">JavaScript Library &#8211; JSL</a>. It borrows many ideas from the famous  <a href="http://jquery.com/">jQuery</a> library. </p>
<h2>Download</h2>
<ul>
<li><a href="http://www.openjs.com/scripts/jslibrary/releases/jsl.js">Packed Version</a> &#8211; 13 KB</li>
<li><a href="http://www.openjs.com/scripts/jslibrary/releases/jsl-src.js">Source</a> &#8211; 38 KB</li>
</ul>
<h2>Features</h2>
<p>The Standard Stuff&#8230;</p>
<ul>
<li>CSS DOM Selectors</li>
<li>Ajax Functions</li>
<li>Event Handling is abstracted</li>
<li>Ability to change style of an element.</li>
<li>Extendable by Plugins</li>
<li>Supports all Modern Browsers</li>
<li>And more&#8230;</li>
</ul>
<p>And then some&#8230;</p>
<ul>
<li>Function Chainability</li>
<li>Entire Library is 13 KB(un-gzipped)</li>
<li>Special handlers for <a href="http://projects.binnyva.com/wiki/JSL.array">Arrays</a>, <a href="http://projects.binnyva.com/wiki/JSL.number">Numbers</a></li>
<li>Extra Plugins for Unit Testing and Debugging</li>
<li>Functional Programming Encouraged (map, reduce, filter, etc functions in <a href="http://projects.binnyva.com/wiki/JSL.array">JSL.array</a>)</li>
</ul>
<h2>Missing Features</h2>
<dl>
<dt>XPath Selectors</dt>
<dd>Does anyone use XPath to select elements in JavaScript? I use CSS selectors for this all the time.</dd>
<dt>innerHTML Alternatives</dt>
<dd>I like innerHTML &#8211; so I did not include the <a href="http://www.openjs.com/scripts/createdom/">functions to create DOM elements</a>.</dd>
<dt>Animations/UI Elements</dt>
<dd>You will not see any animation functions in this library. Also, no Drag and Drop, sliders, JS dialog boxes and the like. Of course, I may write a plugin for these elements &#8211; but right now, they are not supported.</dd>
<dt>JavaScript Monkey-patching</dt>
<dd>I don&#8217;t do any <a href="http://www.prototypejs.org/">Prototype</a> style addition to JavaScript standard objects. I hate that &#8211; and so should you.</dd>
<dt>Functions in the global namespace</dt>
<dd>Everything that I do is under the JSL namespace &#8211; except for two shortcut functions &#8211; <code>jslib()</code> and <code>$()</code>. So my library adds only three global variables to the namespace &#8211; JSL, jslib, and $.</dd>
<dt>The <a href="http://en.wikipedia.org/wiki/Kitchen_sink_syndrome">Kitchen Sink</a></dt>
<dd>JSL is a small library &#8211; if you want a library with everything, opt for <a href="http://dojotoolkit.org/">Dojo</a> or <a href="http://developer.yahoo.com/yui/">YUI</a>.</dd>
</dl>
<h2>Some Sample Code</h2>
<h4>Using Event Handler&#8230;</h4>
<pre><code class="javascript">JSL.dom("a").click(function(e) { // Adds a click event handler to all links
	alert(this.href); //Shows the link URL
	JSL.event(e).stop(); //And stops the event from propagating any further
});</code></pre>
<h4>The $() Function&#8230;</h4>
<pre><code class="javascript">$("div.content p.intro a").setStyle({
	"text-decoration":"underline",
	"color":"red"
});</code></pre>
<p>And everything you expect to work with document.getElementById() works with $() as well&#8230;</p>
<pre><code class="javascript">$("element-id").innerHTML = "Hello World";
$("element-id").getElementsByTagName("a"); // Returns all the anchors under that element.</code></pre>
<p>See More <a href="http://www.openjs.com/scripts/jslibrary/preview.php">Sample Code</a></p>
<h2>JSL Links</h2>
<ul>
<li><a href="http://projects.binnyva.com/wiki/JSL">Documentation</a></li>
<li><a href="http://www.openjs.com/scripts/jslibrary/demos/">Demos of JSL in Action</a></li>
<li><a href="http://projects.binnyva.com/forum/viewforum.php?f=2">Support Forum</a></li>
<li><a href="http://www.openjs.com/scripts/jslibrary/code/trunk/">Code Repository</a></li>
</ul>
<h2>License</h2>
<p><a href="http://www.openjs.com/license.php">BSD, as always</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2008/07/jsl-javascript-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Script For JavaScript</title>
		<link>http://www.bin-co.com/blog/2008/05/hello-script-for-javascript/</link>
		<comments>http://www.bin-co.com/blog/2008/05/hello-script-for-javascript/#comments</comments>
		<pubDate>Thu, 22 May 2008 18:26:14 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[hello]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/?p=108</guid>
		<description><![CDATA[The next language to get the Hello Script treatment is JavaScript &#8211; my favorite language. Before we go any further, here is the definitions for Hello Script and JavaScript &#8211; just to make sure that we are on the same page&#8230; Hello Script &#8216;Hello Script&#8217; is a file that contains the most commonly used elements [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bin-co.com/blog/wp-content/uploads/2008/05/javascript_logo.jpg" alt="Javascript Rhino Logo" title="Javascript Logo" width="230" height="194" class="alignnone size-full wp-image-109 intro" align="right" /></p>
<p class="intro">The next language to get the <a href="http://www.bin-co.com/blog/2008/03/learning-a-new-programming-language-the-hello-world-method/">Hello Script</a> treatment is <a href="http://www.openjs.com/">JavaScript &#8211; my favorite language</a>. Before we go any further, here is the definitions for Hello Script and JavaScript &#8211; just to make sure that we are on the same page&#8230;</p>
<dl>
<dt>Hello Script</dt>
<dd><strong class="highlight">&#8216;Hello Script&#8217; is a file that contains the most commonly used elements of a programming language so that it can be used as a cheat sheet</strong> when working with that language.</dd>
<dt><a href="http://localhost/Sites/openjs/openjs.com/about.php#about-js">JavaScript</a></dt>
<dd>JavaScript is a <strong class="highlight">client side scripting language</strong> that is used in browsers.</dd>
</dl>
<h2>Code</h2>
<p>Warning: Do not run this code &#8211; you will get a lot of alerts. If you have firebug extension, uncomment the first line &#8211; then you can run the code.</p>
<pre><code class="html">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Hello Script for JS&lt;/title&gt;
&lt;script type="text/javascript"&gt;
//alert=console.log;
alert("Hello World");

// Variables, concatination
var name = 'Binny';
var year = 2008;
alert("Hello, " + name + " - welcome to " + year );

//If,else conditions
if (year &gt; 2008) {
	alert("Welcome to the future - yes, we have flying cars!");
}
else if(year &lt; 2008) {
	alert("The past - please don't change anything. Don't step on any butterflies. And for the sake of all thats good and holy, stay away from your parents!");
}
else {
	alert("Anything wrong with your time machine? You have not gone anywhere, kiddo.");
}

// For loop
for(var i=0; i&lt;3; i++) {
	alert(i + ") Hi there!");
}

//Numerical Array, While
var rules = [
	'Do no harm',
	'Obey',
	'Continue Living'
];
var i = 0;
while(i&lt;rules.length) {
	alert("Rule " + (i+1) + " : " + rules[i]);
	i++;
}

// Associated array, foreach
var associated = {
	'hello'	:	'world',
	'foo'	:	'bar',
	'lorem'	:	'ipsum'
}
for(key in associated) {
	alert(key + " : " + associated[key]);
}

// Using Join and Split
csv_values = "hello,world,how,are,you".split(",");
alert(csv_values.join(":"));

// Function, argument, return, call
function hello(name) {
	return "Hello " + name;
}
hello_string = hello("Binny");
alert(hello_string);

// One for the OOP fanboys - Class, members, object and stuff.
function Movie(name) { //Constuctor
	this.name = name;
}
Movie.prototype.rateMovie = function() {
	this.rating = (this.name.length % 10) + 1; //IMDBs rating algorithm. True story!
}

Movie.prototype.printMovieDetails = function() {
	alert("Movie : " + this.name + "\nRating : " + this.rating);
}

//Create the object
ncfom = new Movie("New Country for Old Men"); //It's a sequel!
ncfom.printMovieDetails();

// Regular Expressions
string = "Hello World";
if(string.match(/^Hell/)) alert("Yup - its evil\n");
alert(string.replace(/l([^l])/g, "$1")); //Remove an 'l' from both words. Should alert('Helo Word'

/**
 * Specialized code
 */
window.onload = function() {
	var ele = document.getElementById("div-element");
	alert(ele);
	ele.innerHTML = "Hello World";
	ele.onclick = function() {
		alert("You Clicked?");
	}

	document.getElementById("text").value = "Goodbye World";
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="div-element"&gt;&lt;/div&gt;

&lt;input type="text" value="3" id="text" /&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2008/05/hello-script-for-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>URL Lister &#8211; My First Firefox Plugin</title>
		<link>http://www.bin-co.com/blog/2008/05/url-lister-my-first-firefox-plugin/</link>
		<comments>http://www.bin-co.com/blog/2008/05/url-lister-my-first-firefox-plugin/#comments</comments>
		<pubDate>Wed, 07 May 2008 18:03:52 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[lister]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tab]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/?p=106</guid>
		<description><![CDATA[I just released my first firefox plugin &#8211; URL Lister. It shows the URLs of all the open tabs in a textarea so that they can be copied easily. Download/Install Install URL Lister If you have installed it, consider rating it or reviewing it at Firefox plugins sandbox. Go to the public page for URL [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bin-co.com/tools/firefox/extensions/urllister/url_lister_logo.png" alt="URL Lister Logo" class="intro" align="right" /></p>
<p class="intro">I just released my first firefox plugin &#8211; <a href="http://www.bin-co.com/tools/firefox/extensions/urllister/">URL Lister</a>. It <strong class="highlight">shows the URLs of all the open tabs in a textarea so that they can be copied</strong> easily.</p>
<h2>Download/Install</h2>
<p><a href="http://www.bin-co.com/tools/firefox/extensions/urllister/urllister.xpi">Install URL Lister</a></p>
<p>If you have installed it, consider <strong class="highlight">rating it or reviewing it at Firefox plugins sandbox</strong>. Go to the <a href="https://addons.mozilla.org/en-US/firefox/addon/7192">public page for URL Lister</a> and write a review for the application. <strong class="highlight">I need reviews to promote it to the main extensions page</strong> &#8211; sandbox plugins are for registered users only.</p>
<h2>Usage</h2>
<p>Lets say you have these four tabs open&#8230;</p>
<ul>
<li><a href="http://www.openjs.com/">OpenJS &#8211; JavaScript, Opened.</a></li>
<li><a href="http://www.bin-co.com/">Bin-Co</a></li>
<li><a href="http://lindesk.com/">LinDesk</a></li>
<li><a href="http://blog.binnyva.com/">BinnyVA</a></li>
</ul>
<p>Right click any tab and click on the &#8216;URL Lister&#8230;&#8217; to open up the main dialog. You can also use &#8216;Tools &gt; URL Lister&#8217;. You will find the URLs of all the open tabs there.</p>
<p><img src="http://www.bin-co.com/tools/firefox/extensions/urllister/url_lister_screenshot.png" alt="URL Lister Screenshot" /></p>
<p>There is a drop down menu at the bottom &#8211; it has these three options&#8230;</p>
<ul>
<li>Plain Text</li>
<li>HTML Anchors</li>
<li>Linked List</li>
</ul>
<h3>Open URLs</h3>
<p>If you have a list of URLs and want to open them all, all you have to do is copy those URLs into this dialog and press OK &#8211; this will open up all the given URLs.</p>
<h2>And my thanks goes to&#8230;</h2>
<p>URL Lister is sort of a response to <a href="http://www.mattcutts.com/blog/wanted-convert-firefox-tabs-to-links/">this post</a> by Matt Cutts. I want to thank him for the idea.</p>
<p>There is another plugin with a similar function &#8211; <a href="https://addons.mozilla.org/en-US/firefox/addon/2069">Tab URL Copier</a>. I lifted some code from that plugin when creating URL Lister. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2008/05/url-lister-my-first-firefox-plugin/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Keyboard Shortcuts JavaScript Library</title>
		<link>http://www.bin-co.com/blog/2007/07/keyboard-shortcuts-javascript-library/</link>
		<comments>http://www.bin-co.com/blog/2007/07/keyboard-shortcuts-javascript-library/#comments</comments>
		<pubDate>Sat, 21 Jul 2007 18:29:26 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[openjs]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shortcut]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/2007/07/keyboard-shortcuts-javascript-library/</guid>
		<description><![CDATA[I have created the second version of the JavaScript Shortcut Library. It is one of my more popular scripts. This script eases the work involved in making shortcuts in JavaScript. Despite the many JavaScript libraries that are available today, I cannot find one that makes it easy to add keyboard shortcuts(or accelerators) to your javascript [...]]]></description>
			<content:encoded><![CDATA[<p class="intro">I have created the second version of the <a href="http://www.openjs.com/scripts/events/keyboard_shortcuts/">JavaScript Shortcut Library</a>. It is one of my more <a href="http://www.dzone.com/links/handling_keyboard_shortcuts_in_javascript.html">popular</a> <a href="http://ajaxian.com/archives/handling-keyboard-shortcuts-in-javascript">scripts</a>. This script eases the work involved in making shortcuts in JavaScript.</p>
<blockquote><p>Despite the many JavaScript libraries that are available today, I cannot find one that makes it easy to add keyboard shortcuts(or accelerators) to your javascript app. This is because keyboard shortcuts where only used in JavaScript games &#8211; no serious web application used keyboard shortcuts to navigate around its interface. But Google apps like Google Reader and Gmail changed that. So, I have created a function to make adding shortcuts to your application much easier.</p></blockquote>
<h2>Changelog</h2>
<ul>
<li>The single function method was abandoned for an object with two functions</li>
<li>Shortcut Remove function added</li>
<li>New option to disable shortcuts in textarea, input fields.</li>
</ul>
<p>If you are using this script in any of your projects, please switch to the latest version.</p>
<p><a href="http://www.openjs.com/scripts/events/keyboard_shortcuts/v1.php">Previous Version Documentation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2007/07/keyboard-shortcuts-javascript-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Success/Error Design Pattern For Ajax</title>
		<link>http://www.bin-co.com/blog/2007/06/successerror-design-pattern-for-ajax/</link>
		<comments>http://www.bin-co.com/blog/2007/06/successerror-design-pattern-for-ajax/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 14:41:13 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[pattern]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/2007/06/successerror-design-pattern-for-ajax/</guid>
		<description><![CDATA[&#8216;Success/Error&#8217; design pattern for Ajax requests is a JSON encoded string in a specific format &#8211; each response has a minimum of two elements in it &#8211; ie &#8216;success&#8217; and &#8216;error&#8217; &#8211; like this&#8230; { "success":"Task done successfully", "error":false } OR { "success":false, "error":"Database Connection Error!" } This method is used extensivly in Nexty. Almost [...]]]></description>
			<content:encoded><![CDATA[<p class="intro">&#8216;Success/Error&#8217; design pattern for Ajax requests is a <abbr title="JavaScript Object Notation">JSON</abbr> encoded string in a specific format &#8211; each response has a minimum of two elements in it &#8211; ie &#8216;success&#8217; and &#8216;error&#8217; &#8211; like this&#8230;</p>
<pre><code class="javascript">{
"success":"Task done successfully",
"error":false
}</code></pre>
<p>OR</p>
<pre><code class="javascript">{
"success":false,
"error":"Database Connection Error!"
}</code></pre>
<p>This method is used extensivly in <a href="http://www.bin-co.com/blog/2007/05/what-i-learned-from-nexty/">Nexty</a>. Almost all Ajax response in Nexty ares in this format.</p>
<p>Since this is in the JavaScript domain, I thougt it might be better to pubish the details in my <a href="http://www.openjs.com/">OpenJS site</a>. Read more about <a href="http://www.openjs.com/articles/ajax/success_error_design_pattern.php">Success/Error Design Pattern For Ajax</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2007/06/successerror-design-pattern-for-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Gears &#8211; Offline Functionality for Web Apps</title>
		<link>http://www.bin-co.com/blog/2007/05/google-gears-offline-functionality-for-web-apps/</link>
		<comments>http://www.bin-co.com/blog/2007/05/google-gears-offline-functionality-for-web-apps/#comments</comments>
		<pubDate>Thu, 31 May 2007 07:20:30 +0000</pubDate>
		<dc:creator>Binny V A</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[gears]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.bin-co.com/blog/2007/05/google-gears-offline-functionality-for-web-apps/</guid>
		<description><![CDATA[There has been many ideas about a offline storage mechanism for web applications. Dojo implemented this in its Library. Firefox 3 promises this. Now we have a new arrival in this area &#8211; Google Gears. Unlike Dojo&#8217;s implementation, Gears require an extension for it to work. Google Gears is an open source browser extension that [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.bin-co.com/blog/2007/05/google-gears-offline-functionality-for-web-apps/google-gears-logo/' rel='attachment wp-att-28' title='Google Gears Logo'><img class="intro" align="right" src='http://www.bin-co.com/blog/wp-content/uploads/2007/05/google_gears_logo.png' alt='Google Gears Logo' /></a></p>
<p class="intro">There has been many ideas about a offline storage mechanism for web applications. <a href="http://www.sitepen.com/blog/2007/01/23/the-dojo-offline-api/">Dojo implemented this</a> in its Library. <a href="http://www.readwriteweb.com/archives/firefox_3_offline_apps.php">Firefox 3 promises this</a>. Now we have a new arrival in this area &#8211; <a href="http://gears.google.com/">Google Gears</a>. Unlike Dojo&#8217;s implementation, Gears require an extension for it to work.</p>
<blockquote cite="http://code.google.com/apis/gears/"><p>Google Gears is an open source browser extension that lets developers create web applications that can run offline.</p>
</blockquote>
<h2>See Gears In Action</h2>
<p>To see Gears in action, first install the extension&#8230;</p>
<p><a href="http://gears.google.com/">Google Gears</a></p>
<p>Then go to Google Reader &#8211; you will see a &#8216;Offline&#8217; mode button in the top right corner. If you click on that the script will download 2000 entries into your local database(<a href="http://binnyva.blogspot.com/2006/10/sqlite.html">SQLite</a>).</p>
<p><img src='http://www.bin-co.com/blog/wp-content/uploads/2007/05/downloading.png' alt='Downloading Online Entries using Google Gears' /></p>
<p>To see this database, open up the <a href="http://kb.mozillazine.org/Profile_folder">Firefox Profile folder</a> and enter the &#8216;Google Gears for Firefox&#8217; folder. You will find many Database files there. Just open any of these in a SQLite V3 supporting viewer.</p>
<p>After the download is complete, you can use the Reader without a net connection.</p>
<p>When you get the connection back, just click on the same button &#8211; all the changes will be send to the online server.</p>
<p><img src='http://www.bin-co.com/blog/wp-content/uploads/2007/05/syncing.png' alt='Syncing Local DB changes with online server in Google Gears' /></p>
<h2>Advantages of the Google Gears</h2>
<ul>
<li>Once the extension is installed, the script will work across all the supported browser. No JavaScript hacks required.</li>
<li>Full featured Database support &#8211; this makes it much easier to work with.</li>
<li>Supported by Google</li>
<li><a href="http://code.google.com/p/google-gears/source">Open Source</a></li>
</ul>
<h2>Disadvantages of Google Gears</h2>
<ul>
<li>The user must install an extension for this to work.</li>
<li>Requires user action before going offline. If your connection breaks suddenly(as it often happens here in India), you are left with nothing.</li>
<li>All browsers are not supported(yet)</li>
<li>Beta software &#8211; some bugs are to be expected. But, this will be solved in time.</li>
</ul>
<p>I am still exploring the code &#8211; expect a new post with working <a href="http://www.openjs.com/">javascript</a> examples soon.</p>
<h2>Google Gear Links</h2>
<ul>
<li><a href="http://gears.google.com/">Google Gears</a></li>
<li><a href="http://code.google.com/apis/gears/design.html">Getting Started</a></li>
<li><a href="http://code.google.com/apis/gears/tutorial.html">Tutorial</a></li>
<li><a href="http://code.google.com/apis/gears/">Developer site</a></li>
<li><a href="http://code.google.com/support/bin/topic.py?topic=11628">Frequently asked questions</a></li>
<li><a href="http://groups.google.com/group/google-gears">Developer Forum</a></li>
<li><a href="http://gearsblog.blogspot.com/">Gears API Blog</a></li>
<li><a href="http://erik.eae.net/archives/2007/05/30/19.06.10/">erik&#8217;s weblog</a></li>
<li><a href="http://ifacethoughts.net/2007/05/31/gear-for-offline/">Gears for Offline</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bin-co.com/blog/2007/05/google-gears-offline-functionality-for-web-apps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

