<?xml version="1.0"?>
<rss version="2.0">
<channel>
	<title>Planet Webservices</title>
	<link>http://www.planetapache.org/</link>

	<language>en</language>


<item>
	<title>Sam Ruby: Minimalist Markup, now text/html Compatible</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/08/06/Minimalist-Markup-now-text-html-Compatible</guid>

	<description>&lt;p&gt;Bug &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=311366&quot;&gt;311366&lt;/a&gt; is resolved in Firefox 3.0.1.  It may, in fact, have been fixed earlier; but my initial testing was flawed.  Thanks go out to Anne van Kesteren and &lt;a href=&quot;http://lists.w3.org/Archives/Public/public-html/2008Aug/0218.html&quot;&gt;James Graham&lt;/a&gt; for spotting the problem that was preventing me from seeing that it was fixed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rails.intertwingly.net/blog/index.html&quot;&gt;Demonstration&lt;/a&gt; of an &lt;a href=&quot;http://intertwingly.net/blog/2008/06/24/Minimalist-Markup&quot;&gt;minimalist&lt;/a&gt; HTML5 page served as text/html.&lt;/p&gt;</description>

	<pubDate>Wed, 06 Aug 2008 19:23:45 +0000</pubDate>
</item>

<item>
	<title>Tom Jordahl: New Java AMF Client feature in BlazeDS</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TomJordahlsMusings/~3/357732869/new-java-amf-client-feature-in-blazeds.html</guid>

	<description>You may not have noticed, (what, you aren't subscribed to the &lt;a href=&quot;http://www.adobeforums.com/webx/.3c061bb9/&quot;&gt;BlazeDS commits forum&lt;/a&gt;?) but a few weeks ago Mete committed an enhancement that adds a Java AMF client API to the flex-messaging-core.jar file in BlazeDS.&lt;br /&gt;&lt;br /&gt;You can find a specification posted &lt;a href=&quot;http://opensource.adobe.com/wiki/display/blazeds/Java+AMF+Client&quot;&gt;here&lt;/a&gt; and its linked from the &lt;a href=&quot;http://opensource.adobe.com/wiki/display/blazeds/Developer+Documentation&quot;&gt;Developer Documentation&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt;What does this do?  Well, you can use this API to call (from Java) Flash Remoting end points in BlazeDS, LiveCycle Data Services, ColdFusion, PHP or whatever you have that supports AMF.   Which of course is a &lt;a href=&quot;http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf?version=1&quot;&gt;published specification&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This feature is available in any nightly build after 3.1.0.2602 or in the trunk nightly build.  Find those builds on the &lt;a href=&quot;http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+3&quot;&gt;BlazeDS build download page&lt;/a&gt;.&lt;img src=&quot;http://feeds.feedburner.com/~r/TomJordahlsMusings/~4/357732869&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>

	<pubDate>Wed, 06 Aug 2008 16:27:04 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: My other computer is a different datacentre</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=A64D0BBDC2F2A8069D8CC3A21A314299</guid>

	<description>&lt;p&gt;
Fitz explains the story behind the &lt;a href=&quot;http://fitz.blogspot.com/2008/08/my-other-computer-is-data-center.html&quot;&gt;
my other computer is a datacenter sticker&lt;/a&gt;. I have one of these on my laptop, with all the google bits cut off. 
&lt;/p&gt;
&lt;p&gt;
This sticker will appear in our talk at the &lt;a href=&quot;http://upcoming.yahoo.com/event/506444&quot;&gt;Hadoop UK user group event&lt;/a&gt;, now oversubscribed, in London in two weeks time. I have an idea for a cool sequence of photos. 
&lt;/p&gt;
&lt;p&gt;
Now, here is another idea for Brian: can we have some T-Shirts that say &quot;No, I will not fix your datacentre&quot; ?&lt;/p&gt;</description>

	<pubDate>Wed, 06 Aug 2008 10:33:00 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: How to use tcpmon inside Eclipse</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/08/how-to-use-tcpmon-inside-eclipse.html</guid>

	<description>&lt;span&gt;Apache TCPMon&lt;/span&gt; is an utility that allows the messages to be viewed and resent. It is very much useful  as a debug tool. If you don't know much about this tool, you can find more information &lt;a href=&quot;http://charithaka.blogspot.com/2008/07/how-to-monitor-messages-using-tcpmon-in.html&quot;&gt;here&lt;/a&gt; , &lt;a href=&quot;http://ws.apache.org/commons/tcpmon/tcpmontutorial.html&quot;&gt;here&lt;/a&gt; or &lt;a href=&quot;http://www.keith-chapman.org/2008/07/using-tcp-monitor-to-debug-web-service.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I found an extension of this great tool, which can be included as an Eclipse plugin so that developers can monitor message transmission within their workspace without opening a separate tcpmon instance. It is very cool indeed.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://esaliya.blogspot.com/&quot;&gt;Saliya Ekanayake&lt;/a&gt;, a colleague at WSO2 has developed this utility as part of his university project. Lets see how this tcpmon plugin can be used in Eclipse WTP.&lt;br /&gt;&lt;br /&gt;1. If you haven't done yet, &lt;a href=&quot;http://download.eclipse.org/webtools/downloads/&quot;&gt;download&lt;/a&gt; and install &lt;span&gt;Eclipse WTP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Download tcpmonitor-1.0.0.jar from &lt;a href=&quot;http://dist.wso2.org/maven2/tcpmonitor/tcpmonitor/1.0.0/tcpmonitor-1.0.0.jar&quot;&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Copy tcpmonitor-1.0.0.jar in to Eclipse_home/plugins directory&lt;br /&gt;&lt;br /&gt;4. Start eclipse&lt;br /&gt;&lt;br /&gt;5. Select &lt;span&gt;Window --&gt; Show View --&gt; Other --&gt; Tcp Monitor --&gt; TCP Monitor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. Tcp monitor will be added as an view tab.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_S93Ac0EllBE/SJlGCeZi-5I/AAAAAAAAAKE/BFQFmIkAioc/s1600-h/tcpmon.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_S93Ac0EllBE/SJlGCeZi-5I/AAAAAAAAAKE/BFQFmIkAioc/s320/tcpmon.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5231289450501438354&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now you can configure the necessary port settings and trace message transmission.</description>

	<pubDate>Wed, 06 Aug 2008 07:53:33 +0000</pubDate>
</item>

<item>
	<title>Davanum Srinivas: Too much information - Web Services Feature Pack for WebSphere Application Server V6.1</title>
	<guid isPermaLink="true"></guid>

	<description>http://www.redbooks.ibm.com/redbooks.nsf/RedbookAbstracts/sg247618.html?Open</description>

	<pubDate>Tue, 05 Aug 2008 12:55:17 +0000</pubDate>
</item>

<item>
	<title>Apache Tuscany: Apache Tuscany SCA Java 1.3 released</title>
	<guid isPermaLink="true">http://apache-tuscany.blogspot.com/2008/08/apache-tuscany-sca-java-13-released.html</guid>

	<description>Today Apache Tuscany made a 1.3 release of the SCA Java runtime. This release is special as its the first SCA release since Tuscany graduated from the Incubator to be an Apache top level project. See the Tuscany &lt;a href=&quot;http://tuscany.apache.org/sca-java-releases.html&quot;&gt;download page&lt;/a&gt; for details on the release.</description>

	<pubDate>Tue, 05 Aug 2008 08:25:05 +0000</pubDate>
</item>

<item>
	<title>Eran Chinthaka: Blue Angels in Seattle</title>
	<guid isPermaLink="true">http://blog.chinthaka.org/2008/08/blue-angels-in-seattle.html</guid>

	<pubDate>Mon, 04 Aug 2008 01:54:55 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: How to deploy Apache Axis2 on WebLogic 10</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/07/how-to-deploy-apache-axis2-on-weblogic.html</guid>

	<description>I have already discussed the steps to deploy &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Apache Axis2&lt;/a&gt; on &lt;a href=&quot;http://charithaka.blogspot.com/2008/07/how-to-deploy-apache-axis2-on-ibm.html&quot;&gt;IBM WebSphere&lt;/a&gt;, &lt;a href=&quot;http://charithaka.blogspot.com/2008/06/how-to-deploy-apache-axis2-on-resin-and.html&quot;&gt;JBoss and Resin&lt;/a&gt; application servers. In this post, I'm going to explain the procedure to deploy Axis2 on &lt;a href=&quot;http://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products/weblogic/server&quot;&gt;BEA Weblogic 10&lt;/a&gt; server.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Pre-requisites:&lt;/span&gt;&lt;br /&gt;Download and install BEA Weblogic 10.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a new weblogic domain by running config.sh located at  WebLogic_HOME/wlserver_10.0/common/bin directory.&lt;br /&gt;Lets assume the new domain is axis2.&lt;br /&gt;&lt;br /&gt;Access your weblogic domain direcrtory and start weblogic (Go to WebLogic_HOME/user_projects/domains/axis2/bin and run startWebLogic.sh)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Download Axis2.war from &lt;a href=&quot;http://ws.apache.org/axis2/download/1_4/download.cgi&quot;&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a directory in your file system (i.e:- /opt/axis2) and copy axis2.war to that directory. Extract axis2.war file (unzip axis2.war)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Access WebLogic administration console (In a browser, access http://localhost:7001/console)&lt;br /&gt;&lt;br /&gt;Log in to administration console (You should have configured username and password for admin console when creating your WebLogic domain)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the left navigation menu of the WebLogic administrative console, select &lt;span&gt;Lock and Edit &lt;/span&gt;and click on&lt;span&gt; Deployments&lt;/span&gt;.&lt;br /&gt;Click on &lt;span&gt;Install&lt;/span&gt; and Select the path of axis2 directory where we have extracted axis2.war file.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://bp0.blogger.com/_S93Ac0EllBE/SISoSN7e_bI/AAAAAAAAAJs/rGmOduTFJy8/s1600-h/WL1.JPG&quot;&gt;&lt;img src=&quot;http://bp0.blogger.com/_S93Ac0EllBE/SISoSN7e_bI/AAAAAAAAAJs/rGmOduTFJy8/s320/WL1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5225486498586885554&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click on &lt;span&gt;Next&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Select the default option, &lt;span&gt;Install this deployment as an application&lt;/span&gt; and click &lt;span&gt;Next&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Accept the default settings in &lt;span&gt;Optional Settings&lt;/span&gt; page and click on &lt;span&gt;Next&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Click on &lt;span&gt;Finish&lt;/span&gt; in the last page of the wizard.&lt;br /&gt;&lt;br /&gt;Click &lt;span&gt;Activate Changes&lt;/span&gt; in the left menu.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Select &lt;span&gt;Lock and Edit&lt;/span&gt; again and click on &lt;span&gt;Deployments&lt;/span&gt; in weblogic admin console. You will see axis2 listed in the Deployments table.&lt;br /&gt;Select axis2 and click on &lt;span&gt;Start--&gt;Servicing all requests.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In Start Deployments page, click on &lt;span&gt;Yes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Thats all for deploying Axis2 on Weblogic. Lets access axis2 admin console and validate the installation&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 7&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now open a browser and go to http://localhost:7001/axis2&lt;br /&gt;Axis2 welcome page will be displayed.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Verify the status of installation. Click on 'Validate' link. You should see the following 'Axis2 Happiness' page.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://bp0.blogger.com/_S93Ac0EllBE/SISrrWnJTXI/AAAAAAAAAJ0/EvnaQBwP1ro/s1600-h/WL2.JPG&quot;&gt;&lt;img src=&quot;http://bp0.blogger.com/_S93Ac0EllBE/SISrrWnJTXI/AAAAAAAAAJ0/EvnaQBwP1ro/s320/WL2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5225490228949110130&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now you can log in to Axis2 administration page and start deploying services.&lt;br /&gt;&lt;br /&gt;If you encounter any class loading issues with some of your services, configure the &amp;lt;prefer-web-inf-classes&amp;gt; element in WEB-INF/weblogic.xml as specified in &lt;a href=&quot;http://ws.apache.org/axis2/1_4/app_server.html&quot;&gt;Axis2 Application Server Specific Configuration Guide&lt;/a&gt;.</description>

	<pubDate>Mon, 04 Aug 2008 01:14:47 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: Apache JMeter book is published</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/07/apache-jmeter-book-is-published.html</guid>

	<description>&lt;a href=&quot;http://bp1.blogger.com/_S93Ac0EllBE/SI81sxxJOII/AAAAAAAAAJ8/39zdBqYTjAE/s1600-h/jmeter.JPG&quot;&gt;&lt;img src=&quot;http://bp1.blogger.com/_S93Ac0EllBE/SI81sxxJOII/AAAAAAAAAJ8/39zdBqYTjAE/s320/jmeter.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5228456735790413954&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.packtpub.com/view_popup/bookimage/1847192955&quot;&gt;&lt;img src=&quot;http://www.packtpub.com/view_popup/bookimage/1847192955&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.packtpub.com/view_popup/bookimage/1847192955&quot;&gt;&lt;img src=&quot;http://www.packtpub.com/view_popup/bookimage/1847192955&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;There are no much books available on test automation and tools. In order to fill the void in the software testing bibliography, &lt;a href=&quot;http://www.packtpub.com/author_view_profile/id/212&quot; title=&quot;Emily H. Halili&quot;&gt;Emily H. Halili&lt;/a&gt; decided to put together the basic concepts of test automation and performance testing with &lt;a href=&quot;http://jakarta.apache.org/jmeter/&quot;&gt;JMeter&lt;/a&gt;.&lt;br /&gt;This book was designed to pave the path for readers to get detailed insight on JMeter as well as a basic reference guide. I was the technical reviewer of this book. It consists of 140 pages and 8 chapters, starts with a short introductory chapter on advantages of test automation and requirements of automated tests.&lt;br /&gt;Chapter 2 focuses on an overview of JMeter followed by setting up environment and installation.&lt;br /&gt;&lt;em&gt;Chapter 4, The Test Plan&lt;/em&gt; shows you all the parts of JMeter test plan. It explains all elements of test plan and how they interact together.&lt;br /&gt;Use of Jmeter in load/performance testing is demonstrated in chapter 5. In chapter 6, you will get information on the tools in JMeter that support functional or regression testing.&lt;br /&gt;Chapter 7 and 8 describe some advanced topics such as database servers, using regular expressions etc..&lt;br /&gt;&lt;br /&gt;One of the many beuties of JMeter is that you don't need to have prior programming skills to use it, making JMeter one of the most popular open source testing tools in the testing community.&lt;br /&gt;This book will definitely help testers as well as programmers, project managers to get better understainding on JMeter.&lt;br /&gt;The book is an  easy read and you should be able to complete most of the demos within very short time. &lt;span&gt;I'm proud to be the reviewer of this book and I'd recommend this as a must-have item in book shelves of any QA/test engineer.&lt;/span&gt;&lt;br /&gt;For more information, please visit &lt;a href=&quot;http://www.packtpub.com/beginning-apache-jmeter/book&quot;&gt;Packt publisher's website&lt;/a&gt;.</description>

	<pubDate>Mon, 04 Aug 2008 01:14:04 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: How to validate a WSDL using Eclipse</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/07/how-to-validate-wsdl-using-eclipse.html</guid>

	<description>When you create a wsdl file from scratch or use an already designed one, you must make sure it is valid. In other words it should;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; consist of well-formed XML (All tags should be closed and nested properly)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;conform to XML Schema&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;comply with the rules and standards defined in WSDL specification&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;valid with the rules defined by WS-I (Web services interoperability organization)&lt;/li&gt;&lt;/ul&gt;Eclipse Web tools project (WTP) provides a very useful tool which validates a wsdl against above rules/standards.&lt;br /&gt;Lets see how we can validate an existing wsdl using Eclipse wtp.&lt;br /&gt;&lt;br /&gt;1. Download and install &lt;a href=&quot;http://download.eclipse.org/webtools/downloads/&quot;&gt;Eclipse wtp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Open eclipse IDE&lt;br /&gt;&lt;br /&gt;3. Start to create a new wsdl  (File --&gt; New --&gt; other --&gt; Web Services --&gt; WSDL)&lt;br /&gt;&lt;br /&gt;4. Give a name to the wsdl (you can provide the name of wsdl which needs to be validated) and click on next. Accept the default options and click on Finish.&lt;br /&gt;&lt;br /&gt;5. You will see a design view of a new wsdl file. Move to source view by selecting &quot;Source&quot; tab.&lt;br /&gt;&lt;br /&gt;6. You will see an skeleton source of the new wsdl. Just remove it. (remove all elements in the wsdl)&lt;br /&gt;&lt;br /&gt;7. Copy the contents of your existing wsdl (Suppose it is Myservice.wsdl)  and paste in the source tab.&lt;br /&gt;&lt;br /&gt;8. Save it by selecting save button in eclipse tool bar.&lt;br /&gt;&lt;br /&gt;9.  Right click on the wsdl file and select &lt;span&gt;Validate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your wsdl has errors, those will be shown in problems pane.&lt;br /&gt;&lt;br /&gt;You may notice that we create a new wsdl, remove its content and copy the existing (already created) wsdl in to source view of wsdl validator. I suggest that as a work around  because I could not find a way to import an existing wsdl directly into wsdl validator.</description>

	<pubDate>Mon, 04 Aug 2008 01:13:26 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: Web application testing in Ruby(Watir) - 2 minutes guide</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/07/web-application-testing-in-rubywatir-2.html</guid>

	<description>&lt;a href=&quot;http://wtr.rubyforge.org/&quot;&gt;&lt;span&gt;Watir&lt;/span&gt;&lt;/a&gt; (pronounced as Water) is a free open source tool which can be used to automate web applications. It is an extension of Ruby programming language. Unlike most of the other testing tools it gains the advantage of powerful features of Ruby and simulate browser interactions in very simple manner.&lt;br /&gt;Lets see how a simple google search is automated using Watir in few steps.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Pre-requisites&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;http://rubyforge.org/frs/?group_id=167&quot;&gt;Install Ruby&lt;/a&gt; (1.8.5-24 or later)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Install Watir. Open a command window or shell and  issue the following commands&lt;br /&gt;gem update --system&lt;br /&gt;gem install watir&lt;br /&gt;&lt;br /&gt;The above two commands update gem installer and then install watir in your system.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open &lt;span&gt;SciTE ruby editor&lt;/span&gt; or notepad and start to create the following script.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;require &quot;watir&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie = Watir::IE.new&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie.goto(&quot;http://www.google.com&quot;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie.text_field(:name, &quot;q&quot;).set(&quot;WSO2 WSAS&quot;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie.button(:name, &quot;btnG&quot;).click&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Save the above file as SimpleTest.rb and run it from the command line by typing SimpleTest.rb&lt;br /&gt;You will see that an Internet Explorer browser instance will automatically be popped up, access google, type &quot;WSO2 WSAS&quot; text and click on search button as a user interacts with the web site.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lets see what each of the above statements of our test script do.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;require &quot;watir&quot;&lt;/span&gt; - This is similar to an import statement. This tells ruby script to use Watir as an extension library&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie = Watir::IE.new&lt;/span&gt; - Instantiate a new IE browser instance and open it&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie.goto(&quot;http://www.google.com&quot;) &lt;/span&gt;- Instructs IE instance to access google.com&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie.text_field(:name, &quot;q&quot;).set(&quot;WSO2 WSAS&quot;)&lt;/span&gt; - Set text, &quot;WSO2 WSAS&quot; as the search query&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ie.button(:name, &quot;btnG&quot;).click&lt;/span&gt; - Click the &quot;search&quot; button&lt;br /&gt;&lt;br /&gt;If you need to simulate web interaction with Firefox, you can use &lt;a href=&quot;http://code.google.com/p/firewatir/&quot;&gt;FireWatir&lt;/a&gt;, which allows to write test scripts for Firefox browser.</description>

	<pubDate>Mon, 04 Aug 2008 01:12:31 +0000</pubDate>
</item>

<item>
	<title>Afkham Azeez: Handling java.lang.InterruptedException</title>
	<guid isPermaLink="true">http://afkham.org/2008/08/handling-javalanginterruptedexception.html</guid>

	<description>What do most Java developers do when they are faced with handling an InterruptedException? This should look very familiar;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;try{&lt;/span&gt;&lt;br /&gt;&lt;span&gt;   // Do something&lt;/span&gt;&lt;br /&gt;&lt;span&gt;} catch (InterruptedException ignored){&lt;/span&gt;&lt;br /&gt;&lt;span&gt;   log.debug(&quot;Exception&quot;, ignored);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We've seen plenty of code that does this, it makes us wonder whether InterruptedException is just useless and simply clutters the code. The question is, &quot;Is this the correct way of handling InterruptedException&quot;. The answer is, &quot;No, it isn't always the best way of handling this exception&quot;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www-128.ibm.com/developerworks/java/library/j-jtp05236.html&quot;&gt;Dealing with InterruptedException&lt;/a&gt; is an excellent article that points out how this exception needs to be handled in different scenarios. It is a &quot;must read&quot; for any Java developer. When an InterruptedException is thrown, the interrupted status of the thread is cleared. Hence, at least we should set the interrupted status again using the  &lt;span class=&quot;boldcode&quot;&gt;&lt;span&gt;&lt;/span&gt;Thread.currentThread().interrupt() &lt;/span&gt;&lt;span class=&quot;boldcode&quot;&gt;method so that somebody else could handle it, if necessary.&lt;br /&gt;&lt;/span&gt;</description>

	<pubDate>Sun, 03 Aug 2008 13:20:45 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Open Standards</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/08/01/Open-Standards</guid>

	<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/open-web-discuss/msg/07986e38d71c2519&quot;&gt;&lt;cite&gt;Simon Phipps&lt;/cite&gt;&lt;/a&gt;: &lt;em&gt;Field-of-use restrictions have no place in open source.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;+1&lt;/p&gt;</description>

	<pubDate>Fri, 01 Aug 2008 14:30:24 +0000</pubDate>
</item>

<item>
	<title>Keith Chapman: Benefits of an Open Source SOA solution</title>
	<guid isPermaLink="true">http://www.keith-chapman.org/2008/08/benefits-of-open-source-soa-solution.html</guid>

	<description>Stumbled upon an interesting article on the &lt;a href=&quot;http://cio.com/article/440370/Tight_Budgets_Try_Open_Source_SOA_&quot;&gt;benefits of an Open Source SOA solution&lt;/a&gt;, and I cant agree more with it. It lists 5 advantages of using Open Source to leverage SOA needs. They are,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Try before you buy&lt;/li&gt;&lt;li&gt;Lower cost of entry&lt;/li&gt;&lt;li&gt;Cost effective support&lt;/li&gt;&lt;li&gt;Core competency&lt;/li&gt;&lt;li&gt;For the people by the people&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Let me elaborate on point 4 above (Core competency) with respect to &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt;. At &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt; we've build a complete SOA platform from scratch. The core components we use was designed with SOA in mind. They were not mere afterthoughts.&lt;br /&gt;&lt;br /&gt;The article also mentions &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt; as a major open source stack provider. And its a pretty impressive stack at that, at &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt; the whole SOA stack we have is open source. Products of this stack include the &lt;a href=&quot;http://www.keith-chapman.org/2008/06/enterprise-service-bus-esb-performance.html&quot;&gt;Fastest Enterprise Service Bus (ESB)&lt;/a&gt; in the form of the &lt;a href=&quot;http://wso2.org/projects/esb/java&quot;&gt;WSO2 Enterprise Service Bus (ESB)&lt;/a&gt;, the award winning &lt;a href=&quot;http://wso2.org/projects/wsas/java&quot;&gt;WSO2 Web Services Application Server&lt;/a&gt; (WSAS a runtime for hosting services), the &lt;a href=&quot;http://wso2.org/projects/registry&quot;&gt;WSO2 Registry&lt;/a&gt;, the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;WSO2 Mashup Server&lt;/a&gt; (which helps you compose services using JavaScript with the E4X extension). In addition to this it also provides frameworks such as &lt;a href=&quot;http://wso2.org/projects/wsf/spring&quot;&gt;WSF/Spring&lt;/a&gt;, &lt;a href=&quot;http://wso2.org/projects/wsf/c&quot;&gt;WSF/C&lt;/a&gt; and &lt;a href=&quot;http://wso2.org/projects/wsf/cpp&quot;&gt;WSF C++&lt;/a&gt; which help build/invoke services. It has also extended its frameworks to the various scripting languages in the form of &lt;a href=&quot;http://wso2.org/projects/wsf/php&quot;&gt;WSF/PHP&lt;/a&gt;, &lt;a href=&quot;http://wso2.org/projects/wsf/ruby&quot;&gt;WSF/Ruby&lt;/a&gt;, &lt;a href=&quot;http://wso2.org/projects/wsf/python&quot;&gt;WSF/Python&lt;/a&gt; and &lt;a href=&quot;http://wso2.org/projects/wsf/perl&quot;&gt;WSF/Perl&lt;/a&gt;. All these frameworks help you build/invoke enterprise grade services which may have WS-Security, WS-Reliable Messaging, WS-Addressing etc...&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt; has been around for around 3 years and thats a pretty impressive product portfolio for a company that young.</description>

	<pubDate>Fri, 01 Aug 2008 13:06:53 +0000</pubDate>
</item>

<item>
	<title>Paul Fremantle: Why interop?</title>
	<guid isPermaLink="true">http://pzf.fremantle.org/2008/08/why-interop.html</guid>

	<description>This excellent article - &quot;&lt;a href=&quot;http://www1.interopsystems.com/analysis/can-amqp-break-ibms-mom-monopoly-part-1.html&quot;&gt;Can AMQP break IBM's MOM Monopoly?&lt;/a&gt;&quot; - explains in clear terms the difference between API standardization (JMS) and wire-level interop standardization (&lt;a href=&quot;http://www.amqp.org&quot;&gt;AMQP&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;This is a distinction that lies at the heart of WSO2. We founded the company on the premise that wire-level interop was a bigger game changer than API compatibility. I think the REST crowd would have to agree .&lt;br /&gt;&lt;br /&gt;Five years ago, J2EE was still seen as &quot;the answer&quot; by the enterprise vendors. But even then, most Java programmers weren't J2EE programmers, and most programmers weren't Java programmers. And since then we have seen Spring and dependency-injection challenge the core concept of enterprise APIs, and Ruby, PHP, Python, F#, Scala, Erlang challenge Java. The only points of agreement are web-protocols - HTTP/REST, SMTP/email, XMPP and SOAP/WS-*. I hope we can soon add AMQP to the list as a high-performance reliable protocol.</description>

	<pubDate>Fri, 01 Aug 2008 02:14:01 +0000</pubDate>
</item>

<item>
	<title>Tom Jordahl: BlazeDS Documentation Update</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TomJordahlsMusings/~3/351663685/blazeds-documentation-update.html</guid>

	<description>The documentation team has posted an update of the BlazeDS documentation that includes all of the relevant content from the &lt;a href=&quot;http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/index.html&quot;&gt;new LCDS 2.6 Developers Guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By the way, here is a &lt;a href=&quot;http://www.adobe.com/support/documentation/en/livecycledataservices/&quot;&gt;gateway page to all of the LCDS 2.6 documentation&lt;/a&gt;, which has been reorganized to be much easier to read and use.&lt;br /&gt;&lt;br /&gt;The HTML in Livedocs has not been updated yet, but a &lt;a href=&quot;http://livedocs.adobe.com/blazeds/1/blazeds_devguide/blazeds_devguide.pdf&quot;&gt;new PDF version&lt;/a&gt; is available.&lt;br /&gt;&lt;br /&gt;See details on the Flex documentation blog &lt;a href=&quot;http://blogs.adobe.com/flexdoc/2008/07/blazeds_developer_guide_update.html&quot;&gt;here&lt;/a&gt;.&lt;img src=&quot;http://feeds.feedburner.com/~r/TomJordahlsMusings/~4/351663685&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>

	<pubDate>Thu, 31 Jul 2008 11:53:44 +0000</pubDate>
</item>

<item>
	<title>Nandana Mihindukulasooriya: Why can't we ship Apache Rampart as a standalone module all in one ?</title>
	<guid isPermaLink="true">http://nandana83.blogspot.com/2008/07/why-cant-we-ship-as-standalone-module.html</guid>

	<description>This questions pops up time to time in the mailing lits, so thought of digging to the question and see why really it is not possible. I totally agree that it would really handy if we can ship Rampart and all it's dependencies in a single mar file so deploying Rampart will be just a matter of dropping that mar file in to the module directory of the repository. So let's see what are the problems we have ? I see two problems here. So let's see what's the first one and it is the critical one. It's related to how &lt;a href=&quot;http://ws.apache.org/commons/neethi/&quot;&gt;Apache Neethi&lt;/a&gt;, which the policy implementation that Axis2 uses, loads the assertion builders. So let's see how it works. It uses &lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider&quot;&gt;Service Provider Interfaces (SPI)&lt;/a&gt;, to load assertion builders. In SPI, we  have services which are normally interfaces or abstract classes which defines the some service and service providers which are the concrete implementations of that service. So Neethi uses SPI, to get the correct assertion builder for a given assertion. So in this case &lt;a href=&quot;http://svn.apache.org/viewvc/webservices/commons/tags/neethi/2.0.4/src/main/java/org/apache/neethi/builders/AssertionBuilder.java?view=markup&quot;&gt;org.apache.neethi.builders.AssertionBuilder&lt;/a&gt;  is the Service. So how do we configure service providers. Each module in Axis2 which deals with WS-Policy can provider assertion builders for their domain assertions using a configuration file with the same name  “org.apache.neethi.builders.AssertionBuilder” and putting it to the META-INF/services directory of the relevant domain specific jar file. For example  of you look at the &lt;a href=&quot;https://svn.apache.org/repos/asf/webservices/rampart/tags/java/1_4/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder&quot;&gt;org.apache.neethi.builders.AssertionBuilder&lt;/a&gt;  file in the META-INF/services directory of the rampart-policy-x.x.jar, you can see that it lists a set of service providers which implements &lt;a href=&quot;http://svn.apache.org/viewvc/webservices/commons/tags/neethi/2.0.4/src/main/java/org/apache/neethi/builders/AssertionBuilder.java?view=markup&quot;&gt;org.apache.neethi.builders.AssertionBuilder&lt;/a&gt; interface. This is same with Sandesha 2  policy jar file. So what Neethi does is creates a map of Assertion QNames  to Assertion builder instances, using this static code block in the &lt;a href=&quot;http://svn.apache.org/viewvc/webservices/commons/tags/neethi/2.0.4/src/main/java/org/apache/neethi/AssertionBuilderFactory.java?view=markup&quot;&gt;org.apache.neethi.AssertionBuilderFactory&lt;/a&gt; .&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    static {&lt;br /&gt;        AssertionBuilder builder;&lt;br /&gt;&lt;br /&gt;        for (Iterator providers = Service.providers(AssertionBuilder.class); providers&lt;br /&gt;                .hasNext();) {&lt;br /&gt;            builder = (AssertionBuilder) providers.next();&lt;br /&gt;&lt;br /&gt;            QName[] knownElements = builder.getKnownElements();&lt;br /&gt;            for (int i = 0; i  knownElements.length; i++) {&lt;br /&gt;                registerBuilder(knownElements[i], builder);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        registerBuilder(XML_ASSERTION_BUILDER, new XMLPrimitiveAssertionBuilder());&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And Neethi doesn't use sun.misc.Service but uses it's own utility class, &lt;a href=&quot;http://svn.apache.org/viewvc/webservices/commons/tags/neethi/2.0.4/src/main/java/org/apache/neethi/util/Service.java?view=markup&quot;&gt;org.apache.neethi.util. Service&lt;/a&gt; to do this. So if we look at the Service class, it looks for   org.apache.neethi.builders.AssertionBuilder files using the classloader of the  org.apache.neethi.builders.AssertionBuilder.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    ClassLoader cl = null;&lt;br /&gt;    try {&lt;br /&gt;        // cls is AssertionBuilder.class in our case&lt;br /&gt;        cl = cls.getClassLoader();&lt;br /&gt;    } catch (SecurityException se) {&lt;br /&gt;        // Ooops! can't get his class loader.&lt;br /&gt;    }&lt;br /&gt;    // Can always request your own class loader. But it might be 'null'.&lt;br /&gt;    if (cl == null) cl = Service.class.getClassLoader();&lt;br /&gt;    if (cl == null) cl = ClassLoader.getSystemClassLoader();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So here is the catchy part. It looks for the service provider configuration files using the classloader of AssertionBuilder class. So if we want our our service providers, that is domain specific assertion builders to be found they should be in the class path of the class loader of AssertionBuilder class which is in the Axis2 lib. So in this case, the Rampart jars which contains service provide r configurations files also need to go to in the Axis2 lib.  AssertionBuilder must be able to load those service provider classes which are listed in the org.apache.neethi.builders.AssertionBuilder files. So until we solve this problem, having a standalone Rampart module is not possible.&lt;br /&gt;&lt;br /&gt;Then the second problems is as we have two modules Rampart and Rahas, and if we we ship them as standalone modules we may have to ship all the rampart jars and dependency jars in both of those modules as those modules have their separate class paths when deployed in Axis2. Anyway this is not a blocker and may not be much of a problem.&lt;br /&gt;&lt;br /&gt;When talking about this topic, some people tend to think that loading the password callback classes is also an issue here but is not. So the issue is service password callback handlers are packed in the service's archive (.aar) and the service has a separate class loader. But Rampart/WSS4J which lives in a separate module class loader needs to load these classes to get the passwords for various functions. But this not a problem because this explicitly handled by Rampart. So if we look at the code snippet that loads password callback handlers in &lt;a href=&quot;https://svn.apache.org/repos/asf/webservices/rampart/tags/java/1_4/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java&quot;&gt;org.apache.rampart.util.RampartUtil#getPasswordCB()&lt;/a&gt; &lt;pre&gt;.&lt;br /&gt;&lt;br /&gt;      String cbHandlerClass = rpd.getRampartConfig().getPwCbClass();&lt;br /&gt;        ClassLoader classLoader = msgContext.getAxisService().getClassLoader();&lt;br /&gt;       &lt;br /&gt;        log.debug(&quot;loading class : &quot; + cbHandlerClass);&lt;br /&gt;   &lt;br /&gt;        Class cbClass;&lt;br /&gt;        try {&lt;br /&gt;            cbClass = Loader.loadClass(classLoader, cbHandlerClass);&lt;br /&gt;        } catch (ClassNotFoundException e) {&lt;br /&gt;            throw new RampartException(&quot;cannotLoadPWCBClass&quot;,&lt;br /&gt;                    new String[]{cbHandlerClass}, e);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So as you can see this is not a problem regarding this issue.</description>

	<pubDate>Thu, 31 Jul 2008 08:19:16 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: Like a datacentre, only more than one of them.</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=2490516EEF72719BF8CD78CA4DC6FE40</guid>

	<description>&lt;p&gt;Earlier this month, at the Apache-UK academia workshop, I was pushing Hadoop as something that mattered. In a not entirely unrelated event, 
HP, Yahoo! and Intel have just announced a &lt;i&gt;Cloud Computing Test Bed&lt;/i&gt;, 
which will consist of 6+ datacentres, each for experimentation with cloud computing applications. Hadoop and applications on top of this are going to
be a key part of this. But not the only things that run on it. It really is a
a testbed, not just a hadoop-to-go system. Which means, if someone wants to do
some OS fun, or play with completely new applications, they can ask for time on some of the machines.  
&lt;/p&gt;
&lt;p&gt;
This makes the test bed interesting in two ways. Firstly, Hadoop and the layers above it provide immediate value: map/reduce, data mining, stuff on top. Secondly, nobody is saying Hadoop-only. If someone wants to build a distributed object infrastructure on top of WS-ResourceTransfer (who would do that), then they are free to apply for test-bed time, alongside anyone else. This makes it profoundly different from, say the OGSA-approved grid fabrics, and gives it a 
bit of the &lt;a href=&quot;http://www.planet-lab.org/&quot;&gt;flexibility of planet-lab&lt;/a&gt;. There's still lots of details to get sorted out about how getting access; the bias will be towards short-lived over long-life computation, and initially it will be the companies and the partner institutions that will be running code on the machines.
&lt;/p&gt;
&lt;p&gt;I certainly  hope that alongside academic (including UK academic) and industrial applications, open source projects get time too -not just the Hadoop/HBase/Mahout + incubating layers, but things that do interesting work with shared datasets on top of the tools. Again, this is somewhere where some open-source/academic collaboration would be interesting.    
&lt;/p&gt;

&lt;p&gt;Some press:&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://news.bbc.co.uk/2/hi/technology/7531352.stm&quot;&gt;The BBC&lt;/a&gt;. With one John Manley being quoted :)&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://gigaom.com/2008/07/29/hp-yahoo-and-intel-create-compute-cloud/&quot;&gt;Gigaom&lt;/a&gt;
Good analysis&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.theregister.co.uk/2008/07/29/intel_hp_yahoo_cloud_computing_tieup/&quot;&gt;The register.&lt;/a&gt; Somewhat less thorough reporting.&lt;/li&gt;

&lt;/ul&gt;
&lt;p&gt;
This is really exciting stuff. I'm not going to add any more on the topic right now, because I don't want to do anything that would upset the press teams of the various companies, and make anything resembling a forward looking statement. Certainly nothing I have posted should be interpreted as any form of commitment by myself or my employer. As usual.&lt;/p&gt;</description>

	<pubDate>Tue, 29 Jul 2008 22:52:00 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Updated Decimal Implementation</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/28/Updated-Decimal-Implementation</guid>

	<description>10

&lt;p&gt;I’ve added decimal literals and support for both unary and binary operators on top of SpiderMonkey.  My approach is that when all arguments are Decimal, the results are Decimal; otherwise the precision is lost.  An example to make it clear:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;js&amp;gt; 1.21  - 1.11
0.09999999999999987
js&amp;gt; 1.21  - 1.11m
0.09999999999999987
js&amp;gt; 1.21m - 1.11
0.09999999999999987
js&amp;gt; 1.21m - 1.11m
0.10&lt;/pre&gt;
&lt;p&gt;More details &lt;a href=&quot;https://mail.mozilla.org/pipermail/es4-discuss/2008-July/003350.html&quot;&gt;here&lt;/a&gt;.  Code &lt;a href=&quot;http://code.intertwingly.net/public/hg/js-decimal/&quot;&gt;here&lt;/a&gt;.  Mozilla tracking &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=445178&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>

	<pubDate>Mon, 28 Jul 2008 18:20:17 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: Pluggable Hadoop</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=536D8B29AA70DBA2EA8939F1C75DE0B6</guid>

	<description>&lt;p&gt;Tom White &lt;a href=&quot;http://www.lexemetech.com/2008/07/pluggable-hadoop.html&quot;&gt;looks at how people are looking at extending Hadoop&lt;/a&gt;, including
my little plan &lt;a href=&quot;https://issues.apache.org/jira/browse/HADOOP-3628&quot;&gt;for a consistent lifecycle for hadoop services&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Although it will make subclassing easier, my real goal there is to make it possible to start, stop and ping these services. The fact that I've had to subclass the existing stuff today is because they don't have easy ways to start and stop them, and no liveness checks at all. With a unified base class and lifecycle, most of my subclassing hacks are unneeded. No, where I'm looking at doing interesting stuff is in &lt;a href=&quot;https://issues.apache.org/jira/browse/HADOOP-3582&quot;&gt;Configuring Hadoop&lt;/a&gt;; being able to manage the stuff is a precursor&lt;/p&gt;
&lt;p&gt;
Looking at the other areas of work, I think scheduling will get the most interest from different people. Why? Because its where people like Platform Computing deliver value. It's not the APIs for grid computing, it's in distributing work to chosen machines. The current Job Scheduler works, but it 
is very simple. Every task worker node has a number of 'slots' -work is 
assigned to workers with spare slots. The scheduler is location aware, looking
for the closest open slot to data, but there is no real examination of
how much work a node is really doing, what the expected workload of the new job is (based on past experience), or anything resembling balanced scheduling between users. Over time, that's where there is going to be fun. Watch that space.&lt;/p&gt;</description>

	<pubDate>Sat, 26 Jul 2008 19:23:00 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: How to write untestable code</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=D49B893233A03D9CDFD9B27B34A287A8</guid>

	<description>&lt;p&gt;
Nice list on the google testing blog on 
&lt;a href=&quot;http://googletesting.blogspot.com/2008/07/how-to-write-3v1l-untestable-code.html&quot;&gt;
how to write 3v1l untestable code&lt;/a&gt;; a list of don'ts, most of which I agree with.
&lt;/p&gt;
&lt;p&gt;
The one I don't is the no-utility-class rule, which doesn't hold in a framework (Java?) that doesn't let you patch in new methods into existing classes. &lt;/p&gt;</description>

	<pubDate>Sat, 26 Jul 2008 18:01:00 +0000</pubDate>
</item>

<item>
	<title>Paul Fremantle: Microsoft sponsors Apache</title>
	<guid isPermaLink="true">http://pzf.fremantle.org/2008/07/microsoft-sponsors-apache.html</guid>

	<description>&lt;a href=&quot;http://www.networkworld.com/news/2008/072508-microsoft-apache.html&quot;&gt;Yep&lt;/a&gt;. I know its hard to believe! But then who would have believed Microsoft would have &lt;a href=&quot;http://reddevnews.com/news/article.aspx?editorialsid=9991&quot;&gt;an Open Source vendor at a TechEd keynote&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ted &lt;a href=&quot;http://twitter.com/twleung/statuses/868348185&quot;&gt;asks&lt;/a&gt; &quot;what it will be like when the first MS project shows up at the Apache Incubator...&quot;&lt;br /&gt;&lt;br /&gt;I'm asking what it means when Oracle (through BEA), Yahoo, Google and IBM have Apache projects that they have incubated and use, HP and Microsoft are sponsors? It certainly means &lt;a href=&quot;http://www.thedelphicfuture.org/2007/11/brotherhood-is-displeased.html&quot;&gt;Marc&lt;/a&gt; is wrong about the &lt;a href=&quot;http://news.cnet.com/8301-13505_3-9823041-16.html&quot;&gt;relevancy of Apache&lt;/a&gt;.</description>

	<pubDate>Sat, 26 Jul 2008 04:16:53 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: New ASF Platinum Sponsor</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/25/New-ASF-Platinum-Sponsor</guid>

	<description>&lt;p&gt;&lt;a href=&quot;http://port25.technet.com/archive/2008/07/25/oscon2008.aspx&quot;&gt;&lt;cite&gt;Sam Ramji&lt;/cite&gt;&lt;/a&gt;: &lt;em&gt;Microsoft is becoming a sponsor of the Apache Software Foundation (ASF).  This sponsorship will enable the ASF to pay administrators and other support staff so that ASF developers can focus on writing great software.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.apache.org/foundation/thanks.html&quot;&gt;Thanks!&lt;/a&gt;&lt;/p&gt;</description>

	<pubDate>Fri, 25 Jul 2008 16:37:47 +0000</pubDate>
</item>

<item>
	<title>Ajith Ranabahu: Microsoft and opensource</title>
	<guid isPermaLink="true">http://blog.ranabahu.org/2008/07/microsoft-and-opensource.html</guid>

	<description>After reading &lt;a href=&quot;http://sanjiva.weerawarana.org/2008/07/response-to-microsoft-at-oscon.html&quot;&gt;the recent post from Sanjiva&lt;/a&gt; I was tempted to write this bit down. I've been debating similar points with my friends, specially Karthik who has become an avid Mac/OS-X fan over the last year or so. For the record I'm primarily a Linux user (in fact I'm using one of my Ubuntu boxes right now)  but I do use windows (XP though) to run my iTunes and an occasional office product. So here are some of my observations.&lt;br /&gt;&lt;br /&gt;1. Microsoft is a good technology company. If you look at the world with the researcher hat on, the best place to work right now is &lt;a href=&quot;http://research.microsoft.com/&quot;&gt;Microsoft research&lt;/a&gt; (MSR). They do really good research and come up with great technologies (not to mention the good pay :) In fact my personal experience in M$ during the interop in 2005 is a very positive one regarding the technology they have. Its not really a surprise since they have the best brains working for them). If you look at technologies like &lt;a href=&quot;http://www.microsoft.com/NET/&quot;&gt;.Net&lt;/a&gt; and &lt;a href=&quot;http://silverlight.net/&quot;&gt;Silverlight&lt;/a&gt;, there are many merits over the other prevailing technologies. However M$ has a bad track record and known for their extreme focus only on their (winxx/MSSQL etc) platform and the public looks with skepticism when it comes to using their technologies. I've met Mac/Linux geeks that are interested in M$ technologies but are not getting into them simply because its from M$.  However it is not a reason to discredit M$ of their technological perspective.&lt;br /&gt;&lt;br /&gt;2. There are tendencies towards moving towards a more open environment. &lt;a href=&quot;http://port25.technet.com/&quot;&gt;Port25&lt;/a&gt; is a very good starting point. &lt;a href=&quot;http://www.microsoft.com/interop/osp/default.mspx&quot;&gt;Open specification promise&lt;/a&gt; is a good gurantee. I see these as signs of blending in with the opensource culture that is blossoming. In fact one of the recent moves to offer facilities for certain opensource foundations to test their software on Winxx platforms (sadly of which I am not at liberty to discuss the details) is an indication of their realization of the strength of Opensource. However just as Sanjiva and others mentioned we are &lt;span&gt;not&lt;/span&gt; gonna see an open windows or community MSSQL soon (or may be never!). Purely in my POV its unrealistic to assume so. Do we see any other big company (IBM/Oracle/Apple/Google) opensourcing their core products ? No, not even true for a company like Google whose motto is &lt;span&gt;'Don't be evil'&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;3. Microsoft will always be a strong presence in almost all technological fronts. Contrary to the popular geek beliefs, I don't assume M$ to go bankrupt soon. Yeah, Apple is doing well  but if you consider global sales, Apple is still miles behind. XBox is doing well (despite &lt;a href=&quot;http://http://blog.wired.com/games/2008/07/nintendo-wii-ou.html&quot;&gt;Wii beating it to the first place recently&lt;/a&gt;). Their enterprise / back office products are doing fairly ok. They have a ton of money in the bank and most of the best brains still work for them. These guys are  not gonna be wiped out from existence just like that.&lt;br /&gt;&lt;br /&gt;4. Their size makes them a prime target. I think of this as the case of the bright, big, nerdy kid in school. They constantly get teased just because they are noticeable. There are many cases where M$ has become the victim of attacks just because they are the most visible player (Note that they are no saints. There are cases where M$ pushed their own agenda. But at the end of the day it comes down to business and any other software company in the same place would have not gone a different way). For example in the Operating System space Apple gets a lot of attention and a lot of people would pick M$ as the bad guy if you put Apple and M$ side by side.  Think about it. OS-X is as proprietary as Windows, only runs on Apple hardware (which you pay a fortune to get) and go to extremes when it comes to protecting their assets. Why are they not perceived as evil then ?&lt;br /&gt;&lt;br /&gt;I am not white washing M$. But I believe they wouldn't just go away and a (apparently) healthy relationship is coming up with the Opensource world. They are already supporting Opensource software vendors, build on top of open protocols and start taking small steps towards living in harmony with the others.  We should not jump into conclusions :)</description>

	<pubDate>Fri, 25 Jul 2008 13:44:52 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Open Web Foundation</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/25/Open-Web-Foundation</guid>

	<description>&lt;p&gt;&lt;a href=&quot;http://openwebfoundation.org/2008/07/announcing-the-open-web-foundation.html&quot;&gt;&lt;cite&gt;Eran Hammer-Lahav&lt;/cite&gt;&lt;/a&gt;: &lt;em&gt;This morning at &lt;a href=&quot;http://en.oreilly.com/oscon2008&quot;&gt;OSCON&lt;/a&gt;, David Recordon announced the creation of the Open Web Foundation. The Open Web Foundation is an attempt to create a home for community-driven specifications. Following the open source model similar to the Apache Software Foundation, the foundation is aimed at building a lightweight framework to help communities deal with the legal requirements necessary to create successful and widely adopted specification.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Having been involved with the ASF for some time, I’m concerned that a number of “reflexes” are initially out of alignment with this group.&lt;/p&gt;
&lt;p&gt;Examples: &lt;a href=&quot;http://groups.google.com/group/open-web-discuss/subscribe?note=1&quot;&gt;Joining this group requires approval.&lt;/a&gt; and &lt;a href=&quot;http://groups.google.com/group/open-web-discuss/msg/606712edf7c6b3cb&quot;&gt;We shouldn’t start with an open specification for a DSL modem authentication protocol as I doubt we have the domain expertise to do a good job.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Key question: who is “we&quot;?  Oversimplifying what the Apache Incubator does, it makes sure that a &quot;podling” has a diverse and sustainable set of contributors, who are committed to do their development openly and collaboratively, and have the rights and desire to license all the necessary IPR under the terms specified by the Apache Software Foundation.&lt;/p&gt;
&lt;p&gt;Verifying that such a group exists and meets these criteria does not generally require domain expertise.&lt;/p&gt;
&lt;p&gt;If this group evolves to the point where it finds the right balance of enabling and getting out of the way, this foundation could be a very handy thing to have around.&lt;/p&gt;</description>

	<pubDate>Fri, 25 Jul 2008 12:13:28 +0000</pubDate>
</item>

<item>
	<title>Sanjiva Weerawarana: Its over the hump Tim .. give it a rest</title>
	<guid isPermaLink="true">http://sanjiva.weerawarana.org/2008/07/its-over-hump-tim-give-it-rest.html</guid>

	<description>Sigh. Tim Bray &lt;a href=&quot;http://www.infoworld.com/article/08/07/24/Sun-technologist-SOAP-stack-a-failure_1.html&quot;&gt;didn't get the memo&lt;/a&gt;: REST is now beyond the peak of the hype curve and is sliding down. Waay down.&lt;br /&gt;&lt;br /&gt;Just because I can't resist: so Tim, REST does need tools now?? Funny how the world turns, eh? I thought you and the rest of the REST fanatics have argued violently saying how REST doesn't require tools, doesn't require WSDL or equivalent etc. etc.. I guess we will &lt;a href=&quot;http://sanjiva.weerawarana.org/2007/11/rest-vs-ws-facts-myths-and-lies.html&quot;&gt;end up with REST-*&lt;/a&gt; before its all said and done with.&lt;br /&gt;&lt;br /&gt;The other topic Tim touches on is how the world is now not all about Java. On that we agree .. except:&lt;br /&gt;&lt;blockquote&gt;&quot;Up until two years ago, if you were a serious programmer you wrote code in either Java or .Net,&quot;&lt;/blockquote&gt;Er, dude, which planet have you been on? &lt;span&gt;Two&lt;/span&gt; years?? PHP has been kicking Java's butt for 5+ years!!!&lt;br /&gt;&lt;br /&gt;The multi-language boat sailed a LONG time ago and Sun (as usual, I should add) kept sticking its head in the sand waiting for it to blow over. Of course it didn't and it will not. Now that Sun has finally started recognizing that not everyone will love Java, I guess its time for the mouthpieces to speak up and try to spin it positively saying they did it at the right time. Sorry, you guys missed the boat. Badly.&lt;br /&gt;&lt;br /&gt;In any case, Sun still doesn't get it. Neither does IBM. The JVM will not be the only runtime to run languages - while its cool to implement PHP like syntaxes on the JVM etc., you are going to have to learn to live in a world where not everything runs on the JVM and all of those crappy JSRs that have been done in the last 10+ years have absolutely no meaning. (In fact, most of the JSRs only apply to Java the language .. making them even more irrelevant).&lt;br /&gt;&lt;br /&gt;Of course there are (and will be) some great languages on the JVM: Groovy, JRuby and more. However, even if JRuby performs better on the JVM than Ruby native (which is of course because the Ruby impl ain't great) that doesn't mean that that strategy will work for all. Seriously, try doing JErlang in that case.&lt;br /&gt;&lt;br /&gt;The world is inherently heterogeneous, even in languages and language runtimes. There are 3 core platforms in existence today: C, JVM and .Net CLR. Every language runs on top of one of those. Sticking your head in the sand in only one of those will automatically limit the market you can address.&lt;br /&gt;&lt;br /&gt;(Plug for Axis2 &amp;amp; WSO2.) This is &lt;span&gt;exactly&lt;/span&gt; why when we started the Axis2 project back in August 2004, we intentionally stayed away from burning Java JSRs into the core of it. That's also why we explicitly made design decisions that could be realized in both Java and C. I actually always wanted to do a .Net version of Axis2 too, but never quite got around to it. The idea was to cover all the bases.&lt;br /&gt;&lt;br /&gt;This is also why when we started WSO2 in August 2005 that we decided to invest heavily in building Axis2/C in addition to Axis2/Java. We now have coverage for Java, Javascript, Jython, Groovy, Grails, Spring, C, C++, PHP, Perl, Ruby. Python is coming and Erlang too hopefully soon.&lt;br /&gt;&lt;br /&gt;Oh yeah we support both WS-* and RESTful services. However, they won't meet the RESTafarian fanatics like Tim Bray's coolaid drunkenness level of REST .. but if you want to do pragmatic work with services and support either or both of WS-* and REST then take a look at Apache Axis2 (Java &amp;amp; C), WSO2 WSAS, WSO2 Mashup Server, WSO2 WSF/{C,C++,PHP,Perl} etc...</description>

	<pubDate>Fri, 25 Jul 2008 08:22:51 +0000</pubDate>
</item>

<item>
	<title>Sanjiva Weerawarana: How to handle SOA vendor consolidation</title>
	<guid isPermaLink="true">http://sanjiva.weerawarana.org/2008/07/how-to-handle-soa-vendor-consolidation.html</guid>

	<description>Paul Krill over at InfoWorld has &lt;a href=&quot;http://www.infoworld.com/article/08/07/22/30NF-soa-market-consolidation_1.html&quot;&gt;written a great story&lt;/a&gt; on SOA vendor consolidation. He notes how even the mighty IBM has to deal with WSO2 because of open standards based interoperability that is inherent in SOA scenarios.&lt;br /&gt;&lt;br /&gt;Later he lists the major SOA vendors .. and its great to see WSO2 &lt;a href=&quot;http://www.infoworld.com/article/08/07/22/30NF-soa-market-consolidation_2.html&quot;&gt;listed there&lt;/a&gt; - and the only open source one to boot.</description>

	<pubDate>Fri, 25 Jul 2008 07:29:31 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Ruby 1.9: What to Expect</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/24/Ruby-1-9-What-to-Expect</guid>

	<description>&lt;p&gt;&lt;a href=&quot;http://intertwingly.net/slides/2008/oscon/ruby19/1&quot;&gt;slides&lt;/a&gt; for &lt;a href=&quot;http://en.oreilly.com/oscon2008/public/schedule/speaker/4322&quot;&gt;OSCON 2008 presentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A number of the members of the audience were more informed on the subject than I was (excellent!).&lt;/p&gt;
&lt;p&gt;There was a vigorous discussion on the &lt;a href=&quot;http://intertwingly.net/slides/2008/oscon/ruby19/18&quot;&gt;slide&lt;/a&gt; which talked about &lt;code&gt;for...in&lt;/code&gt; not exactly paralleling &lt;code&gt;.each&lt;/code&gt; in semantics, initially the audience was overwhelmingly in favor of providing feedback that they should be the same, but after some discussion the consensus was not clear.&lt;/p&gt;
&lt;p&gt;Errata generated during the talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://intertwingly.net/slides/2008/oscon/ruby19/22&quot;&gt;Hash keys now unordered&lt;/a&gt; is a misnomer; nor was the order previously guaranteed to be in sort order&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://intertwingly.net/slides/2008/oscon/ruby19/48&quot;&gt;“nested” methods&lt;/a&gt; turns out not to be new&lt;/li&gt;
&lt;/ul&gt;</description>

	<pubDate>Thu, 24 Jul 2008 22:16:23 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: Tour de France -Galibier and Alpe d'Huez</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=655F17F79E5F10546B95DF112C5E4AB6</guid>

	<description>&lt;p&gt;
For the past few years, I've found that even though HDD Video Recorders let you build up a backlog of Tour de France coverage you can watch later, by the time you get round to it news gets out. Not just news of who won, but often the fact that they got disqualified for drug abuse later. I'd be better off getting out the old VHS VCR and playing back recordings of the early nineties, where there was no test for EPO for the cyclists to fail. 
&lt;/p&gt;
&lt;p&gt;
So far this year I've been avoiding most TdF news, though people keep emailing me with &quot;isn't it great about Mark Cavendish, now with X stage wins&quot;...so no surprises there -though I've been avoiding determining which stages he has one, so they will still be a surprise. Incidentally, anyone in the UK and a copy of
Silverlight installed on an XP VMware image (or indeed, a real machine), 
&lt;a href=&quot;http://www.itv.com/CatchUp/Programmes/default.html?ViewType=1&amp;Filter=1678&quot;&gt;
can watch the hour long Paul-and-Phil on ITV4 broadcasts.&lt;/a&gt;. If US/Canada folk can get these, they get a commentary without the football commentator interrupting with ignorant comments whenever they can. &lt;/p&gt;

&lt;p&gt;
What I have also managed to do is catch &lt;i&gt;live&lt;/i&gt; the second Alpine Stage -Lauteret, Galibier, Telegraphe, Croix de Fer and Alpe d'Huez. I have done the first 3 of these passes, and it is good to see them again. What is more, the time zone differences were such that I got to watch this after the snorkeling round the coral reefs, while a storm that is related to the rain hitting the indian west coast battered our windows:  

&lt;/p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/steve_l/2698686398/&quot; title=&quot;Tour de France -Galibier and Alpe d'Huez by steve_l, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3264/2698686398_152840919c.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; alt=&quot;Tour de France -Galibiier and Alpe d'Huez&quot; /&gt;&lt;/a&gt;

&lt;p&gt;
I caught the Galibier and telegraphe work and the Croix de Fer approach, then popped out for dinner, coming back for the final 21 hairpins of the Alpe d'Huez. And, without spoiling the result for anyone -what an excellent stage! I hope the winner stays in yellow to the end of the tour, as they have earned it!
&lt;/p&gt;

&lt;p&gt;
PS: doesn't the Alpe d'Huez resort look butt-ugly from above. It reminds me of Avoriaz or La Plagne, and they suck too. I know the ski resort encourages the bike ride for summer trade, but if they want winter visitors, shouldn't they pay the helicopters not to show what the town actually looks like? Far better off skiing La Meije, IMO&lt;/p&gt;</description>

	<pubDate>Thu, 24 Jul 2008 14:52:00 +0000</pubDate>
</item>

<item>
	<title>Sanjiva Weerawarana: Response to &quot;Microsoft at OSCON&quot;</title>
	<guid isPermaLink="true">http://sanjiva.weerawarana.org/2008/07/response-to-microsoft-at-oscon.html</guid>

	<description>Zack Urlocker has &lt;a href=&quot;http://weblog.infoworld.com/openresource/archives/2008/07/microsoft_at_os.html&quot;&gt;written a blog&lt;/a&gt; on his OpenSource blog at InfoWorld about Microsoft's participation at OSCON. Please read that first.&lt;br /&gt;&lt;br /&gt;I started writing this as a comment on his blog but it was getting a bit too long .. so I thought I'll blog it directly:&lt;br /&gt;&lt;br /&gt;Zack, conventional wisdom seems to be that Microsoft must do open source by releasing the source code for one of their cash cows. If you're a shareholder of MSFT, does that make sense at all?? They're making $60B an year and we expect them to open source any of that? No way.&lt;br /&gt;&lt;br /&gt;Take IBM. We all give IBM a lot of credit for being a &quot;good&quot; open source player right?? Hmmmm. Really? Which product of theirs is open source? Compare with MSFT: Windows == mainframe (totally proprietary). Office == WebSphere family (totally proprietary) etc. etc.. Not a single major product of IBM's is open source. (I don't consider WebSphere Community Edition aka Apache Geronimo a serious play.) Should IBM open source DB2 or WebSphere or any of their other market successful products?? Hell no. Why should they; certainly their share holders aren't calling for it!&lt;br /&gt;&lt;br /&gt;The way Microsoft can and should do open source is by (a) interoperating with open source stuff and enabling open source to run well on/with their products, and (b) by using open source to expand the markets they play in.&lt;br /&gt;&lt;br /&gt;We (WSO2) are working with them closely on (a). For example, right now we have a &lt;a href=&quot;http://www.marketwatch.com/news/story/wso2-adds-three-platforms-microsoft/story.aspx?guid=%7B16B1B777-531B-49FD-82BA-6D4CD426FD2F%7D&amp;dist=hppr&quot;&gt;joint booth with them at OSCON&lt;/a&gt; demonstrating WS-* interop between .Net, Java, PHP, Ruby, Perl and Spring. (Please do drop by and take a look!) In May we were &lt;a href=&quot;http://www.adtmag.com/article.aspx?id=22826&quot;&gt;part of a keynote speech by Bob Muglia&lt;/a&gt; (MSFT SVP Server &amp;amp; Tools) at TechEd ITPro where we showed an earlier version of that demo. That's the first time an open source company was part of a major MSFT keynote.&lt;br /&gt;&lt;br /&gt;I'm not here to defend MSFT. Yes, they have DEFINITELY done all kinds of things to try to destroy the open source movement. IBM, on the other hand, has indeed helped in NUMEROUS ways with helping open source (esp. in market/technology segments where they were not players .. they're VERY smart). However, I think the conventional wisdom that MSFT can do more with/for open source only by &quot;showing me the code&quot; is wrong.&lt;br /&gt;&lt;br /&gt;That's where (b) comes into play. The way I see MSFT entering open source is by buying one or more open source companies and entering into market segments they do not play in now. When? Who knows. Who? Who knows. Obvious candidates go from Redhat to Novell to Spring to a bunch of others. Why should they enter spaces they are not in right now? Because the enterprise space is inherently and permanently heterogeneous and if you want to eat bigger and bigger chunks of that market, the only way to do that is to play in multiple segments of that market. You will not succeed by trying to get Java developers to convert to .Net. Nor PHP ones. Nor mainframe ones.&lt;br /&gt;&lt;br /&gt;There certainly could be a (c): open source one or more of their products. However, as anyone who has tried to open source a closed source products knows, it is REALLY difficult to make such an open source project succeed. First of all, getting legal clearance and scrubbing the code takes a long time (for example, someone told me that Sun decided to open source Solaris 5 years before they were finally able to do it .. no idea whether its true). Second, open source code is naturally modularized and better documented because there are geographically and temporally separated contributors from day 1 who communicate to each other thru such module boundaries. What that means is that it is VERY difficult to form a community around a complex piece of software because no one can easily &quot;carve out a corner for themselves&quot;. Even building such complex software is hard and may require resources that a typical developer notebook can't deliver.&lt;br /&gt;&lt;br /&gt;So even if the MSFT business were to decide that (c) made sense (and I really don't see why yet), the practical reality of getting the code out and making it work as a true community effort is going to be so hard that in the end they'd be holding a lemon of an open source project.&lt;br /&gt;&lt;br /&gt;Thus, to me, the current MSFT strategy of doing (a) makes perfect sense. (b) will come when the time is right. Whoever will get bought out first will be making history.</description>

	<pubDate>Thu, 24 Jul 2008 11:49:56 +0000</pubDate>
</item>

<item>
	<title>Rajith Attapattu: 5 reasons why Distributed Systems are hard to program</title>
	<guid isPermaLink="true">http://rajith.2rlabs.com/2008/07/23/5-reasons-why-distributed-systems-are-hard-to-develop/</guid>

	<description>&lt;p&gt;Here are 5 reasons why I found distributed system are hard to program. This is not some sort of thorough analysis, but merely my observations in dealing with such systems. For completeness, here is the definition of &amp;#8220;Distributed System&amp;#8221; I used.&lt;br /&gt;
&lt;em&gt;A distributed system contains of more than one process that runs as a single system. These processes can be on the same computer or multiple computers that are on a local area network or geographically distributed over a wide area network.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Without any further do here are the reasons in no particular order.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. Difficulty in identifying and dealing with failures.&lt;/strong&gt;&lt;br /&gt;
When communicating between processes failures can happen at many levels. Dealing with them is not trivial. Of course you rely on frameworks based on technologies like RMI, CORBA, COM, SOAP, AMQP, REST(is an architectural style not a standard) etc to handle these. But the fact remains that you still need to clearly think about these cases and handle these situations properly.&lt;/p&gt;
&lt;p&gt;For example if we consider a simple interaction between two processes on different computers, the following failures can happen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Failures that occur within the process that initiates the communication (sending the message or invoking the RPC call). &lt;/li&gt;
&lt;li&gt;Failures between the time the process hands over the request to the OS and the OS writing it to the network.&lt;/li&gt;
&lt;li&gt;Network failures between the time it takes to transmit the packets from one computer to the other.&lt;/li&gt;
&lt;li&gt;Failures between the time the OS on the receiving end receives the packets and then handing it over to the  recipient process.&lt;/li&gt;
&lt;li&gt;Failures that occur when the recipient process tried to &lt;em&gt;process&lt;/em&gt; the request/message. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sometimes the framework you use, is unable to/may not report all these error cases. Sometimes when the error is reported, it may not contain enough information to figure out at which level the error occurred.&lt;br /&gt;
&lt;em&gt;Did it reach the remote computer? if so how far up the stack did it go?. If the receiving process got the request or message did the error occur before or after the request/message was processed?&lt;/em&gt;&lt;br /&gt;
In some cases where idempotency is built into the the receiving application or the framework/protocol (ex a message client that detects duplicate messages, or doing an HTTP GET) a simple retry maybe ok. In some cases Idempotency and retrying maybe expensive or difficult to implement. In such cases careful thought needs to be given on how these different errors are identified and handled.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. Achieving consistency in data across processes.&lt;/strong&gt;&lt;br /&gt;
One of the hardest problems in programming distributed systems is achieving a consistent view of data across the processes. When one processes updates some data, you need to replicate them across the other processes, so if any other process decides to operate on the same set of data, then it is doing so on the most current copy.&lt;br /&gt;
Lets look at two examples.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Assume a global banking application for ABC bank. A customer goes to a branch in New York, US and deposits money to an account. A few moments later his relative in London, UK does a withdraw on that account. Due to latency there is obviously a time lag before the process in London, UK sees the updated amount in the account.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In an online trading system, a user in NY places an item for sale. The transaction is updated on the closest data center which is in Boston. A few moments later another user in LA is searching for the exact same item and is served off a data center in Phoenix. The user in LA may or may not see the item due to the latency involved in replicating the data across&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For example 1 &lt;em&gt;strong consistency&lt;/em&gt; is required, while for example 2, you could get away with &lt;em&gt;weak consistency&lt;/em&gt;, for example by setting an SLA that says data is valid within a 5 min time window.&lt;br /&gt;
This is not an easy problem to solve and this area itself is a subject on its own. Wener Vogels wrote a nice peice on this called &lt;a href=&quot;http://www.allthingsdistributed.com/2007/12/eventually_consistent.html&quot;&gt;Eventually Consistent&lt;/a&gt; which is worth reading.&lt;br /&gt;
Of course there are specialized frameworks/libraries that can handle this for you. But still there is no escape for you and you pretty much need to have an understanding of the pros and cons of various approaches, failure modes etc.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Heterogeneous nature of the components involved in the system.&lt;/strong&gt;&lt;br /&gt;
A distributed system may contain components written in a variety of languages deployed across machines with different architectures and operating systems. Needless to say that this poses certain challenges (especially integration, interoperability issues) when implementing the system. A whole range of standards/technologies were presented to solve these issues, including but not limited to CORBA, SOAP, AMQP, REST (is an architectural style not a standard) and RPC based frameworks like ICE, Thrift, Etch etc. Anyone who has worked with these technologies knows that neither of these are trivial to use nor provide a complete solution in every situation.&lt;/p&gt;
&lt;p&gt;If anybody has read the &lt;a href=&quot;http://steve.vinoski.net/blog/2008/07/01/convenience-over-correctness/&quot;&gt;recent posts&lt;/a&gt; by &lt;a href=&quot;http://steve.vinoski.net/blog&quot;&gt;Steve Vinoski&lt;/a&gt; and the discussions around it would realize the issues/challenges surrounding RPC. The following &lt;a href=&quot;http://www.hpl.hp.com/techreports/2005/HPL-2005-83.pdf&quot;&gt;paper&lt;/a&gt; discuss the impedance mismatch problems when working with IDL based systems. The issues with type systems and data formats are not limited to RPC only. When using a message oriented approach like SOAP (doc lit style) or AMQP you will end up tunneling data thats not supported by the protocol as a string or a sequence of bytes. When using REST you would need to represent your resource in a format the requesting application understands/supports, which maybe quite different from the native format.&lt;/p&gt;
&lt;p&gt;Again not an easy issue to deal with no matter what technology or framework is used. As an architect/developer you need to understand these issues and deal with them accordingly. &lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;4. Testing a distributed system is quite difficult.&lt;/strong&gt;&lt;br /&gt;
This is arguably one of the hardest aspects of developing a distributed system. Verification of the behavior and impact of your code in the system is not easy.&lt;br /&gt;
There are many aspects that needs to be tested, and doing so before every checkin is not a fun task at all. Running some of these tests before every checkin is not practical. But its a good idea to run them nightly and some tests during the weekend. Here are some of the areas that needs to be tested (I plan to write another blog entry elaborating on the testing aspects).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Functionality testing (can be covered with well written unit testing) &lt;/li&gt;
&lt;li&gt;Integration testing - you need to test the distributed system as a whole with all the components involved &lt;/li&gt;
&lt;li&gt;Interoperability testing - this is crucial when heterogeneous components (different languages, OS) are involved, and is quite different from integration testing&lt;/li&gt;
&lt;li&gt;TCK compliance - If your system is based on standards/specifications, then you need to ensure that you haven&amp;#8217;t broken anything w.r.t compliance &lt;/li&gt;
&lt;li&gt;Performance testing - to ensure that your changes haven&amp;#8217;t accidentally caused a degradation in performance&lt;/li&gt;
&lt;li&gt;Stress testing  - to ensure that your checkin hasn&amp;#8217;t accidentally caused any stability issues - ex increased chance of deadlocks when the load increases&lt;/li&gt;
&lt;li&gt;Soak testing - to ensure that your checkin hasn&amp;#8217;t caused any longevity issues - ex a memory leak thats manifested after a couple hours, days&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most often than not developers cut corners in their testing as running these tests are tedious and time consuming. Also these tests need to be run regularly to catch issues in a timely manner and the best way to tackle this issue is to automate as much testing as possible. There many options with continuous build systems like cruisecontrol or using a plain old cron job.&lt;br /&gt;
Functionality testing, TCK compliance, certain types of integration and interoperability tests can be run periodically.&lt;br /&gt;
In most organizations test machines are just lying around doing nothing during the night (unless around the clock testing is done with development centers in different time zones.). Instead of wasting computing cycles, you could automate test suites to run during the night. More time consuming integration and interoperability tests, performance, stress and soak testing can be done nightly, while more longer duration soak testing can be scheduled to run during the weekends.&lt;/p&gt;
&lt;p&gt;While testing is a tough issue for any type of system, distributed systems have a lot more failure points which adds to the complexity.&lt;br /&gt;
Getting these tests right to cover these failure points and executing them needs a lot of careful thought and planning.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;5. The technologies involved in distributed systems are not easy to understand .&lt;/strong&gt;&lt;br /&gt;
Distributed system are not easy to understand. Neither are the myriad of technologies used in developing these systems.&lt;br /&gt;
Most folks find it difficult to grasp the concepts behind these technologies. If you look into the discussions and misconceptions surrounding REST you can understand what I am trying to get at. CORBA  was not an easy spec to understand, so is WS-* or AMQP. While it is true that you don&amp;#8217;t need to understand everything to develop using them, you still need at least a reasonable understanding to figure how to tackle some of the above mentioned issues. Frameworks based on these technologies are touted as the cure for these problems. Sure they could help, but it still does not shift the burden away from you.&lt;br /&gt;
To compound the issue all sorts of vendors keep touting their technology/framework as the next silver bullet.  No matter what vendor you use, at the end of the day &lt;a href=&quot;http://rajith.2rlabs.com/2007/10/29/architecture-is-your-responsibility/&quot;&gt;you are still responsible for getting it right&lt;/a&gt;. And it is not an easy task. You need to face the reality that distributed systems are hard and that you cannot hide every complexity behind some framework.&lt;/p&gt;</description>

	<pubDate>Wed, 23 Jul 2008 21:14:58 +0000</pubDate>
</item>

<item>
	<title>Eran Chinthaka: What is eScience ?</title>
	<guid isPermaLink="true">http://blog.chinthaka.org/2008/07/what-is-escience.html</guid>

	<description>&lt;span&gt;(This will be helpful for me to explain my friends what I am working on currently ;) )&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Disclaimer : this will be a basic introduction and might not be sophisticated enough to Achilles in the field. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In simple terms, eScience is where computer scientists blends with scientists from other science fields to solve their problems efficiently. In my view there are two things that are being referred to as eScience these days.&lt;br /&gt;&lt;br /&gt;1. Computer scientists apply their algorithms and knowledge on to other science fields. For example, one could use algorithms and methods like neural nets, machine learning, etc., to medical field to efficiently device solutions to those areas.&lt;br /&gt;Even though most of people don't see this as part of eScience, having being to a talk from &lt;a href=&quot;http://research.microsoft.com/%7Eheckerman/&quot;&gt;David Heckerman&lt;/a&gt;, I also agree with him.&lt;br /&gt;&lt;br /&gt;2. There are algorithms that require large amount of computational power and time to compute something or they act on large amount of data. For these algorithms to work or these tera bytes of data to be mined, one might need the help of super computers.&lt;br /&gt;&lt;br /&gt;- Handling these large amount of data&lt;br /&gt;- executing those algorithms on these data&lt;br /&gt;- enabling scientists to work these data, thru GUIs or workflow engines etc., is also regarded as eScience.&lt;br /&gt;&lt;br /&gt;This is what emphasized by most people and &lt;a href=&quot;http://en.wikipedia.org/wiki/E-Science&quot;&gt;wikipedia&lt;/a&gt; as well.&lt;br /&gt;&lt;br /&gt;I think I am also more in to the second area, so I will explain a bit more on that.&lt;br /&gt;&lt;br /&gt;Think about the following scenario, related to meteorology, to understand the use case.&lt;br /&gt;&lt;br /&gt;A country might have a large number of weather stations reporting various weather conditions to a central location. In case of US, IIRC, there are about 144 weather stations. Each weather station sends data, say once in a hour. If the size of a file sent by each weather station is about, say 1GB (this value will depend on the resolution of measurements), then we will get about 150GB per hour. There are algorithms to go through this data and mine them to find out interesting weather stations. For example, one algorithm will find out, say a set of storms using those data. Since the first phase will act on these data separately, there has to be another algorithm to aggregate the results. If first algorithms shows 5 storms, it can be few of them are related to the same one. Likewise there are different algorithms that can be run on top of this data.&lt;br /&gt;Scientists can either run their algorithms on these data alone, or they can define workflows to run on these data. For example, they can design a workflow which will&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;first mine these data, find interesting conditions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;cluster them to identify unique conditions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;talk to individual weather stations to get more data, if needed&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;come up with a scenario explaining the current conditions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;predict on the path of the storm or behaviour&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span&gt;Since all these have to be carried out in  a timely manner &lt;/span&gt;&lt;span&gt;(You don't want to get today's weather forecast tomorrow, right ;) )&lt;/span&gt;&lt;span&gt;, and the data sets involved are large, it is required to use high performance computers for these . &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;To peform the above mentioned tasks, there has to be some infrastructure which can enable the users to&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;design, execute, monitor workflows&lt;/li&gt;&lt;li&gt;perform data movements from/to computing resources. These movements will not be easy as it will not only invlove large amounts of data, but also involves working with super computers, data centers, etc.,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;schedule and monitor jobs in high performance computing environments like clusters, grids, etc.,&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span&gt;This whole environment can be regarded as an eScience environment. This is just one examlpe and there are lots of problems like this in bio-science, neuro-science, aerospace, etc.,&lt;/span&gt;</description>

	<pubDate>Wed, 23 Jul 2008 20:37:03 +0000</pubDate>
</item>

<item>
	<title>Tom Jordahl: AIR Data Synchronization via LiveCycle Data Services ES 2.6</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/TomJordahlsMusings/~3/342894680/air-data-synchronization-via-livecycle.html</guid>

	<description>This is a nice article on the offline sync feature of LiveCycle Data Services 2.6 - &lt;a href=&quot;http://www.insideria.com/2008/07/air-data-synchronization-via-l.html&quot;&gt;AIR Data Synchronization via LiveCycle Data Services ES 2.6&lt;/a&gt;.  It was written by John C. Bland II.&lt;br /&gt;&lt;br /&gt;I worked on this feature for LCDS 2.6 (which by the way just got released last week).  The &lt;a href=&quot;http://help.adobe.com/en_US/AIR/1.1/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7d29.html&quot;&gt;SQLite DB built in to AIR&lt;/a&gt; is really nice to work with and the &lt;a href=&quot;http://livedocs.adobe.com/flex/3/langref/flash/data/SQLConnection.html&quot;&gt;Actionscript APIs&lt;/a&gt; for using it were nicely designed by Jason, one of my coworkers here at Adobe. &lt;br /&gt;&lt;br /&gt;I think the offline feature is pretty neat. There is still lots of room for improvement, but the basics that we do have are pretty powerful.   We are in the planning stages for the next LCDS release and I expect that improving our offline story, particularly for AIR, will be on the list.&lt;br /&gt;&lt;br /&gt;Check it out!&lt;img src=&quot;http://feeds.feedburner.com/~r/TomJordahlsMusings/~4/342894680&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>

	<pubDate>Tue, 22 Jul 2008 16:47:26 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: Feel the taste of Rules with Axis2 – Rule Services</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/feel-taste-of-rules-with-axis2-rule.html</guid>

	<description>&lt;p align=&quot;justify&quot;&gt;As I always tell , &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2 &lt;/a&gt;architecture is so flexible , so you can do almost anything with &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2&lt;/a&gt;. We have a number of extension for &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2&lt;/a&gt;, such as&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;  Data base extension&lt;/li&gt;&lt;li&gt;  JavaScript extension   &lt;/li&gt;&lt;li&gt;  JRuby extension   &lt;/li&gt;&lt;li&gt;  Jython extension   &lt;/li&gt;&lt;li&gt;  Shell script extension and so on&lt;/li&gt;&lt;/ul&gt;           &lt;p align=&quot;justify&quot;&gt;Not stopping from there , we recently add one more extension to &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2&lt;/a&gt;. Which is deploying “Rule services” in Axis2. We support most of the Rule engine , and you can configure your rule services to the rule engine you want and deploy that in &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2 &lt;/a&gt;or WSO2 WSAS. As an example you can deploy Drule with this extension.   &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;We have created a demo and &lt;a href=&quot;http://ww2.wso2.org/%7Edeepal/drule/&quot;&gt;hosted &lt;/a&gt;that in my home directory , and which has all the instruction you need to try the service. Try that and give us the feedback so that we can improve that and build complete Rule Service extension on &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;&lt;/p&gt;Demo link : &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://ww2.wso2.org/%7Edeepal/drule/&quot;&gt;http://ww2.wso2.org/~deepal/drule/&lt;/a&gt; &lt;p align=&quot;justify&quot;&gt;  &lt;/p&gt;</description>

	<pubDate>Tue, 22 Jul 2008 03:03:13 +0000</pubDate>
</item>

<item>
	<title>Dan Diephouse: New Mule Performance Benchmark: Yup, we come out on top.</title>
	<guid isPermaLink="true">http://feeds.feedburner.com/~r/netzooid/~3/342902967/</guid>

	<description>&lt;p&gt;WSO2 has felt the need over the past few months to make &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=49831&quot;&gt;many false claims&lt;/a&gt; about Mule&amp;#8217;s performance. For instance:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Mule CE 2.0.1 couldn&amp;#8217;t handle the cases where we used a concurrency level of 80; while other ESB&amp;#8217;s scaled to support to over 2500 concurrent connections. This was after tuning the maximum active thread count to 100 from its default value, which limited Mule to a very few concurrent connections.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I ran their benchmarks. Sure enough, with their configuration, Mule performance was crappy. There were a couple fatal flaws with their benchmark though:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It used the stock HTTP transport instead of the Jetty transport which is NIO based. Swtiching fixed concurrency issues.&lt;/li&gt;
&lt;li&gt;It turns out there is a bug/feature with Linux pre 2.6.17 that requires you to turn on tcpNoDelay switch with Mule. This affects performance on Linux based systems &lt;strong&gt;significantly &lt;/strong&gt;for many of the tests—up to 200-300% differences were noted. In essence this controls whether or not the tcp message is sent before the buffer is full. Because the number of concurrent users is low in a lot of tests, the system is operating far under 100% load. This means it takes longer for a buffer to fill up and hence longer for the message to send.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We &lt;a href=&quot;http://www.mulesource.com/solutions/Whitepaper_perf_test_results.pdf&quot;&gt;released a paper with pretty graphs&lt;/a&gt;. Here are the relavent conclusions:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;With a proper configuration &lt;span class=&quot;nfakPe&quot;&gt;Mule&lt;/span&gt; was able to process many more transactions per second than WSO2&amp;#8217;s ESB in all three of their scenarios at almost every load level. &lt;span class=&quot;nfakPe&quot;&gt;Mule&lt;/span&gt; was on average 28% faster for [proxying HTTP endpoints], 77% faster for [XPath based] content based routing, and 286% faster for [XSLT] transformations. The only tests where &lt;span class=&quot;nfakPe&quot;&gt;Mule&lt;/span&gt; did not exceed WSO2 were with small XML messages and very light loads. Here the difference was less than &lt;span class=&quot;nfakPe&quot;&gt;2&lt;/span&gt;% and is not statistically significant.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;My hunch is that we can also beat the proprietary ESB in many scenarios as well if the system is properly tuned.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Content Based Routing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While I was looking into this I decided we might as well not just beat them, but significantly widen the lead. You may remember a while back &lt;a href=&quot;http://netzooid.com/blog/2007/07/11/sxc-06-released-xml-parserwriter-compiler-jaxb-accellerator-etc/&quot;&gt;I announced SXC&lt;/a&gt;, an XML parser compiler. It has a streaming XPath engine. Mule now supports it and it out performs anything else out there by a wide margin. For small messages (0.5K), we were up to 25% faster. For medium sized messages (5K) we were 200-300% faster with large loads. Take out all the HTTP overhead and I think we can safely assume that SXC is about 10x faster than anything else.&lt;/p&gt;
&lt;p&gt;On the other hand we have AXIOM + Jaxen. Jaxen is fundamentally a DOM based. Even though AXIOM is a &amp;#8220;streaming DOM&amp;#8221;, Jaxen is very often going to trigger a full load of the document into memory. Not to mention SXC actually compiles the whole XPath expression down to a series of Java functions/statements to &lt;em&gt;the most optimized form possible&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;(Surely someone will object and say that SXC doesn&amp;#8217;t support all of XPath. Yes, that is true. However, in that case you can just use the Jaxen routing filter and then performance is equal. But rarely do you route on such complicated expressions. If SXC is missing something, file a JIRA and I&amp;#8217;ll try to add it.)&lt;/p&gt;
&lt;p&gt;In addition to all this goodness, I get the added satisfaction of knowing that to equal our performance WSO2 will have to adopt code that I&amp;#8217;ve written (SXC) or write something like it from scratch, which I would consider quite funny.&lt;/p&gt;</description>

	<pubDate>Mon, 21 Jul 2008 23:40:59 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: Beauty and power of JavaScript – WSO2 Mashup server</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/beauty-and-power-of-javascript-wso2.html</guid>

	<description>&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;WSO2 Mashup&lt;/a&gt; server is an Web services application server which has tuned to deploy JavaScripts as web services. Which is also build on &lt;a href=&quot;http://wso2.org/projects/wsas/java&quot;&gt;WSO2 WSAS &lt;/a&gt;(which is in fact built on &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Apache Axis2&lt;/a&gt;). In addition to the WSAS , Mashup sever also uses &lt;a href=&quot;http://wso2.org/projects/registry&quot;&gt;WSO2 Registry&lt;/a&gt;.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;With &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;WSO2 Mashup&lt;/a&gt; sever we can deploy JS as Web services , as well as invoke any service from JS client. In addition to this it has a number of cool features as well.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;WSO2 Mashup team did their 1.5 release recently , you can try that out. It is totally free and release under Apache License.&lt;/p&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;&lt;/p&gt;==================================================================&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;The WSO2 Mashup Server is a powerful yet simple and quick way to tailor Web-based information to the personal needs of individuals and organizations. It has been&lt;br /&gt;released under the Apache Software License 2.0.&lt;br /&gt;&lt;br /&gt;This release can be downloaded from &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://wso2.org/projects/mashup&quot;&gt;http://wso2.org/projects/mashup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WSO2 Mashup Server 1.5 - Release Note - 21st July 2008&lt;br /&gt;======================================================================&lt;br /&gt;&quot;Create, deploy, and consume Web services Mashups in the simplest fashion&quot;&lt;br /&gt;&lt;br /&gt;The WSO2 Mashup Server is a powerful yet simple and quick way to tailor&lt;br /&gt;Web-based information to the personal needs of individuals and organizations.&lt;br /&gt;It is a platform for acquiring data from a variety of sources including&lt;br /&gt;Web Services, HTML pages, feeds and data sources, and process and combine it&lt;br /&gt;with other data using JavaScript with E4X XML extensions. The result is then&lt;br /&gt;exposed as a new Web service with rich metadata and artifacts to simplify the&lt;br /&gt;creation of rich user interfaces.&lt;br /&gt;&lt;br /&gt;The WSO2 Mashup Server will form the backbone of a become an ecosystem of&lt;br /&gt;community-developed services that will broaden the palette of capabilities&lt;br /&gt;for mashups and distributed applications.&lt;br /&gt;&lt;br /&gt;WSO2 Mashup Server is released under the Apache License v2.0&lt;br /&gt;&lt;br /&gt;Check out the project home page at &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.wso2.org/projects/mashup&quot;&gt;http://www.wso2.org/projects/mashup&lt;/a&gt; for&lt;br /&gt;additional information.&lt;br /&gt;   &lt;br /&gt;--------------------------    &lt;br /&gt;Features List&lt;br /&gt;==========================&lt;br /&gt;* Hosting of mashup services written using JavaScript with E4X XML&lt;br /&gt;extension&lt;br /&gt;   - Simple file based deployment model&lt;br /&gt;* JavaScript annotations to configure the deployed services&lt;br /&gt;* Auto generation of metadata and runtime resources for the deployed&lt;br /&gt;mashups&lt;br /&gt;   - JavaScript stubs that simplify client access to the mashup service&lt;br /&gt;   - TryIt functionality to invoke the mashup service through a web&lt;br /&gt;browser&lt;br /&gt;   - WSDL 1.1/WSDL 2.0/XSD documents to describe the mashup service&lt;br /&gt;   - API documentation&lt;br /&gt;* Ability to bundle a custom user interface for the mashups&lt;br /&gt;* Many useful Javascript Host objects that can be used when writing mashups&lt;br /&gt;   - WSRequest: invoke Web services from mashup services&lt;br /&gt;   - File: File storage/manipulation functionality&lt;br /&gt;   - System: Set of system specific utility functions&lt;br /&gt;   - Session: Ability to share objects across different service&lt;br /&gt;invocations&lt;br /&gt;   - Scraper: Extract data from HTML pages and present in XML format&lt;br /&gt;   - APPClient: Atom Publishing Protocol client to retrieve/publish Atom&lt;br /&gt;                feeds with APP servers&lt;br /&gt;   - Feed: A generic set of host objects to transparently read and&lt;br /&gt;create Atom&lt;br /&gt;           and RSS feeds&lt;br /&gt;   - Request: Ability get information regarding a request received&lt;br /&gt;* Support for recurring and longer-running tasks&lt;br /&gt;* Support for service lifecycles&lt;br /&gt;* Ability to secure hosted mashups using a set of commonly used security&lt;br /&gt;scenarios&lt;br /&gt;* Management console to easily manage the mashups&lt;br /&gt;* Simple sharing of deployed mashups with other WSO2 Mashup Servers&lt;br /&gt;* Mashup sharing community portal (&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://mooshup.com/&quot;&gt;http://mooshup.com&lt;/a&gt;) to share and host&lt;br /&gt;your&lt;br /&gt; mashups&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------&lt;br /&gt;New In This Release&lt;br /&gt;==========================&lt;br /&gt;* Request object&lt;br /&gt;* Ability to secure hosted mashups using a set of commonly used security&lt;br /&gt;scenarios&lt;br /&gt;* Ability to call secured services using the WSRequest host object&lt;br /&gt;* Integrated Data Services Support (expose data locked up in DataBases,&lt;br /&gt;Excel spreadsheets and&lt;br /&gt;CSV files with ease)&lt;br /&gt;* OpenID login support&lt;br /&gt;* Apache Shindig powered, Google compatible, per-user Dashboard and&lt;br /&gt;browser based editor support&lt;br /&gt;for developing gadgets for hosted mashups (&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://wso2.org/library/3813&quot;&gt;http://wso2.org/library/3813&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;-------------------------&lt;br /&gt;Known Issues&lt;br /&gt;=========================&lt;br /&gt;* Management Console was tested only on IE 6/7 &amp;amp; Firefox 1.5/2.0/3.0.&lt;br /&gt;* Inter-service dependencies using the dynamically generated stubs may&lt;br /&gt;give&lt;br /&gt;deployment time errors. Workaround would be to save a local copy of the&lt;br /&gt;stub&lt;br /&gt;in to the dependent service.&lt;br /&gt;* JSON support lacks try-it support&lt;br /&gt;* Mashup editor will convert &amp;lt; and &amp;gt; characters to &lt;br /&gt; while&lt;br /&gt;saving the code in the&lt;br /&gt;server. This might result in malformed xml. Using these special&lt;br /&gt;characters with caution is adviced.&lt;br /&gt;Refer &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://wso2.org/jira/browse/MASHUP-607&quot;&gt;http://wso2.org/jira/browse/MASHUP-607&lt;/a&gt;.&lt;br /&gt;* Built-in samples cannot be secured - the built-in &quot;sample&quot; user does&lt;br /&gt;not have a keystore associated with it&lt;br /&gt;(system services use the keystore of the primary account.)&lt;br /&gt;&lt;br /&gt;---------------------------------&lt;br /&gt;Future Directions&lt;br /&gt;=================================&lt;br /&gt;* Improved tooling support.&lt;br /&gt;* An expanded toolkit of generic building-block services.&lt;br /&gt;* Deep registry integration including governance, rollback, dependency&lt;br /&gt;analysis, etc.&lt;br /&gt;* Lots more cool stuff.&lt;br /&gt;&lt;br /&gt;------------------------&lt;br /&gt;Reporting Problems&lt;br /&gt;========================&lt;br /&gt;&lt;br /&gt;Issues can be reported using the public JIRA available at&lt;br /&gt;&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;https://wso2.org/jira/browse/MASHUP&quot;&gt;https://wso2.org/jira/browse/MASHUP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------------    &lt;br /&gt;Contact us&lt;br /&gt;========================&lt;br /&gt;&lt;br /&gt;WSO2 Mashup Server developers can be contacted via mailing lists:&lt;br /&gt;For Users: &lt;a class=&quot;moz-txt-link-abbreviated&quot; href=&quot;mailto:mashup-user@wso2.org&quot;&gt;mashup-user@wso2.org&lt;/a&gt;&lt;br /&gt;For Developers: &lt;a class=&quot;moz-txt-link-abbreviated&quot; href=&quot;mailto:mashup-dev@wso2.org&quot;&gt;mashup-dev@wso2.org&lt;/a&gt;&lt;br /&gt;For details on subscriptions: &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.wso2.org/projects/mashup#mail&quot;&gt;http://www.wso2.org/projects/mashup#mail&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Questions can also be raised in this forum: &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.wso2.org/forum/226&quot;&gt;http://www.wso2.org/forum/226&lt;/a&gt;&lt;/pre&gt;</description>

	<pubDate>Mon, 21 Jul 2008 22:18:11 +0000</pubDate>
</item>

<item>
	<title>Keith Chapman: WSO2 Mashup Server 1.5 released</title>
	<guid isPermaLink="true">http://www.keith-chapman.org/2008/07/wso2-mashup-server-15-released.html</guid>

	<description>Its been a couple of busy weeks and the effort is worth it. We've been busy working on the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server 1.5 release&lt;/a&gt; which has a bunch of new features.&lt;br /&gt;&lt;br /&gt;The following are some of the new features in this release,&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Integrated Data Services Support - Users can now create Data Services using the  &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; itself. Data Services makes it trivial to expose data locked up in databases, csv files or excel spreadsheets.&lt;/li&gt;&lt;li&gt;Ability to Secure Mashups - Users can now secure mashups running on the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; by the click of a button. The &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; ships with 15 most commonly used security scenarios which are based on WS-Security. This allows users to control access to their mashups.&lt;/li&gt;&lt;li&gt;Ability to call Secure Services with ease - Calling secure services has never been this easy. Users can call secured services using the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; by just writing a couple of lines of JavaScript code.&lt;/li&gt;&lt;li&gt;Support for gadgets - Any mashup running on the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; can be exposed as a google gadget which can be hosted on the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; itself or igoogle.&lt;/li&gt;&lt;li&gt;Personalized Dashboard - The &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;Mashup Server&lt;/a&gt; can also act as a personalized dashboard. More details on that can be found &lt;a href=&quot;http://wso2.org/library/3813&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;OpenID login support - In the previous release we introduced infocard based login support and in this release we've gone even further and added openID based login support which is powered by the &lt;a href=&quot;http://wso2.org/projects/solutions/identity&quot;&gt;WSO2 Identity Solution&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Service Lifecycle support - Service Lifecycle helps manage life cycle of a particular mashup you deploy in the &lt;a href=&quot;http://wso2.org/project/mashup&quot;&gt;WSO2 Mashup Server&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;There are just a few of the features we've added to this new release. For full details please refer the &lt;a href=&quot;http://wso2.org/project/mashup/1.5/release_note.html&quot;&gt;release note&lt;/a&gt;. Stay tuned for more details and usages of these features. We'll be upgrading &lt;a href=&quot;http://mooshup.com&quot;&gt;mooshup&lt;/a&gt; to use this new release in the coming days. Until then if you wanna try the &lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;WSO2 Mashup Server&lt;/a&gt; please feel free to &lt;a href=&quot;http://wso2.org/downloads/mashup/&quot;&gt;download&lt;/a&gt; it cause its available freely under the &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0.html&quot;&gt;Apache License&lt;/a&gt;.</description>

	<pubDate>Mon, 21 Jul 2008 21:59:48 +0000</pubDate>
</item>

<item>
	<title>Sanjiva Weerawarana: Microsoft didn't invent SOAP!</title>
	<guid isPermaLink="true">http://sanjiva.weerawarana.org/2008/07/microsoft-didnt-invent-soap.html</guid>

	<description>Wow! Here I've been thinking for nearly the last 10 years that Microsoft invented SOAP. Duh.&lt;br /&gt;&lt;br /&gt;Not only that, SOAP, it turns out, was not invented in 1999. It was actually first invented in 1953. (I'm of course not talking about soap, in which case the invention date is a few years prior to that ;-).)&lt;br /&gt;&lt;br /&gt;I was searching for lists of programming languages to give to my programming languages class students to do papers on and I found that the &lt;a href=&quot;http://www.columbia.edu/acis/history/650.html&quot;&gt;IBM 650&lt;/a&gt; assembly language was called Symbolic Optimal Assembly Program ... or SOAP!</description>

	<pubDate>Mon, 21 Jul 2008 16:35:38 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: WSO2 Web Services Framework for Perl 1.1 Released</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/wso2-web-services-framework-for-perl-11.html</guid>

	<description>&lt;pre&gt;WSO2 Web Services Framework for PHP (WSO2 WSF/Perl), is an open source,&lt;br /&gt;enterprise grade, Perl extension for providing and consuming Web&lt;br /&gt;Services in Perl.  WSO2 WSF/Perl is a complete solution for consuming&lt;br /&gt;Web services  and is the only Perl extension with the widest range of&lt;br /&gt;WS-* specification implementations.  It's Key features include, clients&lt;br /&gt;with WS-Security support, binary attachments with MTOM.&lt;br /&gt;&lt;br /&gt;You can download the release from:&lt;br /&gt;&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://wso2.org/downloads/wsf/perl&quot;&gt;http://wso2.org/downloads/wsf/perl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Project home page:&lt;br /&gt;&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://wso2.org/projects/wsf/perl&quot;&gt;http://wso2.org/projects/wsf/perl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------&lt;br /&gt;Key Features&lt;br /&gt;============&lt;br /&gt;&lt;br /&gt;1. Client API to consume Web services&lt;br /&gt;     * WSMessage class to handle message level options&lt;br /&gt;     * WSClient class with both one way and two way service invocation&lt;br /&gt;support&lt;br /&gt;&lt;br /&gt;2. Attachments with MTOM&lt;br /&gt;     * Binary optimized&lt;br /&gt;     * Non-optimized (Base64 binary)&lt;br /&gt;&lt;br /&gt;3. WS-Addressing&lt;br /&gt;     * Version 1.0&lt;br /&gt;     * Submission&lt;br /&gt;&lt;br /&gt;4. WS-Security &lt;br /&gt;     * UsernameToken and Timestamp &lt;br /&gt;     * Encryption&lt;br /&gt;     * Signing&lt;br /&gt;     * WS-SecurityPolicy based configuration&lt;br /&gt;&lt;br /&gt;5. WS-Reliable Messaging&lt;br /&gt;     * Single channel two way reliable messaging&lt;br /&gt;&lt;br /&gt;6. REST Support&lt;br /&gt;     * Expose a single service script both as SOAP and REST service&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-------------------&lt;br /&gt;Reporting Problems&lt;br /&gt;===================&lt;br /&gt;Issues can be reported using the public JIRA available at:&lt;br /&gt;       &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;https://wso2.org/jira/browse/WSFPERL&quot;&gt;https://wso2.org/jira/browse/WSFPERL&lt;/a&gt;&lt;/pre&gt;</description>

	<pubDate>Mon, 21 Jul 2008 05:00:42 +0000</pubDate>
