<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://java.sys-con.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Latest News from JAVA Developer&#039;s Journal</title>
 <link>http://java.sys-con.com/</link>
 <description>Latest News from JAVA Developer&#039;s Journal</description>
 <language>en</language>
 <copyright>Copyright 2010 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Tue, 09 Feb 2010 23:35:25 EST</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>360</ttl>
 <image> <title>Latest News from JAVA Developer&#039;s Journal</title>
 <url>http://gemsres.com/section/1/jdj-mag-logo-145(1).gif</url>
 <link>http://java.sys-con.com/</link>
</image>
<item>
 <title>Oracle, Sun and the Enterprise CTO</title>
 <link>http://java.sys-con.com/node/1275636</link>
 <description>The CTOvision.com assessment of the Oracle Acquisition of Sun: This is positive for the enterprise IT across the board, but the biggest determinate of what it means for your enterprise is what decisions you make now.  If you are an enterprise CTO, the ball is in your court.
The following provides a bit more context.  First, [...]


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&#039;http://ctovision.com/2009/04/what-does-the-oracle-sun-news-mean-for-enterprise-ctos/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: What does the Oracle-Sun news mean for enterprise CTOs?&#039;&gt;What does the Oracle-Sun news mean for enterprise CTOs?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#039;http://ctovision.com/2009/08/open-source-software-more-reasons-it-is-more-secure/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: Open Source Software: More reasons it is more secure&#039;&gt;Open Source Software: More reasons it is more secure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#039;http://ctovision.com/2010/02/larry-ellison-on-the-sun-oracle-close-january-27-2010/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: Larry Ellison on the Sun-Oracle Close, January 27, 2010&#039;&gt;Larry Ellison on the Sun-Oracle Close, January 27, 2010&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1275636&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 07 Feb 2010 07:20:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1275636</guid>
 <comments>http://java.sys-con.com/node/1275636#feedback</comments>
</item>
<item>
 <title>ADF Faces RC: af:document UncommittedDataWarning Property</title>
 <link>http://java.sys-con.com/node/1274700</link>
 <description>Thanks to some assistance from Richard Wright from Oracle Corp on the &lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?threadID=1012600&amp;tstart=0&quot;&gt;OTN forums&lt;/a&gt; a week or so ago, I learnt about the uncommittedDataWarning property in the af:document tag, which I&#039;d like to describe in this post.&lt;br /&gt;&lt;br /&gt;This property is useful in the following scenario.  Imagine you have a page as follows:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/S2vfQn2pmLI/AAAAAAAAA7s/EyK3OEDFXis/s1600-h/pic2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 322px; height: 329px;&quot; src=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/S2vfQn2pmLI/AAAAAAAAA7s/EyK3OEDFXis/s400/pic2.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5434682852021737650&quot; /&gt;&lt;/a&gt;&lt;br /&gt;As you can see the page allows the user to change values of the current employee, and behind the scenes this is based on the usual ADFm bindings.  In turn note the 3 buttons and their labels.  For this screen there is a strict requirement for the developer to either Commit their changes or Undo them, before navigating back to the Home page.&lt;br /&gt;&lt;br /&gt;Before the introduction of the uncommittedDataWarning property, the user could select the Go Home button and bypass this requirement.  A workaround would be to set the Go Home button&#039;s disabled property such that the user couldn&#039;t navigate through the button if there were changes to be saved.  However this is easily defeated by the user hitting the browser&#039;s back button, with the ensuing &quot;JBO-35007: Row currency has changed since the user interface was rendered&quot; mess that &lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?messageID=4022517&amp;#4022517&quot;&gt;confuses&lt;/a&gt; users and developers no end.&lt;br /&gt;&lt;br /&gt;With the introduction of the uncommitedDataWarning property for the af:document tag, and setting it to &quot;on&quot;, if the user selects either the Go Home button (assuming we haven&#039;t disabled it) or the browser&#039;s back button without committing or undoing their work, they&#039;ll see the following browser error:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_5hhNK2aXwp8/S2vfQcd19oI/AAAAAAAAA7k/Fpy0-yCTCRU/s1600-h/pic1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 165px;&quot; src=&quot;http://4.bp.blogspot.com/_5hhNK2aXwp8/S2vfQcd19oI/AAAAAAAAA7k/Fpy0-yCTCRU/s400/pic1.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5434682848964900482&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The dialog gives the user the option to Cancel, which leaves them on the current page, or Ok, which allows them to complete their action.&lt;br /&gt;&lt;br /&gt;This is definitely an interesting feature, especially with its browser back button support.&lt;br /&gt;&lt;br /&gt;One thing to note is that it only works for data that goes through the ADF binding layer.  As such if you&#039;ve JSF components based on a bean that isn&#039;t exposed to the ADF layer through a data control, it won&#039;t capture the data change.  Thus this is another reason to ensure you don&#039;t hack code into the JSF layer, but expose it all through ADF Business Components or the other supported business service layer in ADF.&lt;br /&gt;&lt;br /&gt;Also at this time the feature has a couple of limitations worth mentioning:&lt;br /&gt;&lt;br /&gt;1) If the dialog displays and the user selects ok, the dialog will continue to display on each further page navigation until the user either commits or rolls back their changes.  I can imagine this will become confusing or frustrating for some users, especially if you don&#039;t provide commit/rollback buttons on other pages.&lt;br /&gt;&lt;br /&gt;2) As noted in this &lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?threadID=1012600&amp;tstart=0&quot;&gt;OTN post&lt;/a&gt;, I note that it is a warning mechanism and not an error mechanism (or at least, it doesn&#039;t have an option to enforce no navigation). It would seem ideal, especially with its back button functionality, to display an error only, leaving the user on the same page and forcing them to do a commit. Obviously this wouldn&#039;t be ideal in all cases, but certainly in some. I&#039;ve raised ER 9299581 with Oracle Support for this.&lt;br /&gt;&lt;br /&gt;3) As Richard Wright points out in the same post, &quot;for a similar use case there has been a request to allow the user to continue with either a commit or rollback from the dialog. It would be analogous to the &quot;Save&quot; dialog received when exiting a native app (e.g., Word, Excel, JDev).&quot;  Hopefully we&#039;ll see these ERs in a future release.&lt;br /&gt;&lt;br /&gt;I&#039;m not overly sure when this property became available but I&#039;m guessing the original JDev 11g release.  It&#039;s definitely available in 11gR1 which this post was written against.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-5262045202453521382?l=one-size-doesnt-fit-all.blogspot.com&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/wlIipemeW5U&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1274700&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 05 Feb 2010 04:03:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1274700</guid>
 <comments>http://java.sys-con.com/node/1274700#feedback</comments>
</item>
<item>
 <title>Oracle Throws Sun&#039;s Wonderland Down the Rabbit Hole</title>
 <link>http://java.sys-con.com/node/1272305</link>
 <description>Oracle, sensibly enough from Oracle’s point-of-view, has turned off the tap of development resources on Sun’s Project Wonderland, the 100% Java open source toolkit for creating collaborative 3D virtual worlds. However, a core group of diehard Wonderlanders means to keep the project going and is scouting out for-project and non-profit options for becoming self-sustaining.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1272305&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 04 Feb 2010 02:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1272305</guid>
 <comments>http://java.sys-con.com/node/1272305#feedback</comments>
</item>
<item>
 <title>Andreessen&#039;s Makara Launches Cloud Computing Platform</title>
 <link>http://java.sys-con.com/node/1268735</link>
 <description>After months under the radar, Makara on Tuesday unveiled a brand new approach to cloud computing&#039;s most difficult problem: application deployment and management. Rather than retrofit system management software designed for traditional application environments to the cloud, Makara&#039;s Cloud Application Platform leverages the virtual layer to allow developers to rapidly deploy, scale and monitor applications in cloud environments. The product is freely available today as a developer release at &lt;a href=&quot;http://www.makara.com&quot; title=&quot;www.makara.com&quot;&gt;www.makara.com&lt;/a&gt;.

