<?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-7766304</id><updated>2012-01-24T22:01:23.631Z</updated><title type='text'>counterpoint</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7766304.post-1513213224700871054</id><published>2011-06-03T15:23:00.000+01:00</published><updated>2011-06-03T15:23:54.553+01:00</updated><title type='text'>Anaphylaxis</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bzzpmGdpSAY/TejuRKI284I/AAAAAAAACoU/ueXEoWybsSQ/s1600/finger_bee.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-bzzpmGdpSAY/TejuRKI284I/AAAAAAAACoU/ueXEoWybsSQ/s1600/finger_bee.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Not sure if I mentioned it already, but I don't really like the taste of honey.&amp;nbsp; I keep bees because they are fascinating creatures with highly complex behavior, both individually and as a colony.&amp;nbsp; The mixture of practical and theoretical skills required to keep honeybees well appeals to me.&lt;br /&gt;&lt;br /&gt;Of course, when you say "bees" people immediately think "stings", probably before they even think of "honey".&amp;nbsp; I have all the protective gear, but inevitably as a beekeeper you will get stung now and again.&amp;nbsp; I find that autumn is the worst time of year; understandably perhaps as the bees are protecting their stores built up over summer with little prospect of replacing them before going into winter.&lt;br /&gt;&lt;br /&gt;Most stings are harmless enough.&amp;nbsp; Full coverage clothing means that the bee's stinger does go in far, and if it is far enough for me to notice I can take it out easily.&amp;nbsp; However, recently I had two different episodes where the reaction was a bit more dramatic.&lt;br /&gt;&lt;br /&gt;In one case I was carrying a hive full of bees to move it to another apiary.&amp;nbsp; The entrance was sealed-up, but a couple of bees were hanging underneath looking for the way in, and took exception to my hand being there nearly squashing them.&amp;nbsp; I got a full dose of venom in my finger, which was un-gloved as the bees were sealed in, right?&amp;nbsp; Rather than drop the hive with 50,000 more bees inside I just had to grin and bear it.&lt;br /&gt;&lt;br /&gt;The normal response to a bee sting is short intense pain followed by localized swelling, redness and swelling, and a wheal around the sting site lasting about a week.&amp;nbsp; The reaction is localized to within ~10cm of the sting site.&lt;br /&gt;&lt;br /&gt;My reaction was a bit different.&amp;nbsp; Within ten minutes I had a severe pounding sensation in my head, dizzyness, itchy rash (ironically called "hives") over my whole body, swelling in my armpits and groin, and a feeling of pressure on my chest.&amp;nbsp; Bugger!&amp;nbsp; I had to lie down, took a triple dose of anti-histamines, and waited about six uncomfortable hours for it to pass.&lt;br /&gt;&lt;br /&gt;The second time I was mowing the lawn quite close to the hives, and I guess one bee took exception, and without warning stung me on my temple.&amp;nbsp; Bees usually will give you a warning by "head-butting" you a few times, and irately buzzing round you -- this one just went for it!&amp;nbsp; The result was a similar whole-body reaction.&lt;br /&gt;&lt;br /&gt;I'm not big on medications, but the thought has crossed my mind about what would happen if I was careless enough to get multiple stings simultaneously.&amp;nbsp; So I've now got an &lt;a href="http://www.anapen.co.uk/index.php?option=com_content&amp;amp;view=category&amp;amp;layout=blog&amp;amp;id=2&amp;amp;Itemid=11&amp;amp;lang=en"&gt;epinephrine autoinjector&lt;/a&gt; next to the other bits and pieces in my bee kit.&lt;br /&gt;&lt;br /&gt;The best description of &lt;a href="http://www.resus.org.uk/pages/reaction.pdf"&gt;the recognition and treatment of anaphylaxis&lt;/a&gt; I have found is published by the Resuscitation Council (UK).&lt;br /&gt;&lt;br /&gt;Provided you watch and listen to what the bees are telling you, then with proper handling and the right protective equipment, getting stung should be a rare occurrence for a beekeeper.&amp;nbsp; I'm still learning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-1513213224700871054?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/1513213224700871054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=1513213224700871054' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1513213224700871054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1513213224700871054'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2011/06/anaphylaxis.html' title='Anaphylaxis'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-bzzpmGdpSAY/TejuRKI284I/AAAAAAAACoU/ueXEoWybsSQ/s72-c/finger_bee.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3994999629167401230</id><published>2010-10-11T22:09:00.002+01:00</published><updated>2010-10-11T22:49:26.405+01:00</updated><title type='text'>IBM and OpenJDK</title><content type='html'>IBM and Oracle are going to bring their combined resources together to &lt;a href="http://www.oracle.com/us/corporate/press/176988"&gt;collaborate in OpenJDK&lt;/a&gt;.  The natural question arises about what this means for the &lt;a href="http://harmony.apache.org"&gt;Apache Harmony project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Apache Harmony has always been clear about the goal of innovating on a &lt;span style="font-weight: bold;"&gt;compliant&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;compatible&lt;/span&gt; implementation of Java SE.  It's also common knowledge that Apache have been &lt;a href="http://www.apache.org/jcp/sunopenletter.html"&gt;requesting a compatibility test kit license&lt;/a&gt; for a number of years, and that a suitable license has not been forthcoming.  There's little prospect of that situation changing.&lt;br /&gt;&lt;br /&gt;So what's best for the Java ecosystem?  I believe that compatibility is vital, and rather than risk divergence the right thing is to bring the key platform development groups together on a common codebase.  Lessons learned on Project Harmony will be of value to OpenJDK, and I know there is immense mutual respect between the IBM and Oracle engineers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3994999629167401230?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3994999629167401230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3994999629167401230' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3994999629167401230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3994999629167401230'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2010/10/ibm-and-openjdk.html' title='IBM and OpenJDK'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-1174460420958302647</id><published>2010-08-16T05:13:00.003+01:00</published><updated>2010-08-16T05:32:28.364+01:00</updated><title type='text'>Java trap not yet disarmed</title><content type='html'>There is already plenty of opinion written about the &lt;a href="http://regmedia.co.uk/2010/08/13/oracle_complaint_against_google.pdf"&gt;Oracle vs. Google action&lt;/a&gt;.  As a member of the Apache Harmony project I'm an interested bystander in this story, since Android's runtime core libraries come from Apache Harmony.  To date, Apache Harmony have not been notified of any involvement in the lawsuit.&lt;br /&gt;&lt;br /&gt;Carlo concludes in &lt;a href="http://carlodaffara.conecta.it/?p=478"&gt;his blog entry&lt;/a&gt; "the open source credibility of Oracle, already damaged by the OpenSolaris affair, is now destroyed" -- and that is the real shame here.  Oracle's use of patents in this manner is not good news for anyone in the Java ecosystem who is promoting or using Java as a free and open runtime platform.&lt;br /&gt;&lt;br /&gt;Having multiple competing implementations of a specification, that are ultimately held to account for claiming compatibility to the specification by a rigorous test suite, is a good thing.&lt;br /&gt;&lt;br /&gt;As is widely known, Apache Harmony has been denied access to the Java SE compatibility test suite in &lt;a href="http://www.apache.org/jcp/sunopenletter.html"&gt;a long running dispute&lt;/a&gt;.  That situation did not change with Oracle's acquisition of &lt;a href="http://www.marketwatch.com/story/oracle-buy-sun-microsystems-74"&gt;"the most important software [Oracle has] ever acquired"&lt;/a&gt;.  This new action, coming less than six months since the acquisition completed gives me concern for the future of OpenJDK as being the place where Oracle openly and freely advances the most important managed runtime commons.&lt;br /&gt;&lt;br /&gt;Contributors to the OpenJDK project have already assigned joint ownership rights to Oracle via the Sun Contributor Agreement.  Oracle alone has ownership of the entire OpenJDK codebase.&lt;br /&gt;&lt;br /&gt;Apache projects are structured differently.  There is no such grant of joint ownership to a single entity, and therefore it would be impossible for a single entity to take control.  Apache Harmony is a patchwork of contributions, owned by the community and available to consumers under a liberal open source license.  Furthermore, the Apache license has terms that explicitly handle Patent rights (see &lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Section 3&lt;/a&gt;), and so it is clear to consumers that they have a license to use any Patented contributions.&lt;br /&gt;&lt;br /&gt;I hope Mark is wrong when &lt;a href="http://gnu.wildebeest.org/blog/mjw/2010/08/13/oracle-tries-to-destroy-free-java-now-what/"&gt;he says&lt;/a&gt; that Oracle are on a "quest to destroy the free Java world" because the only conceivable Java world is one where you can get Java wherever you want it under the freedoms of an open source license.  However, it would appear that &lt;a href="http://www.gnu.org/philosophy/java-trap.html"&gt;the trap&lt;/a&gt; is not yet fully disarmed, and at least one implementation may be starting to move in the wrong direction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-1174460420958302647?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/1174460420958302647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=1174460420958302647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1174460420958302647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1174460420958302647'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2010/08/java-trap-not-yet-disarmed.html' title='Java trap not yet disarmed'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-1025721003228123153</id><published>2010-01-21T11:03:00.004Z</published><updated>2010-01-21T11:23:34.370Z</updated><title type='text'>Oracle += Sun</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_i5ItD-GhlFg/S1g3rzMzrsI/AAAAAAAABQM/mm3G3HKvptY/s1600-h/sunset.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 100px; height: 100px;" src="http://1.bp.blogspot.com/_i5ItD-GhlFg/S1g3rzMzrsI/AAAAAAAABQM/mm3G3HKvptY/s200/sunset.jpg" alt="" id="BLOGGER_PHOTO_ID_5429150576412962498" border="0" /&gt;&lt;/a&gt;Well, it took its time coming, but reports are that the acquisition &lt;a href="http://online.wsj.com/article/SB10001424052748703699204575016561637563060.html?mod=WSJ_hpp_LEFTWhatsNewsCollection"&gt;has been approved&lt;/a&gt; by the EU today.&lt;br /&gt;&lt;br /&gt;I expect a number of Sun employees will be &lt;a href="http://digitaldaily.allthingsd.com/20100118/eu-poised-to-approve-oracle-sun-deal/"&gt;opening their mailer with trepidation&lt;/a&gt; when they get into work this morning.  Its the end of an era for a big name in the industry, but a great opportunity for a new era in the Java ecosystem.&lt;span style="font-size:78%;"&gt;&lt;a href="http://www.flickr.com/photos/paulmoody"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Congratulations and good luck to all those involved.&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-size:50%;"&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://www.flickr.com/photos/paulmoody"&gt;Sunset photo by Paul Moody&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-1025721003228123153?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/1025721003228123153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=1025721003228123153' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1025721003228123153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1025721003228123153'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2010/01/oracle-sun.html' title='Oracle += Sun'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_i5ItD-GhlFg/S1g3rzMzrsI/AAAAAAAABQM/mm3G3HKvptY/s72-c/sunset.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7330005622773697577</id><published>2010-01-07T15:44:00.004Z</published><updated>2010-01-07T16:08:06.290Z</updated><title type='text'>Dear Santa ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_i5ItD-GhlFg/S0YCKOppF7I/AAAAAAAABP8/q_Bpsfj4Hpo/s1600-h/Clipboard01.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 140px; height: 19px;" src="http://2.bp.blogspot.com/_i5ItD-GhlFg/S0YCKOppF7I/AAAAAAAABP8/q_Bpsfj4Hpo/s200/Clipboard01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5424025175969044402" /&gt;&lt;/a&gt;Thanks for the socks and all that, but my G1 is nearly 18 months old now and I was thinking about getting a Nexus One.&lt;br /&gt;&lt;br /&gt;The first problem was that trying to go through the order process using FireFox doesn't seem to work.&lt;br /&gt;&lt;br /&gt;Every path after the 'Continue' button results in:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_i5ItD-GhlFg/S0YC0TgkI6I/AAAAAAAABQE/HNx3DolsA4M/s1600-h/Clipboard02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 48px;" src="http://2.bp.blogspot.com/_i5ItD-GhlFg/S0YC0TgkI6I/AAAAAAAABQE/HNx3DolsA4M/s200/Clipboard02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5424025898827654050" /&gt;&lt;/a&gt;I had assumed that the system was busy, but the problem lasted a long time, so I tried with IE, and hey presto it works.&lt;br /&gt;&lt;br /&gt;The next 'problem' is that the phone is sold via the US, and as Google are right to point out, that means the sale incurs an import duty when it comes into the UK.&lt;br /&gt;&lt;br /&gt;Rather than stumping up the $529 (~=£330) our American friends pay for the phone, delivery included, I was now looking at...&lt;br /&gt;&lt;br /&gt;$529 for the phone&lt;br /&gt;+ $19.99 for a UK charger&lt;br /&gt;+ $29.65 shipping&lt;br /&gt;&lt;br /&gt;with UK Sales Tax on the total at 17.5% and a 6.5% import duty on all that, which makes it &lt;span style="font-weight:bold;"&gt;~$725&lt;/span&gt; (i.e. ~=£453).  Ouch.&lt;br /&gt;&lt;br /&gt;For the difference I can almost fly to the US and pick it up myself!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7330005622773697577?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7330005622773697577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7330005622773697577' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7330005622773697577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7330005622773697577'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2010/01/dear-santa.html' title='Dear Santa ...'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_i5ItD-GhlFg/S0YCKOppF7I/AAAAAAAABP8/q_Bpsfj4Hpo/s72-c/Clipboard01.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3016629965492307566</id><published>2009-12-31T14:31:00.005Z</published><updated>2010-01-07T10:26:19.831Z</updated><title type='text'>Lucky New Year</title><content type='html'>I went to &lt;a href="http://www.google.co.uk"&gt;the Google home page&lt;/a&gt; today, and clicked on the "I'm Feeling Lucky" button without anything in the search box.&lt;br /&gt;&lt;br /&gt;The result was a page with countdown in seconds,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i5ItD-GhlFg/Szy2aGIpHRI/AAAAAAAABPs/yNCLo0wEexk/s1600-h/google.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 163px;" src="http://4.bp.blogspot.com/_i5ItD-GhlFg/Szy2aGIpHRI/AAAAAAAABPs/yNCLo0wEexk/s200/google.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5421408610886950162" /&gt;&lt;/a&gt;&lt;br /&gt;a quick arithmetic shows it's counting down to the New Year.  So somebody is expecting 2010 to be lucky!&lt;br /&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;&lt;br /&gt;Now the New Year has arrived, the same empty Lucky Button press gives some 'fireworks'!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_i5ItD-GhlFg/S0W2o72AQwI/AAAAAAAABP0/JKwkfQSYgoA/s1600-h/Clipboard06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 154px;" src="http://3.bp.blogspot.com/_i5ItD-GhlFg/S0W2o72AQwI/AAAAAAAABP0/JKwkfQSYgoA/s200/Clipboard06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5423942140612854530" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3016629965492307566?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3016629965492307566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3016629965492307566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3016629965492307566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3016629965492307566'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/12/lucky-new-year.html' title='Lucky New Year'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_i5ItD-GhlFg/Szy2aGIpHRI/AAAAAAAABPs/yNCLo0wEexk/s72-c/google.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-313553840279043744</id><published>2009-09-16T10:45:00.004+01:00</published><updated>2009-09-16T11:40:10.034+01:00</updated><title type='text'>Programming sockets using temporary ports</title><content type='html'>In &lt;a href="http://tellison.blogspot.com/2009/09/improving-parameter-checking-in-apache.html"&gt;an earlier posting&lt;/a&gt;, I showed where there was code in &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; that had some unsafe parameter checking logic, and I gave a pattern for how to do it right.&lt;br /&gt;&lt;br /&gt;Another "anti-pattern" that I see recurring in the Harmony test cases is around client-server socket programming.  The typical scenario is that the tester wants to exercise some socket code, so they spin up a new Thread to act as the server, and run the tests on the main thread.  The tester either picks a port that they assume will be free, or use some horrible code that tries to find a free port:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;pre&gt;&lt;br /&gt;   /*&lt;br /&gt;    * Returns a different port number every 6 seconds or so. The port number&lt;br /&gt;    * should be about += 100 at each 6 second interval&lt;br /&gt;    */&lt;br /&gt;  private static int somewhatRandomPort() {&lt;br /&gt;      Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));&lt;br /&gt;      int minutes = c.get(Calendar.MINUTE);&lt;br /&gt;      int seconds = c.get(Calendar.SECOND);&lt;br /&gt;&lt;br /&gt;      return 6000 + (1000 * minutes) + ((seconds / 6) * 100);&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;Guessing port numbers like this is simply awful and hopeless.  Once the port has been established, the poorly written test case opens a server socket to accept connections in the server Thread, while to get the timing right the client goes into a sleep for a while to give the server time to start up.  Apart from the fact that the code is going to fail intermittently, it means the test case always takes a minimum length of time to execute as it spends time sleeping.&lt;br /&gt;&lt;br /&gt;There is no need for guessing ports or separate threads.  In Java, just like other programming languages that expose the underlying platform's TCP/IP stack behaviour, binding to port zero instructs the stack to allocate an &lt;a href="http://en.wikipedia.org/wiki/Ephemeral_port"&gt;ephemeral port&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Furthermore, server sockets have a listen backlog queue capable of remembering 50 outstanding connect requests by default.  Here is a example of simple client-server code using an ephemeral port and a single thread to exchange a simple message over TCP/IP sockets.&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;pre&gt;&lt;br /&gt;      // Set-up&lt;br /&gt;      ServerSocket server = new ServerSocket(0);&lt;br /&gt;&lt;br /&gt;      Socket client = new Socket();&lt;br /&gt;      client.connect(server.getLocalSocketAddress());&lt;br /&gt;&lt;br /&gt;      Socket worker = server.accept();&lt;br /&gt;&lt;br /&gt;      // Do some stuff&lt;br /&gt;      client.getOutputStream().write("Hello world!".getBytes("UTF-8"));&lt;br /&gt;      byte[] buffer = new byte[1024];&lt;br /&gt;      int length = worker.getInputStream().read(buffer);&lt;br /&gt;&lt;br /&gt;      // Tidy-up&lt;br /&gt;      client.close();&lt;br /&gt;      worker.close();&lt;br /&gt;      server.close();&lt;br /&gt;&lt;br /&gt;      System.out.println(new String(buffer, 0, length, "UTF-8"));&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;Hopefully the code is simple enough to understand without further comment.  I'll just point out that the server socket is created with an argument of "0" to mean the listening socket should be opened on any network adapter, with a stack allocated port number, and supporting up to fifty pending connections.  Then the client connects to the actual interface and port that was used using &lt;span style="font-family:courier new;font-size:85%;"&gt;getLocalSocketAddress()&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The same simple example can also be written using the NIO APIs, which requires passing &lt;span style="font-family:courier new;font-size:85%;"&gt;null&lt;/span&gt; to the &lt;span style="font-family:courier new;font-size:85%;"&gt;bind()&lt;/span&gt; method, like this:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;pre&gt;&lt;br /&gt;      // Set-up&lt;br /&gt;      ServerSocketChannel server = ServerSocketChannel.open();&lt;br /&gt;      server.socket().bind(null);&lt;br /&gt;&lt;br /&gt;      SocketChannel client = SocketChannel.open();&lt;br /&gt;      client.connect(server.socket().getLocalSocketAddress());&lt;br /&gt;&lt;br /&gt;      SocketChannel worker = server.accept();&lt;br /&gt;&lt;br /&gt;      // Do some stuff&lt;br /&gt;      client.write(ByteBuffer.wrap("Hello world!".getBytes("UTF-8")));&lt;br /&gt;&lt;br /&gt;      ByteBuffer readBuffer = ByteBuffer.allocate(1024);&lt;br /&gt;      worker.read(readBuffer);&lt;br /&gt;      readBuffer.flip();&lt;br /&gt;&lt;br /&gt;      // Tidy-up&lt;br /&gt;      worker.close();&lt;br /&gt;      client.close();&lt;br /&gt;      server.close();&lt;br /&gt;&lt;br /&gt;      System.out.println(Charset.forName("UTF-8").decode(readBuffer));&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;Of course, the simple examples still ignore a few return codes and exceptions that should be considered to make the code safer, but the purpose here is to show the structure for tests and applications that need to use sockets to exchange information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-313553840279043744?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/313553840279043744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=313553840279043744' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/313553840279043744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/313553840279043744'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/09/programming-sockets-using-temporary.html' title='Programming sockets using temporary ports'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-488399919882572413</id><published>2009-09-07T16:43:00.005+01:00</published><updated>2009-09-07T20:50:13.586+01:00</updated><title type='text'>Shoddy reporting from El Reg :-(</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i5ItD-GhlFg/SqUuyLyYfvI/AAAAAAAABNc/pV79-lqYi_Q/s1600-h/Clipboard01.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 69px; height: 66px;" src="http://4.bp.blogspot.com/_i5ItD-GhlFg/SqUuyLyYfvI/AAAAAAAABNc/pV79-lqYi_Q/s200/Clipboard01.jpg" alt="" id="BLOGGER_PHOTO_ID_5378756769656372978" border="0" /&gt;&lt;/a&gt;I stop by The Register website quite frequently to keep up on the gossip, and quite enjoy their laid back reporting style, but the September 4th article titled &lt;a href="http://www.theregister.co.uk/2009/09/04/sun_oracle_java/"&gt;"Oracle should relax Sun's Java Community control grip"&lt;/a&gt; was a very poor piece of reporting.&lt;br /&gt;&lt;br /&gt;It hit my radar with the reference to Apache Harmony, where Clarke writes:&lt;br /&gt;&lt;blockquote&gt;For all its evangelism - and its initial decision to open source Java - Sun has refused to open the TCKs, infuriating and frustrating the open-source community.&lt;br /&gt;&lt;br /&gt;This has led to accusations that Sun is hindering - not helping - open-source Java projects such as Harmony from the Apache Software Foundation (ASF), backed strongly by IBM.&lt;br /&gt;&lt;br /&gt;While Apache's has been able to build an implementation of Java Standard Edition under Project Harmony thanks to the opening of Java, Harmony cannot be certified because the TCKs contain proprietary code the open-source code cannot touch. Harmony, therefore, remains stuck in a limbo of having been built but being uncertified.&lt;/blockquote&gt;Unfortunately this just serves to illustrate that Clarke doesn't understand the situation, or history, around open source Java SE.&lt;br /&gt;&lt;br /&gt;Apache have never asked, or expected, Sun to open source their TCKs.  While that would be a fine outcome in itself, there is no reason why Sun cannot maintain their tests as proprietary code and make them available under a variety of license terms as they do with other Java specification test suites.  Apache &lt;span style="font-style: italic;"&gt;have &lt;/span&gt;asked for license terms that allow the code we have written to be released under an open source license, that is to say Apache will not entertain restrictions placed on our code that passes the TCK.&lt;br /&gt;&lt;br /&gt;http://www.apache.org/jcp/sunopenletter.html&lt;br /&gt;&lt;br /&gt;Furthermore, Apache Harmony and GNU Classpath existed well before OpenJDK, so it can hardly be said that OpenJDK was a prerequisite to alternative implementations being created!&lt;br /&gt;&lt;br /&gt;The story attempts to cover a great deal of ground, the possible effects of the acquisition, the Apache dispute, JCP reform, and so on -- each of these is a major story in itself and this shoddy attempt does each a disservice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-488399919882572413?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/488399919882572413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=488399919882572413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/488399919882572413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/488399919882572413'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/09/shoddy-reporting-from-el-reg.html' title='Shoddy reporting from El Reg :-('/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_i5ItD-GhlFg/SqUuyLyYfvI/AAAAAAAABNc/pV79-lqYi_Q/s72-c/Clipboard01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-6368805611308543728</id><published>2009-09-07T13:28:00.005+01:00</published><updated>2009-09-07T14:59:35.732+01:00</updated><title type='text'>Improving parameter checking in Apache Harmony</title><content type='html'>I'm going through some &lt;a href="http://harmony.apache.org"&gt;Apache Harmony&lt;/a&gt; code at the moment, and spotting a few places where there is a common pattern of code that needs fixing.&lt;br /&gt;&lt;br /&gt;Consider this method:&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;pre&gt;&lt;br /&gt; public synchronized int read(byte[] target, int offset, int length) throws IOException {&lt;br /&gt;   if (length + offset &amp;gt; target.length || length &amp;lt; 0 || offset &amp;lt; 0) {&lt;br /&gt;       throw new ArrayIndexOutOfBoundsException();&lt;br /&gt;   }&lt;br /&gt;   if (0 == length) {&lt;br /&gt;       return 0;&lt;br /&gt;   }&lt;br /&gt;   ByteBuffer buffer = ByteBuffer.wrap(target, offset, length);&lt;br /&gt;   return channel.read(buffer);&lt;br /&gt; }&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;Can you see the problem?&lt;br /&gt;Hint: the parameter checking in the &lt;span style=";font-family:courier new"&gt;if()&lt;/span&gt; statement is wrong.&lt;br /&gt;&lt;br /&gt;The original author rightly wants to ensure that the &lt;span style=";font-family:courier new"&gt;offset&lt;/span&gt; and &lt;span style=";font-family:courier new"&gt;length&lt;/span&gt; represent plausible values for the data to be put into the buffer; that is, the method should not attempt to place data outside the bounds of the '&lt;span style=";font-family:courier new"&gt;target&lt;/span&gt;' byte array.&lt;br /&gt;&lt;br /&gt;The problem is that in Java, like a number of other languages, &lt;a href="http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#17876"&gt;(int) values overflow without any exception being thrown&lt;/a&gt;. In the code above we are checking for illegal values by computing (&lt;span style=";font-family:courier new"&gt;length + offset&lt;/span&gt;) and throwing an exception if it is greater than the buffer's length. This ensures we don't "write off the end" of the &lt;span style=";font-family:courier new"&gt;target&lt;/span&gt; buffer. However, if the sum overflows an &lt;span style=";font-family:courier new"&gt;int&lt;/span&gt; representation then it may indeed pass this safety check, and permit a value for &lt;span style=";font-family:courier new"&gt;offset&lt;/span&gt; or &lt;span style=";font-family:courier new"&gt;length&lt;/span&gt; that is too large.&lt;br /&gt;&lt;br /&gt;As a practical illustration, consider that the '&lt;span style=";font-family:courier new"&gt;offset&lt;/span&gt;' actual parameter value is &lt;span style=";font-family:courier new"&gt;Integer.MAX_VALUE = (int)2147483647&lt;/span&gt;, and the '&lt;span style=";font-family:courier new"&gt;length&lt;/span&gt;' value is, say 42.  In this case the sum of these positive values is a negative value '&lt;span style=";font-family:courier new"&gt;(int)(2147483647 + 42) = (int)-2147483607&lt;/span&gt;' so the less-than test passes and the method is broken!&lt;br /&gt;&lt;br /&gt;The fix is to avoid the sum, and convert it into a subtraction, e.g.&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;pre&gt;if (length &amp;lt; 0 || offset &amp;lt; 0 || length &amp;gt; target.length - offset) {&lt;br /&gt;    throw new ArrayIndexOutOfBoundsException();&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;Now we can be assured that there will be no &lt;span style=";font-family:courier new"&gt;int&lt;/span&gt; overflow.  The &lt;span style=";font-family:courier new"&gt;target.length&lt;/span&gt; cannot be less than zero, so the subtraction can only produce values in the range &lt;span style=";font-family:courier new"&gt;(0 - Integer.MAX_VALUE = Integer.MIN_VALUE + 1)&lt;/span&gt; to &lt;span style=";font-family:courier new"&gt;(Integer.MAX_VALUE - 0 = Integer.MAX_VALUE)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I know this is not news for Java developers.  Josh Bloch and others have been highlighting the problem for a number of years, yet I've found about four places in the code so far that exhibit this potential problem.  They'll all be fixed in time for the next milestone build.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-6368805611308543728?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/6368805611308543728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=6368805611308543728' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6368805611308543728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6368805611308543728'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/09/improving-parameter-checking-in-apache.html' title='Improving parameter checking in Apache Harmony'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-962069782223457579</id><published>2009-07-08T22:44:00.000+01:00</published><updated>2009-07-08T22:44:00.750+01:00</updated><title type='text'>Queen introduction</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i5ItD-GhlFg/SlSHq_j6-RI/AAAAAAAABJc/t3e453jtyHw/s1600-h/IMG_0225_s.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_i5ItD-GhlFg/SlSHq_j6-RI/AAAAAAAABJc/t3e453jtyHw/s200/IMG_0225_s.jpg" alt="" id="BLOGGER_PHOTO_ID_5356055029536717074" border="0" /&gt;&lt;/a&gt;I got two new queen bees in the post a short time ago.  They come in normal padded envelopes via Royal Mail.  The postman was wondering why the envelope was buzzing!&lt;br /&gt;&lt;br /&gt;Within the envelope each queen and her attendants is protected in a 'puzzle cage'.  The cage has some candy to to keep the queen alive, and since the queen never feeds herself there are worker bee attendants to feed her and keep things calm during travel.  If you look closely you can see the queen bee on the right, she has a green dot on her back showing she is the latest 2009 model.&lt;br /&gt;&lt;br /&gt;To introduce a queen you can either use the puzzle cage they came in which has knock-out tabs enabling the bees to walk out one the candy is consumed, but I used a Butler cage.  The Butler cage is a simple wire cage permanently blocked at one end, and which you seal at the other end using newspaper and elastic bands.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_i5ItD-GhlFg/SlSJlR3uC-I/AAAAAAAABJs/fND0q5KATTc/s1600-h/IMG_0226_s.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_i5ItD-GhlFg/SlSJlR3uC-I/AAAAAAAABJs/fND0q5KATTc/s200/IMG_0226_s.jpg" alt="" id="BLOGGER_PHOTO_ID_5356057130395634658" border="0" /&gt;&lt;/a&gt;The knack is to take the queen out (let the attendants fly away) and put her into a separate cage.  I did it on a sheet near a window since the queen may well fly off too, and at £20 each you don't want to loose her!  The attendants will sting, but the queen doesn't sting you so you can pick her up by her thorax and pop her in.&lt;br /&gt;&lt;br /&gt;After carefully putting the queen into the Butler cage and sealing it up it is ready to go into the hive.  Opinions vary, but I take out the old queen about two days before introducing the new queen.  The period of queenlessness makes the workers more inclined to accept the new smell.  I kept the old queen in a jar with some attendants and candy in the case the introduction failed and I needed to back out of the procedure.&lt;br /&gt;&lt;br /&gt;As you can see from the photo &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i5ItD-GhlFg/SlSLHKIlkZI/AAAAAAAABJ0/jB-QbWEO-LE/s1600-h/IMG_0254_s.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_i5ItD-GhlFg/SlSLHKIlkZI/AAAAAAAABJ0/jB-QbWEO-LE/s200/IMG_0254_s.jpg" alt="" id="BLOGGER_PHOTO_ID_5356058811946078610" border="0" /&gt;&lt;/a&gt;I have put a short nail in the cage's block so that I can push it into the comb.  It is put in position so that the newspaper end of the cage is centred on the middle frame, right in a patch of brood where the workers would expect to find the queen.&lt;br /&gt;&lt;br /&gt;The receiving colony's workers can feed and lick the queen through the cage, but if they try to attack they cannot ball her in there, and she can retreat into the newspaper end if they try to sting her.  Over time the new queen pheromone permeates the colony and the workers will be ready to accept her.&lt;br /&gt;&lt;br /&gt;The queen is eventually released by workers eating through the newspaper, and I gave two pin pricks on the end for them to get hold of with their mandibles.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_i5ItD-GhlFg/SlSNTRlJTxI/AAAAAAAABJ8/_CWzqAkLANA/s1600-h/IMG_0258_s.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_i5ItD-GhlFg/SlSNTRlJTxI/AAAAAAAABJ8/_CWzqAkLANA/s200/IMG_0258_s.jpg" alt="" id="BLOGGER_PHOTO_ID_5356061219126595346" border="0" /&gt;&lt;/a&gt;Once the cage is in place another recommendation of Professor Ratnieks is to heavily smoke the colony.  Not sure if that is a distraction technique or simply another way to mask the new incoming smell.  I put in loads of smoke so that the bees were fanning furiously.&lt;br /&gt;&lt;br /&gt;Then leave the colony alone for at least two days.  After that time I checked to ensure the queen had been released, and removed the cage.  The new queen was wandering over the comb without a care in the world, probably quite oblivious of her travels through the postal system a few days earlier.&lt;br /&gt;&lt;br /&gt;I left them alone for another week, then looked again and there were eggs a plenty, so she was working away happily.  Some people report as low as 50% success rate at introducing new queens.  I only did these two, one into a colony that had been queenless for a while and the other where I removed an existing queen.  Both worked for me so I'm happy with that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-962069782223457579?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/962069782223457579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=962069782223457579' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/962069782223457579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/962069782223457579'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/07/queen-introduction.html' title='Queen introduction'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_i5ItD-GhlFg/SlSHq_j6-RI/AAAAAAAABJc/t3e453jtyHw/s72-c/IMG_0225_s.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-9025890138028568528</id><published>2009-07-08T12:02:00.002+01:00</published><updated>2009-07-08T12:33:38.809+01:00</updated><title type='text'>Organised volunteerism</title><content type='html'>As part of a longer discussion on a private mailing list[1] &lt;a href="http://intertwingly.net/"&gt;Sam Ruby&lt;/a&gt; wrote a succinct description of the &lt;a href="http://www.apache.org"&gt;Apache &lt;/a&gt;volunteerism ethos.  He wrote:&lt;br /&gt;&lt;blockquote&gt;"The prevailing attitude within Apache is that releases will be done when they are ready, and that such releases will contain only the functions for which there exists volunteers who have an interest in doing the work.  At times, there are people who would prefer a more predictable schedule and specific function.  There are organizations which provide such assurances.  This isn't one of them."&lt;/blockquote&gt;This resonated with me as a participant in the &lt;a href="http://harmony.apache.org"&gt;Apache Harmony&lt;/a&gt; project which is undertaking a full implementation of the Java SE specification.   There are some modules that attract lots of attention in completeness and performance (such as the core LUNI, beans, security, and so on) and others that don't attract so much effort (such as Swing, print, and RMI).&lt;br /&gt;&lt;br /&gt;I'm totally fine with that situation since it represents the technological equivalent of the &lt;a href="http://en.wikipedia.org/wiki/Adaptive_market_hypothesis"&gt;adaptive market hypothesis&lt;/a&gt; of financial markets.  In our world, people will tend and care for code that is important to them, and the other code by definition is not so important to people.&lt;br /&gt;&lt;br /&gt;I've been a contributor to numerous open source foundations and working groups with different styles of working, and there is no "one true way" -- having a variety of organizations with different styles of working ensures that there is going to be a place for a wide variety of people to be comfortable innovating in the advancement of Java technology.&lt;br /&gt;&lt;br /&gt;I'm comfortable with those who want to make some code open, and keep other code to themselves.  I object to those who claim there is only one way to behave, and try to enforce that on others through restrictive licensing or organizational rules.&lt;br /&gt;&lt;br /&gt;[1] Sam kindly gave me permission to take that quote and make it public.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-9025890138028568528?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/9025890138028568528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=9025890138028568528' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/9025890138028568528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/9025890138028568528'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/07/organised-volunteerism.html' title='Organised volunteerism'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-5072013455110079461</id><published>2009-06-22T11:43:00.002+01:00</published><updated>2009-06-22T12:14:04.213+01:00</updated><title type='text'>WebSphere Application Server for Developers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www-01.ibm.com/software/main/img/com/ws-mark-title-235x50.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 235px; height: 50px;" src="http://www-01.ibm.com/software/main/img/com/ws-mark-title-235x50.gif" alt="" border="0" /&gt;&lt;/a&gt;IBM's &lt;a href="http://www-01.ibm.com/software/webservers/appserv/was/"&gt;WebSphere Application Server&lt;/a&gt; (WAS) is the company's flagship Java EE 5 product used in production environments worldwide.&lt;br /&gt;&lt;br /&gt;As you would expect for a product representing over 10 years investment from Big Blue, it comes with &lt;a href="https://www-112.ibm.com/software/howtobuy/buyingtools/paexpress/Express?P0=E1&amp;amp;part_number=D55W8LL,D55WJLL,D51JXLL,D55WQLL,D55WELL&amp;amp;catalogLocale=en_US&amp;amp;Locale=en_US&amp;amp;country=USA&amp;amp;PT=html&amp;amp;S_TACT=none&amp;amp;S_CMP=none"&gt;a license fee&lt;/a&gt; to match.  However, if you are willing to forgo formal support, and can live with the developer license offered, you can now download the full application server at no cost!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/index.html"&gt;"WebSphere Application Server for Developers"&lt;/a&gt; package for Windows or Linux is available as a download directly from IBM.  Bear in mind that WAS weighs in at 788 MB, so downloading over a 1.5Mbps                                 connection is likely to take about one and a half hours.&lt;br /&gt;&lt;br /&gt;Go and grab it, and try your software out on a runtime that matches the production environment.  In place of formal support there are WAS developers answering questions on &lt;a href="http://www.ibm.com/developerworks/forums/forum.jspa?forumID=266"&gt;the open newsgroup&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-5072013455110079461?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/5072013455110079461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=5072013455110079461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5072013455110079461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5072013455110079461'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/06/websphere-application-server-for.html' title='WebSphere Application Server for Developers'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-6620610444807155969</id><published>2009-06-15T12:14:00.004+01:00</published><updated>2009-06-15T13:02:16.835+01:00</updated><title type='text'>JavaOne 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_i5ItD-GhlFg/SjY31-tK1NI/AAAAAAAABAk/PM21porysLs/s1600-h/duke.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 125px;" src="http://2.bp.blogspot.com/_i5ItD-GhlFg/SjY31-tK1NI/AAAAAAAABAk/PM21porysLs/s200/duke.png" alt="" id="BLOGGER_PHOTO_ID_5347523008054088914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The attendance figures put around for &lt;a href="http://java.sun.com/javaone/"&gt;JavaOne 2009&lt;/a&gt; state that there were "around 15,000" people at the Moscone Center -- hmm, that seems generous and it certainly felt a bit quieter than previous years.  Not altogether unexpected with the economy impacting on travel, maybe people avoiding large congregations over concern of flu, and so on.&lt;br /&gt;&lt;br /&gt;The main hall was arranged slightly differently, with the stage set up at the 'side' of the hall, with large back drapes hung across each end.  Ushers did a good job of corralling people to the front, and there was a noticeably large representation from Sun themselves.&lt;br /&gt;&lt;br /&gt;Like last year there was much talk of Sun's proprietary technology called "JavaFX", with demos of JavaFX running on a disparate variety of hardware (set top box, TV, phone, desktop).  There was discussion of Java performance, as realized by the contributions made from new machine advances from Intel.  Of course, it wasn't called out that the &lt;a href="http://j9tr.blogspot.com/2009/03/ibm-j9-specjbb2005-results-used-in.html"&gt;Nahelem numbers&lt;/a&gt; were published on IBM's Java implementation!  There was a demo of the new Java market place where Sun, like others, are aiming to reproduce the success of an iTunes style store front to end users.&lt;br /&gt;&lt;br /&gt;There was not much talk about Java SE 7 (Jonathan Schwartz did mistakenly announce it's availability, but was corrected by his Chief Engineer on stage the next day), and not much talk about OpenJDK or the JCP which were prominent topics of calls for community participation in previous years.  NetBeans was also notably absent from the opening session.&lt;br /&gt;&lt;br /&gt;The opening session was concluded by a moving 'good-bye' speech from Scott McNealy and a symbolic hand-over to Larry Ellison.  During the hand-over Larry gave a challenge to the OpenOffice team to rewrite in JavaFX.  He also said that Sun could be expected to produce notebooks running a Java-based OS in competition with Android.&lt;br /&gt;&lt;br /&gt;Later in the week &lt;a href="http://java.sun.com/javaone/2009/general_sessions.jsp?pid=24589759001"&gt;I gave a demo&lt;/a&gt; of the &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; runtime during the IBM general session.  I showed Harmony running Eclipse and developing the NIO module using the Eclipse PDE, then went on to show Harmony running Geronimo and the Roller blogging webapp.  Craig Hayman had slides of Harmony running the WebSphere eXtreme scale server too. With the existing modular architecture of Apache Harmony, it is trivial to build right-sized runtimes for each of these.&lt;br /&gt;&lt;br /&gt;Many people have speculated that this may be the last JavaOne conference, but I don't think so.  It is a well organized shop window for Sun/Oracle, and while it remains important to associate Java the ecosystem with a particular vendor I believe that the marketing event will survive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-6620610444807155969?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/6620610444807155969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=6620610444807155969' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6620610444807155969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6620610444807155969'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/06/javaone-2009.html' title='JavaOne 2009'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_i5ItD-GhlFg/SjY31-tK1NI/AAAAAAAABAk/PM21porysLs/s72-c/duke.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7043022658620202472</id><published>2009-04-02T11:32:00.002+01:00</published><updated>2009-04-02T12:06:40.258+01:00</updated><title type='text'>Not so fast Dagastine</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://download.intel.com/pressroom/kits/xeon/5500series/images/092085-006.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://download.intel.com/pressroom/kits/xeon/5500series/images/092085-006.jpg" alt="" border="0" /&gt;&lt;/a&gt;Earlier this week David Dagastine was &lt;a href="http://blogs.sun.com/dagastine/entry/java_rocks_intel_nehalem1"&gt;quick off the mark reporting&lt;/a&gt; HotSpot as:&lt;br /&gt;&lt;blockquote&gt;"the fastest, most reliable, and most widely deployed,  &lt;i&gt;open source&lt;/i&gt; Java Runtime in the world"&lt;/blockquote&gt;running on an Intel Nehalem.  Unfortunately a bit &lt;span style="font-style: italic;"&gt;too&lt;/span&gt; quick, since he didn't wait for the results to come in from IBM's J9 VM which &lt;a href="http://j9tr.blogspot.com/2009/03/ibm-j9-specjbb2005-results-used-in.html"&gt;posted a faster result&lt;/a&gt; as reported by Derek (who is, allegedy &lt;a href="http://duimovich.blogspot.com/2009/03/we-are-fastest-and-probably-best.html"&gt;8-10% better looking&lt;/a&gt; too)!&lt;br /&gt;&lt;br /&gt;The HotSpot results were partially attributed to improvements in the class library, which David (when challenged by Mark Wielaard) tells us "need additional work to integrate into OpenJDK, but that work is in progress now" -- I assume that they are in the same queue as the &lt;a href="http://tellison.blogspot.com/2008/12/bops-tree-hugging-and-safe-wagers.html"&gt;TreeMap performance changes &lt;/a&gt;that are apparently in the process of being contributed back to &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So today "Sun Java powered by the HotSpot Server VM" is &lt;span style="font-weight: bold;"&gt;not &lt;/span&gt;the fastest and &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; open source.  Looks like some catching-up to do again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7043022658620202472?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7043022658620202472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7043022658620202472' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7043022658620202472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7043022658620202472'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/04/not-so-fast-dagastine.html' title='Not so fast Dagastine'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-5816142386111764415</id><published>2009-03-21T09:26:00.002Z</published><updated>2009-03-21T09:32:39.095Z</updated><title type='text'>For best results ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_i5ItD-GhlFg/ScSzFFzY3QI/AAAAAAAAAyA/aMpyCgVEpNw/s1600-h/1237232718579.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_i5ItD-GhlFg/ScSzFFzY3QI/AAAAAAAAAyA/aMpyCgVEpNw/s400/1237232718579.jpg" alt="" id="BLOGGER_PHOTO_ID_5315570360242461954" border="0" /&gt;&lt;/a&gt;This sticker was on the back of a Jeremy Clarkson DVD in Sainsbury's!&lt;br /&gt;&lt;br /&gt;Remember to remove all outer packaging first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-5816142386111764415?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/5816142386111764415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=5816142386111764415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5816142386111764415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5816142386111764415'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/03/for-best-results.html' title='For best results ...'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_i5ItD-GhlFg/ScSzFFzY3QI/AAAAAAAAAyA/aMpyCgVEpNw/s72-c/1237232718579.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-4322307018224390494</id><published>2009-03-20T21:40:00.003Z</published><updated>2009-03-20T21:49:13.503Z</updated><title type='text'>Sun welcome at EclipseCon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipsecon.org/2009/q/gold/sun/sun170.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 170px; height: 85px;" src="http://www.eclipsecon.org/2009/q/gold/sun/sun170.jpg" alt="" border="0" /&gt;&lt;/a&gt;I'm delighted to see that Sun are Gold sponsors of &lt;a href="http://www.eclipsecon.org/2009/home"&gt;the EclipseCon event&lt;/a&gt; next week in Santa Clara.  It's sure to be a great event, and encouraging to see Sun able to demo their Eclipse support for Solaris, Glassfish and JavaFX.&lt;br /&gt;&lt;br /&gt;I wonder if &lt;a href="http://eclipse-ecosystem.blogspot.com/2006/03/netbeans-comes-to-eclipsecon.html"&gt;the Netbeans girls&lt;/a&gt; will be back again too?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-4322307018224390494?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/4322307018224390494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=4322307018224390494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/4322307018224390494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/4322307018224390494'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/03/sun-welcome-at-eclipsecon.html' title='Sun welcome at EclipseCon'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-968383060606353564</id><published>2009-03-19T15:36:00.006Z</published><updated>2009-03-19T15:57:49.553Z</updated><title type='text'>The "wrong type" of nature</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i5ItD-GhlFg/ScJnRcfKbEI/AAAAAAAAAxo/FT_GFFr5f-E/s1600-h/1234619568317.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 200px;" src="http://4.bp.blogspot.com/_i5ItD-GhlFg/ScJnRcfKbEI/AAAAAAAAAxo/FT_GFFr5f-E/s200/1234619568317.jpg" alt="" id="BLOGGER_PHOTO_ID_5314924059652942914" border="0" /&gt;&lt;/a&gt;Here in the South of England spring seems to have arrived, and that means getting back out to the apiary to see how things have faired over winter.&lt;br /&gt;&lt;br /&gt;I was pleased to see the colonies in both my hives are still alive and well (sadly not the case for many beekeepers' colonies this year).&lt;br /&gt;&lt;br /&gt;You can see from the photo on the left that I left my hives with some winter protection.  If you look closely you can see a metal "mouse guard" to keep the hibernating critters out, a super of honey for the bees' winter food, a solid roof which you can't see but has insulation inside, and the whole lot is surrounded with chicken wire -- which I had lying around in the garage.&lt;br /&gt;&lt;br /&gt;The chicken wire is there to stop woodpeckers.  In winter, when food is scarce, the woodpeckers figure out that there are bees in those big "lunch boxes", and they cling on the side to peck a hole and help themselves.  Apparently, they will even tap around a bit and figure out that the handles are the thinnest part of the hive, and will attack there.&lt;br /&gt;&lt;br /&gt;Well that was a good move, because the birds had helped themselves to some friends' bees that were placed close by:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i5ItD-GhlFg/ScJpPlB5DJI/AAAAAAAAAxw/xQ3yZNbthFY/s1600-h/1236694984992.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 150px; height: 200px;" src="http://4.bp.blogspot.com/_i5ItD-GhlFg/ScJpPlB5DJI/AAAAAAAAAxw/xQ3yZNbthFY/s200/1236694984992.jpg" alt="" id="BLOGGER_PHOTO_ID_5314926226609605778" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_i5ItD-GhlFg/ScJpdvB3HXI/AAAAAAAAAx4/6wPuwbBmY-Y/s1600-h/1236694775445.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_i5ItD-GhlFg/ScJpdvB3HXI/AAAAAAAAAx4/6wPuwbBmY-Y/s200/1236694775445.jpg" alt="" id="BLOGGER_PHOTO_ID_5314926469812002162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Apart from the annoyance of having the woodwork damaged, and having bees eaten and wax damaged - having an extra entrance means the hive is harder to defend for the remaining bees and the reduced colony may well be "robbed" of any remaining food by stronger colonies.  Once the woodpeckers learn there are free bees, they also tell their friends and you get them all round for a feast.&lt;br /&gt;&lt;br /&gt;Luckily the damage was spotted quite quickly, and repairs made.  Besides using chicken wire you can also tack plastic sheeting on the sides to stop the birds getting a hold.&lt;br /&gt;&lt;br /&gt;With both my colonies growing again it will be time to restart the regular inspections and get back into the intriguing world of the honeybee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-968383060606353564?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/968383060606353564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=968383060606353564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/968383060606353564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/968383060606353564'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/03/wrong-type-of-nature.html' title='The &quot;wrong type&quot; of nature'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_i5ItD-GhlFg/ScJnRcfKbEI/AAAAAAAAAxo/FT_GFFr5f-E/s72-c/1234619568317.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7013452923228037033</id><published>2009-02-17T13:21:00.002Z</published><updated>2009-02-17T13:38:14.156Z</updated><title type='text'>The Magic Android powered phone</title><content type='html'>The &lt;a href="http://news.bbc.co.uk/1/hi/technology/7894516.stm"&gt;BBC are reporting&lt;/a&gt; a new Android-based phone announcement at Mobile World Congress.  The HTC "Magic" will go on sale in various European countries through Vodafone.&lt;br /&gt;&lt;br /&gt;Judging by &lt;a href="http://www.itjobswatch.co.uk/jobs/uk/android.do"&gt;the job advertisements&lt;/a&gt;, you can also get a reasonable salary with Android programming skills &lt;a href="http://www.itjobswatch.co.uk/jobs/uk/j2me.do"&gt;compared to Java ME&lt;/a&gt; experience.  It's still a tiny percentage of the demand but maybe a sign of some traction in larger companies.  Watch out for the onset of non-phone devices powered by Android.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7013452923228037033?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7013452923228037033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7013452923228037033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7013452923228037033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7013452923228037033'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2009/02/magic-android-powered-phone.html' title='The Magic Android powered phone'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-4120304725493242859</id><published>2008-12-13T12:18:00.000Z</published><updated>2008-12-13T12:18:01.009Z</updated><title type='text'>Bops, tree hugging, and safe wagers</title><content type='html'>&lt;a href="http://tellison.blogspot.com/2008/07/gift-from-me-to-you.html"&gt;Back in July I wrote&lt;/a&gt; about how &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt;'s TreeMap implementation had been used (with modifications) to deliver improvements in Sun's SPECjbb2005 score by "a solid 3-5% depending on the platform" &lt;a href="http://blogs.sun.com/dagastine/entry/apache_harmony_thanks_for_the"&gt;according to Dave&lt;/a&gt; who also promised that they were "making the necessary steps to give back [the] code changes to Apache Harmony"; even though they are not obliged to do so according to the Apache License.&lt;br /&gt;&lt;br /&gt;Did you expect us to sit and wait?!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spec.org/osg/jbb2005/results/jbb2005.html"&gt;IBM has just published its latest SPECjbb2005&lt;/a&gt; scores with, amongst other things, an enhanced version of TreeMap from Harmony that   gives them a 10% boost, and thereby move ahead in many reporting categories.  &lt;a href="http://j9tr.blogspot.com/2008/12/specjbb2005-bragging-rights-for-j9.html"&gt;Derek has all the details&lt;/a&gt;, and I encourage you to read them.&lt;br /&gt;&lt;br /&gt;It would be interesting to look back and compare the changes Sun and IBM made to Harmony's TreeMap, and merge them for the common good.&lt;br /&gt;&lt;br /&gt;While I'm sure Dave's intentions are pure, I doubt the suits will let him contribute his changes back to Apache and all the talk of "&lt;a href="http://www.sun.com/software/opensource/java/faq.jsp#g19"&gt;requiring innovation sharing in the commons&lt;/a&gt;" only applies in one direction.   In fact, I'm so sure, that if Sun &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; successfully contribute their TreeMap changes back to Apache Harmony I promise to give £500 of my own hard-earned money to &lt;a href="http://www.woodland-trust.org.uk/"&gt;The Woodland Trust&lt;/a&gt; to benefit some real trees.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-4120304725493242859?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/4120304725493242859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=4120304725493242859' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/4120304725493242859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/4120304725493242859'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/12/bops-tree-hugging-and-safe-wagers.html' title='Bops, tree hugging, and safe wagers'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-168907657508354905</id><published>2008-12-12T11:46:00.005Z</published><updated>2008-12-12T12:11:24.446Z</updated><title type='text'>Debugging mixed-language code in Apache Harmony + Eclipse</title><content type='html'>I've been hacking in managed runtimes for &lt;a href="http://tellison.blogspot.com/2007/01/you-are-only-as-old-as-keyboard-you.html"&gt;more years&lt;/a&gt; than I'd care to mention, and plenty of that time has been spent in debuggers of one sort or another!&lt;br /&gt;&lt;br /&gt;...and that's the point.  Implementing a runtime requires that you have a suite of debuggers that cover the different target platform native code and the dynamic late-bound language &lt;span style="font-style: italic;"&gt;du jour&lt;/span&gt;.  You have to switch from Eclipse to WinDbg/gdb and back again frequently.&lt;br /&gt;&lt;br /&gt;Intel's Software group have (for some unknown reason) been quite low key about their innovation in this space, with the development of an &lt;a href="http://software.intel.com/en-us/articles/integrated-debugger-for-javajni-environments"&gt;integrated debugger for Java and JNI environments&lt;/a&gt;.  This advance has been enabled by the combination of support in the Eclipse Java Debug Tools and &lt;a href="http://harmony.apache.org"&gt;Apache Harmony&lt;/a&gt; runtime.&lt;br /&gt;&lt;br /&gt;Now, as you step into a native method from Java, the Eclipse debugger shows a logical representation of the mixed Java thread / C thread stack frames and allows you to inspect variables etc. in either language.  They also support the JNI methods that call back into Java so you get full roundtripping.  Cool.&lt;br /&gt;&lt;br /&gt;For most people who need to debug a system comprising Java and native code this is exactly what you want to do, and its a real time saver to be able to manage the breakpoints, variable watches and flow of control from a single IDE.&lt;br /&gt;&lt;br /&gt;Kudos to Chris, Vasily, Gregory, Ilya,  &lt;span style="font-style: italic;"&gt;et al&lt;/span&gt; who made this work.  Clearly people who live in the real world!&lt;br /&gt;&lt;br /&gt;Go watch the screencast demo, download it and try it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-168907657508354905?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/168907657508354905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=168907657508354905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/168907657508354905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/168907657508354905'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/12/debugging-mixed-language-code-in-apache.html' title='Debugging mixed-language code in Apache Harmony + Eclipse'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-5401728719779770474</id><published>2008-11-14T15:36:00.005Z</published><updated>2008-11-14T15:44:33.361Z</updated><title type='text'>EVP of software leaves Sun - that makes 6,001</title><content type='html'>Rich Green, the long time Executive Vice President of Software has quit Sun according to &lt;a href="http://www.marketwatch.com/news/story/sun-micro-lay-off-many/story.aspx?guid=%7B26E52A47-4A68-4263-86DD-F7696D2C0299%7D&amp;amp;dist=msr_1"&gt;press reports&lt;/a&gt; about the new round of job cuts affecting 6,000 workers.&lt;br /&gt;&lt;br /&gt;Seems that the Sun website was quick to notice, &lt;a href="http://www.sun.com/aboutsun/media/ceo/bio.jsp?name=Rich%20Green"&gt;his webpage&lt;/a&gt; went offline almost immediately (but can still be found in &lt;a href="http://64.233.183.104/search?q=cache:2kJgByV5tyoJ:www.sun.com/aboutsun/media/ceo/bio.jsp%3Fname%3DRich%2520Green+site:sun.com&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=3&amp;amp;gl=uk&amp;amp;client=firefox-a"&gt;the Google cache&lt;/a&gt;).  I guess there is no love lost with the software guys and girls running the website ;-)&lt;br /&gt;&lt;br /&gt;Not a good time to be made redundant (if ever there was).  Good luck to all those smart people who will be out there in the market place now looking for new opportunities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-5401728719779770474?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/5401728719779770474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=5401728719779770474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5401728719779770474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5401728719779770474'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/11/evp-of-software-leaves-sun-that-makes.html' title='EVP of software leaves Sun - that makes 6,001'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-1210279832162085280</id><published>2008-10-28T20:49:00.007Z</published><updated>2008-10-28T22:07:33.188Z</updated><title type='text'>Sun get a visit from Uncle Sam</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mancrush.com/images/guys/ezi/683.jpg?1161547080"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 100px; height: 100px;" src="http://www.mancrush.com/images/guys/ezi/683.jpg?1161547080" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Things really are not looking too good at Sun right now.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://google.brand.edgar-online.com/displayfilinginfo.aspx?FilingID=6203934-1974-49240&amp;amp;type=sect&amp;amp;TabIndex=2&amp;amp;companyid=8840&amp;amp;ppu=%252fdefault.aspx%253fsym%253dJAVA"&gt;recent SEC filing&lt;/a&gt; shows that Southeastern Asset Management (a.k.a. Uncle "SAM") have spent $2,115,932,199 to bring their acquired stock of Sun up to 21% of the company's total outstanding shares.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;The aggregate number and percentage of Securities to which this Schedule 13D relates is 160,566,828 shares of the common stock of the Issuer, constituting approximately 21.2% of the 757,953,410 shares outstanding.&lt;/span&gt;&lt;/blockquote&gt;But Uncle Sam is no sugar daddy.  He wants to move in for a while and "help" Sun to manage the company...&lt;br /&gt;&lt;blockquote style="color: rgb(0, 153, 0);"&gt;As the result of investment analysis or the occurrence of events, Southeastern may desire to participate in discussions with the particular portfolio company's management or with third parties about significant matters in which Southeastern may suggest possible courses of action to assist in building corporate intrinsic value per share or to cause the Company's true economic value to be recognized.  In such situations, Southeastern may elect to convert a filing on Schedule 13G to a filing on Schedule 13D in order to be more active in corporate governance and management matters, and to have the ability to enter into discussions with third parties concerning proposed corporate transactions of a significant nature.&lt;/blockquote&gt;Hmm - what do you read into the expressions "&lt;span style="font-style: italic;"&gt;suggest possible courses of action&lt;/span&gt;", "&lt;span style="font-style: italic;"&gt;be more active in corporate governance and management&lt;/span&gt;" and "&lt;span style="font-style: italic;"&gt;enter into discussions with third parties concerning proposed transactions of a significant nature&lt;/span&gt;" ??  That in conjunction with news that co-founder &lt;a href="http://www.hemscott.com/news/static/tfn/item.do?newsId=68240589790923"&gt;Bechtolsheim has found new interests&lt;/a&gt; outside Sun points to some loss of control by the current management team.&lt;br /&gt;&lt;br /&gt;This comes hot on the heels of &lt;a href="http://www.sun.com/aboutsun/pr/2008-10/sunflash.20081020.2.xml"&gt;Sun's preliminary results for 1Q09&lt;/a&gt; in which, beyond the earnings warnings, there was the notice of imminent "goodwill impairment" which essentially means that the premium they paid on their acquisitions probably won't be earned back.  Which acquisition(s) they overpaid for is a matter of &lt;a href="http://weblog.infoworld.com/openresource/archives/2008/10/does_mysql_play.html?source=rss"&gt;debate&lt;/a&gt;.  I expect &lt;a href="http://www.sun.com/aboutsun/investor/earnings_releases/audiocast.html"&gt;the results call&lt;/a&gt; will be tough on Thursday.&lt;br /&gt;&lt;br /&gt;We can only speculate about what Uncle Sam will think of Sun's software business, and the Java group in particular.  Now it is open sourced it is hard to see how Sam will realize it's "intrinsic value" for Sun's shareholders.  Let's hope Sam sees the value of freedom over no-cost -- and let's hope that Sun can turn things around in this period of &lt;a href="http://news.google.co.uk/news?hl=en&amp;amp;q=global+economic+downturn&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;sa=X&amp;amp;oi=news_group&amp;amp;resnum=4&amp;amp;ct=title"&gt;global economic downturn&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-1210279832162085280?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/1210279832162085280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=1210279832162085280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1210279832162085280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/1210279832162085280'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/10/sun-get-visit-from-uncle-sam.html' title='Sun get a visit from Uncle Sam'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3970866334403976286</id><published>2008-09-23T20:58:00.003+01:00</published><updated>2008-09-23T21:33:28.908+01:00</updated><title type='text'>T-Mobile G1 (tm) with Google (tm) with Harmony</title><content type='html'>The &lt;a href="http://www.t-mobileg1.com/g1-announcement.aspx"&gt;Press Release&lt;/a&gt; is out, and T-Mobile G1 is officially launched.  I'm delighted that T-Mobile are making the platform available in the US and Europe simultaneously.&lt;br /&gt;&lt;br /&gt;Of course, the real difference is that unlike some other 3G /WiFi feature phones you can buy today, Android is a truly open platform built with software available under the Apache License.  This makes it a real contender for businesses to invest their effort and value and compete.&lt;br /&gt;&lt;br /&gt;The core class libraries come from &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; -- the same source that IBM are using for its server class certified Java offerings [&lt;a href="http://www-03.ibm.com/servers/eserver/zseries/software/java/"&gt;&gt;&lt;/a&gt;], and Sun Microsystems are using in their performance release [&lt;a href="http://blogs.sun.com/dagastine/entry/apache_harmony_thanks_for_the"&gt;&gt;&lt;/a&gt;].  It's a testament to the innovation and flexibility embodied in the Harmony project that the code can span from mainframe zSeries machines to mobile phones.&lt;br /&gt;&lt;br /&gt;Interesting that the selling points for the phone are the applications it runs and how well they are integrated and adapted to the mobile device.  I believe it will give the young incumbent a run for its money -- and that is good news for the consumer.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_i5ItD-GhlFg/SNlSDeqgW0I/AAAAAAAAAdc/V-PE3hkjCg0/s1600-h/google_g1_logo.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_i5ItD-GhlFg/SNlSDeqgW0I/AAAAAAAAAdc/V-PE3hkjCg0/s200/google_g1_logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5249317060401453890" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3970866334403976286?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3970866334403976286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3970866334403976286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3970866334403976286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3970866334403976286'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/09/t-mobile-g1-tm-with-google-tm-with.html' title='T-Mobile G1 (tm) with Google (tm) with Harmony'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_i5ItD-GhlFg/SNlSDeqgW0I/AAAAAAAAAdc/V-PE3hkjCg0/s72-c/google_g1_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7501487996658382359</id><published>2008-09-22T17:43:00.002+01:00</published><updated>2008-09-22T18:01:47.148+01:00</updated><title type='text'>Ubuntu - now with added fizz</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_i5ItD-GhlFg/SNfLK4I2KyI/AAAAAAAAAdU/ZZS9j2S0sgM/s1600-h/IMG00044.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; clear: both; float: left;" alt="" src="http://3.bp.blogspot.com/_i5ItD-GhlFg/SNfLK4I2KyI/AAAAAAAAAdU/ZZS9j2S0sgM/s320/IMG00044.jpg" width="202" border="0" height="252" /&gt;&lt;/a&gt;  It took me about two seconds to put Ubuntu on my laptop this morning :-)&lt;br /&gt;&lt;br /&gt;This bottle caught my eye yesterday, so I had to buy it.   I guess if you are looking for ways to shift large quantities of Fair Trade sugar, then selling cola has to be as good a way as any.&lt;br /&gt;&lt;br /&gt;Now if Pepsi &amp;amp; Coke switched to Fair Trade sugar I bet that would make a difference to the growing economies far beyond the cola-nization of offering free umbrellas to advertise their wares.&lt;br /&gt;&lt;br /&gt;Ubuntu : "I am because we are".&lt;div style="clear: both; text-align: left;"&gt;&lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /&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/7766304-7501487996658382359?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7501487996658382359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7501487996658382359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7501487996658382359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7501487996658382359'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/09/ubuntu-now-with-added-fizz.html' title='Ubuntu - now with added fizz'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_i5ItD-GhlFg/SNfLK4I2KyI/AAAAAAAAAdU/ZZS9j2S0sgM/s72-c/IMG00044.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7532171622415361533</id><published>2008-08-19T16:55:00.003+01:00</published><updated>2008-08-19T17:07:19.536+01:00</updated><title type='text'>The first honey crop!</title><content type='html'>Last weekend, after getting back from holiday, I took eight frames from the bee hive at home, and extracted the beautiful golden honey.&lt;br /&gt;&lt;br /&gt;The bees have been doing a great job, and they are fascinating to watch and learn about.  It's a little civilization in your backyard.  There are little victories as you see bees laden with nectar and pollen return safely to the hive, and concerns as you see hornets and wasps trying to get in to seal the pupae and honey.&lt;br /&gt;&lt;br /&gt;The honey we got is very light coloured.  The bees are collecting from a variety of sources in our neighbourhood, and although I don't like honey I'm told it has a wonderful delicate flavour.&lt;br /&gt;&lt;br /&gt;Here's a slideshow of the hive and honey.  From eight frames we got about 23 lbs (~10kg) of honey and there are another thirty frames to go!   Obviously way more honey than we'll ever be able to use.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.co.uk/s/c/bin/slideshow.swf" flashvars="host=picasaweb.google.co.uk&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.co.uk%2Fdata%2Ffeed%2Fapi%2Fuser%2Ft.p.ellison%2Falbumid%2F5236255562670701665%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" width="288" height="192"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7532171622415361533?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7532171622415361533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7532171622415361533' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7532171622415361533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7532171622415361533'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/08/first-honey-crop.html' title='The first honey crop!'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-5889473170883649928</id><published>2008-07-25T22:16:00.002+01:00</published><updated>2008-07-25T22:31:35.077+01:00</updated><title type='text'>Microsoft sponsors The Apache Software Foundation</title><content type='html'>At OSCON today, Microsoft &lt;a href="http://port25.technet.com/archive/2008/07/25/oscon2008.aspx"&gt;announced&lt;/a&gt; that they are becoming a Platinum level sponsor of The Apache Software Foundation, joining the &lt;a href="http://www.apache.org/foundation/thanks.html"&gt;existing sponsors&lt;/a&gt; at that level, Google and Yahoo!&lt;br /&gt;&lt;br /&gt;It's great to see Apache's no-nonsense, technology focused approach to open source being clearly recognized as a place where everyone can collaborate as equals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-5889473170883649928?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/5889473170883649928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=5889473170883649928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5889473170883649928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5889473170883649928'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/07/microsoft-sponsors-apache-software.html' title='Microsoft sponsors The Apache Software Foundation'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3907529996682833256</id><published>2008-07-08T10:50:00.003+01:00</published><updated>2008-07-08T15:00:19.681+01:00</updated><title type='text'>A gift from me to you...</title><content type='html'>Earlier this year (and at the end of last year) the good folk of &lt;a href="http://harmony.apache.org"&gt;the Apache Harmony project&lt;/a&gt; did some work to improve the performance of a self-balancing tree data structure in Java called "&lt;a href="http://www.jdocs.com/harmony/5.M5/java/util/TreeMap.html"&gt;TreeMap&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;TreeMap is one of the data structures used in the &lt;a href="http://www.spec.org/benchmarks.html#java"&gt;SPEC&lt;/a&gt; performance benchmarks, so improvements there help to improve the overall benchmark score.  This has been &lt;a href="http://blogs.sun.com/dagastine/entry/apache_harmony_thanks_for_the"&gt;noticed by the good folk at Sun&lt;/a&gt;, and their latest performance build now includes a modified version of the Harmony TreeMap implementation.&lt;br /&gt;&lt;br /&gt;It's good to see such reuse, and the commitment to "making the necessary steps to give back [the] code changes to Apache Harmony".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3907529996682833256?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3907529996682833256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3907529996682833256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3907529996682833256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3907529996682833256'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/07/gift-from-me-to-you.html' title='A gift from me to you...'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-4048043230330238876</id><published>2008-06-03T14:04:00.003+01:00</published><updated>2008-06-04T18:48:28.002+01:00</updated><title type='text'>Beekeeping</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://picasaweb.google.co.uk/t.p.ellison/Bees"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a&gt;&lt;img src="http://lh6.ggpht.com/t.p.ellison/SEQXcZaooEI/AAAAAAAAACo/XhhPErUo7mE/s144/IMG00023.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" /&gt;&lt;/a&gt;Last winter I took an course of evening classes at the local college in the ancient art and science of beekeeping.  When I tell people, their usual reaction is "&lt;span style="font-style: italic;"&gt;What made you want to do that?&lt;/span&gt;"  There's no simple answer to that question.&lt;br /&gt;&lt;br /&gt;You might expect me to say that I have been fascinated with bees since I was a kid, or something like that; but it was just one of those things that seemed like a cool idea.  There's lots to learn about the husbandry of the bees, and surprisingly to me a lot to learn about the production of honey.  So I joined the college course and local beekeeping association, read extensively on the subject, and built two hives.  All I was missing were the bees.&lt;br /&gt;&lt;br /&gt;My first colony has been stocked from a guy who had more bees than he needed.  They came with adult bees, larvae, and eggs on established comb.  The queen is marked and clipped.  This colony are in the garden at home, in a great location by the back window.  I can sit and watch the activity from the comfort of my armchair, and the kids have all had a turn coming out with me to inspect the hive and manage the bees.&lt;br /&gt;&lt;br /&gt;The second colony is to be stocked from a swarm.  I'm on the list to receive a swarm when members of the public report one -- so when people call the Police or Local Council to report a swarm of bees I'll go out and take them.  Last Friday I went to collect a decent sized swarm, and went through the motions of hiving them.  In the picture you can see the bees going up the ramp into the hive I have set-up near work.  Unfortunately the bees took a dislike to the hive for some reason, and three days later they had decided to look elsewhere.  So I'm back down to one colony and waiting for another phone call.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-4048043230330238876?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/4048043230330238876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=4048043230330238876' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/4048043230330238876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/4048043230330238876'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/06/beekeeping.html' title='Beekeeping'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/t.p.ellison/SEQXcZaooEI/AAAAAAAAACo/XhhPErUo7mE/s72-c/IMG00023.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3783035172520959784</id><published>2008-06-03T13:37:00.002+01:00</published><updated>2008-06-03T14:01:24.664+01:00</updated><title type='text'>Two milestones for Apache Harmony</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2065/2329162285_700fab6e41_t.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 86px; height: 116px;" src="http://farm3.static.flickr.com/2065/2329162285_700fab6e41_t.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a href="http://harmony.apache.org"&gt;Apache Harmony&lt;/a&gt; recently passed two significant milestones.&lt;br /&gt;&lt;br /&gt;Firstly, we published another in the series of stable, well-tested, and packaged builds of Harmony 5.0 code.  The latest milestone build is 5.0 M6, and is available from the usual &lt;a href="http://harmony.apache.org/download.cgi"&gt;download page&lt;/a&gt;.  This build has the usual raft of bug fixes and enhancements that means everyone should upgrade to the latest stable build.&lt;br /&gt;&lt;br /&gt;Secondly, the Harmony community voted to accept a contribution of the &lt;a href="http://svn.apache.org/viewvc/harmony/enhanced/microemulator/"&gt;microemulator code&lt;/a&gt; into the project.  This is an exciting new venture for Harmony, as we expand our community into the Java ME arena.  Microemulator is a pure Java implementation of Java ME written in terms of the Java SE APIs.  It allows applications written as MIDlets (MIDP/CLDC) to run on the desktop as a standalone Java application, or as a web browser applet.  It comes with tests and examples, and something intriguingly called 'microemu-android'.  Go take a look.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;[image courtesy of &lt;a href="http://www.flickr.com/photos/chelmsfordblue"&gt;chelmsfordblue&lt;/a&gt;]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3783035172520959784?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3783035172520959784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3783035172520959784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3783035172520959784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3783035172520959784'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/06/two-milestones-for-apache-harmony.html' title='Two milestones for Apache Harmony'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2065/2329162285_700fab6e41_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-5245516358942242750</id><published>2008-03-27T09:31:00.003Z</published><updated>2008-03-27T10:18:22.308Z</updated><title type='text'>Cleaner Harmony code, thanks to Microsoft!</title><content type='html'>&lt;a href="http://harmony.apache.org"&gt;Apache Harmony&lt;/a&gt; comprises well over half a million lines of native C/C++ code (in the class library natives, virtual machine, JIT compiler, memory manager, etc.) which we have organized to build across multiple platforms.  One of our key development platforms is Microsoft Windows on x86 processors, and on that platform a number of us are using the Microsoft Visual C++ compiler from Visual Studio.&lt;br /&gt;&lt;br /&gt;I have been using the compiler in Visual Studio .NET 2003 for the longest time, but we recently started receiving reports, on the Harmony developers' list, of compile time errors from people who have a later version of the compiler.  We have fixed a few errors thanks to the bug reports people raised.&lt;br /&gt;&lt;br /&gt;But I can fix them myself now thanks to &lt;a href="http://port25.technet.com/"&gt;Microsoft's port25 group&lt;/a&gt; who have graciously granted me, and a number of other people at &lt;a href="http://www.apache.org"&gt;the ASF&lt;/a&gt;, a no-cost subscription to Visual Studio Team Edition and MSDN Premiere.  That's a license to 'all you can eat', and allows me to detect and fix more warnings in the Apache Harmony code.  Expect the code to be &lt;a href="http://harmony.apache.org/quickhelp_contributors.html"&gt;buildable&lt;/a&gt; on more versions of the Microsoft compiler over the next few days.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-5245516358942242750?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/5245516358942242750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=5245516358942242750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5245516358942242750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/5245516358942242750'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/03/cleaner-harmony-code-thanks-to.html' title='Cleaner Harmony code, thanks to Microsoft!'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7949096338719450458</id><published>2008-02-08T12:48:00.000Z</published><updated>2008-02-08T13:33:59.199Z</updated><title type='text'>A little less Harmony at JavaOne this year</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;"We regret to inform you that we will be unable to accept your proposal entitled ' Apache Harmony '."&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; was &lt;a href="http://mail-archives.apache.org/mod_mbox/incubator-general/200505.mbox/%3CCA4BEB82-3D84-457D-9531-1477DD749919@apache.org%3E"&gt;established&lt;/a&gt; back in May 2005, and that year the JavaOne program committee graciously squeezed in a slot for &lt;a href="http://blogs.codehaus.org/people/geir/"&gt;Geir&lt;/a&gt; to explain the new "&lt;a href="http://www.theinquirer.net/en/inquirer/news/2005/05/10/apache-to-cleanroom-java-with-suns-blessing"&gt;Sun-blessed-project&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Of course, things have changed a bit since then, with the establishment of Sun's own &lt;a href="http://openjdk.java.net/" rel="nofollow"&gt;OpenJDK &lt;/a&gt;implementation project, and a certain amount of backpedaling on the &lt;a href="http://www.apache.org/jcp/sunopenletter.html"&gt;JCK provision to Apache&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Over the last couple of years we have spoken at JavaOne about the contributions Apache received, and the advances in the project's capabilities.  Last year we had a discussion of the project architecture and demoed some cool Swing based apps running quite happily on Apache Harmony.  We are still making great progress with better than 99% Java SE API coverage, decent performance, and an innovative modular structure that allows Harmony code to be used in &lt;a href="http://mail-archives.apache.org/mod_mbox/harmony-dev/200712.mbox/%3c4759E2CD.5010308@gmail.com%3e"&gt;IBM Java 6.0&lt;/a&gt;, &lt;a href="http://code.google.com/android/"&gt;Google Android&lt;/a&gt;, and so on.&lt;br /&gt;&lt;br /&gt;But it appears there is no longer any appetite for the Java community to hear about the rationale, progress, and achievements of an alternative implementation when attending &lt;del&gt;Sun&lt;/del&gt;JavaOne 2008 -- even though we've always played nicely &amp;lt;shrug/&amp;gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7949096338719450458?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7949096338719450458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7949096338719450458' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7949096338719450458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7949096338719450458'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/02/little-less-harmony-at-javaone-this.html' title='A little less Harmony at JavaOne this year'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7265114511721960486</id><published>2008-02-04T17:19:00.000Z</published><updated>2008-02-04T17:38:24.263Z</updated><title type='text'>Meet God. He's the guy in the white labcoat.</title><content type='html'>Just over a week ago, the American Association for the Advancement of Science published &lt;a href="http://www.sciencemag.org/cgi/content/abstract/1151721"&gt;an article&lt;/a&gt; in Science magazine entitled "Complete Chemical Synthesis, Assembly, and Cloning of a Mycoplasma genitalium Genome".   The article describes a new milestone in the goal to create life from its fundamental building blocks  -  Deoxyribonucleic acid (DNA).&lt;br /&gt;&lt;br /&gt;This "synthesis, assembly, and cloning" work was undertaken by a team at the &lt;a href="http://www.jcvi.org/"&gt;J. Craig Venter Institute&lt;/a&gt; in the USA.   Together they assembled 582,970 DNA letters into an artificial chromosome that they (apparently) are now attempting to implant into a bacterial cell to produce a new life form.&lt;br /&gt;&lt;br /&gt;To ensure the artificial life form is uniquely identifiable, the team deliberately sequenced watermarks into the DNA sequence.   David Wheeler and Tao Tao &lt;a href="http://blog.wired.com/wiredscience/2008/01/venter-institut.html"&gt;examined the code&lt;/a&gt; and found these watermarks, which rather predictably included references to the designers' names and corporate affiliation.&lt;br /&gt;&lt;br /&gt;Given their past history with patents, I'm assuming that the team will guard their creativity, by legally protecting the life form they invented.   A number of reports have indicated that the team's ultimate goal is to produce bacteria that will provide a new biofuel source, or that will consume CO2 from the atmosphere to address global warming, and such like.   If so, they stand on the cusp of a significant new industry with the potential to create phenomenal wealth, political and social influence, on a scale that has never been seen before.&lt;br /&gt;&lt;br /&gt;The question invariably arises about whether this research is something that should be legislated.   However, science moves much quicker than legislators, and science has far broader boundaries than the legislators' jurisdiction.   You only have to look at the &lt;a href="http://www.independent.co.uk/news/science/appeal-court-rejects-challenge-to-cloning-rules-663923.html"&gt;legal challenges&lt;/a&gt; around cloning and embryology to see that laws passed just 12 years ago in the UK are inadequate to deal with the latest advancements in the science.   It is futile to depend upon specific written laws to police the scientists, instead we rely upon moral influence, communication, and community reaction.&lt;br /&gt;&lt;br /&gt;And therein lies the problem, and the opportunity.   Nobody asked the industrialists in the industrial revolution to stop inventing and advancing the state of the art in their field of endeavor.   Nobody can bring legislation to dictate how people will choose to use the power of their computers and the Internet.   We rely upon the wisdom of the masses to move towards those technologies that improve the world for the majority of the population.   I expect that there will be a widening gap between "those that have" and "those that have not".   It is everyone's duty to ensure that such a gap is minimized, by sharing knowledge and power equitably.&lt;br /&gt;&lt;br /&gt;In the end, the news of &lt;span style="font-style: italic;"&gt;Mycoplasma genitalium&lt;/span&gt; was overshadowed by the uncovering of a 4.9 billion euro &lt;a href="http://ap.google.com/article/ALeqM5h8jkMIDj4zmw-2u6_pyVeOLPywLQD8UCDEDG1"&gt;fraud&lt;/a&gt;  at the same time in French bank Societe Generale.  At least for the moment, the God people seem to still care about can be carried in your back pocket.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7265114511721960486?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7265114511721960486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7265114511721960486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7265114511721960486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7265114511721960486'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2008/02/meet-god-hes-guy-in-white-labcoat.html' title='Meet God. He&apos;s the guy in the white labcoat.'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-2654664360071020442</id><published>2007-11-07T21:05:00.000Z</published><updated>2007-11-07T22:04:14.984Z</updated><title type='text'>Angelina Jolie is my girlfriend</title><content type='html'>&lt;img src="http://upload.wikimedia.org/wikipedia/commons/c/c0/Animation2.gif" /&gt;&lt;br /&gt;It's interesting to watch the swirl of responses to &lt;a href="http://www.openhandsetalliance.com/press_110507.html"&gt;the announcement of the Open Handset Alliance platform&lt;/a&gt;, the culmination of collaboration around Google's 2005 acquisition of Android Inc.&lt;br /&gt;&lt;br /&gt;There has been the expected &lt;a href="http://news.bbc.co.uk/1/hi/technology/7082414.stm"&gt;response from Symbian&lt;/a&gt; about how Android will never get traction as a mobile phone platform.  The rationale that "it's rocket science", and therefore too hard for the alliance, is just nonsense.  I've heard that excuse too many times from those who think that means there is therefore no space for innovation and choice.&lt;br /&gt;&lt;br /&gt;The other, rather puzzling response was from &lt;a href="http://blogs.sun.com/jonathan/entry/congratulations_google"&gt;Sun's Jonathan Schwartz&lt;/a&gt;, who congratulated Google on the announcement, and set about aligning Sun's Java implementation, and Netbeans IDE, with the Android platform.  I say 'puzzling' because he is apparently assuming that Sun's Java ME community will play a big role on the Android platform.  However, &lt;a href="http://www.esmertec.com/press/2007/071105_pressrelease_OHA_E.shtml"&gt;Esmertec &lt;/a&gt;is a founding member of the Open Handset Alliance, and their 'Jbed' Java VM will be available on the Android platform immediately, including Java ME support.&lt;br /&gt;&lt;br /&gt;To be clear, the 'Jbed' VM will be available under a commercial license, it is not being open sourced.  And it is not based on JavaFXMobile or phoneME.  It seems that Sun's welcoming Android to those communities is an unrequited friendship -- its like me unilaterally announcing that Angelina Jolie and I are now 'an item'.&lt;br /&gt;&lt;br /&gt;It remains to be seen whether there will be an open source Java implementation made available for the Android platform that is compatible with &lt;a href="http://www.openhandsetalliance.com/android_faq.html"&gt;it's "commercial-friendly" Apache License&lt;/a&gt; terms.  I suggest that rather than &lt;a href="http://blogs.zdnet.com/BTL/?p=6900"&gt;speculating&lt;/a&gt;, the smart money will wait until the early preview becomes available on November 12th.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-2654664360071020442?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/2654664360071020442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=2654664360071020442' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/2654664360071020442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/2654664360071020442'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/11/angelina-jolie-is-my-girlfriend.html' title='Angelina Jolie is my girlfriend'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-942956943427407005</id><published>2007-08-28T13:49:00.000+01:00</published><updated>2007-08-28T13:56:32.218+01:00</updated><title type='text'>Sending best wishes to Greg Stein</title><content type='html'>I was shocked to read the news that Greg &lt;a href="http://feedblog.org/2007/08/27/greg-stein-director-of-the-apache-software-foundation-was-mugged-accepting-donations/"&gt;was set upon outside his home&lt;/a&gt; last Friday.  Attacking somebody already on crutches has got to be about as low it goes even amongst the criminal elements of society.&lt;br /&gt;&lt;br /&gt;I'd like to add my best wishes for Greg's speedy recovery, and hope that his cowardly attackers are brought to justice for their actions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-942956943427407005?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/942956943427407005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=942956943427407005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/942956943427407005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/942956943427407005'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/08/sending-best-wishes-to-greg-stein.html' title='Sending best wishes to Greg Stein'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-2251960477890974444</id><published>2007-07-26T13:14:00.000+01:00</published><updated>2007-07-26T22:52:13.256+01:00</updated><title type='text'>Here be (multiple) dragons</title><content type='html'>Are you thinking about the impact of multi-core processors on the code you write?  Are you just &lt;span style="font-style: italic;"&gt;thinking&lt;/span&gt; about it or actually writing code that will exploit multiple cores?&lt;br /&gt;&lt;blockquote&gt;"The computing industry changed course in 2005 when Intel followed the lead of IBM’s Power 4 and Sun Microsystems’ Niagara processor in announcing that its high performance microprocessors would henceforth rely on multiple processors or cores."  &lt;span style="font-size:78%;"&gt;[&lt;a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.html"&gt;The Landscape of Parallel Computing Research: A View from Berkeley&lt;/a&gt;]&lt;/span&gt;&lt;/blockquote&gt;Programming for multiple processors is hard.  I find myself having to make an explicit mental switch from a 'functional view' of what the program is trying to accomplish, to a 'multi-threaded view' of how the flow of control can help / hinder the program effectiveness in the light of multiple threads running on multiple cores.  Then mentally switch back and forth until both worlds are reconciled.  I'm sure smarter people can do this in a single pass, but I can't.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.library.ubc.ca/spcoll/dragon.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 75px;" src="http://www.library.ubc.ca/spcoll/dragon.gif" alt="" border="0" /&gt;&lt;/a&gt;There are multiple dragons to consider too, that live in the regular world of parallel algorithms &lt;span style="font-size:85%;"&gt;(deadlock, stalling, synchronization, ...)&lt;/span&gt;, in the nuances of the system's memory model &lt;span style="font-size:85%;"&gt;(visibility guarantees, NUMA, data races, ...)&lt;/span&gt;, and in the language implementation choices &lt;span style="font-size:85%;"&gt;(particular compiler's instruction reordering, effects of Java final, pthreads version, ...)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In Java there is a defined memory model (&lt;a href="http://jcp.org/aboutJava/communityprocess/review/jsr133/index.html"&gt;JSR133&lt;/a&gt;) and set of concurrency utilities that significantly help with writing correct, portable programs.  Intel have released a set of libraries and utilities for C++ called '&lt;a href="http://www.threadingbuildingblocks.org/"&gt;Thread Building Blocks&lt;/a&gt;' that should improve the correctness and portability of those programs too.&lt;br /&gt;&lt;br /&gt;The Intel suite (which appears to be descended from the OpenMP code) runs on Windows/P4 or Xeon, Linux/P4 or Xeon or Itanium2, and MacOSX/Core Duo and has been released under a modified-GPLv2 license, with the option to commercially license at a measly 300 dollars a platform.&lt;br /&gt;&lt;br /&gt;That commercial license option means this is another 'parallel open source project'.  If you want to contribute to Thread Building Blocks then you must assign copyright to Intel, and grant them a broad patent license.  In return they license your code back to you to use as you choose.  The Governance model is 'Intel decide' too.  I have to say that I'm no fan of this style of project, but back to the technology...&lt;br /&gt;&lt;br /&gt;Abstracting the 'multithreaded view' into a set of consumable APIs and pragmas helps the application writer focus on the functional correctness, and allows the compiler writers to optimize for known patterns without the disruption of language changes.&lt;br /&gt;&lt;br /&gt;It will be interesting to see if these building blocks are adopted by the other major CPU/compiler vendors, and whether they are extended into languages beyond C++.  Will they do it under the Intel terms for this project?&lt;br /&gt;&lt;br /&gt;The technology is sound.  Anything that helps us voyagers to navigate the uncharted waters and avoid the &lt;a href="http://www.askoxford.com/worldofwords/quotations/quotefrom/dragons/"&gt;dragons&lt;/a&gt; will be most welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-2251960477890974444?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/2251960477890974444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=2251960477890974444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/2251960477890974444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/2251960477890974444'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/07/here-be-multiple-dragons.html' title='Here be (multiple) dragons'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-6660706600070696848</id><published>2007-07-24T16:35:00.001+01:00</published><updated>2007-07-24T21:18:56.491+01:00</updated><title type='text'>Grand Poobah of the Harmony lodge</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/0/0c/Pope_Shenouda_by_MichaelSleman_01.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 100px;" src="http://upload.wikimedia.org/wikipedia/commons/0/0c/Pope_Shenouda_by_MichaelSleman_01.jpg" alt="" border="0" /&gt;&lt;/a&gt;I'm delighted to have been appointed to the Chair of the &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; project, taking over from fellow harmonizer Geir Magnusson, who has been chair since the project's inception in 2005. Geir moves on the Apache Board, and remains Apache's JCP SE/EE Executive Comittee member.&lt;br /&gt;&lt;br /&gt;In truth, the position of &lt;a href="http://en.wikipedia.org/wiki/Grand_Poobah"&gt;Grand Poobah&lt;/a&gt; doesn't grant any exceptional powers -- I don't even get a big hat or fancy medal or anything :-).   Of course, the Harmony project &lt;span style="font-style: italic;"&gt;is&lt;/span&gt; the community of developers who show up on the dev' list every day, and it is managed day to day by the committers on the PMC.&lt;br /&gt;&lt;br /&gt;Since Apache is a 501(c)3 not-for-profit corporation,  the Board requires a corporate officer acting on their behalf within the project, and in turn all project members provide oversight and guidance to the project.  This delegation model provides shared responsibility with the umbrella protection of the Foundation as a whole.&lt;br /&gt;&lt;br /&gt;It's an honour to be appointed V.P., Harmony.  Now if you'll excuse me, I'm off over to eBay to look at &lt;a href="http://cgi.ebay.co.uk/FANCY-DRESS-BISHOPS-MITRE-HAT_W0QQitemZ320140639924QQihZ011QQcategoryZ58373QQrdZ1QQssPageNameZWD4VQQcmdZViewItem"&gt;the hats on offer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;[For the avoidance of doubt, "no" that is not me in the photo (or Ken Coar&lt;g&gt;), it is His Holiness Pope Shenouda III photographed by Michael Sleman]&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Pope_Shenouda_by_MichaelSleman_01.jpg/398px-Pope_Shenouda_by_MichaelSleman_01.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-6660706600070696848?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/6660706600070696848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=6660706600070696848' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6660706600070696848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6660706600070696848'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/07/grand-poobah-of-harmony-lodge.html' title='Grand Poobah of the Harmony lodge'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-8378765802523609343</id><published>2007-07-12T09:28:00.000+01:00</published><updated>2007-07-12T09:49:51.788+01:00</updated><title type='text'>OSSummit call for speakers is closing</title><content type='html'>If you were thinking of submitting a talk proposal for the joint Eclipse / Apache sponsored &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OSSummit&lt;/span&gt; conference being held in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Hong&lt;/span&gt; Kong at the end of November this year -- then you don't have much time left to act!   The Call for Participation (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CFP&lt;/span&gt;) closes on July 13&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;th&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;While the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;CFP&lt;/span&gt; promotes the meeting's interest in Apache and Eclipse projects, I'd personally be particularly interested to see a significant number speakers from local free software and open source efforts in the P.R.China.&lt;br /&gt;&lt;br /&gt;The organizers are also providing a generous allowance for flights and accommodation to all conference speakers, so it should be a great opportunity for everyone to meet and exchange experiences and advice.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ossummit.com/"&gt;&lt;img src="http://www.ossummit.com/ads/ossummit_button_2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size: 85%;"&gt;[Disclosure: I'm on the organizing committee for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;OSSummit&lt;/span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-8378765802523609343?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/8378765802523609343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=8378765802523609343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/8378765802523609343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/8378765802523609343'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/07/ossummit-call-for-speakers-is-closing.html' title='OSSummit call for speakers is closing'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3924343444143140673</id><published>2007-07-02T22:06:00.001+01:00</published><updated>2007-07-02T22:42:28.017+01:00</updated><title type='text'>G-WMAA cleared for take off</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.hampshireandiowairambulance.org.uk/images/logo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 114px; height: 84px;" src="http://www.hampshireandiowairambulance.org.uk/images/logo.png" alt="" border="0" /&gt;&lt;/a&gt;I live in Hampshire which, until yesterday, was the only remaining county in the UK that didn't have an air ambulance service.   The service will be particularly useful to residents of the nearby Isle of Wight if they need emergency care only available on the mainland, as well as medical emergencies along the area's coast or in the county's broad rural areas.&lt;br /&gt;&lt;br /&gt;Through the hard work of the staff and volunteers of the associated charity the Bolkow 105 aircraft has been bought (call sign G-WMAA) and has become operative.  The charity needs £2,000 per day to keep the air ambulance aloft, and all of it is raised through community donations since the charity receives no money from the government.&lt;br /&gt;&lt;br /&gt;This project has been particularly interesting to me.  As a bit of an aircraft nut, and such a clear benefit to the community, I have been happy to contribute (in a very small way) to the challenge over the last couple of years.  It's great to see the service finally get off the ground, literally.&lt;br /&gt;&lt;br /&gt;I hope never to need the service, of course, and wouldn't wish the need on anyone; but accidents happen, and when they do we should provide the best service we can to help the unfortunate victims.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3924343444143140673?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3924343444143140673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3924343444143140673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3924343444143140673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3924343444143140673'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/07/g-wmaa-cleared-for-take-off.html' title='G-WMAA cleared for take off'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3651264701157483228</id><published>2007-07-02T13:00:00.000+01:00</published><updated>2007-07-09T10:19:17.668+01:00</updated><title type='text'>The beginning of the beginning of the end for the JCP</title><content type='html'>There is trouble brewing in the world of Java.  The evidence is not so apparent at the moment, but it has the potential to rock the Java ecosystem to it's foundations if the issues are mishandled.&lt;br /&gt;&lt;br /&gt;The principal issue is around the definition of 'standard' Java.  By mutual agreement, companies and individuals contribute to the definition of new Java standards through the Java Community Process (JCP).  The 'mutual agreement' of these contributors is written down as the Java Specification Participation Agreement (JSPA), which is the legal document describing the terms under which the contributions are made and can be used.  Like all legal documents, it doesn't describe every last nuance of the community interaction, nor should it attempt to do so, but in general the JCP has worked because there has not been an unreasonable agent at play -- everyone has been participating for the general improvement of Java, and everyone benefits from the general improvement of Java.&lt;br /&gt;&lt;br /&gt;So what happens when somebody tries to tip the balance of community participation in their favour?  Would you expect other community members to cry foul? try to right the wrong? withdraw their collaboration?  Well, yes!&lt;br /&gt;&lt;br /&gt;It is well documented how Apache have written an open letter to Sun asking for a license to the the Java SE 5 JCK.  So far, Sun have refused to grant such a license under terms that community members consider reasonable.  The details of the unacceptable terms are not so important here, but if the majority of the community feels that the work they have contributed via the JCP is being misappropriated by an unreasonable agent, what do you think they are likely to do?&lt;br /&gt;&lt;br /&gt;I suggest that unless Sun engage in a round of diplomacy and negotiation with the 'heavy-lifters' on the JCP Java SE/EE Executive Committee, such 'heavy-lifters' will decide pretty quickly that contributing to Java via the JCP is not a safe, smart thing to be doing, and the centre of gravity will move elsewhere.&lt;br /&gt;&lt;br /&gt;In the current situation, Apache is the fall guy and the JCP members are watching carefully to see how the issue will be resolved.  Whereas licensees normally negotiate with dollars behind closed doors, Apache are holding up (open source) principals and (now) negotiating in public. JCP members know that next time they could be the target&lt;br /&gt;&lt;br /&gt;We can only speculate as to why Sun are taking the current position.  Maybe it is a control thing -- their marketing certainly leads people to believe that Java == Sun, rather than Java is a result of contributions from many people that are brought together by Sun in the JCP.&lt;br /&gt;&lt;br /&gt;Maybe it is the fear that the JCK is inadequate to ensure Java's value proposition of 'write once run anywhere' (WORA).  There is a huge gap between being compliant (passing the JCK) and being compatible (behaving like the reference implementation).  For WORA to work, Java developers have to code only to the specification, or every implementation has to behave the same way down to very small details.  For so long, there has been only one game in town that developers have coded to the reference implementation, not the specification.  So when Apache deliver a compliant implementation, and Sun have to admit that it is real Java, but it doesn't run half of the Java applications on the planet...  what damage will that do to the Java brand?&lt;br /&gt;&lt;br /&gt;So I further expect that Sun will try to migrate the work currently conducted "through JSR's in the JCP" to work being conducted "in projects in OpenJDK" -- that is, try to blur the distinction of the &lt;span style="font-style: italic;"&gt;specification&lt;/span&gt; and the &lt;span style="font-style: italic;"&gt;implementation&lt;/span&gt;.  The goal being to ensure that there is only a single implementation.  Of course, with only a single implementation the specification becomes moot -- the implementation does whatever it does.&lt;br /&gt;&lt;br /&gt;That's how I get to my conclusion, that this may be the beginning of the end for the JCP.  By granting a suitable license to Apache, Sun would demonstrate to the community that the JCP is more than a mechanism by which they attract contributions to a single implementation they control.  They may be persuaded to do so, even if they would prefer not to.&lt;br /&gt;&lt;br /&gt;[2007-07-09 Edited to remove duplication junk, maybe caused by using a dollar sign?]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3651264701157483228?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3651264701157483228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3651264701157483228' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3651264701157483228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3651264701157483228'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/07/beginning-of-beginning-of-end-for-jcp.html' title='The beginning of the beginning of the end for the JCP'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-6272454783331166687</id><published>2007-07-01T21:43:00.000+01:00</published><updated>2007-07-02T08:45:36.038+01:00</updated><title type='text'>Bank of Tim International opens today!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kiva.org/img/w450h360/40855.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.kiva.org/img/w450h360/40855.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Being a Dad often feels like being a bank to the family, and the most popular transactions tend to be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;withdrawals&lt;/span&gt;!  But this weekend I upped my game and became an International Commercial Banker.&lt;br /&gt;&lt;br /&gt;I've made a loan to a Samoan sewing business to be repaid over a term of 18 months.  Maybe.  I've never met Freida Lisa &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Makesi&lt;/span&gt; (pictured), the businesswoman who took out the loan, which has been granted with no security or guarantee, and for which there is no interest payable (back to me).&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Ok&lt;/span&gt;, I'll come clean.  I signed up with a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;microloan&lt;/span&gt; site called &lt;a href="http://www.kiva.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Kiva&lt;/span&gt;&lt;/a&gt;.  The money at stake is only &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;USD&lt;/span&gt;$200, and I'm partnering with 15 other people to provide the full value of the $850 loan that Freida's business needs to buy a sewing machine.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Kiva&lt;/span&gt; is an interesting way to link those of us for which a couple of hundred bucks is not a life-changing amount, with those for whom it most certainly is.  The website details a number of needy businesses that have applied for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;microloans&lt;/span&gt; under conditions that a 'real' commercial bank would not touch. You use your own criteria for selecting the borrower, and lend them any amount from $25 up to the full loan amount.&lt;br /&gt;&lt;br /&gt;As the loan is repaid you get to see the payments being returned as credit to your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Kiva&lt;/span&gt; account. From there you can withdraw the money for a new gadget you don't really need, or lend it out again to help another business move one small step up the ladder.  Of course, you may never see the money again for any number of reasons, not least is that the mortality rate in the countries supported is way higher than where YOU probably live, or the borrower simply disappears with the money; but the field workers who administer the loan on your behalf select the borrowers based on their experience, and have an remarkably low defaulting rate on the loans they arrange.&lt;br /&gt;&lt;br /&gt;I have a structured approach to my charitable giving, but this is the first time I've tried &lt;span style="font-style: italic;"&gt;lending &lt;/span&gt;money to a worthy cause.  I'll let you know how it goes, but Freida Lisa &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Makesi&lt;/span&gt; has to be a better risk than my daughter for making good use of the money, and maybe paying it back!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-6272454783331166687?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/6272454783331166687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=6272454783331166687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6272454783331166687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6272454783331166687'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/07/bank-of-tim-international-opens-today.html' title='Bank of Tim International opens today!'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-961034868025657380</id><published>2007-06-12T13:37:00.000+01:00</published><updated>2007-06-12T14:34:13.931+01:00</updated><title type='text'>Apache and Eclipse Foundations' closer collaboration</title><content type='html'>&lt;a href="http://www.apache.org/"&gt;The Apache Software Foundation&lt;/a&gt; and the &lt;a href="http://www.eclipse.org/"&gt;Eclipse Foundation&lt;/a&gt; are continuing to build a mutually-respectful working relationship by jointly organizing a conference to be held in Hong Kong later this year.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ossummit.com/"&gt;OS Summit Asia 2007&lt;/a&gt; is the first time the two open source software foundations have joined forces to promote the exchange of experience and knowledge spanning the foundations' common interests.  Apache and Eclipse are generally considered to be particularly "business friendly" as their licenses are receptive to combining open source and proprietary code in software products.&lt;br /&gt;&lt;br /&gt;In March, EclipseCon extended Apache committers a reduction to their &lt;a href="http://www.eclipsecon.org/2007/index.php?page=registration/"&gt;conference registration&lt;/a&gt; fees equivalent to Eclipse's own committers.  Eclipse 3.3 redistributes various Apache-developed code (like Apache Ant build system, Apache Jasper JSP engine, the Apache Lucene search engine, and so on), and Apache projects are &lt;a href="http://people.apache.org/%7Ecliffs/3party.html"&gt;free to redistribute&lt;/a&gt; EPL code in binary form.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://ossummit.com/cfp.html"&gt;OS Summit Call for Participation&lt;/a&gt; invites talk submissions on Apache and Eclipse projects, issues facing the open source community, and experience reports.  There are also plans for in-depth tutorials leading up the conference proper.  The meeting will be held from November 26 - 30 at the &lt;a href="http://www.cyberport.com.hk/"&gt;Cyberport&lt;/a&gt; in the southern district of Hong Kong Island.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;[Disclosure: I'm on the organizing committee for OSSummit]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-961034868025657380?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/961034868025657380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=961034868025657380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/961034868025657380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/961034868025657380'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/06/apache-and-eclipse-foundations-closer.html' title='Apache and Eclipse Foundations&apos; closer collaboration'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3745436243872427810</id><published>2007-06-08T22:14:00.000+01:00</published><updated>2007-06-09T22:23:54.584+01:00</updated><title type='text'>GNU forks OpenJDK (despite claims to the contrary)</title><content type='html'>&lt;a href="http://www.gnu.org/"&gt;The folk&lt;/a&gt; who have used &lt;a href="http://www.mozilla.org/projects/firefox/"&gt;Firefox &lt;/a&gt;code to produce &lt;a href="http://en.wikipedia.org/wiki/Iceweasel"&gt;Iceweasel&lt;/a&gt;, have now taken &lt;a href="http://openjdk.java.net/"&gt;OpenJDK &lt;/a&gt;and produced "&lt;a href="http://icedtea.classpath.org/wiki//Main_Page"&gt;IcedTea&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Apparently impatient with Sun's progress on establishing the code repository, governance model, and replacements for the encumbered parts of the implementation, the GNU project have gone ahead and started the work on their own terms.&lt;br /&gt;&lt;br /&gt;Red Hat's Tromey &lt;a href="http://www.crn.com/software/199500885"&gt;told people&lt;/a&gt; at last month's JavaOne meeting that the company were stopping work on GCJ and Classpath to focus their finite resources on OpenJDK.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://article.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/5"&gt;announcing&lt;/a&gt; the IcedTea project, Haley (also of Red Hat) is keen to say that this is not a fork of the OpenJDK project, and that the code will be contributed back to OpenJDK "once the legal and technical issues are resolved".  In the meantime, go and make yourself an IcedTea as an alternative to your cup of Java!&lt;br /&gt;&lt;br /&gt;Welcome to the stable of open source Java SE implementation projects.&lt;br /&gt;&lt;br /&gt;[p.s.  I see that the image of a glass of iced tea that the project chose to front &lt;a href="http://icedtea.classpath.org/wiki//Main_Page"&gt;their homepage&lt;/a&gt; appears to have been taken from Poor Richard's Restaurant's &lt;a href="http://www.prgainesville.com/menu.asp?menu=02"&gt;on-line menu&lt;/a&gt;.  Perhaps they'll use their own IP there too if they are that serious about free legal issues ;-) ]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3745436243872427810?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3745436243872427810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3745436243872427810' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3745436243872427810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3745436243872427810'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/06/gnu-forks-openjdk-despite-claims-to.html' title='GNU forks OpenJDK (despite claims to the contrary)'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3361014918798439366</id><published>2007-06-07T21:03:00.000+01:00</published><updated>2007-06-09T22:17:19.286+01:00</updated><title type='text'>Ouch...</title><content type='html'>My transport of delight is a 2000-model Honda CB600 Hornet motorcycle.  I've owned it for about four years, and use it for daily commuting a short distance all year round.&lt;br /&gt;&lt;br /&gt;Last Tuesday I crashed into a car that pulled out from a side road without seeing me.  I'm afraid the bike is probably not going to make it, but thankfully I walked away from the accident virtually unscathed.&lt;br /&gt;&lt;br /&gt;It was a bright sunny day and I left home at 8:30am, the same time as my wife in the car with the children on the school run.  It was a warm sunny day and I was wearing the same gear I religiously pull on for every trip no matter how long -- full face helmet, ballistic nylon &lt;a href="http://www.hein-gericke.com/uk/product_info.php/cPath/1_15_7/products_id/2860"&gt;HeinGericke jacket&lt;/a&gt; and equivalent &lt;a href="http://www.firstgear-usa.com/fgweb.nsf/Products/53C7465422C25AFB862571F0005C46B1?opendocument"&gt;trousers&lt;/a&gt; with in-built armour, motorbike gloves, and &lt;a href="http://www.rigsville.org.uk/products/altberg.asp"&gt;leather motorbike boots&lt;/a&gt;.  I joke that on days like this you have to keep moving to avoid cooking in all that gear, but it is only ever too much gear until you crash, at which point every piece is well appreciated.  I also always ride with my headlight on dipped main beam to make me more visible.&lt;br /&gt;&lt;br /&gt;I pulled onto the A3040 highway which has a 40mph limit, and was probably at 30mph and accelerating when I came up to &lt;a href="http://maps.google.co.uk/maps/ms?ie=UTF8&amp;hl=en&amp;amp;msa=0&amp;ll=51.05019,-1.345139&amp;amp;spn=0.019289,0.035191&amp;z=15&amp;amp;om=1&amp;amp;msid=104536489035743817375.0000011308341e16072fb"&gt;a junction with a side road on my left&lt;/a&gt;.  A car was in the side road waiting to turn right onto the A3040 (i.e. to go in the opposite direction to me).&lt;br /&gt;&lt;br /&gt;A habit I learnt from taking the &lt;a href="http://www.roadar.org/riders/index.htm"&gt;ROSPA Advanced Riding&lt;/a&gt; course is to watch the driver and check that they actually look at you to ensure they have seen you.  I was looking at the driver, and she appeared to look back, but...&lt;br /&gt;&lt;br /&gt;As I got close to the junction she set off across my path.  I slammed on the brakes.&lt;br /&gt;&lt;br /&gt;I had only just set off from home, so my tyres had not warmed up, and my bike doesn't have ABS, so it is always a gamble between under-braking or locking the wheels and provoking a skid.  Once that front wheel looses grip you can kiss goodbye to staying upright and I didn't want to slide under the car!&lt;br /&gt;&lt;br /&gt;Then there is that point where you know you are not going to be able to stop in time.  I assume the other driver saw me upon them and instinctively hit the brakes, but it left me with little option as I simultaneously tried to steer round the back of the car blocking my way, but to no avail.  I smashed into the offside rear door with an almighty crunch!  The right side of my motorbike and my body took the full force of the impact.  Since I had got some braking in, I was probably doing about 20mph when I hit them.&lt;br /&gt;&lt;br /&gt;As my motorbike came away from the car I obviously was no longer in control of it, and it was going down on it's right side with me astride it.  I didn't want the weight of a full sized motorbike falling on my leg, so I jumped/fell off and rolled into the road.  And lay there.&lt;br /&gt;&lt;br /&gt;You'll recall that my wife had left home at the same time, and was in fact following behind me so saw all this unfold in the road ahead.  I knew I was ok, but I can only imagine the fear and distress that seeing me perform this stunt caused the family.&lt;br /&gt;&lt;br /&gt;A passenger in the car I hit was immediately on the phone to the emergency services.  He was out of the car, standing over me, next to my wife, and telling the controller on the phone that "...he looks quite badly injured and in pain...".  I was thinking 'no I'm not, I've just been beaten to the ground'.  I started to get up, and about three people shouted "don't try to move, the ambulance is on it's way".  My wife put her face down to plead me not to move, so as I lay back down I opened my visor and said "I'm fine, really I am".  After a few seconds I started to sit up again, and was on my feet by the time the ambulance arrived -- which to their credit was only two or three minutes after they got the call.&lt;br /&gt;&lt;br /&gt;As I was finding my feet, my wife went back to the car and got the children out.  It was within walking distance of school, so she released the children into the care of a passing friend, thinking it was better for them to be out of the way once they saw I was ok.  We are both grateful to the friend and school for the way they dealt with the inevitable shock that the children had had.&lt;br /&gt;&lt;br /&gt;The ambulance crew were a welcome calming influence at the scene, very matter of fact.  A police car arrived with full lights and sirens too.  The policeman saw I was up and moving ok, and started dealing with the traffic, and presumably dealing with the other driver -- but I didn't really see much of him.  It may have been the policeman who lifted my motorbike for me, at which point I saw fuel and coolant leaking from it, so I reached over and turned off the ignition.  That's all we needed.&lt;br /&gt;&lt;br /&gt;I went in the back of the ambulance for a check-up, and after a short time of talking to them and having blood pressure taken etc they gave me a clean bill of health, and released me back onto the street to get a lift home with my wife, who had gone to the school to ensure they were aware of what had happened and were dealing with the children properly.&lt;br /&gt;&lt;br /&gt;I came home, dumped my gear, phoned the insurance company to report the incident, and have a strong cup of tea!  After a cuppa, I drove back up to the school to visit the children and assure them I was ok -- that was a good move.&lt;br /&gt;&lt;br /&gt;I'm convinced that the clothing I was wearing saved me from much more serious injury.  It makes me shudder when I see motorbike riders wearing shorts, t-shirts, no-gloves, trainers, etc.  It's just not worth it.&lt;br /&gt;&lt;br /&gt;I just need to wait now and see if the insurance assessor writes off the bike.  Though I have to say, I think it is unlikely I'll see it again :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3361014918798439366?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3361014918798439366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3361014918798439366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3361014918798439366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3361014918798439366'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/06/ouch.html' title='Ouch...'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3969781429404265082</id><published>2007-06-01T22:22:00.000+01:00</published><updated>2007-06-09T22:17:47.351+01:00</updated><title type='text'>My enemy's enemy is my friend</title><content type='html'>It is great to see changes have been made to &lt;a href="http://gplv3.fsf.org/gpl3-dd4-rationale.pdf"&gt;the Final Draft of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;GPLv&lt;/span&gt;3&lt;/a&gt; to make it compatible with &lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ALv&lt;/span&gt;2&lt;/a&gt;.  There is now a 29 day public comment period before it is formally put into action.&lt;br /&gt;&lt;br /&gt;Beyond the technical changes to the license, how encouraging it is to see the two foundations working through their issues with a determination to get to a mutually acceptable solution.  Of course, there are fanatics on both sides, just as there are for any number of areas where people have a choice, and at times it is easy to forget that the similarities are far stronger than the differences.&lt;br /&gt;&lt;br /&gt;Kudos to Cliff and Eben for helping drive this to a conclusion.&lt;br /&gt;&lt;br /&gt;Let's hope that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;GPLv&lt;/span&gt;3 enjoys a wide adoption, and that people take the opportunity to look for new areas of collaboration made possible by  an increased body of compatibly licensed code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3969781429404265082?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3969781429404265082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3969781429404265082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3969781429404265082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3969781429404265082'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/06/my-enemys-enemy-is-my-friend.html' title='My enemy&apos;s enemy is my friend'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-6854079625162791018</id><published>2007-05-31T14:26:00.000+01:00</published><updated>2007-05-31T16:40:19.440+01:00</updated><title type='text'>When I use a word, it means just what I choose it to mean - neither more nor less.</title><content type='html'>It's scary to look back and see how long it is since I last wrote in this blog.  Time flies by so quickly, and since I last wrote I've been lucky enough to organize an internal company conference in Toronto on open source software, present at EclipseCon in Santa Clara, and present at JavaOne in San Francisco - where there was a strong theme around OpenJDK.&lt;br /&gt;&lt;br /&gt;I like to think that I follow the open source JSE community reasonably closely, but I'm confused about the 'message' coming from Sun and the reality of what is happening.  For example, in the opening keynote at JavaOne Rich Green (Executive VP Software), talking about the open sourcing of Java, &lt;a href="http://java.sun.com/javaone/sf/media_shell.jsp?id=193609"&gt;announced &lt;/a&gt;"the completion of that task"; whereas the technical sessions delivered by the troops on the ground clearly show there is lots of work to do in opening the full codebase, defining the governance model, building the community, and so on.  There are numerous tricky problems outstanding and I think the executives do the team no favours by these sound-bite announcements.&lt;br /&gt;&lt;br /&gt;One issue that has been picked up by a few people is the dependency on Apache licensed libraries in OpenJDK.  It would seem that the weasel words are being polished to explain how it is ok to continue the dependency between ALv2 and GPLv2 code, because OpenJDK is Sun's code and they get to play the Classpath exception as they see fit.  I said, as &lt;span style="font-style: italic;"&gt;they&lt;/span&gt; see fit deliberately.&lt;br /&gt;&lt;br /&gt;The Classpath exception allows applications to run on the JRE without considering the application to be covered by the so-called viral effects of the GPLv2 as the VM links the class files into a single runnable system.  Sun &lt;a href="http://www.sun.com/software/opensource/java/faq.jsp#g"&gt;declare&lt;/a&gt;, understandably, that the Classpath exception applies to the public API and SPI only, i.e. those places where an end user is expected to call or extend the standard runtime.  How then can this same exception be used to justify embedding differently licensed parts of the class library that they are missing?  What makes those parts of the implementation special to an end user?  Some ALv2 libraries, like &lt;a href="http://jakarta.apache.org/bcel/"&gt;BCEL &lt;/a&gt;are very low-level, bit-twiddling operations that form core parts of the runtime by any reasonable definition.&lt;br /&gt;&lt;br /&gt;Sun are on a journey, I'm supportive of their efforts to change.  There are enourmous hurdles to overcome based on the history and inertia of the existing in-house development effort, and I certainly am not going to stand at the side throwing stones as they change that. It's tough.&lt;br /&gt;&lt;br /&gt;One jaw-dropping moment for me occurred during the open source panel discussion at JavaOne, when Tom Tromey &lt;a href="http://www.crn.com/software/199500885"&gt;declared &lt;/a&gt;that he sees no value in GCJ/Classpath beyond OpenJDK worth the investment from Red Hat, and that a single implementation of the specification is preferable.  I deeply disagree with this view.  What is the purpose of a specification if there is only one implementation? -- by definition, the specification would become "whatever the implementation does".  Perhaps Tom would be happier if there was only one Linux distro too.  How about we all agree that SUSE wins, and Red Hat and others can contribute there?&lt;br /&gt;&lt;br /&gt;Java gets used in so many places, there &lt;span style="font-style: italic;"&gt;is&lt;/span&gt; room for multiple implementations with different characteristics and target audiences.  Of course, the spec should restrict the madness, and foster common criteria that make the runtime usable (clutch on the left, brake in the middle and accelerator on the right etc.).  The JCP is established to evolve the specification, but there is plenty of scope for competition to drive innovation and enhancements in the platform within that remit.&lt;br /&gt;&lt;br /&gt;So why does Sun continue to block Apache Harmony from demonstrating their compatibility with the spec through the JCK?  Well it is a mystery to me.  I'd have thought that encouraging implementations to be compliant rather than forcing them to produce look-alikes would be of benefit to the Java ecosystem.  Certainly the people who contribute to the evolution of Java through the JCP seem to expect that.&lt;br /&gt;&lt;br /&gt;I hope to reduce my conference-going over the next few months, and get back to the code.  Its a joy to watch the Harmony project continually move at the speed of the quickest person.  When I'm away for two weeks there is a load of mail to read, commits to review, new docs to review, and progress to catch up on.  I'm happy we are not delivering sound-bites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-6854079625162791018?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/6854079625162791018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=6854079625162791018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6854079625162791018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6854079625162791018'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/05/when-i-use-word-it-means-just-what-i.html' title='When I use a word, it means just what I choose it to mean - neither more nor less.'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-3480566519123775724</id><published>2007-01-31T14:11:00.000Z</published><updated>2007-01-31T15:45:06.720Z</updated><title type='text'>You are only as old as the keyboard you feel</title><content type='html'>It's easy to forget how young computing is still. Or maybe it's just easy to forget how old I'm getting.&lt;br /&gt;&lt;br /&gt;I recently had reason to remind myself about the projects I have worked on in my professional career, and that required some archeology through my old papers and notebooks. What really struck me was how recent the dates appear to be -- surely 1997 wasn't that long ago? and yet 10 years ago we were nowhere near where we are today with the connectivity, Internet, wireless commuting, portable devices, and so on.&lt;br /&gt;&lt;br /&gt;If I go further back in time to university, and pre-university days things get really interesting. I really can't remember what prompted my interested in computing, but I recall vividly the trips I made as a schoolboy to the &lt;a href="http://www.brad.ac.uk/"&gt;University of Bradford &lt;/a&gt;Computer Centre as a guest, looking round the machine rooms and punched tape/card terminals etc.&lt;br /&gt;&lt;br /&gt;I took it upon myself to travel on the bus for an hour each way every Wednesday afternoon to use their &lt;a href="http://www.columbia.edu/acis/history/teletype.jpg"&gt;teletype machines&lt;/a&gt; (I bet a random kid couldn't show up and use their machines today!)  There was great excitement when they got six &lt;a href="http://oldcomputers.net/pet2001.html"&gt;Commodore PETs&lt;/a&gt;. You could book an hour session on the PET, and I spent many of those PEEKing and POKEing various memory locations described in computer magazines of the day to create some kind of external effect -- and typing in long sequences of BASIC to implement something like the &lt;a href="http://en.wikipedia.org/wiki/ELIZA"&gt;Eliza pseudo-therapist programme&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first computer that I owned was a &lt;a href="http://oldcomputers.net/trs80pc1.html"&gt;TRS-80 portable PC&lt;/a&gt;. I remember pestering my dad to buy it for Christmas one year. He is a gadget person, so probably didn't need much persuading really, but he put up a good pretence. That gift probably cemented my future choice of career. I spent many hours programming that thing, and over time I bought the tape deck interface and 16-character per line printer too!&lt;br /&gt;&lt;br /&gt;Once things got established I went with my dad to choose a desktop -- and we spent a few hours at a very stylish showroom with four computers proudly on display, spotlit and surrounded by black curtains. We ordered an &lt;a href="http://oldcomputers.net/appleii.html"&gt;Apple IIe&lt;/a&gt;, and waited eagerly for it to be delivered (you couldn't just buy one off the shelf in those days). It was a great machine. Green screen and limited graphics, etc., but enough for me to write a pretty decent application to track some data on employees and customers in my dad's business. I submitted that application as part of my O-level Computer Studies, the first year it was offered in the UK.&lt;br /&gt;&lt;br /&gt;To make a long story short, I later went off to study Computer Science at university, and at some point was the proud owner of an &lt;a href="http://oldcomputers.net/portfolio.html"&gt;Atari Portfolio&lt;/a&gt;. I bought an &lt;a href="http://en.wikipedia.org/wiki/Amstrad_PCW"&gt;Amstrad PCW&lt;/a&gt; to write up my thesis, and shortly after went mobile with an &lt;a href="http://www.apple-history.com/?page=gallery&amp;model=100"&gt;Apple PowerBook 100&lt;/a&gt;, and later replaced the Portfolio with a &lt;a href="http://www.palm.com/us/products/palmpilot/"&gt;Palm Pilot&lt;/a&gt; (I craved an &lt;a href="http://www.msu.edu/~luckie/gallery/mp2000.htm"&gt;Apple Newton&lt;/a&gt;, but never bought one).&lt;br /&gt;&lt;br /&gt;Since then it has been a succession of heartless PC clones, that look really boring and are only differentiated by the chips in them with different numbers.&lt;br /&gt;&lt;br /&gt;It's fun to look back and see that old stuff. It brings back many memories of happy hours tapping on keyboards, the people who so generously gave of their time, knowledge, and enthusiasm to help some kid who could give nothing back to them -- which is very humbling, would I be so helpful and accommodating?&lt;br /&gt;&lt;br /&gt;And when the time comes to bounce my grandchildren on my knee, I won't be telling them about fighting for my country in foreign lands, or how I had to work my way through crushing poverty through hard manual labour; I'll tell them how I have programmed everything from teletypes to a &lt;a href="http://www.csar.cfs.ac.uk/"&gt;supercomputers&lt;/a&gt;. Will they be impressed? They'll probably laugh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-3480566519123775724?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/3480566519123775724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=3480566519123775724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3480566519123775724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/3480566519123775724'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2007/01/you-are-only-as-old-as-keyboard-you.html' title='You are only as old as the keyboard you feel'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-6589238584792432557</id><published>2006-11-22T10:32:00.000Z</published><updated>2006-11-22T10:46:06.895Z</updated><title type='text'>"Not to go back is somewhat to advance, and men must walk, at least, before they dance."</title><content type='html'>In my last entry I wrote about Sun's plans to open source their Java implementation, and my speculation about the how? and why? that would happen. Lo and behold, last week there was an announcement that gives many of the details of their open source Java actions and plans.&lt;br /&gt;&lt;br /&gt;Sun are re-licensing some of their code under GPLv2 with the 'Classpath exception', and some code under GPLv2 unmodified, into a new project called OpenJDK. The motive appears to be as I predicted -- making Java a viable option as a managed runtime environment on Linux.&lt;br /&gt;&lt;br /&gt;The choice of GPLv2 ensures that the license is a non-issue for distributing OpenJDK unmodified with Linux. That said, I have not seen any distro balk at the Apache license for httpd, so there is more to it than that.  The 'Classpath exception' is an instrument designed to alleviate the fear that Java applications will be subject to the so-called 'viral' effects of the GPL. This is because it is ambiguous, in some people's eyes, whether Java application code "in whole or in part contains or is derived from" the system code at runtime. The intent is to make the situation for Java equivalent to the goal of the LGPL for dynamic libraries.&lt;br /&gt;&lt;br /&gt;The code that has been given the linking exception includes the Java SE APIs, and interestingly the Java EE APIs (which now become dual licenced with CDDL). The Java ME class library, JVM, javac, and JavaHelp code do not enjoy the linking exception.&lt;br /&gt;&lt;br /&gt;By drawing the distinction between some code that has the linking exception, and some that doesn't, Sun seem to be acknowledging that Java application code is 'linked' to the system code as described above, and therefore is subject to the viral effects of GPL without the benefit of the exception.&lt;br /&gt;&lt;br /&gt;It would appear that Sun recognize the value of Java SE and Java EE as a platform, and the network-effect of a pervasive platform enhances the opportunity to make money indirectly, through services etc.  I would argue that Sun could have identified areas of competitive value, say in the VM and JIT, that would play to particular hardware and OS strengths, and been more permissive of ongoing commercial investment in these areas around a shared 'commons'.  That would be an opportunity for OpenJDK to compete on performance, reliability, scalability, etc. to the overall benefit of the Java ecosystem; whilst providing a viable open source VM for those that do not choose to pay for the vendors' enhancements. As vendors of these proprietary technologies determine they are no longer providing distinguishing value in these areas, the technology will flow into 'the commons' and the technology moves up a step.&lt;br /&gt;&lt;br /&gt;I hope the choice of GPL doesn't stifle such competition and investment in Java, or serve to fracture the Java implementation space and introduce compatibility issues.  I'm sure you appreciate that many of the performance advances in those no-cost Java runtimes you have been downloading have been made on the back on the commercial vendors.  Competition is good.  For now at least, Sun are effectively saying that such competition comes at the cost of a commercial license to the reference implementation codebase.&lt;br /&gt;&lt;br /&gt;The stick for compatibility seems to be the JCK test suite.  There have been a number of references to threats that people will find themselves in court if they fork the GPL code and try to call it Java without passing the JCK.   It's not clear what the future terms of the JCK-availability will be for such forked projects, but I expect that Sun will keep tight control over it.  It's unclear to me again how this situation works for distros that build the OpenJDK source to work well with the packages they distribute, or people who innovate in this space -- I hope we do not end up with an equivalent to IceWeasel for Java.&lt;br /&gt;&lt;br /&gt;Sun appear to have taken a different approach to Java ME.  By explicitly excluding the linking exception for Java ME they are requiring applications and network provider stacks to be GPL'd.  Of course, that's not going to happen, so Sun are effectively telling Java ME licenses that it will be business as usual for them, period.&lt;br /&gt;&lt;br /&gt;Sun need to maintain the 'business as usual' rule for ME, SE, and EE -- at least for the moment.  It is totally understandable that Sun would not compromise their commercial licensing opportunities for their Java implementation.  In fact, as a publicly traded company I believe that they could not have compromised that revenue stream.  Such companies are obliged to maximize shareholder value.  So to maintain that commercial license stream Sun have also specified a contributor agreement for code offered to the OpenJDK project.&lt;br /&gt;&lt;br /&gt;The contributor agreement requires that you:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;assign joint ownership of the code to Sun, in copyright and all other relevant intellectual property rights,&lt;/li&gt; &lt;li&gt;grant a royalty-free, sub-licenseable, patent grant to any inventions embodied in the code,&lt;/li&gt; &lt;li&gt;allow Sun to use your code in other licensing mechanisms, at Sun's option.&lt;/li&gt;&lt;/ul&gt;Hmm, that seems a bit one sided doesn't it?  Where's Sun's patent non-assertion covenant, or royalty free-licence granted to consumers of the OpenJDK code?  What about all the code that has been granted to Sun over the years and included into the reference implementation?&lt;br /&gt;&lt;br /&gt;I'm surprised that we haven't heard more about this agreement from the Free Software movement who applauded Sun's choice of GPL.  Doesn't FLOSS mean that such code rights should not be granted to a for-profit corporation that reserve the rights to exploit it for commercial gain?  Presumably such potential exploitation for commercial gain is ok provided that I can get the code under GPL?  And what about the GNU Classpath folk who signed their copyright over to the FSF?  It is unlikely that the FSF are going to enter into such an agreement with Sun, so is there a channel for any code in GNU Classpath to make it into the OpenJDK?&lt;br /&gt;&lt;br /&gt;Very little has been written about the community that will exist in OpenJDK.  Sun are, of course, eager to get as many contributors as possible, and in the future expect to allow members of that community to gain commit rights to the OpenJDK source code.  But it has been made clear that the bar has been set very high.  Sun cannot allow any opportunity for instability or poor engineering to creep into the reference implementation.  So for the moment, all contributions will go through Sun engineers, and the Sun development process to ensure the required quality and standards are maintained.  As such it seems very similar to the "JDK-Collaboration" project, only you don't get the T-shirt!&lt;br /&gt;&lt;br /&gt;So to wrap up, the first steps have been taken.  The OpenJDK implementation is rolling out into a new project.  It remains to be seen how the community is built and the effects on the existing open source Java community, the effects on the JCP, and the reaction of the commercial Java implementers.&lt;br /&gt;&lt;br /&gt;I'm delighted to see the OpenJDK project take it's first steps.  Now let's see this baby dance!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-6589238584792432557?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/6589238584792432557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=6589238584792432557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6589238584792432557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/6589238584792432557'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2006/11/not-to-go-back-is-somewhat-to-advance.html' title='&quot;Not to go back is somewhat to advance, and men must walk, at least, before they dance.&quot;'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-7604957626120912677</id><published>2006-11-07T21:56:00.000Z</published><updated>2006-11-09T15:18:11.124Z</updated><title type='text'>Sun's plans to open source their Java implementation</title><content type='html'>When you talk about "Java&lt;span style="font-size:78%;"&gt;(tm)&lt;/span&gt;" what exactly do you mean?&lt;br /&gt;&lt;br /&gt;Are you referring to the Java language? the tools in the Java runtime and development environments? or the Java VM and class library specifications (such as JEE, JSE and JME)?&lt;br /&gt;&lt;br /&gt;Maybe you mean the eco-system that has grown up around Java, such as world-class web containers, databases, scripting languages, and so on.&lt;br /&gt;&lt;br /&gt;The term "Java" means different things to different people.  I believe that most people understand that there are many diverse interests within the general community that develop and use applications written in the Java language.  I believe that people understand you can get different implementations of application servers and IDE's that have different characteristics and design points.  Most people probably know that you can get Java SE implementations from  companies other than Sun, such as IBM and BEA who create work derived from Sun's under license.  So when Sun says it is going to 'open source Java', we should understand what that means.&lt;br /&gt;&lt;br /&gt;Sun plan to open source their implementation of the Java SE and ME specifications (they already open sourced their Java EE implementation as Project GlassFish.)  This is a big deal.   Sun's implementation is &lt;span style="font-style: italic;"&gt;the&lt;/span&gt; reference implementation of the specification, and is the implementation that most people have installed on their desktop.  Making the implementation open source, under an OSI-approved license as promised by Sun, means that people will have rights and freedoms that they currently don't have, and this is to be applauded.&lt;br /&gt;&lt;br /&gt;A large part of the value of Java is its universality.  Java is available on lots of platforms, and many interests are represented in the evolution of the specifications through the JCP.  It is in the interests of all Java users that implementations are both &lt;span style="font-weight: bold;"&gt;compliant&lt;/span&gt; to the specifications and &lt;span style="font-weight: bold;"&gt;compatible&lt;/span&gt; with each other, so that Java applications really do 'run anywhere'.   Apache Harmony is committed to producing a compliant and compatible implementation of Java SE for just such reasons.&lt;br /&gt;&lt;br /&gt;So I'm left wondering &lt;span style="font-style: italic;"&gt;why&lt;/span&gt; Sun have decided to open source their implementation?  I don't think I can answer that question until we hear exactly &lt;span style="font-style: italic;"&gt;how&lt;/span&gt; it will be opened.  It comes down to the community model, and the code license and contributor agreement.&lt;br /&gt;&lt;br /&gt;Turning to the license first.  I mentioned that Sun have promised that the code will be made available under an OSI-approved license, but that still leaves a wide latitude of conditions for adopting and developing the code.  It would seem from press coverage and common sense that the principle candidates are CDDL and GPLv2.  The decision will come down to the type of community that Sun are trying to attract.&lt;br /&gt;&lt;br /&gt;From my reading I believe that Sun are principally intending to make Java SE and ME open source in order to make it more acceptable to Linux distributors, and thereby increase the relevance of Java in that open OS space.  I accept that Sun have already made moves to improve Java's acceptance by Linux distros by introducing the Distro Licence for Java (DLJ), but that hasn't been universally welcomed, attracting criticisms from one of the main Linux distributors for not going far enough.&lt;br /&gt;&lt;br /&gt;Listening to some of the well-respected individuals at Sun I find it hard to believe that they really will trust the reference implementations of ME and SE to an open source community, where 'community' is defined in terms that you and I would generally understand it.  I think development of Sun's implementation will continue as a principally in-house activity, with increased visibility to the changes that are being made to the code, but with very little opportunity for outsiders to earn rights to modify the code directly.  The offer of such rights will be there, but the bar will be extremely high, and any contributions that are made will be under a contributor agreement with Sun that gives them copyright assignment rights so they can continue to license the code to companies such as IBM and BEA as I mentioned earlier.&lt;br /&gt;&lt;br /&gt;The principal reason Sun are open sourcing the code is therefore to make it more acceptable to the Linux community.  My prediction is that Sun will choose GPLv2, with a contributor agreement assigning significant relicensing rights to Sun for code going into the mainstream codebase, and the community around that mainstream will remain very tightly controlled for the foreseeable future.  Any fork of the mainstream code will have to pass the appropriate TCK in order to be called Java, and we know that the TCK's are not being opened, so Sun still retain the control point of what can be distributed as 'Java'.&lt;br /&gt;&lt;br /&gt;Such a scenario will allow Sun to say quite legitimately that the code is open, and they will do what it takes to make it palatable to the Linux distros; however, Free Software types will not be able to live with a contributor agreement that allows their work to be commercially licensed, and the Apache types will not be able to live with the conditions of the GPLv2, so I expect that both types of existing open source project will be dissatisfied, and we will unfortunately have a third open source Java SE project.&lt;br /&gt;&lt;br /&gt;It remains to be seen how the current Java licensees react.  It may be business as usual, or they may choose to work in one of the other open source communities.  Perhaps it depends upon their current working relationship with Sun, and how they see their future use of Java evolving.  In any case, there will be a benefit for all involved in the Java eco-system to continue working together on evolving the specifications and competing on the implementations so that the real winners are the millions of good people who write and use Java on a daily basis and appreciate the choices of implementation within standards that they are being offered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-7604957626120912677?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/7604957626120912677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=7604957626120912677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7604957626120912677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/7604957626120912677'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2006/11/suns-plans-to-open-source-their-java.html' title='Sun&apos;s plans to open source their Java implementation'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7766304.post-116250883782896821</id><published>2006-11-02T23:06:00.000Z</published><updated>2006-11-06T17:38:21.648Z</updated><title type='text'>Now Voyager depart, (much, much for thee is yet in store)</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;Welcome &lt;/span&gt;to my blog -- and welcome to the very first posting on the blog!&lt;br /&gt;&lt;br /&gt;Looking at the site settings on blogger.com, I can see that I created my blog site back in July 2004.  Back then, blogging was still in it's infancy, and I was interested in what this phenomenon was all about, and how people were using this new medium to publish information that was of great personal interest to them.  So why has it taken me so long to write this first post?&lt;br /&gt;&lt;br /&gt;Well just like websites in general, the range in quality of bloggers and their blogs is quite remarkable.  Overall I've been underwhelmed by the quality of many blogs that I have read, and the implication was always there that I'd do no better (and that still remains to be seen!)&lt;br /&gt;&lt;br /&gt;I believe that interesting blogs are those that are both informative and express an opinion.  Until recently I was working exclusively on a proprietary implementation of the Java specification for IBM. What "changed" is that IBM decided to participate in the Apache Harmony open source project, and I was lucky enough to be involved in that process.  Up to that point it would have been inappropriate, or irrelevant to many people, for me to inform and opine on the issues that were of great personal interest to me.&lt;br /&gt;&lt;br /&gt;Being involved with open source is a game-changer.  I've worked on projects in collaboration with other companies, and worked in open standards groups such as the IETF, but nothing feels quite like working in an open source project.  Open source projects provide a special combination of working on a shared architecture and code base, and working in a broad and liberal community with simple rules of engagement, that I believe is unique.&lt;br /&gt;&lt;br /&gt;My first experience of open source was while working for IBM Canada through involvement with the early days of the Eclipse Project and subsequent formation of the Eclipse Foundation.  That was a relatively smooth transition of an existing code and community from 'closed' to open development.&lt;br /&gt;&lt;br /&gt;Starting to work with Apache was a different experience.  It required learning the Apache style of working and interaction, which I had never really appreciated as an enthusiastic consumer of their software.  I think I've seen enough now that I get the basics if not all the subtleties.&lt;br /&gt;&lt;br /&gt;So now I feel that I can write about aspects of life that relate to a broader community of fellow travellers.  Some of my opinions, ideas, and rants are not going to be appropriate to inflict directly on the Apache Harmony development team, who are a great bunch of people and rightly focused on the task in hand.  To date it has been my office co-workers (and bewildered family members) who have endured such outbursts.  At least now I will have a distinct channel to express myself, and people can make the decision whether to follow along or not.&lt;br /&gt;&lt;br /&gt;Let's see if I can beat my current record, and get round to a second posting within the next two years&lt;g&gt;.&lt;/g&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7766304-116250883782896821?l=tellison.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tellison.blogspot.com/feeds/116250883782896821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7766304&amp;postID=116250883782896821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/116250883782896821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7766304/posts/default/116250883782896821'/><link rel='alternate' type='text/html' href='http://tellison.blogspot.com/2006/11/welcome-to-my-blog.html' title='Now Voyager depart, (much, much for thee is yet in store)'/><author><name>tim</name><uri>http://www.blogger.com/profile/11980633186746724857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/_i5ItD-GhlFg/SmBDvWQdY7I/AAAAAAAABLY/PIhYbsLL5qY/S220/Me.jpg'/></author><thr:total>0</thr:total></entry></feed>