</item>

<item>
	<title>Apache Synapse: Synapse artifacts are OSGi compliant</title>
	<guid isPermaLink="true">http://apache-synapse.blogspot.com/2008/07/synapse-artifacts-are-osgi-compliant.html</guid>

	<description>Synapse artifact jar files are now OSGi compliant...!!&lt;br /&gt;&lt;br /&gt;This means that you can now use the synapse artifact jar files within an OSGi container, but Synapse standalone server is not yet an OSGi container.&lt;br /&gt;&lt;br /&gt;You may read more on this in &lt;a href=&quot;http://ruwansblog.blogspot.com/2008/07/apache-synapse-artifacts-are-osgi.html&quot;&gt;this blog&lt;/a&gt;</description>

	<pubDate>Mon, 21 Jul 2008 01:25:28 +0000</pubDate>
</item>

<item>
	<title>Afkham Azeez: The first ever product release from WSO2!</title>
	<guid isPermaLink="true">http://afkham.org/2008/07/first-ever-product-release-from-wso2.html</guid>

	<description>&lt;div&gt;&lt;a href=&quot;http://bp0.blogger.com/_k5n6bZcNC_I/SINWHzPkvkI/AAAAAAAAANI/CeXwNmab3cY/s1600-h/wso2-tungsten-1.0-alpha.jpg&quot;&gt;&lt;img src=&quot;http://bp0.blogger.com/_k5n6bZcNC_I/SINWHzPkvkI/AAAAAAAAANI/CeXwNmab3cY/s320/wso2-tungsten-1.0-alpha.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5225114684694511170&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;A picture with a lot of historical value... This picture was taken soon after the very first product release from &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt;; WSO2 Tungsten 1.0-alpha (now known as &lt;a href=&quot;http://wso2.org/projects/wsas/java&quot;&gt;WSO2 WSAS&lt;/a&gt;). This was the very first team that worked on WSAS. Only 2 members from this initial team still remain in WSO2. The rest have left to pursue higher studies. This post is a tribute to all those former team members.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>

	<pubDate>Sun, 20 Jul 2008 21:28:21 +0000</pubDate>