&quot;The widespread adoption of cloud computing is hitting a wall in terms of ROI because companies are not able to effectively manage applications, both inside and outside the enterprise, in a cloud environment. No one&#039;s going to run mission-critical apps without management, not in the data center and definitely not in the cloud,&quot; said Tim Guleri, Managing Director of Sierra Ventures. &quot;Makara&#039;s Cloud Application Platform provides that missing link, enabling developers to deploy their apps and make them work with full management capabilities. Makara will get the cloud past the ROI hurdle.&quot;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1268735&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 02 Feb 2010 15:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1268735</guid>
 <comments>http://java.sys-con.com/node/1268735#feedback</comments>
</item>
<item>
 <title>The Death of Cloud Computing the Birth of Dream Computing</title>
 <link>http://java.sys-con.com/node/1267188</link>
 <description>I do dream in color, not always vivid color, but color just the same. Today, I was awakened by one of my 5 boys in the middle of a great dream about the future. In my dream, I was in a big white room just as a door was opening and someone was about to walk in. Who was that? That&#039;s when I was awakened.

Don&#039;t you hate dream interruption? Or Idruption? Quick note, I heard the iPad comes with an Idruption finisher, those guys at Apple are so innovative.

What I do recall from my dream was that it was the summer of 2012, and Jeff Bezos, Paul Sagan and I were celebrating the 2 year anniversary of the merger of our three companies. There was a lot of talk about how 50% of the Fortune 1000 had shut down their data centers and moved all their operations onto our Dream Cloud. So much for that Gartner prediction -&quot;By 2012, 20 percent of businesses will own no IT assets.&quot;  The other thing that was clear from the conversation was that Dream Computing as a category had completely replaced the term Cloud Computing.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1267188&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 02 Feb 2010 11:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1267188</guid>
 <comments>http://java.sys-con.com/node/1267188#feedback</comments>
</item>
<item>
 <title>Sun Finally Belongs to Oracle</title>
 <link>http://java.sys-con.com/node/1265517</link>
 <description>Oracle finally closed on its delayed acquisition of Sun Tuesday, leaving local entities to shift for themselves according to local laws and sidestepping MySQL creator Monty Widenius’ hopes of Russian and Chinese regulators stalling the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s clearance last week, a green light that looked really iffy there for a while. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1265517&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 29 Jan 2010 12:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1265517</guid>
 <comments>http://java.sys-con.com/node/1265517#feedback</comments>
</item>
<item>
 <title>Oracle Completes Sun Acquisition</title>
 <link>http://java.sys-con.com/node/1262514</link>
 <description>Oracle said this morning that it had finally completed its acquisition of Sun, leaving local entities to shift for them according to local laws and sidestepping MySQL creator Monty Widenius’ hopes that Russian and Chinese regulators could stall the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s week-old clearance of the deal after its prolonged four-and-a-half month investigation that looked dicey there for a while. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1262514&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 27 Jan 2010 18:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1262514</guid>
 <comments>http://java.sys-con.com/node/1262514#feedback</comments>
</item>
<item>
 <title>Malaysia’s Premier Free-to-Air TV Station Goes Mobile with Netbiscuits</title>
 <link>http://java.sys-con.com/node/1258187</link>
 <description>Netbiscuits, a B2B web software platform for the creation, operation and monetization of mobile websites, and Media Prima Berhad, an integrated media investment group in Malaysia, have announced the joint realization of two new mobile web portals for TV3, Malaysia&#039;s leading free-to-air TV network, and GUA, the most popular entertainment and lifestyle portal in Malaysia. The new mobile sites are available at mobile.tv3.com.my and mobile.gua.com.my.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1258187&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 27 Jan 2010 12:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1258187</guid>
 <comments>http://java.sys-con.com/node/1258187#feedback</comments>
</item>
<item>
 <title>Getting Started with OpenJPA</title>
 <link>http://java.sys-con.com/node/1259019</link>
 <description>If you have not been actively working with J2EE containers, open source or free databases, and obscure Java tools, then getting started with OpenJPA may prove to be more challenging than just learning the API. I am going to work through this from scratch and take you with me. OpenJPA is the open source implementation of the Java Persistence API (JPA).&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1259019&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 26 Jan 2010 13:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1259019</guid>
 <comments>http://java.sys-con.com/node/1259019#feedback</comments>
</item>
<item>
 <title>ESRI ArcGIS for Java Developers</title>
 <link>http://java.sys-con.com/node/819867</link>
 <description>ArcGIS offers Java developers a robust, standards-based set of components for building and deploying GIS applications and services with the Java platform. An application built using ArcGIS Server and the Java Web Application Developer Framework that improves customer service response times and operations for a telecom network provider. ArcGIS excels for Desktop, Enterprise, and Web Applications. To develop on the ArcGIS platform and gain access to Java-based ESRI products and tools, click here to subscribe to the ESRI Developer Network (EDN).&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/819867&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 26 Jan 2010 12:46:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/819867</guid>
 <comments>http://java.sys-con.com/node/819867#feedback</comments>
</item>
<item>
 <title>Commentary: Sun’s Oracle Merger </title>
 <link>http://java.sys-con.com/node/1259691</link>
 <description>With only the ‘you may now kiss the bride’ custom to follow, the ORACLE/SUN marriage (or dare I say SUN/ORACLE) is now finally complete. After months of legal wrangling which has caused nothing but embarrassment and dwindled SUN’s stature within the market sphere, reports also came out that half of Sun&#039;s 27,000 staff will be made redundant. Thus initial indications are clear that Oracle, known for its past agnosticism to open source has an eye for the merger being based on maximizing profit.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1259691&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 26 Jan 2010 12:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1259691</guid>
 <comments>http://java.sys-con.com/node/1259691#feedback</comments>
</item>
<item>
 <title>ZIP and UNZIP with Passwords in Java</title>
 <link>http://java.sys-con.com/node/1258827</link>
 <description>Zip and Unzip are a very common activities for a computer user. A user normally uses the zip utility to compress a directory to create a zip file. There are many ready-made software such as winzip,7zip, and winrar that are available to achieve this. However, it is also possible to protect the zip file with a password so that the end user has to provide the password to unzip the zip file. This is the very common scenario that can be achieved by a zip utility tool. The significant part of my article is to provide you with the solution to achieve this using a Java program. While developing the project you may encounter a scenario in which you have to create a password-protected zip file that can be unzipped by any zip tool like winzip. Let me provide a complete scenario for your understanding.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1258827&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 25 Jan 2010 11:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1258827</guid>
 <comments>http://java.sys-con.com/node/1258827#feedback</comments>
</item>
<item>
 <title>Sun Microsystems to Present at Cloud Expo 2010 East</title>
 <link>http://java.sys-con.com/node/1257484</link>
 <description>What are the essential concerns, best practices and techniques to help better maximize the security posture of Infrastructure as a Service (IaaS) deployments? In his session at the 5th International Cloud Expo, Glenn Brunette, Distinguished Engineer and Chief Security Architect at Sun Microsystems, will discuss the specific architectural models, configuration ideas, and deployment techniques that will help reinforce your services from attack.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1257484&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 24 Jan 2010 23:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1257484</guid>
 <comments>http://java.sys-con.com/node/1257484#feedback</comments>
</item>
<item>
 <title>Master ADF Applications</title>
 <link>http://java.sys-con.com/node/1259633</link>
 <description>Under JDev 11g when you start playing with importing Bounded Task Flows (BTF) through ADF Libraries into a master ADF application, you&#039;re likely to start encountering the errors JBO-34010 and JBO-25058. This post discusses why these errors occur in context of ADF Libraries, and composite master ADF application comprised of 1 or more BTF sub-applications.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1259633&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 24 Jan 2010 22:50:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1259633</guid>
 <comments>http://java.sys-con.com/node/1259633#feedback</comments>
