<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ganesh</title>
	
	<link>http://www.gmarwaha.com/blog</link>
	<description>Ganesh\</description>
	<lastBuildDate>Sat, 04 Jul 2009 16:03:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ACongenialPerspective" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ACongenialPerspective" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FACongenialPerspective" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:browserFriendly>Isn't this cool. Typically when you click the RSS icon you would expect an XML dump. Ha Ha. Not anymore. I wish to make my readers experience the best they ever had. Feel free to use the buttons on the right to subscribe with your favorite reader. Or, if you are an XML geek, click the "View Feed XML" to get the ATOM XML displayed on page. Have Fun, Ganeshji Marwaha.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Is it an AJAX Request or a Normal Request?</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/bxmgmgLP01c/</link>
		<comments>http://www.gmarwaha.com/blog/2009/06/27/is-it-an-ajax-request-or-a-normal-request/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 10:39:27 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Server Side]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/?p=57</guid>
		<description><![CDATA[In modern web application development, many a times you would want to know if the incoming HTTP Request is an AJAX request or just a Normal request. Have you come across this requirement? I have, and the solution that I found turned out to be pretty straight-forward and I will be sharing it with you [...]]]></description>
			<content:encoded><![CDATA[<p>In modern web application development, many a times you would want to know if the incoming HTTP Request is an AJAX request or just a Normal request. Have you come across this requirement? I have, and the solution that I found turned out to be pretty straight-forward and I will be sharing it with you here. </p>
<p>Whenever an AJAX request is sent to the server, a special header named <em>X-Requested-With</em> with a value of <em>XMLHttpRequest</em> is attached to the request. So, a simple check to see whether the <em>X-Requested-With</em> header has a value of <em>XMLHttpRequest</em> solves the challenge. An example will give you more clarity. Take a look at the examples of <em>isAjax()</em> methods in two famous server-side programming languages &#8211; Java and PHP. </p>
<p><strong>Java:</strong></p>
<pre>
public static boolean isAjax(request) {
   return "XMLHttpRequest"
             .equals(request.getHeader("X-Requested-With"));
}
</pre>
<p><strong>PHP:</strong></p>
<pre>
function isAjax() {
   return (isset($_SERVER['HTTP_X_REQUESTED_WITH'])
              &#038;&#038;
            ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
}
</pre>
<p>From the code above, it should be clear that if the method returns <em>true</em>, then you received an AJAX request. If the method returns <em>false</em>, you received a Normal HTTP Request.</p>
<p>Now you know how to find out if it is an AJAX request or not. But how is it useful? What do you do with it?</p>
<p>Have you heard of the term <em>Unobtrusive javascript</em>. Come on, It is a buzzword these days. There is a lot to writing Unobtrusive javascript code, but one of its features &#8211; Progressive Enhancement &#8211; stands out from the rest. Again, let me explain this with an example.</p>
<p>Let us assume that you have designed a beautiful looking web page with tabbed navigation. Being a hard-core AJAX fan and an efficiency aficionado you don&#8217;t like to bring back a full page with the headers and the footers and the sidebars when your user clicks on a <em>Tab</em>. Instead you would love to bring back only the content area for the tab via AJAX and innerHTML it into its respective place. Correct? The good programmer inside you has also told that you should not hard-code the URL for the AJAX call in your javascript. Instead, your tab should be designed as an <em>anchor</em> whose <em>href</em> attribute points to the URL for the content. So far so good? Now, when the user clicks on the <em>Tab</em>, you collect the URL from its <em>href</em> attribute and fire an AJAX call to the server. The server obediently accepts the request and sends back the content just for the active tab.  </p>
<pre>
&lt;ul&gt;
   &lt;li&gt;&lt;a href="/tab1.page" rel="#tab1"&gt;Tab 1&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="/tab2.page" rel="#tab2"&gt;Tab 2&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="/tab3.page" rel="#tab3"&gt;Tab 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div&gt;
   &lt;div id="tab1"&gt;Content for Tab1&lt;/div&gt;
   &lt;div id="tab2"&gt; Content for Tab2 &lt;/div&gt;
   &lt;div id="tab3"&gt; Content for Tab3 &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>You would like to believe that all is well and good&#8230; Unfortuntately this is where the challenge of <em>Progressive Enhancement</em> begins. How do you plan to support browsers with JavaScript disabled. Yes, there are quite a few people who still do that for the fear of script related worms. How do you plan to support automated bots? Don&#8217;t you want the Google bots and the Yahoo bots to index all your pages with full content? Do you know what these users will see? They will see a half-baked page with just the active tab&#8217;s content and no styles &#8211; not even the header, footer or the sidebar. I am sure you don&#8217;t want this to happen. That is when the <em>isAjax()</em> method comes useful.</p>
<p>Whatever you did on the client side &#8211; HTML, CSS and javascript &#8211; is great and perfect. You separated the behavior from style and markup. So, you don&#8217;t have to touch it. You just need to do a small bit of work on the server-side. </p>
<p>In our case, when JavaScript is disabled, the browser will take over and execute its default behaviour of firing a Normal request to the URL specified in the <em>href</em> attribute. When JavaScript is enabled, JavaScript will take over and will fire an AJAX request to the same URL. In both cases the same server-side resource (like in Java or PHP) will receive the request. Now that you have decided to support <em>Progressive Enhancement</em>, you will have to check if the incoming request is an AJAX request or a Normal request using the <em>isAjax()</em> method shown earlier. In case of an AJAX request, you will send back only the content area of the tab thereby providing an efficient version of your application to JavaScript enabled users. In case of a Normal request, you will send back an entire page including the tab&#8217;s content, thereby providing a less efficient yet fully functional version of your application to JavaScript disabled users. </p>
<pre>
// Pseudo Code
if(isAjax(request) {
   return "Content area for the tab";
} else {
   return "Full page including tab content";
}
</pre>
<p>Now you can feel proud that you are not one of those who just talk about Unobtrusive JavaScript but you are one of those who have implemented it. I sincerely hope this article was useful. Feel free to drop in a comment with suggestions and/or feedback.</p>
<div class="update">
<h2>Update 1:</h2>
<p>
Based on the input provided by a <a href="http://www.dzone.com/links/users/profile/261337.html">buddy called Sabob</a> from <a href="http://www.dzone.com/links/is_it_an_ajax_request_or_a_normal_request.html">dzone</a>, <em>X-Requested-With</em> is set only by AJAX libraries like jQuery, Mootools, Prototype etc. If you are coding AJAX by hand, then you will have to explicitly set this header while sending a request. More importantly you should somehow abstract it using good OO principles so that you don&#8217;t have to explicitly code this line every time you send an AJAX request.
</p>
</div>
<div class="hypeIt"><script type="text/javascript">var dzone_url = 'http://www.gmarwaha.com/blog/2009/06/27/is-it-an-ajax-request-or-a-normal-request/';</script><script type="text/javascript">var dzone_style = '2';</script><script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></div>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/bxmgmgLP01c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2009/06/27/is-it-an-ajax-request-or-a-normal-request/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2009/06/27/is-it-an-ajax-request-or-a-normal-request/</feedburner:origLink></item>
		<item>
		<title>Ctrl + Key Combination – Simple Jquery Plugin</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/3dV7YfWDU1g/</link>
		<comments>http://www.gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 20:58:27 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/?p=35</guid>
		<description><![CDATA[In a recent web application I was working on, I had a need for the &#8220;Ctrl + S&#8221; hotkey to save an entry to the database. Being a an avid jquery fan, I immediately searched the plugin repository for any plugin that fits the bill. I was not very surprised to find a very comprehensive [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent web application I was working on, I had a need for the &#8220;Ctrl + S&#8221; hotkey to save an entry to the database. Being a an avid jquery fan, I immediately searched the plugin repository for any plugin that fits the bill. I was not very surprised to find a very comprehensive <a href="http://code.google.com/p/js-hotkeys/">jshotkeys</a> plugin. It was feature rich and addressed all the requirements for hotkeys in a jquery powered application and obviously my requirement was fulfilled as well.</p>
<p>But the basic issue (and advantage too) with any plugin is that it is written for a wide range of audience. So, although my requirement was only for a &#8220;Ctrl + key&#8221; combination, I had to part with my bandwidth for all other features this plugin offered. Like my famous <a href="http://www.gmarwaha.com/blog/2007/08/09/jcarousel-lite-a-jquery-plugin/">jCarouselLite</a> plugin, I like my javascript code kept to the minimum. So, I decided and wrote a short yet sweet plugin that would solve only the problem I have at hand. Unsurprisingly, the plugin code turned out to be only <strong>195 bytes</strong> (minified). Given below is the code for the same&#8230;</p>
<pre>
$.ctrl = function(key, callback, args) {
    var isCtrl = false;
    $(document).keydown(function(e) {
        if(!args) args=[]; // IE barks when args is null

        if(e.ctrlKey) isCtrl = true;
        if(e.keyCode == key.charCodeAt(0) &#038;&#038; isCtrl) {
            callback.apply(this, args);
            return false;
        }
    }).keyup(function(e) {
        if(e.ctrlKey) isCtrl = false;
    });
};
</pre>
<p>This is how it works:</p>
<p><strong>1. </strong>You want to execute a function when the user presses a &#8220;Ctrl + key&#8221; combination.<br />
<strong>2. </strong>You as a developer should call the plugin method and pass in 3 parameters.<br />
<strong>3. </strong><em>1<sup>st</sup> Param:</em> The &#8220;key&#8221; user should press while he is pressing Ctrl.<br />
<strong>4. </strong><em>2<sup>nd</sup> Param:</em> The callback function to be executed when the user presses &#8220;Ctrl + key&#8221;.<br />
<strong>5. </strong><em>3<sup>rd</sup> Param:</em> An optional array of arguments, that will be passed to the callback function.</p>
<p>In the code given below, when the user presses the &#8220;Ctrl + S&#8221; key combination, the anonymous callback function passed in as the second parameter is called. </p>
<pre>
$.ctrl('S', function() {
    alert("Saved");
});
</pre>
<p>Here, when the user presses the &#8220;Ctrl + S&#8221; key combination, the anonymous callback function passed in as the second parameter is called with the arguments passed in as the third parameter.</p>
<pre>
$.ctrl('D', function(s) {
    alert(s);
}, ["Control D pressed"]);
</pre>
<p>Thats it. I feel it is simple yet effective and solves a common requirement in modern web applications. </p>
<p>What do you think?</p>
<div class="update">
<h2>Update</h2>
<p>
A comment provided by &#8220;A Nony Mouse&#8221; in this blog entry clarified that, we don&#8217;t have to store a boolean called &#8220;isCtrl&#8221; to check if the &#8220;Ctrl&#8221; key is down while another key is being pressed. It is enough to check for e.ctrlKey as it will return true if the &#8220;Ctrl&#8221; key is down even if another key is being pressed along with Ctrl. Based on that input the &#8220;Ctrl + Key&#8221; plugin has been updated. Take a look at the updated code below. For archiving purposes, I am leaving the original version of the code above without any changes.
</p>
<pre>
$.ctrl = function(key, callback, args) {
    $(document).keydown(function(e) {
        if(!args) args=[]; // IE barks when args is null
        if(e.keyCode == key.charCodeAt(0) &#038;&#038; e.ctrlKey) {
            callback.apply(this, args);
            return false;
        }
    });
};
</pre>
</div>
<div class="hypeIt"><script type="text/javascript">var dzone_url = 'http://www.gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/';</script><script type="text/javascript">var dzone_style = '2';</script><script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></div>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/3dV7YfWDU1g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/</feedburner:origLink></item>
		<item>
		<title>JQuery: Waiting for Multiple Animations to Complete</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/UChFyswQLGI/</link>
		<comments>http://www.gmarwaha.com/blog/2009/06/09/jquery-waiting-for-multiple-animations-to-complete/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 03:47:39 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/?p=31</guid>
		<description><![CDATA[Have you ever come across a situation where you wanted to execute a certain piece of code after an animation has completed running? This is a very common use-case in modern web development. jQuery team knows it, and that is why they accept a callback function as argument for every kind of animation call. In [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever come across a situation where you wanted to execute a certain piece of code after an animation has completed running? This is a very common use-case in modern web development. <a href="http://jquery.com">jQuery</a> team knows it, and that is why they accept a callback function as argument for every kind of animation call. In the example below, we pass in a callback function that will be executed after the <em>&#8220;slideDown&#8221;</em> animation is complete. This is the usual scenario.</p>
<pre>
$("#animateMe").slideDown(function() {
	// This piece of code will be executed
	// after the animation is complete
});
</pre>
<p>But, in many other scenarios you might want to wait for <strong>multiple animations</strong> to complete before executing a certain piece of code.  Lets assume that the two elements &#8211; &#8220;#element1&#8243; and &#8220;#element2&#8243; &#8211; are currently getting animated. Our goal is to execute a piece of code after both elements are finished with their respective animations. This is where it gets tricky. I was facing one such challenge today. The solution I have arrived at is to use the <strong>&#8220;:animated&#8221;</strong> pseudo-selector and &#8220;setInterval&#8221; to repeatedly check and wait until the animations have completed running. An example will clarify what I mean</p>
<pre>
var wait = setInterval(function() {
	if( !$("#element1, #element2").is(":animated") ) {
		clearInterval(wait);
		// This piece of code will be executed
		// after element1 and element2 is complete.
	}
}, 200);
</pre>
<p>In the example above, I use &#8220;setInterval&#8221; to repeatedly check if these two elements are NOT being &#8220;:animated&#8221;. If this condition is not met, then it means that atleast one of them is still getting animated. So, &#8220;setInterval&#8221; will check for the same condition again in 200 ms until the condition is met. If the condition is met, it means that the animations are complete. So, I immediately do a &#8220;clearInterval&#8221; and stop checking for this condition again. Any code written after this statement will get executed after both the animations are complete. </p>
<p>Ofcourse, the same code can be modified for more than two elements as well. Some more work, and we can make it handle any number of elements. But, I was wondering if there was an easier, better and more efficient approach to solve the same challenge. If fellow jquery lovers are aware of such solutions please feel free to leave a comment.</p>
<div class="hypeIt"><script type="text/javascript">var dzone_url = 'http://www.gmarwaha.com/blog/2009/06/09/jquery-waiting-for-multiple-animations-to-complete/';</script><script type="text/javascript">var dzone_style = '2';</script><script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></div>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/UChFyswQLGI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2009/06/09/jquery-waiting-for-multiple-animations-to-complete/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2009/06/09/jquery-waiting-for-multiple-animations-to-complete/</feedburner:origLink></item>
		<item>
		<title>Where did the Brilliant Indian Minds Go?</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/tYKSWVhOPko/</link>
		<comments>http://www.gmarwaha.com/blog/2009/05/30/where-did-the-brilliant-indian-minds-go/#comments</comments>
		<pubDate>Sat, 30 May 2009 18:21:32 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Mind Power]]></category>
		<category><![CDATA[ThinkRite]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/?p=26</guid>
		<description><![CDATA[There was an interesting question during the last Intro Session for Unlimited Power. One of the participants who attended was surprised when Kirtanya listed out the methodology of the course. She mentioned NLP, Transactional Analysis, Silva Mind control and Life-Skills as ways to tap into the Unlimited Power each one of us has within us. [...]]]></description>
			<content:encoded><![CDATA[<p>There was an interesting question during the last Intro Session for <a href="http://www.thinkrite.in/course/prenatal_parenting.page#courseDetail">Unlimited Power</a>. One of the participants who attended was surprised when Kirtanya listed out the methodology of the course. She mentioned NLP, Transactional Analysis, Silva Mind control and Life-Skills as ways to tap into the <a href="http://www.thinkrite.in/course/prenatal_parenting.page#courseDetail">Unlimited Power</a> each one of us has within us. He was stunned to see that none of the Indian sciences were listed and was curious to know if we (Indians) did not discover anything at all in the mind power arena. </p>
<p>The truth is, in the ancient days there was no parallel to the Indian Sciences when it came to addressing the human mind and life. Just think about it, we had everything, a nice climate, riches, wealth, forests, rivers; we were just too bountiful. On the other hand the western hemisphere at the same time was caught up in a turmoil of wars, harsh climates; their energy was so much focused on surviving the extreme weather. The Indians having no challenges to conquer in the external world turned their entire attention inward. The mind and consciousness and human life became very interesting research subjects for them.</p>
<p>And so there was an outpouring of greatest of works on the science of mind itself. The yoga sutras of Patanjali, The Vedas, Vedanta, Brahma sutras, Upanishads, Yogavasishta, every one of these is a miracle even to read through. In fact, it is said that the Mahabharatha is an ultimate thesis on the various human personalities and it contains 72000 characters each representing a personality type. So India had no dearth for wisdom. Some of its treasures still stay on.</p>
<p>However, the same cannot be said of the modern day India. Over a century now we have been harping on the past glories. With the advent of the British rule and subsequent poverty we have become increasingly preoccupied in solving the external challenges and are oblivious to the internal ones. The roles are in a sense reversing between the west and the east. With its high levels of sophistication, pleasure in the external world, and breaking families they are increasingly searching inward for answers and so research into the human mind has picked up momentum. With technological edge they are precisely able to study the human brain itself and so are paving way for some of the greatest discoveries in human history itself. </p>
<p>It is actually a pity that when technology is at its peak, the brilliant Indian minds are preoccupied with selfish miseries. In the modern era we seldom shine in our ancestor’s strong forte, our inborn talent – the mind. Of course there are the modern Gurus who teach on the mind but more often than not they are mouthed words than a direct personal discovery or an experience and always tainted with a religious bias. The need of the hour is brilliant young Indian minds dedicated to unraveling the mysteries of the human mind-brain organ. The aptitude for this is in our very genes. The result of such dedication will be mind boggling discoveries that will help the human species itself cross the last frontier – the mind.</p>
<p>Waiting for that day!</p>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/tYKSWVhOPko" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2009/05/30/where-did-the-brilliant-indian-minds-go/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2009/05/30/where-did-the-brilliant-indian-minds-go/</feedburner:origLink></item>
		<item>
		<title>Toon: When Sensex plunged …</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/3pE7GeNFqAU/</link>
		<comments>http://www.gmarwaha.com/blog/2009/05/23/toon-when-sensex-plunged/#comments</comments>
		<pubDate>Sat, 23 May 2009 07:13:22 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/?p=22</guid>
		<description><![CDATA[Keat, my friend, is quite spiritual. An ardent meditator with experience for almost 14 years. She keeps telling me about mystical experiences. I believe in mindfulness and awareness. Sometimes my comments invalidate these experiences. Recently when sensex (Indian stock market index) plunged and some of my money was caught in it, she made use of [...]]]></description>
			<content:encoded><![CDATA[<p>Keat, my friend, is quite spiritual. An ardent meditator with experience for almost 14 years. She keeps telling me about mystical experiences. I believe in mindfulness and awareness. Sometimes my comments invalidate these experiences. Recently when sensex (Indian stock market index) plunged and some of my money was caught in it, she made use of the opportunity to portray me this way.</p>
<p>The man in orange is me(Ganesh). The girl in the toon is keat. And with us is Parthi (man in blue). We form a trio.</p>
<p><a href="http://www.gmarwaha.com/blog/wp-content/uploads/2009/05/sensex_plunges.jpg"><img src="http://www.gmarwaha.com/blog/wp-content/uploads/2009/05/sensex_plunges.jpg" alt="Sensex Plunges" title="sensex_plunges" width="650" class="size-full wp-image-23" /></a></p>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/3pE7GeNFqAU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2009/05/23/toon-when-sensex-plunged/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2009/05/23/toon-when-sensex-plunged/</feedburner:origLink></item>
		<item>
		<title>Ganesh and God – Keat’s Toons</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/xXO0ouMBwlo/</link>
		<comments>http://www.gmarwaha.com/blog/2009/05/23/ganesh-and-god-keats-toondoos/#comments</comments>
		<pubDate>Sat, 23 May 2009 06:47:40 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/?p=13</guid>
		<description><![CDATA[A friend of mine keeps posting these cartoons about me. Her cartoons tickled me no end coz, she had this uncanny knack of catching my serious moments as well as the not so serious ones into comical strips that brought a fond smile or a hearty laugh. I felt like sharing them with my reader [...]]]></description>
			<content:encoded><![CDATA[<p>A friend of mine keeps posting these cartoons about me. Her cartoons tickled me no end coz, she had this uncanny knack of catching my serious moments as well as the not so serious ones into comical strips that brought a fond smile or a hearty laugh. I felt like sharing them with my reader friends. Hope you enjoy them too as much as I did. I will keep posting these toons as and when they come.</p>
<p>I am a die-hard non-vegetarian, especially fond of chicken. While my friend is a strict vegetarian. Amazed at my ability to eat chicken, she put this toon.</p>
<p><a href="http://www.gmarwaha.com/blog/wp-content/uploads/2009/05/ganesh_and_god.jpg"><img src="http://www.gmarwaha.com/blog/wp-content/uploads/2009/05/ganesh_and_god.jpg" alt="Ganesh and God" title="ganesh_and_god" width="650" class="size-full wp-image-14" /></a></p>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/xXO0ouMBwlo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2009/05/23/ganesh-and-god-keats-toondoos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2009/05/23/ganesh-and-god-keats-toondoos/</feedburner:origLink></item>
		<item>
		<title>The Nboomi Experience</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/MhYfpQurGRY/</link>
		<comments>http://www.gmarwaha.com/blog/2008/07/04/the-nboomi-experience/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 17:09:33 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.gmarwaha.com/blog/2008/08/03/the-nboomi-experience/</guid>
		<description><![CDATA[I am glad I could finally get back to blogging after a long period of hibernation. Almost an year back, me and three of my friends founded Triomatrix Webservices Private Limited, an ambitious company aimed at creating web-based services  to innovatively automate businesses in India. Fanatically caught in the clutches of this marathon venture [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gmarwaha.com/blog/wp-content/uploads/2008/09/nboomi.JPG" alt="Nboomi" style="float:left; margin: 10px 10px 10px 0;">I am glad I could finally get back to blogging after a long period of hibernation. Almost an year back, me and three of my friends founded <a href="http://www.triomatrix.com">Triomatrix Webservices Private Limited</a>, an ambitious company aimed at creating web-based services  to innovatively automate businesses in India. Fanatically caught in the clutches of this marathon venture I almost forgot about everything else in life except for the ravishing beauty of our first product &#8211; <a href="http://www.nboomi.com">www.nboomi.com</a>.</p>
<p><a href="http://www.nboomi.com">Nboomi.com</a> is an innovative real-estate portal from Triomatrix that literally translates the dreams of home-shoppers around the globe into a living reality. At its core, Nboomi creates a virtual world that allows home-shoppers to walk inside and experience their future home in all its splendor with just a computer and an internet connection. Being a virtual world, walking around the home is just the tip of the iceberg. Beyond that, you can paint walls, tile floors, texture doors and windows, create and organize furniture and much more, all inside your favorite web browser. You are limited only by your imagination.</p>
<p>Very recently, we took a beta of Nboomi into the wild to field test it and I can distinctly see the attention it is attracting. At present we have successfully completed the technical component and are handing it over to the business team to take care of the sales and marketing activities. I am confident that with the right nurture and a bit of luck, Nboomi can take the real-estate field by storm.</p>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/MhYfpQurGRY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2008/07/04/the-nboomi-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2008/07/04/the-nboomi-experience/</feedburner:origLink></item>
		<item>
		<title>LavaLamp for jQuery lovers!</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/IE0XCqOu-Fg/</link>
		<comments>http://www.gmarwaha.com/blog/2007/08/23/lavalamp-for-jquery-lovers/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 15:47:48 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://gmarwaha.com/blog/?p=7</guid>
		<description><![CDATA[

Home
Plant a tree
Travel
Ride an elephant



            Hover above and feel for yourself, the nifty effect of Lava Lamp. What you just experienced is nothing but the LavaLamp menu packaged as a plugin for the amazing jQuery javascript library. I personally believe that the effect rivals [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<ul class="lavaLampWithImage" id="1">
<li class="current"><a href="#">Home</a></li>
<li><a href="#">Plant a tree</a></li>
<li><a href="#">Travel</a></li>
<li><a href="#">Ride an elephant</a></li>
</ul>
<p></p>
<p>
            Hover above and feel for yourself, the nifty effect of Lava Lamp. What you just experienced is nothing but the LavaLamp menu packaged as a plugin for the amazing <a href="http://jquery.com">jQuery javascript library</a>. I personally believe that the effect rivals that of flash &#8211; Don&#8217;t you? Especially considering the fact that it is extremely light weight.
        </p>
<blockquote><p>
            Just so you know, it weighs just 700 bytes(minified)!
        </p></blockquote>
<div class="digg forLavaLamp">
            <script type="text/javascript"> digg_bgcolor = "#e6e8ea"; digg_url = "http://digg.com/design/Lava_Lamp_for_jQuery_lovers"; </script><br />
            <script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
        </div>
<p>
            Often I have noticed, that the credits are usually granted towards the end. Just for a change, i am going to give my credits at the beginning. This effect was originally written by <a href="http://devthought.com/cssjavascript-true-power-fancy-menu/">Guillermo Rauch</a> for the <a href="http://mootools.net/">mootools javascript library</a>. All I did was to port it for the benefit of jQuery lovers. Thanks Guillermo for inspiring the javascript world with such a nice effect. A special thanks to <a href="http://wanderinghorse.net/home/stephan/">Stephan Beal</a> who named it &#8220;LavaLamp&#8221;, and to <a href="http://commadot.com/">Glen Lipka</a> for generously helping with the image sprites. Many fellow jQuery lovers also helped shape this plugin with valuable feedback in the mailing list. Thanks a ton, all you guys.
        </p>
<p>
            As User Interface developers, we know that one of the first widgets our visitors use is a &#8220;Menu&#8221;. Capturing their attention right there is something that we always strive for, and I guess LavaLamp is a step in that direction. Before you get bored with all this useless talk, let me get you started on integrating LavaLamp into your jQuery powered site.</p>
<p><p>I hope you agree that a typical HTML widget consists of 3 distinct components.</p>
<ul>
<li>A semantically correct HTML markup</li>
<li>A CSS to skin the markup</li>
<li>An unobstrusive javascript that gives it a purpose</li>
</ul>
<p>
            Now lets follow the above steps and implement the LavaLamp menu for your site. Remember, In the process of porting from mootools to jQuery, i have simplified both the javascript and CSS for your convenience. So, be informed that you will need to follow the instructions on this page to get the jQuery version running. Follow the instructions on <a href="http://devthought.com/cssjavascript-true-power-fancy-menu/">Guillermo Rauch&#8217;s</a> page for the mootools version.</p>
<p><h3>Step 1: The HTML</h3>
<p>
            Since most UI developers believe that an unordered list(ul) represents the correct semantic structure for a Menu/Navbar, we will start by writing just that.
        </p>
<pre>
        &lt;ul class="lavaLamp"&gt;
            &lt;li&gt;&lt;a href="#"&gt;Home&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;Plant a tree&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;Travel&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;Ride an elephant&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
        </pre>
<p>
            In the markup above, &#8220;ul&#8221; represents the menu, and each &#8220;li&#8221; represents a menu-item. At this point it is crucial to understand that we will be adding another artificial &#8220;li&#8221; to represent the background of the currently highlighted menu-item. Since the background itself is cosmetic and doesn&#8217;t represent a menu-item, we will be adding it from javascript. Just to make sure we are in sync, &#8220;you need not add this li&#8221;, the LavaLamp plugin will take care of it. Once added, the &#8220;li&#8221; representing the background will look like this.
        </p>
<pre>
        &lt;li class="back"&gt;&lt;div class="left"&gt;&lt;/div&gt;&lt;/li&gt;
        </pre>
<h3>Step 2: The CSS</h3>
<p>
            You can skin this markup in many different ways to achieve your own personalized menu. The following style sheet is just one possibility. A few more possibilities are demonstrated in the &#8220;Bonus&#8221; section towards the end of this blog entry.
        </p>
<pre>
/* Styles for the entire LavaLamp menu */
.lavaLamp {
    position: relative;
    height: 29px; width: 421px;
    background: url("../image/bg.gif") no-repeat top;
    padding: 15px; margin: 10px 0;
    overflow: hidden;
}
    /* Force the list to flow horizontally */
    .lavaLamp li {
        float: left;
        list-style: none;
    }
        /* Represents the background of the highlighted menu-item. */
        .lavaLamp li.back {
            background: url("../image/lava.gif") no-repeat right -30px;
            width: 9px; height: 30px;
            z-index: 8;
            position: absolute;
        }
            .lavaLamp li.back .left {
                background: url("../image/lava.gif") no-repeat top left;
                height: 30px;
                margin-right: 9px;
            }
        /* Styles for each menu-item. */
        .lavaLamp li a {
            position: relative; overflow: hidden;
            text-decoration: none;
            text-transform: uppercase;
            font: bold 14px arial;
            color: #fff; outline: none;
            text-align: center;
            height: 30px; top: 7px;
            z-index: 10; letter-spacing: 0;
            float: left; display: block;
            margin: auto 10px;
        }
        </pre>
<p>
            Trust me, this is a simple style sheet. Follow along to understand what is done in each of its sections.
        </p>
<p>
            First, we style the &#8220;ul&#8221; with the bright orange background image and some basic properties like height, width, padding, margin etc. We use relative positioning because, that way we can absolutely position the background &#8220;li&#8221; relative to the &#8220;ul&#8221;. This helps by enabling us to move this background &#8220;li&#8221; freely within the context of the parent &#8220;ul&#8221;.
        </p>
<p>
            Next, we make the &#8220;li&#8221;s flow horizontally instead of vertically. By default, it flows vertically. There are a couple of techniques to do this. In this case, we are using the &#8220;float:left&#8221; to achieve this effect.
        </p>
<p>
            Next, we style the artifical &#8220;li&#8221; that represents the background of the currently highlighted menu-item. This uses the <a href="http://alistapart.com/articles/slidingdoors">sliding doors technique</a>. Also, notice the absolute positioning used as mentioned above.
        </p>
<p>
            Finally, we style the anchor that represents the actual clickable portion of each menu-item. These styles are mostly cosmetic and self-explanatory.
        </p>
<p>
            Some of the above rules may not be obvious if you are not very confident in how &#8220;positioning&#8221; works in CSS. For those, i highly encourage you to quickly read this article on <a href="http://www.barelyfitz.com/screencast/html-training/css/positioning/">CSS positioning</a>. It is short, sweet and very informative.
        </p>
<h3>Step 3: The Javascript</h3>
<p>
            This is the easy part. Most of the javascript work is taken care by the Lava Lamp plugin itself. As a developer, you just have to include the mandatory and/or optional javascript files and fire a call to initialize the menu.
        </p>
<pre>
&lt;script type="text/javascript" src="path/to/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="path/to/jquery.lavalamp.js"&gt;&lt;/script&gt;
&lt;!-- Optional --&gt;
&lt;script type="text/javascript" src="path/to/jquery.easing.js"&gt;&lt;/script&gt;

&lt;script type="text/javascript"&gt;
    $(function() { $(".lavaLamp").lavaLamp({ fx: "backout", speed: 700 })});
&lt;/script&gt;
        </pre>
<p>
            Include a reference to the jQuery library and the LavaLamp plugin. Optionally, include the easing plugin as well. It has many cool effects, that are not contained in the core. For instance, the &#8220;backout&#8221; effect used in this demo is part of the easing plugin. You can download jQuery <a href="http://code.jquery.com/jquery-latest.pack.js">here</a>,  Easing plugin <a href="http://gsgd.co.uk/js/jquery.easing.1.1.js">here</a>, and the LavaLamp plugin <a href="/jquery/lavalamp/js/jquery.lavalamp.js">here</a>.
        </p>
<p>
            Next, in the document.ready event, fire a call to initialize the menu. You have the option to supply an easing &#8220;fx&#8221; , the &#8220;speed&#8221; with which the animation happens and a callback to be executed when a menu-item is clicked. They are optional, the default &#8220;fx&#8221; being &#8220;linear&#8221; and the default &#8220;speed&#8221; being &#8220;500&#8243; ms.
        </p>
<p>
            That&#8217;s it. At this point you should have a working version of LavaLamp menu for your site.
        </p>
<h3>Bonus</h3>
<p>
            Just with some minor changes in the style sheet, you can get a totally different look n feel for the menu. And yes, the HTML markup and the Javascript remain the same.
        </p>
<p></p>
<ul class="lavaLampBottomStyle" id="3">
<li><a href="#">Home</a></li>
<li><a href="#">Plant a tree</a></li>
<li><a href="#">Travel</a></li>
<li><a href="#">Ride an elephant</a></li>
</ul>
<p>             </p>
<p>
            Here is one more variation, again with just some minor changes to the style sheet. I know, they don&#8217;t look pretty, but all i am saying is that you are limited only by your imagination.
        </p>
<p></p>
<ul class="lavaLampNoImage" id="2">
<li><a href="#">Home</a></li>
<li><a href="#">Plant a tree</a></li>
<li><a href="#">Travel</a></li>
<li><a href="#">Ride an elephant</a></li>
</ul>
<p>         </p>
<p>
            Finally, for your convenience, i have <a href="/jquery/lavalamp/zip/lavalamp_0.1.0.zip">zipped</a> up all the necessary files into a cohesive package. <a href="/jquery/lavalamp/zip/lavalamp_0.1.0.zip">Download it</a>, and open the demo.html to see all the 3 variations in one page.
        </p>
<p>
            Feel free to leave a comment with your feedback, suggestions, requests etc.
        </p>
<div class="update">
<h2>Update</h2>
<p>
Based on popular request, LavaLamp Menu has been updated to support jquery 1.2.x versions. <a href="/jquery/lavalamp/zip/lavalamp-0.2.0.zip">Download the zip file</a> for version 0.2.0 of LavaLamp and open the demo.html to check it out for yourself. Since Firefox 3 has some issues with $(document).ready() function, try using $(window).load() instead if you face any problems. Hopefully a future version of Firefox or jQuery will fix the problem.
</p>
</div>
<div class="hypeIt"><script type="text/javascript">var dzone_url = 'http://gmarwaha.com/blog/?p=7';</script><script type="text/javascript">var dzone_style = '2';</script><script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></div>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/IE0XCqOu-Fg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2007/08/23/lavalamp-for-jquery-lovers/feed/</wfw:commentRss>
		<slash:comments>728</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2007/08/23/lavalamp-for-jquery-lovers/</feedburner:origLink></item>
		<item>
		<title>jCarousel Lite – A jQuery plugin</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/1gCxPXMQHPU/</link>
		<comments>http://www.gmarwaha.com/blog/2007/08/09/jcarousel-lite-a-jquery-plugin/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 09:37:55 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://gmarwaha.com/blog/?p=6</guid>
		<description><![CDATA[

            &#160;














            &#160;



jCarousel Lite is a jQuery plugin that carries you on a carousel ride filled with images and HTML content. Put simply, you can navigate images and/or HTML in a carousel-style widget. [...]]]></description>
			<content:encoded><![CDATA[<div id="jCarouselLiteDemo">
<div class="carousel main">
            <a href="#" class="prev">&nbsp;</a></p>
<div class="jCarouselLite">
<ul>
<li><img src="/jquery/jcarousellite/image/1.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/2.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/3.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/4.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/5.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/6.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/7.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/8.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/9.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/10.jpg" alt="" width="150" height="118"></li>
<li><img src="/jquery/jcarousellite/image/11.jpg" alt="" width="150" height="118"></li>
</ul></div>
<p>            <a href="#" class="next">&nbsp;</a></p>
<div class="clear"></div>
</p></div>
</div>
<p>jCarousel Lite is a <a href="http://jquery.com">jQuery</a> plugin that carries you on a carousel ride filled with images and HTML content. Put simply, you can navigate images and/or HTML in a carousel-style widget. It is super light weight, at about <em>2 KB in size</em>, yet very flexible and customizable to fit most of our needs.</p>
<blockquote><p>             Did I mention that it weighs just 2 KB?</p></blockquote>
<p>As if that wasn&#8217;t enough, the best part is yet to come&#8230; You don&#8217;t need any special css file or class name to get this to work. Include the js file. Supply the HTML markup. Then, construct the carousel with just a simple function call.</p>
<p>Visit the <a href="http://www.gmarwaha.com/jquery/jcarousellite/index.php" title="jCarousel Lite Project Page">project</a> page for more information. There you can find a lot of <a href="http://www.gmarwaha.com/jquery/jcarousellite/index.php#demo" title="jCarousel Lite Demo Page">demos</a> and exhaustive documentation. This blog entry is just a teaser for further exploration.</p>
<p>Installing and getting it to work is as trivial as following the 3 steps given below&#8230;</p>
<h3>Step 1:</h3>
<p>Include a reference to the <a href="http://code.jquery.com/jquery-latest.pack.js">jQuery</a> library and the <a href="http://www.gmarwaha.com/jquery/jcarousellite/index.php#download">jCarouselLite</a> plugin. If you like interesting effects, include the <a href="http://gsgd.co.uk/js/jquery.easing.1.1.js">Easing plugin</a> as well (Optional). If you would like to navigate the carousel using mouse wheel, then include the  <a href="http://brandonaaron.net/jquery/plugins/mousewheel/jquery.mousewheel.js">mouse-wheel plugin</a> as well (Optional).</p>
<pre>
&lt;script type="text/javascript" src="path/to/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="path/to/jcarousellite.js"&gt;&lt;/script&gt;
&lt;!-- Optional --&gt;
&lt;script type="text/javascript" src="path/to/easing.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="path/to/mousewheel.js"&gt;&lt;/script&gt;</pre>
<h3>Step 2:</h3>
<p>In your HTML file, provide the markup required by the carousel (a &#8220;div&#8221; enclosing an &#8220;ul&#8221;). You also need the navigation buttons, but these buttons need not be part of the carousel markup itself. An example follows&#8230;</p>
<pre>
&lt;button class="prev"&gt;&lt;&lt;&lt;/button&gt;
&lt;button class="next"&gt;&gt;&gt;&lt;/button&gt;
&lt;div class="anyClass"&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;img src="someimage" alt="" width="100" height="100" &gt;&lt;/li&gt;
        &lt;li&gt;&lt;img src="someimage" alt="" width="100" height="100" &gt;&lt;/li&gt;
        &lt;li&gt;&lt;img src="someimage" alt="" width="100" height="100" &gt;&lt;/li&gt;
        &lt;li&gt;&lt;img src="someimage" alt="" width="100" height="100" &gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre>
<h3>Step 3:</h3>
<p>Fire a call to the plugin and supply your navigation buttons. You just managed to architect your own carousel.</p>
<pre>
$(function() {
    $(".anyClass").jCarouselLite({
        btnNext: ".next",
        btnPrev: ".prev"
    });
});</pre>
<p>If you have any comments/suggestions/requests, feel free to drop in a comment or you can find me lurking around the jquery mailing list.</p>
<div class="update">
<h2>Update</h2>
<p>
Based on popular request, jCarouselLite has been updated to support jquery 1.2.x versions. Goto the <a href="http://www.gmarwaha.com/jquery/jcarousellite/index.php#download">download page</a> and download version 1.0.1 to enjoy jquery 1.2.x support. Since Firefox 3 has some issues with $(document).ready() function, try using $(window).load() instead if you face any problems. Hopefully a future version of Firefox or jQuery will fix the problem.
</p>
</div>
<div class="hypeIt"><script type="text/javascript">var dzone_url = 'http://www.gmarwaha.com/jquery/jcarousellite/index.php';</script><script type="text/javascript">var dzone_style = '2';</script><script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></div>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/1gCxPXMQHPU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2007/08/09/jcarousel-lite-a-jquery-plugin/feed/</wfw:commentRss>
		<slash:comments>523</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2007/08/09/jcarousel-lite-a-jquery-plugin/</feedburner:origLink></item>
		<item>
		<title>Show time! – First ever Amazon EC2 Success Stories</title>
		<link>http://feedproxy.google.com/~r/ACongenialPerspective/~3/e4kwBfqGS2w/</link>
		<comments>http://www.gmarwaha.com/blog/2007/02/05/show-time-%e2%80%93-first-ever-amazon-ec2-success-stories/#comments</comments>
		<pubDate>Mon, 05 Feb 2007 10:32:00 +0000</pubDate>
		<dc:creator>Ganeshji Marwaha</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://gmarwaha.com/blog/?p=5</guid>
		<description><![CDATA[Amazon, always an innovator, recently unfolded yet another masterpiece to the world in the form of EC2 web-service. Gumiyo.com, an online mobile-commerce provider and Abaca.com, a spam-blocker solution, are now celebrated as the pioneers to launch a production site using Amazon EC2 Service. You can relish the full versions of their success stories here and [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon, always an innovator, recently unfolded yet another masterpiece to the world in the form of EC2 web-service. <a href="http://www.gumiyo.com">Gumiyo.com</a>, an online mobile-commerce provider and Abaca.com, a spam-blocker solution, are now celebrated as the pioneers to launch a production site using <a href="http://www.amazon.com/b/ref=sc_fe_l_2/102-1757361-1220931?ie=UTF8&amp;node=201590011&amp;no=3435361&amp;me=A36L942TSJ2AJA">Amazon EC2</a> Service. You can relish the full versions of their <a href="http://www.amazon.com/Success-Stories-AWS-home-page/b/ref=sc_fe_l_1/102-1757361-1220931?ie=UTF8&amp;amp;amp;amp;node=182241011&amp;no=3435361&amp;me=A36L942TSJ2AJA">success stories</a> <a href="http://www.amazon.com/gp/browse.html?node=325814011">here</a> and <a href="http://www.amazon.com/gp/browse.html?node=325813011">here</a>.</p>
<p><a href="http://www.amazon.com/b/ref=sc_fe_l_2/102-1757361-1220931?ie=UTF8&amp;node=201590011&amp;no=3435361&amp;me=A36L942TSJ2AJA" style="font-weight: bold">EC2 (Elastic compute cloud)</a> &#8211; the name doesn&#8217;t tell much, or does it? For those who are not familiar, EC2 is a dynamically scalable data-center kind of service. It is not a REST/SOAP style web-service that we have come to conventionally recognize. We do not fire a call, and expect a response. Instead, we get access to virtual servers equivalent of Intel Xeon 1.7 GHz, 1.75 GB of RAM, 250 MB/S of network bandwidth and 160 GB of local hard drive space. Any number of such servers are at our disposal in just a matter of minutes, and that my friends, is not just innovative, but a killer idea in the data-center services arena. At 10 cents per hour of instance up-time, this service is something any start-up, if not individuals, should seriously consider. An EC2 account implicitly comes with a S3 account. Of course you can sign-up for S3 separately as well. In case you are wondering what S3 is, keep reading&#8230;</p>
<p><a href="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/102-1757361-1220931?ie=UTF8&amp;node=16427261&amp;no=3435361&amp;me=A36L942TSJ2AJA" style="font-weight: bold">S3 (Simple Storage Service)</a> is, well, a simple storage service that can be used to store and retrieve huge volumes of data over the internet. This  offering has a similar accent to traditional web-services. The infamous REST and SOAP interfaces are provided for campers at both ends of the web-services campground. The value-add I see in this service is Simplicity, Cost effectiveness and more importantly, the trust that we already have over Amazon&#8217;s infrastructure. After all, they are one of the very few survivors of the DotCom boom. At 15 cents for a GB of storage per month and 20 cents for a GB of data transfer, S3 is something that i would use for all my back-up needs. Being a java programmer, I use the <a href="https://jets3t.dev.java.net/">JetS3T</a> library from Java.net and see how easy it gets&#8230;</p>
<pre>
// Sample code that uploads a file to S3.
String access = "YOUR_AWS_ACCESS_KEY";
String secret = "YOUR_AWS_SECRET_KEY";
AWSCredentials cred = new AWSCredentials(access, secret);

// I used Rest, you could use Soap
S3Service s3 = new RestS3Service(cred);

// Buckets are like folders, but globally unique
S3Bucket bucket = s3.createBucket(access + ".Test");

// File that you want to upload
File file = new File("SomeFile.txt");

// Upload your file
S3Object s3Object = new S3Object(fileData);
object = s3.putObject(bucket, file);</pre>
<p>Start-ups, small businesses and web 2.0 companies should regard these services as &#8220;God-Sent&#8221;. Well, I guess, I am not wrong. Two startups have already considered it serious enough to launch their production environment on EC2. And I&#8217;m sure there are more to come. Lets see what they are up to.</p>
<p><a href="http://www.gumiyo.com" style="font-weight: bold">Gumiyo.com</a> is the first end-to-end mobile commerce platform, connecting live buyers and live sellers through mobile phones and through the Web. Using any mobile phone with a built-in camera and a basic data plan you can create ads in 3 easy steps</p>
<p>1. Capture images or video of an item<br />
2. Attach them to a multimedia message with a short description<br />
3. Send it to post [AT] gumiyo [DOT] com</p>
<p>Gumiyo will create an online ad for you and then send you a reply link asking you to review and edit your ad before it is posted. You don&#8217;t need to use a mobile phone though. You can login and place your ad any time on the Web. You can even send them your ad as an email with photo or video attachments. Could it get any easier? Check it out for yourself.</p>
<p><span style="font-weight: bold">Abaca.com</span> is a spam-blocker appliance that you can purchase for under $2000. This email protection gateway offers 99% guaranteed filtration with zero management. At present, I don&#8217;t have a need for such an appliance as an individual. So, I didn&#8217;t try it out myself.</p>
<p>Will more and more businesses build around these services? Will traditional data-center providers offer EC2 as an option with GUI based configuration? Will amazon create more like these? What do you think?</p>
<div class="hypeIt"><script type="text/javascript">var dzone_url = 'http://gmarwaha.blogspot.com/2007/02/show-time-first-ever-amazon-ec2_05.html';</script><script type="text/javascript">var dzone_style = '2';</script><script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></div>
<img src="http://feeds.feedburner.com/~r/ACongenialPerspective/~4/e4kwBfqGS2w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.gmarwaha.com/blog/2007/02/05/show-time-%e2%80%93-first-ever-amazon-ec2-success-stories/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.gmarwaha.com/blog/2007/02/05/show-time-%e2%80%93-first-ever-amazon-ec2-success-stories/</feedburner:origLink></item>
	</channel>
</rss>
