<?xml version="1.0"?>
<rss version="2.0">
<channel>
	<title>Planet Apache</title>
	<link>http://www.planetapache.org/</link>
	<language>en</language>

<item>
	<title>David N. Welton: Slicehost vs Layered Tech?</title>
	<guid isPermaLink="true">http://journal.dedasys.com/articles/2008/08/27/slicehost-vs-layered-tech</guid>
	<link>http://journal.dedasys.com/articles/2008/08/27/slicehost-vs-layered-tech</link>
	<description>&lt;p&gt;I've been a happy &lt;a href=&quot;http://www.layeredtech.com/&quot;&gt;Layered Tech&lt;/a&gt; customer for a number of years.  After several terrible experiences with hosting companies that didn't charge much, which were the inspiration for &lt;a href=&quot;http://www.welton.it/articles/webhosting_market_lemons&quot;&gt;Web Hosting - A Market for Lemons&lt;/a&gt;, I found that LT offered good, basic service at reasonable prices.  My first server there cost $70 a month, and handled what I needed it for with aplomb.  &lt;/p&gt;

&lt;p&gt;Fast forward to now: LT no longer has servers under $150 a month, and while they're nice machines, I miss being able to get something a little bit cheaper, and am considering &lt;a href=&quot;http://www.slicehost.com&quot;&gt;Slicehost&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The real distinction between the two is: real, physical machines vs VPS (Virtual Private Servers).  The latter earned itself a bad reputation in the past, because many providers 'overbooked' the machines that their clients' VPS ran on.  I had some negative experiences with that myself, prior to seeking out a 'real' machine to run my web sites on.  However, I've heard that people are reasonably content with Slicehost, so perhaps they're running a tight ship.  For those who have tried them out, how is the speed/latency of their offerings, and compared to a more or less 'equivalent' real machine?  The positive side of running a well-planned VPS is that you can quickly switch between configurations, allowing you a bit of room to grow, if you plan things right, which might allow me to save some money.&lt;/p&gt;

&lt;p&gt;Incidentally, something that I like about both LT and SH is that they're not in the California Bay Area, which is a really expensive place to run what isn't exactly a &quot;rocket science&quot; business.  Sure, you want good, solid, smart people, but there's no reason to be in such an expensive part of the country.&lt;/p&gt;

&lt;p&gt;Thoughts?  Opinions?&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 22:03:00 +0000</pubDate>
</item>
<item>
	<title>Sam Ruby: ES Decimal Updates</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/08/27/ES-Decimal-Updates</guid>
	<link>http://www.intertwingly.net/blog/2008/08/27/ES-Decimal-Updates</link>
	<description>&lt;svg width=&quot;125&quot; style=&quot;float: right;&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewbox=&quot;0 0 125 80&quot; height=&quot;80&quot;&gt;
  &lt;text y=&quot;75&quot; font-size=&quot;100&quot; font-family=&quot;serif&quot;&gt;10&lt;/text&gt;