</item>
<item>
 <title>eXtremeDB Gets Java Front End</title>
 <link>http://java.sys-con.com/node/1257454</link>
 <description>The real-time embedded database folks at McObject have slapped a Java Native Interface (JNI) interface on their eXtremeDB widgetry and claim it’s the fastest possible database solution in Java-dom. The move is supposed to underscore their attempt to broaden the product’s appeal by pushing it out to developers of Java-based set-top boxes and other embedded systems who get a proven off-the-shelf database with minimal RAM and a small 100KB CPU footprint in return. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1257454&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 22 Jan 2010 17:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1257454</guid>
 <comments>http://java.sys-con.com/node/1257454#feedback</comments>
</item>
<item>
 <title>VMware Adds Java and Python SDKs</title>
 <link>http://java.sys-con.com/node/1257438</link>
 <description>VMware is out with both Java and Python open source SDKs for its vCloud API meant to appeal to open source developers and ISVs. VMware said key open source client libraries and tools such as Dasein, jclouds and libcloud are now available for the vCloud API. Cloudera, which uses libcloud in its Hadoop distribution, and WebAppVM, which uses jclouds, have already used the SDKs to create solutions for vCloud Express. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1257438&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 22 Jan 2010 17:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1257438</guid>
 <comments>http://java.sys-con.com/node/1257438#feedback</comments>
</item>
<item>
 <title>The Axiom As Cloud Computing Platform</title>
 <link>http://java.sys-con.com/node/1252199</link>
 <description>Pillar Axiom is an ideal storage platform for cloud environments because of its flexibility, performance, scalability and unique QoS capabilities. Much like Pillar did with its SSD and 2 terabyte SATA drives, the company is again making it possible to extend new product technology into a system without disruption, giving cloud providers new flexibility in deploying and morphing storage to meet diverse user and application requirements.

In a separate press release today, Eagle Business Solutions announced that Pillar Axiom has been chosen as the storage platform to support its cloud-based, application hosting service.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1252199&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 22 Jan 2010 13:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1252199</guid>
 <comments>http://java.sys-con.com/node/1252199#feedback</comments>
</item>
<item>
 <title>EC Clears Oracle’s Acquisition of Sun</title>
 <link>http://java.sys-con.com/node/1255826</link>
 <description>Thursday, January 21, 2010 – The European Commission this morning waved Oracle’s $7.4 billion acquisition of Sun Microsystems through without any strings attached. It’s been blocking the deal since September because Sun owns the popular open source database MySQL, one of the legs of the fabled LAMP stack, and was certain Oracle would roll over and crush it.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1255826&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 21 Jan 2010 11:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1255826</guid>
 <comments>http://java.sys-con.com/node/1255826#feedback</comments>
</item>
<item>
 <title>European Commission Unconditionally Approves Oracle&#039;s Acquisition of Sun </title>
 <link>http://java.sys-con.com/node/1255212</link>
 <description>Oracle Corporation on Thursday announced that it had received regulatory approval from the European Commission for its acquisition of Sun Microsystems, Inc. Oracle expects unconditional approval from China and Russia and intends to close the transaction shortly. Oracle will host an all-day live event for customers, partners, press and analysts on January 27th, 2010 at 9:00 AM Pacific time, at its headquarters in Redwood Shores, California. Details are available at &lt;a href=&quot;http://www.oracle.com/sun&quot; title=&quot;www.oracle.com/sun&quot;&gt;www.oracle.com/sun&lt;/a&gt;.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1255212&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 21 Jan 2010 10:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1255212</guid>
 <comments>http://java.sys-con.com/node/1255212#feedback</comments>
</item>
<item>
 <title>The Apache Software Foundation Announces Apache Pivot as Top-Level Project</title>
 <link>http://java.sys-con.com/node/1251851</link>
 <description>The Apache Software Foundation (ASF) has announced the graduation of Apache Pivot as a Top-Level Project (TLP), signifying that the Project&#039;s community and products have been well-governed under the ASF&#039;s meritocratic process and principles. In addition, the Project announced the release of Apache Pivot 1.4, the fourth update since joining the Apache Incubator in January 2009.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1251851&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 19 Jan 2010 09:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1251851</guid>
 <comments>http://java.sys-con.com/node/1251851#feedback</comments>
</item>
<item>
 <title>Whatever Happened to JAAS?</title>
 <link>http://java.sys-con.com/node/1002315</link>
 <description>Introduced in 1995, Java has firmly established itself as a mature mainstream programming language for enterprises. The Java platform security model has evolved over the years to meet new requirements, and today enterprise Java developers have a large number of APIs and services to choose from to fulfill their security needs.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1002315&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 18 Jan 2010 09:27:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1002315</guid>
 <comments>http://java.sys-con.com/node/1002315#feedback</comments>
</item>
<item>
 <title>Using JSAPI with a JBoss SEAM Component</title>
 <link>http://java.sys-con.com/node/1249740</link>
 <description>If you are using Actuate&#039;s JSAPI to run BIRT reports and you wish to pass parameters from a SEAM component this can be done very easily. In addition you can combine SEAM remoting with the JSAPI to do some interesting things. For example assume we create a SEAM component that retrieves report parameters that we want to use with the JSAPI. The component would look similar to this:&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1249740&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 15 Jan 2010 12:29:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1249740</guid>
 <comments>http://java.sys-con.com/node/1249740#feedback</comments>
</item>
<item>
 <title>Only Two in Five Americans Read a Newspaper</title>
 <link>http://java.sys-con.com/node/1245385</link>
 <description>Newspapers around the country are struggling. 2009 saw a few newspapers change their business model to an online focus or shut down completely. 2010 will most likely see the same struggle and, perhaps, new business models emerge for these media entities. One thing is clear, the era of Americans reading a daily newspaper each and every day is coming to an end. Just two in five U.S. adults (43%) say they read a daily newspaper, either online or in print almost every day. Just over seven in ten Americans (72%) say they read one at least once a week while 81% read a daily newspaper at least once a month. One in ten adults (10%) say they never read a daily newspaper. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1245385&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 13 Jan 2010 16:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1245385</guid>
 <comments>http://java.sys-con.com/node/1245385#feedback</comments>
