<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4638238505907341517</id><updated>2012-02-16T01:43:47.400-08:00</updated><category term='finalizers'/><category term='reflection'/><category term='documentation'/><category term='J9'/><category term='bug'/><category term='benchmarks'/><category term='Oracle'/><category term='jsr 166'/><category term='troubleshooting'/><category term='zLinux'/><category term='jni'/><category term='ENVY'/><category term='websphere'/><category term='ISA'/><category term='jsr 292'/><category term='realtime'/><category term='eclipse'/><category term='metronome'/><category term='closures'/><category term='roadrunner'/><category term='humor'/><category term='IBM'/><category term='apache'/><category term='s390'/><category term='jcp'/><category term='cvs'/><category term='ant'/><category term='java'/><category term='java 7'/><category term='anti-pattern'/><category term='psf'/><category term='supercomputer'/><category term='optimize'/><category term='smalltalk'/><category term='scm'/><category term='Jeopardy'/><category term='multicore'/><category term='javiator'/><category term='tooling'/><category term='hudson'/><category term='harmony'/><category term='developerWorks'/><category term='stdt'/><category term='z196'/><category term='java 6'/><category term='Sun'/><category term='interviewing'/><category term='garbage collection'/><category term='MAT'/><category term='OpenJDK'/><title type='text'>Ronald Servant</title><subtitle type='html'>I am a software developer, working for IBM Canada on the J9 Java Virtual Machine.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-146815437287998673</id><published>2011-07-13T08:44:00.001-07:00</published><updated>2011-07-13T08:55:22.261-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='finalizers'/><title type='text'>Finalizers are still bad, don't use them</title><content type='html'>There have been a couple of recent posts to remind us that finalizers in Java are bad.  Unfortunately, sometimes they are required.  Usually because you are using a framework that uses them.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One from &lt;a href="http://thevirtualmachinist.blogspot.com/"&gt;Peter Burka&lt;/a&gt; on a &lt;a href="http://thevirtualmachinist.blogspot.com/2011/07/subtle-issue-of-reachability.html"&gt;reachability issue in Java that also touches on finalizers&lt;/a&gt;. This post has good discussion going on in the comments.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The second is a &lt;a href="http://www.ibm.com/developerworks/"&gt;developerWorks&lt;/a&gt; article on &lt;a href="http://www.ibm.com/developerworks/java/library/j-fv/index.html?ca=drs-"&gt;a finalizer vulnerability&lt;/a&gt;.  It describes how a finalizer attack works and how to write your code to secure yourself against it.  Well worth a read.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-146815437287998673?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/146815437287998673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=146815437287998673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/146815437287998673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/146815437287998673'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2011/07/finalizers-are-still-bad-dont-use-them.html' title='Finalizers are still bad, don&apos;t use them'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-7817875946287366676</id><published>2011-05-18T12:29:00.000-07:00</published><updated>2011-05-18T13:22:05.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='anti-pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='reflection'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Anti-Pattern: Java getter</title><content type='html'>I recently fixed a 'bug' in the IBM JDK where running the following Groovy code would yield an unexpected result.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Consider the following Groovy snippet:&lt;br /&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;println AClass.aVariableName&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now consider this Java code:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;public class AClass {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;static int aVariableName =  1;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public int getAVariableName() {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;return aVariableName;&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result of running the Groovy code will be to return 1.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What if we changed the Java code to:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;public class AClass {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;static int aVariableName =  1;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;public int getAVariableName() {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if (aVariableName &amp;lt; 1) return aVariableName;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;return 10;&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What would the result of running the Groovy code be?  What would you want it to be?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result in this case would be 1.  The desired result is likely 10 (or at least that was the desired result in the case of the 'bug' I fixed).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How does this happen?  I am no Groovy expert, but if I were to guess, it would appear that Groovy first tries to match aVariableName to a variable on AClass.   In this case it finds one and therefore returns the value of that variable.  This is most likely accomplished using reflection, so using a security manager could make this illegal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now let's consider this final Java code snippet:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;public class AClass {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; private &lt;/span&gt;static int aPrivateVariableName = 1;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;public int getAVariableName() {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;if (aPrivateVariableName &amp;lt; 1) return aPrivateVariableName ;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;return 10;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What would the result of running the Groovy code be?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this case it returns 10, as I hoped would be from the earlier version of the Java code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Again not a Groovy expert,  but it appears that when Groovy doesn't find a variable of the appropriate name on the class it will then look for a getter.  In this case it finds getAVariableName() and will invoke it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what is the anti-pattern?  Don't create what looks like a getter method for a variable if it is in fact NOT a simple getter.   The code in this case does some processing and may simply return the variable or perhaps something else entirely.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is this really an anti-pattern for Java programming though? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It could be argued that because the variable is private we should be able to name it whatever we want.  The ambiguity comes in when new languages, like Groovy, start being implemented in Java.  Groovy has, rightly or wrongly, made it exceedingly easy to reach for that private variable.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Should Groovy be changed to look for the 'getter' method first?  Maybe.  But that doesn't change the fact that something that looks like a getter isn't one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have all been taught, I hope, to be careful when naming our variables and methods.  This is just a new challenge.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-7817875946287366676?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/7817875946287366676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=7817875946287366676' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7817875946287366676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7817875946287366676'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2011/05/anti-pattern-java-getter.html' title='Anti-Pattern: Java getter'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-2227281554509496318</id><published>2011-03-10T12:33:00.001-08:00</published><updated>2011-07-13T08:33:42.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='developerWorks'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='MAT'/><category scheme='http://www.blogger.com/atom/ns#' term='ISA'/><title type='text'>Using Eclipse MAT to Analyze a Large Heap Dump</title><content type='html'>I recently had a large heap dump that I needed to analyze for potential leaks or other patterns that could lead to poor performance. I wanted to use &lt;a href="http://www.eclipse.org/mat/"&gt;Eclipse Memory Analyzer (MAT)&lt;/a&gt;, which you can get bundled in &lt;a href="http://www-01.ibm.com/software/support/isa/"&gt;IBM Support Assistant (ISA)&lt;/a&gt; or as &lt;a href="http://www.eclipse.org/mat/"&gt;a standalone application&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The size of the heap dump I needed to analyze was 12GB and it was a challenge to get processed.  My windows desktop with 8GB of RAM had a hard time (it locked up over the weekend trying). I had a bit better luck with my iMac, also with 8GB of RAM, but the machine was unusable the entire time the heap dump was being parsed.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem was that I was shooting my self in the foot on those platforms.  I was setting the -Xmx of MAT to between 10GB and 20GB.  If you actually use that much memory you will notice that a machine with only 8GB of RAM will start swapping itself to death.  The iMac did in fact eventually finish doing the initial parse of the file (after about 15 or 16 hours).  I did this over the weekend at home.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When I got back into the office on Monday and noticed that my desktop had locked up, I decided to hand the dump off to a colleague at work who has access to a set of dedicated servers for this purpose.  The problem there is that the default heap sized used for MAT was ~5GB, which is too small when trying to analyze a 12GB heap dump.  We wasted a day and couple of machines trying to parse the dump.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So now I was at 4 wasted days trying to analyze this rather large dump.  We tried one more time with the 'dedicated' servers and got a parsed dump about 18 hours later, with I think an 8GB Xmx for MAT.  Unfortunately, after downloading all the parsed data I realized that none of the standard reports had been run.  So I still needed a machine I could load the parsed heap dump into and run the reports I was looking for and perhaps use some of the ad hock investigation tools MAT provides.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I did what I should have done the second I originally received this heap dump. I used the large linux box we had in the lab.  It is a 64 core 64bit system with 64GB of RAM.  I set the Xmx to 30GB for MAT and launched the application.  It soaked up the parsed heap dump and ran the reports I wanted in minutes not hours.  It was a fantastic experience and it allowed me to see how fantastic a tool MAT really is.  MAT appears to be generally single threaded in its implementation, so lots CPU cores won't really help make it run faster. It is, however,  memory hungry, so lots of RAM is a big bonus.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here is my, I now feel obvious, recommendation: when running MAT on a heap dump you will want to set the Xmx for MAT to at least the size of the heap dump you are analyzing and, most importantly, run it on a machine that has at least as much RAM as the Xmx you specified.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, if the heap dump represents a Java heap of 20GB*** you will want to run MAT with an Xmx of 20GB or larger and run it on a machine that has 20GB of RAM or more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;*** The heap dump file is likely significantly smaller than the Java heap it represents.  My 12GB heap dump was represented in a file that was 3.5GB in size.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;UPDATE: There is &lt;a href="http://www.ibm.com/developerworks/java/library/j-memoryanalyzer/index.html"&gt;a fantastic new article on developerWorks about MAT&lt;/a&gt; and it's various features.  Well worth a read through.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;UPDATE 2011/07/13: Another article on how to &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/troubleshootingjava/entry/64bit_memory_analyzer?lang=en"&gt;build yourself a 64bit standalone MAT with IBM extensions&lt;/a&gt;.&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-2227281554509496318?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/2227281554509496318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=2227281554509496318' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2227281554509496318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2227281554509496318'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2011/03/using-eclipse-mat-to-analyze-large-heap.html' title='Using Eclipse MAT to Analyze a Large Heap Dump'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-104773283371864121</id><published>2010-10-13T13:32:00.000-07:00</published><updated>2010-10-13T13:49:01.144-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='harmony'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>IBM is not abandoning Harmony</title><content type='html'>With the recent announcement that IBM is joining the OpenJDK community it is now a widely held belief that IBM is abandoning the Apache Harmony project.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is not the case.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IBM has shipped product that contains Harmony code (e.g., IBM SDK 6.0). IBM will support it's customers, that includes ensuring that the Harmony code we shipped is supported.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Will there be the same level of investment in Harmony by IBM as there was in the past? No, not likely, as IBM will shift the bulk of its resources in this area to OpenJDK.  Harmony, however, will not be abandoned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;DISCLAIMER: These are my opinions only and not those of IBM.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-104773283371864121?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/104773283371864121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=104773283371864121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/104773283371864121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/104773283371864121'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/10/ibm-is-not-abandoning-harmony.html' title='IBM is not abandoning Harmony'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-5848296947421348241</id><published>2010-10-12T14:35:00.000-07:00</published><updated>2010-10-13T04:43:43.865-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='harmony'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenJDK'/><title type='text'>IBM - Oracle working together on OpenJDK</title><content type='html'>A quick round up of blog postings about the &lt;a href="http://www.oracle.com/us/corporate/press/176988"&gt;IBM - Oracle announcement &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/"&gt;IBM joins the OpenJDK community, will help unify open source Java efforts&lt;/a&gt;&lt;br /&gt;Bob discusses the pragmatic choice.&lt;/li&gt;&lt;li&gt;&lt;a href="http://nighthacks.com/roller/jag/entry/peace_breaks_out"&gt;Peace breaks out&lt;/a&gt;&lt;br /&gt;James is wondering if this will lead to a renewed JCP.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.eclipse.org/blogs/mike/2010/10/11/an-unexpected-pleasure/"&gt;An Unexpected Pleasure&lt;/a&gt;&lt;br /&gt;Mike discusses an end to the "Java Wars".&lt;/li&gt;&lt;li&gt;&lt;a href="http://tellison.blogspot.com/2010/10/ibm-and-openjdk.html"&gt;IBM and openJDK&lt;/a&gt;&lt;br /&gt;Tim hints at the future of the Harmony project.&lt;/li&gt;&lt;li&gt;&lt;a href="http://robilad.livejournal.com/63940.html"&gt;OpenJDK.Community += IBM&lt;/a&gt;&lt;br /&gt;Dalibor hypes OpenJDK and welcomes IBM to the community.&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.sun.com/mr/entry/ibm_to_join_openjdk"&gt;IBM to Join OpenJDK&lt;/a&gt;&lt;br /&gt;Mark highlights the area that IBM is likely to focus its contributions (Class Library) and looks forward to working with IBM engineers on OpenJDK and the JCP.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This is an exciting time to be working at IBM on the J9 JVM.  I look forward to seeing how this new collaboration will enable a more rapid pace of change for the Java language and the runtime.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Update: Here is a more comprehensive round up of the reaction to the announcement from &lt;/i&gt;&lt;a href="http://blogs.sun.com/theaquarium/entry/ibm_and_oracle_to_collaborate"&gt;&lt;i&gt;The Aquarium&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-5848296947421348241?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/5848296947421348241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=5848296947421348241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/5848296947421348241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/5848296947421348241'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/10/ibm-oracle-working-together-on-openjdk.html' title='IBM - Oracle working together on OpenJDK'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-7852048555213409819</id><published>2010-09-08T14:00:00.000-07:00</published><updated>2010-09-08T14:04:52.604-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='z196'/><category scheme='http://www.blogger.com/atom/ns#' term='s390'/><category scheme='http://www.blogger.com/atom/ns#' term='zLinux'/><title type='text'>IBM to Ship World's Fastest Microprocessor</title><content type='html'>Fresh off the presses:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.prnewswire.com/news-releases/ibm-to-ship-worlds-fastest-microprocessor-101961313.html"&gt;IBM to Ship World's Fastest Microprocessor&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;IBM (NYSE: IBM) today announced details of the world's fastest computer chip -- the microprocessor in a new version of the IBM mainframe that begins shipping to customers on Sept. 10.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;You can read the rest &lt;a href="http://www.prnewswire.com/news-releases/ibm-to-ship-worlds-fastest-microprocessor-101961313.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But I'd like to call out the footnotes:&lt;br /&gt;&lt;blockquote&gt;(1)-Up to 60% increase in total system capacity for Data managed with DB2 and IMS.  As measured by IBM Large System Performance Reference (LSPR) workloads using z/OS® 1.11  &lt;br /&gt;&lt;br /&gt;(2)-&lt;span style="font-weight:bold;"&gt;Up to a 66% improvement in Java performance with Linux on System z&lt;/span&gt;. The improvement on z196 compared to z10 was measured using a single Java application that focus on a variety of Java Runtime Environment (JRE) application functions typically used in both client and servers.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-7852048555213409819?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/7852048555213409819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=7852048555213409819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7852048555213409819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7852048555213409819'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/09/ibm-to-ship-worlds-fastest.html' title='IBM to Ship World&apos;s Fastest Microprocessor'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-2008256915127523551</id><published>2010-09-04T05:24:00.000-07:00</published><updated>2010-09-04T07:19:39.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interviewing'/><title type='text'>Interview Tip: Legible Handwriting</title><content type='html'>As I mentioned in my &lt;a href="http://ronald-servant.blogspot.com/2010/09/were-hiring.html"&gt;previous posting&lt;/a&gt;, &lt;a href="https://jobs3.netmedia1.com/cp/job_summary.jsp?job_id=SWG-0321806"&gt;we're hiring&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Of course with that announcement comes the inevitable interviewing process.  Wherein a couple of us will sit in a room and interview a candidate.  Don't be shocked, we ask you to write code for us.  &lt;br /&gt;&lt;br /&gt;Well, here is my "tip of the day" or as we would say on twitter #protip: when writing code (or likely anything) on a whiteboard (or other surface) make sure the interviewer can read your handwriting! &lt;br /&gt;&lt;br /&gt;If I can't read your code I won't be able to tell if you wrote it correctly.  I'll simply assume you haven't (I know, I'm mean).  But really, do you want the job or not?  If you do, prove it to me.  Don't waste my time writing illegible chicken scratch.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/nationaalarchief/3333358117/" title="Veranderende rolpatronen / Changing role patterns by Nationaal Archief, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3621/3333358117_9a08194694.jpg" width="500" height="393" alt="Veranderende rolpatronen / Changing role patterns" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-2008256915127523551?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/2008256915127523551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=2008256915127523551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2008256915127523551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2008256915127523551'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/09/interview-tip-legible-handwriting.html' title='Interview Tip: Legible Handwriting'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3621/3333358117_9a08194694_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-3414395051715138908</id><published>2010-09-01T12:58:00.000-07:00</published><updated>2010-09-01T13:01:21.442-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J9'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><title type='text'>We're Hiring</title><content type='html'>What &lt;a href="http://thevirtualmachinist.blogspot.com/"&gt;Pete&lt;/a&gt; &lt;a href="http://thevirtualmachinist.blogspot.com/2010/08/were-hiring.html"&gt;said&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And I guess I should welcome my colleague &lt;a href="http://thevirtualmachinist.blogspot.com/"&gt;Peter Burka&lt;/a&gt; to the world of blogging. Although, I appear to be about a month late.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-3414395051715138908?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/3414395051715138908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=3414395051715138908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3414395051715138908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3414395051715138908'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/09/were-hiring.html' title='We&apos;re Hiring'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6739836347896014837</id><published>2010-06-02T10:08:00.000-07:00</published><updated>2010-06-02T10:17:18.392-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J9'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='java 7'/><title type='text'>Updated IBM Java 7 Beta Available</title><content type='html'>The second release of the &lt;a href="http://www.ibm.com/developerworks/java/jdk/beta/index.html"&gt;IBM Java 7 Beta&lt;/a&gt; occurred earlier today.  Now available for download are &lt;a href="https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=swg-sdk7&amp;S_TACT=105AGX05&amp;S_CMP=JDK"&gt;SDKs for Linux and AIX&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Try them out and let us know &lt;a href="http://www.ibm.com/developerworks/forums/forum.jspa?forumID=2152&amp;cat=10"&gt;what you think&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6739836347896014837?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6739836347896014837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6739836347896014837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6739836347896014837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6739836347896014837'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/06/updated-ibm-java-7-beta-available.html' title='Updated IBM Java 7 Beta Available'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-8550201375567847359</id><published>2010-04-22T14:25:00.000-07:00</published><updated>2010-04-22T14:35:11.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='closures'/><category scheme='http://www.blogger.com/atom/ns#' term='java 7'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 292'/><category scheme='http://www.blogger.com/atom/ns#' term='jcp'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 166'/><title type='text'>Two Great dW articles on Java 7</title><content type='html'>The first &lt;a href="http://www.ibm.com/developerworks/java/library/j-java7.html"&gt;developerWorks article&lt;/a&gt; is on the current state of Java 7 from IBM's perspective.&lt;br /&gt;&lt;br /&gt;A highlight being &lt;a href="http://www.ibm.com/developerworks/podcast/dwi/cm-int041910-java7.mp3"&gt;Trent Gray-Donald's podcast&lt;/a&gt; found mid-way in the article.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.ibm.com/developerworks/java/library/j-javaroundtable/index.html?ca=drs-"&gt;second&lt;/a&gt; is a roundtable discussion on the state of Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-8550201375567847359?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/8550201375567847359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=8550201375567847359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/8550201375567847359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/8550201375567847359'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/04/two-great-dw-articles-on-java-7.html' title='Two Great dW articles on Java 7'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-1089999864280177798</id><published>2010-03-09T10:23:00.000-08:00</published><updated>2010-03-09T10:41:05.091-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J9'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='java 7'/><title type='text'>IBM Java 7 Open Beta</title><content type='html'>IBM has launched an &lt;a href="http://www.ibm.com/developerworks/java/jdk/beta/index.html"&gt;Open beta program for IBM SDK for Java 7 on the Linux platform&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please go and give it a try and give us &lt;a href="http://www.ibm.com/developerworks/forums/forum.jspa?forumID=2152&amp;cat=10"&gt;your feedback&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-1089999864280177798?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/1089999864280177798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=1089999864280177798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/1089999864280177798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/1089999864280177798'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2010/03/ibm-java-7-open-beta.html' title='IBM Java 7 Open Beta'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-9181152656835859173</id><published>2009-12-11T12:08:00.000-08:00</published><updated>2009-12-11T12:14:12.050-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmarks'/><title type='text'>Benchmark fibs</title><content type='html'>Elisabeth Stahl over at "&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/benchmarking"&gt;Benchmarking and systems performance&lt;/a&gt;" has a great &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/benchmarking/entry/benchmark_s_latest_scandal3?lang=en"&gt;post&lt;/a&gt; on Sun's latest &lt;a href="http://www.sun.com/aboutsun/pr/2009-12/sunflash.20091208.1.xml"&gt;press release&lt;/a&gt; announcing their &lt;a href="http://www.sap.com/solutions/benchmark"&gt;SAP SD 2-tier benchmark&lt;/a&gt; results.&lt;br /&gt;&lt;br /&gt;Sun is trying to look good comparing a 48 core 256 GB system to an 8 core 64 GB system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-9181152656835859173?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/9181152656835859173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=9181152656835859173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/9181152656835859173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/9181152656835859173'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/12/benchmark-fibs.html' title='Benchmark fibs'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-3878218296146067659</id><published>2009-11-25T12:06:00.000-08:00</published><updated>2009-11-25T12:23:02.099-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multicore'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='closures'/><category scheme='http://www.blogger.com/atom/ns#' term='java 7'/><title type='text'>Closures in Java 7, not the usual suspects</title><content type='html'>Mark Reinhold &lt;a href="http://blogs.sun.com/mr/entry/closures"&gt;reveals&lt;/a&gt; some motivation and initial details on the inclusion of closures in Java 7.&lt;br /&gt;&lt;br /&gt;The key motivator: multicore processors. To exploit multicore, we need to write good parallel code.  As Mark says: &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;blockquote&gt;Working with parallel arrays in Java, unfortunately, &lt;a href="http://www.ibm.com/developerworks/java/library/j-jtp03048.html?S_TACT=105AGX01&amp;S_CMP=LP#listing2"&gt;requires lots of boilerplate code&lt;/a&gt; to solve even simple problems.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Closure_(computer_science)"&gt;Closures &lt;/a&gt;can &lt;a href="http://www.ibm.com/developerworks/java/library/j-jtp03048.html?S_TACT=105AGX01&amp;S_CMP=LP#4.0"&gt;eliminate that boilerplate&lt;/a&gt;. &lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The adopted proposal?  Not any of the original three (&lt;a href="http://www.javac.info/closures-v05.html"&gt;BGGA&lt;/a&gt;, &lt;a href="http://docs.google.com/Doc.aspx?id=k73_1ggr36h"&gt;CICE&lt;/a&gt;, and &lt;a href="http://docs.google.com/Doc?id=ddhp95vd_6hg3qhc"&gt;FCM&lt;/a&gt;), but rather a new one. &lt;br /&gt;&lt;br /&gt;Mark outlines his feature list for a “working programmer’s language.” &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;blockquote&gt; To support the principal use case of parallel programming we really only need two key features:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;A literal syntax, for writing closures, and&lt;br /&gt;  &lt;li&gt;Function types, so that closures are ﬁrst-class citizens in the type system.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;To integrate closures with the rest of the language and the platform we need two additional features:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt; Closure conversion, so that a closure of appropriate type can be used where an object of a single-method interface or abstract class is required, and&lt;br /&gt;  &lt;li&gt;Extension methods, so that closure-oriented bulk-data methods can be retroﬁtted onto existing libraries, and in particular the Collections Framework, without breaking compatibility.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;A couple of other integration features worth considering are ﬁrst-class method references and the ability of function types to include exception parameters. &lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;So it looks like Sun/Oracle will implement this new fourth proposal and submit it as a new JSR for inclusion in Java 7. &lt;br /&gt;&lt;br /&gt;I'm happy to see closures back on the roadmap for Java 7 and will be very interested to see how this evolves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-3878218296146067659?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/3878218296146067659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=3878218296146067659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3878218296146067659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3878218296146067659'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/11/closures-in-java-7-not-usual-suspects.html' title='Closures in Java 7, not the usual suspects'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-430715539323806240</id><published>2009-07-08T13:24:00.000-07:00</published><updated>2009-07-08T14:06:25.641-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='jni'/><title type='text'>Avoiding JNI pitfalls</title><content type='html'>There is a great new article on &lt;a href="http://www.ibm.com/developerworks/"&gt;developerWorks&lt;/a&gt; entitled "&lt;a href="http://www.ibm.com/developerworks/java/library/j-jni/index.html?ca=dgr-twtrJNI-Bestdth-j&amp;S_TACT=105AGY83&amp;S_CMP=TWDW"&gt;Best practices for using the Java Native Interface&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Here is the summary:&lt;br /&gt;&lt;blockquote&gt;The Java™ Native Interface (JNI) is a standard Java API that enables Java code to integrate with code written in other programming languages. JNI can be a key element in your toolkit if you want to leverage existing code assets — for example, in a service-oriented architecture (SOA) or a cloud-based system. But when used without due care, JNI can quickly lead to poorly performing and unstable applications. This article identifies the top 10 JNI programming pitfalls, provides best practices for avoiding them, and introduces the tools available for implementing these practices.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I think my "favorite" pitfall is &lt;a href="http://www.ibm.com/developerworks/java/library/j-jni/index.html?ca=dgr-twtrJNI-Bestdth-j&amp;S_TACT=105AGY83&amp;S_CMP=TWDW#wrong"&gt;using the wrong JNIEnv&lt;/a&gt;. I've seen many a crash due to this error.  Usually, this occurs because someone thought it was a good idea to cache the JNIEnv once and use the cached version.  Problem is that the JNIEnv is thread specific and the cached one can end up being used from a thread other than the one the JNIEnv belongs to.  &lt;br /&gt;&lt;br /&gt;Caching of the JNIEnv is typically attempted when integrating legacy code into a Java application where you would need to change many function signatures to accommodate passing the JNIEnv down to the right function.  Instead of caching the JNIEnv, cache the JavaVM; it is not thread specific and can be used to obtain the appropriate JNIEnv using the GetEnv() call.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-430715539323806240?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/430715539323806240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=430715539323806240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/430715539323806240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/430715539323806240'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/07/avoiding-jni-pitfalls.html' title='Avoiding JNI pitfalls'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6478293187806953391</id><published>2009-06-12T08:29:00.001-07:00</published><updated>2009-06-12T08:45:31.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><title type='text'>Troubleshooting Resources</title><content type='html'>I've gathered below some useful resources when trying to diagnose a Java problem when running IBM Java SDKs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/javasdk/tools/topic/com.ibm.java.doc.igaa/_1vg00011e17d8ea-1163a087e6c-7ffe_1001.html"&gt;Troubleshooting InfoCenter&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Guided debugging for Java&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://services.alphaworks.ibm.com/IGAA/"&gt;IBM Guided Activity Assistant&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;IBM® Guided Activity Assistant is a tool that guides you step-by-step through troubleshooting and configuration tasks. It helps you identify symptoms, collect diagnostic data, analyze the collected data, determine a root cause, and apply a solution to resolve the symptoms. If you cannot resolve the problem, IBM Guided Activity Assistant helps you export the troubleshooting case and send it to IBM so they can investigate the problem.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.ibm.com/developerworks/java/jdk/tools/"&gt;IBM Monitoring and Diagnostic Tools for Java&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;IBM provides tooling and documentation to assist in the understanding, monitoring, and problem diagnosis of applications and deployments running IBM Runtime Environments for Java.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.ibm.com/developerworks/java/jdk/diagnosis/"&gt;Diagnosis documentation&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;This diagnosis information covers IBM-specific features of IBM's offerings. New or revised material is clearly shown by revision bars to the left of the changes and by red text in online versions.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/forums/forum.jspa?forumID=367"&gt;developerWorks Forum: IBM Java Runtimes and SDKs&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;The IBM Java Technology Centre (JTC) produces development kits for IBM's most popular platforms. Technical Lead for IBM's Java on Unix Support Chris Bailey and other members of the IBM JTC team invite you to this discussion forum to share knowledge and ask questions about your experiences of using the various IBM runtimes and kits.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6478293187806953391?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6478293187806953391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6478293187806953391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6478293187806953391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6478293187806953391'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/06/troubleshooting-resources.html' title='Troubleshooting Resources'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-174798074827109627</id><published>2009-06-08T12:09:00.000-07:00</published><updated>2009-06-08T12:21:26.747-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><category scheme='http://www.blogger.com/atom/ns#' term='hudson'/><category scheme='http://www.blogger.com/atom/ns#' term='psf'/><title type='text'>Hudson Plugin for Eclipse Project Set Files</title><content type='html'>We track some of our source code configurations using &lt;a href="http://wiki.eclipse.org/PSF"&gt;Eclipse Project Set Files (PSFs)&lt;/a&gt;.  We also use &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt; for portions of our build infrastructure.  Making them work together, so far, has required relying on some &lt;a href="http://ant.apache.org/manual/tasksoverview.html"&gt;ant tasks&lt;/a&gt; that we have built to handle PSFs.&lt;br /&gt;&lt;br /&gt;Not having PSFs fully integrated into Hudson has limited our ability to use some of the nicer features that Hudson has to offer (e.g., Poll SCM, with a PSF as a Source Code Management entry).&lt;br /&gt;&lt;br /&gt;I've searched around the web and have been unable to find a &lt;a href="http://wiki.hudson-ci.org/display/HUDSON/Plugins"&gt;Hudson plugin&lt;/a&gt; for PSFs.&lt;br /&gt;&lt;br /&gt;So I intend to build one myself. I'll post some progress updates here to let you know how I am doing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-174798074827109627?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/174798074827109627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=174798074827109627' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/174798074827109627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/174798074827109627'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/06/hudson-plugin-for-eclipse-project-set.html' title='Hudson Plugin for Eclipse Project Set Files'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6340978038133369384</id><published>2009-06-04T13:41:00.000-07:00</published><updated>2009-06-04T13:58:35.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='optimize'/><title type='text'>IBM Real Time Application Execution Optimizer for Java</title><content type='html'>There is a new tool available on alphaWorks: &lt;a href="http://www.alphaworks.ibm.com/tech/javaoptimizer?open&amp;ca=drs-aw-jav&amp;S_TACT=106AH21W&amp;S_CMP=AWRSSJAV"&gt;IBM Real Time Application Execution Optimizer for Java&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This tool will take a "compiled Java application" (AKA a set of jar files) and will optimize it in various ways.&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.alphaworks.ibm.com/tech/javaoptimizer?open&amp;ca=drs-aw-jav&amp;S_TACT=106AH21W&amp;S_CMP=AWRSSJAV"&gt;alphaWorks&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;The tool provides the following functions:&lt;br /&gt;&lt;br /&gt;    &lt;ul&gt;&lt;br /&gt;&lt;li&gt; Escape analysis of objects per method invocation&lt;br /&gt;&lt;li&gt; Control flow analysis that splits an application into archives according to thread accessibility&lt;br /&gt;&lt;li&gt; Control flow analysis that detects potential occurrences of real-time java runtime errors MemoryAccessError, IllegalAssignmentError, IllegalThreadStateException&lt;br /&gt;&lt;li&gt; Control flow analysis that determines entry points into an application&lt;br /&gt;&lt;li&gt; Addition of stackmaps to Java class files&lt;br /&gt;&lt;li&gt; Verification of Java class files&lt;br /&gt;&lt;li&gt; Auto-generation of classes that will load and initialize all other classes within the same archive&lt;br /&gt;&lt;li&gt; Specialized packaging of Java applications into deployable archives by packaging all referenced&lt;br /&gt;&lt;li&gt; Classes from a dual class path&lt;br /&gt;&lt;li&gt; Removal of unwanted attributes from Java class files&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It also does some very nice things when optimizing for &lt;a href="http://jcp.org/en/jsr/detail?id=1"&gt;Real-time Java (JSR 1)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.alphaworks.ibm.com/tech/javaoptimizer?open&amp;ca=drs-aw-jav&amp;S_TACT=106AH21W&amp;S_CMP=AWRSSJAV"&gt;alphaWorks&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;The tool separates application classes into the following categories:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; NoHeapRealtimeThread (NHRT) accessible&lt;br /&gt;&lt;li&gt; RealtimeThread accessible&lt;br /&gt;&lt;li&gt; regular thread accessible&lt;br /&gt;&lt;li&gt; inaccessible: classes not accessible to any thread.&lt;br /&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6340978038133369384?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6340978038133369384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6340978038133369384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6340978038133369384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6340978038133369384'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/06/ibm-real-time-application-execution.html' title='IBM Real Time Application Execution Optimizer for Java'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-9177219107676611342</id><published>2009-05-29T12:56:00.000-07:00</published><updated>2009-05-29T13:07:15.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='tooling'/><title type='text'>Health Center (Tech Preview) Version 0.5</title><content type='html'>&lt;a href="http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/"&gt;IBM Monitoring and Diagnostic Tools for Java - Health Center v0.5&lt;/a&gt; has recently been released.&lt;br /&gt;&lt;br /&gt;I've had a hand helping get this product ready and feel proud to see it now available for use in the wild.  Please &lt;a href="http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/"&gt;download it&lt;/a&gt;, try it out, and &lt;a href="http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1461"&gt;give us your feedback&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-9177219107676611342?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/9177219107676611342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=9177219107676611342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/9177219107676611342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/9177219107676611342'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/05/health-center-tech-preview-version-05.html' title='Health Center (Tech Preview) Version 0.5'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-4868099330099678982</id><published>2009-04-27T12:27:00.000-07:00</published><updated>2009-05-21T06:25:22.625-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='supercomputer'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeopardy'/><title type='text'>IBM "Watson" takes on Jeopardy</title><content type='html'>Another thing that makes working at IBM cool.&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3e22ufcqfTs&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3e22ufcqfTs&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-4868099330099678982?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/4868099330099678982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=4868099330099678982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/4868099330099678982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/4868099330099678982'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2009/04/ibm-watson-takes-on-jeopardy.html' title='IBM &quot;Watson&quot; takes on Jeopardy'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-7446751245451233641</id><published>2008-10-10T12:48:00.000-07:00</published><updated>2008-10-10T13:00:14.641-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scm'/><category scheme='http://www.blogger.com/atom/ns#' term='smalltalk'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='stdt'/><category scheme='http://www.blogger.com/atom/ns#' term='ENVY'/><category scheme='http://www.blogger.com/atom/ns#' term='cvs'/><title type='text'>STDT Guinea Pig</title><content type='html'>Being a member of the J9 Virtual Machine team I have had the opportunity to use Smalltalk in my day to day job.  Now, I get to be a &lt;a href="http://www.ibm.com/developerworks/blogs/page/stdt?entry=how_wrathful_are_you"&gt;guinea pig&lt;/a&gt; for a new Smalltalk IDE called &lt;a href="http://www.ibm.com/developerworks/blogs/page/stdt"&gt;STDT (Smalltalk Development Tools)&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;My first impressions are quite positive.  This is a real upgrade in terms of being able to integrate Smalltalk changesets and C changesets together.  In the past if you submitted code that needed to ported to another stream or, heaven forbid, backed out due to build or test issues, backing out the Smalltalk portion using ENVY was onerous. Now with the Smalltalk source being mastered in CVS (or any of your other favorite SCMs) it is a piece of cake to pick up a changeset and manipulate it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-7446751245451233641?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/7446751245451233641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=7446751245451233641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7446751245451233641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7446751245451233641'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2008/10/stdt-guinea-pig.html' title='STDT Guinea Pig'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-2211245169787983676</id><published>2008-06-10T16:29:00.000-07:00</published><updated>2008-06-10T16:32:34.349-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='roadrunner'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><title type='text'>Beep! Beep!</title><content type='html'>&lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/20210.wss"&gt;This&lt;/a&gt; &lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/20210.wss"&gt;is&lt;/a&gt; &lt;a href="http://www.ibm.com/ibm/ideasfromibm/us/roadrunner/20080609/index.shtml?sa_campaign=message/ideas/leadspace/all/roadrunnerflash&amp;cm_mmc=other-_-h-_-dynfoot-_-digg"&gt;one&lt;/a&gt; &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=5&amp;url=http%3A%2F%2Fnews.cnet.com%2FIBMs-Roadrunner-set-to-smash-supercomputing-marks%2F2100-1010_3-6218169.html&amp;ei=LQ5PSLnpBpuIhQKMmvyGAg&amp;usg=AFQjCNG5VxpPWhLqhJ5ubSDkw-RMwY94qQ&amp;sig2=OcQAP9xsl16prizLRyyOvg"&gt;reason&lt;/a&gt; &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=6&amp;url=http%3A%2F%2Fwww.engadget.com%2F2008%2F06%2F09%2Fworlds-fastest-ibms-roadrunner-supercomputer-breaks-petaflop%2F&amp;ei=LQ5PSLnpBpuIhQKMmvyGAg&amp;usg=AFQjCNEX3dCCRQaYdrkxSGoHF5lZV25T5A&amp;sig2=XQp-SMYOjf5ue9G_9VCgeg"&gt;why&lt;/a&gt; it is &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=7&amp;url=http%3A%2F%2Fwww.informationweek.com%2Fnews%2Fhardware%2Fsupercomputers%2FshowArticle.jhtml%3FarticleID%3D208402904&amp;ei=LQ5PSLnpBpuIhQKMmvyGAg&amp;usg=AFQjCNEZhlkSvKGiNQysVWvuqDHjvOw9KA&amp;sig2=UQUuJEDYAemRXSbKAJWaKg"&gt;cool&lt;/a&gt; to work at &lt;a href="http://www.ibm.com/"&gt;IBM&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-2211245169787983676?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/2211245169787983676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=2211245169787983676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2211245169787983676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2211245169787983676'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2008/06/beep-beep.html' title='Beep! Beep!'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-1705200626260960243</id><published>2007-12-08T05:41:00.001-08:00</published><updated>2007-12-08T05:46:27.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='java 6'/><title type='text'>IBM Java 6 is GA</title><content type='html'>IBM Java 6 was declared GA (Generally Available) on Friday December 7th.  There was much celebration in the office for all the hard work that went into delivering this release.  I am proud to have worked with the team that made this release possible.&lt;br /&gt;&lt;br /&gt;You can download the results here: &lt;a href="http://www-128.ibm.com/developerworks/java/jdk/index.html"&gt;http://www-128.ibm.com/developerworks/java/jdk/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Try it out and let us know what you think here: &lt;a href="http://www.ibm.com/developerworks/forums/forum.jspa?forumID=367"&gt;http://www.ibm.com/developerworks/forums/forum.jspa?forumID=367&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-1705200626260960243?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/1705200626260960243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=1705200626260960243' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/1705200626260960243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/1705200626260960243'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/12/ibm-java-6-is-ga.html' title='IBM Java 6 is GA'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-7230533435572243225</id><published>2007-08-10T19:05:00.000-07:00</published><updated>2007-08-10T19:20:51.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='harmony'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Open TCK?  Sadly, no.</title><content type='html'>From &lt;a href="http://blogs.sun.com/richgreen/entry/score_another_for_clarity_and"&gt;Rich Green&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;For what it's worth, I completely understand why there is disagreement. There are fundamental principles and goals that separately define the GPL and Apache Software Licenses. Unlike the GPL, the Apache open source license does not require innovation to remain in the open. Java technology governed by the Apache license could be altered by any organization—commercial or non-profit—and rendered both incompatible and inaccessible to the community. The trust and value of “Write Once Run Anywhere” could not be upheld.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's good to know that Rich understands that there is a disagreement and why.  However, Rich implies that people or companies that take &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; source and alter it could then market that new source as Java.  That is simply not the case.  As that altered source would not have passed the TCK.  He also implies that the Apache Harmony project would itself become incompatible.  This is clearly ludicrous, since everyone would be able to see the current pass rate of Harmony against the TCK tests. Oh wait, no you can't, since Sun is not allowing Apache to have a license to run the TCK that doesn't include field of use restrictions.&lt;br /&gt;&lt;br /&gt;The only way that any entity can distribute (for profit or not) a product and say that it is Java is if they have passed the TCK.&lt;br /&gt;&lt;br /&gt;Removing the field of use restrictions being imposed on the Apache Harmony project would not allow entities outside the Harmony project who have modified Apache Harmony code to run the TCK under the license granted to Harmony project.&lt;br /&gt;&lt;br /&gt;Any entity that wants to distribute a product and say that it is Java needs to secure their own TCK license.&lt;br /&gt;&lt;br /&gt;What is Sun afraid of?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-7230533435572243225?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/7230533435572243225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=7230533435572243225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7230533435572243225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7230533435572243225'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/08/open-tck-sadly-no.html' title='Open TCK?  Sadly, no.'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6122285797302078176</id><published>2007-07-06T07:40:00.001-07:00</published><updated>2007-07-06T07:56:57.676-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>My Favorite Bug Report Summary of All Time!</title><content type='html'>I was looking through some old bug reports and found one entitled:&lt;br /&gt;&lt;blockquote&gt;"AlienHunter moves slowly once he digs a hole in the ground"&lt;/blockquote&gt;&lt;br /&gt;I immediately started to laugh as I thought to myself "...of course he's slow, he's tired because he just finished digging a hole."&lt;br /&gt;&lt;br /&gt;Of course, the bug itself had more to do with calling System.gc() in a tight loop, but that's besides the point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6122285797302078176?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6122285797302078176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6122285797302078176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6122285797302078176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6122285797302078176'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/07/my-favorite-bug-report-summary-of-all.html' title='My Favorite Bug Report Summary of All Time!'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-2271578341989171851</id><published>2007-07-02T12:12:00.001-07:00</published><updated>2007-07-02T12:18:58.586-07:00</updated><title type='text'>Project Zero</title><content type='html'>&lt;a href="http://www.projectzero.org/wiki/bin/view/"&gt;Project Zero&lt;/a&gt; is an effort that involves a large cross section of the IBM software development community.  There is also an external facing website that allows our customers to get involved, &lt;a href="http://www.projectzero.org/wiki/bin/view/"&gt;projectzero.org&lt;/a&gt;. If you're interested in web development I would recommend have a look around the Project Zero site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-2271578341989171851?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/2271578341989171851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=2271578341989171851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2271578341989171851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/2271578341989171851'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/07/blog-post.html' title='Project Zero'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-5238974299142111980</id><published>2007-05-08T13:13:00.000-07:00</published><updated>2007-05-08T13:16:21.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='websphere'/><category scheme='http://www.blogger.com/atom/ns#' term='metronome'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime'/><title type='text'>Harmonicon</title><content type='html'>Some more research has been done on top of the &lt;a href="http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.metronomegc.html"&gt;metronome garbage collector&lt;/a&gt; available in &lt;a href="http://www.ibm.com/software/webservers/realtime/"&gt;WebSphere Real Time&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Check it out &lt;a href="http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.harmonicon.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-5238974299142111980?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/5238974299142111980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=5238974299142111980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/5238974299142111980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/5238974299142111980'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/05/harmonicon.html' title='Harmonicon'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-3708482100381686539</id><published>2007-04-10T13:11:00.000-07:00</published><updated>2007-04-10T13:22:48.365-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='harmony'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Death of Apache Harmony?  I think not.</title><content type='html'>Dave Gilbert is taking pleasure from watching Apache Harmony &lt;a href="http://jroller.com/page/dgilbert?entry=the_death_of_apache_harmony"&gt;"die a slow and inevitable death"&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;There is only one reason Harmony would die a slow death.  The lack of access to the JCK.  The ASF has sent an &lt;a href="http://www.apache.org/jcp/sunopenletter.html"&gt;open letter&lt;/a&gt; to Sun about this issue and I hope that it gets resolved quickly.&lt;br /&gt;&lt;br /&gt;Dave insists that &lt;a href="https://openjdk.dev.java.net/"&gt;Sun's OpenJDK&lt;/a&gt; makes the Apache Harmony project redundant.  To an uneducated observer this would seem to be true.  Why bother trying to create an open source Java SE implementation when the original is now open source?  ... The license, that's why.  &lt;br /&gt;&lt;br /&gt;The Harmony project will continue to exist and thrive simply because of the ASF license, with the caveat that the JCK must be made available.&lt;br /&gt;&lt;br /&gt;So Dave's prediction of the death of Harmony could come to pass, but not due to lack of interest from the community, but rather by lack of availability of the JCK.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-3708482100381686539?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/3708482100381686539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=3708482100381686539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3708482100381686539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3708482100381686539'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/04/death-of-apache-harmony-i-think-not.html' title='Death of Apache Harmony?  I think not.'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6370148551040734341</id><published>2007-02-14T14:56:00.000-08:00</published><updated>2007-02-14T15:00:03.633-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='garbage collection'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime'/><title type='text'>ACM Queue - Realtime Garbage Collection</title><content type='html'>There is a great article &lt;a href="http://www.acmqueue.org/modules.php?name=Content&amp;pa=showpage&amp;pid=454"&gt;here&lt;/a&gt; that explains realtime garbage collection. Well worth a read.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.acmqueue.org/modules.php?name=Content&amp;pa=showpage&amp;pid=454"&gt;http://www.acmqueue.org/modules.php?name=Content&amp;pa=showpage&amp;pid=454&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6370148551040734341?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6370148551040734341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6370148551040734341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6370148551040734341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6370148551040734341'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2007/02/acm-queue-realtime-garbage-collection.html' title='ACM Queue - Realtime Garbage Collection'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-4794133941763853526</id><published>2006-10-11T14:08:00.000-07:00</published><updated>2006-10-11T14:10:48.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='developerWorks'/><title type='text'>IBM J2SE 5.0 SR3 Available</title><content type='html'>IBM has made J2SE 5.0 SR3 available.&lt;br /&gt;&lt;br /&gt;You can download various installs from &lt;a href="http://www-128.ibm.com/developerworks/java/jdk/index.html"&gt;developerWorks&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-4794133941763853526?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/4794133941763853526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=4794133941763853526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/4794133941763853526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/4794133941763853526'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2006/10/ibm-j2se-50-sr3-available.html' title='IBM J2SE 5.0 SR3 Available'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6532791737096157196</id><published>2006-10-11T08:26:00.000-07:00</published><updated>2006-10-11T08:35:14.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='metronome'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime'/><category scheme='http://www.blogger.com/atom/ns#' term='javiator'/><title type='text'>JAviator</title><content type='html'>Here is a really cool &lt;a href="http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.javiator.html"&gt;video &lt;/a&gt;of a realtime application built on top of &lt;a href="http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.metronomegc.html"&gt;Metronome&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.metronomegc.html"&gt;Metronome &lt;/a&gt;is the GC behind IBM's &lt;a href="http://www-306.ibm.com/software/webservers/realtime/"&gt;WebSphere Real Time&lt;/a&gt; Java environment.  It allows you to write realtime Java applications without having to manage your own memory. In other words garbage collection is back and happy in realtime scenarios.&lt;br /&gt;&lt;br /&gt;Metronome works for realtime because it guarantees pause times. Currently maximum pauses times are in the few hundred microseconds range.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6532791737096157196?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6532791737096157196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6532791737096157196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6532791737096157196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6532791737096157196'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2006/10/javiator.html' title='JAviator'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-5423970193964952970</id><published>2006-10-04T17:51:00.000-07:00</published><updated>2006-10-04T17:59:14.118-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J9'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>IBM Java2 JREs</title><content type='html'>If you own an IBM PC manufactured prior to April 1st 2005, then you don't have to use the Sun Hotspot VM.  You can use IBM's Java2 JREs.&lt;br /&gt;&lt;br /&gt;You can download them from &lt;a href="http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;lndocid=MIGR-56888"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update&lt;/span&gt;: for those that do not own an IBM PC that old.  You can also download the &lt;a href="http://www-128.ibm.com/developerworks/java/jdk/eclipse/index.html"&gt;IBM Development Package for Eclipse&lt;/a&gt;.  Inside this zip file you will an IBM Java 5 SDK.  It can be used on any machine (IBM on non-IBM) because it is packaged with the &lt;a href="http://www.eclipse.org/"&gt;eclipse&lt;/a&gt; IDE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-5423970193964952970?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/5423970193964952970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=5423970193964952970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/5423970193964952970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/5423970193964952970'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2006/10/ibm-java2-jres.html' title='IBM Java2 JREs'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-7509918470891440128</id><published>2006-10-04T17:43:00.000-07:00</published><updated>2006-10-04T17:49:09.119-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J9'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='harmony'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>IBM JDK for Harmony</title><content type='html'>This is old news, but I thought I should mention it anyway.&lt;br /&gt;&lt;br /&gt;If you'd like to  try a  J9 VM  you can.  Download the "&lt;a href="http://www-128.ibm.com/developerworks/java/jdk/harmony/"&gt;IBM Development Package for Apache Harmony&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;This download allows you to use a version of the IBM J9 VM with the open source &lt;a href="http://incubator.apache.org/harmony/"&gt;Apache Harmony project&lt;/a&gt;. The Harmony project's purpose is to create a completely open source implementation of Java SE 5.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-7509918470891440128?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/7509918470891440128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=7509918470891440128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7509918470891440128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/7509918470891440128'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2006/10/ibm-jdk-for-harmony.html' title='IBM JDK for Harmony'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-3800988972012068983</id><published>2006-09-13T10:25:00.000-07:00</published><updated>2006-09-13T10:48:36.264-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J9'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='developerWorks'/><title type='text'>J9 Articles on developerWorks</title><content type='html'>Here is a series of 5 articles on IBM Java 5.0 (implemented with the J9 virtual machine) on developerWorks.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-ibmjava1.html"&gt;Introduction to the IBM Developer Kit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-ibmjava2/index.html"&gt;Garbage collection policies, Part 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-ibmjava3/index.html"&gt;Garbage collection policies, Part 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-ibmjava4/index.html"&gt;Class sharing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-ibmjava5/index.html"&gt;Monitoring and problem determination&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-3800988972012068983?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/3800988972012068983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=3800988972012068983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3800988972012068983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/3800988972012068983'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2006/09/j9-arcticles-on-developerworks.html' title='J9 Articles on developerWorks'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4638238505907341517.post-6925156029605984854</id><published>2006-09-12T12:48:00.000-07:00</published><updated>2006-09-12T12:49:33.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='websphere'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime'/><title type='text'>Real Time Java</title><content type='html'>Real Time Java is now available for commercial use from IBM, via &lt;br /&gt;"IBM WebSphere Real Time V1.0".&lt;br /&gt;&lt;br /&gt;See the press release &lt;a href="http://www-306.ibm.com/common/ssi/fcgi-bin/ssialias?subtype=ca&amp;infotype=an&amp;amp;appname=iSource&amp;supplier=897&amp;amp;letternum=ENUS206-210"&gt;here &lt;/a&gt; and the product page &lt;a href="http://www-306.ibm.com/software/webservers/realtime/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4638238505907341517-6925156029605984854?l=ronald-servant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ronald-servant.blogspot.com/feeds/6925156029605984854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4638238505907341517&amp;postID=6925156029605984854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6925156029605984854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4638238505907341517/posts/default/6925156029605984854'/><link rel='alternate' type='text/html' href='http://ronald-servant.blogspot.com/2006/09/real-time-java.html' title='Real Time Java'/><author><name>Ronald Servant</name><uri>http://www.blogger.com/profile/08340623308736919183</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
