<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>JavaScriptr</title>
	
	<link>http://www.javascriptr.com</link>
	<description>A blog about JavaScript and other web development technologies</description>
	<pubDate>Sat, 11 Apr 2009 03:34:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</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/Javascriptr" type="application/rss+xml" /><feedburner:emailServiceId>Javascriptr</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>New design!</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/5ezdOkZy9kE/</link>
		<comments>http://www.javascriptr.com/2009/04/10/new-design/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 12:56:16 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Site News]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[theme]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/?p=26</guid>
		<description><![CDATA[I finally got around to updating the theme for this blog. The last theme was nice but it had too many bugs and didn&#8217;t fit well with the content. I think this design is a nice fit and I like the code behind it.
There were some minor issues and probably more to come but all [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got around to updating the theme for this blog. The last theme was nice but it had too many bugs and didn&#8217;t fit well with the content. I think this design is a nice fit and I like the code behind it.</p>
<p>There were some minor issues and probably more to come but all in all I&#8217;m happy with this new design. I plan on adding more features and content to this site so stay tuned.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=5ezdOkZy9kE:w1ULj3ioXQA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=5ezdOkZy9kE:w1ULj3ioXQA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=5ezdOkZy9kE:w1ULj3ioXQA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=5ezdOkZy9kE:w1ULj3ioXQA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=5ezdOkZy9kE:w1ULj3ioXQA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=5ezdOkZy9kE:w1ULj3ioXQA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=5ezdOkZy9kE:w1ULj3ioXQA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=5ezdOkZy9kE:w1ULj3ioXQA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/5ezdOkZy9kE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2009/04/10/new-design/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2009/04/10/new-design/</feedburner:origLink></item>
		<item>
		<title>PureJSTemplate  - A pure javascript templating engine for jQuery</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/Y2MN0DVbC_M/</link>
		<comments>http://www.javascriptr.com/2008/06/05/purejstemplate-a-pure-javascript-templating-engine-for-jquery/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 01:32:31 +0000</pubDate>
		<dc:creator>mo rock</dc:creator>
		
		<category><![CDATA[HTML/XHTML]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[PureJSTemplate]]></category>

		<category><![CDATA[templating]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2008/06/05/purejstemplate-a-pure-javascript-templating-engine-for-jquery/</guid>
		<description><![CDATA[Most templating languages suck 
Ok, if your like me then you hate all templating langauges- they suck, they really suck. I hate them because I hate the rules they enforce upon me, they are slow, and they slow me down. Because of this, usually I end up making code that looks like this:
UGLY: 

1
2
3
4
function display&#40;data&#41; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Most templating languages suck </strong></p>
<p>Ok, if your like me then you hate all templating langauges- they suck, they really suck. I hate them because I hate the rules they enforce upon me, they are slow, and they slow me down. Because of this, usually I end up making code that looks like this:</p>
<p><strong>UGLY: </strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> display<span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #003366; font-weight: bold;">var</span> output <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;div&gt;&quot;</span> <span style="color: #339933;">+</span> data.<span style="color: #660066;">text</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/div&gt;&quot;</span><span style="color: #339933;">;</span>
   element.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span>output<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>How horrible is that? That&#8217;s probably worse than using a bad templating langauge.</p>
<p>Well, after disappointments with other jQuery templating plugins, I decided to make my own:</p>
<p><strong>The Solution: PureJSTemplate </strong></p>
<p>With PureJSTemplate you use old fashioned javascript in your template. You simply surround the javascript in special tags. Here&#8217;s an example of what you can do:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span># <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> #<span style="color: #339933;">&gt;</span>
   <span style="color: #339933;">&lt;</span>#<span style="color: #339933;">=</span>i#<span style="color: #339933;">&gt;&lt;</span>br<span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;</span>#<span style="color: #009900;">&#125;</span>#<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>That will output the numbers 0 through 9. Easy, isn&#8217;t it?</p>
<p><strong>Using it: </strong></p>
<p>You simply surround your template code with a textarea tag:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;textarea</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;tpl&quot;</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;display:none&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- TEMPLATE CODE HERE --&gt;</span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/textarea<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>and call it from javascript like so:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;output&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">pureJSTemplate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
   id   <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;tpl&quot;</span><span style="color: #339933;">,</span>
   data <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>That&#8217;s it.</p>
<p><strong> Get the Code: </strong></p>
<p>Visit a demo/benchmark page <a href="http://www.glicky.com/downloads/testtemplating_jquery.html" title="demo">here</a>. Get the js <a href="http://www.glicky.com/downloads/purejstemplate_jquery.js" title="js">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Y2MN0DVbC_M:MPvjz5x_Azs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Y2MN0DVbC_M:MPvjz5x_Azs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=Y2MN0DVbC_M:MPvjz5x_Azs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Y2MN0DVbC_M:MPvjz5x_Azs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=Y2MN0DVbC_M:MPvjz5x_Azs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Y2MN0DVbC_M:MPvjz5x_Azs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=Y2MN0DVbC_M:MPvjz5x_Azs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Y2MN0DVbC_M:MPvjz5x_Azs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/Y2MN0DVbC_M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2008/06/05/purejstemplate-a-pure-javascript-templating-engine-for-jquery/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2008/06/05/purejstemplate-a-pure-javascript-templating-engine-for-jquery/</feedburner:origLink></item>
		<item>
		<title>GWT + Grizzly + Comet</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/1-LtKE5BVPg/</link>
		<comments>http://www.javascriptr.com/2008/05/28/gwt-grizzly-comet/#comments</comments>
		<pubDate>Thu, 29 May 2008 01:51:57 +0000</pubDate>
		<dc:creator>mo rock</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[comet]]></category>

		<category><![CDATA[grizzly]]></category>

		<category><![CDATA[gwt]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2008/05/28/gwt-grizzly-comet/</guid>
		<description><![CDATA[Ok, so you&#8217;re probably looking for a simple example of GWT + Grizzly + Comet. Jean Francois and his buddies at JavaOne screwed us with their vague PDF. Bastards! I gotta say this, though, Jean was right, its not too hard to figure out.
This implementation uses XHR long polling, glassfishv2.ur2 and grizzly comet 1.0.9.
The problem: [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so you&#8217;re probably looking for a simple example of GWT + Grizzly + Comet. Jean Francois and his buddies at JavaOne screwed us with their vague PDF. Bastards! I gotta say this, though, Jean was right, its not too hard to figure out.</p>
<p>This implementation uses XHR long polling, glassfishv2.ur2 and grizzly comet 1.0.9.</p>
<p><strong>The problem: RemoteServiceServlet</strong></p>
<p>GWT loves POST. All RPC calls made back to your subclass of RemoteServiceServlet will hit the doPost method. However, this method is final and cannot be overridden - meaning we cannot create a comet handler for the request in our subclass of RemoteServiceServlet. We want to continue using RPC but we don&#8217;t want to use RemoteServiceServlet. WTF?</p>
<p><strong>The solution:  SimpleServiceServlet</strong></p>
<p>Pretty much the RemoteServiceServlet is too secretive. So I pulled out its code and gutted it- creating SimpleServiceServlet. It&#8217;s new doPost method calls doConnect which you can override in your subclass - allowing you to create a comet handler. Yay.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CometServiceImpl <span style="color: #000000; font-weight: bold;">extends</span> SimpleServiceServlet <span style="color: #000000; font-weight: bold;">implements</span> CometService <span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">public</span> CometContext cc<span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> CometServiceImpl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">class</span> GWTCometHandler <span style="color: #000000; font-weight: bold;">implements</span> CometHandler<span style="color: #339933;">&lt;</span>HttpServletResponse<span style="color: #339933;">&gt;</span> <span style="color: #009900;">&#123;</span>
      ....
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> doConnect<span style="color: #009900;">&#40;</span>HttpServletRequest req, HttpServletResponse res<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
         res.<span style="color: #006633;">setContentType</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;text/html;charset=ISO-8859-1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         GWTCometHandler ch <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> GWTCometHandler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         ch.<span style="color: #006633;">attach</span><span style="color: #009900;">&#40;</span>res<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         ch.<span style="color: #006633;">attachRequest</span><span style="color: #009900;">&#40;</span>req<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         cc.<span style="color: #006633;">addCometHandler</span><span style="color: #009900;">&#40;</span>ch<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connect: e=&quot;</span> <span style="color: #339933;">+</span> e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>Other issues: The RPC Thing<br />
</strong></p>
<p>GWT expects a return value from RPC methods. But what about in the case of comet? There technically isn&#8217;t an RPC method - a connection is established and then the client waits. Well, lets not re-write GWT, lets just make it happy. In traditional GWT RPC apps we extend the &#8220;RemoteService&#8221; interface that&#8217;s used by the server and the client. Let&#8217;s go ahead and do that:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> CometService <span style="color: #000000; font-weight: bold;">extends</span> RemoteService <span style="color: #009900;">&#123;</span>
   Message comet<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>And lets also create the object we are going to return via comet and RPC:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Message <span style="color: #000000; font-weight: bold;">implements</span> IsSerializable<span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> text<span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setText<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> text<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">text</span><span style="color: #339933;">=</span>text<span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getText<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">return</span> text<span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>So we basically follow the pattern perscribed to us by GWT - but heres the catch. In our implementation of CometService we do the following:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> Message comet<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Yes, we return null! This way we make GWT happy - it can continue to do all of its fancy RPC&#8217;ing. And we can do comet without any hassles. But, how do we return serialized objects to the client?</p>
<p><strong>Return serialized objects?</strong></p>
<p>We do it in our subclass of grizzly&#8217;s CometHandler -</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> GWTCometHandler <span style="color: #000000; font-weight: bold;">implements</span> CometHandler<span style="color: #339933;">&lt;</span>HttpServletResponse<span style="color: #339933;">&gt;</span> <span style="color: #009900;">&#123;</span>
   HttpServletResponse res<span style="color: #339933;">;</span>
   HttpServletRequest req<span style="color: #339933;">;</span>
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onEvent<span style="color: #009900;">&#40;</span>CometEvent ce<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;onEvent&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #666666; font-style: italic;">// GWTEvent event = (GWTEvent) ce.attachment();</span>
      Message msg <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Message<span style="color: #009900;">&#41;</span> ce.<span style="color: #006633;">attachment</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
         <span style="color: #666666; font-style: italic;">//LETS SERIALIZE!!!</span>
         <span style="color: #003399;">String</span> encoded <span style="color: #339933;">=</span> RPC.<span style="color: #006633;">encodeResponseForSuccess</span><span style="color: #009900;">&#40;</span>CometServiceImpl.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getMethod</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;comet&quot;</span><span style="color: #009900;">&#41;</span>, msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #666666; font-style: italic;">//LETS WRITE THE RESPONSE</span>
         writeResponse<span style="color: #009900;">&#40;</span>req, res, encoded<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         removeThisFromContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">SecurityException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>SerializationException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">NoSuchMethodException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   ......
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>The Code:</strong></p>
<p>A good sample app is worth a thousand words - <a href="http://www.glicky.com/downloads/MyProject.jar" title="MyProject.jar">download it here</a>.  This is a very simple and rough attempt at getting GWT working with Grizzly Comet. I&#8217;ll be posting an improved version at some point. It does not work in the GWT shell. You will have to deploy it to glassfish.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=1-LtKE5BVPg:SkfdKYtLomo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=1-LtKE5BVPg:SkfdKYtLomo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=1-LtKE5BVPg:SkfdKYtLomo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=1-LtKE5BVPg:SkfdKYtLomo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=1-LtKE5BVPg:SkfdKYtLomo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=1-LtKE5BVPg:SkfdKYtLomo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=1-LtKE5BVPg:SkfdKYtLomo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=1-LtKE5BVPg:SkfdKYtLomo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/1-LtKE5BVPg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2008/05/28/gwt-grizzly-comet/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2008/05/28/gwt-grizzly-comet/</feedburner:origLink></item>
		<item>
		<title>Adobe Air 1.0 Released today</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/uo9vWR8twQ8/</link>
		<comments>http://www.javascriptr.com/2008/02/25/adobe-air-10-released-today/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 22:08:47 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Adobe Air]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[1.0]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[air]]></category>

		<category><![CDATA[beta]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2008/02/25/adobe-air-10-released-today/</guid>
		<description><![CDATA[Adobe has officially released Air 1.0 today. I must have been under a rock somewhere. I didn&#8217;t expect this product to be out of beta anytime soon. Guess I was to busy going crazy about other products (*cough*&#8230; Jaxer). 
Its a great time to be a Javascript developer (aka a JavaScriptr). So many things going [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe has officially released Air 1.0 today. I must have been under a rock somewhere. I didn&#8217;t expect this product to be out of beta anytime soon. Guess I was to busy going crazy about other products (*cough*&#8230; Jaxer). </p>
<p>Its a great time to be a Javascript developer (aka a JavaScriptr). So many things going on. </p>
<p>Find out more about <a href="http://www.adobe.com/products/air/" target="_blank">Adobe Air here</a>. Happy Scripting!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=uo9vWR8twQ8:9qRZa3HBrDo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=uo9vWR8twQ8:9qRZa3HBrDo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=uo9vWR8twQ8:9qRZa3HBrDo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=uo9vWR8twQ8:9qRZa3HBrDo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=uo9vWR8twQ8:9qRZa3HBrDo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=uo9vWR8twQ8:9qRZa3HBrDo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=uo9vWR8twQ8:9qRZa3HBrDo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=uo9vWR8twQ8:9qRZa3HBrDo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/uo9vWR8twQ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2008/02/25/adobe-air-10-released-today/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2008/02/25/adobe-air-10-released-today/</feedburner:origLink></item>
		<item>
		<title>Aptana Jaxer can change the game!</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/cXpUAB4s09E/</link>
		<comments>http://www.javascriptr.com/2008/02/22/aptana-jaxer-can-change-the-game/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 15:12:16 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Ajax]]></category>

		<category><![CDATA[Aptana]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Jaxer]]></category>

		<category><![CDATA[beta]]></category>

		<category><![CDATA[mozilla]]></category>

		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2008/02/22/aptana-jaxer-can-change-the-game/</guid>
		<description><![CDATA[What is Aptana? What is Jaxer? What does this have to do with JavaScript? Let me fill you in if you never heard these two words in the JavaScript community before.
First, what is Aptana?
Aptana Inc. is a company founded by Paul Colton back in 2005 (Paul created JRun back in the day). The company&#8217;s first [...]]]></description>
			<content:encoded><![CDATA[<p>What is Aptana? What is Jaxer? What does this have to do with JavaScript? Let me fill you in if you never heard these two words in the JavaScript community before.</p>
<p><strong>First, what is Aptana?</strong><br />
Aptana Inc. is a company founded by Paul Colton back in 2005 (Paul created JRun back in the day). The company&#8217;s first product is an open source JavaScript IDE called, you guessed it, Aptana which is based on the <a href="http://www.eclipse.org/" target="_blank">Eclipse platform</a>. The IDE name was recently changed to <a href="http://www.aptana.com/studio" target="_blank">Aptana Studio</a>. It&#8217;s a pretty popular product that many JavaScript developers use. There are about 1,321,900 downloads to date according to counter on the Aptana website.</p>
<p><strong>Ok, now what is Jaxer?</strong><br />
Jaxer is the latest product from Aptana. It is &#8220;The world&#8217;s first Ajax server&#8221;. Basically its an application server that speaks JavaScript.  This means you can code your entire web application (front and back end) using JavaScript, HTML &#038; CSS only! Aptana Jaxer is also an open source project licensed under the GPL. The JavaScript and DOM engine is the same one used in Firefox 3 (Mozilla). This means you can write your code using the latest JavaScript specs (1.5 to 1.8).</p>
<p><strong>Cool! Now how will this change the game?</strong><br />
Are you kidding me? In my career as a web developer (since 1998) I&#8217;ve written code in VB, Tango, Perl, ColdFusion, Java, PHP and a bunch of unheard-of proprietary languages. The only programming language I&#8217;ve used in all my projects is JavaScript. Imagine a world where you don&#8217;t need to worry about all those other server side languages. Who needs Ruby on Rails? Why not use the most popular programming language on the web?</p>
<p>Now I know its a bit early to dump server languages like Java, PHP and ROR. Jaxer is still in beta (v0.9) and they just released a <a href="http://www.aptana.com/view/blog_front_page#/node/278" target="_blank">version for Linux</a>. So we still have a long way to go but since this is all open source, I really hope the see it take off. I plan on doing my part so look out for future articles about applications I&#8217;ll be porting over to Jaxer. </p>
<p>Read more about Jaxer at <a href="http://www.aptana.com/jaxer" target="_blank">http://www.aptana.com/jaxer</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=cXpUAB4s09E:rguc6JV7HiM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=cXpUAB4s09E:rguc6JV7HiM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=cXpUAB4s09E:rguc6JV7HiM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=cXpUAB4s09E:rguc6JV7HiM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=cXpUAB4s09E:rguc6JV7HiM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=cXpUAB4s09E:rguc6JV7HiM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=cXpUAB4s09E:rguc6JV7HiM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=cXpUAB4s09E:rguc6JV7HiM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/cXpUAB4s09E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2008/02/22/aptana-jaxer-can-change-the-game/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2008/02/22/aptana-jaxer-can-change-the-game/</feedburner:origLink></item>
		<item>
		<title>JQuery on Rails</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/aNCbjKB4pDM/</link>
		<comments>http://www.javascriptr.com/2008/01/05/jquery-on-rails/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 19:58:45 +0000</pubDate>
		<dc:creator>Rey</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Quick Link]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[jrails]]></category>

		<category><![CDATA[library]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2008/01/05/jquery-on-rails/</guid>
		<description><![CDATA[The JRails library is a useful tool for programmers working on Rails. 

jRails is a drop-in jQuery replacement for Prototype/script.aculo.us on Rails. Using jRails, you can get all of the same default Rails helpers for JavaScript functionality using the lighter jQuery library.
I plan to start programming with Rails soon so I&#8217;ll definitely be adding this [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://ennerchi.com/projects/jrails" target="_blank">JRails</a> library is a useful tool for programmers working on Rails. </p>
<blockquote><p>
jRails is a drop-in jQuery replacement for Prototype/script.aculo.us on Rails. Using jRails, you can get all of the same default Rails helpers for JavaScript functionality using the lighter jQuery library.</p></blockquote>
<p>I plan to start programming with Rails soon so I&#8217;ll definitely be adding this to my arsenal.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=aNCbjKB4pDM:vyJAB_Q7WeI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=aNCbjKB4pDM:vyJAB_Q7WeI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=aNCbjKB4pDM:vyJAB_Q7WeI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=aNCbjKB4pDM:vyJAB_Q7WeI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=aNCbjKB4pDM:vyJAB_Q7WeI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=aNCbjKB4pDM:vyJAB_Q7WeI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=aNCbjKB4pDM:vyJAB_Q7WeI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=aNCbjKB4pDM:vyJAB_Q7WeI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/aNCbjKB4pDM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2008/01/05/jquery-on-rails/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2008/01/05/jquery-on-rails/</feedburner:origLink></item>
		<item>
		<title>Learning Adobe Air</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/Ii5ke2tLL-c/</link>
		<comments>http://www.javascriptr.com/2007/12/19/learning-adobe-air/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 23:26:13 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Adobe Air]]></category>

		<category><![CDATA[HTML/XHTML]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Quick Link]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[application]]></category>

		<category><![CDATA[howto]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2007/12/19/learning-adobe-air/</guid>
		<description><![CDATA[Jonathan Snook has a great article on 24ways.org about creating an Adobe Air application using JavaScript, HTML and CSS. This is a great way for web developers who don&#8217;t know much or don&#8217;t care about Flash to get started.
I&#8217;d like to push this further by creating a desktop app that can also live on the [...]]]></description>
			<content:encoded><![CDATA[<p>Jonathan Snook has a great article on <a href="http://24ways.org" target="_blank">24ways.org</a> about creating an Adobe Air application using JavaScript, HTML and CSS. This is a great way for web developers who don&#8217;t know much or don&#8217;t care about Flash to get started.</p>
<p>I&#8217;d like to push this further by creating a desktop app that can also live on the web. Maybe even communicate with the desktop version.</p>
<p>You can check out <a href="http://24ways.org/2007/christmas-is-in-the-air" target="_blank">Snook&#8217;s article here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Ii5ke2tLL-c:by1paT50e1c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Ii5ke2tLL-c:by1paT50e1c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=Ii5ke2tLL-c:by1paT50e1c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Ii5ke2tLL-c:by1paT50e1c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=Ii5ke2tLL-c:by1paT50e1c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Ii5ke2tLL-c:by1paT50e1c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=Ii5ke2tLL-c:by1paT50e1c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=Ii5ke2tLL-c:by1paT50e1c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/Ii5ke2tLL-c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2007/12/19/learning-adobe-air/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2007/12/19/learning-adobe-air/</feedburner:origLink></item>
		<item>
		<title>Scripting for the iPhone</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/piwznq2QSKM/</link>
		<comments>http://www.javascriptr.com/2007/07/12/scripting-for-the-iphone/#comments</comments>
		<pubDate>Thu, 12 Jul 2007 23:11:27 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Mobile]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/2007/07/12/scripting-for-the-iphone/</guid>
		<description><![CDATA[There&#8217;s a lot of buzz in the web development community about developing for the iPhone. I&#8217;ve been following this topic since the Apple announcement last month. 
I&#8217;m all for it. This is a big step for web development on portable devices. I hope other pda and smartphone makers follow Apple&#8217;s lead. I took a quick [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a lot of buzz in the web development community about developing for the iPhone. I&#8217;ve been following this topic since the <a href="http://www.apple.com/pr/library/2007/06/11iphone.html" target="_blank">Apple announcement</a> last month. </p>
<p>I&#8217;m all for it. This is a big step for web development on portable devices. I hope other pda and smartphone makers follow Apple&#8217;s lead. I took a quick look at the <a href=" http://developer.apple.com/iphone/" target="_blank">developer documentation</a> today and found some interesting things I wanted to point out.</p>
<ul>
<li>Integrate phone calls, maps and emails using links. Mail and map links are not different from what we use on normal browsers (&#8221;mailto:anemail@domain.com&#8221; and &#8221; http://maps.google.com?address&#8221;) but phone links use a new url format which starts with &#8220;tel:&#8221;.<br />
Here&#8217;s an example:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;tel:1-123-444-5555&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Call Me<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

</li>
<li>Assign an iPhone style sheet with the link tag.

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link</span> </span>
<span style="color: #009900;">  <span style="color: #000066;">media</span>=<span style="color: #ff0000;">&quot;only screen and (max-device-width: 480px)&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;iPhone.css&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/css&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></td></tr></table></div>

<p>
This is new to me. Seems like its part of the CSS3 recommendation.
<li>
<li>iPhone doesn&#8217;t support window.showModalDialog(), mouse-overs, hover styles, tool tips, java applets, flash, plugin installation or custom x.509 certificates.</li>
<li>PDFs, Cookies and user-initiated window-open calls are supported but there&#8217;s a limit of 8 pages (8 open windows) in page view.</li>
</ul>
<p>Here are some iPhone third party apps:<br />
<a href="http://www.launchpadhq.com/" target="_blank">http://www.launchpadhq.com/</a><br />
<a href="http://www.37signals.com/svn/posts/502-ta-da-list-for-iphone" target="_blank">http://www.37signals.com/svn/posts/502-ta-da-list-for-iphone</a><br />
<a href="http://digg.com/iphone " target="_blank">http://digg.com/iphone </a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=piwznq2QSKM:1-oWH663tb4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=piwznq2QSKM:1-oWH663tb4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=piwznq2QSKM:1-oWH663tb4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=piwznq2QSKM:1-oWH663tb4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=piwznq2QSKM:1-oWH663tb4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=piwznq2QSKM:1-oWH663tb4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=piwznq2QSKM:1-oWH663tb4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=piwznq2QSKM:1-oWH663tb4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/piwznq2QSKM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2007/07/12/scripting-for-the-iphone/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2007/07/12/scripting-for-the-iphone/</feedburner:origLink></item>
		<item>
		<title>Tips to Build PHP Web App in 66.5hrs</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/h5utA-8O-cw/</link>
		<comments>http://www.javascriptr.com/2007/06/07/quick-link-tips-to-build-php-web-app-in-665hrs/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 00:23:32 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Quick Link]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/?p=4</guid>
		<description><![CDATA[Here&#8217;s a blog post about one guy building an full blown dating site called Mingle2 in 66.5 hours. I&#8217;m not sure how good the application is but the tips are pretty good.
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a blog post about <a href="http://mingle2.com/blog/view/how-i-built-mingle2">one guy building an full blown dating site</a> called <a href="http://mingle2.com">Mingle2</a> in 66.5 hours. I&#8217;m not sure how good the application is but the tips are pretty good.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=h5utA-8O-cw:RaYQDyzAj_8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=h5utA-8O-cw:RaYQDyzAj_8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=h5utA-8O-cw:RaYQDyzAj_8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=h5utA-8O-cw:RaYQDyzAj_8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=h5utA-8O-cw:RaYQDyzAj_8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=h5utA-8O-cw:RaYQDyzAj_8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=h5utA-8O-cw:RaYQDyzAj_8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=h5utA-8O-cw:RaYQDyzAj_8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/h5utA-8O-cw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2007/06/07/quick-link-tips-to-build-php-web-app-in-665hrs/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2007/06/07/quick-link-tips-to-build-php-web-app-in-665hrs/</feedburner:origLink></item>
		<item>
		<title>YUI Theater</title>
		<link>http://feedproxy.google.com/~r/Javascriptr/~3/eiXVb6hIGgI/</link>
		<comments>http://www.javascriptr.com/2007/05/15/yui-theater/#comments</comments>
		<pubDate>Tue, 15 May 2007 05:38:23 +0000</pubDate>
		<dc:creator>Henry B.</dc:creator>
		
		<category><![CDATA[Quick Link]]></category>

		<guid isPermaLink="false">http://www.javascriptr.com/?p=3</guid>
		<description><![CDATA[Checkout this post on the YUI blog about JavaScript videos in the YUI Theater. Its a great intro to the fundamentals of JavaScript and some more advanced topics if you check out the related videos also presented by Douglas Crockford.
]]></description>
			<content:encoded><![CDATA[<p>Checkout this post on the <a href="http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/" title="YUI Blog">YUI blog</a> about JavaScript videos in the YUI Theater. Its a great intro to the fundamentals of JavaScript and some more advanced topics if you check out the related videos also presented by <a href="http://www.crockford.com/javascript/" title="Douglas Crockford's JavaScript Webpage">Douglas Crockford</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Javascriptr?a=eiXVb6hIGgI:ajOEsnMrEws:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=eiXVb6hIGgI:ajOEsnMrEws:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=eiXVb6hIGgI:ajOEsnMrEws:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=eiXVb6hIGgI:ajOEsnMrEws:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=eiXVb6hIGgI:ajOEsnMrEws:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=eiXVb6hIGgI:ajOEsnMrEws:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Javascriptr?i=eiXVb6hIGgI:ajOEsnMrEws:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Javascriptr?a=eiXVb6hIGgI:ajOEsnMrEws:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Javascriptr?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Javascriptr/~4/eiXVb6hIGgI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptr.com/2007/05/15/yui-theater/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.javascriptr.com/2007/05/15/yui-theater/</feedburner:origLink></item>
	</channel>
</rss>
