<?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>Thejesh GN &#187; Javascript</title>
	<atom:link href="http://thejeshgn.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://thejeshgn.com</link>
	<description>A Blog, A Website and A container for all my views with excerpts from technology, travel, films, india, photography, kannada, friends and other interests. I am Thejesh GN. Friends call me Thej</description>
	<lastBuildDate>Thu, 29 Jul 2010 06:28:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Getting started with Processingjs by writing Analog clock</title>
		<link>http://thejeshgn.com/2009/10/29/getting-started-with-processingjs-by-writing-analog-clock/</link>
		<comments>http://thejeshgn.com/2009/10/29/getting-started-with-processingjs-by-writing-analog-clock/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 10:50:54 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[processingjs]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=1429</guid>
		<description><![CDATA[As most of you know, I love JavaScript.  Recently I started exploring Processing.js to create some dynamic graphs and animation. I was bowled over by the power of Processing.js. &#8220;Processing.js is an open programming language for people who want to program images, animation, and interactions for the web without using Flash or Java applets. Processing.js [...]]]></description>
			<content:encoded><![CDATA[<p>As most of you know, I love JavaScript.  Recently I started exploring <a href="http://processingjs.org/">Processing.js</a> to create some dynamic graphs and animation. I was bowled over by the power of Processing.js.</p>
<p>&#8220;Processing.js is an open programming language for people who want to program images, animation, and interactions for the web without using Flash or Java applets. Processing.js uses JavaScript to draw shapes and manipulate images on the HTML5 Canvas element. The code is light-weight, simple to learn and makes an ideal tool for visualizing data, creating user-interfaces and developing web-based games.&#8221;</p>
<p>The Processing language was originally created by Ben Fry and Casey Reas for Java. In 2008, John Resig ported the 2D context of Processing to JavaScript. It needs Canvas. So make sure you are using HTML5 capable browser like Firefox <sup><a  name="fn1-topnote" href="#fn1-footnote">1</a></sup>.</p>
<p><strong>Setup:</strong> Download the <a href="http://processingjs.org/download">processing.js</a>. That is the only file you need.</p>
<p><strong>Initialize processing:</strong> We need to initialize the processing engine on a canvas. We will have that in the init.js and will include that.</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;
&lt;script src=&quot;init.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;processing.min.js&quot;&gt;&lt;/script&gt;
&lt;title&gt;Analog Clock using Processing.js&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;application/processing&quot; target=&quot;clock&quot;&gt;
//your processing code
&lt;/script&gt;&lt;canvas id=&quot;clock&quot;&gt;You need HTML5 canvas support.
Try latest Firefox&lt;/canvas&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>The above code snippet shows the basic setup to run. We need to add our processing code inside</p>
<pre class="brush: xml;">
&lt;script type=&quot;application/processing&quot;&gt;
//your processing code
&lt;/script&gt;
</pre>
<p>The init.js code actually searches for all the script tag type=&#8221;application/processing&#8221; and applies processing the code on the target canvas. <a href="http://media.thejeshgn.com/script/processingjs/init.js">init.js</a> was borrowed from <a href="http://ejohn.org/">JResig</a>&#8216;s code examples.</p>
<p><strong>Logic for the clock:</strong><br />
<a class="wikipedia" href="http://en.wikipedia.org/wiki/Circle">Circle</a> has 2PI radians. So for each second/minute we have to move 2PI/60 radians. Given the center of the circle (a,b), radius r and angle t radians. we can find any point on the circle, using<br />
x = a+r cos(t);<br />
y = b+r sin(t);<br />
or<br />
x = a + r (1-t<sup>2</sup>)/(1+t<sup>2</sup>)<br />
y = b + r (2t)/(1+t<sup>2</sup>)</p>
<p>I have used the first set of formula.  Processing.js supports time and trigonometric functions by default.</p>
<p>But the 0 degrees start at horizontally and I wanted 0<sup>th</sup> hour to start at 90 degrees. And hence the subtraction of quarterCicrle which equals = PI/2.</p>
<p>The two main important methods are<br />
void setup() &#8211; called initially when canvas gets loaded.<br />
void draw() &#8211; called at the rate of frameRate.<br />
<span id="more-1429"></span><br />
You can see I have set frame rate to 1 sec. I guess the rest of the code is self explanatory.</p>
<pre class="brush: jscript;">
int radius=90;
int a=100;
int b=100;
int nx,ny;

void setup(){
  size(200,200);
  strokeWeight(5);
  //run every second
  frameRate(1);
}
void draw(){

	r = radius;
	background(100);
	ellipse(a,b,2*radius, 2*radius);
	int quarterCicrle=PI/2;

	//second
	int t=((2*PI/60)*second())-quarterCicrle;
	nx = a+r*cos(t);
	ny = b+r*sin(t);
	strokeWeight(2);
	stroke(100);
	line(a,b,nx,ny);

	//minute
	t=((2*PI/60)*minute())-quarterCicrle;
	nx = a+r*cos(t);
	ny = b+r*sin(t);
	strokeWeight(5);
	stroke(100);
	line(a,b,nx,ny);

	//hour
	t=((2*PI/12)*hour())-quarterCicrle;
	nx = a+r*cos(t);
	ny = b+r*sin(t);
	strokeWeight(8);
	stroke(100);
	line(a,b,nx,ny);

}
</pre>
<p><iframe src="http://media.thejeshgn.com/script/processingjs/analog.htm" style="border: 0pt none ;" height="220" scrolling="no" width="220"></iframe><br />
<small><a href="http://media.thejeshgn.com/script/processingjs/analog.htm" target="_new">launch in a separate page</a></small><br />
With processingjs graphics in JavaScript has become very easy. This is just an example and processing.js can do much more complex things, Their website has lots of good example. <a href="http://processingjs.org/exhibition">Go explore</a>.</p>
<p><strong>Foot Notes:</strong><br />
1. Browsers like <a href="http://www.mozilla.com/en-US/firefox/all-beta.html">Firefox 3.0 Beta 5</a>, <a href="http://nightly.webkit.org/">WebKit </a> and <a href="http://www.opera.com/products/desktop/next/">Opera 9.5</a> have canvas support.<a name="fn1-footnote" href="#fn1-topnote" title="Jump back to footnote 1 in the post">↩</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2009/10/29/getting-started-with-processingjs-by-writing-analog-clock/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to kill that Digg Bar Frame</title>
		<link>http://thejeshgn.com/2009/04/04/how-to-kill-that-digg-bar-frame/</link>
		<comments>http://thejeshgn.com/2009/04/04/how-to-kill-that-digg-bar-frame/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 11:58:13 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=771</guid>
		<description><![CDATA[Digg recently introduced url shortener. This is not your standard url shortener where the shortener does a 302 forward. Digg shortener displays destination site in a frame. Which means the reader still stays on the Digg. Most of the modern web analytics software will be able to record this visit, but it will problem in [...]]]></description>
			<content:encoded><![CDATA[<p>Digg recently introduced <a href="http://www.techcrunch.com/2009/04/02/diggs-toolbar-is-here-go-shorten-those-urls/">url shortener</a>. This is not your standard url shortener where the shortener does a 302 forward. Digg shortener displays destination site in a frame. Which means the reader still stays on the Digg.<br />
<img src="http://media.thejeshgn.com/img/blogging/digg-shortner.GIF" alt="" width="500" /><br />
Most of the modern web analytics software will be able to record this visit, but it will problem in finding out the actual referrer.  Also standard traffic <a href="http://www.techcrunch.com/2009/04/02/diggbar-keeps-all-digg-homepage-traffic-on-digg/">counters like alexa</a> don&#8217;t count this visit against your site.<br />
So if you don&#8217;t like to that DiggBar to be displayed on your blog.  You can add this one line code to your site.  Add it to your webpage&#8217;s head section.</p>
<pre class="brush: xml; light: true;">
&lt;script type=&quot;text/javascript&quot;&gt;
if (top !== self) top.location.href = self.location.href;
&lt;/script&gt;
</pre>
<p>This code in fact doesn&#8217;t allow anybody to display your content in their frame. Here is the demo url <a href="http://digg.com/u1BSW">http://digg.com/u1BSW</a> to check. It should work on all browsers.<br />
Let me know if you have any other suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2009/04/04/how-to-kill-that-digg-bar-frame/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scriptlet for Easy Commenting on WordPress Blogs</title>
		<link>http://thejeshgn.com/2009/01/20/scriptlet-for-easy-commenting-on-wordpress-blogs/</link>
		<comments>http://thejeshgn.com/2009/01/20/scriptlet-for-easy-commenting-on-wordpress-blogs/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 07:48:58 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[scriptlet]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=512</guid>
		<description><![CDATA[I like to comment when I read a good post. More than 50% of the blogs that I read are on either wordpress.com or hosted . So I created a simple scriptlet to fill the comment form for ease of commenting.Then I thought it could be useful to others too. So I wrote this small [...]]]></description>
			<content:encoded><![CDATA[<p>I like to comment when I read a good post. More than 50% of the blogs that I read  are on either wordpress.com or hosted . So I created a simple scriptlet to fill the comment form for ease of commenting.Then I thought it could be useful to others too. So I wrote this small script to create a scriptlet for you.<br />
Fill up the name, email and url you use while commenting. You can even have some default comment if you want. Make sure not to use single or double quotes. As of now the JS code breaks. Try to manage with out quotes : )<br />
Once you have entered the details click &#8220;Generate Scriptlet&#8221;. If everything goes OK then the link below the button becomes &#8220;Fill Comment&#8221;. Pull it to your links bar. Now that should make your commenting easy on any wordpress blog. Send in your comments.<br />
<script>
function create(){
author = document.getElementById("myauthor").value;
email = document.getElementById("myemail").value;
url = document.getElementById("myurl").value;
comment = document.getElementById("mycomment").value;
scriptlet = 'javascript:function fill(){document.getElementById("author").value="'+author+'";document.getElementById("email").value="'+email+'";document.getElementById("url").value="'+url+'";document.getElementById("comment").value="'+comment+'"}fill();'
document.getElementById("completedScriptlet").href=scriptlet;
document.getElementById("completedScriptlet").innerHTML= "Fill Comment";
}
</script></p>
<p>Your Name:<br />
<input name="myauthor" id="myauthor" value="" size="22" tabindex="1" type="text"/>
<p>Your Email:<br />
<input name="myemail" id="myemail" value="" size="22" tabindex="2" type="text"/>
<p>Your URL:<br />
<input maxlength="100" name="myurl" id="myurl" value="" size="22" tabindex="3" type="text"/>
<p>Default Comment or leave blank:<br />
<input maxlength="100" name="mycomment" id="mycomment" value="" size="42" tabindex="4" type="text"/>
<input type=button value="create scriptlet" onclick="create()" />
<p><a id="completedScriptlet" href="">Not yet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2009/01/20/scriptlet-for-easy-commenting-on-wordpress-blogs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My code contribution during foss.in/2008 jFotoNotes</title>
		<link>http://thejeshgn.com/2008/11/26/my-code-contribution-during-fossin2008-jfotonotes/</link>
		<comments>http://thejeshgn.com/2008/11/26/my-code-contribution-during-fossin2008-jfotonotes/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 12:00:40 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=495</guid>
		<description><![CDATA[I am attending FOSS.IN/2008 virtually through twitter (unfortunately I could not attend due to work pressure). Here is my contribution to the FOSS world as part of FOSS.IN/2008. Go to jFotoNotes project page jFotoNotes is java implementation of famous FotoNotes in php. A variation of FotoNotes is also used by flickr. Fotonotes is a standard, [...]]]></description>
			<content:encoded><![CDATA[<p>I am attending <a href="http://foss.in">FOSS.IN/2008</a> virtually through twitter (unfortunately I could not attend due to work pressure).  Here is my contribution to the FOSS world as part of FOSS.IN/2008.</p>
<h3 style="text-align: center;"><a href="http://thejeshgn.com/tools/jfotonotes/">Go to jFotoNotes project page<br />
</a></h3>
<p><a href="http://thejeshgn.com/tools/jfotonotes/">jFotoNotes</a> is java implementation of famous <a href="http://www.fotonotes.net/">FotoNotes</a> in php. A variation of FotoNotes is also used by flickr. Fotonotes is a standard, specification, and collection of scripts for annotating images.  In jFotoNotes I have used the same JavaScript libraries but I have completely rewritten the server side components in Java.<br />
<img src="http://share.thejeshgn.com/jFotoNotes/jFotoNotes.jpg" alt="jFotoNotes" width="375" /></p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2008/11/26/my-code-contribution-during-fossin2008-jfotonotes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What does &#8220;Google Chrome&#8221;  mean to developers</title>
		<link>http://thejeshgn.com/2008/09/02/what-does-google-chrome-mean-developers/</link>
		<comments>http://thejeshgn.com/2008/09/02/what-does-google-chrome-mean-developers/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 06:01:22 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=450</guid>
		<description><![CDATA[Yet another browser to code for? I guess it will obey ECMA-262 rev3 so don&#8217;t worry too much about incompatibilities as of now. Lets see the positive side Its an open source, you get to participate and allows you to write plug-ins Each tab is a separate process.so the effect of one tab is not [...]]]></description>
			<content:encoded><![CDATA[<p>Yet another browser to code for? I guess it will obey ECMA-262 rev3 so don&#8217;t worry too much about incompatibilities as of now. Lets see the positive side</p>
<p><img src="http://media.thejeshgn.com/img/blogging/chrome_developer.png" alt="" width="486" height="288" /></p>
<ol>
<li> Its an open source, you get to participate and allows you to write plug-ins</li>
<li>Each tab is a separate process.so the effect of one tab is not seen in another tab.</li>
<li>Within each tab you have separate thread for JavaScript. So your JavaScript execution will be fast.</li>
<li>JavaScript now runs inside a virtual machine called V8. The JavaScript is compiled to machine code before running. Now that&#8217;s an advantage for heavy JavaScript applications like Gmail. Where most of the JS resides on client side and simply gets the JSON from server to show the data. You don&#8217;t have to re-interpret the JS every time. Compile once and keep running again and again. Your apps will be super fast now. Now GWT developers don&#8217;t have worry about JS performance.</li>
<li>Rendering is by webkit which is again open source.</li>
<li>Looks like they have better garbage collection algorithm for garbage collection. Which will again makes my work simple.</li>
<li>Gears is part of browser now. Your offline apps will have better performance now. Think -&gt; Gears API is loaded as soon as browser is loaded, JavaScript is compiled to m/c code, runs in separate process and thread. What more you want?  Your offline application might be as fast as any native application if not faster.</li>
</ol>
<p>Anything else you want to add.</p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2008/09/02/what-does-google-chrome-mean-developers/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>For UrbanDictionary Fans</title>
		<link>http://thejeshgn.com/2008/08/08/for-urbandictionary-fans/</link>
		<comments>http://thejeshgn.com/2008/08/08/for-urbandictionary-fans/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 09:28:16 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=443</guid>
		<description><![CDATA[Here is the scriplet which you can use to lookup a word on urbandictionary. To use pull the scriptlet onto your URL bar. If you select a word on the page and click the scriptlet takes you the word defnition directly or it will prompt for the word to lookup. Urban Dict lookup scriptlet]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="float: left;" src="http://www.urbandictionary.com/images/logo.gif" alt="" width="259" height="81" />Here is the scriplet which you can use to lookup a word on <a href="http://www.urbandictionary.com/">urbandictionary</a>. To use pull the scriptlet onto your URL bar. If you select a word on the page and click the scriptlet takes you the word defnition directly or it will prompt for the word to lookup.</p>
<p><a href="javascript:s=window.getSelection();word=(s==''?prompt('Lookup%20on%20urbandictionary'):s);if(word)window.open('http://www.urbandictionary.com/define.php?term='+word);void(null);">Urban Dict</a> lookup scriptlet</p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2008/08/08/for-urbandictionary-fans/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Conversation with Alessandro &#8211; CTO of Lightstreamer</title>
		<link>http://thejeshgn.com/2008/05/27/conversation-with-alessandro-cto-of-lightstreamer/</link>
		<comments>http://thejeshgn.com/2008/05/27/conversation-with-alessandro-cto-of-lightstreamer/#comments</comments>
		<pubDate>Tue, 27 May 2008 10:40:28 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YapVideo]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=391</guid>
		<description><![CDATA[On the fourth day of Developer Summit myself and Veetrag spent some time with Alessandro CTO of Lightstreamer. We talked about comet architecture and its application in various fields. Comment is sometimes referred as reverse AJAX and is a set of technologies used to push the live data from server to http clients. Lightstreamer is [...]]]></description>
			<content:encoded><![CDATA[<p>On the fourth day of Developer Summit myself and Veetrag spent some time with Alessandro CTO of Lightstreamer. We talked about <a href="http://en.wikipedia.org/wiki/Comet_%28programming%29">comet </a> architecture and its application in various fields. Comment is sometimes referred as reverse AJAX and is a set of technologies used to push the live data from server to http clients.</p>
<p><a href="http://www.lightstreamer.com">Lightstreamer </a>is a scalable and reliable Server for pushing live data to Rich Internet Applications.  Its based on AJAX-Comet paradigm and pushes the live data to http/flex clients. A free version of Lightstreamer is <a href="http://www.lightstreamer.com/downloadfree.htm">available for download and can be used evaluation</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="352" height="318" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AbnFfAA" /><embed type="application/x-shockwave-flash" width="352" height="318" src="http://blip.tv/play/AbnFfAA"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2008/05/27/conversation-with-alessandro-cto-of-lightstreamer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chat with Greg Murray on Jmaki, ajax, comet etc</title>
		<link>http://thejeshgn.com/2008/05/23/chat-with-greg-murray-on-jmaki-ajax-comet/</link>
		<comments>http://thejeshgn.com/2008/05/23/chat-with-greg-murray-on-jmaki-ajax-comet/#comments</comments>
		<pubDate>Fri, 23 May 2008 04:32:02 +0000</pubDate>
		<dc:creator>Thejesh GN</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YapVideo]]></category>

		<guid isPermaLink="false">http://thejeshgn.com/?p=390</guid>
		<description><![CDATA[Myself and Veetrag caught up with Greg Murray sipping his coffee at Developers Summit. As usual we started talking and in between I realized, we could as well record it. Hence the start is abrupt and volume is low. Greg Murray is an AJAX architect at Sun. He is known for his contributions to OpenAJAX [...]]]></description>
			<content:encoded><![CDATA[<p>Myself and <a href="http://veetrag.net">Veetrag</a> caught up with <a href="http://weblogs.java.net/blog/gmurray71/ ">Greg Murray</a> sipping his coffee at Developers Summit. As usual we started talking and in between I realized, we could as well record it. Hence the start is abrupt and volume is low.<br />
<a href="http://weblogs.java.net/blog/gmurray71/ ">Greg Murray</a> is an AJAX architect at Sun.  He is known for his contributions to OpenAJAX Alliance and Dojo. He is the  architect of Project <a href="http://jmaki.com/">jMaki</a>. jMaki uses the best parts of Java and the best parts of JavaScript to deliver rich AJAX style widgets through a singe, easy-to-use interface that accesses components from popular widget libraries such as Dojo, Script.aculo.us, Yahoo&#8217;s UI Library, Spry, DHTML Goodies, and Google&#8217;s Web Toolkit.<br />
<embed src="http://blip.tv/play/AbmBMgA" type="application/x-shockwave-flash" width="352" height="318" allowscriptaccess="always" allowfullscreen="true"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://thejeshgn.com/2008/05/23/chat-with-greg-murray-on-jmaki-ajax-comet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
