<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ruben's Weblog</title>
	<atom:link href="http://ruben42.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruben42.wordpress.com</link>
	<description>Random thoughts from a Java Developer</description>
	<lastBuildDate>Tue, 13 Dec 2011 20:04:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ruben42.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ruben's Weblog</title>
		<link>http://ruben42.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ruben42.wordpress.com/osd.xml" title="Ruben&#039;s Weblog" />
	<atom:link rel='hub' href='http://ruben42.wordpress.com/?pushpress=hub'/>
		<item>
		<title>CQ Blueprints</title>
		<link>http://ruben42.wordpress.com/2011/11/01/cq-blueprints/</link>
		<comments>http://ruben42.wordpress.com/2011/11/01/cq-blueprints/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 13:42:45 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[adep]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[communique]]></category>
		<category><![CDATA[cq]]></category>
		<category><![CDATA[crx]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wem]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=122</guid>
		<description><![CDATA[A year ago, Adobe bought a content management system called Communique (CQ) from a company in Switzerland, Day Software AG. The content management is built on Apache Sling and Apache Jackrabbit with some additional customizations. Adobe has taken the software stack from Day and made it the backbone of it&#8217;s LifeCycle enterprise platform. It also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=122&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A year ago, Adobe bought a content management system called Communique (CQ) from a company in Switzerland, Day Software AG. The content management is built on Apache Sling and Apache Jackrabbit with some additional customizations. Adobe has taken the software stack from Day and made it the backbone of it&#8217;s LifeCycle enterprise platform. It also rebranded Adobe CQ and the Sling/Jackrabbit stack (called CRX in the Day world).</p>
<p>CRX is now called ADEP (Adobe Digital Enterprise Platform) and they merged the Adobe LifeCycle functionality into it.</p>
<p>CQ (Communique) is now called WEM (Web Experience Management) and is an application on top of ADEP.</p>
<p>The naming of these products is a bit unfortunate if you want to google for information and help about the platform.</p>
<p>CQ Blueprints (started before the branding change) is a website dedicated to best practices and tips and tricks for the ADEP/WEM platform. It now also features a customized google search that indexes ADEP/WEM related resources and makes it easier for the day to day work of a developer to find information that pertain to the platform.</p>
<p>Check it out at<a title="cq blueprints" href="http://www.cqblueprints.com" target="_blank"> http://www.cqblueprints.com</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=122&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2011/11/01/cq-blueprints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>
	</item>
		<item>
		<title>Unifying your Web Applications with a common look through Apache Server Side Includes (SSI)</title>
		<link>http://ruben42.wordpress.com/2011/10/17/unify-webapps-with-apache-ssi/</link>
		<comments>http://ruben42.wordpress.com/2011/10/17/unify-webapps-with-apache-ssi/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 15:30:54 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=117</guid>
		<description><![CDATA[Most larger organizations have a set of web applications exposed to their customers. Some of those applications are grown in-house, some have been purchased. Each application has it&#8217;s own release cycle and therefore it becomes quite a bit of a problem to make common changes to all applications. Say your company has a new logo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=117&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Most larger organizations have a set of web applications exposed to their customers. Some of those applications are grown in-house, some have been purchased. Each application has it&#8217;s own release cycle and therefore it becomes quite a bit of a problem to make common changes to all applications. Say your company has a new logo or is adding one more application to the top and bottom navigation of all sites, you end up having to touch each application and make the required modification in the header and footer, go through a testing cycle and redeploy all applications at the same time in order to make sure the site looks consistent.<span id="more-117"></span></p>
<p>In the fast moving world where your main website is in a content management system and the header and footer of the site can be modified by the content team at any given time the approach above seems a bit out of date and cumbersome. There are a couple of different solutions pro work around this problem. I&#8217;d like to present one that has a minimal impact on all the systems in question and provides the ability to quickly change the header and footer of your site:</p>
<p>The following image illustrates a common environment that can be found in an enterprise:</p>
<p><a href="http://ruben42.files.wordpress.com/2011/10/parallel.png"><img class="aligncenter size-medium wp-image-134" title="parallel" src="http://ruben42.files.wordpress.com/2011/10/parallel.png?w=290&#038;h=300" alt="" width="290" height="300" /></a>or a deployment where the CMS is the master and adds all other applications on the fly:</p>
<p><a href="http://ruben42.files.wordpress.com/2011/10/cms.png"><img class="aligncenter size-medium wp-image-133" title="cms" src="http://ruben42.files.wordpress.com/2011/10/cms.png?w=300&#038;h=154" alt="" width="300" height="154" /></a></p>
<p>The common header and footer is served from each application individually. To modify the common look, all applications have to be touched and reloaded</p>
<p>The solution proposed here is to use Apache Server Side Includes in order to inject the header and footer from the CMS directly into all applications. Each Application returns an SSI statement instead of the actual header:</p>
<p><a href="http://ruben42.files.wordpress.com/2011/10/ssi.png"><img class="aligncenter size-medium wp-image-135" title="ssi" src="http://ruben42.files.wordpress.com/2011/10/ssi.png?w=300&#038;h=198" alt="" width="300" height="198" /></a></p>
<p>the HTML returned would look something like this:</p>
<p><code>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;!--#include virtual="/header.html"--&gt;<br />
... normal code<br />
&lt;!--#include virtual="/footer.html"--&gt;<br />
&lt;/html&gt;</code></p>
<p>By enabling SSI includes for the proxied application through a change in the apache httpd.conf such as the following</p>
<p><code>ProxyRequests Off<br />
ProxyPass /shop http://shop:8080/shop<br />
ProxyPassReverse /shop http://shop:8080/shop<br />
&lt;Proxy *&gt;<br />
SetOutputFilter INCLUDES<br />
&lt;/Proxy&gt;</code></p>
<p>the request from the apache server will be sent and processed by the 3rd party application and after it is returned the apache server will then use mod_includes to inject the contents of /header.html and /footer.html into the returned page. The header.html and footer.html file can also be created by the CMS and allow instant updates to the header and footer throughout the unified site to take place without any changes to the other applications.</p>
<p>Note: SSI can also be turned on in Apache Tomcat to run the individual applications for test purposes without the full chain of servers as in the final deployment. If SSI is enabled in tomcat then the include will happen directly on the Tomcat side of things. This however should be turned of for any test/dev/production environement where the full chain of servers is available to avoid the SSI statements to be executed on the wrong machines and introducing additional load on the application servers.</p>
<p>Due to the SSI includes, the Apache server is not able to figure out the content length nor the expiration date of the page &#8211; it may be necessary to use mod_expire in Apache to enable caching control.</p>
<h2>Conclusion</h2>
<p>The approach to use Apache Server Side Includes (SSI) to handle the unification of the appearance of your web properties is simple. It does not introduce an additional single point of failure due to the fact that the includes are injected on the existing Apache servers in the infrastructure. A caching mechanism for header/footer.html can be employed to make sure the CMS serving those files does not become a single point of failure.</p>
<p>As always, I&#8217;d be happy to hear your comments</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=117&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2011/10/17/unify-webapps-with-apache-ssi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>

		<media:content url="http://ruben42.files.wordpress.com/2011/10/parallel.png?w=290" medium="image">
			<media:title type="html">parallel</media:title>
		</media:content>

		<media:content url="http://ruben42.files.wordpress.com/2011/10/cms.png?w=300" medium="image">
			<media:title type="html">cms</media:title>
		</media:content>

		<media:content url="http://ruben42.files.wordpress.com/2011/10/ssi.png?w=300" medium="image">
			<media:title type="html">ssi</media:title>
		</media:content>
	</item>
		<item>
		<title>Example Thick Client App with EXTJS and Java</title>
		<link>http://ruben42.wordpress.com/2011/06/01/example-thick-client-app-with-extjs-and-java/</link>
		<comments>http://ruben42.wordpress.com/2011/06/01/example-thick-client-app-with-extjs-and-java/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 15:45:49 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[extjs]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=115</guid>
		<description><![CDATA[Following up my last post I wrote a small sample application using Java, EXTJS, Jetty and the djproject to create a thick client experience based on these components. I chose the djproject instead of mozswing since it is a lighter download and integrates with an existing web browser on your system instead of bundling an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=115&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Following up my last post I wrote a small sample application using Java, EXTJS, Jetty and the djproject to create a thick client experience based on these components. I chose the djproject instead of mozswing since it is a lighter download and integrates with an existing web browser on your system instead of bundling an additional web browser with the application.I also provided a power point presentation that runs through the project and explains how it is implemented.</p>
<p><a title="download" href="http://www.headwire.com/public/en/hw/downloads.html">download</a> at http://www.headwire.com/public/en/hw/downloads.html</p>
<p>As always, please let me know what you think about this post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=115&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2011/06/01/example-thick-client-app-with-extjs-and-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing a Thick Client Java Application with EXTJS</title>
		<link>http://ruben42.wordpress.com/2010/10/20/writing-a-thick-client-java-application-with-extjs/</link>
		<comments>http://ruben42.wordpress.com/2010/10/20/writing-a-thick-client-java-application-with-extjs/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 17:15:18 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[extjs]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[mozswing]]></category>
		<category><![CDATA[thick client]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=106</guid>
		<description><![CDATA[update: example application I have been writing thick client applications in Java for a while now. You can produce nice applications with Swing if you know how to and have the right tools and libraries at hand. Lately, however, some of our clients made me rethink the approach for thick client development. We were asked [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=106&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>update: <a title="example thick client extjs java application" href="http://ruben42.wordpress.com/2011/06/01/example-thick-client-app-with-extjs-and-java/">example application</a></p>
<p>I have been writing thick client applications in Java for a while now. You can produce nice applications with Swing if you know how to and have the right tools and libraries at hand. Lately, however, some of our clients made me rethink the approach for thick client development. We were asked to develop a thick client application for Windows, Mac OSX and Linux. The customer also pointed out that in the future they would like the same application to be web based. This made me rethink the Swing strategy and bring back an older concept we developed for a customer back in 2000. The project is still online at <a href="http://www.tisca.com/tisca-tiara/handtuft/select/en/index.html" target="_blank">http://www.tisca.com/tisca-tiara/handtuft/select/en/index.html</a>. It&#8217;s an online carpet configurator allowing the customer to color and custom order a carpet. The project was initially delivered over the web but was also distributed to stores on a CD, allowing the store owners to run the application on a local computer without an internet connection. The approach taken was simple: an autostart executable on the CD runs a webserver as well as a web browser without navigation bars, etc, as one application. To the store, the application looks like a thick client, on the web, it&#8217;s just another AJAX style web application.</p>
<p>Back to 2010, we know have libraries such as EXTJS that bring an application look and feel to your web application. Out of the box, EXTJS supports more feature rich components than are supported by Java/Swing. Firefox is a great browser and the <a href="http://sourceforge.net/projects/mozswing/" target="_blank">mozswing project</a> allows you to bundle Firefox into your Java/Swing application. if you combine this with an embedded web server such as <a href="http://jetty.codehaus.org/jetty/" target="_blank">Jetty</a> you can write and deliver a thick client application the same way you deliver a web application. The hybrid approach allows you to handle parts of your application such as file dialogs, etc in Swing. Once a user selects a file to load, you can make a javascript call from your Java/Swing application into the MozSwing browser window to communicate back to your local web server to load the file.</p>
<p>Using this technology stack allows us to deliver a rich thick client experience and at the same time reuse most of the code, apart from specific features such as file dialogs.</p>
<p>The following is a screenshot of the current application we&#8217;re building:</p>
<p><a href="http://ruben42.files.wordpress.com/2010/10/screenshot.png"><img class="aligncenter size-medium wp-image-112" title="screenshot" src="http://ruben42.files.wordpress.com/2010/10/screenshot.png?w=300&#038;h=206" alt="" width="300" height="206" /></a></p>
<p>Please let me know what you think about this approach. If there is enough feedback I&#8217;ll follow up this post with an example application for you to play with.</p>
<p>An example implementation can be found here <a title="example thick client extjs java application" href="http://ruben42.wordpress.com/2011/06/01/example-thick-client-app-with-extjs-and-java/">http://ruben42.wordpress.com/2011/06/01/example-thick-client-app-with-extjs-and-java/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=106&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2010/10/20/writing-a-thick-client-java-application-with-extjs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>

		<media:content url="http://ruben42.files.wordpress.com/2010/10/screenshot.png?w=300" medium="image">
			<media:title type="html">screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Easy PDF Production</title>
		<link>http://ruben42.wordpress.com/2010/01/24/easy-pdf-production/</link>
		<comments>http://ruben42.wordpress.com/2010/01/24/easy-pdf-production/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 16:33:18 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=95</guid>
		<description><![CDATA[I have been looking for a good way to produce PDF documents and merge data into the documents as well as enable or disable different sections of the documents depending on certain conditions. The idea is to produce larger PDF documents for insurances and banks as easy as possible. Most of the approaches I have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=95&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been looking for a good way to produce PDF documents and merge data into the documents as well as enable or disable different sections of the documents depending on certain conditions. The idea is to produce larger PDF documents for insurances and banks as easy as possible. Most of the approaches I have seen so far require one to produce a PDF with Word and then Adobe Acrobat Professional to create form fields on top of the PDF. Once that&#8217;s done, the dynamic data is filled into the PDF form by a &#8216;stamping&#8217; process and the PDF fields are removed at that time.</p>
<p>Others just entirely produce the PDF document with a library such as iText, PDFBox or some other PDF creating making the approach very developer centric.</p>
<p>I was trying to find a better solution to handle PDF document creation within server based applications. I wanted to just annotate word or open office documents and use them directly to create the PDFs. No need to create A PDF from the word document anymore and no need to create A PDF form anymore. We could save a lot of time in development this way.</p>
<p>I thought if one can convert an open office document to FOP then you can render FOP as PDF as well as modify the FOP document on the fly to add the data into the output PDF. I found the following project on sourceforge: <a href="http://sourceforge.net/projects/office2fo/">Office2FO</a> &#8211; to my surprise, the creators of that project also created <a href="http://sourceforge.net/projects/inforama/">Inforama</a> &#8211; a full editor and server suite to do just what I wanted to do.</p>
<p>Inforama can take a n open office document and your datasources, merge the data together and produce good looking, easy to maintain PDF documents</p>
<p><img class="aligncenter" title="Inforama" src="http://www.inforama.org/images/data-panel.png" alt="" width="452" height="226" /></p>
<p>A great solution to finally make PDF production easier! I&#8217;d like to know what you think about this application and what your pain points are with creating PDF documents.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=95&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2010/01/24/easy-pdf-production/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>

		<media:content url="http://www.inforama.org/images/data-panel.png" medium="image">
			<media:title type="html">Inforama</media:title>
		</media:content>
	</item>
		<item>
		<title>What is the easiest way to create a custom JComboBox Popup?</title>
		<link>http://ruben42.wordpress.com/2009/05/28/what-is-the-easy-way-to-create-a-custom-jcombobox-popup/</link>
		<comments>http://ruben42.wordpress.com/2009/05/28/what-is-the-easy-way-to-create-a-custom-jcombobox-popup/#comments</comments>
		<pubDate>Thu, 28 May 2009 17:18:52 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[swing]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=90</guid>
		<description><![CDATA[If you want a swing JComboBox popup that is not a list (say you want to do a calendar) it would be great to be able to just replace the popup used with your own implementation &#8211; you can do that by subclassing the look and feel class and do your own implementation of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=90&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you want a swing JComboBox popup that is not a list (say you want to do a calendar) it would be great to be able to just replace the popup used with your own implementation &#8211; you can do that by subclassing the look and feel class and do your own implementation of the Combo Box but you will have to do that per look and feel that you support and what if you want to support every look and feel?</p>
<p>Can you help? What is a good suggestion to circumvent the Look and Feel Problem? Your comment is appreciated!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=90&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2009/05/28/what-is-the-easy-way-to-create-a-custom-jcombobox-popup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>
	</item>
		<item>
		<title>Catching all Runtime Exceptions in Swing</title>
		<link>http://ruben42.wordpress.com/2009/03/30/catching-all-runtime-exceptions-in-swing/</link>
		<comments>http://ruben42.wordpress.com/2009/03/30/catching-all-runtime-exceptions-in-swing/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 05:27:05 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=75</guid>
		<description><![CDATA[[note: see my post about writing a java thick client applications using extjs] So you got some framework that you are using in your swing application and it throws a runtime exception. The Exception is thrown all the way out and ends up on the system.out &#8211; very nasty, not good looking and doesn&#8217;t help [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=75&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>[note: see my post about <a href="http://ruben42.wordpress.com/2010/10/20/writing-a-thick-client-java-application-with-extjs/">writing a java thick client applications using extjs</a>]<br />
</em><br />
So you got some framework that you are using in your swing application and it throws a runtime exception. The Exception is thrown all the way out and ends up on the system.out &#8211; very nasty, not good looking and doesn&#8217;t help us determining that there is a problem in our application. We might just go on and do the same task again even though the exception was telling us that something went fatally wrong and that it probably would be a good idea to change the state of the application, go into recovery or terminate gracefully.</p>
<p>What can we do to prevent this? We can use try/catch clauses all over the place whenever we call some third party code but that is neither fun nor good code. And still there can be some exceptions slipping by &#8211; or are you really sure your code never throws a null pointer exception? Really?</p>
<p>There is an easier way to deal with this problem: All swing activity originates from the event queue and therefore all events are thrown to the event queue as well.  So in order to catch all runtime exceptions such as a null pointer exception we can just use the event queue.</p>
<p>We just need to extend EventQueue and overwrite the dispatchEvent method.</p>
<p><pre class="brush: java;">
class EventQueueProxy extends EventQueue {

	protected void dispatchEvent(AWTEvent newEvent) {
		try {
			super.dispatchEvent(newEvent);
		} catch (Throwable t) {
			t.printStackTrace();
			String message = t.getMessage();

			if (message == null || message.length() == 0) {
				message = &quot;Fatal: &quot; + t.getClass();
			}

			JOptionPane.showMessageDialog(null, &quot;General Error&quot;, message, JOptionPane.ERROR_MESSAGE);
		}
	}
}
</pre></p>
<p>The proxy class still calls it&#8217;s parents dispatchEvent method and catches anything throwable. When it does, it pops up a simple dialog.</p>
<p>Only thing remaining, we need to install our new event dispatcher on the event queue.</p>
<p><pre class="brush: java;">
EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
queue.push(new EventQueueProxy());
</pre></p>
<p>Using this method one can also use exceptions to handle errors throughout a swing application &#8211; dealing with errors and exceptions  ends up at one place in the application this way and can be used to transform the exceptions into human readable error messages.</p>
<p>For some other helpful links for building swing applications have a look at <a href="http://ruben42.wordpress.com/2008/08/05/helpful-java-swing-articles/">helpful-java-swing-articles</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=75&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2009/03/30/catching-all-runtime-exceptions-in-swing/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>
	</item>
		<item>
		<title>Analyzing Open Source Projects as a Computer Science Class</title>
		<link>http://ruben42.wordpress.com/2009/01/25/analyzing-open-source-projects-as-a-computer-science-class/</link>
		<comments>http://ruben42.wordpress.com/2009/01/25/analyzing-open-source-projects-as-a-computer-science-class/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 18:05:50 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=61</guid>
		<description><![CDATA[Looking back at my time studying computer science I remember I learned a lot from the operating system class. The professor implemented his own variation of Xinu (http://en.wikipedia.org/wiki/Xinu) and then discussed parts of the implementation with us and left some things as an exercise for us to implement. It was one of the harder classes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=61&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;" lang="en-US" align="justify">Looking back at my time studying computer science I remember I learned a lot from the operating system class. The professor implemented his own variation of Xinu (<a href="http://en.wikipedia.org/wiki/Xinu">http://en.wikipedia.org/wiki/Xinu</a>)  and then discussed parts of the implementation with us and left some things as an exercise for us to implement. It was one of the harder classes since there was a lot of lab work to actually complete the assignments but I still think about what we did in that class a lot and it gave me a good insight that I still use today.</p>
<p style="margin-bottom:0;" lang="en-US" align="justify">Since I graduated a lot happened in our industry – as everybody knows, there are more open source projects than one can count. The lessons I learned from Xinu – looking at an architecture and analyzing an implementation – could also be learned from analyzing multiple open source projects and comparing their architecture and design, judging their quality, elasticity (how easy is it to extend and advance them and in what areas), appearance and complexity (complexity of code compared to functionality and overall learning curve complexity to start work on the project).</p>
<p style="margin-bottom:0;" lang="en-US" align="justify">Analyzing existing code in such a way can be a good entry point into understanding projects and preventing the &#8216;can not fix because not written by me/it&#8217;s not good we have to redo this&#8217; attitude a lot of developers have and would help giving a developer a better feel when a project can not be saved anymore.</p>
<p style="margin-bottom:0;" lang="en-US" align="justify">I therefore suggest to add a class to computer science studies where the students take apart a set of open source applications and write a paper on their findings. It would be great if those findings should then also be published and available to everybody on the Internet in some public form.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=61&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2009/01/25/analyzing-open-source-projects-as-a-computer-science-class/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Chrome JavaScript Speed Compared</title>
		<link>http://ruben42.wordpress.com/2008/09/09/google-chrome-javascript-speed/</link>
		<comments>http://ruben42.wordpress.com/2008/09/09/google-chrome-javascript-speed/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 23:37:15 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[amiga]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[speed]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=43</guid>
		<description><![CDATA[By now everybody knows Google Chrome beta is available and we have all seen the claims about JavaScript speed. It&#8217;s one thing to read about it, it&#8217;s another to actually see the speed difference. So I figured I&#8217;ll write a little test program checking out how much faster Google Chrome and JavaScript in Google Chrome [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=43&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>By now everybody knows Google Chrome beta is available and we have all seen the claims about JavaScript speed. It&#8217;s one thing to read about it, it&#8217;s another to actually see the speed difference. So I figured I&#8217;ll write a little test program checking out how much faster Google Chrome and JavaScript in Google Chrome actually is. This test is by no means a complete test &#8211; the claim that JavaScript is faster should be across the board &#8211; therefore doing one test with some specific features should be faster otherwise the claim is not really true, now is it?</p>
<p>I&#8217;m an old Commodore C64/Amiga guy &#8211; so one thing I always liked back then were the copper bars. In short, the C64 and Amiga allows you to change the color of the screen background per line or even per a certain amount of pixels. The computers also had some vertical blank interrupt allowing you to run some code every time the monitor beam is at the top of the screen. People then wrote cool color bars floating around, nicely animated at 50Hz per second. I figured I can do a similar effect in the browser by using a div per raster line and altering the colors with an interval timer every 20ms.</p>
<table border="0">
<tbody>
<tr>
<td>The sample html page can be found here: <a href="http://www.headwire.com/javascript/chrome.html" target="_blank">http://www.headwire.com/javascript/chrome.html</a></p>
<p>The image to the right is a screen shot of the copper bars running in Google Chrome.</td>
<td>
<p><div id="attachment_50" class="wp-caption alignnone" style="width: 81px"><a href="http://ruben42.files.wordpress.com/2008/09/copper.jpg"><img class="size-thumbnail wp-image-50" title="copper" src="http://ruben42.files.wordpress.com/2008/09/copper.jpg?w=71&#038;h=96" alt="sample copper bars" width="71" height="96" /></a><p class="wp-caption-text">sample copper bars</p></div></td>
</tr>
</tbody>
</table>
<p>Speed test results running on a Dell Latitude D820 under Vista:</p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td>Browser</td>
<td>200 lines</td>
</tr>
<tr>
<td>Google Chrome</td>
<td>~97 frames/sec</td>
</tr>
<tr>
<td>Firefox 3</td>
<td>~70 frames/sec</td>
</tr>
<tr>
<td>IE7</td>
<td>~20 frames/sec</td>
</tr>
</tbody>
</table>
<p><strong>Update: the nightly minefield (firefox beta) gets about 80 frames/sec.</strong></p>
<p>Observation: the test is of course not just a JavaScript speed test but also a test on how fast changes that are made to the DOM can be reflected on the screen. If not using DIV&#8217;s but an image to perform the same test (using the JavaScript BMP Library [not supported in IE7]) we see a 50% speed increase for Google Chrome vs Firefox3. Update: <strong>Minefield actually beats chrome on this test by about 10%</strong></p>
<p>A couple of notes:</p>
<ul>
<li>There is a faster way to do this if the program does not have to run in IE. You can actually create an inline image with JavaScript with the JavaScript BMP Library (<a href="http://neil.fraser.name/software/bmp_lib/" target="_blank">http://neil.fraser.name/software/bmp_lib/</a>). The library allows you to convert an array of color information and a color pallet into an image. Update: <strong>bmp creation with minefield seems to be faster than with any other browser.</strong></li>
<li>I did not test with IE8 Beta on Vista since trying to run it forced me to apply the whole windows update and that used an awful lot of disk space (2+ GB)</li>
<li>When running into limits (two may lines updated, computer getting slow and running the test in multiple browsers) Google Chrome was way more responsive than Firefox3</li>
<li>There seemed to be no big difference in speed between Firefox 3 and the current beta with the updated JavaScript Engine (Shiretoko).</li>
</ul>
<p>As always, would love to hear your comments on this one.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ruben42.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ruben42.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=43&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2008/09/09/google-chrome-javascript-speed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>

		<media:content url="http://ruben42.files.wordpress.com/2008/09/copper.jpg?w=71" medium="image">
			<media:title type="html">copper</media:title>
		</media:content>
	</item>
		<item>
		<title>Running Java in .NET</title>
		<link>http://ruben42.wordpress.com/2008/08/13/running-java-in-net/</link>
		<comments>http://ruben42.wordpress.com/2008/08/13/running-java-in-net/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 16:18:41 +0000</pubDate>
		<dc:creator>reusr1</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[ikvm]]></category>

		<guid isPermaLink="false">http://ruben42.wordpress.com/?p=27</guid>
		<description><![CDATA[Did you write a java library but now some of your customers would like to use the library in their .NET code? Or do you have a .NET library and you need to integrate with a java application? There is this great tool out there called IKVM (http://www.ikvm.net) &#8211; it allows you to cross compile [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=27&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Did you write a java library but now some of your customers would like to use the library in their .NET code? Or do you have a .NET library and you need to integrate with a java application? There is this great tool out there called IKVM (<a href="http://www.ikvm.net" target="_blank">http://www.ikvm.net</a>) &#8211; it allows you to cross compile the byte code to the .NET CLR and then run it on top of the .NET framework (swing excluded).</p>
<p>If you have not yet, you have to try this tool. We used it to bridge a java RMI client library to .NET code. So now the .NET application calls the Java RMI client that then calls it&#8217;s Java RMI server. Sure, we could have implemented a .NET client to call the server side but this was easy (a days work to play with the tool, get to know it and do the implementation).</p>
<p>Would love to hear from you what you think about IKVM and what you&#8217;re experience with it was.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ruben42.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ruben42.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruben42.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ruben42.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ruben42.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ruben42.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ruben42.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ruben42.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ruben42.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ruben42.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruben42.wordpress.com&amp;blog=4423490&amp;post=27&amp;subd=ruben42&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruben42.wordpress.com/2008/08/13/running-java-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1c3ac01d4ea7dbeb58ef4909300f11a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reusr1</media:title>
		</media:content>
	</item>
	</channel>
</rss>