&lt;/svg&gt;
&lt;p&gt;A summary of changes to ECMAScript decimal support, based on input from the committee in the last week or so:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations (e.g., addition, subtraction, multiplication, ...) between 64-bit binary floating point and 128-bit decimal floating point quantities will proceed by first converting the 64-bit binary floating point number to 128-bit decimal floating point to the maximum required precision and then proceeding with the operation.  Previously the proposal was to convert the other way, resulting in a 64-bit binary result.&lt;/li&gt;
&lt;li&gt;“strict” equality operations (&lt;code&gt;===&lt;/code&gt;, &lt;code&gt;!==&lt;/code&gt;) will no longer return false when comparing two decimal values with different precisions (e.g., &lt;code&gt;1.10m&lt;/code&gt; and &lt;code&gt;1.1m&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;typeof(1.1m)&lt;/code&gt; is now &lt;code&gt;&quot;object&quot;&lt;/code&gt; (was &lt;code&gt;&quot;decimal&quot;&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://intertwingly.net/stories/2008/08/27/estest.html&quot;&gt;Output and a summary&lt;/a&gt; of the run of the small but growing &lt;a href=&quot;http://code.intertwingly.net/public/hg/js-decimal/file/79ba2d59ded1/js/tests/decimal/&quot;&gt;unit test suite&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 20:32:52 +0000</pubDate>
</item>
<item>
	<title>Bruce Snyder: m2eclipse Loves Test Reports</title>
	<guid isPermaLink="true">http://bsnyderblog.blogspot.com/2008/08/m2eclipse-loves-test-reports.html</guid>
	<link>http://bsnyderblog.blogspot.com/2008/08/m2eclipse-loves-test-reports.html</link>
	<description>&lt;a href=&quot;http://docs.codehaus.org/download/attachments/76710077/surefire-hyperlinks.png&quot;&gt;&lt;img src=&quot;http://docs.codehaus.org/download/attachments/76710077/surefire-hyperlinks.png&quot; style=&quot;float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 400px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Just a quick note about developing with m2eclipse and how much easier it makes tasks. When running tests in Eclipse, m2e now creates a link to the surefire report for quick access. See the image above for a screenshot. This is so much better than using cat or less from the command line because it just saves time (and I love the command line!). A single click v. typing many keys to view the report - rockin. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://jira.codehaus.org/browse/MNGECLIPSE-749&quot;&gt;Thanks, Eugene&lt;/a&gt; ;-).</description>
	<pubDate>Wed, 27 Aug 2008 20:31:22 +0000</pubDate>
</item>
<item>
	<title>Davanum Srinivas: A simple ubiquity “go” script</title>
	<guid isPermaLink="true">http://davanum.wordpress.com/2008/08/27/a-simple-ubiquity-go-script/</guid>
	<link>http://davanum.wordpress.com/2008/08/27/a-simple-ubiquity-go-script/</link>
	<description>Amazingly simple! opens another tab with the specified url.
Here’s a screen shot

Here’s the code


CmdUtils.CreateCommand({
  name: &quot;go&quot;,
  takes: {status: noun_arb_text},
  homepage: &quot;http://davanum.wordpress.com/&quot;,
  author: { name: &quot;Davanum Srinivas&quot;, email: &quot;davanum AT gmail.com&quot;},
  description: &quot;open browser to specified url&quot;,
  preview: function( pblock, statusText) {
    jQuery.ajax({
     [...]</description>
	<pubDate>Wed, 27 Aug 2008 18:10:35 +0000</pubDate>
</item>
<item>
	<title>Jacopo Cappellato: HWM presentation at the DAVV University of Indore</title>
	<guid isPermaLink="true">http://jacopospot.blogspot.com/2008/08/hwm-presentation-at-davv-university-of.html</guid>
	<link>http://jacopospot.blogspot.com/2008/08/hwm-presentation-at-davv-university-of.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Today has been a great day: we did a presentation of HotWax Media and OFBiz at the Devi Ahilya University, Department of Computer Science &amp;amp; Information Technology of Indore. The students showed interest for the subject and after the presentation we had the pleasure to receive a present from the Head of the University, Dr. A.K. Ramani and we also had a nice conversation with him.&lt;br /&gt;For me, it has been also a great chance to see an Indian University from the inside.&lt;/div&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_56MqSx1CdLY/SLWB9tEOd4I/AAAAAAAAAEo/Tydvu90flA4/s1600-h/CIMG4841.JPG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_56MqSx1CdLY/SLWB9tEOd4I/AAAAAAAAAEo/Tydvu90flA4/s320/CIMG4841.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5239236638584764290&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_56MqSx1CdLY/SLWB8xvcWrI/AAAAAAAAAEg/59JE3lTFGUU/s1600-h/CIMG4840.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_56MqSx1CdLY/SLWB8xvcWrI/AAAAAAAAAEg/59JE3lTFGUU/s320/CIMG4840.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5239236622659902130&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_56MqSx1CdLY/SLWB95JiHNI/AAAAAAAAAEw/SoGTzdCZACE/s1600-h/CIMG4842.JPG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_56MqSx1CdLY/SLWB95JiHNI/AAAAAAAAAEw/SoGTzdCZACE/s320/CIMG4842.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5239236641828248786&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_56MqSx1CdLY/SLWB-FtKGPI/AAAAAAAAAE4/c6rJb7nXmmc/s1600-h/CIMG4843.JPG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_56MqSx1CdLY/SLWB-FtKGPI/AAAAAAAAAE4/c6rJb7nXmmc/s320/CIMG4843.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5239236645198895346&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_56MqSx1CdLY/SLWB-hM1ytI/AAAAAAAAAFA/PWJPjtsiEEg/s1600-h/CIMG4844.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_56MqSx1CdLY/SLWB-hM1ytI/AAAAAAAAAFA/PWJPjtsiEEg/s320/CIMG4844.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5239236652579539666&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_56MqSx1CdLY/SLWIJSI3CqI/AAAAAAAAAFI/u1yg4Sye2pQ/s1600-h/CIMG4845.JPG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_56MqSx1CdLY/SLWIJSI3CqI/AAAAAAAAAFI/u1yg4Sye2pQ/s320/CIMG4845.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5239243434584640162&quot; /&gt;&lt;/a&gt;</description>
	<pubDate>Wed, 27 Aug 2008 17:16:32 +0000</pubDate>
</item>
<item>
	<title>James Strachan: Neat eclipse templates for working with the Java or Spring DSLs for Camel</title>
	<guid isPermaLink="true">http://macstrac.blogspot.com/2008/08/neat-eclipse-templates-for-working-with.html</guid>
	<link>http://macstrac.blogspot.com/2008/08/neat-eclipse-templates-for-working-with.html</link>
	<description>If you're an &lt;a href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse&lt;/a&gt; user who works with &lt;a href=&quot;http://activemq.apache.org/camel/&quot;&gt;Camel&lt;/a&gt; you might be interested in the &lt;a href=&quot;http://janstey.blogspot.com/2008/08/eclipse-templates-for-apache-camel.html&quot;&gt;Eclipse templates&lt;/a&gt; that Jon has just created - nice work &lt;a href=&quot;http://janstey.blogspot.com/&quot;&gt;Jon&lt;/a&gt;!</description>
	<pubDate>Wed, 27 Aug 2008 17:01:38 +0000</pubDate>
</item>
<item>
	<title>Jacopo Cappellato: Animals in Indore</title>
	<guid isPermaLink="true">http://jacopospot.blogspot.com/2008/08/animals-in-indore.html</guid>
	<link>http://jacopospot.blogspot.com/2008/08/animals-in-indore.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Some more pictures from Indore about some of the many free animals that walk around... this is amazing: you can meet cows, but also pigs and dogs, walking, or having a nap, in the middle of very crowded streets, the cars just move around them.&lt;br /&gt;In the pictures below you can see a curious cow getting too close the building's fence and hitting a parked motorbike... funny.&lt;br /&gt;&lt;/div&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_56MqSx1CdLY/SLRbUN6LBsI/AAAAAAAAAEI/RPPjNy7GLTs/s1600-h/IMGP0191.JPG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_56MqSx1CdLY/SLRbUN6LBsI/AAAAAAAAAEI/RPPjNy7GLTs/s320/IMGP0191.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5238912669427893954&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_56MqSx1CdLY/SLRbVINsWII/AAAAAAAAAEY/2YkhSTDUciE/s1600-h/IMGP0194.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_56MqSx1CdLY/SLRbVINsWII/AAAAAAAAAEY/2YkhSTDUciE/s320/IMGP0194.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5238912685079025794&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_56MqSx1CdLY/SLRbUn6vjKI/AAAAAAAAAEQ/_JBGBzbyACA/s1600-h/IMGP0192.JPG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_56MqSx1CdLY/SLRbUn6vjKI/AAAAAAAAAEQ/_JBGBzbyACA/s320/IMGP0192.JPG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5238912676409609378&quot; /&gt;&lt;/a&gt;</description>
	<pubDate>Wed, 27 Aug 2008 16:25:33 +0000</pubDate>
</item>
<item>
	<title>Davanum Srinivas: Porting Twitter script for Ubiquity to BlueTwit (internal twitter clone)</title>
	<guid isPermaLink="true">http://davanum.wordpress.com/2008/08/27/porting-twitter-script-for-ubiquity-to-bluetwit-internal-twitter-clone/</guid>
	<link>http://davanum.wordpress.com/2008/08/27/porting-twitter-script-for-ubiquity-to-bluetwit-internal-twitter-clone/</link>
	<description>Turned out to be a piece of cake! (Note: replace xyz@us.ibm.com with your internal ibm id). Just open the command editor (chrome://ubiquity/content/editor.html), cut and paste this code below and run the bluetwit command.


const BLUETWIT_STATUS_MAXLEN = 160;

CmdUtils.CreateCommand({
  name: &quot;bluetwit&quot;,
  takes: {status: noun_arb_text},

  preview: function(previewBlock, statusText) {
    var previewTemplate = &quot;Updates [...]</description>
	<pubDate>Wed, 27 Aug 2008 16:01:34 +0000</pubDate>
</item>
<item>
	<title>Nick Kew: Pot - kettle</title>
	<guid isPermaLink="true">http://bahumbug.wordpress.com/2008/08/27/pot-kettle/</guid>
	<link>http://bahumbug.wordpress.com/2008/08/27/pot-kettle/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Our foreign secretary is reported as warning Russia off starting a new cold war.  Or words to that effect.&lt;/p&gt;
&lt;p&gt;Someone remind me: which two governments have been in the vanguard of every new international war since the end of the cold war?  And the underlying reason: which two economies are most dependent on their armaments industries?  Clue - it’s not Russia.&lt;/p&gt;
&lt;p&gt;Someone remind me: who harbours and protects a billionaire from Yeltsin’s kleptocratic gangster era, who openly supports the violent overthrow of the russian government?  Clue: it’s not Afghanistan.&lt;/p&gt;
&lt;p&gt;Someone remind me: who appears to be trying to present an either/or choice to countries like Ukraine, and making it politically hard for them to maintain friendships with both Russia and the West without the one prejudicing the other?&lt;/p&gt;
&lt;p&gt;Pot - Kettle.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note - I’m not making any comment for or against anything Russia may be doing (that’s the business of russian bloggers, not mine).  Just on the shameful hypocrisy of some nearer to home.&lt;/em&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.wordpress.com/1.0/categories/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;img src=&quot;http://feeds.wordpress.com/1.0/tags/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/bahumbug.wordpress.com/528/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/bahumbug.wordpress.com/528/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/bahumbug.wordpress.com/528/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/bahumbug.wordpress.com/528/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/bahumbug.wordpress.com/528/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/bahumbug.wordpress.com/528/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=bahumbug.wordpress.com&amp;amp;blog=471959&amp;amp;post=528&amp;amp;subd=bahumbug&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 27 Aug 2008 14:50:06 +0000</pubDate>
</item>
<item>
	<title>Bruce Snyder: Live Coding Collaboration With the Eclipse - Wow!</title>
	<guid isPermaLink="true">http://bsnyderblog.blogspot.com/2008/08/live-coding-collaboration-with-eclipse.html</guid>
	<link>http://bsnyderblog.blogspot.com/2008/08/live-coding-collaboration-with-eclipse.html</link>
	<description>&lt;a href=&quot;http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg&quot;&gt;&lt;img src=&quot;http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg&quot; style=&quot;float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 200px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You've got to check out &lt;a href=&quot;http://www.vimeo.com/1195398&quot;&gt;this video&lt;/a&gt; that demonstrates the a shared coding session using the &lt;a href=&quot;http://eclipse.org/ecf/&quot;&gt;Eclipse Communication Framework&lt;/a&gt;. This is amazing! They're editing the same class concurrently and changes are reflected in real time without saving! &lt;br /&gt;&lt;br /&gt;I have often longed for the ability to collaborate with others beyond just commit/update via SVN with folks. In the past I've tried a multiplexing X server in Linux and SubEthaEdit for MacOS X, but neither is ideal. Given that so many people use Eclipse for writing code these days, this is exactly what we need. Now I just need to convince someone to install it and take it for a spin ;-).</description>
	<pubDate>Wed, 27 Aug 2008 14:38:47 +0000</pubDate>
</item>
<item>
	<title>Grant Ingersoll: Solr Logo Contest</title>
	<guid isPermaLink="true">http://lucene.grantingersoll.com/2008/08/27/solr-logo-contest/</guid>
	<link>http://lucene.grantingersoll.com/2008/08/27/solr-logo-contest/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://wiki.apache.org/solr/LogoContest&quot;&gt;LogoContest - Solr Wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Solr, an open source search server, is looking for a new logo.  See the link above for details.&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 14:24:59 +0000</pubDate>
</item>
<item>
	<title>Jasha Joachimsthal: Converting a HashMap into a nested listing in Freemarker</title>
	<guid isPermaLink="true">http://blogs.hippo.nl/jasha/2008/08/converting_a_hashmap_into_a_ne.html</guid>
	<link>http://blogs.hippo.nl/jasha/2008/08/converting_a_hashmap_into_a_ne.html</link>
	<description>&lt;p&gt;For the &lt;a href=&quot;http://blogs.hippo.nl/jasha/2008/07/receive_cms_news_or_apple_pie.html&quot;&gt;e-Alert&lt;/a&gt; we use &lt;a href=&quot;http://freemarker.org&quot;&gt;Freemarker&lt;/a&gt; as templating engine. One of the new features of the next release will be a list of all subscribed categories and interests for the recipient.&lt;/p&gt;

&lt;p&gt;All subscribed categories and interests from the database are inside a HashMap called userInterests. The names of the categories are the keys, a List of the names of the interests are the values. In the Freemarker template it looks like:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
[#list userInterests.keySet() as category]&lt;br /&gt;
&amp;lt;li&amp;gt;${category}&lt;br /&gt;
  &amp;lt;ul&amp;gt;[#list userInterests[category] as interest]&lt;br /&gt;
    &amp;lt;li&amp;gt;${interest}&amp;lt;/li&amp;gt;&lt;br /&gt;
         [/#list]&amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
[/#list]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Freemarker converts this into the nested list of categories and interests. Eventually it will look like:&lt;br /&gt;
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Information type&lt;ul&gt;&lt;li&gt;News&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Subject&lt;ul&gt;&lt;li&gt;Content management&lt;/li&gt;&lt;li&gt;Open source&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 14:06:00 +0000</pubDate>
</item>
<item>
	<title>Deepal Jayasinghe: 10 fundamental differences between Linux and Windows</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/08/10-fundamental-differences-between.html</guid>
	<link>http://blogs.deepal.org/2008/08/10-fundamental-differences-between.html</link>
	<description>There is a very interesting article in Linuxtoday web site. There Jack Wallen has pointed out 10 fundamental differences between Windows and Linux operating systems. I think its worth reading the f&lt;a href=&quot;http://blogs.techrepublic.com.com/10things/?p=406&quot;&gt;ull story&lt;/a&gt; , though I have listed the 10 point which he discussed.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Full access vs. no access&lt;/li&gt;&lt;li&gt;Licensing freedom vs. licensing restrictions&lt;/li&gt;&lt;li&gt;Online peer support vs. paid help-desk support&lt;/li&gt;&lt;li&gt;Full vs. partial hardware support&lt;/li&gt;&lt;li&gt;Command line vs. no command line&lt;/li&gt;&lt;li&gt;Centralized vs. noncentralized application installation&lt;/li&gt;&lt;li&gt;Flexibility vs. rigidity&lt;/li&gt;&lt;li&gt;Fanboys vs. corporate types&lt;/li&gt;&lt;li&gt;Automated vs. nonautomated removable media&lt;/li&gt;&lt;li&gt;Multilayered run levels vs. a single-layered run level&lt;/li&gt;&lt;/ol&gt;Irrespective of whether I agree to above points or not , I am still a windows user [sometime I use Ubuntu too :) ]</description>
	<pubDate>Wed, 27 Aug 2008 13:39:56 +0000</pubDate>
</item>
<item>
	<title>Ben Hyde: Chart Room</title>
	<guid isPermaLink="true">http://enthusiasm.cozy.org/archives/2008/08/chart-room</guid>
	<link>http://enthusiasm.cozy.org/archives/2008/08/chart-room</link>
	<description>&lt;p&gt;I skimmed the book &lt;a href=&quot;http://www.amazon.com/Control-through-Communication-American-Management/dp/0801846137/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1219843776&amp;amp;sr=1-1&quot;&gt;Control through Communication&lt;/a&gt;.  The book is about firm size.  As we learned to manage information and communication at larger and larger scales the size of firms grew.  Which is all fine, but the aspect of the book I enjoyed was the schemes and gadgets.  Mostly the gadgets.  At one point the boss managed his communication with grid of pigeon holes, one for each day.  This scheme evolved; getting larger and larger until you could buy single unfolding desks, the size of a modern SUV, with hundreds of pigeon holes.&lt;/p&gt;
&lt;p&gt;This picture shows the Dupont executive chart room.  Using charts to illustrate the status of the firm’s many operation was, at some point in time, an innovation.   About the same time Dupont started to use crude modern financial modeling, ROI and such.  Somebody at Dupont was sufficently enthusiastic about charts to have this marvalous contraption built.&lt;/p&gt;
&lt;p&gt;The executives would sit in those chairs shown in the foreground, and as each portion of the operations came up for review their assistants would slide forth the handful of charts illustrating what’s happening with that.  It reminds me of a dry cleaners.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://enthusiasm.cozy.org/wp-content/uploads/2008/08/chartroom.png&quot;&gt;&lt;img src=&quot;http://enthusiasm.cozy.org/wp-content/uploads/2008/08/chartroom.png&quot; title=&quot;chartroom&quot; height=&quot;214&quot; width=&quot;499&quot; alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-1748&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On theme in the book is how the meer idea that information should flow up and down the corporate hierarchy was innovative.  And then that these communications would become formalized was yet another.  I don’t know if the word innovation, rather than say enivitable, is the right term.  The book disappointed me, but then I only skimmed it, beacuse it doesn’t really engage with the two questions I’m interested in.&lt;/p&gt;
&lt;p&gt;First how did firms manage the puzzle of how to negotiate out what should be communicated and how hierarchtical that communication ought to be.  It was interesting to realized that the the practice of highly hierarchtical communication may well have emerge almost entirely because that was what the technology could support.  The complexity of printing and it’s scaling characteristics meant that the central office could execute communication acts that the periphery could not.  If so the xerox machine must have created a bloom of lateral communication.&lt;/p&gt;
&lt;p&gt;Second how much did this wipe out smaller businesses.  Was this really a major driver to the condensation where single large firms displaced smaller firms.  The roll up that happened in the telephone industry reprised in multiple other industries; but it’s a provocative thought that it happened for almost identical reasons: communication based network effects.&lt;/p&gt;
&lt;p&gt;These two questions interact in some cases.  When railroads merged the operational rules of the dominate player would have to displace those of the weaker one, and in many case the stronger one had more effective communication and control schemes.&lt;/p&gt;
&lt;p&gt;Looking at that picture I’m reminded of a reporting framework that a new senior manager once deployed into a firm I was working at.  The frame work was extremely standardized, N slides, M panels in each slide, with rules about what was expected in each slot.  It wasn’t a bad scheme, and it certainly made his job much more efficent.  Which was good because it allowed him to cut thru a lot of middle management and see deeper into the organization.  But yet, it tended to eliminate from discussion anything that didn’t fit.  If the slide lacked a slot, say for employee morale, then an issue was invisble.  To exagerate it was as if he was looking at the company thru a straw.  I’d say it created a puzzle for those who wanted to signal something up stream.  You had to get it into the straw’s narrow view.  I suspect his scheme was the direct decendent of that chart room.&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 13:33:34 +0000</pubDate>
</item>
<item>
	<title>Matthias Wessendorf: JBoss’ WebBeans and TCK</title>
	<guid isPermaLink="true">http://matthiaswessendorf.wordpress.com/2008/08/27/jboss-webbeans-and-tck/</guid>
	<link>http://matthiaswessendorf.wordpress.com/2008/08/27/jboss-webbeans-and-tck/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;By accident, I noticed &lt;a href=&quot;http://www.seamframework.org/WebBeans&quot;&gt;this link&lt;/a&gt; on the Seam website. It talks about &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=299&quot;&gt;WebBeans&lt;/a&gt;. No, it doesn’t only talk about WebBeans and the relationship to Seam. It does much more… it contains a link to the source code… Not a big deal… But! I am really happy to see that WebBeans is developed under ASL 2.0, by JBoss/Red Hat.&lt;/p&gt;
&lt;p&gt;Even better, the page says that the TCK (not yet there) will also be licensed under ASL 2.0. Which is really great news! As far as I know, the only TCK that is ASL 2.0 based is the one from &lt;a href=&quot;http://db.apache.org/jdo/tck.html&quot;&gt;JDO&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Well done, JBoss!&lt;/p&gt;
&lt;img src=&quot;http://feeds.wordpress.com/1.0/categories/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;img src=&quot;http://feeds.wordpress.com/1.0/tags/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/matthiaswessendorf.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/matthiaswessendorf.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/matthiaswessendorf.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/matthiaswessendorf.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/matthiaswessendorf.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/matthiaswessendorf.wordpress.com/114/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=matthiaswessendorf.wordpress.com&amp;amp;blog=1129660&amp;amp;post=114&amp;amp;subd=matthiaswessendorf&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 27 Aug 2008 13:08:07 +0000</pubDate>
</item>
<item>
	<title>Matthias Wessendorf: podcast/interview from JSFCentral</title>
	<guid isPermaLink="true">http://matthiaswessendorf.wordpress.com/2008/08/27/podcastinterview-from-jsfcentral/</guid>
	<link>http://matthiaswessendorf.wordpress.com/2008/08/27/podcastinterview-from-jsfcentral/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.manning.com/mann/&quot;&gt;Kito D. Mann&lt;/a&gt; did an interview with me, when I was in NYC to attend the &lt;a href=&quot;http://matthiaswessendorf.wordpress.com/2008/03/26/ajaxworld-east-2008-in-new-york-city/&quot;&gt;AjaxWorld&lt;/a&gt; show. He published this interview as a podcast &lt;a href=&quot;http://www.jsfcentral.com/articles/wessendorf-08-08.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Currently I am writing a series of articles about Trinidad. These will be published soon on Kito’s &lt;a href=&quot;http://www.JSFCentral.com&quot;&gt;JSFCentral.com &lt;/a&gt;site.&lt;/p&gt;
&lt;img src=&quot;http://feeds.wordpress.com/1.0/categories/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;img src=&quot;http://feeds.wordpress.com/1.0/tags/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/matthiaswessendorf.wordpress.com/111/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/matthiaswessendorf.wordpress.com/111/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/matthiaswessendorf.wordpress.com/111/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/matthiaswessendorf.wordpress.com/111/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/matthiaswessendorf.wordpress.com/111/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/matthiaswessendorf.wordpress.com/111/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=matthiaswessendorf.wordpress.com&amp;amp;blog=1129660&amp;amp;post=111&amp;amp;subd=matthiaswessendorf&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 27 Aug 2008 11:04:50 +0000</pubDate>
</item>
<item>
	<title>James Strachan: Another great Camel tutorial from Claus</title>
	<guid isPermaLink="true">http://macstrac.blogspot.com/2008/08/another-great-camel-tutorial-from-claus.html</guid>
	<link>http://macstrac.blogspot.com/2008/08/another-great-camel-tutorial-from-claus.html</link>
	<description>&lt;a href=&quot;http://davsclaus.blogspot.com/&quot;&gt;Claus&lt;/a&gt; has done it again with &lt;a href=&quot;http://davsclaus.blogspot.com/2008/08/camel-tutorial-part-4.html&quot;&gt;part 4&lt;/a&gt; of his excellent &lt;a href=&quot;http://activemq.apache.org/camel/tutorial-example-reportincident.html&quot;&gt;Camel tutorial&lt;/a&gt;. Check it out if you are interested in &lt;a href=&quot;http://activemq.apache.org/camel/enterprise-integration-patterns.html&quot;&gt;Enterprise Integration Patterns&lt;/a&gt; or &lt;a href=&quot;http://activemq.apache.org/camel/&quot;&gt;Camel&lt;/a&gt;</description>
	<pubDate>Wed, 27 Aug 2008 08:18:53 +0000</pubDate>
</item>
<item>
	<title>Bruce Snyder: Do You Use Maven? If So, You Need Nexus</title>
	<guid isPermaLink="true">http://bsnyderblog.blogspot.com/2008/08/do-you-use-maven-if-so-you-need-nexus.html</guid>
	<link>http://bsnyderblog.blogspot.com/2008/08/do-you-use-maven-if-so-you-need-nexus.html</link>
	<description>&lt;a href=&quot;http://nexus.sonatype.org/nexus.png&quot;&gt;&lt;img src=&quot;http://nexus.sonatype.org/nexus.png&quot; style=&quot;float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 200px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you use Maven for your development or you manage a Maven repository inside your company then you need a Maven repository manager and &lt;a href=&quot;http://nexus.sonatype.org/&quot;&gt;Nexus&lt;/a&gt; is hands-down the best choice. Today Sonatype, the company behind Maven, &lt;a href=&quot;http://www.infoworld.com/article/08/08/26/Java-developers-get-repository-help_1.html&quot;&gt;announced the release of Nexus 1.0&lt;/a&gt;, the easiest to use, enterprise-ready Maven repository manager. &lt;br /&gt;&lt;br /&gt;Nexus serves as a proxy between your organization and public Maven repositories and as an easy-to-use deployment target for your own, possible commerical artifacts. &lt;br /&gt;&lt;br /&gt;Nexus acts as a cache of artifacts between your organization and any public Maven repository. This means that artifacts and their dependencies only need to be downloaded once. I run Nexus locally on my laptop for this purpose and after the first download of artifacts, my builds sped up tremendously. I've done this &lt;a href=&quot;http://bsnyderblog.blogspot.com/2007/11/using-proximity-maven-repo-cacheproxy.html&quot;&gt;since it was called Proximity&lt;/a&gt; because it works very well.&lt;br /&gt;&lt;br /&gt;A shared, internal Maven repository inside of a company can be a very efficient way to share snapshots and releases of internal projects. Using Nexus dramatically simplifies this task and saves large amounts of time and effort. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Start Using Nexus in Minutes&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you want to speed up your Maven builds, follow these steps: &lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://nexus.sonatype.org/downloads/&quot;&gt;Download Nexus&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Start up Nexus (&lt;tt&gt;$NEXUS_HOME/bin/nexus start&lt;/tt&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Drop &lt;a href=&quot;http://www.sonatype.com/book/reference/repository-manager.html#ex-maven-nexus-snap&quot;&gt;this settings.xml&lt;/a&gt; in your ~/.m2/ directory&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Perform a Maven build&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;You might need to &lt;a href=&quot;http://www.sonatype.com/book/reference/repository-manager.html#d0e18960&quot;&gt;add more repositories&lt;/a&gt; to Nexus, but it's a cakewalk! Trust me, Nexus will simplify your use of Maven.</description>
	<pubDate>Wed, 27 Aug 2008 05:52:56 +0000</pubDate>
</item>
<item>
	<title>Brian W. Fitzpatrick: Tivo Olympics</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/fitz/~3/375857208/tivo-olympics.html</guid>
	<link>http://feeds.feedburner.com/~r/fitz/~3/375857208/tivo-olympics.html</link>
	<description>A few years ago I &lt;a href=&quot;http://fitz.blogspot.com/2007/02/pop-olympics.html&quot;&gt;lamented the state of the Olympics on television&lt;/a&gt;, and while NBC hasn't done a whole lot to improve their televising of the Olympics, Tivo made it all somehow bearable.  Tivo let me skip the commercials, the background pieces on athletes, the medal ceremonies, and the &lt;i&gt;grating&lt;/i&gt; color commentary by Bob Costas and others.  All in all it took me about two hours to watch each five hour stretch of the Olympics, and that somehow made it pretty OK.&lt;br /&gt;&lt;br /&gt;I love my Tivo.&lt;img src=&quot;http://feeds.feedburner.com/~r/fitz/~4/375857208&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 27 Aug 2008 04:41:16 +0000</pubDate>
</item>
<item>
	<title>Yoav Shapira: Restaurant review: Lucca</title>
	<guid isPermaLink="true">http://yoavs.blogspot.com/2008/08/restaurant-review-lucca.html</guid>
	<link>http://yoavs.blogspot.com/2008/08/restaurant-review-lucca.html</link>
	<description>On Sunday night &lt;a href=&quot;http://allisonshapira.com&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Alli&lt;/span&gt;&lt;/a&gt; and I celebrated our monthly date night at &lt;a href=&quot;http://www.luccaboston.com/&quot;&gt;Lucca&lt;/a&gt;, an Italian restaurant in the &lt;a href=&quot;http://www.northendboston.com/&quot;&gt;North End&lt;/a&gt;.  We had a fantastic time, primarily because of their amazing service.&lt;br /&gt;&lt;br /&gt;It started at the curb.  We were about to valet the car, but the manager came out to park it for us.  This is on a busy summer evening on &lt;a href=&quot;http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=226+hanover+street,+boston,+ma&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=55.016555,114.257812&amp;amp;ie=UTF8&amp;amp;z=17&amp;amp;iwloc=addr&quot;&gt;Hanover Street&lt;/a&gt;.  If you're a Bostonian, you appreciate how preposterously unusual this is.  If you're not a Bostonian, well, imagine ;)  Or ask in a comment.&lt;br /&gt;&lt;br /&gt;We were seated promptly at a street-front window table, just like I requested when making the reservation.  Then the manager came by again to give me the key to the car, saying he found a spot out front and was happy to save us the valet money.  Wow!&lt;br /&gt;&lt;br /&gt;The food was delicious.  We each got a smallish pasta dish as an appetizer, and shared a steak and risotto entree later.  My pasta was delicious: gnocchi &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;hs=WlV&amp;amp;q=cinghiale+wild+boar&amp;amp;btnG=Search&quot;&gt;al cinghiale&lt;/a&gt;, one of my favorites.  Cinghiale is wild boar, which they marinade and braise for two days (!).  It's tender and perfectly matches the gnocchi, olive oil, and cheese.  Wow.&lt;br /&gt;&lt;br /&gt;Another reason we went to the restaurant is their great wine list, a &lt;a href=&quot;http://www.winespectator.com/Wine/Home/&quot;&gt;Wine Spectator&lt;/a&gt; award winner for several years running now.  As you might expect given the context, the focus is on Italian wines, and reds at that.  The best area of the list, again as expected, is the Barolo and Barbaresco selection.  Lots of &lt;a href=&quot;http://www.terlatowines.com/wines/italy/gaja/&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Gaja&lt;/span&gt;&lt;/a&gt; options, although those are wicked expensive.&lt;br /&gt;&lt;br /&gt;It was a hard choice, but we ended up with a &lt;a href=&quot;http://www.stirlingfinewine.com/r/products/sottimano-barbaresco-curra-2003&quot;&gt;2003 Sottimano Barbaresco&lt;/a&gt; from the &lt;span style=&quot;font-style: italic;&quot;&gt;Curra&lt;/span&gt; vineyard.  It's just a tid on the young side, but otherwise a fantastic match to the food.  Just a delicious wine, and given how good I think it's going to be in 2-5 years, the current retail value is great.&lt;br /&gt;&lt;br /&gt;Service was great throughout.  Overall, I really liked Lucca, and you should check it out.</description>
	<pubDate>Wed, 27 Aug 2008 02:41:33 +0000</pubDate>
</item>
<item>
	<title>Yoav Shapira: Nice command line option: &quot;--proxy-fix-bug-25371&quot;</title>
	<guid isPermaLink="true">http://yoavs.blogspot.com/2008/08/nice-command-line-option-proxy-fix-bug.html</guid>
	<link>http://yoavs.blogspot.com/2008/08/nice-command-line-option-proxy-fix-bug.html</link>
	<description>I was reading up on &lt;a href=&quot;http://www.hscale.org/display/HSCALE/Home&quot;&gt;HScale&lt;/a&gt; and &lt;a href=&quot;http://spockproxy.sourceforge.net/&quot;&gt;Spock Proxy&lt;/a&gt; earlier this evening, and in due time I went back to re-read some of the &lt;a href=&quot;http://forge.mysql.com/wiki/MySQL_Proxy&quot;&gt;MySQL Proxy&lt;/a&gt; documentation.  There's this funny, documented option that just made me laugh out loud.  I love it.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;--proxy-fix-bug-25371 fix bug #25371 (mysqld &amp;gt; 5.1.12) for older libmysql versions&lt;br /&gt;&lt;/blockquote&gt;</description>
	<pubDate>Wed, 27 Aug 2008 02:32:02 +0000</pubDate>
</item>
<item>
	<title>Chris Pepper: Time for More RAM</title>
	<guid isPermaLink="true">http://www.extrapepperoni.com/2008/08/26/time-for-more-ram/</guid>
	<link>http://www.extrapepperoni.com/2008/08/26/time-for-more-ram/</link>
	<description>&lt;pre&gt;pepper@prowler:~$ top -l1|head -7
Processes:  105 total, 3 running, 4 stuck, 98 sleeping... 439 threads   20:08:26

Load Avg:  0.68,  1.05,  1.10    CPU usage: 22.86% user, 42.86% sys, 34.29% idle
SharedLibs: num =    4, resident =   41M code, 3032K data, 3172K linkedit.
MemRegions: num = 39625, resident =  824M +   20M private,  207M shared.
PhysMem:  269M wired, 1159M active,  554M inactive, 1990M used,   58M free.
VM: 16G + 374M   5256473(0) pageins, 1406422(0) pageouts&lt;/pre&gt;

&lt;p&gt;A pair of 2gb DIMMs are en route from NewEgg, for $75.&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 00:10:34 +0000</pubDate>
</item>
<item>
	<title>Howard M. Lewis Ship: Tapestry Europe Tour</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TapestryCentral/~3/376335073/tapestry-europe-tour.html</guid>
	<link>http://feeds.feedburner.com/~r/TapestryCentral/~3/376335073/tapestry-europe-tour.html</link>
	<description>&lt;p&gt;
I'm going to be in Oslo, Norway for &lt;a href=&quot;http://www4.java.no/web/show.do?page=197;786&quot;&gt;JavaZone&lt;/a&gt; from Sep. 16 to Sep. 19th.  I'm presenting on Thursday afternoon.

&lt;/p&gt;&lt;p&gt;
Next up, a week of Tapestry training in London.

&lt;/p&gt;&lt;p&gt;
I then fly to Amsterdam on Sep. 27th, for three more days of Tapestry training and then some vacation.  

&lt;/p&gt;&lt;p&gt;
Next, down to Paris just for vacation before returning home on October 10th.

&lt;/p&gt;&lt;p&gt;
Should be a lot of fun, and a chance to meet with new and future Tapestry users. I can't wait!&lt;img src=&quot;http://feeds.feedburner.com/~r/TapestryCentral/~4/376335073&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 23:36:48 +0000</pubDate>
</item>
<item>
	<title>Howard M. Lewis Ship: Tapestry 5 IoC: Binding and Building Services</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TapestryCentral/~3/376335074/tapestry-5-ioc-binding-and-building.html</guid>
	<link>http://feeds.feedburner.com/~r/TapestryCentral/~3/376335074/tapestry-5-ioc-binding-and-building.html</link>
	<description>&lt;p&gt;Tapestry 5 includes its own internal Inversion of Control container.  This is often a point of contention ... why not just use &lt;a href=&quot;http://www.springframework.org/&quot;&gt;Spring&lt;/a&gt; or (in more recent conversations) &lt;a href=&quot;http://code.google.com/p/google-guice/&quot;&gt;Guice&lt;/a&gt;?
 
&lt;/p&gt;&lt;p&gt;
That's a complex question; simply put, Tapestry has requirements as a framework that the other containers don't offer solutions to.  

&lt;/p&gt;&lt;p&gt;
This posting is a simple introduction to the basics of Tapestry 5 IoC. In later postings, we'll get into more detail about the advanced features of Tapestry's IoC container, the ones that really distance it from Spring and Guice.


&lt;/p&gt;&lt;p&gt;
Tapestry uses the term &quot;service&quot; for the primary objects that it manages for you. Spring uses the term &quot;bean&quot;. A service is normally an interface and a class that implements the interface.  In the most typical case, only a single service implements the interface, but T5 IoC is fully capable of handling the case where one service interface has a number of distinct services; even the case where a single class is instantiated with a different configuration.

&lt;/p&gt;&lt;p&gt;
Every service has a unique id string.  In most cases, this is just the simple name of the service interface. When the same interface is used by multiple services, you will have to identify the service id explicitly.

&lt;/p&gt;&lt;p&gt;
To keep things real, I'll use actual, though abbreviated, examples from Tapestry's code base. 

&lt;/p&gt;&lt;p&gt;
T5 IoC uses module classes to identify what services are available.  A module class is a POJO class with a special method on it, a method named &lt;code&gt;bind()&lt;/code&gt;.  A Tapestry application will consist of a number of modules: some modules provided by Tapestry itself, some by third party libraries or extensions, and some by the application itself.  Tapestry mixes and matches all of this information, all of the services defined by &lt;em&gt;each&lt;/em&gt; of the modules, into a single registry of services.

&lt;/p&gt;&lt;p&gt;That may sound more complex than it really is.  The reality is that in the &lt;code&gt;bind()&lt;/code&gt; method, we simply match service interfaces to corresponding implementations:

&lt;/p&gt;&lt;pre&gt;public final class TapestryModule
{
    public static void bind(&lt;a href=&quot;http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/ioc/ServiceBinder.html&quot;&gt;ServiceBinder&lt;/a&gt; binder)
    {
        binder.bind(ClasspathAssetAliasManager.class, ClasspathAssetAliasManagerImpl.class);
        binder.bind(PersistentLocale.class, PersistentLocaleImpl.class);
        binder.bind(ApplicationStateManager.class, ApplicationStateManagerImpl.class);
        // ... and so on
    }
}
&lt;/pre&gt;

&lt;p&gt;
 The ServiceBinder is uses generics to ensure that the class you specify implements the service interface. The API is a &lt;em&gt;fluent&lt;/em&gt; interface: you can chain a few extra method calls onto bind() to override defaults, for example:
 
&lt;/p&gt;&lt;pre&gt;      binder.bind(ObjectProvider.class, AssetObjectProvider.class).withId(&quot;AssetObjectProvider&quot;);
&lt;/pre&gt;
 
&lt;p&gt;TapestryModule actually defines quite a few additional services.
 
&lt;/p&gt;&lt;p&gt;Let's look at an example:
 
&lt;/p&gt;&lt;pre&gt;public interface PersistentLocale
{
    void set(Locale locale);

    Locale get();

    boolean isSet();
}
&lt;/pre&gt;

&lt;p&gt;I've stripped out the comments to save space ... but this service manages the user's locale; it's a key part of Tapestry 5's localization support.   The implementation we'll see shortly works using HTTP Cookies, but that isn't important to the code that uses PersistentLocale.
 
&lt;/p&gt;&lt;pre&gt;public class PersistentLocaleImpl implements PersistentLocale
{
    private static final String LOCALE_COOKIE_NAME = &quot;org.apache.tapestry5.locale&quot;;

    private final Cookies cookieSource;

    public PersistentLocaleImpl(Cookies cookieSource)
    {
        this.cookieSource = cookieSource;
    }

    public void set(Locale locale)
    {
        cookieSource.writeCookieValue(LOCALE_COOKIE_NAME, locale.toString());
    }

    public Locale get()
    {
        String localeCookieValue = getCookieValue();

        return localeCookieValue != null ? LocaleUtils.toLocale(localeCookieValue) : null;
    }

    private String getCookieValue()
    {
        return cookieSource.readCookieValue(LOCALE_COOKIE_NAME);
    }

    public boolean isSet()
    {
        return getCookieValue() != null;
    }
}
&lt;/pre&gt;

&lt;p&gt;
T5 IoC does &lt;em&gt;all&lt;/em&gt; injection through the constructor. This is to encourage you to write your dependencies into final fields, which is thread safe. Typically, your services will be immutable objects: all fields final.

&lt;/p&gt;&lt;p&gt;
PersistentLocaleImpl has a dependency on another service, Cookies.  And what is Cookies?  It's another service interface.  Notice that we don't have to do any extra configuration here ... since there's one, and only one, service that implements the Cookies interface, that's all the information Tapestry needs to wire things together.

&lt;/p&gt;&lt;p&gt;Other service implementations inside Tapestry have as few as zero dependencies, and as many as eight.  There's no theoretical limit, it's just that having more than a few dependencies is a design smell ... that you can break things into smaller pieces.

&lt;/p&gt;&lt;p&gt;One of the hallmarks of coding using an IoC container is this level of &lt;em&gt;terseness&lt;/em&gt;, also knows as &lt;em&gt;passing the buck&lt;/em&gt;.  Given that PersistentLocaleImpl is concerned with HTTP cookies, you'd think that it would, somehow, get ahold of the HttpServletRequest object and start invoking &lt;code&gt;getCookies()&lt;/code&gt; and &lt;code&gt;addCookie()&lt;/code&gt; on it ... but instead, all the details of interfacing with the Servlet API and the rather awkward API for HTTP cookies is swept into a corner, inside the Cookies service implementation.
 
&lt;/p&gt;&lt;p&gt;That's great ... it makes the implementation of PersistentLocaleImpl (as well as any other code that happens to care about HTTP cookies) that much simpler and easier to test.
 
&lt;/p&gt;&lt;h2&gt;Service Lifecycle&lt;/h2&gt; 
 
&lt;p&gt;Tapestry services have a specific lifecycle:
 &lt;/p&gt;&lt;dl&gt;
  &lt;dt&gt;defined&lt;/dt&gt;
  &lt;dd&gt;Identified via the ServiceBinder, but not yet referenced&lt;/dd&gt;
  &lt;dt&gt;virtual&lt;/dt&gt;
  &lt;dd&gt;A proxy exists that has been injected as a dependency of some other service, but no methods of the proxy have been invoked&lt;/dd&gt;
  &lt;dt&gt;realized&lt;/dt&gt;
  &lt;dd&gt;The service has been instantiated with dependencies&lt;/dd&gt;
  &lt;/dl&gt;
  
&lt;p&gt;The beauty of this is that your code is completely unaware of this; all the work inside Tapestry ... creating proxies, realizing service implementations, occurs in a lazy but thread-safe manner. It's as if all the services are instantiated at startup without taking the time to actually do that work.
 
&lt;/p&gt;&lt;p&gt;Again, the appeal of an IoC container is that you get to break your application into tiny, easily tested bits, and the IoC container is responsible for connecting everything back together at runtime. It really leads to a new way of coding, and thinking about coding. 
 
&lt;/p&gt;&lt;h2&gt;Service Builder Methods&lt;/h2&gt;

&lt;p&gt;Sometimes just instantiating a class is not enough; there may be additional configuration needed as part of instantiating the class.  Tapestry 5 IoC's predecessor, &lt;a href=&quot;http://hivemind.apache.org&quot;&gt;HiveMind&lt;/a&gt;, accomplished such goals with complex service-building services.  It ended up being a lot of XML.
 
&lt;/p&gt;&lt;p&gt;T5 IoC accomplishes the same, and more, using &lt;em&gt;service builder methods&lt;/em&gt;; module methods that construct a service.  A typical case is when a service implementation needs to listen to events from some other service:
 
&lt;/p&gt;&lt;pre&gt;public static TranslatorSource buildTranslatorSource(ComponentInstantiatorSource componentInstantiatorSource, 
  &lt;a href=&quot;http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/ioc/ServiceResources.html&quot;&gt;ServiceResources&lt;/a&gt; resources)
{
    TranslatorSourceImpl service = resources.autobuild(TranslatorSourceImpl.class);

    componentInstantiatorSource.addInvalidationListener(service);

    return service;
}
&lt;/pre&gt;  
 
&lt;p&gt;Module methods prefixed with &quot;build&quot; are service builder methods.  The service interface is defined from the return value (TranslatorSource).  The service id is explicitly &quot;TranslatorSource&quot; (that is, everything after &quot;build&quot; in the method name).
 
&lt;/p&gt;&lt;p&gt;Here, Tapestry has injected &lt;em&gt;into the service builder method&lt;/em&gt;.  ComponentInstantiatorSource is a service that fires events.  ServiceResources is something else: it is a bundle of resources related to the service being constructed ... including the ability to instantiate an object &lt;em&gt;including dependencies&lt;/em&gt;.  What's great here is that &lt;code&gt;buildTranslatorSource()&lt;/code&gt;    
doesn't need to know &lt;em&gt;what&lt;/em&gt; the dependencies of TranslatorSourceImpl are, it can instantiate the
class with dependencies using the &lt;code&gt;autobuild()&lt;/code&gt; method.  The service builder then adds the new service as a listener of the ComponentInstantiatorSource, before returning it.

&lt;/p&gt;&lt;p&gt;This is a great &lt;em&gt;separation of concerns&lt;/em&gt;: we have a construction concern (being an event listener) that's distinct from the &lt;em&gt;operational concerns&lt;/em&gt; of TranslatorSource.  And they are kept separate.


&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Tapestry IoC has simple and concise API for defining services and, in most cases, handles dependencies automatically. The end result is that it becomes child's play to divide-and-conquer: convert old, monolithic, hard to maintain code into small, easily tested, easily understood services.
 
&lt;/p&gt;&lt;p&gt;In future postings, I'll go into more detail about the more advanced features of Tapestry: service scopes, service configurations and service decorations.&lt;img src=&quot;http://feeds.feedburner.com/~r/TapestryCentral/~4/376335074&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 23:13:48 +0000</pubDate>
</item>
<item>
	<title>Howard M. Lewis Ship: Ajax and Selenium: waitForCondition()</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TapestryCentral/~3/376335075/ajax-and-selenium-waitforcondition.html</guid>
	<link>http://feeds.feedburner.com/~r/TapestryCentral/~3/376335075/ajax-and-selenium-waitforcondition.html</link>
	<description>&lt;p&gt;
Selenium is a very useful tool but it can be very, very obtuse.

&lt;/p&gt;&lt;p&gt;
One challenge is dealing with Ajax; you might click on a button, but without a full page refresh, it's hard to know when to look for expected changes via Ajax and DHTML. 

&lt;/p&gt;&lt;p&gt;
In the past, my test suites had short sleeps, a few hundred milliseconds. This makes them fail sporadically ... every once and a while on my MacBook Pro I'm doing so much other stuff while the tests run that the timing goes screwy.

&lt;/p&gt;&lt;p&gt;
You're then left with a difficult choice: sleep too short and the tests may fail.  Sleep too long and your tests will always be slow.

&lt;/p&gt;&lt;p&gt;
Fortunately, there's a third option:  Selenium's &lt;a href=&quot;http://wiki.openqa.org/display/SEL/waitForCondition&quot;&gt;&lt;code&gt;waitForCondition&lt;/code&gt;&lt;/a&gt; call.  Of course, their documentation is worthless.

&lt;/p&gt;&lt;p&gt;
What it is supposed to do is evaluate a JavaScript snippet repeatedly, until the snippet returns true.  However, it's tricky to get right.  Like much in JavaScript, it's about context.

&lt;/p&gt;&lt;p&gt;
In my case, I wanted to wait for a client-side popup &amp;lt;div&amp;gt; to appear:

&lt;/p&gt;&lt;pre&gt;        type(&quot;amount&quot;, &quot;abc&quot;);
        type(&quot;quantity&quot;, &quot;abc&quot;);

        click(SUBMIT);

        waitForCondition(&quot;document.getElementById('amount:errorpopup')&quot;, &quot;5000&quot;);

        assertText(&quot;//div[@id='amount:errorpopup']/span&quot;, &quot;You must provide a numeric value for Amount.&quot;);
        assertText(&quot;//div[@id='quantity:errorpopup']/span&quot;, &quot;Provide quantity as a number.&quot;);
&lt;/pre&gt;

&lt;p&gt;
JavaScript treats null as false, and getElementById() returns null if an element with the id does not exist.

&lt;/p&gt;&lt;p&gt;
I'm making the assumption that once one of two &amp;lt;div&amp;gt; elements appears, they both will. I then use some XPath to get the text inside the &amp;lt;span&amp;gt; inside each &amp;lt;div&amp;gt;, to make sure the correct message was displayed to the user.

&lt;/p&gt;&lt;p&gt;
But this code doesn't work.

&lt;/p&gt;&lt;p&gt;
The problem is that &lt;code&gt;document&lt;/code&gt; isn't what you'd expect; I'm guessing that it's some other frame inside the browser (Selenium's UI and code executes in one frame, which runs the actual application inside the second frame).

&lt;/p&gt;&lt;p&gt;
The solution took some research and the sacrifice of a few small furry animals to obtain:

&lt;/p&gt;&lt;pre&gt;        waitForCondition(&quot;selenium.browserbot.getCurrentWindow().document.getElementById('amount:errorpopup')&quot;, &quot;5000&quot;);
&lt;/pre&gt;

&lt;p&gt;
That works, and it works much faster than adding a Thread.sleep() in the middle of my code.&lt;img src=&quot;http://feeds.feedburner.com/~r/TapestryCentral/~4/376335075&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 19:25:40 +0000</pubDate>
</item>
<item>
	<title>Shane Curcuru: Storrow Drive: MAX HEADROOM</title>
	<guid isPermaLink="true">https://shane.curcuru.name/blog/2008/08/storrow-drive-max-headroom/</guid>
	<link>https://shane.curcuru.name/blog/2008/08/storrow-drive-max-headroom/</link>
	<description>&lt;p&gt;I can’t duck out of this one.  I know I’ll get cut down to size, and it’s dangerous to post something like this without enough clearance.  September’s sweet singing to the coming college constituents is driving me to dare to dive into the &lt;a href=&quot;http://www.universalhub.com/node/16178&quot;&gt;pool over at UniversalHub&lt;/a&gt;: Beantown bloggers bet on when the fell fate will befall some incoming buffoon:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://www.universalhub.com/node/16178&quot;&gt;When will the first truck be peeled back like a sardine can on Storrow Drive?&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now I think Adamg was fishing for some entries with that title, but it’s a good one, and it’s a good pool to be in.  When I think about it, I really look up to those that drive on Storrow - and to those who look up before they drive on Storrow.  &lt;/p&gt;
&lt;p&gt;In any case, I”ll come out from under my rock and give my prediction: the first stuck Storrow truck of September will not be a U-haul, but will be a major rental companies, and it will happen before 11:30am on this Thursday, as some foolish new freshman is being driven to school by their father.  I know it’s a stretch up to believe it’ll be that early, but hey, someone’s gotta go first.&lt;/p&gt;
&lt;p&gt;Hey, anyone have a graph of the number of stuck Storrow trucks for the past few years?  Or anyone wonder how much the local truck rental places would pay someone to stand by the likely onramps on Saturday to attempt to wave off clueless rental drivers?&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 19:01:49 +0000</pubDate>
</item>
<item>
	<title>Howard M. Lewis Ship: Tapestry @ JavaZone 2008</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TapestryCentral/~3/376335076/tapestry-javazone-2008.html</guid>
	<link>http://feeds.feedburner.com/~r/TapestryCentral/~3/376335076/tapestry-javazone-2008.html</link>
	<description>&lt;p&gt;
I'll be &lt;a href=&quot;http://javazone.no/incogito/session/Tapestry+5%3A+Java+Power%2C+Scripting+Ease.html&quot;&gt;presenting on Tapestry 5&lt;/a&gt; at &lt;a href=&quot;http://www4.java.no/web/show.do?page=197;786&quot;&gt;JavaZone&lt;/a&gt;.  I'll be in Lab 2, on Sept 18th, at 2:15. With less than an hour to talk about Tapestry 5 and compare it briefly to Wicket and Rails ... well, I'll be talking fast!

&lt;/p&gt;&lt;p&gt;
I also just noticed that there's a &lt;a href=&quot;http://javazone.no/incogito/session/Comparing+IoC+containers+(Spring%2C+Guice%2C+Tapestry+5+IOC%2C+HK2).html&quot;&gt;session on comparing IoC containers&lt;/a&gt; that includes Tapestry 5 IoC.  That's Lab 6, on the 17th, at 5pm.&lt;img src=&quot;http://feeds.feedburner.com/~r/TapestryCentral/~4/376335076&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 17:17:15 +0000</pubDate>
</item>
<item>
	<title>Sam Ruby: W3C HTML 5 Conformance Checker</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/08/26/W3C-HTML-5-Conformance-Checker</guid>
	<link>http://www.intertwingly.net/blog/2008/08/26/W3C-HTML-5-Conformance-Checker</link>
	<description>&lt;svg width=&quot;131&quot; style=&quot;float: right;&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewbox=&quot;0 0 131 76&quot; height=&quot;76&quot;&gt;
  &lt;path d=&quot;M36,5l12,41l12-41h33v4l-13,21c30,10,2,69-21,28l7-2c15,27,33,-22,3,-19v-4l12-20h-15l-17,59h-1l-13-42l-12,42h-1l-20-67h9l12,41l8-28l-4-13h9&quot; fill=&quot;#005A9C&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M94,53c15,32,30,14,35,7l-1-7c-16,26-32,3-34,0M122,16c-10-21-34,0-21,30c-5-30 16,-38 23,-21l5-10l-2-9&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;p&gt;&lt;a href=&quot;http://www.w3.org/QA/2008/08/html5-validator-beta.html&quot;&gt;&lt;cite&gt;Karl Dubost&lt;/cite&gt;&lt;/a&gt;: &lt;em&gt;We are happy to &lt;a href=&quot;http://lists.w3.org/Archives/Public/www-validator/2008Aug/0057.html&quot;&gt;announce&lt;/a&gt; that W3C has integrated a version of HTML 5 conformance checker into a &lt;a href=&quot;http://qa-dev.w3.org/wmvs/HEAD/&quot;&gt;beta instance of the W3C Markup validator&lt;/a&gt;. That will help us to detect bugs, improve the user interface, and benefit from the large W3C communities.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Gotta love the “random” page that &lt;a href=&quot;http://www.w3.org/People/olivier/&quot;&gt;Olivier Théreaux&lt;/a&gt; chose to mention in his &lt;a href=&quot;http://lists.w3.org/Archives/Public/www-validator/2008Aug/0057.html&quot;&gt;announcement&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 16:36:33 +0000</pubDate>
</item>
<item>
	<title>Tony Stevenson: I am too weak…</title>
	<guid isPermaLink="true">http://blog.pc-tony.com/?p=47</guid>
	<link>http://blog.pc-tony.com/?p=47</link>
	<description>&lt;p&gt;…I have just been introduced to &lt;a href=&quot;http://www.travian.co.uk&quot;&gt;Travian&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am already addicted, damn you Paul.  Essentially it is an online RTS game, where you build up a village, and stockpile produce before using your alliances to raid local villages, and fend off attacks from others.  Simple, effective, but fun.&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 14:55:42 +0000</pubDate>
</item>
<item>
	<title>Gianugo Rabellino: Poor man’s mail merge in Apple Mail</title>
	<guid isPermaLink="true">http://boldlyopen.com/2008/08/26/poor-mans-mail-merge-in-apple-mail/</guid>
	<link>http://boldlyopen.com/2008/08/26/poor-mans-mail-merge-in-apple-mail/</link>
	<description>&lt;p&gt;Back at work after some &quot;virtual&quot; vacation (where virtual equals being at sea, yet nailed to a phone for most of the day… busy times over here), I have been confronted with what seemed to be a brain dead issue, that is sending a sizable number of emails to a lot of recipients. I'm not fond of Bcc: lists, so I thought there would have been an easy way to do some sort of mail merge in Apple Mail.&lt;/p&gt;
&lt;p&gt;Unless I'm seriously missing something, that's not the case: there is no built-in functionality I could find, and all I manage to scavenge on the Net were dubious crippleware packages. There is a remote possibility using Automator, but it seems to depend from addressbook entries, while all I had was a text file with a list of email addresses.&lt;/p&gt;
&lt;p&gt; I thought that would make for a good chance to finally have a look at AppleScript and, to my surprise, it was way easier than I thought. I'm sure there are much better ways of coding this (I particularly hate how I had to build the From: address by hand, yet apparently there is no easy way to grab that from the AppleScript dictionary), but if all you have is a text file with your e-mail in it and another file with a list of email addresses, you might find this script useful. Or not. It floats my boat, so I thought I'd share it.&lt;/p&gt;
&lt;p&gt;Enjoy!(or just &lt;a href=&quot;http://boldlyopen.com/wp-content/uploads/mailmerge.scpt&quot;&gt;download&lt;/a&gt; it)&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;applescript applescript&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt; application &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Mail&quot;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; allAccounts &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; name &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;every&lt;/span&gt; account
choose &lt;span style=&quot;color: #b1b100;&quot;&gt;from&lt;/span&gt; list allAccounts &lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; title &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Choose the Mail account to use...&quot;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; theAccount &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;result&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;as&lt;/span&gt; string
 
&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; subjectDialog &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; display dialog ¬
	&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Enter the subject of the email to send&quot;&lt;/span&gt; default answer &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;no subject&quot;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; theSubject &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; text returned &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; subjectDialog
 
&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; sendOrPreview &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;the&lt;/span&gt; button returned &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; ¬
	&lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;display dialog ¬
		&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Send the messages right away or preview and send manually?&quot;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; title ¬
		&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Send or Preview?&quot;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; icon caution ¬
		buttons &lt;span style=&quot;color: #66cc66;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Preview&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Send&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;}&lt;/span&gt; ¬
		default button &lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;
 
&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; theText &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;choose file &lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; prompt &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Pick a text file containing the email text&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;
 
&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; theContent &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; read theText
 
&lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt; application &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Finder&quot;&lt;/span&gt;
	&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; addresses &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; paragraphs &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; ¬
		&lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;read &lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;choose file &lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; prompt &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Pick a text file containing email addresses, one by line&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt;
 
&lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt; application &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Mail&quot;&lt;/span&gt;
	activate
	&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; activeAccount &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; account theAccount
	&lt;span style=&quot;color: #b1b100;&quot;&gt;repeat&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; i &lt;span style=&quot;color: #b1b100;&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;the&lt;/span&gt; length &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; addresses&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;
		&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; newMessage &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;make&lt;/span&gt; new outgoing message ¬
			&lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; properties &lt;span style=&quot;color: #66cc66;&quot;&gt;{&lt;/span&gt;account:activeAccount, subject:theSubject, content:theContent&lt;span style=&quot;color: #66cc66;&quot;&gt;}&lt;/span&gt;
		&lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt; newMessage
			&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; sender &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; ¬
				&lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;full name &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; activeAccount &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot; &amp;lt; &quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;amp;&lt;/span&gt; email addresses &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; activeAccount &lt;span style=&quot;color: #000066;&quot;&gt;as&lt;/span&gt; string&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&amp;gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;
			&lt;span style=&quot;color: #000066;&quot;&gt;make&lt;/span&gt; new &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; recipient at &lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; recipients ¬
				&lt;span style=&quot;color: #b1b100;&quot;&gt;with&lt;/span&gt; properties &lt;span style=&quot;color: #66cc66;&quot;&gt;{&lt;/span&gt;address:&lt;span style=&quot;color: #66cc66;&quot;&gt;(&lt;/span&gt;a reference &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; item i &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; addresses&lt;span style=&quot;color: #66cc66;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;}&lt;/span&gt;
			&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; visible &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;true&lt;/span&gt;
		&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt;
		&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; sendOrPreview &lt;span style=&quot;color: #b1b100;&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;equal&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Send&quot;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;then&lt;/span&gt;
			send newMessage
		&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;
	&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;repeat&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;tell&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 14:49:06 +0000</pubDate>
</item>
<item>
	<title>Ben Hyde: Blow Up Rich</title>
	<guid isPermaLink="true">http://enthusiasm.cozy.org/archives/2008/08/blow-up-rich</guid>
	<link>http://enthusiasm.cozy.org/archives/2008/08/blow-up-rich</link>
	<description>&lt;p&gt;I’ve been trying to think about the financial structures around processes that exhibit highly skewed distributions.  The insurance industry is a great place to find the examples.  We buy insurance to hedge against the small but awful.  Most of our houses don’t burn down, but it does happen.  The chance of a fire is scale free, the insurance company protects it’s clients at the scale they care about, but who protects the insurance company against the rare event the burns down the entire town.  There are three ways the insurance industry handles that scenario: they don’t cover it (excluding acts of god for example), they reinsure into a yet larger pool, or they avoid it by not insursing in certain venues. Over here at Bronte Capital is a posting arguing that Warren Buffet, who moved into the insurance industry in a big way over the last few years, has been working this third angle.&lt;/p&gt;
&lt;p&gt;When process with a highly skewed distribution delivers it’s rare but powerful shock into the system, it’s black swans, everything designed to work with the median shocks is blows up.  I’d be interested to know how the insurance industry handled the New England hurricane of 1938.  I’d be interested to know how the insurance industry in Thailand handled the AID’s epidemic.&lt;/p&gt;
&lt;p&gt;Another place I’ve been musing about exceptional, but inevitable, events is where you situate your career planning.  I’ve a friend who likes to say that almost all the people he knows who made a fortune in their life “fell of a log into a pile of money” thru no special merit of their own except in some cases they consciously picked a good log to sit on.  On the other hand a lot of people just fall off a log sooner or latter.  It would be nice if, as you plan your career, you had a better sense of what the chances are in the trade you pick, in the economy at large.  The fetish people have for presuming that career path probablities are entirely a matter of personal merit seem wreckless.  I was quite impressed when an acquantance of mine with a degree in biology explained he was moving into lawyering because, well he didn’t put it this way, the climate was more predictable.&lt;/p&gt;
&lt;p&gt;Recently I’ve been trying to explain how wily US cell phone pricing is.  They sell monthly plans with N minutes and then when the exceptional crisis comes down the pike, you fall in love example, they charge you huge over charges.  The typical plan delivers minutes at about five cents each and forty cents a minute.  Better, at least for them, is that as little crissis come and go your start changing your plan to buy more minutes, which in the absense of a crissis you don’t use.  That in turn raises the real cost of even you noncrisis minutes.  It’s a very impressive pricing scam isn’t it!  I recomend prepaid (t-mobile for gsm, pageplus for cdma on verizon).&lt;/p&gt;
&lt;p&gt;If we ignore prepaid cell phone service, the cell phone contracts with a bundle of minutes every month are a bit like lousy insurance policies. You buy the option to use five hundred minutes, not because you need them, but because your insuring against the risk that you’ll run over and get stuck with the over charges.  That’s great, and I mean that sarcasticly, they are selling you insurance against a risk they created.&lt;/p&gt;
&lt;p&gt;It amuses me to wonder what would happen if everybody in the country could be coordinated into using all those free minutes one month.  I very much doubt the phone companies can fufill that promise.&lt;/p&gt;
&lt;p&gt;The options contracts implicit in those monthly cell phone contracts are analogous to the insurance pools.  If we could coordinate the month of the phone it would be the analogous to a hurricane or a plague, at least from the point of view of the phone company.&lt;/p&gt;
&lt;p&gt;That scenario has been playing out with the internet service providers, at least for the incompetent ones.  For example Comcast sells me a package with certain assurances about what bandwidth I get into the Internet.  Unsurprisingly the consumption patterns of their customers is highly skewed, and I’m one of the higher users since this site runs over that connection.  Inspite of 20 plus years of history showing that Internet consumption grows extremely fast and quickly grows to fill the pipe provided Comcast was suprised when more users actually exercised the option they had bought.  It is not relevant what these users are doing with the bandwidth (P2P, video, voice over IP, spam) because if it hadn’t been one of those it would have been something else.&lt;/p&gt;
&lt;p&gt;This last example, the ISP’s problems, is not actually an example of pricing design in the face of a highly skewed distribution.  It just looks like one at first blush.  The real problem the ISPs face is the rapidly rising tide of usage.  They thought they had a slower growing usage situation, something more like what is seen with the cell phones, but they were wrong.  When they discovered some of the users were consuming all the bandwidth they thought they had purchased the ISPs presumed those users were little trouble makers rather than early movers.   But that’s a mistake, soon everybody will consume all the bandwidth they can get.&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 14:18:53 +0000</pubDate>
</item>
<item>
	<title>Maria Odea Ching: Generating RSS Feeds with Rome</title>
	<guid isPermaLink="true">http://blogs.exist.com/oching/2008/08/26/generating-rss-feeds-with-rome/</guid>
	<link>http://blogs.exist.com/oching/2008/08/26/generating-rss-feeds-with-rome/</link>
	<description>&lt;p&gt;Want to have RSS feeds in your Java application? Try Rome..&lt;/p&gt;
&lt;p&gt;&quot;&lt;a href=&quot;https://rome.dev.java.net/&quot; title=&quot;Rome&quot;&gt;Rome&lt;/a&gt; is an open source library for generating, parsing and manipulating RSS and Atom feeds. It supports different RSS and Atom feed formats such as Atom 0.3, and Atom 1.0, RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0 and RSS 2.0.&quot;&lt;/p&gt;
&lt;p&gt;A couple months back, I got to use the Rome library to implement RSS in &lt;a href=&quot;http://archiva.apache.org/&quot; title=&quot;Archiva&quot;&gt;Archiva&lt;/a&gt;. What I liked about Rome is how it’s so easy to understand and use. To generate an RSS feed, you basically just need to be familiar with these three classes: SyndFeed, SyndEntry and SyndContent. These three are Java interfaces with the following concrete implementations: SyndFeedImpl, SyndEntryImpl and SyndContentImpl respectively. Here’s a short example on how you can generate a RSS 2.0 feed:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;SyndFeed feed = new SyndFeedImpl();            // create the feed&lt;br /&gt;
Date publishDate = new Date( System.currentTimeMillis() );&lt;/p&gt;
&lt;p&gt;
feed.setTitle( &quot;Techblog.ph RSS Feeds&quot; );&lt;br /&gt;
feed.setDescription( &quot;RSS feeds of blog entries from Techblog.ph&quot; );&lt;br /&gt;
feed.setLanguage( &quot;en-us&quot; );&lt;br /&gt;
feed.setPublishedDate( publishDate );&lt;br /&gt;
feed.setFeedType( &quot;rss_2.0&quot; );          // set the type of your feed&lt;/p&gt;
&lt;p&gt;List&amp;lt;SyndEntry&amp;gt; entries = new ArrayList&amp;lt;SyndEntry&amp;gt;();&lt;/p&gt;
&lt;p&gt;SyndEntry entry = new SyndEntryImpl();           // create a feed entry&lt;br /&gt;
entry.setTitle( &quot;Generating RSS Feeds with Rome&quot; );&lt;br /&gt;
entry.setPublishedDate( publishDate );&lt;/p&gt;
&lt;p&gt;SyndContent content = new SyndContentImpl();         // create the content of your entry&lt;br /&gt;
content.setType( &quot;text/plain&quot; );&lt;br /&gt;
content.setValue( &quot;Want to have RSS feeds in your Java application? Try Rome…..&quot; );&lt;/p&gt;
&lt;p&gt;entry.setDescription( content );&lt;br /&gt;
entries.add( entry );&lt;br /&gt;
feed.setEntries( entries );              // you can add multiple entries in your feed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For the published date, make sure that you update it whenever you have a new entry and publish the feed so that the reader knows there were changes/updates in your feed.&lt;/p&gt;
&lt;p&gt;Now, to publish your feed.. you can write it into a file (example, write it to rss.xml) which the feed reader checks for updates or you can generate the feed by request (like how it is done in Archiva). If you are publishing your feeds by writing it on a file, you might need to read the file into a SyndFeed before adding new entries as shown below:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;SyndFeedInput input = new SyndFeedInput();&lt;br /&gt;
SyndFeed  feed = input.build( new XmlReader( outputFile ) );&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To learn more about the Rome library, check out the &lt;a href=&quot;https://rome.dev.java.net/apidocs/1_0/overview-summary.html&quot;&gt;Rome API&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 12:46:17 +0000</pubDate>
</item>
<item>
	<title>Dave Johnson: Another vote for RESTful JSF</title>
	<guid isPermaLink="true">http://rollerweblogger.org/roller/entry/another_vote_for_restful_jsf</guid>
	<link>http://rollerweblogger.org/roller/entry/another_vote_for_restful_jsf</link>
	<description>&lt;p&gt;From the Seam Framework team's wiki page on &lt;a href=&quot;http://seamframework.org/Documentation/JSF2&quot;&gt;JSF2 major issues&lt;/a&gt;:

&lt;/p&gt;&lt;blockquote&gt;
The JSF2 expert group should work closely with the JSR 311 expert group to define overlapping integration points (unified configuration) and programming models, so that a JSF implementation can work seamlessly with a JAX-RS implementation. For example, a @Path annotated POJO should work as a JSF backing bean without any additional configuration. A JSF application programmer should be able to expose RESTful remote APIs easily. 
&lt;/blockquote&gt;

&lt;p&gt;Right on.&lt;/p&gt;

&lt;p&gt;Via &lt;a href=&quot;http://raibledesigns.com/rd/entry/what_s_wrong_with_jsf&quot;&gt;Matt Raible&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 12:27:33 +0000</pubDate>
</item>
<item>
	<title>Jeremy Quinn: Safari versus Firefox</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/FiveOne/~3/375122745/safari-versus-firefox.html</guid>
	<link>http://feeds.feedburner.com/~r/FiveOne/~3/375122745/safari-versus-firefox.html</link>
	<description>&lt;a href=&quot;http://www.apple.com/safari/&quot;&gt;Safari&lt;/a&gt; is my every-day browser, it just gets better and better.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.firefoxmozilla3.com/&quot;&gt;Firefox&lt;/a&gt; is the browser I use for two specific tasks:&lt;br /&gt;&lt;br /&gt;1. I prefer to use Firefox for my daily &lt;a href=&quot;http://www.google.com/reader/view/&quot;&gt;Google Reader&lt;/a&gt; session, because it is so easy to turn off advertising. I would not need to do this if adverts in article I read were not so extremely obtrusive. I find it much harder to read when the text is surrounded by strobing adverts for products I have no interest in. So I just turn them off. Sorry for the publishers who need the income but the advertisers are doing you a disservice.&lt;br /&gt;&lt;br /&gt;2. I use Firefox for debugging Ajax web applications, using the truely excellent &lt;a href=&quot;http://getfirebug.com/&quot;&gt;FireBug&lt;/a&gt;. &lt;a href=&quot;http://getfirebug.com/lite.html&quot;&gt;Firebug Lite&lt;/a&gt; runs in Safari, and it is an incredible acheivement, but it does not hold a torch to the real thing.&lt;br /&gt;&lt;br /&gt;Firefox has lots of annoying niggles. The two that I find the worst are:&lt;br /&gt;No obvious access to the system dictionary or spell checker.&lt;br /&gt;Uses option instead of command as the meta-key to open a search or link in a new tab.&lt;br /&gt;&lt;br /&gt;(As I said, I am used to Safari)&lt;br /&gt;&lt;br /&gt;Anyway, it looks like some of my habits are about to change.&lt;br /&gt;I just downloaded the latest &lt;a href=&quot;http://nightly.webkit.org/&quot;&gt;nightly build&lt;/a&gt; of WebKit and it blew me away.&lt;br /&gt;&lt;br /&gt;Webkit has something very similar to FireBug built into it now, I have not used it heavily yet, but what I have seen looks really promising!!&lt;br /&gt;&lt;br /&gt;FireBug can give you some incredibly unuseful error messages sometimes, maybe WebKit will be better.&lt;br /&gt;&lt;br /&gt;If you write and debug web applications for a living, I heartily recommend you try out a WebKit nightly, or if not, wait for Safari 4 which has recently been seeded to Apple developers.</description>
	<pubDate>Tue, 26 Aug 2008 10:45:45 +0000</pubDate>
</item>
<item>
	<title>Adrian Sutton: java.net.URL Timeouts</title>
	<guid isPermaLink="true">http://www.symphonious.net/2008/08/26/url-timeouts/</guid>
	<link>http://www.symphonious.net/2008/08/26/url-timeouts/</link>
	<description>&lt;p&gt;
       &lt;a href=&quot;http://bluxte.net/blog/2008-08/25-27-10.html&quot;&gt;Sylvain Wallez&lt;/a&gt;:
    &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
      If your application uses &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html&quot;&gt;java.net.URL&lt;/a&gt;, and chances it does are very high, and you are using Sun's JVM (since 1.4.2), you should set the &lt;code&gt;sun.net.client.defaultConnectTimeout&lt;/code&gt; and &lt;code&gt;sun.net.client.defaultReadTimeout&lt;/code&gt; &lt;a href=&quot;http://java.sun.com/javase/6/docs/technotes/guides/net/properties.html&quot;&gt;system properties&lt;/a&gt; to a reasonable value. Otherwise, if a remote site hangs, your application or server will also hang.
    &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;
       Useful to know…
    &lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 10:10:32 +0000</pubDate>
</item>
<item>
	<title>Adrian Sutton: MathML in Web Pages Followup</title>
	<guid isPermaLink="true">http://www.symphonious.net/2008/08/27/mathml-in-web-pages-followup/</guid>
	<link>http://www.symphonious.net/2008/08/27/mathml-in-web-pages-followup/</link>
	<description>&lt;p&gt;
       For those who are interested, I’ve put together the collection of links that I found on &lt;a href=&quot;http://liveworks.ephox.com/2008/08/26/rendering-mathml-in-browsers/&quot;&gt;getting MathML to render in browsers&lt;/a&gt; on LiveWorks! I’m a little unsure about the status of Safari and Opera so if anyone familiar with MathML in those browser could provide any info that would be greatly appreciated.
    &lt;/p&gt;
&lt;p&gt;
       Also, as a bonus tip that I’ve picked up while researching XHTML modes in browsers, if you save a file with a .xhtml extension (or .xhtm or even .xht I think) browsers will actually use their XML parser to read and render the file. Much simpler than reconfiguring your web server to send the right mime type if you’re just testing stuff. Web servers with up to date extension to mime type mappings will also serve the file as application/xhtml+xml which is handy if you are serving static files too.
    &lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 09:32:24 +0000</pubDate>
</item>
<item>
	<title>Diwaker Gupta: My first “book” is published!</title>
	<guid isPermaLink="true">http://floatingsun.net/2008/08/25/my-first-book-is-published</guid>
	<link>http://floatingsun.net/2008/08/25/my-first-book-is-published</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;dokuwiki&quot;&gt;
&lt;p&gt;The &lt;a href=&quot;http://floatingsun.net/articles/apping-for-dummies&quot; class=&quot;urlextern&quot; rel=&quot;nofollow&quot; title=&quot;http://floatingsun.net/articles/apping-for-dummies&quot;&gt;Apping for Dummies&lt;/a&gt; article that I wrote several years ago has remained one of the most visited articles on my website and over the years many people have told me that they found the article useful. I'm happy to announce that a much updated and enhanced version of the article is now &lt;a href=&quot;http://pothi.com/pothi/book/diwaker-gupta-applying-american-graduate-schools-engineering-and-fine-arts&quot; class=&quot;urlextern&quot; rel=&quot;nofollow&quot; title=&quot;http://pothi.com/pothi/book/diwaker-gupta-applying-american-graduate-schools-engineering-and-fine-arts&quot;&gt;available as a small handbook&lt;/a&gt; over at &lt;a href=&quot;http://pothi.com&quot; class=&quot;urlextern&quot; rel=&quot;nofollow&quot; title=&quot;http://pothi.com&quot;&gt;Pothi.com&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://floatingsun.net/wordpress/wp-content/uploads/2008/08/front.jpg&quot; class=&quot;media&quot; rel=&quot;nofollow&quot; title=&quot;http://floatingsun.net/wordpress/wp-content/uploads/2008/08/front.jpg&quot;&gt;&lt;img src=&quot;http://floatingsun.net/wordpress/wp-content/plugins/wp-dokuwiki/lib/exe/fetch.php?w=&amp;amp;h=&amp;amp;cache=cache&amp;amp;media=http%3A%2F%2Ffloatingsun.net%2Fwordpress%2Fwp-content%2Fuploads%2F2008%2F08%2Ffront-212x300.jpg&quot; alt=&quot;floatingsun.net_wordpress_wp-content_uploads_2008_08_front-212x300.jpg&quot; class=&quot;media&quot; title=&quot;floatingsun.net_wordpress_wp-content_uploads_2008_08_front-212x300.jpg&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I've always thought about writing a book, so this is definitely very exciting for me. Even though it is not really a full-fledged “book”, it is a start nonetheless. The handbook is priced at &lt;strong&gt;Rs. 99&lt;/strong&gt; (excluding shipping). So if you or any one you know is applying for graduate school in the US, specially in engineering and fine arts, do check it out. You can &lt;a href=&quot;http://pothi.com/pothi/preview?pFile=132&quot; class=&quot;urlextern&quot; rel=&quot;nofollow&quot; title=&quot;http://pothi.com/pothi/preview?pFile=132&quot;&gt;preview the first ten pages&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Note that the article is (and will always be) still available. Of course the book has a lot of extra (and more up to date) information that is not there in the article. The article is also fairly narrow in its scope – it was basically written for Computer Science students at the IITs. The book, however, is much broader – it should be useful to applicants in engineering &lt;em&gt;and&lt;/em&gt; &lt;strong&gt;fine arts&lt;/strong&gt;. As far as I know there is hardly any published information out there for graduate applicants in fine arts, so I really hope that this handbook will be of some use to the budding artists in India.
&lt;/p&gt;
&lt;p&gt;
This whole thing is very much an experiment for me. At some point I might even make the handbook available online as a (paid or unpaid) eBook, but for now you have to order your copy from Pothi.com.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
Similar Posts:&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://floatingsun.net/2006/03/03/women-in-science&quot; rel=&quot;bookmark&quot; title=&quot;March 3rd, 2006&quot;&gt;Women in Science&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://floatingsun.net/2008/01/11/new-mapreduce-article-in-cacm&quot; rel=&quot;bookmark&quot; title=&quot;January 11th, 2008&quot;&gt;New MapReduce article in CACM&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://floatingsun.net/2006/02/08/the-power-of-procrastrination&quot; rel=&quot;bookmark&quot; title=&quot;February 8th, 2006&quot;&gt;The Power of Procrastrination&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://floatingsun.net/2006/04/06/cseucsd-climbs-steadily&quot; rel=&quot;bookmark&quot; title=&quot;April 6th, 2006&quot;&gt;CSE@UCSD climbs steadily&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://floatingsun.net/2006/02/18/iits-decide-to-almost-double-intake-open-new-campuses&quot; rel=&quot;bookmark&quot; title=&quot;February 18th, 2006&quot;&gt;IITs decide to ‘almost double’ intake, open new campuses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Tue, 26 Aug 2008 06:30:22 +0000</pubDate>
</item>
<item>
	<title>Dave Johnson: Social Roller</title>
	<guid isPermaLink="true">http://rollerweblogger.org/roller/entry/social_roller</guid>
	<link>http://rollerweblogger.org/roller/entry/social_roller</link>
	<description>&lt;img src=&quot;http://rollerweblogger.org/roller/resource/socialroller-ss.jpg&quot; vspace=&quot;15px&quot; hspace=&quot;15px&quot; align=&quot;right&quot; title=&quot;SocialSite - Roller demo screenshot from JavaOne 2008&quot; /&gt;

&lt;p&gt;We demonstrated the &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; widgets in &lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; at JavaOne, but we didn't show much other than just the basic widgets. We modified a Roller front-page theme to include a people directory, added a profile page for each user and slapped the widgets on the page. It was pretty rough, as you can see on the right, like our other SocialSite demo vehicles.&lt;/p&gt;

&lt;p&gt;This week, I'm working to put together a much better demonstration, something useful enough to deploy to our internal blog site at Sun. Since I have limited time and I really need to get back to working on the SocialSite widgets and web services, I've been thinking about minimum set of features needed to add some value. Here's what I think we need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Landing page&lt;/b&gt;: shows activities of your friends and groups, your inbox of social requests and place for you to update your status. This could be added to Roller's Main Menu page or to pages of the Front Page blog, which is my preferred option.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Personal profile page&lt;/b&gt;: shows your mugshot and the subset of your profile information that the viewer is allowed to see. Shows your activities and the OpenSocial gadgets you have installed. This could be done in the pages of each user's blog, which would give folks complete control of profile layout via page templates. Or I could be done in the pages of the Front Page blog.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Activity per entry or comment&lt;/b&gt;: whenever you publish a weblog post, or comment on one, an entry will be added to your activity feed so that your friends can see what you're doing. This will be implemented as a feature of a Roller-specific OpenSocial Gadget.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Protected entries&lt;/b&gt;: ability to publish blog entries that are visible only to your friends via the Roller Gadget.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the above items should be pretty easy with the SocialSite widgets, but I'm sure I'll run into a snag or two at least. I always do. I'll post again next week and let you know how far I got.&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 03:42:27 +0000</pubDate>
</item>
<item>
	<title>Adam Jack: Welcome Hummers of 2008</title>
	<guid isPermaLink="true">http://neukadye.com/blog/2008/04/14/welcome-hummers-of-2008/</guid>
	<link>http://neukadye.com/blog/2008/04/14/welcome-hummers-of-2008/</link>
	<description>&lt;p&gt;The hummers (scouts at least) are back. April 14th (one day before their normal April 15th arrival, but hey — so they don’t respect leap years, that’s allowed. &lt;img src=&quot;http://neukadye.com/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; )Make sure you don’t miss out on the pleasure of these feisty critters by &lt;a href=&quot;http://hummingbirds.net/feeders.html#cleaning&quot;&gt;cleaning your feeder&lt;/a&gt;, ready for the  coming season.This snap was taken this morning in Coal Creek Canyon. A male broad-tailed…&lt;a href=&quot;http://picasaweb.google.com/adam.jack/WildObs&quot;&gt;&lt;img src=&quot;http://lh4.ggpht.com/adam.jack/SAOFokVOjAI/AAAAAAAABF0/c5-dllWIDN4/Hummer2008.jpg?imgmax=576&quot; alt=&quot;Hummingbird (Broadtail)&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 26 Aug 2008 03:13:59 +0000</pubDate>
</item>
<item>
	<title>Ben Hyde: Bluetooth PAN</title>
	<guid isPermaLink="true">http://enthusiasm.cozy.org/archives/2008/08/bluetooth-pan</guid>
	<link>http://enthusiasm.cozy.org/archives/2008/08/bluetooth-pan</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://enthusiasm.cozy.org/wp-content/uploads/2008/08/borgpan.jpg&quot;&gt;&lt;img src=&quot;http://enthusiasm.cozy.org/wp-content/uploads/2008/08/borgpan.jpg&quot; style=&quot;float: right;&quot; title=&quot;borgpan&quot; height=&quot;191&quot; width=&quot;177&quot; alt=&quot;&quot; class=&quot;alignright size-full wp-image-1745&quot; /&gt;&lt;/a&gt;WANs are wide area networks, like the internet, and LANs are, local area networks, like the wifi in your house.  PANs, personal area networks, are - i thought - a joke.  Presumably each Borg has a PAN so his headset, pda, cell phone, and ankle bracelet can talk to each other and when he sits down in his car the engine, radio, gps all join in.&lt;/p&gt;
&lt;p&gt;So imagine my surprise when this weekend I found I was creating a PAN using Bluetooth.  Bluetooth is a standard full of promise which seems to specialize in delivering a frustration.  Two things lead to that frustration.  First there is lots of bad hardware.  Chips that don’t work very well, headsets that sound awful for example or software stacks that are buggy.  Second the standard has volumes of optional bits and peices; so usually it turns out the two devices you want to talk to each other don’t happen to support the necessary bits.  Sometimes that’s intentional, for example you can’t use your phone as a handset to talk to your computer since that would let your route around the cell phone company using voice IP.  The structure of the Bluetooth standards with all those optional bits and peices is typical of telco standards.&lt;/p&gt;
&lt;p&gt;The fun I had this weekend was discovering that this phone I got and some of my Macs support Bluetooth PAN, one of those optional bits.  Using this it was trivial to let my Mac talk connect to the internet connection that the phone provides.  One, two, three: Do the usual bluetooth pairing, select connect to network from the bluetooth menu, oh … there is no step three.&lt;/p&gt;
&lt;p&gt;In theory Bluetooth PAN supports multiple devices sharing the internet connection, but apparently my phone doesn’t do that.&lt;/p&gt;
&lt;p&gt;This worked trivially on a MacBook Pro running Leopard.  But sadly it does not work on the MacBook Air - which in a typical Bluetooth user experiance - &lt;a href=&quot;http://discussions.apple.com/thread.jspa?messageID=7391442&quot;&gt;pretends to support Bluetooth PAN but it is unusable slow&lt;/a&gt;.  So for that machine I’m forced to switch back to more traditional Bluetooth DUN (dialup networking - a simulation of the dialup modems of my childhood).&lt;/p&gt;
&lt;p&gt;I got into all this because I’ve been wanting to try AT&amp;amp;T’s $20 a month “unlimited” prepaid internet.  Right now you can buy a Z750a for $60 from their prepaid store - and if you poke around you can find online sites that will send you a rebate (after 90 days) of $25 or $30.  If you pop in $100 then the phone is good for year (buy from &lt;a href=&quot;http://www.retailmenot.com/view/callingmart.com&quot;&gt;CallingMart with a coupon&lt;/a&gt;). I don’t intend to make any phone calls so that’s five months of internet access.   The Z750a supports Bluetooth PAN, DUN, and it can be a remote control for you Mac (I recommend declining all the options you don’t need).  If you buy the USB cable it’s a bit faster; but the G3 HSDPA over bluetooth is pretty nice as it is.  The USB cable appears to charge the phone as well.&lt;/p&gt;
&lt;p&gt;This seems like a great solution for getting pretty good broadband into the home at a reasonable price.  A mac can share a connection to WIFI for example.&lt;/p&gt;
&lt;p&gt;If you find your reduced to using BT DUN rather than PAN then you need to setup the modem’s dialing setup … I used this setup: dial: *99***1#, Username: WAP@CINGULARGPRS.COM, Password: CINGULAR1, APN: &amp;lt;leave this blank!&amp;gt;, CID: 1.  It picked the right modem dialing script automaticlly.&lt;/p&gt;
&lt;p&gt;I’m enjoying having broadband pretty much everywhere I go.  The phone just sits in my bag.   ATT isn’t everywhere (&lt;a href=&quot;http://www.wireless.att.com/coverageviewer/&quot;&gt;click on data&lt;/a&gt;).&lt;/p&gt;</description>
	<pubDate>Mon, 25 Aug 2008 23:09:21 +0000</pubDate>
</item>
<item>
	<title>Deepal Jayasinghe: Apache Axis2 1.4.1 Released</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/08/apache-axis2-141-released.html</guid>
	<link>http://blogs.deepal.org/2008/08/apache-axis2-141-released.html</link>
	<description>&lt;pre wrap=&quot;&quot;&gt;Axis2 team is proud to announce the release of Apache Axis2 version&lt;br /&gt;1.4.1. Apache Axis2 1.4.1 fixes a security vulnerability present in&lt;br /&gt;Apache Axis2 1.4 policy processing.&lt;br /&gt;&lt;br /&gt;Downloads are available at:&lt;br /&gt;&lt;a href=&quot;http://ws.apache.org/axis2/download.cgi&quot; class=&quot;moz-txt-link-freetext&quot;&gt;http://ws.apache.org/axis2/download.cgi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Maven2 main repository has the latest jars as well.&lt;br /&gt;&lt;br /&gt;Apache Axis2 is a complete re-design and re-write of the widely used&lt;br /&gt;Apache Axis engine and is a more efficient, more&lt;br /&gt;scalable, more modular and more XML-oriented Web services framework. It&lt;br /&gt;is carefully designed to support the easy&lt;br /&gt;addition of plug-in &quot;modules&quot; that extend its functionality for features&lt;br /&gt;such as security and reliability.&lt;br /&gt;&lt;br /&gt;Known Issues and Limitations in 1.4.1 Release:&lt;br /&gt;- - Please see JIRA for the current status of bugs&lt;br /&gt;&lt;br /&gt;We welcome any and all feedback at:&lt;br /&gt;- - &lt;a href=&quot;mailto:axis-user@ws.apache.org&quot; class=&quot;moz-txt-link-abbreviated&quot;&gt;axis-user@ws.apache.org&lt;/a&gt; (please include &quot;[axis2]&quot; in the subject,&lt;br /&gt;please subscribe first)&lt;br /&gt;- - &lt;a href=&quot;mailto:axis-dev@ws.apache.org&quot; class=&quot;moz-txt-link-abbreviated&quot;&gt;axis-dev@ws.apache.org&lt;/a&gt; (please include &quot;[axis2]&quot; in the subject,&lt;br /&gt;please subscribe first)&lt;br /&gt;- - &lt;a href=&quot;http://issues.apache.org/jira/browse/AXIS2&quot; class=&quot;moz-txt-link-freetext&quot;&gt;http://issues.apache.org/jira/browse/AXIS2&lt;/a&gt;&lt;/pre&gt;</description>
	<pubDate>Mon, 25 Aug 2008 21:50:23 +0000</pubDate>
</item>
<item>
	<title>Jon Scott Stevens: I want one of these</title>
	<guid isPermaLink="true">http://feeds.lookfirst.com/~r/KickMeInTheNuts/~3/374537891/i-want-one-of-these.html</guid>
	<link>http://feeds.lookfirst.com/~r/KickMeInTheNuts/~3/374537891/i-want-one-of-these.html</link>
	<description>&lt;a href=&quot;http://3.bp.blogspot.com/_9vRjCsjUEXs/SLMHtuhjT4I/AAAAAAAAAKU/MujI25STlXM/s1600-h/greenland_08.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_9vRjCsjUEXs/SLMHtuhjT4I/AAAAAAAAAKU/MujI25STlXM/s400/greenland_08.jpg&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5238539273726283650&quot; /&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.lookfirst.com/~a/KickMeInTheNuts?a=K6R54l&quot;&gt;&lt;img src=&quot;http://feeds.lookfirst.com/~a/KickMeInTheNuts?i=K6R54l&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.lookfirst.com/~r/KickMeInTheNuts/~4/374537891&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 25 Aug 2008 19:28:17 +0000</pubDate>
</item>
<item>
	<title>Sylvain Wallez: Don't forget to set java.net.URL default timeouts!</title>
	<guid isPermaLink="true">http://bluxte.net/blog/2008-08/25-27-10.html</guid>
	<link>http://bluxte.net/blog/2008-08/25-27-10.html</link>
	<description>&lt;p&gt;If your Java application uses &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html&quot;&gt;java.net.URL&lt;/a&gt;, and chances it does are very high, and you are using Sun's JVM (since 1.4.2), you should set the &lt;code&gt;sun.net.client.defaultConnectTimeout&lt;/code&gt; and &lt;code&gt;sun.net.client.defaultReadTimeout&lt;/code&gt; &lt;a href=&quot;http://java.sun.com/javase/6/docs/technotes/guides/net/properties.html&quot;&gt;system properties&lt;/a&gt; to a reasonable value. Otherwise, if a remote site hangs, your application or server will also hang.&lt;/p&gt;

&lt;p&gt;This is what happened to &lt;a href=&quot;http://www.goojet.com/&quot;&gt;Goojet&lt;/a&gt; this morning: because of a problem at our &lt;acronym title=&quot;Internet Service Provider&quot;&gt;ISP&lt;/acronym&gt;, the TCP connections to some remote websites were just stuck, without succeeding nor failing. Our backend quickly became unresponsive, all threads waiting for remote connections.&lt;/p&gt;

&lt;p&gt;We use &lt;a href=&quot;http://hc.apache.org/&quot;&gt;HttpClient&lt;/a&gt; with timeouts in our own code, but the culprits were some third-party libraries that use java.net.URL for http access without allowing us to set timeouts.&lt;/p&gt;

&lt;p&gt;Setting the default timeouts at the JVM level solved the issue, and our ISP solved its own issues a couple of hours later. Situation back to normal!&lt;/p&gt;</description>
	<pubDate>Mon, 25 Aug 2008 17:27:10 +0000</pubDate>
</item>
<item>
	<title>Ugo Cei: Lonely Planet Cover Contest</title>
	<guid isPermaLink="true">http://agylen.com/2008/08/25/lonely-planet-cover-contest/</guid>
	<link>http://agylen.com/2008/08/25/lonely-planet-cover-contest/</link>
	<description>&lt;p&gt;Would you like to have one of your pictures on the cover of one of Lonely Planet’s “Encounter” guides? If you have pictures of London, Paris, Barcelona or Istanbul, you can go to the &lt;a href=&quot;http://www.pikeo.com/event/lonely_planet_competition/photo_competition.jsp&quot;&gt;competition website&lt;/a&gt; and enter your best pictures in the contest. Technically, this means subscribing to Pikeo, uploading your pictures and adding up to 5 of them to the appropriate group.&lt;/p&gt;
&lt;p&gt;To demonstrate how grateful you are that I notified this great opportunity to you, you can browse &lt;a href=&quot;http://tinyurl.com/58xwna&quot;&gt;my London album&lt;/a&gt; or &lt;a href=&quot;http://tinyurl.com/5kx8nm&quot;&gt;my Istanbul album&lt;/a&gt;: the more views a picture gets, the larger its chances of winning a runner-up prize, even if it doesn’t get on a guide cover.&lt;/p&gt;</description>
	<pubDate>Mon, 25 Aug 2008 09:04:39 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: JAAS in OSGi</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2008/05/jaas-in-osgi.html</guid>
	<link>http://gnodet.blogspot.com/2008/05/jaas-in-osgi.html</link>
	<description>I've working on implementing the security framework for ServiceMix 4.  ServiceMix 3 used JAAS for the authentication part, and it also makes sense to use it in ServiceMix 4 for several reasons: reuse of existing login modules, integration with the JMX and the console security which are already based on JAAS. &lt;br /&gt;However JAAS is not very OSGi friendly (well, most of the JEE specifications are not, and I'll talk about the others in another post), mostly because is makes some strong assumptions upon the thread context classloader, and this, mainly on the client code.  This means the client that uses the JAAS api to authenticate has to have all the login modules available in its thread context classloader.  This is usually not the case in OSGi.&lt;br /&gt;So the solution is to use a proxy login module that will be available to all bundles (by using the boot framework delegation package).  This proxy login module can use some OSGi properties on the login module configuration to determine the actual class to use and the bundle to load it from.&lt;br /&gt;Using a simple XML schema for Spring, you can deploy a JAAS realm very easily:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;jaas:config id=&quot;realm&quot; xmlns:jaas=&quot;http://servicemix.apache.org/jaas&quot;&amp;gt;&lt;br /&gt;    &amp;lt;jaas:module className=&quot;org.apache.servicemix.kernel.jaas.config.SimpleLoginModule&quot; flags=&quot;required&quot;&amp;gt;&lt;br /&gt;        key=value&lt;br /&gt;    &amp;lt;/jaas:module&amp;gt;&lt;br /&gt;&amp;lt;/jaas:config&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will register a service in OSGi that the OSGi specific Configuration for JAAS will discover and make it available for clients.&lt;br /&gt;&lt;br /&gt;Find more informations on the ServiceMix Kernel &lt;a href=&quot;http://cwiki.apache.org/SMX4KNL/45-security-framework.html&quot;&gt;JAAS doc&lt;/a&gt;.</description>
	<pubDate>Mon, 25 Aug 2008 08:44:21 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: Loose coupling in JBI</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2007/06/loose-coupling-in-jbi.html</guid>
	<link>http://gnodet.blogspot.com/2007/06/loose-coupling-in-jbi.html</link>
	<description>Loose coupling is a feature that can be easily achieved in JBI but which is sometimes not well understood by newbies in the JBI world.&lt;br /&gt;&lt;br /&gt;In JBI, services are exposed inside the bus by JBI components when you deploy a given service onto it.  These components can be Service Engines (contain business logic)  or Binding Components (handling a specific protocol).  The distinction is the key for loose coupling: the service itself it decoupled from the protocols used to access it.  This is true for all services accessed from inside the JBI bus, be it internal to the bus or external to it.&lt;br /&gt;&lt;br /&gt;Let's take an example.  You need to write a BPEL process and expose it over SOAP/HTTP, and this process will consume several other services.  These services can be inside the JBI bus, accessible via SOAP/HTTP or plain JMS.  The important point is that the BPEL process has no knowledge of the protocol and location of these services.  How does it work ?&lt;br /&gt;&lt;br /&gt;The key is the WSDL.  A WSDL can be split into two parts: the abstract and the concrete model.  The abstract model contains the interface (Port) definition along with the messages and xml structures definition.  The concrete part contains the binding (tying the service to a particular protocol) and service definition (location and binding for a given service).  When JBI components talk together, they only use the abstract WSDL definition which does not contain any protocol or location information.  The NMR will select a JBI endpoint based on some informations (name of the interface, name of the service) and will send the JBI exchange to the selected endpoint.  If the endpoint has been activated by a Service Engine, it means that the service is hosted inside the JBI bus, and not protocol transformation will be performed.  However, if the endpoint is activated from a Binding Component, the endpoint will act as a proxy for an external service provider: the binding component will send a request to the service in the protocol it handles to the known location, but the consumer (the BPEL process) has no knowledge of the exact protocol and location: the only things it needs is the contract (the abstract WSDL).&lt;br /&gt;&lt;br /&gt;Take a look at &lt;a href=&quot;http://incubator.apache.org/servicemix/&quot;&gt;ServiceMix &lt;/a&gt;and it's &lt;a href=&quot;http://incubator.apache.org/servicemix/5-jbi.html&quot;&gt;User's Guide&lt;/a&gt;.</description>
	<pubDate>Mon, 25 Aug 2008 08:43:57 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: Accessing databases in servicemix-drools</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2007/06/accessing-databases-in-servicemix.html</guid>
	<link>http://gnodet.blogspot.com/2007/06/accessing-databases-in-servicemix.html</link>
	<description>&lt;a href=&quot;http://incubator.apache.org/servicemix/&quot;&gt;ServiceMix&lt;/a&gt; provides a Service Engine for &lt;a href=&quot;http://labs.jboss.com/jbossrules/&quot;&gt;Drools&lt;/a&gt;, the famous Rules Engine.&lt;br /&gt;&lt;br /&gt;People often want to retrieve data from the rules and such data is usually stored in a database.  Previously there was no easy way to configure a DataSource and inject it in the rules definitions.  This is a small enhancement that I've just written and that will be included in next major release.&lt;br /&gt;&lt;br /&gt;So let's say you write your database access code in a simple helper object:&lt;br /&gt;&lt;pre style=&quot;border: 1px solid black; padding: 1em;&quot;&gt;import javax.sql.DataSource;&lt;br /&gt;import org.springframework.jdbc.core.JdbcTemplate;&lt;br /&gt;&lt;br /&gt;public class DbHelper {&lt;br /&gt;    private DataSource dataSource;&lt;br /&gt;    private JdbcTemplate jdbcTemplate;&lt;br /&gt;&lt;br /&gt;    public void setDataSource(DataSource dataSource) {&lt;br /&gt;      this.dataSource = dataSource;&lt;br /&gt;      this.jdbcTemplate = new JdbcTemplate(dataSource);&lt;br /&gt;      this.jdbcTemplate.afterPropertiesSet();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getSurname(String name) {&lt;br /&gt;        String surname = (String) this.jdbcTemplate&lt;br /&gt;          .queryForObject(&lt;br /&gt;              &quot;select surname from t_actor where name = ?&quot;, &lt;br /&gt;              new Object[]{name}, String.class);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Now, let's use it in our rule definition:&lt;br /&gt;&lt;pre style=&quot;border: 1px solid black; padding: 1em;&quot;&gt;import org.apache.servicemix.drools.model.Exchange;&lt;br /&gt;global org.apache.servicemix.drools.model.JbiHelper jbi;&lt;br /&gt;global DbHelper helper;&lt;br /&gt;&lt;br /&gt;rule Init&lt;br /&gt;    when&lt;br /&gt;        $me : Exchange()&lt;br /&gt;    then&lt;br /&gt;        String t = $me.getIn().getContent().getTextContent();&lt;br /&gt;        jbi.answer(&quot;&amp;lt;surname&amp;gt;&quot;&lt;br /&gt;            + helper.getSurname(t)&lt;br /&gt;            + &quot;&amp;lt;/surname&amp;gt;&quot;);&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;And the xbean.xml would look like:&lt;br /&gt;&lt;pre style=&quot;border: 1px solid black; padding: 1em;&quot;&gt;&amp;lt;drools:endpoint  service=&quot;test:service&quot;&lt;br /&gt;                  endpoint=&quot;endpoint&quot;&lt;br /&gt;                  ruleBaseResource=&quot;classpath:router.drl&quot;&lt;br /&gt;                  globals=&quot;#globals&quot; /&amp;gt;&lt;br /&gt;&amp;lt;util:map id=&quot;globals&quot;&amp;gt;&lt;br /&gt;  &amp;lt;entry key=&quot;helper&quot; value-ref=&quot;helper&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/util:map&amp;gt;&lt;br /&gt;&amp;lt;bean id=&quot;helper&quot; class=&quot;DbHelper&quot;&amp;gt;&lt;br /&gt;  &amp;lt;property name=&quot;dataSource&quot;&amp;gt;&lt;br /&gt;    &amp;lt;bean class=&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;&amp;gt;&lt;br /&gt;      &amp;lt;property name=&quot;jndiName&quot; value=&quot;java:myDataBase&quot; /&amp;gt; &lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;  &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;/pre&gt;&lt;br /&gt;This will make available the &lt;code&gt;helper&lt;/code&gt; bean to the rules while initializing it with a DataSource looked up from JNDI.&lt;br /&gt;&lt;br /&gt;Happy hacking !</description>
	<pubDate>Mon, 25 Aug 2008 08:43:40 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: Is JBI so bad?</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2008/07/ross-mason-cto-of-mulesource-recently.html</guid>
	<link>http://gnodet.blogspot.com/2008/07/ross-mason-cto-of-mulesource-recently.html</link>
	<description>Ross Mason, the CTO of MuleSource, recently started a &lt;a href=&quot;http://www.theserverside.com/tt/articles/article.tss?l=TheRoadtoJBI&quot; id=&quot;nh9e&quot; title=&quot;The Road to JBI&quot;&gt;discussion&lt;/a&gt; about JBI.&lt;br id=&quot;bjxb&quot; /&gt;&lt;br id=&quot;bjxb0&quot; /&gt;His first point is that JBI is no TCP/IP, meaning somehow that JBI is targeted at vendors and not at developers.  Well, I'm not sure about the TCP/IP thingy, but he's a bit right about JBI being targeted at vendors and not developers.  Why? If you have some knowledge about JBI, you know that there are multiple JBI components (bindings that handle a particular protocol such as HTML, JMS, etc... and engines that provides business logic such as a rules engine, a BPEL engine and so on).   The developer will mostly see those components, not the JBI APIs: if you work with a BPEL engine and write a process, you won't see the JBI APIs surface in the BPEL at all.  If you write a WSDL to define a SOAP/HTTP service, you won't really see JBI there either.  So, yes, at some point, he is right that JBI 1.0 hasn't focused on the developer, or I should say, the user.   Because if you need a custom component for your JBI container, you, as a developer, will need to dive into JBI and fully understand it.  At this point, if you don't use JBI, you'd have to dive into a proprietary set of APIs to write your component.  JBI aims to be mostly hidden for the users.&lt;br id=&quot;szh0&quot; /&gt;&lt;br id=&quot;szh00&quot; /&gt;His second point is about some of the restrictions in JBI 1.0, mainly the use of XML, WSDL and no support for streaming.  About XML, JBI has ways to convey binary data in non XML formats using attachments (don't you use attachments in your emails?).  About WSDL, this point seems a bit weird since MuleSource has a product named &lt;a href=&quot;http://mulesource.com/products/galaxy.php&quot; id=&quot;xvja&quot; title=&quot;Galaxy&quot;&gt;Galaxy&lt;/a&gt; which is a registry of services described by WSDLs.  Everyone knows WSDL is the standard for describing services.  Anyway, the JBI specification says each endpoint has to be described by a WSDL, however, since the early days of ServiceMix, WSDL has not been a requirement and you can deploy your endpoints without any WSDL at all.  With respect to data streaming, I'm not sure to understand the supposed flaw of JBI here: in the JBI world, a message contains an XML payload (which can be a stream, a DOM document or any kind of XML representation) and a set of attachments (which can also be streams).  Just leveraging these APIs, JBI components are able to transfer very large amount of data using streams only.&lt;br id=&quot;osip&quot; /&gt;&lt;br id=&quot;osip0&quot; /&gt;His third point is about component reuse in JBI.  We have users using ServiceMix components inside OpenESB and others using OpenESB components inside ServiceMix.  It's true that most of the JBI vendors offer their own set of components.  Let me ask the question: doesn't Mule come with its own set of transports? It would not make sense at all to distribute an ESB without any support for the most commonly used transports.  It does not mean that these components can not work together.&lt;br id=&quot;ljsm&quot; /&gt;            &lt;br id=&quot;vl0m&quot; /&gt;Last comes some points about the existing standards.  Since a long time, I don't think SCA should be viewed as a competitor to JBI.  For some reasons exposed above, JBI does not really target the end users, while SCA does.   However, SCA does not allow components to interoperate together.  Hence, those two standards are complementary, not competitors. &lt;br id=&quot;nih4&quot; /&gt;&lt;br id=&quot;nih40&quot; /&gt;All in all, I think JBI is a good specification.  It does not address all the possible use cases in the best way (I'm thinking about handling non XML data) and sometimes goes beyong what should have been required (on the packaging and deployment side), but the core messaging APIs are well defined, and given the success of ServiceMix, I'm far from thinking that JBI should be dismissed.&lt;br id=&quot;ou.5&quot; /&gt;</description>
	<pubDate>Mon, 25 Aug 2008 08:43:17 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: JBI and SCA (again)</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2008/04/jbi-and-sca-again.html</guid>
	<link>http://gnodet.blogspot.com/2008/04/jbi-and-sca-again.html</link>
	<description>I've just seen &lt;a href=&quot;http://www.infoq.com/news/2008/04/sca-java-ee&quot; id=&quot;h_mr&quot; title=&quot;Strengthening the Alliance Between Java EE and SCA&quot;&gt;this post&lt;/a&gt; saying:&lt;br /&gt;&lt;blockquote id=&quot;cpd5&quot;&gt;&lt;div style=&quot;margin-left: 40px;&quot; id=&quot;k:nr&quot;&gt;One of the major motivations for doing so is that currently, the Java community is still split between SCA and JBI. &lt;br /&gt; &lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Well, this is somewhat true, I can't really deny it, but it should not be that way.  JBI and SCA are not really competitors, even if they are usually seen that way.  The JBI specification explains how to create an ESB that allows pluggable components to be wired easily thus allowing vendor independant components to be created.  SCA defines a way to write composite applications in a clearly defined way that can be applied to different languages (though you can't really mix those, so you end up with one runtime per language you support).&lt;br /&gt;&lt;br /&gt;As a standard, SCA offers value, but I really think both could be supported in a single runtime like &lt;a href=&quot;http://open.iona.com/products/fuse-esb/&quot; id=&quot;zp7w&quot; title=&quot;FUSE ESB&quot;&gt;FUSE ESB&lt;/a&gt;.  We've discussed several times about supporting SCA on top of JBI in &lt;a href=&quot;http://servicemix.apache.org/&quot; id=&quot;fnzd&quot; title=&quot;ServiceMix&quot;&gt;ServiceMix&lt;/a&gt;, but I haven't heard much needs on that.  We are currently working hard on ServiceMix 4, based on OSGi and allowing lots of technologies to be plugged onto a single bus, including JBI, Camel, JAX-WS, EJB3, etc...  Supporting SCA would only be another profile.</description>
	<pubDate>Mon, 25 Aug 2008 08:43:04 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: Apache ServiceMix Kernel 1.0-m3</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2008/05/apache-servicemix-kernel-10-m3.html</guid>
	<link>http://gnodet.blogspot.com/2008/05/apache-servicemix-kernel-10-m3.html</link>
	<description>We've just released the &lt;a href=&quot;http://servicemix.apache.org/kernel/servicemix-kernel-10-m3.html&quot;&gt;third milestone&lt;/a&gt; of ServiceMix Kernel 1.0-m3.  This small OSGi based container is really nice, if you haven't had a look at it yet, go and &lt;a href=&quot;http://servicemix.apache.org/kernel/download.html&quot;&gt;grab it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It adds a bunch of cool new features.  For example you can run:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;osgi list | utils grep ServiceMix&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;or&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;log d | utils grep WARN&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you want to have a quick run at it, go and look at the &lt;a href=&quot;http://servicemix.apache.org/kernel/1-quick-start.html&quot;&gt;quick start guide&lt;/a&gt;.</description>
	<pubDate>Mon, 25 Aug 2008 08:42:38 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: ServiceMix 4 NMR on Equinox</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2008/05/servicemix-4-nmr-on-equinox.html</guid>
	<link>http://gnodet.blogspot.com/2008/05/servicemix-4-nmr-on-equinox.html</link>
	<description>I've done some experiments today to check that ServiceMix 4 NMR can be easily deployed on Equinox instead of Felix.  Have a look at this &lt;a href=&quot;http://cwiki.apache.org/SMX4NMR/4-installing-the-nmr-in-equinox.html&quot;&gt;wiki page&lt;/a&gt;.</description>
	<pubDate>Mon, 25 Aug 2008 08:42:20 +0000</pubDate>
</item>
<item>
	<title>Guillaume Nodet: Java EE specs in OSGi</title>
	<guid isPermaLink="true">http://gnodet.blogspot.com/2008/05/jee-specs-in-osgi.html</guid>
	<link>http://gnodet.blogspot.com/2008/05/jee-specs-in-osgi.html</link>
	<description>For ServiceMix 4, I've been working on making sure the Java EE specifications can be used in OSGi.  The first step was to release OSGi versions of the various specifications by just adding the needed manifest entries to make them usable in OSGi.  This was done inside the Geronimo project (on which I am a committer).  This means that since a few months, most of the Java EE specification jars are available as OSGi bundles (you can grab those from &lt;a href=&quot;http://repo1.maven.org/maven2/org/apache/geronimo/specs/&quot;&gt;maven 2 public repositories&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, this is not always sufficient.  Some of these specifications (mostly JAXB, SAAJ, JAX-WS and Stax) do not work well in OSGi.  The mean reason is that the implementation is discovered using different mechanisms by the API.  The most commonly used one is to find a file on the classpath in the &lt;code&gt;META-INF/services&lt;/code&gt; directory and find the main entry point class of the implementation. Unfortunately, to make this work in OSGi, the client bundle (the one using one of these APIs) has to have the required file in its classpath, which means the inability to use one provided by the runtime in which the bundle is deployed and that it can not be switched without changing and re-compiling the bundle.  Another way would be to add a Require-Bundle OSGi manifest so that the classpath of the implementation becomes part of the client bundle, but this also ties the client bundle to the implementation used.  &lt;br /&gt;&lt;br /&gt;The solution came to me after a chat with &lt;a href=&quot;http://www.dankulp.com/blog/&quot;&gt;Dan Kulp&lt;/a&gt;: an OSGi specific discovery mechanism can be easily plugged into these spec jars.  It consists in two small classes shared amongst these spec jars: an OSGi bundle &lt;a href=&quot;http://svn.apache.org/repos/asf/servicemix/smx4/specs/trunk/locator/src/main/java/org/apache/servicemix