</item>
<item>
 <title>ADF Fail Whale: Handling the Database Is Down Gracefully</title>
 <link>http://java.sys-con.com/node/1245383</link>
 <description>(JDev 11g 11.1.1.2.0)&lt;br /&gt;&lt;br /&gt;Like most Oracle applications, when an ADF application loses its connection to the database, the games up.  There&#039;s really not much you can do.  ADF does detect this situation, presenting the following popup to the user:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/S00mo1D64ZI/AAAAAAAAA7U/hWF2q-xiR-w/s1600-h/jdbc01.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 377px; height: 400px;&quot; src=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/S00mo1D64ZI/AAAAAAAAA7U/hWF2q-xiR-w/s400/jdbc01.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5426035608931459474&quot; /&gt;&lt;/a&gt;&lt;br /&gt;But to most users a JDBC error would mean nothing, particularly if your application is delivered to the general public on the internet.  In turn the user is left in the application without the ability to do much, resulting actions showing the same popup JDBC error again.&lt;br /&gt;&lt;br /&gt;Ideally what we&#039;d like to do is redirect to a web page that gives more useful information, maybe something like the famous &lt;a href=&quot;http://www.readwriteweb.com/archives/the_story_of_the_fail_whale.php&quot;&gt;Twitter Fail Whale&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/S00mpB4NmCI/AAAAAAAAA7c/Z2OtXlFEm0E/s1600-h/twitter_fail_whale-300x225.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 225px;&quot; src=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/S00mpB4NmCI/AAAAAAAAA7c/Z2OtXlFEm0E/s400/twitter_fail_whale-300x225.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5426035612372015138&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The following blog post shows you a solution to do just this.  This solution is based on Steve Muench&#039;s Dynamic JDBC Credentials example &lt;a href=&quot;http://blogs.oracle.com/smuenchadf/examples/#129&quot;&gt;#129&lt;/a&gt;.  In addition I must give my thanks to Oracle Support for pointing me to Steve&#039;s solution.&lt;br /&gt;&lt;br /&gt;As usual, please note this solution has yet to be proven in a production environment.  Seriously, I&#039;ve run some arbitrary tests to see if the technique works, but no idea if it&#039;ll cover all situations where the database goes down.  It&#039;s important if you take this example that you test it to ensure it meets your own needs.  I&#039;d appreciate it if anybody who does find any issues and resulting solutions, if you could please post them on this post as a comment to assist other readers.&lt;br /&gt;&lt;br /&gt;With the following solution I&#039;m not going to bother to explain all the moving parts, just give you the code and where it goes.  I&#039;ll leave the reader to follow up with their own research on the mechanics of this solution.&lt;br /&gt;&lt;br /&gt;All the following work is undertaken in the ViewController project:&lt;br /&gt;&lt;br /&gt;1) New class: JdbcDCErrorHandlerImpl.java&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;package view;&lt;br /&gt;&lt;br /&gt;import java.lang.reflect.InvocationTargetException;&lt;br /&gt;import java.lang.reflect.Method;&lt;br /&gt;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;&lt;br /&gt;import oracle.adf.model.binding.DCBindingContainer;&lt;br /&gt;import oracle.adf.model.binding.DCErrorHandlerImpl;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.DMLException;&lt;br /&gt;import oracle.jbo.common.JBOClass;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Example sourced from Steve Muench example #129&lt;br /&gt;*/&lt;br /&gt;public class JdbcDCErrorHandlerImpl extends DCErrorHandlerImpl {&lt;br /&gt;  public JdbcDCErrorHandlerImpl() {&lt;br /&gt;    super(true);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public JdbcDCErrorHandlerImpl(boolean b) {&lt;br /&gt;    super(b);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static final int INVALID_USERNAME_PASSWORD_ORACLE_ERROR = 1017;&lt;br /&gt;  private static final int ACCOUNT_LOCKED_ORACLE_ERROR = 28000;&lt;br /&gt;  private static final int NO_SUITABLE_DRIVER = 0;&lt;br /&gt;  private static final int NETWORK_CONNECTION_ERROR = 17002;&lt;br /&gt;  private static final int NETWORK_ADAPTOR_ERROR = 20;&lt;br /&gt;&lt;br /&gt;  public static boolean isFailedDBConnectErrorCode(SQLException s) {&lt;br /&gt;    int errorCode = s.getErrorCode();&lt;br /&gt;    return (errorCode == INVALID_USERNAME_PASSWORD_ORACLE_ERROR || errorCode == ACCOUNT_LOCKED_ORACLE_ERROR ||&lt;br /&gt;            errorCode == NO_SUITABLE_DRIVER || errorCode == NETWORK_CONNECTION_ERROR ||&lt;br /&gt;            errorCode == NETWORK_ADAPTOR_ERROR);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public void reportException(DCBindingContainer formBnd, Exception e) {&lt;br /&gt;    super.reportException(formBnd, e);&lt;br /&gt;    if (e instanceof DMLException) {&lt;br /&gt;      Object[] details = ((DMLException)e).getDetails();&lt;br /&gt;      if (details != null &amp;&amp; details.length &gt; 0) {&lt;br /&gt;        if (details[0] instanceof SQLException) {&lt;br /&gt;          SQLException s = (SQLException)details[0];&lt;br /&gt;          int errorCode = s.getErrorCode();&lt;br /&gt;          if (isFailedDBConnectErrorCode(s)) {&lt;br /&gt;            markResponseCompleteIfUsingJSF();&lt;br /&gt;            throw (DMLException)e;&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;   * If we are running in a Faces environment, invoke the FacesContext.responseComplete() method after&lt;br /&gt;   * the session invalidate. We use Java reflection so that our code can still work in a Non-Faces environment, too.&lt;br /&gt;   */&lt;br /&gt;  private void markResponseCompleteIfUsingJSF() {&lt;br /&gt;    try {&lt;br /&gt;      Class c = JBOClass.forName(&quot;javax.faces.context.FacesContext&quot;);&lt;br /&gt;      Method m = c.getMethod(&quot;getCurrentInstance&quot;, null);&lt;br /&gt;      Object obj = m.invoke(null, null);&lt;br /&gt;      if (obj != null) {&lt;br /&gt;        m = c.getMethod(&quot;responseComplete&quot;, null);&lt;br /&gt;        m.invoke(obj, null);&lt;br /&gt;      }&lt;br /&gt;    } catch (InvocationTargetException ex) {&lt;br /&gt;      throw new RuntimeException(ex);&lt;br /&gt;    } catch (IllegalAccessException ex) {&lt;br /&gt;      throw new RuntimeException(ex);&lt;br /&gt;    } catch (NoSuchMethodException ex) {&lt;br /&gt;      throw new RuntimeException(ex);&lt;br /&gt;    } catch (ClassNotFoundException ex) {&lt;br /&gt;      // Ignore, we&#039;re not running in a faces context.&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;2) New class: JdbcPagePhaseListener.java &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;package view;&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpSession;&lt;br /&gt;&lt;br /&gt;import oracle.adf.controller.v2.lifecycle.Lifecycle;&lt;br /&gt;import oracle.adf.controller.v2.lifecycle.PagePhaseEvent;&lt;br /&gt;import oracle.adf.controller.v2.lifecycle.PagePhaseListener;&lt;br /&gt;import oracle.adf.model.bc4j.DCJboDataControl;&lt;br /&gt;import oracle.adf.model.binding.DCBindingContainer;&lt;br /&gt;import oracle.adf.model.binding.DCDataControl;&lt;br /&gt;import oracle.adf.model.binding.DCExecutableBinding;&lt;br /&gt;import oracle.adf.model.binding.DCIteratorBinding;&lt;br /&gt;&lt;br /&gt;import oracle.binding.DataControl;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.uicli.binding.JUControlBinding;&lt;br /&gt;import oracle.jbo.uicli.binding.JUCtrlActionBinding;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Example sourced from Steve Muench example #129&lt;br /&gt;*/&lt;br /&gt;public class JdbcPagePhaseListener implements PagePhaseListener {&lt;br /&gt;  public JdbcPagePhaseListener() {&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void afterPhase(PagePhaseEvent event) {&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private HttpSession getHttpSession(PagePhaseEvent event) {&lt;br /&gt;    return ((HttpServletRequest)event.getLifecycleContext().getEnvironment().getRequest()).getSession(true);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void beforePhase(PagePhaseEvent event) {&lt;br /&gt;    if (event.getPhaseId() == Lifecycle.PREPARE_MODEL_ID) {&lt;br /&gt;      DCBindingContainer bc = (DCBindingContainer)event.getLifecycleContext().getBindingContainer();&lt;br /&gt;      // Force the Data Control to be referenced before the prepareModel phase to cause the possible JDBC connection&lt;br /&gt;      // failure to be signalled now instead of during the page rendering.&lt;br /&gt;      List&lt;DCJboDataControl&gt; dcList = getADFBCDataControlsList(bc);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;   * Return a list of ADFBC data controls used by this page.  See how this is used in the beforePhase method above.&lt;br /&gt;   */&lt;br /&gt;  private List&lt;DCJboDataControl&gt; getADFBCDataControlsList(DCBindingContainer bc) {&lt;br /&gt;    List&lt;DCJboDataControl&gt; dcList = null;&lt;br /&gt;    // if bc == null, means non data bound page, as such no data controls to exercise&lt;br /&gt;    if (bc != null) {&lt;br /&gt;      dcList = new ArrayList&lt;DCJboDataControl&gt;();&lt;br /&gt;      List&lt;JUControlBinding&gt; ctrlBindings = (List&lt;JUControlBinding&gt;)bc.getControlBindings();&lt;br /&gt;      if (ctrlBindings != null) {&lt;br /&gt;        for (JUControlBinding ctrlBinding : ctrlBindings) {&lt;br /&gt;          DCIteratorBinding iter = ctrlBinding.getIteratorBinding();&lt;br /&gt;          DCDataControl dc = null;&lt;br /&gt;          if (iter != null) {&lt;br /&gt;            dc = iter.getDataControl();&lt;br /&gt;          } else if (ctrlBinding instanceof JUCtrlActionBinding) {&lt;br /&gt;            dc = ((JUCtrlActionBinding)ctrlBinding).getDataControl();&lt;br /&gt;          }&lt;br /&gt;          if (dc != null &amp;&amp; dc instanceof DCJboDataControl &amp;&amp; !dcList.contains(dc)) {&lt;br /&gt;            DCJboDataControl bcdc = (DCJboDataControl)dc;&lt;br /&gt;            dcList.add(bcdc);&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;      List&lt;DCExecutableBinding&gt; exeBindings = (List&lt;DCExecutableBinding&gt;)bc.getIterBindingList();&lt;br /&gt;      if (exeBindings != null) {&lt;br /&gt;        for (DCExecutableBinding exeBinding : exeBindings) {&lt;br /&gt;          DataControl dc = null;&lt;br /&gt;          if (exeBinding instanceof DCIteratorBinding) {&lt;br /&gt;            dc = ((DCIteratorBinding)exeBinding).getDataControl();&lt;br /&gt;          }&lt;br /&gt;          if (dc != null &amp;&amp; dc instanceof DCJboDataControl &amp;&amp; !dcList.contains(dc)) {&lt;br /&gt;            DCJboDataControl bcdc = (DCJboDataControl)dc;&lt;br /&gt;            dcList.add(bcdc);&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    return dcList;&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;3) New file: ViewController/adfmsrc/META-INF/adf-settings.xml&lt;pre name=&quot;code&quot; class=&quot;xml&quot;&gt; &lt;adf-settings xmlns=&quot;http://xmlns.oracle.com/adf/settings&quot;&gt;&lt;br /&gt;  &lt;adfc-controller-config xmlns=&quot;http://xmlns.oracle.com/adf/controller/config&quot;&gt;&lt;br /&gt;    &lt;lifecycle&gt;&lt;br /&gt;      &lt;phase-listener&gt;&lt;br /&gt;        &lt;listener-id&gt;JdbcPagePhaseListener&lt;/listener-id&gt;&lt;br /&gt;        &lt;class&gt;view.JdbcPagePhaseListener&lt;/class&gt;&lt;br /&gt;      &lt;/phase-listener&gt;&lt;br /&gt;    &lt;/lifecycle&gt;&lt;br /&gt;  &lt;/adfc-controller-config&gt;&lt;br /&gt;&lt;/adf-settings&gt;&lt;/pre&gt;4) Modify the DataBinding.cpx file ErrorHandlerClass property&lt;pre name=&quot;code&quot; class=&quot;xml&quot;&gt;&lt;Application xmlns=&quot;http://xmlns.oracle.com/adfm/application&quot; version=&quot;11.1.1.55.36&quot; id=&quot;DataBindings&quot;&lt;br /&gt;             SeparateXMLFiles=&quot;false&quot; Package=&quot;view&quot; ClientType=&quot;Generic&quot; ErrorHandlerClass=&quot;view.JdbcDCErrorHandlerImpl&quot;&gt;&lt;/pre&gt;5) Add an error-page entry in the web.xml&lt;pre name=&quot;code&quot; class=&quot;xml&quot;&gt;&lt;error-page&gt;&lt;br /&gt;  &lt;exception-type&gt;oracle.jbo.DMLException&lt;/exception-type&gt;&lt;br /&gt;  &lt;location&gt;/ServiceUnavailable.html&lt;/location&gt;&lt;br /&gt;&lt;/error-page&gt;&lt;/pre&gt;6) Add the corresponding html page from the last entry, displaying whatever friendly error message you want to show.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-7826865965150400334?l=one-size-doesnt-fit-all.blogspot.com&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/bDyINGajHt0&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1245383&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 13 Jan 2010 14:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1245383</guid>
 <comments>http://java.sys-con.com/node/1245383#feedback</comments>
