<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rico&#039;s Blog</title>
	<atom:link href="http://blog.hgomez.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hgomez.net</link>
	<description>Le ptit blog de Rico</description>
	<lastBuildDate>Mon, 20 Feb 2012 14:41:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>DevOps logo 2nd try</title>
		<link>http://blog.hgomez.net/2012/02/20/devops-logo-2nd-try/</link>
		<comments>http://blog.hgomez.net/2012/02/20/devops-logo-2nd-try/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 14:34:55 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=969</guid>
		<description><![CDATA[Here is the second try of logos for DevOps, still provided by Sabrina (@saabpii). She carefully tracked comments here and on Twitter : Please vote for your preferred one.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2012%2F02%2F20%2Fdevops-logo-2nd-try%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2012%2F02%2F20%2Fdevops-logo-2nd-try%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Here is the second try of logos for DevOps, still provided by Sabrina (@saabpii).<br />
She carefully tracked comments here and on Twitter :</p>
<p><a href="http://blog.hgomez.net/wp-content/uploads/2012/02/logo_devops_v2.jpg"><img src="http://blog.hgomez.net/wp-content/uploads/2012/02/logo_devops_v2.jpg" alt="" title="logo_devops_v2" width="999" height="586" class="alignnone size-full wp-image-970" /></a></p>
<p>Please vote for your preferred one.</p>
<div class="shr-publisher-969"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2012/02/20/devops-logo-2nd-try/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevOps logos</title>
		<link>http://blog.hgomez.net/2012/02/08/devops-logos/</link>
		<comments>http://blog.hgomez.net/2012/02/08/devops-logos/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 08:08:27 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=963</guid>
		<description><![CDATA[I asked some times ago Sabrina Perrin (@saabpii) a great graphic designer I worked with for years, if she could try to works on some DevOps logo. As expected she has been very motivated and inspired. Here are the results : Now I need you to comments and votes for them. All of this artwork [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2012%2F02%2F08%2Fdevops-logos%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2012%2F02%2F08%2Fdevops-logos%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I asked some times ago Sabrina Perrin (@saabpii) a great graphic designer I worked with for years, if she could try to works on some DevOps logo. </p>
<p>As expected she has been very motivated and inspired.</p>
<p>Here are the results :</p>
<div id="attachment_964" class="wp-caption alignnone" style="width: 1191px"><a href="http://blog.hgomez.net/wp-content/uploads/2012/02/logo_devops2.jpg"><img src="http://blog.hgomez.net/wp-content/uploads/2012/02/logo_devops2.jpg" alt="" title="logos_devops" width="1181" height="600" class="size-full wp-image-964" /></a><p class="wp-caption-text">some DevOps Logo</p></div>
<p>Now I need you to comments and votes for them.</p>
<p>All of this artwork is free to use, just mention Sabrina somewhere on your sites/blogs/presentations.</p>
<p>Thanks again Sabrina !</p>
<div class="shr-publisher-963"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2012/02/08/devops-logos/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Uninstalling MacFuse on Lion</title>
		<link>http://blog.hgomez.net/2012/01/28/uninstalling-macfuse-on-lion/</link>
		<comments>http://blog.hgomez.net/2012/01/28/uninstalling-macfuse-on-lion/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 09:13:42 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[OS/X]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=958</guid>
		<description><![CDATA[If you installed MacFuse on Lion (10.7) and tried to uninstall you may encountered the following error : Uninstaller didn&#8217;t check for Lion (uname -r reporting 11.x). So fix is easy, just edit uninstaller script /Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh and add 11*) in case next to 10*)]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2012%2F01%2F28%2Funinstalling-macfuse-on-lion%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2012%2F01%2F28%2Funinstalling-macfuse-on-lion%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>If you installed MacFuse on Lion (10.7) and tried to uninstall you may encountered the following error :</p>
<pre class="brush: bash; title: ; notranslate">
sudo /Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh
MacFUSE Uninstaller: Can not find the Archive.bom for MacFUSE Core package.
</pre>
<p>Uninstaller didn&#8217;t check for Lion (uname -r reporting 11.x).<br />
So fix is easy, just edit uninstaller script <strong>/Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh</strong> and add 11*) in case next to 10*)</p>
<pre class="brush: bash; title: ; notranslate">
...

OS_RELEASE=`/usr/bin/uname -r`
case &quot;$OS_RELEASE&quot; in
  8*)
    log &quot;Incorrect uninstall. Use the Tiger version please.&quot;
    exit 1
    ;;
  9*)
    PACKAGE_RECEIPT=&quot;$INSTALL_VOLUME/Library/Receipts/MacFUSE Core.pkg&quot;
    OUTER_PACKAGE_RECEIPT=&quot;$INSTALL_VOLUME/Library/Receipts/MacFUSE.pkg&quot;
    BOMFILE=&quot;$PACKAGE_RECEIPT/Contents/Archive.bom&quot;
    ;;
  10*|11*)
     PACKAGE_RECEIPT=&quot;&quot;
     BOMFILE=&quot;$INSTALL_VOLUME/var/db/receipts/com.google.macfuse.core.bom&quot;
     ;;
esac
</pre>
<div class="shr-publisher-958"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2012/01/28/uninstalling-macfuse-on-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batch rpm signing</title>
		<link>http://blog.hgomez.net/2011/12/28/batch-rpm-signing/</link>
		<comments>http://blog.hgomez.net/2011/12/28/batch-rpm-signing/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 17:05:42 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=939</guid>
		<description><![CDATA[I&#8217;m using Jenkins to build RPMs with free-style scripts. Decent RPM packager should sign his RPMs so they could be checked by yum/zypper tools. Here you could be in trouble since rpm signing require a password to be passed in command line : It&#8217;s quite problematic for a RPM build factory. After digging around Internet, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F12%2F28%2Fbatch-rpm-signing%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F12%2F28%2Fbatch-rpm-signing%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;m using <a href="http://jenkins-ci.org/">Jenkins</a> to build RPMs with free-style scripts.<br />
Decent RPM packager should sign his RPMs so they could be checked by yum/zypper tools.</p>
<p>Here you could be in trouble since rpm signing require a password to be passed in command line :</p>
<p><pre class="brush: bash; title: ; notranslate">
rpm --addsign -D &quot;_signature gpg&quot; -D &quot;_gpg_name packagers@myforge.org&quot; RPMS/noarch/myjenkins-1.0.0-1.noarch.rpm&lt;br /&gt;
Enter pass phrase:&lt;br /&gt;
</pre>
</p>
<p>It&#8217;s quite problematic for a RPM build factory.</p>
<p>After digging around Internet, best solution appears to be using <a href="http://expect.sourceforge.net/">expect</a> and I developped a simple script for such purpose with following constraints :</p>
<ul>
<li>packager gpg name should be parametized (to avoid injecting it in ~/.rpmmacros)</li>
<li>gpg passphrase should be provided to command line (could be read from a secret file)</li>
</ul>
<pre class="brush: bash; title: ; notranslate">
#!/usr/bin/expect -f
#
# rpmsign-batch.expect : expect powered rpm signing command
#

proc usage {} {
        send_user &quot;Usage: rpmsign-batch.expect gpgname passphrase rpmfile\n\n&quot;
        exit
}

if {[llength $argv]!=3} usage

set gpgname [lrange $argv 0 0]
set passphrase [lrange $argv 1 1]
set rpmfile [lrange $argv 2 2]

send_user &quot;passphrase=$passphrase gpgname=$gpgname\n&quot;

spawn rpm --addsign -D &quot;_signature gpg&quot; -D &quot;_gpg_name $gpgname&quot; $rpmfile
expect -exact &quot;Enter pass phrase: &quot;
send -- &quot;$passphrase\r&quot;
expect eof
</pre>
<p>You could then use it to sign rpms from your freestyle jobs like :</p>
<pre class="brush: bash; title: ; notranslate">
# Password provided in clear in job (weird)
rpmsign-batch.expect packagers@myforge.org mypassphrase RPMS/noarch/myjenkins-1.0.0-1.noarch.rpm

# Password grabbed from a secret file (better)
PASSPHRASE=`cat /my/secret-passphrase-file`
rpmsign-batch.expect packagers@myforge.org $PASSPHRASE RPMS/noarch/myjenkins-1.0.0-1.noarch.rpm
</pre>
<div class="shr-publisher-939"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/12/28/batch-rpm-signing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Iozone and gnuplot 4.x</title>
		<link>http://blog.hgomez.net/2011/11/03/iozone-and-gnuplot-4-x/</link>
		<comments>http://blog.hgomez.net/2011/11/03/iozone-and-gnuplot-4-x/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 19:16:40 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[Performances]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=906</guid>
		<description><![CDATA[Iozone is a great tool to mesure performance of filesystem. You could find 10 examples here. In it latest version, 3.97, it came with reporting tools, report.pl and gengnuplot.sh, who use gnuplot to render images. Due to changes in GnuPlot 4.x, report.pl and gnu3d.dem need to be updated to works. Also you may get only [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F11%2F03%2Fiozone-and-gnuplot-4-x%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F11%2F03%2Fiozone-and-gnuplot-4-x%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.iozone.org/">Iozone </a> is a great tool to mesure performance of filesystem.<br />
You could find 10 examples <a href="http://www.thegeekstuff.com/2011/05/iozone-examples/">here</a>.</p>
<p>In it latest version, 3.97, it came with reporting tools, <strong>report.pl</strong> and <strong>gengnuplot.sh</strong>, who use gnuplot to render images.</p>
<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/11/2d-recrewrite.png"><img src="http://blog.hgomez.net/wp-content/uploads/2011/11/2d-recrewrite.png" alt="" title="2d-recrewrite" width="450" height="480" class="alignnone size-full wp-image-915" /></a></p>
<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/11/recrewrite.png"><img src="http://blog.hgomez.net/wp-content/uploads/2011/11/recrewrite.png" alt="" title="recrewrite" width="900" height="480" class="alignnone size-full wp-image-912" /></a></p>
<p>Due to changes in GnuPlot 4.x, <strong>report.pl</strong> and <strong>gnu3d.dem</strong> need to be updated to works.<br />
Also you may get only <strong>8 metrics</strong> in reports instead of <strong>15</strong> expected in latest release of <strong>report.pl</strong></p>
<h2>gnu3d.dem</h2>
<pre class="brush: perl; title: ; notranslate">
#
# $Id: 3D plot of performance
#
# Processes files that were created by Generate_Graphs
# and displays the results. Also, saves a postscript copy.
#
# Don Capps

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set parametric
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'write/iozone_gen_out.gnuplot' title &quot;Write performance&quot;
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;write/write.ps&quot;
splot 'write/iozone_gen_out.gnuplot' title &quot;Write performance&quot;

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'rewrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;ReWrite performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;rewrite/rewrite.ps&quot;
splot 'rewrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;ReWrite performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'read/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Read performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;read/read.ps&quot;
splot 'read/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Read performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'reread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Reread performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;reread/reread.ps&quot;
splot 'reread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Reread performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'randread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Random read performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;randread/randread.ps&quot;
splot 'randread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Random read performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'randwrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Random write performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;randwrite/randwrite.ps&quot;
splot 'randwrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Random write performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'bkwdread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Read Backwards performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;bkwdread/bkwdread.ps&quot;
splot 'bkwdread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Read Backwards performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'recrewrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Record rewrite performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;recrewrite/recrewrite.ps&quot;
splot 'recrewrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Record rewrite performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'strideread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Stride read performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;strideread/strideread.ps&quot;
splot 'strideread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Stride read performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'fwrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Fwrite performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;fwrite/fwrite.ps&quot;
splot 'fwrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Fwrite performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'frewrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Frewrite performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;frewrite/frewrite.ps&quot;
splot 'frewrite/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Frewrite performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'fread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Fread performance&quot; with lines
pause -1 &quot;Hit return to continue&quot;
set terminal postscript color
set output &quot;fread/fread.ps&quot;
splot 'fread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Fread performance&quot; with lines

set terminal x11
set title &quot;Iozone performance&quot;
set grid lt 2 lw 1
set surface
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in 2^n KBytes&quot;
set ylabel &quot;Record size in 2^n Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
splot 'freread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Freread performance&quot; with lines
pause -1 &quot;Hit return to exit&quot;
set terminal postscript color
set output &quot;freread/freread.ps&quot;
splot 'freread/iozone_gen_out.gnuplot' using 1:2:3 title &quot;Freread performance&quot; with lines
</pre>
<h2>report.pl</h2>
<pre class="brush: perl; title: ; notranslate">
#!/usr/bin/perl
#
# arguments: one of more report files
#
# Christian Mautner &lt;christian * mautner . ca&gt;, 2005-10-31
#
# This script is based loosely on the Generate_Graph set
# of scripts that come with iozone, but is a complete re-write
#
# The main reason to write this was the need to compare the behaviour of
# two or more different setups, for tuning filesystems or
# comparing different pieces of hardware.
#
# This script is in the public domain, too short and too trivial
# to deserve a copyright.
#
# Simply run iozone like, for example, ./iozone -a -g 4G &gt; config1.out (if your machine has 4GB)
# and then run perl report.pl config1.out
# or get another report from another box into config2.out and run
# perl report.pl config1.out config2.out
# the look in the report_* directory for .png
#
# If you don't like png or the graphic size, search for &quot;set terminal&quot; in this file and put whatever gnuplot
# terminal you want. Note I've also noticed that gnuplot switched the set terminal png syntax
# a while back, you might need &quot;set terminal png small size 900,700&quot;
#

@Reports=@ARGV;

die &quot;usage: $0 &lt;iozone.out&gt; [&lt;iozone2.out&gt;...]\n&quot; if not @Reports or grep (m|^-|, @Reports);

die &quot;report files must be in current directory&quot; if grep (m|/|, @Reports);

%columns=(
         'write'     =&gt;3,
         'read'      =&gt;5,
         'rewrite'   =&gt;4,
         'reread'    =&gt;6,
         'randread'  =&gt;7,
         'randwrite' =&gt;8,
         'bkwdread'  =&gt;9,
         'recrewrite'=&gt;10,
         'strideread'=&gt;11,
         'fwrite'    =&gt;12,
         'frewrite'  =&gt;13,
         'fread'     =&gt;14,
         'freread'   =&gt;15,
         );

#
# create output directory. the name is the concatenation
# of all report file names (minus the file extension, plus
# prefix report_)
#
$outdir=&quot;report_&quot;.join(&quot;_&quot;,map{/([^\.]+)(\..*)?/ &amp;&amp; $1}(@Reports));

print STDERR &quot;Output directory: $outdir &quot;;

if ( -d $outdir )
{
    print STDERR &quot;(removing old directory) &quot;;
    system &quot;rm -rf $outdir&quot;;
}

mkdir $outdir or die &quot;cannot make directory $outdir&quot;;

print STDERR &quot;done.\nPreparing data files...&quot;;

foreach $report (@Reports)
{
    open(I, $report) or die &quot;cannot open $report for reading&quot;;
    $report=~/^([^\.]+)/;
    $datafile=&quot;$1.dat&quot;;
    push @datafiles, $datafile;
    open(O, &quot;&gt;$outdir/$datafile&quot;) or die &quot;cannot open $outdir/$datafile for writing&quot;;
    open(O2, &quot;&gt;$outdir/2d-$datafile&quot;) or die &quot;cannot open $outdir/$datafile for writing&quot;;
    while(&lt;I&gt;)
    {
        next unless ( /^[\s\d]+$/ );
        @split = split();
        # We may have only 7 metrics (no block entries). Replaced == 15 with &gt;=8
        next unless ( @split &gt;= 8 );
        print O;
        print O2 if $split[1] == 16384 or $split[0] == $split[1];
    }
    close I, O, O2;
}

print STDERR &quot;done.\nGenerating graphs:&quot;;

foreach $column (keys %columns)
{
    print STDERR &quot; $column&quot;;

    open(G, &quot;&gt;$outdir/$column.do&quot;) or die &quot;cannot open $outdir/$column.do for writing&quot;;
    print G qq{
set title &quot;Iozone performance: $column&quot;
set grid lt 2 lw 1
set surface
set parametric
set xtics
set ytics
set logscale x 2
set logscale y 2
set autoscale z
#set xrange [2.**5:2.**24]
set xlabel &quot;File size in KBytes&quot;
set ylabel &quot;Record size in Kbytes&quot;
set zlabel &quot;Kbytes/sec&quot;
#set data style lines
set style data lines
set dgrid3d 80,80,3
#set terminal png small picsize 900 700
set terminal png small size 900 700
set output &quot;$column.png&quot;
};

    print G &quot;splot &quot;. join(&quot;, &quot;, map{qq{&quot;$_&quot; using 1:2:$columns{$column} title &quot;$_&quot;}}(@datafiles));

    print G &quot;\n&quot;;

    close G;

    open(G, &quot;&gt;$outdir/2d-$column.do&quot;) or die &quot;cannot open $outdir/$column.do for writing&quot;;
    print G qq{
set title &quot;Iozone performance: $column&quot;
#set terminal png small picsize 450 350
set terminal png small size 450 350
set logscale x
set xlabel &quot;File size in KBytes&quot;
set ylabel &quot;Kbytes/sec&quot;
set output &quot;2d-$column.png&quot;
};

    print G &quot;plot &quot;. join(&quot;, &quot;, map{qq{&quot;2d-$_&quot; using 1:$columns{$column} title &quot;$_&quot; with lines}}(@datafiles));

    print G &quot;\n&quot;;

    close G;

    if ( system(&quot;cd $outdir &amp;&amp; gnuplot $column.do &amp;&amp; gnuplot 2d-$column.do&quot;) )
    {
        print STDERR &quot;(failed) &quot;;
    }
    else
    {
        print STDERR &quot;(ok) &quot;;
    }
}

print STDERR &quot;done.\n&quot;;
</pre>
<div class="shr-publisher-906"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/11/03/iozone-and-gnuplot-4-x/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Servlet containers, startup time</title>
		<link>http://blog.hgomez.net/2011/07/15/servlet-containers-startup-time/</link>
		<comments>http://blog.hgomez.net/2011/07/15/servlet-containers-startup-time/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 00:11:03 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[OpenJDK]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=861</guid>
		<description><![CDATA[With the release of JBoss AS7, we see many comments around about the startup time of Application Servers. Even if this appears marginal in real life (an application server is expected to run 24/24 7/7), there is area where startup time is still important like for developpers. In developpment phase, when you have to start/stop [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F07%2F15%2Fservlet-containers-startup-time%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F07%2F15%2Fservlet-containers-startup-time%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>With the release of JBoss AS7, we see many comments around about the startup time of Application Servers.<br />
Even if this appears marginal in real life (an application server is expected to run 24/24 7/7), there is area where startup time is still important like for developpers. In developpment phase, when you have to start/stop your server dozens of times by day, you need fastest start time as possible.</p>
<p>I conducted a very basic and simple test on my MacBook Pro, take various application servers and servlet containers and measure their startup time.</p>
<p>And in this days of Java 7 fever, try these servers with OpenJDK 7 (OS/X version).</p>
<h3>Results on MacBook Pro &#8211; Core2Duo 2.66Ghz</h3>
<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/07/Startup6.png"><img src="http://blog.hgomez.net/wp-content/uploads/2011/07/Startup6-1024x473.png" alt="Startup Time of App Servers (3rd try)" title="Startup Time of App Servers" width="1024" height="473" class="alignnone size-large wp-image-892" /></a></p>
<p>all time in millisecondes </p>
<h3>Remarks</h3>
<li>JBoss AS 6 (minimal profile) startup time was about 27s. I didn&#8217;t include it in graph to keep a good scale for others engines</li>
<li>JBoss AS6 seems to start well with OpenJDK 7 but was a bit long to stop, so I had to kill the process</li>
<li>JBoss AS7 web-profile and non certified full edition came with no webapp, so a bit less works at startup since no webapp has to be deployed and managed. Injecting a basic webapp take an extra 30ms on next starts.</li>
<li>All servers performed pretty the same under Apple JDK 1.6.0-26 and OpenJDK 7.</li>
<h3>Conclusions</h3>
<li>Jetty is still the fastest container to start around.</li>
<li>Apache Tomcat team does a good job on Apache Tomcat 7, near twice faster than Apache Tomcat 6 in startup time and not too far than Jetty.</li>
<li>JBoss AS7 startup speed improvements are tremendous, about 13 times faster than its predecessor JBoss AS6, congrats guys !</li>
<p>Raw startup time data available <a href='http://blog.hgomez.net/wp-content/uploads/2011/07/appserver-startup2.txt'>here</a></p>
<div class="shr-publisher-861"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/07/15/servlet-containers-startup-time/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Building Universal Apache Tomcat Native Library on OS/X</title>
		<link>http://blog.hgomez.net/2011/07/13/building-universal-apache-tomcat-native-library-on-osx/</link>
		<comments>http://blog.hgomez.net/2011/07/13/building-universal-apache-tomcat-native-library-on-osx/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 15:41:08 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[OS/X]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=849</guid>
		<description><![CDATA[I recently notice that my Apache Tomcat running on OS/X 10.6.8 couldn&#8217;t use Apache Tomcat Native Library. After digging around and with the help of ASFer Mladen Turk, I figure my previous build was stick to 64bits mode only and I switched my JVM to 32bits mode using -d32. The fix was then easy, just [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F07%2F13%2Fbuilding-universal-apache-tomcat-native-library-on-osx%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F07%2F13%2Fbuilding-universal-apache-tomcat-native-library-on-osx%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I recently notice that my Apache Tomcat running on OS/X 10.6.8 couldn&#8217;t use Apache Tomcat Native Library. </p>
<pre class="brush: bash; title: ; notranslate">
INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path:
.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
Jul 13, 2011 11:02:30 AM org.apache.coyote.http11.Http11Protocol init
</pre>
<p>After digging around and with the help of ASFer Mladen Turk, I figure my previous build was stick to 64bits mode only and I switched my JVM to 32bits mode using -d32.</p>
<p>The fix was then easy, just had to rebuild tomcat-native and asking OS/X gcc to produce both 32/64 bits model library using the following CLFAGS/APXSLDFLAGS.</p>
<pre class="brush: bash; title: ; notranslate">
CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386-arch x86_64'
</pre>
<p>Here is a small script I&#8217;m using now to produce Apache Tomcat Native Library on OS/X.</p>
<pre class="brush: bash; title: ; notranslate">
curl http://mir2.ovh.net/ftp.apache.org/dist//tomcat/tomcat-connectors/native/1.1.20/source/tomcat-native-1.1.22-src.tar.gz -o tomcat-native-1.1.22-src.tar.gz
tar xvzf tomcat-native-1.1.22-src.tar.gz
cd tomcat-native-1.1.22-src/jni/native

CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386 -arch x86_64' ./configure --with-apr=/usr --with-ssl=/usr --with-java-home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
make clean
make

sudo cp .libs/libtcnative-1.0.1.22.dylib /usr/lib/java
sudo rm -f  /usr/lib/java/libtcnative-1.dylib
sudo ln -s /usr/lib/java/libtcnative-1.0.1.22.dylib /usr/lib/java/libtcnative-1.dylib
</pre>
<h3>A note about Lion</h3>
<p>If you get Java on Lion using the java command on terminal or via the Java Developer Package for Mac OS X 10.7, Java headers are not on the usual location and you could find them under <strong>/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers</strong></p>
<p>You should then update the <strong>configure</strong> command line like this :</p>
<pre class="brush: bash; title: ; notranslate">
CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386 -arch x86_64' ./configure --with-apr=/usr --with-ssl=/usr --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/A/
</pre>
<p>Lion came with Xcode 4.1 and there is also an impact on linker side, libtcnative is now produced as <strong>libtcnative-1.0.dylib</strong></p>
<p>Commands became so :</p>
<pre class="brush: bash; title: ; notranslate">
curl http://mir2.ovh.net/ftp.apache.org/dist//tomcat/tomcat-connectors/native/1.1.20/source/tomcat-native-1.1.22-src.tar.gz -o tomcat-native-1.1.22-src.tar.gz
tar xvzf tomcat-native-1.1.22-src.tar.gz
cd tomcat-native-1.1.22-src/jni/native

CFLAGS='-arch i386 -arch x86_64' APXSLDFLAGS='-arch i386 -arch x86_64' ./configure --with-apr=/usr --with-ssl=/usr --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/A/
make clean
make

sudo cp .libs/libtcnative-1.0.dylib /usr/lib/java
sudo rm -f  /usr/lib/java/libtcnative-1.dylib
sudo ln -s /usr/lib/java/libtcnative-1.0.dylib /usr/lib/java/libtcnative-1.dylib
</pre>
<div class="shr-publisher-849"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/07/13/building-universal-apache-tomcat-native-library-on-osx/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Apple JDK’s / OpenJDK&#8217;s – Core2Duo vs Core i7</title>
		<link>http://blog.hgomez.net/2011/04/18/apple-jdk%e2%80%99s-openjdks-%e2%80%93-core2duo-vs-core-i7/</link>
		<comments>http://blog.hgomez.net/2011/04/18/apple-jdk%e2%80%99s-openjdks-%e2%80%93-core2duo-vs-core-i7/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 19:39:20 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=825</guid>
		<description><![CDATA[Previously I did benchmark of Apple VMs and OpenJDK 6 and I wanted to see how all of the JVMs available today on our Mac on two systems, an old Core2Duo and a newer Core i7. And also see how they perform 32 / 64 bits kernel mode. So I redo full dacapo bench suite [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F04%2F18%2Fapple-jdk%25e2%2580%2599s-openjdks-%25e2%2580%2593-core2duo-vs-core-i7%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F04%2F18%2Fapple-jdk%25e2%2580%2599s-openjdks-%25e2%2580%2593-core2duo-vs-core-i7%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Previously I did benchmark of Apple VMs and OpenJDK 6 and I wanted to see how all of the JVMs available today on our Mac on two systems, an old Core2Duo and a newer Core i7. And also see how they perform 32 / 64 bits kernel mode.</p>
<p>So I redo full dacapo bench suite to include OpenJDK 6, and we have now 5 VMs (3 Java 6 and 2 Java 7) :</p>
<ul>
<li>Apple Java 1.6.0_22 &#8211; Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-314, mixed mode)</li>
<li>Apple Java 1.6.0_24 &#8211; Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-348, mixed mode)</li>
<li>OpenJDK 7 bsd-port &#8211; OpenJDK 64-Bit Server VM (build 21.0-b07, mixed mode)</li>
<li>OpenJDK 7 macosx-port &#8211; OpenJDK 64-Bit Server VM (build 21.0-b07, mixed mode)</li>
<li>OpenJDK 6 macports &#8211; OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)</li>
</ul>
<h3>Results on MacBook Pro &#8211; Core2Duo 2.66Ghz &#8211; 32bits kernel</h3>

<table id="wp-table-reloaded-id-6-no-1" class="wp-table-reloaded wp-table-reloaded-id-6">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Bench</th><th class="column-2">Apple JDK6 b22</th><th class="column-3">Apple JDK6 b24</th><th class="column-4">OpenJDK 1.7 bsd-port</th><th class="column-5">OpenJDK 1.7 macosx-port</th><th class="column-6">OpenJDK 1.6</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">avrora (10 iterations)</td><td class="column-2">5436</td><td class="column-3">5246</td><td class="column-4">4917</td><td class="column-5">5059</td><td class="column-6">5061</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">eclipse (2 iterations)</td><td class="column-2">49442</td><td class="column-3">49529</td><td class="column-4">37131</td><td class="column-5">43572</td><td class="column-6">37292</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">fop (10 iterations)</td><td class="column-2">561</td><td class="column-3">519</td><td class="column-4">395</td><td class="column-5">398</td><td class="column-6">456</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">h2 (2 iterations)</td><td class="column-2">7204</td><td class="column-3">6635</td><td class="column-4">6312</td><td class="column-5">6341</td><td class="column-6">11051</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">jython (2 iterations)</td><td class="column-2">6517</td><td class="column-3">5928</td><td class="column-4"></td><td class="column-5">5947</td><td class="column-6"></td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1">luindex (10 iterations)</td><td class="column-2">1095</td><td class="column-3">2170</td><td class="column-4">1014</td><td class="column-5">985</td><td class="column-6">953</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1">lusearch (10 iterations)</td><td class="column-2">7764</td><td class="column-3">4379</td><td class="column-4">5077</td><td class="column-5">7611</td><td class="column-6">5534</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1">pmd (10 iterations)</td><td class="column-2">3178</td><td class="column-3">3295</td><td class="column-4">2475</td><td class="column-5">3438</td><td class="column-6">2437</td>
	</tr>
	<tr class="row-10 even">
		<td class="column-1">sunflow (10 iterations)</td><td class="column-2">6969</td><td class="column-3">7038</td><td class="column-4">6543</td><td class="column-5">6566</td><td class="column-6">6564</td>
	</tr>
	<tr class="row-11 odd">
		<td class="column-1">tomcat (5 iterations)</td><td class="column-2">4024</td><td class="column-3">3924</td><td class="column-4">3571</td><td class="column-5">3820</td><td class="column-6"></td>
	</tr>
	<tr class="row-12 even">
		<td class="column-1">tradebeans (5 iterations)</td><td class="column-2">8028</td><td class="column-3">7516</td><td class="column-4">5851</td><td class="column-5">5914</td><td class="column-6">5954</td>
	</tr>
	<tr class="row-13 odd">
		<td class="column-1">tradesoap (5 iterations)</td><td class="column-2">16839</td><td class="column-3">14603</td><td class="column-4">12477</td><td class="column-5">13096</td><td class="column-6">12943</td>
	</tr>
	<tr class="row-14 even">
		<td class="column-1">xalan (10 iterations)</td><td class="column-2">3128</td><td class="column-3">2744</td><td class="column-4">2917</td><td class="column-5">3783</td><td class="column-6">2816</td>
	</tr>
</tbody>
</table>

<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/04/BenchJVMs-MBP.png"><img class="alignnone size-large wp-image-826" title="BenchJVMs-MBP" src="http://blog.hgomez.net/wp-content/uploads/2011/04/BenchJVMs-MBP-1024x555.png" alt="" width="1024" height="555" /></a></p>
<h3>Results on iMac &#8211; Core i7 2.8Ghz &#8211;  64bits kernel</h3>

<table id="wp-table-reloaded-id-5-no-1" class="wp-table-reloaded wp-table-reloaded-id-5">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Bench</th><th class="column-2">Apple JDK6 b22</th><th class="column-3">Apple JDK6 b24</th><th class="column-4">OpenJDK 1.7 bsd-port</th><th class="column-5">OpenJDK 1.7 macosx-port</th><th class="column-6">OpenJDK 1.6</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">avrora (10 iterations)</td><td class="column-2">3452</td><td class="column-3">3349</td><td class="column-4">3505</td><td class="column-5">3600</td><td class="column-6">3269</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">eclipse (2 iterations)</td><td class="column-2">26081</td><td class="column-3">24506</td><td class="column-4">20664</td><td class="column-5">22676</td><td class="column-6">23706</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">fop (10 iterations)</td><td class="column-2">392</td><td class="column-3">354</td><td class="column-4">299</td><td class="column-5">303</td><td class="column-6">324</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">h2 (2 iterations)</td><td class="column-2">5559</td><td class="column-3">5341</td><td class="column-4">4814</td><td class="column-5">4752</td><td class="column-6">8766</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">jython (2 iterations)</td><td class="column-2">4204</td><td class="column-3">4168</td><td class="column-4"></td><td class="column-5">4094</td><td class="column-6"></td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1">luindex (10 iterations)</td><td class="column-2">2076</td><td class="column-3">763</td><td class="column-4">620</td><td class="column-5">2226</td><td class="column-6">643</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1">lusearch (10 iterations)</td><td class="column-2">1484</td><td class="column-3">2101</td><td class="column-4">2998</td><td class="column-5">3055</td><td class="column-6">1168</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1">pmd (10 iterations)</td><td class="column-2">2055</td><td class="column-3">1884</td><td class="column-4">1614</td><td class="column-5">1876</td><td class="column-6">1635</td>
	</tr>
	<tr class="row-10 even">
		<td class="column-1">sunflow (10 iterations)</td><td class="column-2">2808</td><td class="column-3">2689</td><td class="column-4">2315</td><td class="column-5">2267</td><td class="column-6">2276</td>
	</tr>
	<tr class="row-11 odd">
		<td class="column-1">tomcat (5 iterations)</td><td class="column-2">1935</td><td class="column-3">1850</td><td class="column-4">1772</td><td class="column-5">1751</td><td class="column-6"></td>
	</tr>
	<tr class="row-12 even">
		<td class="column-1">tradebeans (5 iterations)</td><td class="column-2">6633</td><td class="column-3">6127</td><td class="column-4">5135</td><td class="column-5">5092</td><td class="column-6">5242</td>
	</tr>
	<tr class="row-13 odd">
		<td class="column-1">tradesoap (5 iterations)</td><td class="column-2">19250</td><td class="column-3">18265</td><td class="column-4">19443</td><td class="column-5">20217</td><td class="column-6">22195</td>
	</tr>
	<tr class="row-14 even">
		<td class="column-1">xalan (10 iterations)</td><td class="column-2">1067</td><td class="column-3">1673</td><td class="column-4">762</td><td class="column-5">791</td><td class="column-6">775</td>
	</tr>
</tbody>
</table>

<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/04/BenchIMac.png"><img class="alignnone size-large wp-image-827" title="BenchIMac" src="http://blog.hgomez.net/wp-content/uploads/2011/04/BenchIMac-1024x549.png" alt="" width="1024" height="549" /></a></ul>
<h2>Conclusion</h2>
<p>As seen if <a href="http://blog.hgomez.net/2011/04/16/apple-jdks-openjdk-back-to-benchs/">previous article</a>,  latest Apple JVM, 1.6.0-24 perform better than the old 1.6.0-22, and still behind OpenJDK 7 and even OpenJDK 6.  OpenJDK 7 bsd-port is still faster (by a small factor) than OpenJDK 7 from macosx-port (built with LLVM), in both simple threaded (Core2Duo, 2 cores) and large threaded (i7 4 cores with hyperthreading).</p>
<p>This benchmark show how good is <a href="http://ark.intel.com/Product.aspx?id=41316">Intel Core i7</a> comparing to previous generation <a href="http://ark.intel.com/Product.aspx?id=37130&#038;code=T9550">Intel Core2Duo</a>, roughly twice as fast.</p>
<div class="shr-publisher-825"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/04/18/apple-jdk%e2%80%99s-openjdks-%e2%80%93-core2duo-vs-core-i7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple JDK&#8217;s / OpenJDK &#8211; back to benchs</title>
		<link>http://blog.hgomez.net/2011/04/16/apple-jdks-openjdk-back-to-benchs/</link>
		<comments>http://blog.hgomez.net/2011/04/16/apple-jdks-openjdk-back-to-benchs/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 14:52:06 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[OpenJDK]]></category>
		<category><![CDATA[OS/X]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=769</guid>
		<description><![CDATA[It&#8217;s good to see works in progress for Aqua/Cocoa &#8211; AWT ports but what about JVM performances ? Test vms I selected 4 VMs to be tested Apple Java 1.6.0_22 - java version "1.6.0_22" Java(TM) SE Runtime Environment (build 1.6.0_22-b04-314-10M3406a) Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-314, mixed mode) Apple Java 1.6.0_24 - java version [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F04%2F16%2Fapple-jdks-openjdk-back-to-benchs%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F04%2F16%2Fapple-jdks-openjdk-back-to-benchs%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>It&#8217;s good to see works in progress for Aqua/Cocoa &#8211; AWT ports but what about JVM performances ?</p>
<h2>Test vms</h2>
<p>I selected 4 VMs to be tested</p>
<p><code><br />
Apple Java 1.6.0_22 - java version "1.6.0_22"<br />
Java(TM) SE Runtime Environment (build 1.6.0_22-b04-314-10M3406a)<br />
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-314, mixed mode)<br />
</code></p>
<p><code><br />
Apple Java 1.6.0_24 - java version "1.6.0_24"<br />
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-348-10M3406a)<br />
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-348, mixed mode)<br />
</code></p>
<p><code><br />
OpenJDK 7 bsd-port - openjdk version "1.7.0-internal"<br />
OpenJDK Runtime Environment (build 1.7.0-internal-henri_2011_04_11_08_24-b00)<br />
OpenJDK 64-Bit Server VM (build 21.0-b07, mixed mode)<br />
</code></p>
<p><code><br />
OpenJDK 7 macosx-port - openjdk version "1.7.0-internal"<br />
OpenJDK Runtime Environment (build 1.7.0-internal-b00)<br />
OpenJDK 64-Bit Server VM (build 21.0-b07, mixed mode)<br />
</code></p>
<h2>Test system</h2>
<p>My test system is an Apple iMac (iMac11,1 )  with Intel i7 2.80Ghz and 8Gb DDR3 1067Mhz, running under SnowLeopard 10.6.7 64bits.<br />
I wanted to test 64bits VMs on a 64bits machine and this time use a stronger processor with more threads (ie: 4 cores with hyperthreading).</p>
<h3>DaCapo Benchmarks</h3>
<p>I keep the <a href="http://www.dacapobench.org/">DaCapo 9.12-bach</a>.</p>
<p>Bench tests launched with -n X, ie (java -jar dacapo-9.12-bach.jar -n 10 pmd)</p>

<table id="wp-table-reloaded-id-4-no-1" class="wp-table-reloaded wp-table-reloaded-id-4">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Bench</th><th class="column-2">Apple JDK6 b22</th><th class="column-3">Apple JDK6 b24</th><th class="column-4">OpenJDK 1.7 bsd-port</th><th class="column-5">OpenJDK 1.7 macosx-port</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">avrora (10 iterations)</td><td class="column-2">3464ms</td><td class="column-3">3406ms</td><td class="column-4">3281ms</td><td class="column-5">3410ms</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">eclipse (2 iterations)</td><td class="column-2">25635ms</td><td class="column-3">23264ms</td><td class="column-4">22156ms</td><td class="column-5">23503ms</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">fop (10 iterations)</td><td class="column-2">379ms</td><td class="column-3">351ms</td><td class="column-4">301ms</td><td class="column-5">305ms</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">h2 (2 iterations)</td><td class="column-2">5662ms</td><td class="column-3">5308ms</td><td class="column-4">4557ms</td><td class="column-5">4694ms</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">jython (2 iterations)</td><td class="column-2">4287ms</td><td class="column-3">4188ms</td><td class="column-4">Failure (Trace/BPT trap)</td><td class="column-5">4004ms</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1">luindex (10 iterations)</td><td class="column-2">2402ms</td><td class="column-3">763ms</td><td class="column-4">623ms</td><td class="column-5">670ms</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1">lusearch (10 iterations)</td><td class="column-2">1500ms</td><td class="column-3">2173ms</td><td class="column-4">1190ms</td><td class="column-5">4019ms</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1">pmd (10 iterations)</td><td class="column-2">2054ms</td><td class="column-3">1860ms</td><td class="column-4">1582ms</td><td class="column-5">1891ms</td>
	</tr>
	<tr class="row-10 even">
		<td class="column-1">sunflow (10 iterations)</td><td class="column-2">2763ms</td><td class="column-3">2658ms</td><td class="column-4">2342ms</td><td class="column-5">2292ms</td>
	</tr>
	<tr class="row-11 odd">
		<td class="column-1">tomcat (5 iterations)</td><td class="column-2">1943ms</td><td class="column-3">1884ms</td><td class="column-4">1653ms</td><td class="column-5">1778ms</td>
	</tr>
	<tr class="row-12 even">
		<td class="column-1">tradebeans (5 iterations)</td><td class="column-2">6702ms</td><td class="column-3">6199ms</td><td class="column-4">4968ms</td><td class="column-5">5080ms</td>
	</tr>
	<tr class="row-13 odd">
		<td class="column-1">tradesoap (5 iterations)</td><td class="column-2">20058ms</td><td class="column-3">18501ms</td><td class="column-4">21850ms</td><td class="column-5">20114ms</td>
	</tr>
	<tr class="row-14 even">
		<td class="column-1">xalan (10 iterations)</td><td class="column-2">1080ms</td><td class="column-3">926ms</td><td class="column-4">788ms</td><td class="column-5">805ms</td>
	</tr>
</tbody>
</table>

<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/04/Benchs4.png"><img src="http://blog.hgomez.net/wp-content/uploads/2011/04/Benchs4-1024x576.png" alt="" title="Benchs Apple JDKs / OpenJDKs" width="1024" height="576" class="alignnone size-large wp-image-821" /></a></p>
<h2>Conclusion</h2>
<p>Latest Apple JVM, 1.6.0-24 perform better than the old 1.6.0-22 in all of the tests and is near OpenJDK 7 results.</p>
<p>OpenJDK 7 from the bsd-port perform a little better than the macosx-port. The main difference in build is bsd-port is using stock gcc whereas macos-port use llvm-gcc.</p>
<h3>bsd-port using stock-gcc during OpenJDK build</h3>
<pre class="brush: bash; title: ; notranslate">
Compiling /Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/share/vm/adlc/arena.cpp
rm -f ../generated/adfiles/arena.o
/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/ALT_COMPILER_PATH/g++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DAMD64 -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/share/vm/prims -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/share/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/cpu/x86/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/os_cpu/bsd_x86/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/os/bsd/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/os/posix/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/share/vm/adlc -I../generated -DASSERT -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1  -fno-rtti -fno-exceptions -pthread -fcheck-new -m64 -pipe -Werror -g -c -o ../generated/adfiles/arena.o /Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-x86_64/workspace/hotspot/src/share/vm/adlc/arena.cpp
</pre>
<h3>macosx-port using llvm-gcc during OpenJDK build</h3>
<pre class="brush: bash; title: ; notranslate">
Compiling /Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/share/vm/adlc/arena.cpp
rm -f ../generated/adfiles/arena.o
llvm-g++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DIA32 -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/share/vm/prims -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/share/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/cpu/x86/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/os_cpu/bsd_x86/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/os/bsd/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/os/posix/vm -I/Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/share/vm/adlc -I../generated -DASSERT -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_32 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_32 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1  -fno-rtti -fno-exceptions -pthread -fcheck-new -m32 -march=i586 -mstackrealign -pipe -Werror -g -c -o ../generated/adfiles/arena.o /Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-macosx-universal/workspace/hotspot/src/share/vm/adlc/arena.cpp
</pre>
<p>Performances gain in OpenJDK7 VM vs latest Apple 6 VM is smaller than previously (see previous articles on Apple JDK vs OpenJDK 6), switching to OpenJDK 7 will not be only for pure speed but for functionalities.</p>
<div class="shr-publisher-769"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/04/16/apple-jdks-openjdk-back-to-benchs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenJDK 7 on OS/X and IntelliJ IDEA EAP</title>
		<link>http://blog.hgomez.net/2011/04/16/openjdk-7-on-osx-first-swing-app/</link>
		<comments>http://blog.hgomez.net/2011/04/16/openjdk-7-on-osx-first-swing-app/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 14:16:27 +0000</pubDate>
		<dc:creator>Henri Gomez</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[OpenJDK]]></category>
		<category><![CDATA[OS/X]]></category>

		<guid isPermaLink="false">http://blog.hgomez.net/?p=754</guid>
		<description><![CDATA[During the last weeks, Apple started to contribute it&#8217;s Aqua/Cocoa port to OpenJDK 7 on the macosx-port branch. It&#8217;s still works it progress but it was nice to see some SWING apps like IntelliJ IDEA works on the preliminary release. I used IntelliJ IDEA EAP (10.5) and tweaked it&#8217;s startup shell.sh to define AWT_TOOLKIT=CToolkit and [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F04%2F16%2Fopenjdk-7-on-osx-first-swing-app%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hgomez.net%2F2011%2F04%2F16%2Fopenjdk-7-on-osx-first-swing-app%2F&amp;source=hgomez&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>During the last weeks, Apple started to contribute it&#8217;s Aqua/Cocoa port to OpenJDK 7 on the macosx-port branch. It&#8217;s still works it progress but it was nice to see some SWING apps like IntelliJ IDEA works on the preliminary release.</p>
<p>I used IntelliJ IDEA EAP (10.5) and tweaked it&#8217;s startup shell.sh to define AWT_TOOLKIT=CToolkit and add -Dswing.defaultlaf=com.apple.laf.AquaLookAndFeel since Aqua Look and Feel is not default for now.</p>
<pre class="brush: bash; title: ; notranslate">
export CLASSPATH

LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
export LD_LIBRARY_PATHAWT_TOOLKIT

# AWT/Cocoa port for OpenJDK 7 macosx-port
export=CToolkit
JVM_ARGS=&quot;-Dswing.defaultlaf=com.apple.laf.AquaLookAndFeel $JVM_ARGS&quot;

cd &quot;$IDEA_BIN_HOME&quot;
while true ; do
  $IDEA_JDK/bin/java $JVM_ARGS -Djb.restart.code=88 $IDEA_MAIN_CLASS_NAME $*
  test $? -ne 88 &amp;&amp; break
done
</pre>
<p>Then defined OpenJDK 7 from macosx port (available <a href="http://openjdk-osx-build.googlecode.com/files/OpenJDK-OSX-1.7-universal-20110416.dmg">here</a>) as default JVM and started IntelliJ by calling its shell script :</p>
<pre class="brush: bash; title: ; notranslate">
export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
/Applications/IdeaX-IU-106.396.app/bin/idea.sh
</pre>
<p>And I could see a Swing based application running on OpenJDK 7 and OS/X.</p>
<p><a href="http://blog.hgomez.net/wp-content/uploads/2011/04/IntelliJ-OpenJDK7-UI.png"><img class="alignnone size-large wp-image-756" title="IntelliJ-OpenJDK7-UI" src="http://blog.hgomez.net/wp-content/uploads/2011/04/IntelliJ-OpenJDK7-UI-1024x745.png" alt="" width="1024" height="745" /></a></p>
<p>IntelliJ IDEA is so the second major IDE to be compatible with OpenJDK 7 and OS/X &#8211; Cocoa, first one was Eclipse thanks to it&#8217;s SWT/Cocoa bridge.<br />
I tested with both NetBeans 7 RC1 and RC2 but it didn&#8217;t works. I hope it will be fixed in NetBeans 7 final release.</p>
<div class="shr-publisher-754"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.hgomez.net/2011/04/16/openjdk-7-on-osx-first-swing-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

