<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2194501260274521490</atom:id><lastBuildDate>Sat, 07 Mar 2026 09:14:19 +0000</lastBuildDate><category>javafx</category><category>java</category><category>swing</category><category>ria</category><category>bejug</category><category>flex</category><category>jmf</category><category>flash</category><category>gwt</category><category>javaone</category><category>web</category><category>devoxx</category><category>git</category><category>jpa</category><category>mercurial</category><category>pursuit</category><category>wicket</category><title>blog.pursuit.be</title><description>Curious, creative, craftsman.</description><link>http://blog.pursuit.be/</link><managingEditor>noreply@blogger.com (Jo Voordeckers)</managingEditor><generator>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-3096607171436091124</guid><pubDate>Sun, 24 Oct 2010 14:20:00 +0000</pubDate><atom:updated>2010-10-24T18:03:58.596+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bejug</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">mercurial</category><title>BeJUG Distributed Versioning Tools in practice</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Last week &lt;a href=&quot;http://twitter.com/ljacomet&quot;&gt;Louis Jacomet&lt;/a&gt; and myself presented Distributed Version Tools in practice at &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.bejug.org/&quot;&gt;BeJUG&lt;/a&gt;,&amp;nbsp;we talked about the differences between the classic centralized versioning systems (CVS, SVN, ...) versus the modern distributed ones, next we compared GIT and Mercurial feature-wise and discussed new development workflows that DVCSes bring to the table.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;We were lucky to have a very vocal audience, they&#39;ve asked many interesting questions and gave great feedback. I was impressed by the number of people already experimenting with or wanting to move to GIT or Mercurial from SVN, clearly the dominant versioning system in used by the attendees. Someone wondered if in a team GIT and HG could be used together, while we didn&#39;t have an answer at the time, I can now confirm that a Mercurial extension to talk to GIT exists: &lt;a href=&quot;http://hg-git.github.com/&quot;&gt;http://hg-git.github.com/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;We hope you all had an interesting evening, if you&#39;re looking for some reference material or couldn&#39;t attend the session, here are the slides:&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;__ss_5543415&quot; style=&quot;width: 425px;&quot;&gt;&lt;strong style=&quot;display: block; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px; text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/pursuit/distributed-versioning-tools-bejug-2010&quot; title=&quot;Distributed Versioning Tools, BeJUG 2010&quot;&gt;Distributed Versioning Tools, BeJUG 2010&lt;/a&gt;&lt;/strong&gt;&lt;object height=&quot;355&quot; id=&quot;__sse5543415&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dvcs-bejug-101024081052-phpapp01&amp;rel=0&amp;stripped_title=distributed-versioning-tools-bejug-2010&amp;userName=pursuit&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse5543415&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dvcs-bejug-101024081052-phpapp01&amp;rel=0&amp;stripped_title=distributed-versioning-tools-bejug-2010&amp;userName=pursuit&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;div style=&quot;padding: 5px 0 12px;&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/pursuit&quot;&gt;pursuit&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</description><link>http://blog.pursuit.be/2010/10/bejug-distributed-versioning-tools-in.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-591986624197124920</guid><pubDate>Tue, 08 Jun 2010 20:11:00 +0000</pubDate><atom:updated>2010-06-08T23:26:26.508+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javafx</category><title>Make JavaFX applets smooth on Firefox for Mac</title><description>Lately when I was browsing websites with JavaFX applets I noticed the Java plugin would either not work, load slowly, crash or flicker when scrolling the page. This wasn&#39;t the case on Safari, so I looked at the &lt;i&gt;about:plugins&lt;/i&gt; URL which lists the currently installed plugins in Firefox.&lt;br /&gt;
&lt;br /&gt;
I noticed 2 unknown plugins to me called &lt;i&gt;MRJPlugin&lt;/i&gt; and &lt;i&gt;Java Embedding Plugin&lt;/i&gt;, a plugin that&#39;s apparently shipped with every Firefox on Mac OSX. Basically this plugin allows to use the latest Java version in the browser. Since Java 6 update 10 with it&#39;s Java Applet Plugin v2 is available for Mac OSX Snow Leopard, it&#39;s actually not necessary to have the J.E.P. plugin enabled. In fact Firefox prefers this plugin over the official Sun Java Applet Plugin v2 wich offers improved load times, browser integration, stability, etc.&lt;br /&gt;
&lt;br /&gt;
After I removed both plugins, Firefox was loading applets incredibly fast, near Flash load time performance. The applets don&#39;t flicker anymore when scrolling and so far haven&#39;t crashed on me.&lt;br /&gt;
&lt;br /&gt;
To remove the unnecessary plugins you should remove both the files &lt;i&gt;MRJPlugin.plugin&lt;/i&gt; and &lt;i&gt;JavaEmbeddingPlugin.bundle&lt;/i&gt; from &lt;i&gt;/Applications/Firefox.app/Contents/MacOS/Plugins&lt;/i&gt; .&lt;br /&gt;
To open the &lt;i&gt;Firefox.app &lt;/i&gt;bundle in &lt;i&gt;Finder&lt;/i&gt; you need to&lt;i&gt; Ctrl+Click &lt;/i&gt;and choose &lt;i&gt;Show Package Contents.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I hope this improves your JavaFX experience...</description><link>http://blog.pursuit.be/2010/06/make-javafx-applets-smooth-on-firefox.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-8158727398942543666</guid><pubDate>Tue, 09 Feb 2010 20:21:00 +0000</pubDate><atom:updated>2010-02-09T21:28:35.933+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><title>JSmooth Windows Service with custom JRE</title><description>For a customer I needed a solution to launch a standalone Java application as a Windows Service. After evaluating a number of solutions I ended up with &lt;i&gt;JSmooth 0.9.9-7&lt;/i&gt; &lt;a href=&quot;http://jsmooth.sourceforge.net/&quot;&gt;http://jsmooth.sourceforge.net/&lt;/a&gt; a very nice open source product with nice GUI to guide you through the process.&lt;br /&gt;
&lt;br /&gt;
Because the product of my customer depends on a specific JVM version we decided to bundle our JVM version with the product. &lt;i&gt;JSmooth&lt;/i&gt; supports bundling a custom JVM, however when running as a windows service it ignores this setting. It&#39;s been a while since the original author responded to forum messages or released a new version, so I decided to jump in the C++ code. I&#39;m nowhere near a C++ expert, but managed to create a simple workaround. &lt;br /&gt;
&lt;br /&gt;
My bugfix (source + skeleton binary) can be downloaded &lt;a href=&quot;https://pursuit.s3.amazonaws.com/jsmooth-0.9.9-7-bundle-jvm-fix.zip&quot;&gt;here.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Just drop the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;winservice.exe&lt;/span&gt; file in your &lt;i&gt;JSmooth&lt;/i&gt; installation under &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;/skeletons/winservice-wrapper/&lt;/span&gt; and recompile your service EXE. The service logfile should now be populated with messages indicating it&#39;s attempting to run your bundled VM and so on.&lt;br /&gt;
&lt;br /&gt;
Enjoy!</description><link>http://blog.pursuit.be/2010/02/jsmooth-windows-service-with-custom-jre.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-7479810385807435083</guid><pubDate>Thu, 20 Aug 2009 18:49:00 +0000</pubDate><atom:updated>2009-08-20T20:49:25.870+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javafx</category><category domain="http://www.blogger.com/atom/ns#">jmf</category><title>Video in Java, no more JMF please, use JavaFX!</title><description>I often get email from people asking me to help them with playing video in Java using JMF &amp;amp; FOBS, probably because of my post from last year: &lt;a href=&quot;http://javatrack.blogspot.com/2007/09/playing-flash-video-flv-with-java.html&quot;&gt;playing-flash-video-flv-with-java&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The reason why I&#39;m writing this is to make it clear to people that time has moved on since last year, and the long awaited Java Media Components framework which was annouced a few years ago has finally hit the shelves as the media playing capability built into JavaFX. So rest assured, you don&#39;t have to hack your way around JMF to integrate FFMPEG to play all your movies.&lt;br /&gt;
&lt;br /&gt;
Just follow &lt;a href=&quot;http://javafx.com/samples/&quot;&gt;this link to the JavaFX samples website&lt;/a&gt;, there are plenty of better ways to play video in Java than a year ago. But you&#39;d have to use JavaFX for that, don&#39;t worry JavaFX is simple and runs under Java so it integrates well with a regular Java app/applet.</description><link>http://blog.pursuit.be/2009/08/video-in-java-no-more-jmf-please-use.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>9</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-8591652748834959109</guid><pubDate>Thu, 20 Aug 2009 18:34:00 +0000</pubDate><atom:updated>2009-08-20T20:38:09.350+02:00</atom:updated><title>Eclipse XML DetailFormatter</title><description>Having had to work with XML a lot for a current project I was tired of drilling down the DOM objects in Eclipse&#39;s debugger so I went looking on the net for an Eclipse debug detail formatter and found one &lt;a href=&quot;http://www.howardism.org/Technical/Eclipse/Eclipse_Detail_Formatter.html&quot;&gt;here&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
I do had to remove a few lines to get it to work so here is my version, enjoy formatted XML tags from a DOM tree: &lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;if (this == null) return null;