</item>
<item>
 <title>Ensuring Website Performance</title>
 <link>http://java.sys-con.com/node/1246075</link>
 <description>In order to ensure that end user response times are acceptable at all times it is necessary to measure the time in the way the end user perceives performance. Measuring and monitoring your live system is important to identify problems early on before it affects too many end users. In order to make sure that web pages are fast from the start it is very important to constantly and continuously measure web page performance throughout the development phase and in testing. There are two questions that need to be answered

    * What is the time the user actually perceives as web response time?
    * How to measure it accurately and in an automated way?
&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1246075&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 13 Jan 2010 11:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1246075</guid>
 <comments>http://java.sys-con.com/node/1246075#feedback</comments>
</item>
<item>
 <title>Progress Software to Acquire Savvion</title>
 <link>http://java.sys-con.com/node/1241865</link>
 <description>Progress Software announced today the acquisition of Savvion, a privately held business enterprise software company based in Santa Clara, California, for approximately $49 million, net of cash acquired. Savvion is a provider of Business Process Management (BPM) technology with 15 years of market experience. The company offers a comprehensive, standards-based BPM suite that helps more than 300 of the world’s top-performing companies – including 24 of the ‘Fortune 100’ – automate and continuously improve critical business processes.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1241865&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 11 Jan 2010 16:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1241865</guid>
 <comments>http://java.sys-con.com/node/1241865#feedback</comments>
</item>
<item>
 <title>The Importance of Threat Protection for RESTful Web Services</title>
 <link>http://java.sys-con.com/node/1238426</link>
 <description>Although certain RESTful web services are of a ‘public’ nature and do not have specific security requirements such as authentication and authorization, any service that has an entry point from an untrusted network is subject to attack and proper threat protection measures are always an essential consideration.