</item>

<item>
	<title>Nandana Mihindukulasooriya: Internet &amp;amp; Privacy : Can a plain old web site decide whether I am a male or a female ?</title>
	<guid isPermaLink="true">http://nandana83.blogspot.com/2008/07/internet-privacy-can-plain-old-web-site.html</guid>

	<description>Do we have any privacy on Internet? For example, when I am searching something on Google or reading emails on my gmail account, obviously Google reads them too. Otherwise how can Google put advertisements most relevant to the content of my emails on the right hand side under sponsored links? So at the end of the day, Google knows what my interests are , who I am dealing with , what my greatest fears are and almost everything about me.  Let’s wish that Google will always honor their motto, “&lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t_be_evil&quot;&gt;Don't be evil&lt;/a&gt;”. Anyway let’s forget Google for a moment.&lt;br /&gt;When I was in &lt;a href=&quot;http://www.dzone.com/&quot;&gt;DZone&lt;/a&gt;, I came across an interesting post about a widget which tries to determine whether you are a male or a female according to your browsing history. I know what you will say, “What? You gave it your browser history?“ . No, I didn’t, a simple javascript just stole that information from me. So how did it work.  The script is called &lt;a href=&quot;http://azarask.in/blog/post/socialhistoryjs/&quot;&gt;Social History&lt;/a&gt;. Idea of social history script is pretty simple. It has a set of links of social sites such as  &lt;a href=&quot;http://del.icio.us/&quot;&gt;Del.icio.us&lt;/a&gt;, &lt;a href=&quot;http://digg.com/&quot;&gt;Digg&lt;/a&gt;, &lt;a href=&quot;http://www.facebook.com/&quot;&gt;Facebook&lt;/a&gt;, &lt;a href=&quot;http://www.reddit.com/&quot;&gt;Reddit&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/&quot;&gt;Technorati&lt;/a&gt;, &lt;a href=&quot;http://slashdot.org/&quot;&gt;Slashdot&lt;/a&gt;, etc. etc and it decides whether I have visited those links based on their css style (the color of the link). So &lt;a href=&quot;http://azarask.in/blog/&quot;&gt;Aza Raskin&lt;/a&gt; is trying to use this to show bookmark links in an optimal way. Rather than having a static set of bookmark links like I have below under each blog post, he is suggesting to present bookmarks links to sites which the reader is actually using which can be found using his script, Pretty neat idea :).&lt;br /&gt;Now, &lt;a href=&quot;http://www.mikeonads.com/about/&quot;&gt;Mike Nolet&lt;/a&gt; has gone one step further and developed a widget that tries to determine your gender based on your browser history using a simple algorithm with a modified version of Social History script. It uses &lt;a href=&quot;http://www.quantcast.com/top-sites-1&quot;&gt;US top 10K sites&lt;/a&gt; for this. You can try out the widget &lt;a href=&quot;http://www.mikeonads.com/2008/07/13/using-your-browser-url-history-estimate-gender/&quot;&gt;here&lt;/a&gt;. For me, it correctly determined I am a male with a probability 97% even though it has not worked for some people, so you better try and find out.&lt;br /&gt;&lt;br /&gt;You may also find following video interesting about today's Internet.&lt;br /&gt;</description>

	<pubDate>Sun, 20 Jul 2008 07:04:40 +0000</pubDate>
