<?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>Rich Internet Applications (RIA) &#187; Swing</title>
	<atom:link href="http://canoo.com/blog/category/swing/feed/" rel="self" type="application/rss+xml" />
	<link>http://canoo.com/blog</link>
	<description>Web 2.0 Technology Blog on Java RIA, AJAX and Flex</description>
	<lastBuildDate>Thu, 18 Mar 2010 08:42:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>J1 Session Blog: Swing Rocks &#8211; A Tribute to Filthy Rich Clients</title>
		<link>http://canoo.com/blog/2009/06/04/j1-session-blog-swing-rocks-a-tribute-to-filthy-rich-clients/</link>
		<comments>http://canoo.com/blog/2009/06/04/j1-session-blog-swing-rocks-a-tribute-to-filthy-rich-clients/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 20:12:08 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=409</guid>
		<description><![CDATA[The two speakers (Pär Sikö, Martin Gunnarsson) showed off an RSS reader (Feedjii) built with Swing which looked a lot like the pimped up applications of Romain Guy. They started off  by presenting some real world examples of horribly looking Swing applications. Then they revealed their recipe for cool looking Swing applications: subtle effects, smooth [...]]]></description>
			<content:encoded><![CDATA[<div>The two speakers (Pär Sikö, Martin Gunnarsson) showed off an RSS reader (Feedjii) built with Swing which looked a lot like the pimped up applications of Romain Guy. They started off  by presenting some real world examples of horribly looking Swing applications. Then they revealed their recipe for cool looking Swing applications: subtle effects, smooth animations, and custom components. For each ingredient they showed how surprisingly easy it is to implement it. They also covered the area of performance and gave a few hints on making a user interface really smooth. For this, developers have to look into: hardware acceleration flags, timing issues, caching images, image compatibility, and avoiding unnecessary transparency. They didn&#8217;t have a lot of material to talk about, though, and after 45 min they already started taking questions. Therefore, on the one hand I got confirmation again that one can build very nice user interfaces with Swing and it is not too hard provided a good UI designer is at hand. On the other hand I was slightly disappointed because I was expecting a lot more. BTW, there is a blog about developing Feedjii and it can be found here: <a href="http://www.swing-rocks.com/">http://www.swing-rocks.com/</a></div>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/04/j1-session-blog-swing-rocks-a-tribute-to-filthy-rich-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J1 Session Blog: Extreme GUI makeover: Hybrid Swing and JavaFX</title>
		<link>http://canoo.com/blog/2009/06/04/j1-session-blog-extreme-gui-makeover-hybrid-swing-and-javafx/</link>
		<comments>http://canoo.com/blog/2009/06/04/j1-session-blog-extreme-gui-makeover-hybrid-swing-and-javafx/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 12:19:38 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[GUI]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=404</guid>
		<description><![CDATA[
In the past years the Extreme GUI Makeover sessions proved extremely informative, entertaining and popular. Every year I was curious to see whether they were able to keep up to the level of the previous year or even top it. Last year the session showed first signs of wearing out. This year a completely new [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<div>In the past years the Extreme GUI Makeover sessions proved extremely informative, entertaining and popular. Every year I was curious to see whether they were able to keep up to the level of the previous year or even top it. Last year the session showed first signs of wearing out. This year a completely new team (Amy Fowler, Jasper Potts etc) took over from Romain Guy and Chet Haase. With JavaFX being a big topic at this years JavaOne it was quite obvious to use this for the makeover.</div>
<p></p>
<div>And they did a pretty good job by taking the Swing-based mail application of the 2006 session and employed JavaFX to pimp it up even more. It is obviously not too hard to integrate Swing components into a JavaFX user interface (the other way round is not really feasible). JavaFX is simply the stage and Swing components can be included as a node (after wrapping them into some kind of JavaFX component). However, hooking up the event handlers is fairly cumbersome and does not really scale for complex applications with lots of event handlers.</div>
<p></p>
<div>One highlight of the session was the address book of the mail application. They used JavaFX and Java2D to give a 3D impression of turning the pages with the mouse. Visually stunning although the user interface is totally impractical for everyday usage.</div>
<p></p>
<div>The culmination of the session was certainly their idea of junk mail removal. They were using an animation which launched a rocket and on impact the spam mail exploded and disappeared accordingly. Being both funny and pointless this also perfectly illustrated how easy it is to add animation to a Java application and how difficult it will be to enhance productivity of business applications by means of JavaFX.</div>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/04/j1-session-blog-extreme-gui-makeover-hybrid-swing-and-javafx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Canoo Fellow Dierk König</title>
		<link>http://canoo.com/blog/2009/06/04/interview-with-canoo-fellow-dierk-konig/</link>
		<comments>http://canoo.com/blog/2009/06/04/interview-with-canoo-fellow-dierk-konig/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 09:36:31 +0000</pubDate>
		<dc:creator>Felix Schrape</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[WebTest]]></category>
		<category><![CDATA[canoo]]></category>
		<category><![CDATA[Dierk König]]></category>
		<category><![CDATA[Groovs]]></category>
		<category><![CDATA[Webstest]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=401</guid>
		<description><![CDATA[ 
Scott Davis interviewed Dierk König, Canoo Fellow and Grails/Groovy-Evangelist for Thirsty Head at blip.tv. In the interview, Dierk gives an inside-view about new Grails improvements, about his JavaOne talk, JavaFX and the impact of Canoo Webtest. Enjoy this interesting chat about &#8220;beauty and code&#8221;!
 

 
]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>Scott Davis interviewed <strong>Dierk König</strong>, Canoo Fellow and Grails/Groovy-Evangelist for Thirsty Head at blip.tv. In the interview, Dierk gives an inside-view about new Grails improvements, about his JavaOne talk, JavaFX and the impact of Canoo Webtest. Enjoy this interesting chat about &#8220;beauty and code&#8221;!</p>
<p> </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AYGG0FqXyGY" /><embed type="application/x-shockwave-flash" width="480" height="390" src="http://blip.tv/play/AYGG0FqXyGY"></embed></object></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/04/interview-with-canoo-fellow-dierk-konig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canoo @ WJAX/SOACon 2008</title>
		<link>http://canoo.com/blog/2008/11/17/canoo-wjaxsoacon-2008/</link>
		<comments>http://canoo.com/blog/2008/11/17/canoo-wjaxsoacon-2008/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 09:11:32 +0000</pubDate>
		<dc:creator>andreas</dc:creator>
				<category><![CDATA[Canoo.net]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[JAX India]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java RIA]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Sample Apps]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[UltraLightClient]]></category>
		<category><![CDATA[W-JAX]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Why ULC?]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[canoo]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[RichInternetApplications]]></category>
		<category><![CDATA[ulc]]></category>
		<category><![CDATA[WJAX]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=314</guid>
		<description><![CDATA[This is just a quick note about the WJAX Java developer conference that take place last week in Munich.
The conference program was quite balanced and beside the main stream topics about SOA (ServiceOrientedArchitektur &#8211; represented by the SOACon conference), Spring, Application Security and OSGi there was a huge number of different topics, which were addressed [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick note about the WJAX Java developer conference that take place last week in Munich.</p>
<p>The conference program was quite balanced and beside the main stream topics about SOA (ServiceOrientedArchitektur &#8211; represented by the SOACon conference), Spring, Application Security and OSGi there was a huge number of different topics, which were addressed by several talks.</p>
<p>Most interesting from my point of view were following sessions:</p>
<ul>
<li>Keynote from Jonas Jacobi: Re-architecting the Web with HTML 5 Communication.</li>
<li>Talk from Karsten Lentzsch: Efficient design of swing UI&#8217;s.</li>
<li>Talk from Angelika Langer: Java programming in the age of multicore.</li>
<li>Talk from Dierk Koenig: RESTful JEE with Grails.</li>
</ul>
<p><a href="http://canoo.com/blog/wp-content/uploads/2008/11/img_8517.jpg"><img class="alignnone size-medium wp-image-315" title="Dirk Krampe at the canoo booth" src="http://canoo.com/blog/wp-content/uploads/2008/11/img_8517-300x209.jpg" alt="" width="300" height="209" /></a><br />
Canoo was exhibiting on a booth, which gave the great opportunity to present and talk about our products <a title="UltraLightClient (ULC)" href="http://canoo.com/ulc">UltraLightClient (ULC)</a>, the just released language application for the IPhone (using <a title="canoo.net" href="http://www.canoo.net">canoo.net</a>), our demo for the new <a title="JavaFX platform" href="http://www.musicpinboard.com/">JavaFX platform</a> and <a title="fancy UltraLightClient / Swing rich client applications" href="http://www.canoo.com/ulc/demos/onlineshop.html">fancy UltraLightClient / Swing rich client applications</a>. In addition Canoo members used the presence to keep in touch with existing costumers, contact new ones or presented the company to potential new staff members.</p>
<p><strong>Canoo Online Quiz </strong></p>
<p>All the visitors on the booth and all other interested software developers had and still have the possibility to join an online quiz. Its possible to win an iPod touch or one of ten &#8216;Groovy in Action&#8217; books. The quiz can be found at <a title="www.canoo.com/quiz" href="http://www.canoo.com/quiz">www.canoo.com/quiz</a> and will end at the 30.11.2008.</p>
<p><a href="http://canoo.com/blog/wp-content/uploads/2008/11/img_8540_24.jpg"><img class="alignnone size-medium wp-image-320" title="Dierk König" src="http://canoo.com/blog/wp-content/uploads/2008/11/img_8540_24-255x300.jpg" alt="" width="255" height="300" /></a></p>
<p>Dierk König, Canoo fellow and author of the &#8216;Groovy in Action&#8217; book, was holding a groovy workshop and was giving a talk about RESTful JEE with Grails.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2008/11/17/canoo-wjaxsoacon-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scene Graph library announced at JavaPolis 2007</title>
		<link>http://canoo.com/blog/2007/12/13/scene-graph-library-announced-at-javapolis-2007/</link>
		<comments>http://canoo.com/blog/2007/12/13/scene-graph-library-announced-at-javapolis-2007/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 15:55:23 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Javapolis]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/2007/12/13/scene-graph-library-announced-at-javapolis-2007/</guid>
		<description><![CDATA[One of the many interesting talks I attended at the JavaPolis 2007 conference was the Swinging RIA talk. At the end of the talk Chet Haase announced the brand new Java Scene Graph library. Scene Graph gives you a new way to implement your visual output in Swing. It will replace the Jazz library that [...]]]></description>
			<content:encoded><![CDATA[<p>One of the many interesting talks I attended at the <a target="_blank" title="JavaPolis 2007" href="http://www.javapolis.com/confluence/display/JP07/Home">JavaPolis 2007</a> conference was the <a target="_blank" href="http://www.javapolis.com/confluence/display/JP07/Swinging+RIA">Swinging RIA</a> talk. At the end of the talk <a target="_blank" href="http://weblogs.java.net/blog/chet/">Chet Haase</a> announced the brand new Java <a target="_blank" href="https://scenegraph.dev.java.net/">Scene Graph</a> library. Scene Graph gives you a new way to implement your visual output in Swing. It will replace the Jazz library that provides the Java2D stuff in the current <a target="_blank" href="https://openjfx.dev.java.net/">JavaFX</a> implementation. In the current release, the API is a little bit verbose but I expect this to change as the API is not final yet.</p>
<p><img id="image167" src="http://canoo.com/blog/wp-content/uploads/2007/12/scenegraphsnippet.png" alt="Screen Graph Snippet" /></p>
<p>How does Scene Graph work? With Scene Graph, instead of subclassing a Swing component and providing your Java2D drawing instructions in a custom <em>paint()</em> method, you build up a data structure that declares your visual output, i.e old Java2D is the procedural approach to do graphics, whereas Scene Graph is the declarative approach.</p>
<p>How does this look in practice? In Scene Graph you amazingly build up a scene graph! Each scene graph is composed of nodes and each node represents a graphics operation, e.g.</p>
<ul>
<li>Painting a primitive</li>
<li>Performing an effect</li>
<li>Doing a transformation</li>
<li>Playing an animation</li>
</ul>
<p>So, for painting text, instead of</p>
<p><code> protected void paintComponent(Graphics g) {<br />
&nbsp;&nbsp;super.paintComponent(g);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;Graphics2D g2 = (Graphics2D) g.create();<br />
&nbsp;&nbsp;g2.setFont(new Font(&quot;Arial&quot;, Font.BOLD, 128));<br />
&nbsp;&nbsp;g2.setRenderingHint(KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_ON);<br />
&nbsp;&nbsp;g2.drawString(&quot;Java2D&quot;, 50, 150);<br />
&nbsp;&nbsp;g2.dispose();<br />
}</code></p>
<p>you will have</p>
<p><code>&nbsp;&nbsp;SGText result = new SGText();<br />
&nbsp;&nbsp;result.setText(&quot;Scene&quot;);<br />
&nbsp;&nbsp;result.setFont(new Font(&quot;Arial&quot;, Font.BOLD, 128));<br />
&nbsp;&nbsp;result.setAntialiasingHint(VALUE_TEXT_ANTIALIAS_ON);<br />
&nbsp;&nbsp;result.setLocation(new Point(50, 180));<br />
</code></p>
<p>My impression is that a programmer familiar with Java2D is immediately productive with the Scene Graph library. Great! And as a bonus he gets good effect and animation support for free! Wow! I hope this is just a first step to:</p>
<ul>
<li>Powerful effect libraries</li>
<li>Good animation libraries</li>
<li>Visual scene graph tools</li>
<li>Integrations into existing visual tools like PhotoShop</li>
<li>&#8230;</li>
</ul>
<p>Another thing that makes building good-looking Swing applications easy! Good!</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2007/12/13/scene-graph-library-announced-at-javapolis-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon Thursday</title>
		<link>http://canoo.com/blog/2007/06/28/jazoon-thursday/</link>
		<comments>http://canoo.com/blog/2007/06/28/jazoon-thursday/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 20:05:27 +0000</pubDate>
		<dc:creator>Sibylle</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java RIA]]></category>
		<category><![CDATA[Jazoon]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[UltraLightClient]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/2007/06/28/jazoon-thursday/</guid>
		<description><![CDATA[Not being able to attend the conference yesterday, I not only missed some interesting talks, but also Bruce Willis in &#8220;Die Hard 4&#8243; ;-(
In today&#8217;s keynote, Neal Gafter of Google talked about the possibilities of closures and how they can reduce the amount of boilerplate code and increase the readability of software. In addition, by [...]]]></description>
			<content:encoded><![CDATA[<p>Not being able to attend the conference yesterday, I not only missed some interesting talks, but also Bruce Willis in &#8220;Die Hard 4&#8243; ;-(</p>
<p>In today&#8217;s keynote, Neal Gafter of Google talked about the possibilities of closures and how they can reduce the amount of boilerplate code and increase the readability of software. In addition, by integrating closures into Java some language feature requests would change to library (API) feature requests, which have a much greater chance to become included. </p>
<p>Danny Coward from Sun showed the road map regarding Java SE and Java EE. He also explained how open source complements the JCP process. </p>
<p>Today was also filled by a lot of networking. That&#8217;s what I like about conferences, you meet new people. And people you only know by email suddenly get a face and a voice. </p>
<p>One of them was Kaspar von Gunten. He gave a talk about <a href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&#038;detail=740">Process-based Software Development</a> today. He showed how the process modelled approach can change the development of software towards end-user programming. And how this approach integrates with RIA. They also showed a <a href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&#038;detail=1460">Software Demo</a> of their product <a href="http://www.soreco.ch/ivy/pro/soreco/WebSite/index.jsp?navId=Products/xpertivy">Xpert.ivy</a>. The new release of Xpert.ivy is based on Eclipse and a graphical process designer. In addition it uses <a href="http://www.canoo.com/ulc/products/ulcvisualeditor.html">ULC Visual Editor</a> to generate the UI for the RIA front-end of these processes. Quite impressive. Xpert.ivy 4.0 will be shipped in 2008. </p>
<p>I didn&#8217;t get much out of the talk about <a href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&#038;detail=862">Jackrabbit</a>. I almost got discouraged to use Jackrabbit, being warned to be patient and reading the spec to get the information about how to use the API. </p>
<p>For the closing session they decided to do some <em>lightning speaks</em>: Everybody could speak up for 2 minutes. Neal Gafter started showing some optical illusions from the Java puzzler book. Then Felipe Gaucho presented his <a href="https://footprint.dev.java.net/">footprint.dev.java.net</a> project. We were then given the elevator story of the semantic web &#8211; basically everything is replaced with URI. Then somebody told us good reasons why to attend Jazoon 2008 (reasons like Euro 08 or because the weather will be better). And then we learned what we should read to become a better Java developer: </p>
<ul>
<li>Joe Armstrong&#8217;s thesis: Concurrency oriented languages.</li>
<li>Functional languages explained.</li>
<li>Understand your manager: One minute manager meets the monkeys.</li>
<li>Shell scripting (because there are so many bad shell scripts around)</li>
</ul>
<p>After that Gregory Murray showed how to impress managers: Do rapid prototyping with <a href="https://ajax.dev.java.net/">Jmaki</a>. Some other guys followed. I was actually pretty amazed how much you can say in 2 minutes.</p>
<p>That was about it. Thank you to all who made this event happen!</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2007/06/28/jazoon-thursday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mixing Ajax Swing and Flash: Demos and Source Code available</title>
		<link>http://canoo.com/blog/2007/06/27/mixing-ajax-swing-and-flash-demos-and-source-code-available/</link>
		<comments>http://canoo.com/blog/2007/06/27/mixing-ajax-swing-and-flash-demos-and-source-code-available/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 08:20:01 +0000</pubDate>
		<dc:creator>Sibylle</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java RIA]]></category>
		<category><![CDATA[Jazoon]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/2007/06/27/mixing-ajax-swing-and-flash-demos-and-source-code-available/</guid>
		<description><![CDATA[For all who were there, thanks for attending. For all those who couldn&#8217;t come, the slides are available now (in English):

if you are interested in the topic go have a look at the demos and check out the source code:
Demos:

Integration Flash in Swing: JDIC HybridStore
Integrating Ajax in Swing: Swing Google Map

The source code contains an [...]]]></description>
			<content:encoded><![CDATA[<p>For all who were there, thanks for attending. For all those who couldn&#8217;t come, the slides are available now (in English):</p>
<p><object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=70366&#038;doc=ajax-swing-flash-jazoon073545" width="425" height="348"><param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=70366&#038;doc=ajax-swing-flash-jazoon073545" /></object></p>
<p>if you are interested in the topic go have a look at the demos and check out the source code:</p>
<p>Demos:</p>
<ul>
<li>Integration Flash in Swing: <a href="http://people.canoo.com/jax07/jnlp/jdichybridstore.jnlp">JDIC HybridStore</a></li>
<li>Integrating Ajax in Swing: <a href="http://people.canoo.com/jax07/jnlp/swinggooglemap.jnlp">Swing Google Map</a></li>
</ul>
<p>The source code contains an Eclipse project file and a build script, which allows you to build it yourself (after having adjusted the build.properties):</p>
<ul>
<li>Flash in Swing: <a href="http://canoo.com/blog/wp-content/uploads/2007/06/hybridstore-src.zip" target="_blank">hybridstore-src.zip</a></li>
<li>Ajax in Swing: <a href="http://canoo.com/blog/wp-content/uploads/2007/06/swinggooglemap-src.zip" target="_blank">swinggooglemap-src.zip</a></li>
</ul>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2007/06/27/mixing-ajax-swing-and-flash-demos-and-source-code-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canoo at Jazoon 07</title>
		<link>http://canoo.com/blog/2007/06/21/canoo-at-jazoon-07/</link>
		<comments>http://canoo.com/blog/2007/06/21/canoo-at-jazoon-07/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 14:23:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/2007/06/21/canoo-at-jazoon-07/</guid>
		<description><![CDATA[
Sibylle Peter and Matthias Huber will be presenting at next week&#8217;s Jazoon in Zurich:
Tuesday, 26th June 2007, 16:40 &#8211; 17:20, Arena 5, Sihl City. 
on &#8220;Mixing AJAX, Swing, and Flash&#8221;
Currently a number of different Rich Internet Application (RIA) technologies are emerging, each with their own strengths and weaknesses. In many cases a combination of technologies [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&#038;detail=761"><img src="http://www.canoo.com/images/jazoon.gif" alt="Jazoon" /></a></p>
<p>Sibylle Peter and Matthias Huber will be presenting at <a href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&#038;detail=761">next week&#8217;s Jazoon in Zurich</a>:</p>
<p>Tuesday, 26th June 2007, 16:40 &#8211; 17:20, Arena 5, <a href="http://jazoon.com/en/travelandhotel/venue.html">Sihl City</a>. </p>
<p>on &#8220;Mixing AJAX, Swing, and Flash&#8221;</p>
<blockquote><p>Currently a number of different Rich Internet Application (RIA) technologies are emerging, each with their own strengths and weaknesses. In many cases a combination of technologies can be used to meet application requirements. This session shows, based on examples, how various technologies such as AJAX, Swing and Flash can be integrated into one application.</p></blockquote>
<p>See also these related entries:<br />
<a href="http://canoo.com/blog/2007/04/25/mixing-ajax-swing-and-flash-demos-available/">Mixing Ajax Swing and Flash &#8211; Slides and Demos available</a><br />
<a href="http://canoo.com/blog/2007/04/18/jax-07-talk-on-mixing-ria-technologies/">JAX 07 talk on Mixing RIA Technologies</a></p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2007/06/21/canoo-at-jazoon-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaOne 2007 – Day Four</title>
		<link>http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-four/</link>
		<comments>http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-four/#comments</comments>
		<pubDate>Sun, 13 May 2007 21:30:33 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-four/</guid>
		<description><![CDATA[Now for the final stretch of this year&#8217;s JavaOne conference: the pavilion closed on Thursday and we dismantled the booth pretty quickly. After half an hour everything was packed and we took our equipment back to the hotel. Hence, today I could really enjoy the conference without any booth duties.
&#8220;Comparing the Developer Experience of Java [...]]]></description>
			<content:encoded><![CDATA[<p>Now for the final stretch of this year&#8217;s JavaOne conference: the pavilion closed on Thursday and we dismantled the booth pretty quickly. After half an hour everything was packed and we took our equipment back to the hotel. Hence, today I could really enjoy the conference without any booth duties.</p>
<p>&#8220;<strong>Comparing the Developer Experience of Java EE 5.0, Ruby on Rails, and Grails</strong>&#8221; looked really promising to me. I  know Java EE from real programming practice, Rails and Grails just from reading some articles. The speaker, Thomas Daily, had a funny Australian accent and made quite a good show. He demonstrated how easy it is to create a simple CRUD application with all three technologies. For Java EE he had to use heavy machinery (i.e. NetBeans), though. He then presented some performance benchmarks which claimed that Java EE scales way better. The runner-up was Grails, followed by Rails. Tom Daily was somewhat biased towards Java EE (he doesn&#8217;t work for Sun for no reason), although his final recommendation was to use the tool that best fits the application. What I missed in this talk was some statements about maintainability. I would have liked to see how each of these environments coped with new requirements.</p>
<p>Hard core stuff was up next with &#8220;<strong>Cranking up Java Application Performance with DTrace</strong>&#8220;. DTrace allows to run instrumented code with zero impact on performance. At run time you can activate/deactivate probes in a live system. Right now, DTrace is only available on Solaris 10, but it will be available on at least one other operating system later this year. The Java VM is also instrumented, which allows to use DTrace at run-time for Java applications as well (Java 5 and newer). For Java 7 it is even planned to allow for statically adding probes to the application code. DTrace can produce a vast amount of tracing data in almost no time but the DTrace language helps to filter and aggregate this data. DTrace solves the developer&#8217;s dilemma: adding tracing statements is necessary for systemic analysis but even when switched off it usually has some impact on performance.</p>
<p>Java Champion Adam Bien gave a talk on &#8220;<strong>Java 6 Platform, Java DB, Swing, JNLP, Java Persistence API: The New Operating for Rich Internet Applications</strong>&#8220;. He covered a lot of ground in one hour and proved to be one of the überarchitects. Adam Bien strongly recommended to use business objects (i.e. real objects with state and behaviour) rather than SOA with dumb objects such as DTOs. The Java 6 platform and JPA make it even possible to run these business objects either on the server-side in an EJB container or on the client side outside of a container. However, I missed two topics. First, he talked a lot about the thin client challenge by which he did not mean real thin clients (i.e. presentation logic is on the server-side) but &#8220;thin clients&#8221; with just the presentation logic running on the client side. Some of these challenges do not come up with server-side presentation logic. Secondly, he should have at least mentioned approaches how to synchronize client-side database changes back to the server. Nevertheless, get hold of the slides and dive into this wealth of information.</p>
<p>I closed JavaOne 2007 with Neil Gafter&#8217;s &#8220;<strong>Closures for the Java Programming Language</strong>&#8220;. Neil Gafter is a brilliant speaker: perfect pace, well pronounced, deeply reflected &#8211; it&#8217;s just a pleasure to listen to him. He started with a number of cases where anonymous classes are not sufficient and argued how closures would help. Some of the code examples reminded me of my code and how I had to work around the limitations of anonymous classes. I used to develop in Smalltalk for quite some time and blocks are as natural as recursion (quoting Neil Gafter). He also argued how the Java API could be improved with closures. However, I am still undecided whether the Java language should be extended with closures. What once was a fairly small and clean language is gradually turning into a dreadnought. Java should have offered closures from the very beginning; adding it as an afterthought might have too much negative impact.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-four/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaOne 2007 – Day Three</title>
		<link>http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-three/</link>
		<comments>http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-three/#comments</comments>
		<pubDate>Sun, 13 May 2007 15:41:31 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-three/</guid>
		<description><![CDATA[I don&#8217;t get much sleep during JavaOne. Days are long even if you don&#8217;t attend any late night BOFs and the jetlag gets me out of bed pretty early. On the third day I start get feeling the lack of sleep and I am not too unhappy that JavaOne lasts only four days rather than [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t get much sleep during JavaOne. Days are long even if you don&#8217;t attend any late night BOFs and the jetlag gets me out of bed pretty early. On the third day I start get feeling the lack of sleep and I am not too unhappy that JavaOne lasts only four days rather than five as in previous years.</p>
<p>My first session in the morning was &#8220;<strong>Java Persistence API: Portability Do&#8217;s and Don&#8217;ts&#8221;</strong>. I have been using Solarmetric Kodo (now with BEA) for some years and although I am not using the latest version I am still quite pleased with the functionality. The latest version of Kodo also supports JPA and therefore I was curious how JPA can be used with portability in mind. Mike Keith explained how the JPA specification was specifically designed such that vendors could add specific functionality without interfering with other vendors. A developer can refer to vendor specifics both at the property and query level and it&#8217;s quite easy to support more than one vendor. It reminded me a lot of JDO which has similar capabilities. The only thing that&#8217;s missing is a portable approach for pessimistic locking.</p>
<p>&#8220;<strong>Designing Scalable High Performance Rich Clients: From the Trenches</strong>&#8221; was up next. Rob Ratcliffe took part in the development of a complex Swing-based application which monitors and controls a potentially large number of mobile sensors. The talk was less than convincing, his demo nice in the beginning but way too long so I left early. If somebody tries to teach to me the advantages and disadvantages of a singleton I am definitely in the wrong session.</p>
<p>I was looking forward to Ben Galbraith&#8217;s talk about &#8220;<strong>Debugging Swing Apps</strong>&#8221; and I wasn&#8217;t disappointed. Ben is a brilliant presenter, although he speaks incredibly fast which might be a challenge to some people in the audience. I admired the two sign language interpreters who somehow managed to keep up with his speed (they had to take turns every ten minutes). Ben explained how to use weak references for easy fixing of memory leaks and how AOP can help to identify code that leads to sluggish user interfaces. At the end he demonstrated a tool he wrote to experiment with Java 2D, e.g. trying out Java 2D calls interactively to gauge the impact of options on different platforms. To summarize, the talk was both filled with lots of useful information and entertaining. I was quite amused when Ben tried to dodge the Apple NDA while explaining some garbage collection features on Mac OS X.</p>
<p>The title of &#8220;<strong>Spaghetti Is Not Tasty: Architecting Full-Scale Swing Apps</strong>&#8221; was promising but did not meet my expectations. Rather than focusing on design problems of large Swing applications he spent too much time on OSGI which can solve some problems but not all of it. The only thing I took from this talk is that for large applications it is recommended to use a message bus to distribute events, which was also mentioned by Rob Ratcliffe in his talk. Wiring listeners to too many consumers does not scale and is hardly maintainable,</p>
<p>My last session was about &#8220;<strong>Garbage-Collection Friendly Programming</strong>&#8220;. Three garbage-collecting engineers from Sun laid out all the do&#8217;s and don&#8217;ts in Java to effectively deal with garbage collection:</p>
<ul>
<li>Don&#8217;t use object pools. Java&#8217;s memory management is usually way better than Java developers can implement object pools.</li>
<li>Don&#8217;t use System.gc(): The garbage collector knows better when to run, you don&#8217;t have to tell it.</li>
<li>Resizing arrays frequently can put more pressure on the garbage collector</li>
<li>Finalize always takes two garbage collection cycles and is therefore quite inefficient. For Java 6 the garbage collection team even convinced the AWT-team to remove all finalize methods from the AWT (and therefore Swing) components. If you need something like finalize you can either use a finally clause or weak references.</li>
<li>Don&#8217;t use soft references, because it is expensive for the garbage collector to reclaim objects referenced softly. Only use soft references for quick and small caches. This contradicts what Ben Galbraith said in his session when he recommended soft references for any kind of cache.</li>
</ul>
<p>If you have a chance to grab the slides, just do it. They contain numerous hints how to write clean and efficient code with respect to memory management.</p>
<p>The third day was kind of a mixed experience. I learned most in the sessions about Swing Debugging and Garbage Collection. With the other two Swing sessions the JavaOne program committee made some questionable decisions.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2007/05/13/javaone-2007-%e2%80%93-day-three/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