javax.xml.transform.TransformerFactory tf = javax.xml.transform.TransformerFactory.newInstance(); 

javax.xml.transform.Transformer transformer = tf.newTransformer();

transformer.setOutputProperty( javax.xml.transform.OutputKeys.METHOD, &quot;xml&quot;);
transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,&quot;yes&quot;);
transformer.setOutputProperty(&quot;{http://xml.apache.org/xslt}indent-amount&quot;, &quot;3&quot; );


javax.xml.transform.dom.DOMSource source = new javax.xml.transform.dom.DOMSource(this);
if (source == null) return &quot;Corrupted XML document: &quot; + this.toString();

java.io.StringWriter os = new java.io.StringWriter();
javax.xml.transform.stream.StreamResult result = new javax.xml.transform.stream.StreamResult(os);
transformer.transform(source,result);

return os.toString ();&lt;/pre&gt;</description><link>http://blog.pursuit.be/2009/08/eclipse-xml-detailformatter.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-2865097609535067977</guid><pubDate>Wed, 17 Jun 2009 00:06:00 +0000</pubDate><atom:updated>2009-06-17T02:06:43.432+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bejug</category><category domain="http://www.blogger.com/atom/ns#">devoxx</category><title>Devoxx Blended</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.devoxx.com/download/attachments/1706233/Devoxx09-smaller.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://www.devoxx.com/download/attachments/1706233/Devoxx09-smaller.jpg&quot; width=&quot;194&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Since I&#39;m member of the steering committe for the &lt;a href=&quot;http://www.devoxx.com/&quot;&gt;Devoxx&lt;/a&gt; 2009 conference it&#39;s my pleasure to inform you guys on what&#39;s comming...&lt;br /&gt;
&lt;br /&gt;
First of all this year&#39;s Devoxx is in NOVEMBER, yes 1 month earlier, from the 16th to the 20th, again at the excellent venue: Metropolis Antwerp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So far following speakers have confirmed:&lt;br /&gt;
&lt;ul style=&quot;font-family: inherit;&quot;&gt;&lt;li&gt;         &lt;span style=&quot;font-size: small;&quot;&gt;Chris Richardson - Cloud Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;John M Willis - Cloud Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Antonio Goncalves - JEE6 Author/Expert&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Erik Hatcher - Lucene in Action Author&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;         &lt;span style=&quot;font-size: small;&quot;&gt; Emmanuel Bernard - Hibernate Search Founder/Author&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Tom Bayens - jBPM Founder&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Michael Kay - Java &amp;amp; XML Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Nicolai Josuttis - SOA Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Martijn Dashorst - Wicket Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Christophe Hermans - Spring ActionScript Founder&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Prof. Eric Steegmans - Generics Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Holly Cummins - JVM Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Kirk Pepperdine - Performance Geek&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Brian Goetz - Concurrency Lover &lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The JavaPosse - Podcast Experts&amp;nbsp;&amp;nbsp; :)&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Howard Lewis Ship - Tapestry Founder&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Paul Sandoz - JAX-RS Spec. Lead&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The JavaFX Team - RIA Lovers&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Bill Venners - Scala Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Romain Guy - Android Expert&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Pierre Bonnet - Master in Data Management &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Stephen Chin - co-author PRO JavaFX &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Jean-Francois Arcand - Comet Expert&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;For people interested in doing a session at Devoxx we have openend the Call For Papers application for BOF&#39;s Quickies and Tools in Action: &lt;a href=&quot;http://presentations.devoxx.com/com.javoxx.cfp.CFPMain/CFPMain.html&quot;&gt;CFP&lt;/a&gt; (firefox only)&lt;br /&gt;
&lt;br /&gt;
Hope to see you there! &lt;br /&gt;
&lt;a href=&quot;http://www.devoxx.com/&quot;&gt;www.devoxx.com&lt;/a&gt;</description><link>http://blog.pursuit.be/2009/06/devoxx-blended.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-2074272850305013876</guid><pubDate>Tue, 16 Jun 2009 23:42:00 +0000</pubDate><atom:updated>2009-06-17T01:46:56.944+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flex</category><category domain="http://www.blogger.com/atom/ns#">javafx</category><category domain="http://www.blogger.com/atom/ns#">ria</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>JavaFX, Flex and Silverlight are looking at the wrong enemy</title><description>HTML and JavaScript were never seen as a real competitor in the RIA space given it&#39;s current limitations, but with the new featureset for HTML5: canvas (2D drawing), sockets (P2P communication), multithreading (background processing), audio/video, local storage... it might very well become the RIA platform of choice given today&#39;s huge developer base.&lt;br /&gt;
HTML5 won&#39;t be released for a couple more years, but Google and Apple are betting heavily on it so &lt;strike&gt;Sun&lt;/strike&gt;Oracle, Adobe and MS better keep an eye on it as well.&lt;br /&gt;
Link: &lt;a href=&quot;http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9134422&quot;&gt;http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9134422&lt;/a&gt;</description><link>http://blog.pursuit.be/2009/06/javafx-flex-and-silverlights-are.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-8752110783981170837</guid><pubDate>Sat, 13 Jun 2009 23:45:00 +0000</pubDate><atom:updated>2009-06-14T01:45:43.359+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">swing</category><category domain="http://www.blogger.com/atom/ns#">web</category><category domain="http://www.blogger.com/atom/ns#">wicket</category><title>Wicket, Java web development makes sense again</title><description>I&#39;ve been meaning to write about my experiences with &lt;a href=&quot;http://wicket.apache.org/&quot;&gt;Apache Wicket&lt;/a&gt; after having it used extensively for my latest project.&lt;br /&gt;
&lt;br /&gt;
So for this project we needed to write a web app with as few screens as possible, preferably a single document interface, keeping it very simple for the end user. The main target audience was the accountancy department, so it had to be keyboard driven. On top of that coming from an MS Access app, the users were expecting autocompletion and immediate validation-feedback.&lt;br /&gt;
&lt;br /&gt;
Given these facts as a Java developer I was immediately thinking: Swing or Flex. &lt;i&gt;No JavaFX still wasn&#39;t released at the time we started prototyping.&lt;/i&gt;&lt;br /&gt;
Unfortunately our client was unwilling to start with a new client technology involving browser plugins and the possible sideeffects of this on the already overworked helpdesk.&lt;br /&gt;
&lt;br /&gt;
So on we went looking for the best matching web technology... &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;SpringMVC&lt;/span&gt; - the current standard web technology at that client. Although not a terrible web framework, the single document interface requirement, doesn&#39;t quite fit the SpringMVC Action based model. Secondly there aren&#39;t any AJAX components, unless you&#39;d integrate third party JS libraries, something we wanted to avoid as much as possible.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;JSF&lt;/span&gt; - being the new Java web standard for a while now has gained quite some traction on the job market. Being component based was one of the main reasons why we considered JSF, but with all the complexities that JSF development brings and all extra frameworks built around it like Facelets, RichFaces, Seam and even Spring to getting JSF to be productive and developer friendly didn&#39;t reassured my team we could deliver an approriate solution in time. Unfortunately we didn&#39;t have experience with JSF and from the experiences on the web we were quite sceptical.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;GWT&lt;/span&gt; - Having used GWT for a proof of concept at a past client I was well aware of it&#39;s capabilities, but also it&#39;s weaknesses. GWT has undergone some major changes since it was released a few years ago. With that a lot of component libraries built around it have come and gone as well. Although in the early days the standard GWT components were pretty basic, the recent 1.6 release shows a big improvement in this area. So today it might have been a valid solution for our problem, but at the time of the project we were still facing the questionable components problem. Because GWT also involves a different development strategy and still has a poor Maven integration (also a standard at the client) we chose to go with option nr 4.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Wicket&lt;/span&gt; - a component based web framework that has been around since 2004 and since long has most of the features JSF 2.0 will maybe have by the end of this year. Given the history of the project, the many positive experiences mentioned in blogs and a team with 2 experienced Swing developers made us decide to go with Wicket.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;So what makes Wicket so great.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;i&gt;Component based&lt;/i&gt; -&amp;nbsp; a lot of the UI in our app could be disected into reusable components, really made our life easier in the long run.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Swing like&lt;/i&gt; - event listener and form composition approach used by Wicket is very similar to how you&#39;d compose your UI in Swing. It&#39;s not very surprising given the founders of Wicket were Swing developers in a past life. So was 60% of our team.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;i&gt;XHTML templates&lt;/i&gt; - No messing around with JSPs and taglibs. Just plain old annotated HTML templates to describe your layout and components and then accompanying Java classes to define the behavior of your UI. This allowed for some very flexible components, processing and user-feedback.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Authentication / Authorization&lt;/i&gt; - support for plugging in your own authentication and authorization strategy at the component construction and rendering level. This allowed us to have @annotation-based declarative role-based authorization in our UIs.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;AJAX framework&lt;/i&gt; - AJAX has been built into the core of Wicket, supporting AJAX events and behaviors and tight integration in the rendering lifecycle allowing the developer to think about the real business issue at hand, Wicket takes care of the rest.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Form Validation&lt;/i&gt; - form and component level validation is built into the core of Wicket and available as part of the lifecycle, even integrated with AJAX behaviors and partial rendering so you don&#39;t have to worry about that as a developer.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Binding &lt;/i&gt;- Forms and datatables have strong support for binding to your POJO&#39;s or models, based on reflection. You can even go several object hierarchies deep. This also works on the datatable with out of the box sorting and filtering based on such nested paths.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Statefull&lt;/i&gt; - the pages and components you define contain their state as member variables, so you don&#39;t have to mess with the HTTPSession, Wicket takes care of this as well.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;Having developed for the web in JSP scriptlets/Servlets/Taglibs, Struts and SpringMVC always seemed like too much effort for what you get in return. It&#39;s also very confusing what is to happen next, every time I switch between one of those technologies I have to grab the manual again to understand the lifecycle. In Wicket it&#39;s straightforward, you instanciate your page class and add components to it, who have listeners and behaviors that you implement. These callback methods get called on the subsequent events... plain and simple!&lt;br /&gt;
&lt;br /&gt;
Working with Wicket has been a pleasure, we started off with just building our prototype screens with XHTML and a little bit of Wicket magic to bring them to life. We soon realized that we could continue to build upon that prototype without having to rewrite all our screens in JSPs like we would have in the other technologies. Our client was very pleased with the non-static prototype and the fact that we didn&#39;t had to redo the screens for the real app, this is usually where it goes wrong when developers have to work with a webdesigner for the UI.&lt;br /&gt;
We were able to advance so quickly and managed to build some reusable components that can be packaged as JARs to be included in new applications, giving them a head-start. &lt;br /&gt;
For a small team without knowledge of the framework it took us just a few days to grasp the basic concepts and worked our way through the rest while working out the different parts of the application, it&#39;s just so straightforward and there is a great sample&lt;br /&gt;
&lt;br /&gt;
Although Wicket is an excellent approach to web development in Java, there are a few things you should know...&lt;br /&gt;
As you are building a lot of view-logic in your Java code, with a lot of listeners and inner classes for callbacks etc, you really need to think &#39;&lt;i&gt;components&lt;/i&gt;&#39;.&lt;br /&gt;
All too often you start the next screen by copy-pasting from the last one. When if you think about it you realize it has about 50% of the same logic, which you should extract from both screens into an abstract component. If you fail to do this you get a messy codebase with a lot of code duplication and each developer tends to have it&#39;s own style so it can get messy if you don&#39;t work together and refactor in time. &lt;br /&gt;
But if you do this like we did, we ended up with a few handy base classes like AbstractFormTablePanel that we needed to give a few parameters and in about 20 lines of code we had a new master-detail CRUD screen for a new entity, with complete sorting, filtering and validation.&lt;br /&gt;
&lt;br /&gt;
Another weak point is that although Wicket has AJAX built-in the core framework that handles JavaScript events and partial page refreshes perfectly a lot of the AJAX components (datepicker, tree, ...) are third party (wicket-extensions project for example) and they are not of the same quality as the core framework. We noticed some JavaScript compatibility issues with some browsers, mostely IE as you would expect. Unfortunately that was our target browser, as is the case in most large organizations.This was also because the Wicket team focussed more on getting Wicket 1.4 out of the door instead of fixing bugs in the old stable branch. Later we noticed that a 1.3.6 version had been silently released where some of our issues were addressed. At least there is still an active community supporting Wicket after so many years and that for a relatively small userbase. On a sidenote Wicket is still slowly gaining job-marketshare:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-gJza0c42iUwGFFkQBLDpVzqOUIVsBhyphenhyphenV5kbI4a3zFTqIw61Xqhh4Jmk-e_cyf-p4BS89e5a9Elg_C_-BAfBBQwy8SHyCRen58IKX9fECUJ45y_9v1RKXOY8Y4yVbPLpaq9rb7xjwgU/s1600-h/jobgraph.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-gJza0c42iUwGFFkQBLDpVzqOUIVsBhyphenhyphenV5kbI4a3zFTqIw61Xqhh4Jmk-e_cyf-p4BS89e5a9Elg_C_-BAfBBQwy8SHyCRen58IKX9fECUJ45y_9v1RKXOY8Y4yVbPLpaq9rb7xjwgU/s400/jobgraph.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;*note: GWT is &#39;off the charts&#39; with about 175% growth... worth another look!&lt;br /&gt;
&lt;br /&gt;
All in all I would definately choose Wicket again, it just makes sense and I&#39;ve never had more fun developing for the web in Java!</description><link>http://blog.pursuit.be/2009/06/wicket-java-web-development-makes-sense.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-gJza0c42iUwGFFkQBLDpVzqOUIVsBhyphenhyphenV5kbI4a3zFTqIw61Xqhh4Jmk-e_cyf-p4BS89e5a9Elg_C_-BAfBBQwy8SHyCRen58IKX9fECUJ45y_9v1RKXOY8Y4yVbPLpaq9rb7xjwgU/s72-c/jobgraph.png" height="72" width="72"/><thr:total>34</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-920873575356689710</guid><pubDate>Sat, 13 Jun 2009 16:21:00 +0000</pubDate><atom:updated>2009-06-13T18:52:16.601+02:00</atom:updated><title>Safari 4 == Safari 4x crash a day?</title><description>I&#39;ve been using Safari 4 beta for a couple of weeks ever since I found out it supported Apple&#39;s Java 6 &#39;update 10&#39; developer preview. As a JavaFX developer this has been an important improvement we&#39;ve been waiting for since last year&#39;s JavaOne. &lt;div&gt;Since I&#39;m mostely a Firefox user for all it&#39;s great plugins, I wasn&#39;t thinking about switching to another browser anytime soon. But after using Safari 4 beta for a while I was pleased with the speed, stability and CPU &amp;amp; MEM consumption, the latter is an area where Firefox has some huge issues.&lt;div&gt;So since a few weeks I&#39;ve ditched Firefox and converted to Safari, and it has been great... until yesterday when Safari 4 has been updated to the final version. It has already crashed 4 times today, while just browsing GMail, blogs, etc...  Safari 4 beta never crashed...&lt;/div&gt;&lt;/div&gt;</description><link>http://blog.pursuit.be/2009/06/safari-4-safari-4x-crash-day.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-5736182217062206386</guid><pubDate>Wed, 10 Jun 2009 03:02:00 +0000</pubDate><atom:updated>2009-06-14T02:08:53.670+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javafx</category><category domain="http://www.blogger.com/atom/ns#">javaone</category><category domain="http://www.blogger.com/atom/ns#">ria</category><title>JavaOne 2009</title><description>Last week I attended JavaOne 2009, this time only as attendee, so no stressy last minute demo and slide editing. Like last year it was awesome, having all the people from the Java community in one place is just amazing, especially the hallway conversations and afterparties are my favorite part of the conference.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;div&gt;As expected JavaFX was big news again, with finally the unveiling of the &quot;&lt;a href=&quot;http://blogs.sun.com/tor/entry/finally_over&quot;&gt;designer tool&lt;/a&gt;&quot;, Tor Norbye did a few entertaining demos of this very promising tool. Next to that it was impressive to finally see JavaFX running on a few mobile devices (HTC Touch Diamond and a device from SonyEricsson) and a flatscreen TV by LG with more than acceptable performance. Although many speculated on JavaFX&#39;s future, Larry Ellison made a clear statement during the show that he likes JavaFX so much that he wants to continue the investment and even do a rewrite of OpenOffice with JavaFX. I&#39;m not sure if that&#39;s a good idea, but these statements took some pressure off of the shoulders of our friends at the JavaFX team.&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://blogs.sun.com/jonathan/entry/will_java_be_the_world&quot;&gt;Not very surprising&lt;/a&gt; was the unveiling of the Java Store, think Apple App Store for iPhone and iTouch, but then for any type of Java application. It seems like we are finally getting a component marketplace for us Java developers. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Last but not least a couple of days before JavaOne the next release of &lt;a href=&quot;http://javafx.com/&quot;&gt;JavaFX 1.2&lt;/a&gt; was released, with as biggest improvements: performance, documentation and API cleanup, &lt;a href=&quot;http://fxexperience.com/2009/06/caspian-skin/&quot;&gt;new components (codename Caspian)&lt;/a&gt; and &lt;a href=&quot;http://pleasingsoftware.blogspot.com/2009/06/this-is-test.html&quot;&gt;charting&lt;/a&gt;. For more info about what&#39;s new in 1.2 check out  &lt;a href=&quot;http://steveonjava.com/2009/05/31/javafx-1-2-top-10/&quot;&gt;Stephen Chin&#39;s blog&lt;/a&gt;. JavaFX engineers Richard Bair and Jasper Potts annouced a new blog: &lt;a href=&quot;http://fxexperience.com/&quot;&gt;FXExperience&lt;/a&gt; where they&#39;ll teach us some neat JavaFX tips and tricks.&lt;/div&gt;&lt;div&gt;It hasn&#39;t been communicated much publicly, Tor Norbye mentionned it briefly during the JavaPosse BOF, that a new graphic subsystem is in the works to replace good old AWT and Swing. This will give us an even faster startup time for JavaFX applets and better performance by directly interacting with the hardware of your platform. The ETA for all these JavaFX goodies is &#39;end of the year&#39;, so will we get a release at &lt;a href=&quot;http://devoxx.com/&quot;&gt;Devoxx&lt;/a&gt; as they did with JavaFX 1.0 last year? Hopefully they realize Devoxx is 1 month earlier this year ;-) &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;This year cloud is also big news. First we had Amazon AWS (EC2), then Google App Engine and now Sun is joining the party. Java developers will get an API to interact with Sun&#39;s cloud infrastructure and get access to virtualized hardware just like EC2 and with a similar pricing model. Very exciting times for startups!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div&gt;Like every year I try to improve my book collection... So this year I picked up &lt;a href=&quot;http://amzn.com/0132350882&quot;&gt;Clean Code&lt;/a&gt; by Robert C. Martin, an excellent book that teaches you best practices in writing clean (Java) code and how to keep it that way. Alhough you&#39;re probably already aware of most of the best practices described in the book, it reminds you why we&#39;re putting up with this effort. It&#39;s also usefull to have these arguments at hand when you need to convince your boss  or client that unit testing and refactoring is so important.  Next to Joshua Bloch&#39;s &lt;a href=&quot;http://amzn.com/0321356683&quot;&gt;Effective Java 2nd edition&lt;/a&gt;, my choice for book of the year.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://blog.pursuit.be/2009/06/javaone-2009.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total><georss:featurename>Moscone Center, San Francisco, CA 94103, USA</georss:featurename><georss:point>37.783894 -122.401252</georss:point><georss:box>37.7796545 -122.4085475 37.788133499999994 -122.3939565</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-8673166696004356048</guid><pubDate>Thu, 28 May 2009 18:30:00 +0000</pubDate><atom:updated>2009-06-13T16:14:50.470+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bejug</category><category domain="http://www.blogger.com/atom/ns#">javafx</category><category domain="http://www.blogger.com/atom/ns#">pursuit</category><category domain="http://www.blogger.com/atom/ns#">ria</category><title>BeJUG: JavaFX in Practice</title><description>&lt;div style=&quot;width: 425px; text-align: left;&quot; id=&quot;__ss_1502379&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Yesterday I presented a 2 hour session: &lt;a href=&quot;http://www.bejug.org/confluenceBeJUG/display/BeJUG/JavaFX+in+Practice&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;JavaFX in practice&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; for the Belgium Java Users Group. &lt;a href=&quot;http://pursuit.s3.amazonaws.com/BeJUG%20-%20JavaFX%20in%20Practice.zip&quot;&gt;Download the demos here&lt;/a&gt;, and here are the slides:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object style=&quot;margin: 0px;&quot; height=&quot;355&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javafxinpractice-090528132019-phpapp02&amp;amp;stripped_title=java-fx-in-practice&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javafxinpractice-090528132019-phpapp02&amp;amp;stripped_title=java-fx-in-practice&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; height=&quot;355&quot; width=&quot;425&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;It&#39;s been a very busy year for me: founding my consultancy company, looking for projects and partners, preparing talks for Devoxx and BeJUG and some very long working days completing the first project for Pursuit Consulting. Finally the rush is over and I&#39;ll have more time to spend contributing to the community. I&#39;m back... enjoy the slides!&lt;/span&gt;</description><link>http://blog.pursuit.be/2009/05/bejug-javafx-in-practice.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-3055086385636787763</guid><pubDate>Mon, 26 May 2008 20:11:00 +0000</pubDate><atom:updated>2009-06-10T05:43:04.094+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javafx</category><category domain="http://www.blogger.com/atom/ns#">javaone</category><category domain="http://www.blogger.com/atom/ns#">jmf</category><category domain="http://www.blogger.com/atom/ns#">ria</category><category domain="http://www.blogger.com/atom/ns#">swing</category><title>JavaOne 2008 was great</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;I finally found the time to sit down and write about my first JavaOne. I had to catch up a lot of work that piled up during the last few weeks before JavaOne while I was rushing to get the JavaFX version of Parleys.com out for the Technical Keynote of Bob Brewin. If you weren&#39;t there you can watch it again, it&#39;s around 1:09 when Stephan Janssen (founder or Parleys.com / JavaPolis) presents the application. &lt;embed id=&quot;w47fdfaaff6fbee07483b1ca777c337b6&quot; flashvars=&quot;autoplay=false&amp;amp;brand=embed&quot; src=&quot;http://www.ustream.tv/flash/video/396916&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;opaque&quot; allowfullscreen=&quot;true&quot; width=&quot;320&quot; height=&quot;260&quot;&gt;&lt;/embed&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;I know I promised code samples during my technical session, but I haven&#39;t had the time to write about them. This will happen over the next few weekends, so stay tuned! &lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;In the mean time, people interested in the slides from my session can watch them below.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;First of all I&#39;d like to thank all the people I met at JavaOne for the interesting conversations and invites to cool after parties. I had a great time, learned a lot and met some awesome people. I&#39;d also like to thank Sun for the opportunity to show my work during the keynote, it was a pleasure to see it on the big stage and to work closely with the people behind the scenes of the JavaFX Compiler, Runtime and GUI library to get it done in time.&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style=&quot;font-weight: normal; font-family: verdana;&quot;&gt;I went to an interesting presentation on &quot;Distributed client-server persistence with JPA&quot; by Alexander Snaps, another Belgian guy I met at the Sun&lt;/strong&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; BeLux party. With his framework he tries to solve a huge need in desktop Java&lt;/span&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;, transparant online/offline data persistence. I&#39;d like to see this evolve  into a full featured framework,  and maybe even contribute to this if I can find the time. Having developped a similar mechanism for a client, a flexible framework for this seems  like a huge timesaver for new client-server projects. Although some people believe everyone is online all the time, this is unfortunately not true in practice.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Jasper Potts and Richard Bair of the Nimbus and SwingLabs teams showed their latest work on the &quot;Nimbus L&amp;amp;F&quot;. It not only looks better out of the box, it&#39;s designed to be flexible for us and the designers. Hottest item of their show was the designer tool, I&#39;m anxiously waiting to try it out. It&#39;s basically a vector drawing tool that generates Java2D painter code to feed directly into Nimbus.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Ben Galbraith filled in for Shannon Hickey and Chris Campbell for &quot;Extreme GUI Makeover&quot; and he did a great job. He rewrote the GUI for a mainframe textbased financial application, with nice gradients, animations and rich usability improvements. All the sourcecode can be found &lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://code.google.com/p/extremeguimakeover08/&quot;&gt;here&lt;/a&gt;&lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://code.google.com/p/extremeguimakeover08/&quot;&gt;.&lt;/a&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt; Thumbs up! &lt;/span&gt;&lt;span style=&quot;font-family:verdana;font-size:100%;&quot;&gt;&lt;br /&gt;Finally I attended &quot;Filthy Rich Clients, Filthier Richer Clientier&quot; by our friends Romain Guy and Chet Haase. Although the technical content wasn&#39;t so surprising to me, it was a hilarious session. They floored me when they pulled off the Flex book trick, gotta give it to &#39;m, they have a huge sense of humor.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;font-size:100%;&quot;&gt;The JavaPosse BOF was great also, lotsa loughs and beer, it was fun!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;iframe style=&quot;font-family: verdana;&quot; src=&quot;http://docs.google.com/EmbedSlideshow?docid=ddjchfgv_135zd2s5gp&quot; width=&quot;410&quot; frameborder=&quot;0&quot; height=&quot;342&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Bottom line my first JavaOne was a great success, hope to see you all next year!&lt;/span&gt;</description><link>http://blog.pursuit.be/2008/05/javaone-2008-was-great.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-9219526008617655271</guid><pubDate>Sun, 06 Apr 2008 09:12:00 +0000</pubDate><atom:updated>2008-04-06T12:08:15.141+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">javafx</category><title>Java 6 update 10 (N) the war is on!</title><description>I&#39;ve downloaded &lt;a href=&quot;http://java.sun.com/javase/downloads/ea/6u10/plugin2/index.jsp&quot;&gt;Java 6u10 Early Access&lt;/a&gt; several days ago but it wasn&#39;t until today that I tested the new applet plugin in Firefox 3 to see if it could live up to my expectations. And I must admit... excellent job guys, two thumbs up!!&lt;br /&gt;&lt;br /&gt;The Applet features I appreciate the most (probably all):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Applet startup time with the quick starter is blazing fast and doesn&#39;t slow down the browser&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Applets run in their own JVM process and can be isolated to one JVM per applet (finally you can provide your applets with a sane VM and you can kill offending applets without killing your browser)&lt;/li&gt;&lt;li&gt;Support for JNLP (native libraries / custom JVM startup parameters like memory settings, hallelujah)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Customization of JVM launch feedback, no intrusive Sun logo if you want a clean integration (this was a personal request, thanks a lot!)&lt;/li&gt;&lt;li&gt;Improved Java - JavaScript communication (I foresee a bunch of Applet widgets :)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If you don&#39;t believe me, try this:  &lt;a href=&quot;http://download.java.net/javadesktop/plugin2/wwj/&quot;&gt;NASA world wind&lt;/a&gt; (a 3D earth in a webpage) or even &lt;a href=&quot;http://download.java.net/javadesktop/plugin2/jake2/&quot;&gt;Quake2 (Jake2)&lt;/a&gt; inside an Applet, no offline installation or drivers or libraries required, just click the link and start playing, insanely incredible!!&lt;br /&gt;&lt;br /&gt;Damn, this should have been applets way back in time, but now I truly believe the war for the next gen web platform is on! And again congrats Java 6 update N team, you guys did a hell of job!</description><link>http://blog.pursuit.be/2008/04/java-6-update-10-n-war-is-on.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-7228541797081518704</guid><pubDate>Tue, 01 Apr 2008 18:03:00 +0000</pubDate><atom:updated>2008-04-01T20:56:09.259+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">jpa</category><title>JPA not ready for desktop applications</title><description>&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://spreadsheets.google.com/pub?key=pQo8lJkpRQ_R-5Mg6NkYrQg&amp;amp;oid=1&amp;amp;output=image&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 286px; height: 263px;&quot; src=&quot;http://spreadsheets.google.com/pub?key=pQo8lJkpRQ_R-5Mg6NkYrQg&amp;amp;oid=1&amp;amp;output=image&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Ever since JPA was released I wanted to use it. Since I&#39;m working on a desktop application in my free time that needed some offline storage I immediately thought about using JPA for this.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;All I needed was a small database to bundle with my application, &lt;a href=&quot;http://hsqldb.org/&quot;&gt;HypersonicSQL (HSQLDB)&lt;/a&gt; is the all-java database I&#39;ve been using with great success for integration testcases for the past few years. It&#39;s only 640KB in size and doesn&#39;t require an installation. This means it can be used as a library in a WebStart or Applet application.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;For my needs HSQLDB + JPA is great, no more messing around with serializing objects to disk or using the Properties API. Using POJOs for user settings and caching online resources sounds great. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;However when looking for examples of using JPA in a desktop application I found very few and I soon figured out why...&lt;br /&gt;First I looked at the JPA provider I was familiar with from the J(2)EE world: &lt;a href=&quot;http://www.hibernate.org/&quot;&gt;Hibernate&lt;/a&gt;. After getting all it&#39;s dependencies I soon figured out why nobody uses JPA in a desktop application. &lt;span style=&quot;font-weight: bold;&quot;&gt;Although the JPA API is lightweight, the JPA Providers aren&#39;t as you can see in the graph on the side.&lt;/span&gt; The thing that shocked me the most is that all the providers (including dependencies) are at least 4 times the size of the SQL database. Too bad, because the API was designed to also be used in desktop applications and it could be a huge productivity boost, but these outrageous sizes don&#39;t make it good candidates for web-deployment.&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;JPA Provider developers should really think about the desktop application platform and make a serious effort to reduce it&#39;s library size and required dependencies!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://blog.pursuit.be/2008/04/jpa-not-ready-for-desktop-applications.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>9</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-2934276829111196889</guid><pubDate>Mon, 24 Mar 2008 19:58:00 +0000</pubDate><atom:updated>2008-03-24T21:42:45.681+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javafx</category><title>Compiled JavaFX plugin for Netbeans</title><description>Friday the Netbeans JavaFX plugin team &lt;a href=&quot;http://javafx.netbeans.org/servlets/ReadMsg?list=dev&amp;amp;msgNo=45&quot;&gt;released&lt;/a&gt; daily public builds of the JavaFX plugin for Compiled JavaFX script.&lt;br /&gt;&lt;br /&gt;You&#39;ll need the latest &lt;a href=&quot;http://bits.netbeans.org/download/trunk/nightly/latest/&quot;&gt;Netbeans 6.1 beta daily build&lt;/a&gt; to get it up and running.&lt;br /&gt;&lt;br /&gt;Then download the daily JavaFX plugin archive (ZIP or TGZ)  from their &lt;a href=&quot;http://deadlock.netbeans.org/hudson/job/Java_FX_NB_plugin_Trunk_daily/&quot;&gt;Hudson build server&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Install Netbeans as usual. &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Modify the Netbeans config file under [netbeans-install-dir]&lt;span style=&quot;font-weight: bold;&quot;&gt;/etc/netbeans.conf &lt;/span&gt;and include the &lt;span style=&quot;font-weight: bold;&quot;&gt;-J-da&lt;/span&gt; option inside the quotes for parameter: &lt;span style=&quot;font-weight: bold;&quot;&gt;netbeans_default_options&lt;/span&gt; If you don&#39;t the JavaFX compiler won&#39;t work because of a bug&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Unpack the JavaFX plugin archive&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Start Netbeans, go to Tools &gt; Plugins &gt; Download&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Click &lt;span style=&quot;font-weight: bold;&quot;&gt;add plugins...&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Select the &lt;span style=&quot;font-weight: bold;&quot;&gt;.NBM&lt;/span&gt; files you unpacked from the plugin archive&lt;/li&gt;&lt;/ul&gt;Optionally you can choose to use your own versions of the JavaFX Compiler libraries if you build your own version from SVN repository for example.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In Netbeans go to Tools &gt; Libraries&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Select &lt;span style=&quot;font-weight: bold;&quot;&gt;JavaFXUserLib&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Modify the provided &lt;span style=&quot;font-weight: bold;&quot;&gt;javafxc.jar&lt;/span&gt;,&lt;span style=&quot;font-weight: bold;&quot;&gt; javafxrt.jar &lt;/span&gt;and &lt;span style=&quot;font-weight: bold;&quot;&gt;Scenario.jar&lt;/span&gt; with the ones you prefer&lt;/li&gt;&lt;/ul&gt;That&#39;s it, now you can enjoy (for now): syntax highlighting and compiling JavaFX script from Netbeans. If you want to keep posted on this plugin send an empty mail to their mailing list &lt;a href=&quot;mailto:dev-subscribe@javafx.netbeans.org&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;dev-subscribe&lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-size:100%;&quot; &gt;@javafx.netbeans.org&lt;/span&gt;&lt;/a&gt;</description><link>http://blog.pursuit.be/2008/03/compiled-javafx-plugin-for-netbeans.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-5929356817634697174</guid><pubDate>Sat, 08 Mar 2008 12:49:00 +0000</pubDate><atom:updated>2008-03-08T13:52:39.977+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javafx</category><title>Exciting JavaFX</title><description>It has been a while since I blogged but there&#39;s a very good reason for that. Since a few months I&#39;m spending all my free time on a cool project to be showcased soon. I can&#39;t disclose too many details as off yet but I can tell it&#39;s a Rich Internet Application prototype written in JavaFX. It started out as a technology proof of concept but it&#39;s taking on the form of a real application. In the mean time without unveiling too much yet I can give some pointers and lessons learned while discovering the JavaFX language.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Getting started with JavaFX&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;When starting with JavaFX Script an easy way to start is to try one of the webstart demo&#39;s on the Chris Oliver &lt;a href=&quot;http://blogs.sun.com/chrisoliver/&quot;&gt;blog&lt;/a&gt;. Try out the links with JavaFX Pad, these allow you to modify the FX script code and get immediate feedback from the JavaFX interpreter. This way you get to know play with FX Scripting language, without really having to install anything.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At this point you need to know that the FX interpreter is a prototype so the FX Script syntax will be different in the final product of the JavaFX compiler. As most documentation and examples on the web (excluding the latest examples on &lt;a title=&quot;Jim Weaver&#39;s Blog&quot; href=&quot;http://learnjavafx.typepad.com/weblog/&quot; id=&quot;qwx-&quot;&gt;Jim Weaver&#39;s Blog&lt;/a&gt;) use the interpreter syntax and the FX Compiler is incomplete, it&#39;s best to get aquainted with the language like this and move on to the FX compiler understand how everything work.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;IDE&lt;/h3&gt; When developing in FX interpreter syntax you have the luxury of a Netbeans and Eclipse plugin to help you out with code completion, syntax highlighting, some javafxdoc and real-time script execution results. They can be found here &lt;a title=&quot;https://openjfx.dev.java.net/#downloads&quot; href=&quot;https://openjfx.dev.java.net/#downloads&quot; id=&quot;pwk7&quot;&gt;https://openjfx.dev.java.net/#downloads&lt;/a&gt;&lt;br /&gt;Getting started with Netbeans is explained here &lt;a title=&quot;https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html&quot; href=&quot;https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html&quot; id=&quot;f04a&quot;&gt;https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Documentation&lt;/h3&gt;When you get around playing with Chris&#39;s examples a good place to start looking for more answers on the language constructs is &lt;a title=&quot;https://openjfx.dev.java.net/JavaFX_Programming_Language.html&quot; href=&quot;https://openjfx.dev.java.net/JavaFX_Programming_Language.html&quot; id=&quot;w0f3&quot;&gt;https://openjfx.dev.java.net/JavaFX_Programming_Language.html&lt;/a&gt;&lt;br /&gt;and &lt;a title=&quot;https://openjfx.dev.java.net/Learning_More_About_JavaFX.html&quot; href=&quot;https://openjfx.dev.java.net/Learning_More_About_JavaFX.html&quot; id=&quot;i1nm&quot;&gt;https://openjfx.dev.java.net/Learning_More_About_JavaFX.html&lt;/a&gt;.&lt;br /&gt;The JavaFXDoc API for the FX Script classes can be found here &lt;a title=&quot;https://openjfx.dev.java.net/nonav/api/&quot; href=&quot;https://openjfx.dev.java.net/nonav/api/&quot; id=&quot;c:ej&quot;&gt;https://openjfx.dev.java.net/nonav/api/&lt;/a&gt;&lt;br /&gt;There&#39;s also a Wiki with a lot of JavaFX related information, examples, components, know issues, requests etc. on &lt;a title=&quot;http://jfx.wikia.com/wiki/Main_Page&quot; href=&quot;http://jfx.wikia.com/wiki/Main_Page&quot; id=&quot;seaz&quot;&gt;http://jfx.wikia.com/wiki/Main_Page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Forums&lt;/h3&gt;More and more people monitor and post regularly on the OpenJFX forums, it&#39;s a good place to ask for help for the FX interpreter syntax, the forums can be found at &lt;a title=&quot;http://forums.java.net/jive/category.jspa?categoryID=62&quot; href=&quot;http://forums.java.net/jive/category.jspa?categoryID=62&quot; id=&quot;gu24&quot;&gt;http://forums.java.net/jive/category.jspa?categoryID=62&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The compiler&lt;/h3&gt;If you really want to start working with the bleeding edge FX compiler under development you should subscribe to the OpenJFX Compiler mailinglist (dev@openjfx-compiler.dev.java.net), monitor their &lt;a title=&quot;JIRA&quot; href=&quot;http://openjfx.java.sun.com/jira/&quot; id=&quot;ggin&quot;&gt;JIRA&lt;/a&gt; issue tracker and SVN commits (commits@openjfx-compiler.dev.java.net). There isn&#39;t any documentation up to date on the compiler syntax yet, but you can look in the source and the numerous examples inside. There is however a dated &lt;a title=&quot;page on the Wiki&quot; href=&quot;http://jfx.wikia.com/wiki/Converting_to_the_New_Syntax&quot; id=&quot;zhk4&quot;&gt;page on the Wiki&lt;/a&gt; on the differences between the interpreter and compiler.&lt;br /&gt;As I&#39;m in the middle of such a conversion I started a shared &lt;a title=&quot;Google Docs page&quot; href=&quot;http://draft.blogger.com/Doc?id=ddjchfgv_4d7vs8wfp&quot; id=&quot;p0mi&quot;&gt;Google Docs page&lt;/a&gt; where I log all my issues and workarounds:  this is a work in progress and has as main goal to be merged with the Wiki page once I finish my conversion. Everyone can request write access to this document, this way as a community we can improve the documentation. Feel free to join in on this effort!&lt;br /&gt;Another great source for information is Jim Weaver&#39;s &lt;a title=&quot;JavaFX blog&quot; href=&quot;http://learnjavafx.typepad.com/weblog/&quot; id=&quot;kbur&quot;&gt;blog&lt;/a&gt; where he posts new examples on learning the new compiled FX Script syntax on a daily basis.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So now with all this information assembled I hope more and more people will find their way into this exciting new technology. With this first post on the subject I&#39;m hoping to start a series of JavaFX related posts that will help people get to know all about it and why it&#39;s potentially the biggest leap for desktop Java.</description><link>http://blog.pursuit.be/2008/03/it-has-been-while-since-i-blogged-but.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-7060051547854382683</guid><pubDate>Tue, 30 Oct 2007 11:09:00 +0000</pubDate><atom:updated>2009-06-13T17:42:45.813+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">gwt</category><title>Google Web Toolkit by Microsoft = Volta</title><description>Apparently Microsoft is working on a new product (&lt;a href=&quot;http://channel9.msdn.com/tags/Volta&quot;&gt;Volta&lt;/a&gt;) to improve web development. Basically it boils down to a &lt;a href=&quot;http://code.google.com/webtoolkit/&quot;&gt;GWT&lt;/a&gt;-like approach. It&#39;s a VisualStudio plugin that compiles msil-code to JavaScript (or Flash or Silverlight) for the client tier.&lt;br /&gt;They claim that it&#39;s only used internally but it wont surprise me if they release it to interrupt the fast adoption of the GWT technology.</description><link>http://blog.pursuit.be/2007/10/google-web-toolkit-by-microsoft-volta.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-9181064906750791099</guid><pubDate>Tue, 23 Oct 2007 10:08:00 +0000</pubDate><atom:updated>2008-03-08T17:10:57.953+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flex</category><category domain="http://www.blogger.com/atom/ns#">gwt</category><category domain="http://www.blogger.com/atom/ns#">ria</category><title>Flex vs GWT vs Echo2</title><description>Past 2 weeks I needed to investigate the best framework to port the front-end of a Java/Swing framework to a rich web UI environment.&lt;br /&gt;The contenders:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Adobe Flex2&lt;/li&gt;&lt;li&gt;GWT (Google Web Toolkit)&lt;/li&gt;&lt;li&gt;NextApp Echo2&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The idea was to have a rich UI similar to the existing Swing framework running inside the web browser, that seamlessly integrates with existing Struts webapps. Applets / WebStart was out of the question, because of fear for deployment and decompilation issues.&lt;br /&gt;&lt;br /&gt;So with these constraints in mind I started looking for the best framework amongst our 3 contenders. The odd one in the list is obviously Flex, but although not based on DHTML and JS it offers a lot of richness, and the deployment and security risks where less of a concern to the client.&lt;br /&gt;&lt;br /&gt;Echo2 soon failed one of the main constraints: to seamlessly integrate within other webapps, maybe there are good solutions but I didn&#39;t seem to come across those. Because the API was very similar to Swing it was very easy to port some of the basic functionality for my proof of concept, too bad. Another concern is that Echo2 maintains the view-state server side, which could become an issue when scaling up to many concurrent users.&lt;br /&gt;&lt;br /&gt;Flex also failed in favor of GWT. The main concern was the difficulty to integrate it with a J2EE or JEE backend, you need to use WebServices or REST. There is a free version of LiveCycleDataServices which takes care of this but it&#39;s limited to single CPU systems. Licenses for the enterprise edition however are pricey. Another concern was the lack of quality opensource plugins for Eclipse, requiring a FlexBuilder license at 500€ per developer to have a comfortable productive development environment. And another inconvenience is that it&#39;s not Java, rather annoying to migrate all developers to this new language (ActionScript). Flex still has to prove itself as a technology ready for enterprise adoption, and you still need a browser plugin and it can be decompiled.&lt;br /&gt;&lt;br /&gt;GWT on the other hand doesn&#39;t require all those changes of habit, you can keep developing and debugging in Java, with your preferred and well known tooling, JUnit testing, refactoring, you name it. Now a year after the first release there&#39;s already a large community adopting and extending the framework. Numerous enterprise applications have been built with it and it seems like a platform that improves productivity for rich internet application development.  GWT shields all HTML, CSS, DHTML, JS and browser incompatibility issues from the developer. And as bonus you get free client side code compression and obfuscation. It&#39;s a pure WIN WIN situation.&lt;br /&gt;&lt;br /&gt;A first implementation of the web port of the Swing based framework has begun with GWT 1.4.60 as platform and GWT-EXT (wrapper around EXT-JS) for some richer UI widgets. Everything gets built by Maven2, is developed in Eclipse and tested and debugged in the GWT Development Shell.&lt;br /&gt;&lt;br /&gt;With the inception of GWT, Google gave JavaScript based applications a second life. IMHO if it wasn&#39;t for GWT, JavaScript would be dropped rather sooner than later in favor of Swing / JavaFX / Silverlight or Flex-like solutions for enterprise applications because of project maintainability issues.&lt;br /&gt;&lt;br /&gt;Be sure to tune in later when I post my GWT / Maven2 project setup for Eclipse...</description><link>http://blog.pursuit.be/2007/10/flex-vs-gwt-vs-echo2.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>9</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-3759656611092596305</guid><pubDate>Sat, 22 Sep 2007 12:12:00 +0000</pubDate><atom:updated>2009-06-13T17:42:32.343+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">swing</category><title>Java Memory Leaks</title><description>Yesterday is stumbled upon some interesting blog posts by &lt;a href=&quot;http://weblogs.java.net/blog/zixle/archive/2005/11/weakreferences.html&quot;&gt;Scott Violet&lt;/a&gt; from the (former) Swing Team and  &lt;a href=&quot;http://weblogs.java.net/blog/timboudreau/archive/2005/04/writing_memory.html&quot;&gt;Tim Boudreau&lt;/a&gt; from Netbeans. Apparently Swing action listeners before Java 6.0 were registered, and as such tied with normal references instead of Weak References causing unused objects to remain in memory. So if you&#39;re developing in pre-6.0 be sure to think about this issue, you&#39;re most likely preventing unused memory for liberation by the garbage collector (= memory leak, yes Java has memory leaks too!). Second concern is that still a lot of Swing developers tend to extends Swing components:&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;public class MyFrame extends JFrame {}&lt;/pre&gt;This has the unfortunate effect that the GC needs more passes (at least 2) to recollect unused memory. This is because somewhere up in the inheritance graph Component implements finalize() causing the GC to do extra effort to collect memory because it needs to run the finalizer and then reschedule another GC pass. So in case you&#39;re just USING the Swing components and not adding features, use them like you use other Java objects like ArrayList, HashMap,... It&#39;s a quote from Erich Gamma: &#39;Favor composition over inheritance&#39;.&lt;br /&gt;&lt;br /&gt;Although memory leaks are more likely to happen in combination with, they&#39;re not limited to Swing. There are other concerns: static inner classes, misplaced fields with respect to their scope, collections used as cache, ...  You don&#39;t do it on purpose and there are commercial profilers that do a good job in detecting these issues but you need to find them yourself. However the Netbeans team has a nice tool to test for these errors. The extended the JUnit TestCase with a method: assertGC()  to test if a certain object reference can be GCed or not. If not they launch the INSANE library to detect which chain of objects is still referencing your object, and so preventing it from garbage collection. Their files can be found here with an easy example: &lt;a href=&quot;http://weblogs.java.net/blog/timboudreau/archive/2005/04/writing_memory.html&quot;&gt;Tim Boudreau&lt;/a&gt; in his LeakDemo source code. Take note that the example now correctly passes the JUnit test because of the adaptions in Swing from Java 6.0, but it explains how to work with the test-cases.</description><link>http://blog.pursuit.be/2007/09/java-memory-leaks.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-244693617895291170</guid><pubDate>Tue, 18 Sep 2007 22:11:00 +0000</pubDate><atom:updated>2009-08-20T20:50:59.708+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flash</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">jmf</category><category domain="http://www.blogger.com/atom/ns#">swing</category><title>Playing Flash Video (FLV) with Java</title><description>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUeAyNV0izplxdBBk5c4AypXHtHEsgobpqWnz8nhZsSLJxFwZvdh9_GXaZr11lxJa-t0uW1E7RJGMFeMSBgVU_7rAOivxWj5l_kYzz5nxcKS9ycNLPZY1OllrdJkclClJKkagJP5PhvT8/s1600-h/JavaFlashVideo_single.png&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5111672714155182306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUeAyNV0izplxdBBk5c4AypXHtHEsgobpqWnz8nhZsSLJxFwZvdh9_GXaZr11lxJa-t0uW1E7RJGMFeMSBgVU_7rAOivxWj5l_kYzz5nxcKS9ycNLPZY1OllrdJkclClJKkagJP5PhvT8/s320/JavaFlashVideo_single.png&quot; style=&quot;cursor: pointer; float: right; margin: 0pt 0pt 10px 10px;&quot; /&gt;&lt;/a&gt;&lt;i style=&quot;color: red;&quot;&gt;&lt;b&gt;*** Update: Read &lt;a href=&quot;http://javatrack.blogspot.com/2009/08/video-in-java-no-more-jmf-please-use.html&quot;&gt;this&lt;/a&gt; post first!! *** &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Today I was challenged by one of my coworkers to be able play an FLV movie inside a Java client (Swing) application. Well it seems like it&#39;s a piece of cake. All you need:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;JMF&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://fobs.sourceforge.net/&quot;&gt;FOBS4JMF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Adapted JMF.properties file&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;.FLV file (I took one of the talks @ &lt;a href=&quot;http://parleys.com/&quot;&gt;Parleys.com&lt;/a&gt;)&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;To spice up the challenge I added the player inside the &lt;a href=&quot;https://filthyrichclients.dev.java.net/source/browse/filthyrichclients/RepaintManager/RepaintManager/src/ReflectionPanel.java?rev=1.1&amp;amp;view=markup&quot;&gt;ReflectionPanel &lt;/a&gt;from the great book: &lt;a href=&quot;http://www.filthyrichclients.org/&quot;&gt;Filthy Rich Clients&lt;/a&gt;.&lt;br /&gt;
There&#39;s nothing special to it... I created this demo in about 15minutes. If you take the FOBS4JMF binary build, all you need is included and preconfigured.</description><link>http://blog.pursuit.be/2007/09/playing-flash-video-flv-with-java.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUeAyNV0izplxdBBk5c4AypXHtHEsgobpqWnz8nhZsSLJxFwZvdh9_GXaZr11lxJa-t0uW1E7RJGMFeMSBgVU_7rAOivxWj5l_kYzz5nxcKS9ycNLPZY1OllrdJkclClJKkagJP5PhvT8/s72-c/JavaFlashVideo_single.png" height="72" width="72"/><thr:total>15</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-799174436028008067</guid><pubDate>Wed, 12 Sep 2007 07:49:00 +0000</pubDate><atom:updated>2009-06-13T17:37:58.572+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">swing</category><title>Swing Debugging</title><description>&lt;a href=&quot;http://today.java.net/pub/au/275&quot;&gt;Kirill Grouchnikov&lt;/a&gt; wrote a nice &lt;a href=&quot;http://today.java.net/pub/a/today/2007/08/30/debugging-swing.html&quot;&gt;article &lt;/a&gt;on the subject of Swing Debugging. This is still a dark area for newcomers to Swing application development. Blocking the EDT (Event Dispatch Thread) or updating Swing components off the EDT are common problem areas for newcomers and contribute to the fact that people think that Swing is crapy or slow.&lt;br /&gt;Fortunately some people have contributed tools to verify against these violations, you can find 2 classes for debugging Swing &lt;a href=&quot;https://swinghelper.dev.java.net/&quot;&gt;here&lt;/a&gt; (CheckThreadViolationRepaintManager and EventDispatchThreadHangMonitor).</description><link>http://blog.pursuit.be/2007/09/swing-debugging.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-2337949797185012753</guid><pubDate>Sun, 26 Aug 2007 13:20:00 +0000</pubDate><atom:updated>2009-06-13T17:40:42.062+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flex</category><title>OpenLaszlo vs Flex</title><description>When talking with some colleagues on the subject: Java Swing rich client vs rich web-client RIA, we came across the new Flex2 and Flex3 technology as alternative to Web2.0 AJAX styled RIA.&lt;br /&gt;I first came in touch with Flex at the JavaPolis event last year, but I wasn&#39;t too excited, being more of a desktop application guy. But when you start to think about it, it makes sense in such a comparison. It seems to improve productivity, is widely available on all common platforms, is configurable, styleable, ... what not!?&lt;br /&gt;So in my search for a good comparison of &lt;a href=&quot;http://flex.org/&quot;&gt;Flex &lt;/a&gt;vs other technologies I came across another contender: &lt;a href=&quot;http://www.openlaszlo.org/&quot;&gt;OpenLaszlo&lt;/a&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;&#39;the premier open-source platform for rich internet applications&#39;. &lt;/span&gt;&lt;span&gt;After seeing the demo applications I was amazed by this framework. It&#39;s so easy to do many of the most common things and the best part is that it generates both Flash and DHTML so it&#39;s not only dependant on your Flash plugin. Flex also has a lot of nice demos, somehow feels a little smoother and now has a free SDK. Now it&#39;s just a mather of trying them out to determince which one is the best to work with. To be continued...&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://blog.pursuit.be/2007/08/openlaszlo-vs-flex.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-7708911339826682279</guid><pubDate>Thu, 28 Jun 2007 19:57:00 +0000</pubDate><atom:updated>2007-08-26T17:07:53.546+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">swing</category><title>Swing application architecture</title><description>In my &lt;a href=&quot;http://jayvplace.blogspot.com/2007/05/desktop-java-swing.html&quot;&gt;previous post&lt;/a&gt; I talked about a presentation I&#39;m preparing, related to this and a course i&#39;m teaching in advanced desktop Java development I&#39;m thinking about &#39;the best practice&#39; architecture for a Java Swing &#39;rich client&#39; type of application. More specifically I&#39;m looking for an &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;all round&lt;/span&gt; solution to separate business and GUI layers, pass around events, prevent EDT blocking, (asynchronous) tasks.&lt;br /&gt;After having read Desktop Java Live by Scott Delap (great book by the way) I&#39;m not entirely convinced by his RSS Reader example., I do things differently, not necessarily better. After a talk with Karsten Lentzsch (&lt;a href=&quot;http://jgoodies.com/&quot;&gt;JGoodies.com&lt;/a&gt;) I&#39;m still somewhat in the dark. It looks like there is no correct answer, just some guideline into the right direction. Use &lt;a href=&quot;http://www.martinfowler.com/eaaDev/PresentationModel.html&quot;&gt;PresentationModel&#39;s&lt;/a&gt; and an application-level model to interconnect larger graphs of PM&#39;s together. Maybe the &lt;a href=&quot;https://eventbus.dev.java.net/&quot;&gt;EventBus&lt;/a&gt; could come in handy here, but I still haven&#39;t tried it.</description><link>http://blog.pursuit.be/2007/05/swing-application-architecture.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-3707439707653546217</guid><pubDate>Tue, 29 May 2007 22:46:00 +0000</pubDate><atom:updated>2009-06-13T17:42:10.144+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">swing</category><title>Desktop Java on dope</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;It&#39;s been a while since I wrote here, mostly because I&#39;m occupied with a new task besides my daily consultancy job at the client. I&#39;m preparing a presentation on Desktop Java. More specifically focussed on Rich Client Java Apps with Swing. So  the past few weeks I&#39;ve been going over and over all JavaOne 2006, 2007 and JavaPolis 2006 desktop related presentations to make sure I didn&#39;t miss anything.&lt;br /&gt;So far Java 6 seems promising for the Desktop developer, but as always it will take 3 or 4 more years until the businesses start adopting it. Heck I would love to just be able to start using Java 5, but the client I&#39;m working at is still stuck at 1.4 :-( Too bad, no annotations, no generics, no SwingX or other cool components based on Java 5... I&#39;ve actually been back porting quite a lot because of this. May this be a call out to all Swing component writers... preserve 1.4 compatibility for just a little longer please!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;It&#39;s somewhat remarkable that desktop Java is making a serious come-back, all the UI bug fixes and improvements put into Java 6 and the promising upcoming &lt;a href=&quot;http://blogs.sun.com/chrisoliver/&quot;&gt;JavaFX&lt;/a&gt; , &lt;a href=&quot;http://weblogs.java.net/blog/hansmuller/archive/2006/06/jsr_296_bows_sw.html&quot;&gt;Swing App. Framework&lt;/a&gt;, &lt;a href=&quot;http://weblogs.java.net/blog/zixle/archive/2006/05/ease_of_swing_d.html&quot;&gt;Beans Binding&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;&gt;. Desktop Java is finally evolving rapidly, and that&#39;s good news but for now using &lt;a href=&quot;http://www.jgoodies.com/&quot;&gt;JGoodies&lt;/a&gt; SwingSuite can get you started today with the technologies promised for Java 7.&lt;br /&gt;Another thing I noticed is that Eclipse platform is also gaining momentum, so I&#39;m expecting some more EclipseRCP / SWT projects in the near future.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://blog.pursuit.be/2007/05/desktop-java-swing.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2194501260274521490.post-4050634029827344895</guid><pubDate>Tue, 27 Mar 2007 21:46:00 +0000</pubDate><atom:updated>2008-03-08T16:55:54.088+01:00</atom:updated><title>Hello World and welcome</title><description>&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;I will be spending some time here in the near future to make comments and write articles about subjects that matter to me, my job as a Senior Software Engineer / Technical Project Lead, and my life in general...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Enjoy the reading!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://blog.pursuit.be/2007/03/hello-word-and-welcome.html</link><author>noreply@blogger.com (Jo Voordeckers)</author><thr:total>0</thr:total></item></channel></rss>