</item>

<item>
	<title>Ajith Ranabahu: My first car in US !</title>
	<guid isPermaLink="true">http://blog.ranabahu.org/2008/07/my-first-car-in-us.html</guid>

	<description>After about 2 years living in US I got my first car here (I've had cars before but this is my first in US). Its a Honda Accord and the pictures will tell the story :) Bunch of thanks goes to &lt;a href=&quot;http://knoesis.wright.edu/students/meena/&quot;&gt;Meena&lt;/a&gt; and &lt;a href=&quot;http://knoesis.wright.edu/researchers/gomadam/&quot;&gt;Karthik&lt;/a&gt; for helping me out in my car hunt.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com/ajith.ranabahu/MyCar/photo#5224870052491504594&quot;&gt;&lt;img src=&quot;http://lh5.ggpht.com/ajith.ranabahu/SIJ3oVRVK9I/AAAAAAAAELI/WZL9SJbiSgo/s288/IMG_1333.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com/ajith.ranabahu/MyCar/photo#5224870069142911618&quot;&gt;&lt;img src=&quot;http://lh5.ggpht.com/ajith.ranabahu/SIJ3pTTVeoI/AAAAAAAAELU/4d4iYv6wIOo/s288/IMG_1334.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com/ajith.ranabahu/MyCar/photo#5224870085962488722&quot;&gt;&lt;img src=&quot;http://lh3.ggpht.com/ajith.ranabahu/SIJ3qR9b25I/AAAAAAAAELg/7hPXkZTnKao/s288/IMG_1335.JPG&quot; /&gt;&lt;/a&gt;</description>

	<pubDate>Sat, 19 Jul 2008 20:19:50 +0000</pubDate>
</item>

<item>
	<title>Eran Chinthaka: Places to visit in Washington State - Mt St Helens</title>
	<guid isPermaLink="true">http://blog.chinthaka.org/2008/07/places-to-visit-in.html</guid>

	<description>&lt;span&gt;Location &lt;/span&gt;: Johnston Ridge Observatory, At the end of Spirit Lake Memorial Highway, WA&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Directions&lt;/span&gt; : &lt;span&gt;&lt;/span&gt;&lt;a href=&quot;http://maps.google.com/maps?f=d&amp;hl=en&amp;geocode=7293208478088111098,46.276258,-122.216721&amp;saddr=Bellevue,+WA&amp;daddr=Johnston+Ridge+%4046.276258,-122.216721&amp;mra=pi&amp;mrcr=0&amp;doflg=ptm&amp;sll=46.606054,-122.148743&amp;sspn=0.862314,2.535095&amp;ie=UTF8&amp;t=h&amp;z=8&quot;&gt;Google Maps&lt;/a&gt;, About 3 hrs from Bellevue, WA&lt;br /&gt;&lt;br /&gt;&lt;span&gt;For GPS : 46.276258,-122.216721&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Link : &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;a&quot;&gt;en.wikipedia.org/wiki/Mount_St._Helens&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This was one of the interesting trips I went, with my family. The road to Mt St Helens was full of fascinating scenaries.&lt;br /&gt;After we exit from I-5, the road goes through a small town and after that the road will be full of sharp turns. At one time there was a sign saying, it was the last place to get gas. It was 37 files from that point, but I didn't realize we will be gaining elevation and my car will have to do extra work. (Thanks to Corolla's fuel efficiency I didn't run out of gas :) )&lt;br /&gt;There are couple of view points on the way and most of them were gorgeous. There was one place where you can see the path of mud and lava flow.&lt;br /&gt;When we got to Johnston Ridge Visitor Center, the view was great. Since it was a sunny day we could see the whole mountain without any trouble. There are couple of trails lead by some rangers and one of them was going towards spirit lake. Visitor center also had some movies being played inside a theater.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://lh3.ggpht.com/eran.chinthaka/SIGPUbUo0QI/AAAAAAAAB8k/LUlvCu6VWbc/mt-helens.jpg&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://lh3.ggpht.com/eran.chinthaka/SIGPUbUo0QI/AAAAAAAAB8k/LUlvCu6VWbc/mt-helens.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align=&quot;center&quot;&gt;This is a combination of three photos, showing the mighty Mt St Helens and the living crater.&lt;br /&gt;&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://lh3.ggpht.com/eran.chinthaka/SIGPWB89G7I/AAAAAAAAB8s/5sxjblq7ww4/mt-helens-2.jpg&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://lh3.ggpht.com/eran.chinthaka/SIGPWB89G7I/AAAAAAAAB8s/5sxjblq7ww4/mt-helens-2.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;Mt St Helens and the lava and mud flow path&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://lh3.ggpht.com/eran.chinthaka/SIGPWpCn7QI/AAAAAAAAB80/zpDedOjy40w/mt-helens-360.jpg&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://lh3.ggpht.com/eran.chinthaka/SIGPWpCn7QI/AAAAAAAAB80/zpDedOjy40w/mt-helens-360.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;360' view around the Mt St Helens area. If you look at the surrounding mountains, you can still see some burnt trees&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;br /&gt; &lt;/p&gt;</description>

	<pubDate>Sat, 19 Jul 2008 03:21:55 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: How to use Axis2 codegen ANT task</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/07/how-to-use-axis2-codegen-ant-task.html</guid>

	<description>&lt;a href=&quot;http://ws.apache.org/axis2/&quot;&gt;Apache Axis2&lt;/a&gt; code generator tool provides a very useful custom ANT task. All of the command line code generation options are available with the ANT task as well.&lt;br /&gt;Lets see how a simple client side code generation is done using the ANT task.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Pre-requisites:&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;http://ws.apache.org/axis2/download.cgi&quot;&gt;Install Apache Axis2 -1.3&lt;/a&gt; or higher&lt;br /&gt;&lt;a href=&quot;http://ant.apache.org/bindownload.cgi&quot;&gt;Install Apache ANT-1.7&lt;/a&gt; or higher&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a directory and start to create a build.xml inside that as given below. (eg:- C:\temp\build.xml)&lt;br /&gt;&lt;br /&gt;&amp;lt;project name=&quot;CodegenExample&quot; default=&quot;codegen&quot; basedir=&quot;.&quot;&amp;gt;&lt;br /&gt;   &lt;br /&gt;     &amp;lt;path id=&quot;axis2.classpath&quot;&amp;gt;&lt;br /&gt;     &amp;lt;fileset dir=&quot;C:\axis2\axis2-1.4\lib&quot;&amp;gt;&lt;br /&gt;     &amp;lt;include name=&quot;**/*.jar&quot; /&amp;gt;&lt;br /&gt;     &amp;lt;/fileset&amp;gt;&lt;br /&gt;     &amp;lt;/path&amp;gt;&lt;br /&gt;   &lt;br /&gt;    &amp;lt;target name=&quot;codegen&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;taskdef name=&quot;axis2-wsdl2java&quot;&lt;br /&gt;     classname=&quot;org.apache.axis2.tool.ant.AntCodegenTask&quot;&lt;br /&gt;     classpathref=&quot;axis2.classpath&quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;axis2-wsdl2java&lt;br /&gt;     wsdlfilename=&quot;C:\test\your.wsdl&quot;&lt;br /&gt;     output=&quot;C:\output&quot; /&amp;gt;&lt;br /&gt;     &amp;lt;/target&amp;gt;&lt;br /&gt;   &lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;br /&gt;If you are familiar with ANT, you should be able to understand this simple build script easily. We use the path referenced as &quot;axis2.classpath&quot; to add Axis2 library jars which are placed at AXIS2_HOME/lib (In our example, C:\Axis2\Axis2-1.4\lib)&lt;br /&gt;&lt;br /&gt;Axis2 codegen ant task is implemented by the org.apache.axis2.tool.ant.AntCodegenTask class. Therefore we refer to that inside a taskdef as given in &quot;taskdef name=&quot;axis2-wsdl2java&quot;&lt;br /&gt;&lt;br /&gt;wsdlfilename attribute is equivalent to the -uri option in wsdl2 java command line tool and output is similar to -o option.&lt;br /&gt;&lt;br /&gt;Replace the values of wsdlfilename according to your wsdl location. &lt;br /&gt;&lt;br /&gt;&lt;span&gt;Step 2&lt;/span&gt;&lt;br /&gt;Open a command prompt and go to the directory where you saved the above build.xml.&lt;br /&gt;Type 'ant'&lt;br /&gt;&lt;br /&gt;The generated stub classes will be saved in the specified out put directory.</description>

	<pubDate>Sat, 19 Jul 2008 01:53:53 +0000</pubDate>
</item>

<item>
	<title>Sanjiva Weerawarana: Connectivity technology confluence: GSM, 3G, Wifi, IP</title>
	<guid isPermaLink="true">http://sanjiva.weerawarana.org/2008/07/connectivity-technology-confluence-gsm.html</guid>

	<description>Sometime ago I bought a &lt;a href=&quot;http://na.blackberry.com/eng/devices/device-detail.jsp?navId=H0,C221,P623&quot;&gt;Blackberry Curve 8320&lt;/a&gt; from T-Mobile in the US. I needed to have a US phone number with me but at the same time I hate to pay the $3-4/minute roaming rates that T-Mobile (and everyone else) charges when I'm out of the US. In addition the Wifi support, this particular model has a feature called &lt;a href=&quot;http://en.wikipedia.org/wiki/Generic_Access_Network&quot;&gt;UMA&lt;/a&gt; - Unlicensed Mobile Access - basically it allows the cellular call to be routed via the Wifi connection over the Internet. That basically means that I can have a US number at home and in my office in Sri Lanka and pay nothing extra for the call. (In fact the call is actually free - its part of a flat rate service you buy from T-Mobile.)&lt;br /&gt;&lt;br /&gt;Anyway, right now I'm in a location where there's no 3G. However, &lt;a href=&quot;http://www.icta.lk/insidePages/ICTA/OurTeam.asp#Shahani&quot;&gt;my wife&lt;/a&gt; has a 3G connection from &lt;a href=&quot;http://www.mobitel.lk/m3/broadband/broadband.html&quot;&gt;Mobitel&lt;/a&gt; using a &lt;a href=&quot;http://www.huawei.com/mobileweb/en/products/view.do?id=282&quot; target=&quot;_blank&quot;&gt;Huawei E220 HSDPA USB modem&lt;/a&gt; that's connected to her laptop. I also have a pocket router (a &lt;a href=&quot;http://www.dlink.com/products/?pid=346&amp;sec=0&quot;&gt;D-Link DWL-G730AP&lt;/a&gt;) I always carry around with me. She also runs Ubuntu on her machine - so I set up her machine to do IP forwarding between the 3G connection (which is a USB device) and the wired ethernet connection to the router. So we have our own little wifi hotspot .. my laptop (from which I'm writing this blog) is connected via the wifi router thru her machine via 3G to the Internet.&lt;br /&gt;&lt;br /&gt;Ok that bit is easy. The cool thing is my cell phone also is now connected thru that .. that means right now if someone calls my US cell phone number, its going thru that person's network (cellular or otherwise), to T-Mobile and then over the Internet via Mobitel's IP network via 3G to my wife's laptop then over wired ethernet to my router and then wirelessly to my cell phone. In the process the packets would've survived 2 levels of NATing (once by my router, once by the laptop).&lt;br /&gt;&lt;br /&gt;Not bad, eh?</description>

	<pubDate>Fri, 18 Jul 2008 19:12:11 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Life after Bug Tracking Systems</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/18/Life-after-Bug-Tracking-Systems</guid>

	<description>&lt;p&gt;&lt;a href=&quot;http://navarra.ca/?p=68&quot;&gt;&lt;cite&gt;Avery Pennarun&lt;/cite&gt;&lt;/a&gt;: &lt;em&gt;The git developers don’t track bugs. If you find a bug, you can write about it on the mailing list. You might get flamed. And then probably someone will ask you to fix it yourself and send in a patch.  This is unlike almost all other open source projects.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sometimes ideas take time to percolate.  When I first saw Avery’s post, it didn’t quite sink in.&lt;/p&gt;
&lt;p&gt;When I started playing with &lt;a href=&quot;http://code.intertwingly.net/public/hg/js-decimal/&quot;&gt;hg&lt;/a&gt;, I noticed that I was applying a different style of development than I &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=397215&quot;&gt;previously had done&lt;/a&gt;.  One that I felt more comfortable with.  And I thought again about Avery’s post.&lt;/p&gt;
&lt;p&gt;And when I came across &lt;a href=&quot;http://www.ruby-forum.com/topic/157375#693445&quot;&gt;Chad Wooley’s comment&lt;/a&gt;: &lt;em&gt;But using your SCM as a messaging platform?  Come on, that’s taking the social networking thing too far...  I pray that I never see the official Twitter channel for an open source project I care about, because I ain’t going there...&lt;/em&gt;; I once again thought about Avery’s post.&lt;/p&gt;
&lt;p&gt;It now occurs to me that not all projects need bug tracking systems.  In fact, for some projects, &lt;b&gt;not&lt;/b&gt; having a bug tracking system may very well be a feature.  In particular, if the bug tracking system on your project is the place where feedback goes to die, you might be better served not having one.  But if you do decide to go this way, you would be well served to consider one of the various DVCS systems out there, like bzr, hg, and git.&lt;/p&gt;</description>

	<pubDate>Fri, 18 Jul 2008 14:34:20 +0000</pubDate>
</item>

<item>
	<title>Nandana Mihindukulasooriya: OpenID, Phishing &amp;amp; PAPE, Are we there yet ?</title>
	<guid isPermaLink="true">http://nandana83.blogspot.com/2008/07/openid-phishing-pape-are-we-there-yet.html</guid>

	<description>When I get to know how &lt;a href=&quot;http://openid.net/&quot;&gt;OpenID&lt;/a&gt; works, I was really impressed with the idea. It is pretty simple and straight forward compared to WS – Sec* stuff that I am messing up with. And it seems OpenID is becoming the hype and sometimes we tend to think of it as a silver bullet. (At least I thought). OpenID is cool as a &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_sign-on&quot;&gt;SSO&lt;/a&gt; solution. But what about &lt;a href=&quot;http://en.wikipedia.org/wiki/Phishing&quot;&gt;phishing&lt;/a&gt;. Does it prevent phishing ? The answer is no. In fact, it seems to make phishermens life easy by providing him a new way of driving the fish in to the nets. Why ? Because the way OpenID works the phishing site gets the control of redirecting the user to impersonating openID provider without much suspicion and it can find enough information about your openID provider to automate this process.&lt;br /&gt;If you want see how this really happens, you can try out &lt;a href=&quot;http://idtheft.fun.de/&quot;&gt;OpenID Phishing demo&lt;/a&gt; . And if you don't want to try it out Mike Jones has illustrated how OpenID Phishing demo works in his blog post &lt;a href=&quot;http://self-issued.info/?p=73&quot;&gt;&quot;Gone Phishing&quot;&lt;/a&gt;.  Stefan Brands also summarizes security issues of OpenID in his post &lt;a href=&quot;http://idcorner.org/2007/08/22/the-problems-with-openid/&quot;&gt;“The problem(s) with OpenID”&lt;/a&gt;. And further, Ben Laurie’s describes this problem in more detail in his post &lt;a href=&quot;http://www.links.org/?p=187&quot;&gt;&quot;OpenID: Phishing Heaven&quot;&lt;/a&gt; . In response, &lt;a href=&quot;http://simonwillison.net/&quot;&gt;Simon Willison&lt;/a&gt; suggests how OpenID providers can help to &lt;a href=&quot;http://simonwillison.net/2007/Jan/19/phishing/&quot;&gt;reduce the risk of phishing&lt;/a&gt;. The idea is to make users directly go to the OpenID provider without redirecting them or making them follow links. According to Simon, “&lt;span&gt;Instead of displaying the login form directly, providers should show a page that looks something like this: To log in, please navigate to login.example.com. The page your are currently viewing should contain no links; if there are any links or this text is changed in any way you may become a victim of online identity theft.&lt;/span&gt;”. He also suggests that OpenID provider URLs should be short, distinctive and memorable to make this effective. Yes, most of people agree that the best solution to prevent phishing is to educate the users but then again is this really possible ? Will some ordinary person will remember this if he is forwarded impersonating web sites which will directly offer a login screen or a link. Will someone who don't care a thing about what is on address bar will notice that is is not http://myopenid.com ?&lt;br /&gt;One way of doing this is OpenID providers forcing users to use bookmark to login to OpenID provider. My OpenID's &lt;a href=&quot;http://kveton.com/blog/2007/01/24/myopenid-new-anti-phishing-tools-available/&quot;&gt;SafeSignIn&lt;/a&gt; is one such solution. But if someone impersonating the OpenID provider puts up a nice message saying as a new feature now you can login directly without using the bookmark how many people will fall in to that. Another solution is to use some pre configured images or icons , so that only the real provider can present you with the image/icon you chose and if you don't see the image/icon you can notice that you have landed on a spoofed site. &lt;a href=&quot;http://security.yahoo.com/article.html?aid=2006102507&quot;&gt;Yahoo Sign in Seal&lt;/a&gt; and My OpenID's &lt;a href=&quot;http://kveton.com/blog/2007/01/24/myopenid-new-anti-phishing-tools-available/&quot;&gt;Personal Icon&lt;/a&gt; are two such solutions. But again, this depends on how much user is aware of these features. &lt;a href=&quot;https://pip.verisignlabs.com/seatbelt.do&quot;&gt;VeriSign's OpenID SeatBelt Plugin&lt;/a&gt; is another approach taken to prevent phishing. This plugin has an “Enable Phish Detection” option and when it is enabled, it tries detect phishing attempts when we are redirected to OpenID providers and always redirect us to the legitimate OpenID provider. Another solution is to use OpenID with Infocards.Kim Cameron talks on how to prevent phishing attacks with Infocard in detail in his blog post &lt;a href=&quot;http://www.identityblog.com/?p=659&quot;&gt;&quot;Integrating OpenID and Infocard&quot;&lt;/a&gt; .There are seems to be many other custom efforts to avoid phishing attacks but OpenID seems to be moving to a standard solution.&lt;br /&gt;&lt;a href=&quot;http://openid.net/specs/openid-provider-authentication-policy-extension-1_0-02.html&quot;&gt;OpenID Provider Authentication Policy Extension&lt;/a&gt; (PAPE) specification tries to solve this problem by enabling OpenID relying parties to request that a phishing-resistant authentication method be used by the OpenID provider and for providers to inform relying parties whether a phishing-resistant authentication method was used. So if the OpenID provider doesn't authenticate the user in a phishing resistant way,  OpenID provider should let the relying party know that it didn't use phishing resistant authentication so the relying party can decide what to do. But is this completely bullet proof ? This only guarantees that OpenID provider used a phishing resistant authentication this time as replying party asked so and it doesn't necessarily mean that it always used a phishing resistant authentication. What if some phisherman, impersonated a relying party and user has already become a victim of a phishing attack. Then when the legitimate relying party asks the open id provider to do the authentication in a phishing resistant manner, still the phisherman can succeed as he has already got the necessary information.&lt;br /&gt;So it seems, protecting an average user from phishing only using the technology (without educating him with security concerns ) is a pretty hard thing. And yeah, we have to agree it is an inherent problem and not a problem of OpenID itself. So will we be able to  get rid of phishing without users support just using the technology ? May be we will, someday. Who knows ....</description>

	<pubDate>Fri, 18 Jul 2008 07:43:06 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: Scripting support with Axis2</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/scripting-support-with-axis2.html</guid>

	<description>As we all know Apache &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2 &lt;/a&gt;is a Java based Web service framework. In addition to that Axis2 is becoming as the de facto Java based Web service framework. Which is obvious when we look at the number of &lt;a href=&quot;http://blogs.deepal.org/2008/06/sudden-increases-in-axis2-download.html&quot;&gt;daily downloads&lt;/a&gt; as well as a number of companies who use &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2&lt;/a&gt;. It took about four years to come to this position with great support from the community.&lt;br /&gt;&lt;br /&gt;Now we can find a number of scripting languages which run on JVM. If a scripting language is running on the JVM then we can easily write scripting extension to Axis2. At the moment &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2 &lt;/a&gt;has scripting extensions for;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Groovy &lt;/li&gt;&lt;li&gt;Java Script   (&lt;a href=&quot;http://wso2.org/projects/mashup&quot;&gt;WSO2 Mashup server&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;JRuby support &lt;/li&gt;&lt;li&gt;Jython support&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Meaning of language extension is , one can deploy scripting services in Axis2 as well as one can use scripting language to invoke or access a service deploy in anywhere.&lt;br /&gt;&lt;br /&gt;With the Axis2 architecture , we can easily plug a new language extension. It is just a matter of writing few components and registry in Axis2.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.deepal.org/2008/06/learning-axis2-how-custom-deployer.html&quot;&gt;Deployer &lt;/a&gt;– to process the scripting file and create a Web service from that&lt;/li&gt;&lt;li&gt;Schema generator – Generating schema from the scripting class , for example if we are deploying a JS file , then generate corresponding WSDL&lt;/li&gt;&lt;li&gt;Message Receiver – when a message receive for that particular service , it will first come to the message receiver and that will invoke the scripting class and send the response if any.&lt;/li&gt;&lt;/ul&gt;Registering an extension in Axis2 is just a matter of adding your custom &lt;a href=&quot;http://blogs.deepal.org/2008/06/learning-axis2-how-custom-deployer.html&quot;&gt;deployer &lt;/a&gt;in to axis2.xml.</description>

	<pubDate>Thu, 17 Jul 2008 21:15:01 +0000</pubDate>
</item>

<item>
	<title>Afkham Azeez: You can check-out any time you like, But you can never leave!</title>
	<guid isPermaLink="true">http://afkham.org/2008/07/you-can-check-out-any-time-you-like-but.html</guid>

	<description>Today there was a farewell party for &lt;a href=&quot;http://blogs.deepal.org/&quot;&gt;Deepal&lt;/a&gt;, &lt;a href=&quot;http://blog.ruchith.org/&quot;&gt;Ruchith&lt;/a&gt;, &lt;a href=&quot;http://samindaa.blogspot.com/&quot;&gt;Saminda&lt;/a&gt;, &lt;a href=&quot;http://sankas.blogspot.com/&quot;&gt;Sanka&lt;/a&gt;, &lt;a href=&quot;http://sandakith.wordpress.com/&quot;&gt;Sandakith&lt;/a&gt;, &lt;a href=&quot;http://nethu.org/&quot;&gt;Dinesh&lt;/a&gt;, &lt;a href=&quot;http://moratuwage.blogspot.com/&quot;&gt;Diluka&lt;/a&gt;, &lt;a href=&quot;http://suranjay.blogspot.com/&quot;&gt;Suran&lt;/a&gt; &amp;amp; Chandima. Most of them are leaving for grad school to pursue masters degrees &amp;amp; doctoral studies. It was a sad day since these are some of the people who helped shape WSO2 from a technical perspective as well as its culture. They were also some of my close friends, some of whom I've known throughout my career. &lt;a href=&quot;http://sanjiva.weerawarana.org/&quot;&gt;Sanjiva&lt;/a&gt;, in his farewell address mentioned that &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt; is like &lt;a href=&quot;http://www.azlyrics.com/lyrics/eagles/hotelcalifornia.html&quot;&gt;Hotel California&lt;/a&gt;; &lt;span&gt;You can check-out any time you like, But you can never leave!&lt;/span&gt;  Indeed, once a WSO2er, always a WSO2er. &lt;a href=&quot;http://wso2.com/&quot;&gt;WSO2&lt;/a&gt; is such a unique company not only taking into consideration the technological aspects, but also the environment &amp;amp; culture. Anybody who had worked at WSO2 would agree that it was a unique experience &amp;amp; opportunity. I'd like to wish all of these guys the best of luck &amp;amp; wish that they come back to work at this great place after completing their studies.&lt;br /&gt;&lt;br /&gt;</description>

	<pubDate>Thu, 17 Jul 2008 01:40:01 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: Ports in Use</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=0D1A2C36EF28AE5C0AB4D7A9A7F485CE</guid>

	<description>Ruwan Linton
&lt;a href=&quot;http://ruwansblog.blogspot.com/2008/07/registering-port-number-for-product.html&quot;&gt;
covers the process used to get an IANA-assigned port for Apache Synapse. 
&lt;/a&gt;
&lt;p&gt;
I don't think I've ever bothered to talk to IANA for a port for any of my applications. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It's a hint. If someone is using your port -even if it's IANA assigned- you
have to be the one to deal with it. So your port must always be a configurable
option.
&lt;/li&gt;
&lt;li&gt;A lot of ops teams like to change ports around, to add a bit of obscurity
to the game. There's no need to run SSH over port 22, for example, and doing
so on remotely visible machines just increases your server load as machines around the world try and guess the password for likely accounts. 
&lt;/li&gt;
&lt;li&gt;
The real ports you have to avoid are those used by the trojans, by Storm (port  7871 BTW) and other worms. Because the security scanners will throw a wobbly when any scanned machine has those ports open; its taken as a sign of being 0wned. And of course, the malware authors never bother to go through IANA to pick a port.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
One thing that flexible applications can do is
not require a specific port. This is what the &lt;i&gt;portmapper&lt;/i&gt;
daemon can do. It's a shame that this tool/binding protocol has fallen into effective disuse.
&lt;/p&gt;</description>

	<pubDate>Wed, 16 Jul 2008 09:51:00 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Stalled Tickets</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/15/Stalled-Tickets</guid>

	<description>&lt;p&gt;&lt;a href=&quot;http://joseph.randomnetworks.com/archives/2008/07/14/wordpress-26-xml-rpc-atompub-changes/&quot;&gt;&lt;cite&gt;Joseph Scott&lt;/cite&gt;&lt;/a&gt;: &lt;em&gt;we can definitely use more people looking at the XML-RPC and AtomPub code.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My experience matches &lt;a href=&quot;http://blog.codedread.com/archives/2008/07/15/how-do-you-get-patches-into-wordpress/&quot;&gt;Jeff’s&lt;/a&gt;, namely that post &lt;a href=&quot;http://intertwingly.net/blog/2007/08/30/WordPress-2-3-AtomPub&quot;&gt;2.3&lt;/a&gt;; contributions of time in terms of showing up on the IRC channel; producing and commenting on both bug and feature requests; and in terms producing actual patches, rarely produces the desired result.  An en example, &lt;a href=&quot;http://trac.wordpress.org/ticket/5195&quot;&gt;this ticket&lt;/a&gt; was explicitly opened based on a request from Joeseph in order to obtain feedback, and to date it has received none.&lt;/p&gt;
&lt;p&gt;That’s fine — I for one certainly have plenty of other places to focus my attention — but if the WP team wants more people looking at ares such as XHTML, Atom and/or AtomPub code, IMHO there needs to be a person with commit access to the codebase who is actively engaged in facilitating these efforts.&lt;/p&gt;</description>

	<pubDate>Tue, 15 Jul 2008 17:21:02 +0000</pubDate>
</item>

<item>
	<title>Sam Ruby: Tracking Towards Decimal Support in Firefox</title>
	<guid isPermaLink="true">http://www.intertwingly.net/blog/2008/07/14/Tracking-Towards-Decimal-Support-in-Firefox</guid>

	<description>&lt;p&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=445178&quot;&gt;Bug 445178&lt;/a&gt; (decimal) – Implement Decimal Support&lt;/p&gt;
&lt;p&gt;Thanks &lt;a href=&quot;http://ejohn.org/&quot;&gt;John&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href=&quot;http://intertwingly.net/stories/2008/07/14/&quot;&gt;Downloadable&lt;/a&gt; standalone SpiderMonkey executables for Darwin, Linux, and Windows.&lt;/p&gt;</description>

	<pubDate>Tue, 15 Jul 2008 00:59:27 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: Spring Web services and Axis2</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/spring-web-services-and-axis2.html</guid>

	<description>&lt;p align=&quot;justify&quot;&gt;As you know &lt;a href=&quot;http://ws.apache.org/axis2&quot;&gt;Axis2 &lt;/a&gt;is a Web service framework which has support many things. It has support for scripting languages , it has support for &lt;a href=&quot;http://wso2.org/projects/wsas/java&quot;&gt;data services&lt;/a&gt; and it has &lt;a href=&quot;http://wso2.org/projects/wsas/java&quot;&gt;support for EJB&lt;/a&gt; , Corba and etc. In addition that since a long time it has support for Spring as well. With that you can deploy Spring bean as Web services in Axis2. Yes I agree it is yet another way of getting the thing done. I also realized that is not enough for spring developers. They need everything works on spring.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;To solve that in &lt;a href=&quot;http://wso2.com&quot;&gt;WSO2 &lt;/a&gt;we came up with a solution where we have integrated Axis2 into Spring. When doing this we have convert all the axis2 configurations files into bean descriptors , for example we came up with a set of beans for axis2.xml. With this we have integrated Axis2 smoothly into Spring. After thing anyone can easily expose a bean as a Web service. And get the power of all the other WS* support , such as security , reliability  etc. , above all you can get the power of Axis2 while you are in spring container.  &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;With this approach you can make a bean into a Web service just using following line of codes&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id=&quot;services&quot; class=&quot;org.wso2.spring.ws.WebServices&quot;&amp;gt;&lt;br /&gt;    &amp;lt;property name=&quot;services&quot;&amp;gt;&lt;br /&gt;    &amp;lt;list&amp;gt;&lt;br /&gt;     &amp;lt;bean id=&quot;helloService&quot; class=&quot;org.wso2.spring.ws.SpringWebService&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;property name=&quot;serviceBean&quot; ref=&quot;helloworld&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;property name=&quot;serviceName&quot; value=&quot;helloWorldService&quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;         &amp;lt;/bean&amp;gt;&lt;br /&gt;    &amp;lt;/list&amp;gt;&lt;br /&gt;    &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;You can read more about Spring support from the following links&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;http://wso2.org/projects/wsf/spring&quot;&gt;WSO2 Web Services Framework for Spring&lt;/a&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;http://wso2.org/library/3208&quot;&gt;Hello World with WSO2 WSF/Spring&lt;/a&gt;&lt;br /&gt; &lt;/p&gt;</description>

	<pubDate>Mon, 14 Jul 2008 22:13:41 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: Multiple source directories with maven2</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/multiple-source-directories-with-maven2.html</guid>

	<description>&lt;p align=&quot;justify&quot;&gt;Without any doubt I can tell that  Maven and Maven2 are very powerful project management tool, specially very useful for project building.  &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;As I remember correct in maven1 it had a way to add multiple source directories , however when I switch to maven2 , I found that it does not have support for multiple source directories by default. Recently I got the requirement of adding multiple source  directories for &lt;a href=&quot;http://wso2.org/projects/registry&quot;&gt;WSO2 Registry &lt;/a&gt;sample module. That module has few sub directories and I do not need to treat them as module. What I wanted was to add them as source directories in the sample module. So when I do the googling I found a very cool maven pluging called “build-helper-maven-plugin” , which helps us to add multiple source directory to a single module.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Structure of the sample module is as follow;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br /&gt;&lt;/p&gt;           &lt;p align=&quot;justify&quot;&gt;samples&lt;br /&gt;-- handler-sample&lt;br /&gt;  --src&lt;br /&gt;-- filebased-sample&lt;br /&gt;  --src&lt;br /&gt;-- wsdl-sample&lt;br /&gt;  -- src&lt;br /&gt;-- collection-handler-sample&lt;br /&gt;  -- src&lt;br /&gt;-- custom-ui-sample1&lt;br /&gt;  -- src&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;So the corresponding pluging configuration is as follows&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;             &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;&lt;br /&gt;             &amp;lt;artifactId&amp;gt;build-helper-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;             &amp;lt;version&amp;gt;1.1&amp;lt;/version&amp;gt;&lt;br /&gt;             &amp;lt;executions&amp;gt;&lt;br /&gt;                 &amp;lt;execution&amp;gt;&lt;br /&gt;                     &amp;lt;id&amp;gt;add-source&amp;lt;/id&amp;gt;&lt;br /&gt;                     &amp;lt;phase&amp;gt;generate-sources&amp;lt;/phase&amp;gt;&lt;br /&gt;                     &amp;lt;goals&amp;gt;&lt;br /&gt;                         &amp;lt;goal&amp;gt;add-source&amp;lt;/goal&amp;gt;&lt;br /&gt;                     &amp;lt;/goals&amp;gt;&lt;br /&gt;                     &amp;lt;configuration&amp;gt;&lt;br /&gt;                         &amp;lt;sources&amp;gt;&lt;br /&gt;                             &amp;lt;source&amp;gt;handler-sample/src&amp;lt;/source&amp;gt;&lt;br /&gt;                             &amp;lt;source&amp;gt;filebased-sample/src&amp;lt;/source&amp;gt;&lt;br /&gt;                             &amp;lt;source&amp;gt;wsdl-sample/src&amp;lt;/source&amp;gt;&lt;br /&gt;                             &amp;lt;source&amp;gt;collection-handler-sample/src&amp;lt;/source&amp;gt;&lt;br /&gt;                             &amp;lt;source&amp;gt;custom-ui-sample1/src&amp;lt;/source&amp;gt;&lt;br /&gt;                         &amp;lt;/sources&amp;gt;&lt;br /&gt;                     &amp;lt;/configuration&amp;gt;&lt;br /&gt;                 &amp;lt;/execution&amp;gt;&lt;br /&gt;             &amp;lt;/executions&amp;gt;&lt;br /&gt;         &amp;lt;/plugin&amp;gt;</description>

	<pubDate>Mon, 14 Jul 2008 21:19:02 +0000</pubDate>
</item>

<item>
	<title>Eran Chinthaka: Google thinks I am a &quot;virus&quot;</title>
	<guid isPermaLink="true">http://blog.chinthaka.org/2008/07/google-thinks-i-am-virus.html</guid>

	<description>I was searching for a grocery store in my area, in google, and this is what the result was.&lt;br /&gt;&lt;br /&gt;&quot;We're sorry .. but your query looks similar to automated requests from a computer virus or spyware application. .... &quot;&lt;br /&gt;&lt;br /&gt;Seems some one had messed up automatic spyware detection. Can this be due to an error in IE?&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://bp0.blogger.com/_i-a8GfjGfM0/SHvOAtFFJ0I/AAAAAAAAB7Y/CcpmRop57vA/s1600-h/google-error.jpg&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5222994704362448706&quot; alt=&quot;&quot; src=&quot;http://bp0.blogger.com/_i-a8GfjGfM0/SHvOAtFFJ0I/AAAAAAAAB7Y/CcpmRop57vA/s400/google-error.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Update  : I just checked couple of more queries, now using firefox, and I got the same error. So it is some thing happening beyond my machine. Can be internal network or google is messing up.&lt;br /&gt;&lt;div&gt;&lt;a href=&quot;http://bp2.blogger.com/_i-a8GfjGfM0/SHvN4mi_boI/AAAAAAAAB7Q/8ND0nf7MACQ/s1600-h/google-error.jpg&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;</description>

	<pubDate>Mon, 14 Jul 2008 18:26:21 +0000</pubDate>
</item>

<item>
	<title>Charitha Kankanamge: How to access HTTP headers from an Axis2 service implementation class</title>
	<guid isPermaLink="true">http://charithaka.blogspot.com/2008/07/how-to-access-http-headers-from-axis2.html</guid>

	<description>I have seen some users in axis user mailing list ask the question on how to access HTTP headers of the request SOAP message using the service implementation class.&lt;br /&gt;It's easy and straightforward with messageContext class.&lt;br /&gt;Lets see with an example.&lt;br /&gt;&lt;br /&gt;1. Create a service implementation class as follows&lt;br /&gt;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;&lt;br /&gt;import org.apache.axis2.context.MessageContext;&lt;br /&gt;&lt;br /&gt;public class TestService {&lt;br /&gt;&lt;br /&gt;public String MyOperation(String s){&lt;br /&gt;       &lt;br /&gt;        &lt;span&gt;MessageContext msgCtx = MessageContext.getCurrentMessageContext();&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        HttpServletRequest obj =(HttpServletRequest)msgCtx.getProperty(&quot;transport.http.servletRequest&quot;);&lt;/span&gt;&lt;br /&gt;        System.out.println(&quot;Acceptable Encoding type: &quot;+&lt;span&gt;obj.getHeader(&quot;Accept-Encoding&quot;)&lt;/span&gt;);&lt;br /&gt;        System.out.println(&quot;Acceptable character set: &quot; +obj.getHeader(&quot;Accept-Charset&quot;));&lt;br /&gt;        System.out.println(&quot;Acceptable Media Type: &quot;+obj.getHeader(&quot;Accept&quot;));&lt;br /&gt;        return s;&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;As you can see in the highlighted statements, first we need to get the current messageContext. Then from the messageContext, we can get the HTTPServletRequest object from which we can get whatever HTTP headers we want.&lt;br /&gt;&lt;br /&gt;2. Write service descriptor(services.xml) for the above service class and deploy the service in Axis2 (If you are not familiar with Axis2 deployment, please read &lt;a href=&quot;http://ws.apache.org/axis2/1_4/userguide-buildingservices.html#buildservices&quot;&gt;Axis2 user's guide&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;3. Invoke the service in RESTful manner&lt;br /&gt;http://:/services/TestService/MyOperation?s=hi&lt;br /&gt;&lt;br /&gt;You will see the following in Axis2 run time console.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Acceptable Encoding type: gzip,deflate&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Acceptable character set: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Acceptable Media Type: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;/span&gt;</description>

	<pubDate>Mon, 14 Jul 2008 07:41:47 +0000</pubDate>
</item>

<item>
	<title>Paul Fremantle: Mashup IM</title>
	<guid isPermaLink="true">http://pzf.fremantle.org/2008/07/mashup-im.html</guid>

	<description>&lt;a href=&quot;http://wso2.com/about/engineers/yumani/&quot;&gt;Yumani Ranaweera&lt;/a&gt; has written &lt;a href=&quot;http://wso2.org/library/3804&quot;&gt;an excellent article&lt;/a&gt; on mashing up Instant Messaging (IM) with the &lt;a href=&quot;http://wso2.org/projects/mashup/&quot;&gt;WSO2 Mashup Server&lt;/a&gt;.</description>

	<pubDate>Mon, 14 Jul 2008 01:13:56 +0000</pubDate>
</item>

<item>
	<title>Deepal Jayasinghe: Announcing: New Google C++ Testing Framework</title>
	<guid isPermaLink="true">http://blogs.deepal.org/2008/07/announcing-new-google-c-testing.html</guid>

	<description>The folks at Google have recently open-sourced their &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/XUnit&quot;&gt;xUnit&lt;/a&gt;-based testing framework for C++ development. The framework is said by project developer Zhanyong Wan to have been in use internally at Google for years by thousands of their C++ developers.&lt;br /&gt;&lt;a href=&quot;http://www.infoq.com/news/2008/07/google-test&quot;&gt;&lt;br /&gt;Read the full story &lt;/a&gt;</description>

	<pubDate>Sun, 13 Jul 2008 22:09:46 +0000</pubDate>
</item>

<item>
	<title>Steve Loughran: Floatplane</title>
	<guid isPermaLink="true">http://www.1060.org/blogxter/entry?publicid=0C0F7056EEB18083D2CF8C3A5F9FF1BD</guid>

	<description>&lt;p&gt;
OK, you leave flickr alone for 10 minutes and enough comes up for you to log in, then you can open photos in separate windows and get the HTML fragments. At least it does work...firefox seems to give up on not a few sites. Here then, after taxi, bus, train, and widebody jet comes the last little transport of our outward journey.
&lt;/p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/steve_l/2663929286/&quot; title=&quot;Maldavian Air Taxi by steve_l, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3124/2663929286_c55cd0da0a.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; alt=&quot;Maldavian Air Taxi&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/steve_l/2663929374/&quot; title=&quot;Maldavian Air Taxi by steve_l, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3044/2663929374_810ce76aae.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; alt=&quot;Maldavian Air Taxi&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/steve_l/2663929454/&quot; title=&quot;Maldavian Air Taxi by steve_l, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3173/2663929454_e5b17cf73b.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; alt=&quot;Maldavian Air Taxi&quot; /&gt;&lt;/a&gt;</description>

	<pubDate>Sun, 13 Jul 2008 14:00:00 +0000</pubDate>
</item>


</channel>
</rss>
