<?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>Ajaxian &#187; Java</title>
	<atom:link href="http://ajaxian.com/by/topic/java/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Tue, 22 May 2012 21:45:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
    	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>JavaScript on the command line or as a shell scripting language</title>
		<link>http://ajaxian.com/archives/javascript-on-the-command-line-or-as-a-shell-scripting-language</link>
		<comments>http://ajaxian.com/archives/javascript-on-the-command-line-or-as-a-shell-scripting-language#comments</comments>
		<pubDate>Thu, 03 Sep 2009 12:25:34 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7325</guid>
		<description><![CDATA[I am always fascinated that no matter how shiny the OS, sooner or later you'll end up typing things into a text console to get the darn machine to do what you want it to. To make matters worse you also have to resort to languages that you don't use every day but are from <a href="http://ajaxian.com/archives/javascript-on-the-command-line-or-as-a-shell-scripting-language">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>I am always fascinated that no matter how shiny the OS, sooner or later you'll end up typing things into a text console to get the darn machine to do what you want it to. To make matters worse you also have to resort to languages that you don't use every day but are from cryptic days of development where keyboards obviously had more interesting characters like ~ | -- and others easily available and scripts had to have numerous | in any line of code. </p>
<p>Enter Stoyan Stefanov who wrote a neat little blog post explaining <a href="http://www.phpied.com/javascript-shell-scripting/">how you can use JavaScript as a shell language</a>. </p>
<p>In essence, Rhino is the answer for *nix machines but if you cuddle the penguin you most likely are a shell master anyways. </p>
<p>If your world features Gates and Windows, then there is the Windows Scripting Host, which has a tool to execute JavaScript on the DOS shell:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-4');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-4">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">C:\&gt; cscript jslint.<span style="color: #006600;">js</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Macs have a tool called JSC which is "conveniently" located in:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-5');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-5">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066FF;">/System/Library/Frameworks/JavaScriptCore.<span style="color: #006600;">framework</span>/Versions/A/Resources/</span>jsc </div>
</li>
</ol>
</div>
</div>
</div>
<p>To make it human usable, creating a shortcut is a good plan:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-6');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-6">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ sudo ln <span style="color: #0066FF;">/System/Library/Frameworks/JavaScriptCore.<span style="color: #006600;">framework</span>/Versions/A/Resources/jsc /bin/</span>jsc </div>
</li>
</ol>
</div>
</div>
</div>
<p>You can then execute JavaScript by starting JSC which gives you something like the Firebug JS console in the OS console (without the console is not defined messages *in* the console).</p>
<p>With a few more lines using the print(), quit() and load() commands available on the shell you can then use any JavaScript to mess with your files and folders. </p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/javascript-on-the-command-line-or-as-a-shell-scripting-language/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Transparent Comet with IceFaces</title>
		<link>http://ajaxian.com/archives/transparent-comet-with-icefaces</link>
		<comments>http://ajaxian.com/archives/transparent-comet-with-icefaces#comments</comments>
		<pubDate>Fri, 27 Mar 2009 12:00:34 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Comet]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6441</guid>
		<description><![CDATA[We recently posted on Atmosphere, a new framework designed to provide an abstraction layer over Comet back-ends for Java web applications. At a personal level, this comes at an interesting time as over in the Mozilla Labs we're evaluating different Comet approaches for our upcoming collaboration release. As we looked at various options, we come <a href="http://ajaxian.com/archives/transparent-comet-with-icefaces">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ajaxian.com/wp-content/uploads/top_logo.jpg"><img src="http://ajaxian.com/wp-content/uploads/top_logo.jpg" alt="" title="IceFaces" width="343" height="110" class="alignnone size-full wp-image-6445" /></a></p>
<p>We recently posted on Atmosphere, a new framework designed to provide an abstraction layer over Comet back-ends for Java web applications. At a personal level, this comes at an interesting time as over in the Mozilla Labs we're evaluating different Comet approaches for our upcoming collaboration release. As we looked at various options, we come across some recent postings from Ted Goddard of IceFaces fame explaining their work on making Comet as simple as possible for Java developers, including a <a href="http://www.jroller.com/tedgoddard/entry/from_ajax_push_to_jsf">podcast</a> and <a href="http://www.jroller.com/tedgoddard/entry/ajax_push_is_easy">an overview of the IceFaces approach</a>.</p>
<p>Say what you will about JSF, their abstraction layer makes server and client implementation of Comet incredibly simple:</p>
<blockquote><p>
In other words, we can re-use our existing Ajax pipeline, and the application developer only needs to worry about one thing: requesting that a page be rendered. As you can imagine, this is only a few lines of code. With ICEfaces it looks like this:</p>
<div class="igBar"><a href="javascript:showCodeTxt('java-8');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVA:</span>
<div id="java-8">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">SessionRenderer.<span style="color: #006600;">addCurrentSession</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #ff0000;">"ajaxian"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// somewhere else in the presentation tier</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">SessionRenderer.<span style="color: #006600;">render</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #ff0000;">"ajaxian"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>Not only does the application developer not have to worry about low-level protocol details or messaging, they don't even have to worry about what has changed on the page -- this is all taken care of by the declared binding between the page and the model.</p>
<p>To summarize: we have dynamic pages that can be rendered on the server at any time, and the updates are pushed to the browser where the changes are applied to the DOM. From the application developer's point of view, that's all there is to it.
</p></blockquote>
<p>Are you using a stack that makes Comet this easy? Have you been able to successfully implement Comet? Do you get sufficient performance from polling?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/transparent-comet-with-icefaces/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Atmosphere: Comet Abstraction Framework</title>
		<link>http://ajaxian.com/archives/atmosphere-comet-abstraction-framework</link>
		<comments>http://ajaxian.com/archives/atmosphere-comet-abstraction-framework#comments</comments>
		<pubDate>Mon, 16 Mar 2009 13:29:02 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Comet]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6341</guid>
		<description><![CDATA[Jean-Francois Arcand announced a new Java-based framework that clients can code against for portable Comet support: Atmosphere 0.1-ALPHA1 is now officially released and support Tomcat, Jetty, Grizzly and GlassFish. Finally a Comet/Ajax Push framework you can build on top of it and deploy everywhere! One of the cool features of this release is that it <a href="http://ajaxian.com/archives/atmosphere-comet-abstraction-framework">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Jean-Francois Arcand <a href="http://weblogs.java.net/blog/jfarcand/archive/2009/03/atmosphere_01al_1.html">announced a new Java-based framework that clients can code against for portable Comet support</a>:</p>
<blockquote><p>
Atmosphere 0.1-ALPHA1 is now officially released and support Tomcat, Jetty, Grizzly and GlassFish. Finally a Comet/Ajax Push framework you can build on top of it and deploy everywhere!
</p></blockquote>
<p>One of the cool features of this release is that it auto-detects which server back-end you've deployed it into.</p>
<p>Among the materials in the release notes are <a href="http://is.gd/ngQv">two code samples</a> and a <a href="http://is.gd/l3hN">PDF discussing what Comet is and the motivation/design behind Atmosphere</a>.</p>
<p>Comet on Java just got easier, which is a welcome development indeed.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/atmosphere-comet-abstraction-framework/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>IT Mill Toolkit 5 out of Beta</title>
		<link>http://ajaxian.com/archives/it-mill-toolkit-5-out-of-beta</link>
		<comments>http://ajaxian.com/archives/it-mill-toolkit-5-out-of-beta#comments</comments>
		<pubDate>Tue, 10 Mar 2009 22:24:26 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6280</guid>
		<description><![CDATA[With the release of IT Mill Toolkit 5.3.0, the server-side RIA framework is now ready for production. I announced the initial release of 5.0 back in December of 2007. Since that time, IT Mill 5 has gone through several revisions and the release of GWT 1.5 (which means you can use Java 5 now on <a href="http://ajaxian.com/archives/it-mill-toolkit-5-out-of-beta">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ajaxian.com/wp-content/uploads/itmill_logo.gif"><img src="http://ajaxian.com/wp-content/uploads/itmill_logo.gif" alt="" title="itmill_logo" width="168" height="28" class="alignright size-full wp-image-6281" /></a>With the release of <a href="http://www.itmill.com/news/2009-03-04_Server-driven_Rich_Web_Applications_in_Pure_Java_-_IT_Mill_Toolkit_5_3_0_Now_Ready_for_Production.htm" target="_blank">IT Mill Toolkit 5.3.0</a>, the server-side RIA framework is now ready for production. I announced the initial release of 5.0 back in <a href="http://ajaxian.com/archives/server-side-ajax-framework-it-mill-toolkit-5-now-with-gwt" target="_blank">December of 2007</a>. Since that time, IT Mill 5 has gone through several revisions and the release of GWT 1.5 (which means you can use Java 5 now on both the client and the server). As a reminder, server-side RIA frameworks let you write your app completely in the server and uses a client-side Ajax engine to render the interface. The nice wrinkle with IT Mill is that both the server side and the client side are written in Java, so if you want to add a component, you don't have to break out the JavaScript (see the extensive and high quality reference manual for <a href="http://www.itmill.com/documentation/itmill-toolkit-5-reference-manual/gwt.html" target="_blank">details on how to develop your own custom components in GWT</a>). If you're a Java shop, that's got to be a good thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/it-mill-toolkit-5-out-of-beta/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>The Most Popular Sessions at TheServerSide Java Symposium</title>
		<link>http://ajaxian.com/archives/the-most-popular-sessions-at-theserverside-java-symposium</link>
		<comments>http://ajaxian.com/archives/the-most-popular-sessions-at-theserverside-java-symposium#comments</comments>
		<pubDate>Mon, 02 Mar 2009 01:10:17 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6153</guid>
		<description><![CDATA[TheServerSide.com's Java Symposium kicks off in less than 2 weeks! Our sister site has put together an impressive lineup of speakers and over 45 tech sessions and case studies that you should know about, like Identifying Browser Problems in Ajax Apps, Meet-up for Selenium, soapUI, HtmlUnit and Other Test Tools and much more. And if you haven't heard, Ajaxian members <a href="http://ajaxian.com/archives/the-most-popular-sessions-at-theserverside-java-symposium">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>TheServerSide.com's Java Symposium kicks off in less than 2 weeks! Our sister site has put together an impressive lineup of <a href="http://javasymposium.techtarget.com/html/speakers.html?Offer=JSajaxpost302">speakers</a> and over 45 tech sessions and case studies that you should know about, like Identifying Browser Problems in Ajax Apps, Meet-up for Selenium, soapUI, HtmlUnit and Other Test Tools and much more.</p>
<p>And if you haven't heard, Ajaxian members save an extra $100 off the registration fee with the code <strong>AJAXIAN</strong>!</p>
<p>The <a href="http://javasymposium.techtarget.com/html/agenda.html?Offer=JSajaxpost302">full agenda</a> is available online, but here's a sneak peek of the 5 most popular sessions being presented at TSSJS:</p>
<p>1. <a href="http://javasymposium.techtarget.com/html/frameworks.html?Offer=JSajaxpost302#JGrelleSpring">Building Next-Generation Web Applications with the Spring 3.0 Web Stack</a> with Jeremy Grelle, Senior Software Engineer with SpringSource</p>
<p>2. <a href="http://javasymposium.techtarget.com/html/tools_tech.html?Offer=JSajaxpost302#RJohnsonAdv">Spring for the Advanced Java Developer</a> with Rod Johnson, Creator of Spring</p>
<p>3. <a href="http://javasymposium.techtarget.com/html/architecture.html?Offer=JSajaxpost302#JKernArch">Just Enough Early Architecture to Guide Development</a> with Jon Kern, Co-author, <em>The Agile Manifesto</em></p>
<p>4. <a href="http://javasymposium.techtarget.com/html/frameworks.html?Offer=JSajaxpost302#EBernardHibernate">Hibernate Search: Finding Data, You Deserve Better</a> with Emmanuel Bernard, Lead Developer of Hibernate Search</p>
<p>5. <a href="http://javasymposium.techtarget.com/html/soa.html?Offer=JSajaxpost302#HKeslerSOA">Navigating the SOA Mine Field Optimized Application Architectures</a> with Heath Kesler, an open source software evangelist</p>
<p>If you'd like to attend simply <a href="http://javasymposium.techtarget.com/html/register.html?Offer=JSajaxpost302">register</a> with the code <strong>AJAXIAN</strong> to take $100 off the registration fee.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/the-most-popular-sessions-at-theserverside-java-symposium/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ghosts in the machine &#8211; avoid using window.sun in Firefox as it starts the Java engine!</title>
		<link>http://ajaxian.com/archives/ghosts-in-the-machine-avoid-using-windowsun-in-firefox-as-it-starts-the-java-engine</link>
		<comments>http://ajaxian.com/archives/ghosts-in-the-machine-avoid-using-windowsun-in-firefox-as-it-starts-the-java-engine#comments</comments>
		<pubDate>Fri, 27 Feb 2009 07:18:53 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[liveconnect]]></category>
		<category><![CDATA[vm]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6136</guid>
		<description><![CDATA[Sometimes you find leftovers of old technology in browsers that blow your mind. One of these "ghost in the machine" problems exists in Firefox: if you use window.sun or function sun() in JavaScript you effectively start the Java VM. There are a few "magic" properties on Mozilla's DOMWindow interface for supporting LiveConnect that will initialize <a href="http://ajaxian.com/archives/ghosts-in-the-machine-avoid-using-windowsun-in-firefox-as-it-starts-the-java-engine">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes you find leftovers of old technology in browsers that blow your mind. One of these "ghost in the machine" problems exists in Firefox: if you use <code>window.sun</code> or <code>function sun()</code> in JavaScript you effectively <a href="http://code.google.com/p/doctype/wiki/ArticleHereComesTheSun">start the Java VM</a>.</p>
<blockquote><p>There are a few "magic" properties on Mozilla's DOMWindow interface for supporting LiveConnect that will initialize the Java plugin and all the baggage that comes with it (which, with modern Java plugins, means launching java.exe as a subprocess). Looking up these properties on the window object is all it takes. </p></blockquote>
<p>There are a few more of these still <a href="http://mxr.mozilla.org/firefox/source/dom/src/base/nsDOMClassInfo.h#318" rel="nofollow">in the Mozilla source code</a> and they are part of the old <a href="https://developer.mozilla.org/en/LiveConnect">Netscape LiveConnect</a> engine. They are: </p>
<ul>
<li><tt>java</tt> </li>
<li><tt>Packages</tt> </li>
<li><tt>netscape</tt> </li>
<li><tt>sun</tt> </li>
<li><tt>JavaClass</tt> </li>
<li><tt>JavaArray</tt> </li>
<li><tt>JavaMember</tt> </li>
</ul>
<p>Avoid these at all cost lest you want the performance of your JavaScript to be like a Java Applet.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ghosts-in-the-machine-avoid-using-windowsun-in-firefox-as-it-starts-the-java-engine/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ajaxian Offer: $200 off expires this Friday</title>
		<link>http://ajaxian.com/archives/ajaxian-offer-200-off-expires-this-friday</link>
		<comments>http://ajaxian.com/archives/ajaxian-offer-200-off-expires-this-friday#comments</comments>
		<pubDate>Mon, 09 Feb 2009 19:01:40 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Section]]></category>
		<category><![CDATA[Topic]]></category>
		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5911</guid>
		<description><![CDATA[This Friday is the LAST CHANCE for Ajaxian readers to save $200 off TheServerSide Java Symposium, an event hosted by our sister site TheServerSide.com. Every little bit helps in this economy - register today with the code AJAXIAN to pay only $1495 for the conference, coming to Las Vegas March 18-20. You don't want to miss: <a href="http://ajaxian.com/archives/ajaxian-offer-200-off-expires-this-friday">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>This Friday is the LAST CHANCE for Ajaxian readers to save $200 off <a href="http://javasymposium.techtarget.com/index.html?Offer=JSajaxpost209">TheServerSide Java Symposium</a>, an event hosted by our sister site TheServerSide.com.</p>
<p>Every little bit helps in this economy - <a title="http://javasymposium.techtarget.com/html/register.html?Offer=JS..." href="http://javasymposium.techtarget.com/html/register.html?Offer=JSajaxpost209">register today</a> with the code <strong>AJAXIAN</strong> to pay only $1495 for the conference, coming to Las Vegas March 18-20.</p>
<p>You don't want to miss:</p>
<ul type="disc">
<li><a href="http://javasymposium.techtarget.com/html/frameworks.html?Offer=JSajaxpost209#DGearyIntro">Intro</a> and <a href="http://javasymposium.techtarget.com/html/frameworks.html?Offer=JSajaxpost209#DGearyAdvanced">Advanced</a> sessions on Google Web Toolkit with David Geary, Author of <em>Google Web Toolkit Solutions</em></li>
<li><a href="http://javasymposium.techtarget.com/html/frameworks.html?Offer=JSajaxpost209#JWardFlex">Sexier Software with Java and Flex</a> with James Ward, Platform Evangelist, Adobe</li>
<li><a href="http://javasymposium.techtarget.com/html/tools_tech.html?Offer=JSajaxpost209#FCohenAjax">Identifying Browser Problems in Ajax Applications</a> with Frank Cohen, Founder of PushToTest</li>
<li><a title="http://javasymposium.techtarget.com/html/tools_tech.html" href="http://javasymposium.techtarget.com/html/tools_tech.html?Offer=JSajaxpost209#SDavisAtom">Atom: From Blogging to Data Syndication</a> with Scott Davis, Editor-in-chief of aboutGroovy.com</li>
<li><a title="http://javasymposium.techtarget.com/html/language.html#NSchuttaDSL" href="http://javasymposium.techtarget.com/html/language.html?Offer=JSajaxpost209#NSchuttaDSL">DSLs in JavaScript</a> with Nathaniel Schutta, Co-author of <em>Foundations in Ajax</em></li>
<li>And much more!</li>
</ul>
<p>View the <a href="http://javasymposium.techtarget.com/html/agenda.html?Offer=JSajaxpost209">complete agenda</a> and register to <a href="http://javasymposium.techtarget.com/html/register.html?Offer=JSajaxpost209">save $200.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ajaxian-offer-200-off-expires-this-friday/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CP2JavaWS: GWT like Cappuccino to Java remote services bridge</title>
		<link>http://ajaxian.com/archives/cp2javaws-gwt-like-cappuccino-to-java-remote-services-bridge</link>
		<comments>http://ajaxian.com/archives/cp2javaws-gwt-like-cappuccino-to-java-remote-services-bridge#comments</comments>
		<pubDate>Mon, 09 Feb 2009 10:40:56 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[cappuccino]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5903</guid>
		<description><![CDATA[Jerome Denanot has created CP2JavaWS, an open source "bridge between Cappuccino rich desktop applications and Java services deployed on a web server. It consists of a proxy (client side) and a servlet (server side), and manages parameters namespace, encoding, ordering and JSONP." Jerome told us more: Full objects graphs are supported for services method's arguments <a href="http://ajaxian.com/archives/cp2javaws-gwt-like-cappuccino-to-java-remote-services-bridge">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Jerome Denanot has created <a href="http://sourceforge.net/projects/cp2javaws/">CP2JavaWS</a>, an open source "bridge between <a href="http://cappuccino.org/">Cappuccino</a> rich desktop applications and Java services deployed on a web server. It consists of a proxy (client side) and a servlet (server side), and manages parameters namespace, encoding, ordering and JSONP."</p>
<p>Jerome told us more:</p>
<blockquote><p>
Full objects graphs are supported for services method's arguments and return (see provided example in the distribution), including nested collections (List and Map) and heterogeneous collection elements.<br />
Its use is as easy as with GWT (and does not require any generation step thanks to the Objective-J runtime - interpreter step at runtime).
</p></blockquote>
<p><b>Usage</b></p>
<p>On the client-side:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-11');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-11">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> endPoint = <span style="color:#006600; font-weight:bold;">&#91;</span>CP2JavaWSEndPoint</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">createForURL:@<span style="color: #3366CC;">"http://localhost:8080/CP2JavaWSServletTest/CP2JavaWSEndpoint1"</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> remoteService = <span style="color:#006600; font-weight:bold;">&#91;</span>endPoint proxyForJavaServiceInterface:@<span style="color: #3366CC;">"com.cp2javaws.demo.services.IDemoService1"</span> delegate:self sameDomain:<span style="color: #003366; font-weight: bold;">true</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#91;</span>remoteService method1:@<span style="color: #3366CC;">"arg1StringValue"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">andWithArg2:<span style="color:#800000;">2</span> andWithArg3:<span style="color: #003366; font-weight: bold;">new</span> Date<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> delegateRespHandler:@selector<span style="color:#006600; font-weight:bold;">&#40;</span>manageServiceMethod1Response:<span style="color:#006600; font-weight:bold;">&#41;</span> delegateFailHandler:@selector<span style="color:#006600; font-weight:bold;">&#40;</span>manageServiceMethod1Fail:<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>On the server-side:</p>
<p>Just subclass the provided CP2JavaWSJSONServlet servlet and implement the (abstract) method:</p>
<div class="igBar"><a href="javascript:showCodeTxt('java-12');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVA:</span>
<div id="java-12">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">protected</span> <a href="http://www.google.com/search?q=allinurl%3AObject+java.sun.com&#038;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Object</span></a> getService<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000000; font-weight: bold;">Class</span> serviceInterface<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>A mapping file (see provided example) has to be put on the server-side for custom objects (maps custom Objective-J objects classname to corresponding Java custom objects classname).</p>
<p><b>More info</b></p>
<ul>
<li><a href="http://sourceforge.net/docman/display_doc.php?docid=137096&#038;group_id=249667">Documentation and comparison with GWT</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=249667">Download, includes library and example</a></li>
<li><a href="http://sourceforge.net/forum/forum.php?forum_id=914256">Current release</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/cp2javaws-gwt-like-cappuccino-to-java-remote-services-bridge/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Special Offer for Ajaxian Readers: TheServerSide Java Symposium</title>
		<link>http://ajaxian.com/archives/special-offer-for-ajaxian-readers-theserverside-java-symposium</link>
		<comments>http://ajaxian.com/archives/special-offer-for-ajaxian-readers-theserverside-java-symposium#comments</comments>
		<pubDate>Mon, 05 Jan 2009 20:46:32 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5562</guid>
		<description><![CDATA[Hello Ajaxians! We're inviting all of the Java developers out there to an event organized by our sister site, TheServerSide.com, the Web's largest enterprise Java community. As a member of Ajaxian, you save an extra $100 off the registration fee with the code AJAXIAN. (Register before January 16 to save a total of $400 and <a href="http://ajaxian.com/archives/special-offer-for-ajaxian-readers-theserverside-java-symposium">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Hello Ajaxians!</p>
<p>We're inviting all of the Java developers out there to an event organized by our sister site, TheServerSide.com, the Web's largest enterprise Java community. As a member of Ajaxian, you save an extra $100 off the registration fee with the code <strong>AJAXIAN</strong>. (<a href="http://javasymposium.techtarget.com/html/register.html?Offer=JSajaxpost105">Register</a> before January 16 to save a total of $400 and get a free book!)</p>
<p><a href="http://javasymposium.techtarget.com/?Offer=JSajaxpost105">TheServerSide Java Symposium</a> explores current and emerging trends in enterprise Java and how they apply to your daily work. Choose from over 45 technical sessions on new technologies, best practices and practical tips from some of the brightest minds in the industry, including Rod Johnson, Neal Ford, Scott Davis and <a href="http://javasymposium.techtarget.com/html/speakers.html?Offer=JSajaxpost105">35 Java experts</a>.</p>
<p>Tracks include <a href="http://javasymposium.techtarget.com/html/frameworks.html?Offer=JSajaxpost105">Frameworks</a>, <a href="http://javasymposium.techtarget.com/html/architecture.html?Offer=JSajaxpost105">Architecture</a>, <a href="http://javasymposium.techtarget.com/html/soa.html?Offer=JSajaxpost105">SOA</a>, <a href="http://javasymposium.techtarget.com/html/language.html?Offer=JSajaxpost105">Language</a>, <a href="http://javasymposium.techtarget.com/html/tools_tech.html?Offer=JSajaxpost105">Tools and Techniques</a>.</p>
<p>Project and spec leads dive into:</p>
<ul>
<li>The latest features of Spring, JSF, Wicket, Tapestry, Google Web Toolkit and more frameworks.</li>
<li>New Java language features, such as EJB 3.1, Glassfish and JavaFX</li>
<li>Popular open source tools, including Eclipse, Maven, Lucene, soapUI, HtmlUnit for testing SOA, Ajax and RIAs.</li>
<li>Expert recommendations on the use of Groovy, Scala and JRuby</li>
<li>Building and maintaining a large-scale SOA</li>
<li>How to create and consume RESTful Web Services.</li>
<li>How and when to use an ESB.</li>
<li>Best practices and tools for optimizing performance and scalability.</li>
<li>And much more!</li>
</ul>
<p>View TheServerSide Java Symposium <a href="http://javasymposium.techtarget.com/html/agenda.html?Offer=JSajaxpost105">agenda</a> to see all of the sessions being presented. <a href="http://javasymposium.techtarget.com/html/register.html?Offer=JSajaxpost105">Register now</a> with the code <strong>AJAXIAN </strong>to save an extra $100 and to get a free book while supplies last.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/special-offer-for-ajaxian-readers-theserverside-java-symposium/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DWR 3.0 near final release with RC</title>
		<link>http://ajaxian.com/archives/dwr2rc</link>
		<comments>http://ajaxian.com/archives/dwr2rc#comments</comments>
		<pubDate>Fri, 19 Dec 2008 11:02:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Library]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5449</guid>
		<description><![CDATA[Joe Walker and team have announced the first RC for DWR 3.0. We asked Joe to tell us what is new: DWR now supports: varargs method overloading typed parameters binary file upload/download it has a set of new types it can marshall DWR will let you use JavaScript to implement Java interfaces (e.g. to register <a href="http://ajaxian.com/archives/dwr2rc">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Joe Walker and team have <a href="http://directwebremoting.org/blog/joe/2008/12/16/dwr_version_3_0_release_candidate_1.html">announced</a> the first RC for DWR 3.0. We asked Joe to tell us what is new:</p>
<blockquote><p>
DWR now supports:</p>
<ul>
<li>varargs</li>
<li>method overloading</li>
<li>typed parameters</li>
<li>binary file upload/download</li>
<li>it has a set of new types it can marshall</li>
</ul>
<p>DWR will let you use JavaScript to implement Java interfaces (e.g. to register a Listener interface to publish changes to waiting browsers using Reverse Ajax), we now have 3 modes to control resource usage and there is a more scalable Reverse Ajax layer.</p>
<p>There are new integrations with Dojo, TIBCO GI and Aptana Jaxer, and a new DOM manipulation library.</p>
<p>We have special asynchronous servlet support for Tomcat and Glassfish, and our Spring and Guice integrations have been beefed up.</p>
<p>We now support JSONP and JSON-RPC, and there's a whole bunch of etc thrown in for good measure too.</p>
<p>There is a <a href="http://directwebremoting.org/blog/joe/2008/12/16/dwr_version_3_0_release_candidate_1.html">more complete list at Joe's blog</a>, or you can just skip straight to the <a href="http://directwebremoting.org/dwr/download">download page</a>.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/dwr2rc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OilCan: Grease up your Android browser</title>
		<link>http://ajaxian.com/archives/oilcan</link>
		<comments>http://ajaxian.com/archives/oilcan#comments</comments>
		<pubDate>Wed, 17 Dec 2008 11:13:41 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5429</guid>
		<description><![CDATA[Jeffrey Sharkey has created OilCan a thin wrapper on top of the WebKit shipping on Android that allows you to install userscripts that allow you to access to Android "Intents". Intents are very nice abstractions that allow you to access large components and reuse them in different ways. Romain Guy has a nice post on <a href="http://ajaxian.com/archives/oilcan">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="600"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2378475&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2378475&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="600"></embed></object></p>
<p>Jeffrey Sharkey has created <a href="http://oilcan.jsharkey.org/">OilCan</a> a thin wrapper on top of the WebKit shipping on Android that allows you to install userscripts that allow you to access to Android "Intents".</p>
<p>Intents are very nice abstractions that allow you to access large components and reuse them in different ways. Romain Guy has a <a href="http://www.curious-creature.org/2008/12/15/android-can-i-use-this-intent/">nice post on them</a>.</p>
<blockquote><p>
OilCan lets you customize any website by inserting JavaScript to change the website and help it reach into the Android world using intents.</p>
<p>OilCan inserts some powerful buttons into normal websites, and that power comes from Android intents. We didn't write a barcode scanner or the radar app into OilCan, but using intents we can launch those apps with parameters. We can request the Barcode Scanner app to scan something and return the code to us, or launch the Radar app with a specific lat/lon.</p>
<p>Userscripts can do other cool stuff, like hide the navigation columns in Wikipedia to make it easier to view on small screens. This is a proof-of-concept for now, and will probably turn into a binary plugin for the default Browser in the future.
</p></blockquote>
<p>A nice piece from an example shows the intent call out:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-14');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-14">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> generate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000066; font-weight: bold;">item</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> helper = document.<span style="color: #006600;">createElement</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'input'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; helper.<span style="color: #006600;">type</span> = <span style="color: #3366CC;">'button'</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; helper.<span style="color: #006600;">value</span> = <span style="color: #3366CC;">'Scan barcode...'</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; helper.<span style="color: #006600;">addEventListener</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'click'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>event<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// use the intentHelper bridge to fire an intent to Barcode Scanner&nbsp; </span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// it's available in Market, or from http://code.google.com/p/zxing/&nbsp; </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> result = window.<span style="color: #006600;">intentHelper</span>.<span style="color: #006600;">startActivityForResult</span><span style="color:#006600; font-weight:bold;">&#40;</span>JSON.<span style="color: #006600;">stringify</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; action:<span style="color: #3366CC;">'com.google.zxing.client.android.SCAN'</span>,&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; category:<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color: #3366CC;">'CATEGORY_DEFAULT'</span><span style="color:#006600; font-weight:bold;">&#93;</span>&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// parse the result we get back, and read the barcode from the extras&nbsp; </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; result = JSON.<span style="color: #006600;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>result<span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">item</span>.<span style="color: #006600;">value</span> = result<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color: #3366CC;">'extras'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color: #3366CC;">'SCAN_RESULT'</span><span style="color:#006600; font-weight:bold;">&#93;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>, <span style="color: #003366; font-weight: bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> helper;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span>&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Very cool!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/oilcan/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Interfaces in JavaScript</title>
		<link>http://ajaxian.com/archives/interfaces-in-javascript</link>
		<comments>http://ajaxian.com/archives/interfaces-in-javascript#comments</comments>
		<pubDate>Tue, 16 Dec 2008 17:51:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5403</guid>
		<description><![CDATA[The UML diagram above is from Matt Prokes as he creates Java-like interfaces for JavaScript. He has a full example: An example of an object which requires an implementation of the interface. PLAIN TEXT JAVASCRIPT: &#160; //This code is valid, and the execution will be successful. function executeInterface1&#40;executeThis&#41;&#123; &#160; var castedIface = executeThis.cast&#40;'TestInterface'&#41;; &#160; castedIface.testMethod1&#40;1,2,3&#41;; <a href="http://ajaxian.com/archives/interfaces-in-javascript">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/interfaceexample.jpg" alt="" title="interfaceexample" width="500" height="271" class="alignnone size-full wp-image-5405" /></p>
<p>The UML diagram above is from Matt Prokes as he <a href="http://mattprokes.com/2008/11/17/fully-working-javascript-first-class-interfaces-are-possible/#comments">creates Java-like interfaces for JavaScript</a>.</p>
<p>He has a full example:</p>
<blockquote><p>
An example of an object which requires an implementation of the interface. </p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-18');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-18">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">//This code is valid, and the execution will be successful.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> executeInterface1<span style="color:#006600; font-weight:bold;">&#40;</span>executeThis<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">var</span> castedIface = executeThis.<span style="color: #006600;">cast</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'TestInterface'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; castedIface.<span style="color: #006600;">testMethod1</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">1</span>,<span style="color:#800000;">2</span>,<span style="color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">//This code is valid, but the execution will not be successful.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> executeInterface2<span style="color:#006600; font-weight:bold;">&#40;</span>executeThis<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">var</span> castedIface = executeThis.<span style="color: #006600;">cast</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'TestInterface'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; castedIface.<span style="color: #006600;">testMethod2</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">4</span>,<span style="color:#800000;">5</span>,<span style="color:#800000;">6</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Alright, lets instanciate, the objects and set them to variables. Feel free to type in the variables and take a look, on the firebug window! </p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-19');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-19">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">InitedTestObject = <span style="color: #003366; font-weight: bold;">new</span> TestObject<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">//variable not used in this example, but I thought I would still make it available!</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">CastedTestInterface = InitedTestObject.<span style="color: #006600;">cast</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'TestInterface'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Ok, so lets try it out! We wrap it all up in some simple div tags with onclick events. </p>
<div class="igBar"><a href="javascript:showCodeTxt('html-20');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-20">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">onclick=&quot;executeInterface1(InitedTestObject)&quot;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">onclick=&quot;executeInterface2(InitedTestObject)&quot;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/interfaces-in-javascript/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>AbstractCanvas: HTML Canvas and Java2D in one fell swoop</title>
		<link>http://ajaxian.com/archives/abstractcanvas</link>
		<comments>http://ajaxian.com/archives/abstractcanvas#comments</comments>
		<pubDate>Mon, 01 Dec 2008 12:09:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5262</guid>
		<description><![CDATA[Rodrigo Reyes has announced a new project called AbstractCanvas, a GWT project that sits on top of HTML Canvas and Java2D. The same code can thus run in the browser, or on the server. You can then write code such as: PLAIN TEXT JAVA: &#160; &#160;VerticalPanel vPanel = new VerticalPanel&#40;&#41;; &#160; &#160;CanvasPanelExt canvas1 = new <a href="http://ajaxian.com/archives/abstractcanvas">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://kornr.net/abstractcanvas/net.kornr.canvaschart.Demo/Demo.html"><img src="http://ajaxian.com/wp-content/uploads/abstractcanvas.png" alt="" title="Abstract Canvas" width="500" height="300" class="alignnone size-full wp-image-5263" /></a></p>
<p>Rodrigo Reyes has <a href="http://blog.kornr.net/index.php/2008/11/27/gwt-one-step-above-the-html-canvas">announced</a> a new project called <a href="http://code.google.com/p/abstractcanvas/">AbstractCanvas</a>, a GWT project that sits on top of HTML Canvas and Java2D.</p>
<p>The same code can thus run in the browser, or on the server.</p>
<p>You can then write code such as:</p>
<div class="igBar"><a href="javascript:showCodeTxt('java-22');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVA:</span>
<div id="java-22">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;VerticalPanel vPanel = <span style="color: #000000; font-weight: bold;">new</span> VerticalPanel<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;CanvasPanelExt canvas1 = <span style="color: #000000; font-weight: bold;">new</span> CanvasPanelExt<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">300</span>,<span style="color:#800000;">150</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;canvas1.<span style="color: #006600;">setFillStyle</span><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AColor+java.sun.com&#038;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Color</span></a>.<span style="color: #006600;">WHITE</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;canvas1.<span style="color: #006600;">setGlobalAlpha</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">1</span>.<span style="color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;canvas1.<span style="color: #006600;">fillRect</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">0</span>, <span style="color:#800000;">0</span>, canvas1.<span style="color: #006600;">getCoordWidth</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>, canvas1.<span style="color: #006600;">getCoordHeight</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;canvas1.<span style="color: #006600;">addCanvasPainter</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ColorTest<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #808080; font-style: italic;">// &lt;- Note the use of CanvasPainter here</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;canvas1.<span style="color: #006600;">addCanvasPainter</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> PathTest<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; &nbsp; &nbsp;&lt;- and here</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;vPanel.<span style="color: #006600;">add</span><span style="color:#006600; font-weight:bold;">&#40;</span>canvas1<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/abstractcanvas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Plugin 6 Update 10 Production Release</title>
		<link>http://ajaxian.com/archives/java-plugin-6</link>
		<comments>http://ajaxian.com/archives/java-plugin-6#comments</comments>
		<pubDate>Fri, 17 Oct 2008 05:01:54 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[applet]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4806</guid>
		<description><![CDATA[It really is plugin week isn't it. We had Flash and Silverlight, so it was time for Java to pop its head up from the shadows, and that is what happened with the production release of Java 6 Update 10. It has to be one of the worst version names, but a solid plugin release <a href="http://ajaxian.com/archives/java-plugin-6">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>It really is plugin week isn't it. We had Flash and Silverlight, so it was time for Java to pop its head up from the shadows, and that is what happened with the <a href="http://java.sun.com/javase/downloads/index.jsp">production release of Java 6 Update 10</a>. It has to be one of the worst version names, but a solid plugin release it is! We originally <a href="http://ajaxian.com/archives/ken-russell-on-the-new-java-plugin">sat down with Ken Russell</a> to talk about this version on October 18th, 2007.</p>
<p>Cote has some nice coverage via <a href="http://www.redmonk.com/cote/2008/10/16/danny-coward-interview/">his interview with Danny Coward</a>:</p>
<blockquote><p>
When I was in his neck of the woods last, I got the chance to talk with Sun’s <a href="http://blogs.sun.com/dannycoward/">Danny Coward</a>, the Chief Architect of Sun’s Client Software (that is, Java SE, Java ME, JavaFX and JavaCard), about <a href="http://java.sun.com/javase/6/webnotes/6u10.html">Java 6 Update 10</a>. That seems like kind of a narrow topic to speak to, but as Danny and I discuss, it’s a big release for Sun’s RIA and client-side (re-)push.</p>
<p>Along those lines, we spend a lot of time detailing the re-written plugin that’s used for Java applets and JavaFX, the improved installer and update experience, and other client side features like one of the new GUI look-n-feels, <a href="http://blogs.sun.com/CoreJavaTechTips/entry/swingset3_nimbus_and_java_se">Nimbus</a>.</p>
<p><a href="http://java.sun.com/javase/downloads/index.jsp">Update 10 is available now</a>.
</p>
</blockquote>
<p>I have to admit to not "getting" JavaFX, but the Java plugin features are great to see, and it is nice to see the final release.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/java-plugin-6/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>GWT 1.5 final release is shipped and out the door</title>
		<link>http://ajaxian.com/archives/gwt-15-final-release-is-shipped-and-out-the-door</link>
		<comments>http://ajaxian.com/archives/gwt-15-final-release-is-shipped-and-out-the-door#comments</comments>
		<pubDate>Fri, 29 Aug 2008 15:51:50 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Library]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4287</guid>
		<description><![CDATA[I have seen the GWT team working very hard indeed on GWT 1.5, and they must be very happy to see the final release shipped and complete: GWT 1.5 delivers what we think are an impressive number of improvements, about four hundred issues if you're counting. We're also happy that one of those is issue <a href="http://ajaxian.com/archives/gwt-15-final-release-is-shipped-and-out-the-door">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/gajaxianlextable.png" alt="" title="GWT Flex Table" width="500" height="296" class="alignnone size-full wp-image-4288" /></p>
<p>I have seen the GWT team working very hard indeed on GWT 1.5, and they must be very happy to see the final release <a href="http://googlewebtoolkit.blogspot.com/2008/08/gwt-15-now-available.html">shipped and complete</a>:</p>
<blockquote><p>
GWT 1.5 delivers what we think are an impressive number of improvements, about four hundred issues if you're counting. We're also happy that one of those is issue 168, our most-requested feature, Support for Java 5.
</p></blockquote>
<p>The high level new feature sets are:</p>
<ul>
<li>Java 5 language support and enhanced JRE emulation</li>
<li>Performance optimizations and easier JavaScript interop</li>
<li>Prettier widgets, better DOM, accessibility, and bi-di</li>
</ul>
<p>You can see a lot of this at work in the <a href="http://gwt.google.com/samples/Showcase/Showcase.html">showcase area</a>. There you will see all of the widgets and examples that come out of the box, and the community has developed even more for you. In particular, Ray Cromwell has some <a href="http://sites.google.com/site/io/gwt-extreme">great real world examples that he shares in his book and talk</a>.</p>
<p><a href="http://code.google.com/webtoolkit/">Download GWT</a> and take a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/gwt-15-final-release-is-shipped-and-out-the-door/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Putting together GWT and Spring</title>
		<link>http://ajaxian.com/archives/putting-together-gwt-and-spring</link>
		<comments>http://ajaxian.com/archives/putting-together-gwt-and-spring#comments</comments>
		<pubDate>Mon, 25 Aug 2008 12:51:07 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4193</guid>
		<description><![CDATA[Dave Kuhn has put together a comprehensive guide to piecing together GWT and Spring, a nice recipe for the Java heads among you. Dave starts out by detailing why you would want to do this, and how it changes the architecture of your application. He then gets to a tutorial that has you creating the <a href="http://ajaxian.com/archives/putting-together-gwt-and-spring">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/gwtrpccontrollerserviceanatomy.png" alt="" title="gwtrpccontrollerserviceanatomy" width="498" height="765" class="alignnone size-full wp-image-4194" /></p>
<p>Dave Kuhn has put together a <a href="http://technophiliac.wordpress.com/2008/08/24/giving-gwt-a-spring-in-its-step/">comprehensive guide to piecing together GWT and Spring</a>, a nice recipe for the Java heads among you.</p>
<p>Dave starts out by detailing why you would want to do this, and how it changes the architecture of your application.</p>
<p>He then gets to a tutorial that has you creating the project correctly, and configuring an actual service. Once you are done with the code, you need to setup hosted mode to point to a nice external tom cat via:</p>
<pre>
-out www GwtWisdom/GwtWisdom.html
-noserver
-port 8080
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/putting-together-gwt-and-spring/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Loom: Annotation based Java framework</title>
		<link>http://ajaxian.com/archives/loom-annotation-based-java-framework</link>
		<comments>http://ajaxian.com/archives/loom-annotation-based-java-framework#comments</comments>
		<pubDate>Wed, 02 Jul 2008 15:28:56 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/archives/loom-annotation-based-java-framework</guid>
		<description><![CDATA[Ignacio Coloma has announced Loom 1.0 RC 1. Loom is an annotation-based java web framework that includes a ton of new features in this release. After some selective process, these are the bits that could be of most interest for Ajax developers: Generates HTML 5 markup (with data-* fields), including CSS classes with the property <a href="http://ajaxian.com/archives/loom-annotation-based-java-framework">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Ignacio Coloma has announced <a href="http://loom.extrema-sistemas.org/">Loom 1.0 RC 1</a>. Loom is an annotation-based java web framework that includes a ton of new features in this release. After some selective process, these are the bits that could be of most interest for Ajax developers:</p>
<ul>
<li>Generates HTML 5 markup (with data-* fields), including CSS classes<br />
with the property type.
</li>
<li>Based on prototype
</li>
<li>An ever-growing list of (progressive-enhancement) web components,<br />
including: multiple file upload, tabs, menus...
</li>
<li>Dead-simple javascript validation library with i18n support.
</li>
<li>...which mimics the process at the server, in case javascript is disabled.
</li>
</ul>
<p>Just give it a try at <a href="http://loom.extrema-sistemas.com/loomdemo/ebanking/Mortgages.action?event=preEdit">the demo</a>. Try introducing invalid input, and check the sources by clicking the "View source" link at the top right of the page. Everything in the demo should work with javascript disabled, including multiple file upload.</p>
<p>The framework also includes a libraries repository which pulls debug/optimized javascript from the google CDN:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-26');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-26">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;">&lt;l :script resource=<span style="color: #ff0000;">"prototype"</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;">&lt;l :script resource=<span style="color: #ff0000;">"scriptaculous"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;<span style="color: #009900;">&lt;l :param <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"load"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"builder,effects"</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>/l&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>This snippet of code would translate into this, if development is disabled:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-27');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-27">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">src</span>=<span style="color: #ff0000;">"//ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">src</span>=<span style="color: #ff0000;">"//ajax.googleapis.com/ajax/libs/scriptaculous/1.8.1/scriptaculous.js?load=builder,effects"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Or this if not:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-28');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-28">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"/js/prototype-1.6.0/prototype-1.6.0.2-shrinkvars.js"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">src</span>=<span style="color: #ff0000;">"//ajax.googleapis.com/ajax/libs/scriptaculous/1.8.1/scriptaculous.js?load=builder,effects"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>More details about the framework are at <a href="http://loom.extrema-sistemas.org/documentation">the reference guide</a>. Ignacio would be grateful for any feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/loom-annotation-based-java-framework/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pivot: Swing++ as New Java-based RIA Platform?</title>
		<link>http://ajaxian.com/archives/pivot-swing-as-new-java-based-ria-platform</link>
		<comments>http://ajaxian.com/archives/pivot-swing-as-new-java-based-ria-platform#comments</comments>
		<pubDate>Fri, 13 Jun 2008 12:05:25 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3750</guid>
		<description><![CDATA[And now for something a little bit different on a Friday. Greg Brown from VMWare pointed us to the fruition of nearly a year's worth of R&#038;D: Pivot, a new GUI toolkit for Java. While traditionally Java Applets and the Web have mixed together about as well as concrete and peanut butter, the upcoming revised <a href="http://ajaxian.com/archives/pivot-swing-as-new-java-based-ria-platform">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>And now for something a little bit different on a Friday. Greg Brown from VMWare pointed us to the fruition of nearly a year's worth of R&#038;D: <a href="http://weblogs.java.net/blog/gkbrown/archive/2008/06/introducing_piv.html">Pivot, a new GUI toolkit for Java</a>.</p>
<p><img src="http://ajaxian.com/wp-content/images/pivot.png" alt="" border="0" width="509" height="715"/></p>
<p>While traditionally Java Applets and the Web have mixed together about as well as concrete and peanut butter, the <a href="http://java.sun.com/developer/technicalArticles/javase/java6u10/index.html">upcoming revised Java plug-in</a> might give a window for Java-based GUI toolkits to be of interest to Web folks.</p>
<p>While Pivot's source code is still forthcoming, a quick glance at its classes shows an architecture with a strong resemblance to Java's built-in Swing GUI toolkit, but with many of Swing's rough edges smoothed out. As a long-time Swing developer, I'd characterize it as attempt to create Swing++.</p>
<p>Similarities to Swing include a light-weight rendering model (i.e., it doesn't wrap native components), a nearly identical component contract, a very similar system of UI delegates, and a very similar event model. Differences include a cleaner API (by virtue of nixing direct interoperability with Java's ancient AWT toolkit), different approach to layout, fresh implementations of common GUI components, and a new collections framework (inspired by Java's collections framework but... different).</p>
<p><a href="http://www.thinlet.com/">Thinlet</a> is another, older alternate GUI toolkit for Java that draws its own components and targets Applet developers (though a new version is under development).</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/pivot-swing-as-new-java-based-ria-platform/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>crossdomain.xml, Java, and JNLP</title>
		<link>http://ajaxian.com/archives/crossdomainxml-java-and-jnlp</link>
		<comments>http://ajaxian.com/archives/crossdomainxml-java-and-jnlp#comments</comments>
		<pubDate>Tue, 03 Jun 2008 13:19:02 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3709</guid>
		<description><![CDATA[Joshua Marinacci has detailed how Java SE 6 update 10 supports the same crossdomain.xml that Flash supports, and how you can marry it with JNLP to allow you to do Applet mashups without permission dialogs. The applet security model, known as the sandbox, only lets applets connect to the webserver they were loaded from. They <a href="http://ajaxian.com/archives/crossdomainxml-java-and-jnlp">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Joshua Marinacci has detailed how Java SE 6 update 10 supports the same crossdomain.xml that Flash supports, and how you can marry it with JNLP to allow you to do Applet mashups without permission dialogs.</p>
<blockquote><p>
The applet security model, known as the sandbox, only lets applets connect to the webserver they were loaded from. They cannot connect to anywhere else unless they are signed. Signing is great when you need access to more than what is allowed inside the sandbox, but it has two problems: the user will receive an ugly warning dialog about the applet, and the applet will have full access to the user's computer. Full access is overkill when all you want to do is talk to a webservice on another server. Surely there is some middle ground between the sandbox and full access? Well now there is.
</p></blockquote>
<p>The key is supplying a backwards compatible way of tying to the new JNLP version:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-31');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-31">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/applet.html"><span style="color: #000000; font-weight: bold;">&lt;applet</span></a> <span style="color: #000066;">code</span>=<span style="color: #ff0000;">"photostrip.Applet"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">archive</span>=<span style="color: #ff0000;">"http://projects.joshy.org/demos/PhotoStrip/webstart/PhotoStrip.jar"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"400"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"200"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/param.html"><span style="color: #000000; font-weight: bold;">&lt;param</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"jnlp_href"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"http://projects.joshy.org/demos/PhotoStrip/photostrip.jnlp"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/param.html"><span style="color: #000000; font-weight: bold;">&lt;param</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"flickruser"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"31706743@N00"</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/param.html"><span style="color: #000000; font-weight: bold;">&lt;param</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"size"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"100"</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/param.html"><span style="color: #000000; font-weight: bold;">&lt;param</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"cols"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"4"</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/param.html"><span style="color: #000000; font-weight: bold;">&lt;param</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"rows"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"2"</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/applet&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Now the JNLP file points to the the unsigned jar:</p>
<div class="igBar"><a href="javascript:showCodeTxt('xml-32');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">XML:</span>
<div id="xml-32">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jnlp</span> <span style="color: #000066;">spec</span>=<span style="color: #ff0000;">"1.0+"</span> <span style="color: #000066;">codebase</span>=<span style="color: #ff0000;">""</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">""</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;information<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>PhotoStrip<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;vendor<span style="font-weight: bold; color: black;">&gt;</span></span></span>Joshua Marinacci<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/vendor<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;offline</span> -allowed <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/information<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;resources<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;j2se</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.5+"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://java.sun.com/products/autodl/j2se"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jar</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"unsigned/PhotoStrip.jar"</span> <span style="color: #000066;">main</span>=<span style="color: #ff0000;">"true"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Application Resources --&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/resources<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;applet</span> -desc </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"PhotoStrip"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #000066;">main-class</span>=<span style="color: #ff0000;">"photostrip.Applet"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"400"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"200"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/applet<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/jnlp<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Note: you should be aware of <a href="http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html">security issues with open cross domain files</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/crossdomainxml-java-and-jnlp/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SoundManager 2 Updates: Speed and Demos</title>
		<link>http://ajaxian.com/archives/soundmanager-2-updates-speed-and-demos</link>
		<comments>http://ajaxian.com/archives/soundmanager-2-updates-speed-and-demos#comments</comments>
		<pubDate>Tue, 27 May 2008 12:39:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Sound]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3684</guid>
		<description><![CDATA[Scott Schiller has updated one of our favourite libraries, SoundManager. Being able to simply play some audio from your Ajax applications can be great, as long as you don't use it gratuitously.... although we tend to do that a little in some of our demos :) We used SoundManager in our Wii Darts application. The <a href="http://ajaxian.com/archives/soundmanager-2-updates-speed-and-demos">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://schillmania.com/projects/soundmanager2/"><img src="http://ajaxian.com/wp-content/images/soundmanagerupdate.png" alt="SoundManager 2 update" border="0" width="524" height="338"/></a></p>
<p>Scott Schiller has updated one of our favourite libraries, <a href="http://schillmania.com/projects/soundmanager2/">SoundManager</a>. Being able to simply play some audio from your Ajax applications can be great, as long as you don't use it gratuitously.... although we tend to do that a little in some of our demos :)  We used SoundManager in our <a href="http://ajaxian.com/archives/wii-darts-powering-ajax-applications-with-wii-controllers">Wii Darts</a> application.</p>
<p>The new version has performance improvements so the sound happens a lot quicker, a few bugs are killed, but most of all you will see some really great demos to cover use cases from users such as "I just want to be able to click and play a MP3 link in-page."</p>
<p>Some of the cool new demos:</p>
<ul>
<li><a href="http://schillmania.com/projects/soundmanager2/demo/page-player/">Page as a playlist</a>: (Muxtape.com-style UI) with a few themes, load/play progress, scrub/seek within track, timing etc.</li>
<li><a href="http://schillmania.com/projects/soundmanager2/demo/play-mp3-links/">Play MP3s in-place</a> demo.</li>
</ul>
<p><a href="http://www.schillmania.com/projects/soundmanager2/download/soundmanagerv25b-20080525.zip">Download the latest library.</a></p>
<p>Oh, and you gotta love the Web 2.0 and Web 3.0 explanations of SoundManager ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/soundmanager-2-updates-speed-and-demos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