RESTful web services are closely aligned to the web [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=24&amp;subd=flascelles&amp;ref=&amp;feed=1&quot; /&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1238426&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 11 Jan 2010 15:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1238426</guid>
 <comments>http://java.sys-con.com/node/1238426#feedback</comments>
</item>
<item>
 <title>Interest in Cloud Computing Up 3,233% Since 2007</title>
 <link>http://java.sys-con.com/node/1241570</link>
 <description>Lately it seems that no matter where I go someone is telling me they&#039;ve heard about cloud computing, from Newspapers to TV, it seems to be everywhere. I&#039;m not talking about techies or the clouderati. I&#039;m talking about your mother, your sister or brother, I&#039;m talking about regular people you meet at dinner parties -- the everyday Joe.&lt;br /&gt;&lt;br /&gt;If you are a frequent reader of my blog, you&#039;ll know I enjoy looking at trends. A particularly good analytics tool is found at &lt;a href=&quot;http://www.google.com/insights/search/#&quot;&gt;Google&#039;s Insights for Search&lt;/a&gt; Tool. The site analyzes a portion of worldwide Google web searches from all Google domains to compute how many searches have been done for the terms you&#039;ve entered, relative to the total number of searches done on Google over time. The site also allows the underlying characteristics of the data sets to be compared, for example against a broader industry. In our case, I compared Cloud Computing and a few other related terms against the broader &quot;Computers &amp;amp; Electronics&quot; industry to how much interest there was for cloud computing. (See Graph Below or &lt;a href=&quot;http://www.google.com/insights/search/#cat=5&amp;amp;q=cloud%20computing%2Camazon%20ec2%2Cvirtualization%2Csaas&amp;amp;cmpt=q&quot;&gt;original link&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;A Few of the more interesting points.&lt;/span&gt;&lt;br /&gt;1. The overall interest in Computers &amp;amp; Electronics is &lt;span style=&quot;font-weight: bold;&quot;&gt;down &lt;/span&gt;about &lt;span style=&quot;font-weight: bold;&quot;&gt;46%&lt;/span&gt;&lt;br /&gt;2. Interest in Cloud Computing peaked in November up an astounding &lt;span style=&quot;font-weight: bold;&quot;&gt;3,233%&lt;/span&gt; from 0 in October 2007&lt;br /&gt;3. Interest in SaaS and Virtualization also remains very strong.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.google.com/insights/search/#cat=5&amp;amp;q=cloud%20computing%2Camazon%20ec2%2Cvirtualization%2Csaas&amp;amp;cmpt=q&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_TfRg6LOmYlg/S0o7LruvLHI/AAAAAAAAIHM/oEXu34NORs4/s400/Screen+shot+2010-01-10+at+3.39.05+PM.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5425213773024537714&quot; style=&quot;cursor: pointer; width: 400px; height: 278px; &quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;a href=&quot;http://www.enomaly.com&quot;&gt;Announcing The Enomaly Cloud Service Provider Edition&lt;/a&gt; | &lt;a href=&quot;http://www.twitter.com/ruv&quot;&gt;Twitter Me&lt;/a&gt; | &lt;a href=&quot;http://www.linkedin.com/in/reuvencohen&quot;&gt;Get Linkedin&lt;/a&gt; | &lt;a href=&quot;https://cloudcomputing.wufoo.com/forms/contact-reuven/&quot;&gt;Contact Reuven&lt;/a&gt; | &lt;a href=&quot;http://www.elasticvapor.com/2009/05/elasticvapor-disclosure-policy.html&quot;&gt;Disclosure Policy&lt;/a&gt;
&lt;hr /&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/4159824378751259880-7703551054937463407?l=www.elasticvapor.com&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:4cEx4HpKnUU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?i=hCXZA-WiJDU:w3lVCWf-h0k:4cEx4HpKnUU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?d=63t7Ie-LG7Y&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?d=dnMXMwOfBR0&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:qj6IDK7rITs&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?d=qj6IDK7rITs&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?i=hCXZA-WiJDU:w3lVCWf-h0k:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?a=hCXZA-WiJDU:w3lVCWf-h0k:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Elasticvapor?i=hCXZA-WiJDU:w3lVCWf-h0k:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Elasticvapor/~4/hCXZA-WiJDU&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1241570&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 11 Jan 2010 13:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1241570</guid>
 <comments>http://java.sys-con.com/node/1241570#feedback</comments>
</item>
<item>
 <title>How to Secure REST and JSON</title>
 <link>http://java.sys-con.com/node/1241282</link>
 <description>Here at Layer 7 we get asked a lot about our support for REST. We actually have a lot to offer to secure, monitor and manage REST-style transactions. The truth is, although we really like SOAP and XML here at Layer 7, we also really like REST and alternative data encapsulations like JSON. We use both REST and JSON all the time in our own development. Suppose you have a REST-based service that you would like to publish to the world, but you are concerned about access control, confidentiality, integrity, and the risk from incoming threats. We have an answer for this: SecureSpan Gateway clusters, deployed in the DMZ, give you the ability to implement run time governance across all of your services:&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1241282&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 09 Jan 2010 15:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1241282</guid>
 <comments>http://java.sys-con.com/node/1241282#feedback</comments>
</item>
<item>
 <title>Oracle’s Next Sun Hurdle</title>
 <link>http://java.sys-con.com/node/1240739</link>
 <description>The next hurdle that Oracle’s unconditional acquisition of Sun and MySQL faces is clearing the formal meeting of the European Commission’s so-called advisory committee, the 27 national regulators in the European Union, which is reportedly set for Monday afternoon January 11 in Brussels. The European Commission supposedly drafted a blocking decision right after it issued its statement of objections to the acquisition so it&#039;s got the paperwork in hand in case its apparent deal with Oracle, memorialized in Oracle&#039;s 10 promises concerning MySQL, runs into heavy weather.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1240739&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 09 Jan 2010 15:03:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1240739</guid>
 <comments>http://java.sys-con.com/node/1240739#feedback</comments>
</item>
<item>
 <title>‘Save MySQL from Oracle’ Petition Collects 13,600+ Signatures So Far</title>
 <link>http://java.sys-con.com/node/1233609</link>
 <description>MySQL creator Monty Widenius’ petition to stop Oracle from getting the MySQL open source database along with Sun Microsystems had collected more than 13,600 signatures on Sunday, the day before Widenius has promised to start circulating the results to “regulators, governmental bodies, parliaments and journalists.” 

Within the EU, the petition is supposed to be sent to the 27 national antitrust authorities of the bloc’s member countries, who are scheduled to meet in Brussels in mid-January to discuss the Oracle-Sun case. 

&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1233609&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 04 Jan 2010 11:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1233609</guid>
 <comments>http://java.sys-con.com/node/1233609#feedback</comments>
</item>
<item>
 <title>NaviSite Named “Gold Sponsor” of Cloud Computing Conference &amp; Expo</title>
 <link>http://java.sys-con.com/node/1232648</link>
 <description>SYS-CON Events announced today that NaviSite, a leading provider of cloud-enabled enterprise-hosting and application-management services, has been named “Gold Sponsor” of SYS-CON’s 5th International Cloud Expo (&lt;a href=&quot;http://www.CloudComputingExpo.com&quot; title=&quot;www.CloudComputingExpo.com&quot;&gt;www.CloudComputingExpo.com&lt;/a&gt;), which will take place on April 19-21, 2010, at the Jacob Javits Convention Center in New York City. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1232648&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 30 Dec 2009 16:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1232648</guid>
 <comments>http://java.sys-con.com/node/1232648#feedback</comments>
</item>
<item>
 <title>The Keys to Disaster Recovery and Business Continuity</title>
 <link>http://java.sys-con.com/node/1231830</link>
 <description>Once a company has identified the business value of systems and data, they typically assign a risk value to losing those. This typically sets the wheels in motion to get a backup system in place. Backup, the very first step in Disaster Recovery and Business Continuity planning, is the base upon which you will build your strategy. Without the backup, there is nothing to archive nor restore later. Backing up typically entails duplicating data onto a secondary medium which acts as a safeguard against primary storage failure. This can be something as simple as a disk to disk (D2D) replication to a second storage system, or as complex as an NDMP stream across a fabric infrastructure to tape libraries waiting to write the data to magnetic tape media.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1231830&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 30 Dec 2009 02:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1231830</guid>
 <comments>http://java.sys-con.com/node/1231830#feedback</comments>
</item>
<item>
 <title>Making the Impossible Easy: Failover for Any Application</title>
 <link>http://java.sys-con.com/node/1182809</link>
 <description>If your systems require constant accessibility, you know that application failover is an essential function for automatically and transparently redirecting requests to an alternate server in the case of a failure or downtime. Several options exist for ensuring high availability for your mission-critical applications. Those options may be hardware- or software-based, and may also vary considerably in terms of project or enterprise scope and in terms of cost and complexity.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1182809&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 29 Dec 2009 00:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1182809</guid>
 <comments>http://java.sys-con.com/node/1182809#feedback</comments>
</item>
<item>
 <title>Hybridfox: Elasticfox 1.6.x on Viagra</title>
 <link>http://java.sys-con.com/node/1193781</link>
 <description>Now we have a Eucalyptus&amp;#8217; Private Cloud installed and running on our premise, and it remained kinda of an artifact in our data-center for sometime. So I thought why has not someone written anything about how make to make Elasticfox work with Eucalyptus.
But there were quite a few pointers to what version will be ideally [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=cloudbuzz.wordpress.com&amp;blog=9142337&amp;post=133&amp;subd=cloudbuzz&amp;ref=&amp;feed=1&quot; /&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1193781&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 27 Dec 2009 01:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1193781</guid>
 <comments>http://java.sys-con.com/node/1193781#feedback</comments>
</item>
<item>
 <title>IBM Introduces New Cloud Offerings</title>
 <link>http://java.sys-con.com/node/1174395</link>
 <description>IBM Rational Software Delivery Services for Cloud Computing include a set of ready-to-use application lifecycle management tools for developing and testing in the IBM Cloud, and use infrastructure management capabilities, to help organizations build software applications in the cloud. With these new services, clients can lower costs and respond quicker to organizational demands. For example, organizations can reduce the time it takes to provision a test environment from weeks to hours, and in some cases even minutes. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1174395&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 21 Dec 2009 17:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1174395</guid>
 <comments>http://java.sys-con.com/node/1174395#feedback</comments>
</item>
<item>
 <title>Case Study in Secure Software Development</title>
 <link>http://java.sys-con.com/node/1227919</link>
 <description>Modern inter-networked software architecture created for today’s “on-demand” business needs have fundamentally increased the susceptibility of applications and, more important, data to security-related attacks and compromises. The rapidly changing environment: increased data breach/loss incidents, increased number of regulations and compliance requirements, potential liability/litigation concerns and erosion of reputation and public confidence provides ample drivers for development teams to have a security mindset.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1227919&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 21 Dec 2009 13:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1227919</guid>
 <comments>http://java.sys-con.com/node/1227919#feedback</comments>
</item>
<item>
 <title>The First Fully Functional Cloud-based “D” or Desktop</title>
 <link>http://java.sys-con.com/node/1225706</link>
 <description>Sun Microsystems has unveiled what is being called the first fully functional cloud-based Desktop as a Service (DaaS) for grammar schools and community colleges. The new product is in line with Sun’s vision to build and deploy public and private clouds that are open and interoperable. In a venture with another tech firm, Ashbourne Technology Group, in Southampton, PA, Sun is offering a secure, cost-effective computing solution delivered anytime, anywhere via the cloud. It’s a virtual desktop, and it works with all leading OSs, including Microsoft Windows, Mac OS X, Linux and Solaris to just about any client device, including Sun Ray thin clients and other platforms with Java-based browsers. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1225706&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Dec 2009 21:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1225706</guid>
 <comments>http://java.sys-con.com/node/1225706#feedback</comments>
</item>
<item>
 <title>Stepping Aside as CEO to Focus on Canonical&#039;s New Cloud Offerings</title>
 <link>http://java.sys-con.com/node/1225434</link>
 <description>In his blog entry &quot;My New Focus at Canonical&quot; posted on Thursday, December 17, 4:48 PM, Canonical CEO Mark Shuttleworth announced his resignation as CEO: &quot;From March next year, I’ll focus my Canonical energy on product design, partnerships and customers. Those are the areas that I enjoy most and also the areas where I can best shape the impact we have on open source and the technology market.&quot;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1225434&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Dec 2009 17:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1225434</guid>
 <comments>http://java.sys-con.com/node/1225434#feedback</comments>
</item>
<item>
 <title>Oracle Maps Its Cloud Computing Strategy During Cloud Expo Keynote</title>
 <link>http://java.sys-con.com/node/1172727</link>
 <description>&quot;We&#039;ve been fairly quiet,&quot; said Rex Wang, VP of Infrastructure and Management at Oracle, this morning as he gave the Morning Keynote at the third and last day of the 4th Cloud Computing International Conference  Expo at the Santa Clara Convention Center in Santa Clara, CA. Wang was referring to Oracle&#039;s relative silence to date vis-a-vis Cloud Computing. His intention, he said, was to share with the assembled delegates Oracle&#039;s thoughts on the space...&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1172727&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Dec 2009 17:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1172727</guid>
 <comments>http://java.sys-con.com/node/1172727#feedback</comments>
</item>
<item>
 <title>Is Test Overlap A Necessary Evil?</title>
 <link>http://java.sys-con.com/node/1225717</link>
 <description>&lt;span class=&quot;Apple-style-span&quot;   style=&quot;  ;font-family:Verdana;font-size:13px;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;In a recent blog post titled &quot;&lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;yt5y&quot; href=&quot;http://binstock.blogspot.com/2009/11/limitations-of-tdd.html&quot; title=&quot;The Limitations of TDD&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;The Limitations of TDD&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&quot;, &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;b.o1&quot; href=&quot;http://joltawards.com/&quot; title=&quot;Jolt&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Jolt Awards&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; colleague Andrew Binstock shared some reservations &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;bm72&quot; href=&quot;http://beust.com/&quot; title=&quot;Cédric Beust&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Cédric Beust&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; has about TDD. When a person of extensive experience like Cédric speaks about testing, you pay attention. And I did.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Among the very interesting quotes from Cédric that Andrew has reproduced, the following really struck me:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;webkit-indent-blockquote&quot;  style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border- color:initial;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Another important point is that unit tests are a convenience for *you*, the developer, while functional tests are important for your *users*. When I have limited time, I always give priority to writing functional tests. Your duty is to your users, not to your test coverage tools.&lt;br /&gt;&lt;br /&gt;You also bring up another interesting point: overtesting can lead to paralysis. I can imagine reaching a point where you don&#039;t want to modify your code because you will have too many tests to update (especially in dynamically typed languages, where you can&#039;t use tools that will automate this refactoring for you). The lesson here is to do your best so that your tests don&#039;t overlap.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Trust me, as a test-infected developer, I would love to stay in a state of self-delusion and pretend that test-induced paralysis doesn&#039;t exist. But that would be a lie: the reality is grimmer than the wonderland of testing I would wish to live in. The reality is that &lt;/span&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;tests both encourage and resist change&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;On the one hand, tests encourage and support refactoring: when the behavior of the application should not change but the code needs to be re-organized, tests are a blessing. They give you the courage to dare changing code because of the immediate feedback they give when you&#039;ve been refactoring a little too aggressively. And this is priceless.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;On the other hand, tests resist behavioral changes. Because tests have captured all the nitty-gritty of your application, when comes the time to change its behavior, you will need to invest time to adapt your tests accordingly, and this whether you rework the tests first or not. As Cédric pointed out, in a dynamically typed language, this is immensely painful as development tools are almost useless in assisting you with the required changes. Similarly, if you use mock objects, you are good for going down a deeper &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;qi45&quot; href=&quot;http://en.wikipedia.org/wiki/Inferno_(Dante)&quot; title=&quot;circle of hell&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Circle of Hell&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;, where more painful and frustrating manual fixes await you.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;So, is there any hope out of this love / hate relationship? Knowing that &quot;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;a id=&quot;i01v&quot; href=&quot;http://programmer.97things.oreilly.com/wiki/index.php/Speed_Kills&quot; title=&quot;the only way to go fast is to go well&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;the only way to go fast is to go well&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&quot; dumping tests altogether is certainly not an option. Could the solution lies in Cédric&#039;s very last words: &quot;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;do your best so that your tests don&#039;t overlap&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: normal; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&quot;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;At this point, I don&#039;t know yet but I&#039;ve decided that, as a starting point, I should start to estimate the amount of overlap I&#039;m dealing with in the &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;mf9v&quot; href=&quot;http://snoget.com/&quot; title=&quot;Erlang game server&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Erlang game server&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; I&#039;m working on. Interestingly, what I&#039;ve found could pretty much apply to the vast majority of Java projects I&#039;ve been previously working on. Maybe it applies to your projects too?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;The first thing I&#039;ve looked at is the testing overlap that exists between two layers of our application:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_wgiUOehXWyI/Synb_2WLlhI/AAAAAAAAAfc/0HC2KmrdLb8/s1600-h/LayersMockOverlap.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 111px;&quot; src=&quot;http://2.bp.blogspot.com/_wgiUOehXWyI/Synb_2WLlhI/AAAAAAAAAfc/0HC2KmrdLb8/s320/LayersMockOverlap.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416101916856522258&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;As you can see, the overlap exists because tests of the upper layer rely on mocks to simulate all the happy paths and most of the unhappy paths of the underlying layer. The overlap is not total because a layer tend to reduce the granularity of the unhappy paths it faces internally in order to expose the upper layer to a limited amount of bad situations to deal with. Hence the limited amount of mocked features in the overlap area.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;When applied to a typical vertical slice of our system, it looks like this:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncALfv6PI/AAAAAAAAAfk/BljODDs0HM0/s1600-h/AllLayers.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 304px; height: 127px;&quot; src=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncALfv6PI/AAAAAAAAAfk/BljODDs0HM0/s320/AllLayers.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416101922533796082&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;This is not too bad. Until the wind of feature change comes blowing on this mock-based card-house of tests, life is peachy.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Until now, the tests I have been looking at were only unit and database ones. If I add our functional tests on top of the overlap diagram, here is what I get:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncAsF5ImI/AAAAAAAAAfs/Uz5c96jS5kw/s1600-h/FullTestsOverlap.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 287px; height: 149px;&quot; src=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncAsF5ImI/AAAAAAAAAfs/Uz5c96jS5kw/s320/FullTestsOverlap.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416101931283718754&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;Now the application container is also tested, plus we get an insane amount of overlap.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;But the amount of overlap is not what I want to discuss first: it&#039;s the test coverage profile that I want to look at first. Notice how the functional tests explore less unhappy paths as they exercise deeper application layers. This can be explained simply: some unhappy paths are very hard to reproduce via the reduced set of functionalities exposed at the top level, oftentimes because they require a very specific and complex state to be established beforehand or conditions that could only be met in case of low level failures (loss of networking, for example).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;It&#039;s obviously out of the question to consider dropping functional tests in order to reduce the testing overlap. As Cédric said, they are the only tests that have a true value for the end user of the system. My experience confirms that you can reach a nearly flawless first-time client integration if your functional tests have a coverage profile that is similar to the one in the last figure above.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;The only problem lies in the quality of feedback you get from functional testing: because it&#039;s impossible to make the gory details of the errors encountered when exploring unhappy paths surface at the uppermost level, your system must have a solid logging strategy that allows you to precisely track issues, should you decide to code using functional tests as your only safety net.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;So are the unit tests overlapped by the functional tests the ones that must go? Cédric again gives the answer: if time is short, it&#039;s better to focus on the functional tests. Of course, if you have a battery of unit tests in place, keep them.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;But, maybe, just maybe, as you move to your next project, consider writing functional tests firsts? That way you would have built first the tests that truly matter and, if time permits, write unit tests as you implement the features expected by the functional tests.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/13243193-5598468275848323632?l=blog.dossot.net&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1225717&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Dec 2009 01:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1225717</guid>
 <comments>http://java.sys-con.com/node/1225717#feedback</comments>
</item>
<item>
 <title>Developing Software Collaboratively with Hudson</title>
 <link>http://java.sys-con.com/node/1223689</link>
 <description>Hudson is an open source &quot;continuous integration&quot; (CI) server initially developed at Sun. This whitepaper describes the capabilities of Hudson, compares Hudson’s key features to those of competitive offerings, and summarizes why Hudson has quickly become the industry’s most widely adopted open source CI server.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1223689&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 16 Dec 2009 17:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1223689</guid>
 <comments>http://java.sys-con.com/node/1223689#feedback</comments>
</item>
<item>
 <title>A Guide to Cost Savings With Sun GlassFish 3.0 Portfolio</title>
 <link>http://java.sys-con.com/node/1223617</link>
 <description>Today&#039;s IT managers strive to deliver dynamic applications and interactive workflows to growing numbers of users with greater efficiency and at a lower cost. This whitepaper describes how the Sun GlassFish Portfolio can help organizations to create cost-effective services solutions.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1223617&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 16 Dec 2009 16:30:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1223617</guid>
 <comments>http://java.sys-con.com/node/1223617#feedback</comments>
</item>
<item>
 <title>Moyea JavaScript API Is Available for Interaction Using HTML Syntax</title>
 <link>http://java.sys-con.com/node/1222618</link>
 <description>Instead o only a static display-and-browse relation between flash video player and its users, Moyea JavaScript API(Application Programming Interface) provides a real-time, dynamic and interactive response to customers’ operation.  
Shenzhen P.R.C -Dec 15th , 2009 - Moyea Software Co., Ltd. (&lt;a href=&quot;http://www.moyeamedia.com/&quot; title=&quot;http://www.moyeamedia.com/&quot;&gt;http://www.moyeamedia.com/&lt;/a&gt;): a rising developer of flash applications for the internet and multimedia software, today officially [...]&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1222618&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 16 Dec 2009 03:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1222618</guid>
 <comments>http://java.sys-con.com/node/1222618#feedback</comments>
</item>
<item>
 <title>Eucalyptus: Cloud Computing Privately</title>
 <link>http://java.sys-con.com/node/1061982</link>
 <description>In our constant pursuit of exploring new technologies, we stumbled upon the Eucalyptus and greatly contemplated on its installation. Being driven by our leaning towards cloud. Eucalyptus really clouded our minds and we decided, &quot;no pain, no gain&quot;. And here we are having successfully installed Eucalyptus and here is how we did it. We have the Cloud Controller, the Cluster Controller and Node Controller all up and running. But the document is still a draft version.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1061982&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 15 Dec 2009 16:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1061982</guid>
 <comments>http://java.sys-con.com/node/1061982#feedback</comments>
</item>
<item>
 <title>CloudBerry Explorer for Amazon S3</title>
 <link>http://java.sys-con.com/node/1211287</link>
 <description>CloudBerry Explorer allows end users to accomplish simple tasks without special technical knowledge, automate time-consuming tasks to improve productivity. AWS Import/Export accelerates moving large amounts of data into and out of AWS using portable storage devices for transport. AWS loads your data directly onto and off of storage devices using Amazon&#039;s high-speed internal network and bypassing the Internet.  New version of CloudBerry Explorer automates the process of creating the manifest file and digitally signing it along with the job identifier with your AWS Secret Access Key and placing that signature file on the device.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1211287&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 13 Dec 2009 17:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1211287</guid>
 <comments>http://java.sys-con.com/node/1211287#feedback</comments>
</item>
<item>
 <title>Four Steps and 90 Days to Transform a Datacenter to the Cloud</title>
 <link>http://java.sys-con.com/node/1200132</link>
 <description>All this while the IT team is faced with another reality, the main corporate datacenter has 6-18 months left in terms of shelf life. The datacenter&#039;s power distribution and patch panel design was not built to handle the massive density and cooling power requirements. The sprawl of unstructured data, app servers, web servers and now virtual machines is proliferating at a pace that will force a space crunch in a time frame that is counter to the challenge from the business in terms of capital preservation and opex reduction.
&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1200132&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 12 Dec 2009 19:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1200132</guid>
 <comments>http://java.sys-con.com/node/1200132#feedback</comments>
</item>
<item>
 <title>Calling Client Side JavaScript from a BIRT Chart</title>
 <link>http://java.sys-con.com/node/1218650</link>
 <description>A couple of months ago I detailed a new feature for BIRT charts that allows multiple hyperlinks to be attached to one the supported events.  That post is available &lt;a href=&quot;http://birtworld.blogspot.com/2009/10/multiple-hyperlinks-on-birt-charts.html&quot;&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1218650&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 12 Dec 2009 15:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1218650</guid>
 <comments>http://java.sys-con.com/node/1218650#feedback</comments>
</item>
<item>
 <title>A Light Java Runtime to Bundle with Applications</title>
 <link>http://java.sys-con.com/node/1201627</link>
 <description>Steve Jobs once said that Java is a big heavyweight ball and chain. Good news: the ball is now optional! In this article, I share results we achieved after implementing a component deployment model, also known as JRE modularity, for the core of J2SE 5.0 and Java SE 6. The technology&#039;s been in production use for more than two years and proved effective. This is not a mere &quot;Java gets smaller&quot; message. Given that Project Jigsaw is emerging in JDK 7, I also offer some insights on the challenges that any implementation of modularity for the Java SE core may face, all derived from our practical experience.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1201627&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 11 Dec 2009 18:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1201627</guid>
 <comments>http://java.sys-con.com/node/1201627#feedback</comments>
</item>
<item>
 <title>Oracle Reportedly Claims the EC Concocted Evidence</title>
 <link>http://java.sys-con.com/node/1218072</link>
 <description>From the thin reports out of Brussels about the closed-door hearing at the European Commission Thursday, it appears that Oracle – which is supposed to be trying to convince the regulator to let it swallow Sun whole MySQL and all – has gone on the offensive and accused the EC of twisting the results of its investigation to suit its MySQL bias by misrepresenting, cherry-picking or ignoring what users said about the market and the competitive scene. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1218072&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 11 Dec 2009 13:15:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1218072</guid>
 <comments>http://java.sys-con.com/node/1218072#feedback</comments>
</item>
</channel>
</rss>
