<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Peter Hendriks</title><link>http://blogs.infosupport.com/blogs/peterhe/default.aspx</link><description>beans on the move</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/PeterHendriks" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Eclipse Galileo SR1 (3.5.1): enterprise polish</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/VAJeZMudeMI/eclipse-galileo-sr1-3-5-1-enterprise-polish.aspx</link><pubDate>Sat, 26 Sep 2009 10:25:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:19760</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=19760</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=19760</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/09/26/eclipse-galileo-sr1-3-5-1-enterprise-polish.aspx#comments</comments><description>&lt;p&gt;Eclipse is used as a core tooling platform in big and small software development projects, using various plug-ins and programming languages, all around the world. Scaling is important for Eclipse, both in time (some projects take years), and size. Last month, Google held an Eclipse Day, and the videos are available &lt;a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009"&gt;here&lt;/a&gt;. The videos mention some scaling problems: how to deal with lots of code, lots of plug-ins and different configurations. Google is a huge development organization with tons of projects and millions of lines of code. In many ways, Google is the ultimate &amp;ldquo;&lt;a href="http://www.conceptualist.com/2008/04/11/do-the-best-domain-names-pass-the-sinatra-test/"&gt;Sinatra Test&lt;/a&gt;&amp;rdquo; for scaling Eclipse, and the talks show some interesting problems and solutions.&lt;/p&gt;
&lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:43f17cac-9438-4ac7-a88f-6541bf5614fc" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Xr6gRTSQspc&amp;amp;feature=channel" target="_new"&gt;&lt;img src="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/peterhe/videof213b56c6842_5F00_00C498CD.jpg" style="border-style:none;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The Eclipse &amp;ldquo;Galileo&amp;rdquo; release train updated yesterday with its first &lt;a href="http://www.eclipse.org/downloads/"&gt;Service Release&lt;/a&gt;! Among the many bug fixes are some very nice performance improvements (some of which mentioned in the videos). On my current project, we have over 200 projects in the workspace, close to a million lines of code, and our current (strict) coding policies show over fifty thousand problem markers in the codebase (mostly because of an ongoing migration to Java generics). Being a &lt;a href="http://www.eclipse.org/donate/"&gt;friend of Eclipse&lt;/a&gt;, I got to download the release a day early and try it out, and the results are impressive. Eclipse feels a lot faster now and some obscure JDT quirks seem to be fixed as well. Hopefully, these kind of performance fixes get more attention in next service releases as well, which means we can scale up Eclipse better and easier.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=19760" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Eclipse/default.aspx">Eclipse</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/09/26/eclipse-galileo-sr1-3-5-1-enterprise-polish.aspx</feedburner:origLink></item><item><title>"Jazz" ALM tool Team Concert: now free for 10 developers</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/29GQSQESQvQ/quot-jazz-quot-alm-tool-team-concert-now-free-for-10-developers.aspx</link><pubDate>Tue, 22 Sep 2009 18:46:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:19671</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=19671</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=19671</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/09/22/quot-jazz-quot-alm-tool-team-concert-now-free-for-10-developers.aspx#comments</comments><description>&lt;p&gt;Today, the IBM &lt;a href="https://jazz.net/projects/rational-team-concert/"&gt;Rational Team Concert&lt;/a&gt; (RTC) &amp;quot;Jazz&amp;quot; team released version 2.0.0.1, an update to the major 2.0 release last June. The update contains a ton of bug fixes and feature enhancements, which is always nice. However, the big changes are in the licensing department. Most notably, the free Express-C edition is now equipped with 10 developer licenses (instead of 3), and can now run on all supported database platforms (DB2, Oracle, MS SQL Server) for increased performance. More details on the release are available &lt;a href="http://jazz.net/blog/index.php/2009/09/21/team-concert-2-0-0-1-released/"&gt;here&lt;/a&gt; and &lt;a href="https://jazz.net/downloads/rational-team-concert/releases/2.0.0.1?p=news"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This means another compelling free option for small teams. RTC is a state of the art version control, work item management, planning and build management tool, with overall process guidance, history, chat and a web dashboard, very nicely integrated into one suite. It basically runs everywhere and provides first-class support for both Eclipse and Visual Studio .NET based tooling. RTC is developed by one of the best teams of IBM, with an aggressive release cycle of 3 releases a year, innovating very rapidly. And, if you can live with no support and 10 developer limits, it doesn&amp;#39;t cost you anything. That&amp;#39;s a pretty sweet deal.&lt;br /&gt;&lt;br /&gt;So, what&amp;#39;s all this talk about &amp;quot;developer&amp;quot; users? Because &lt;a href="http://jazz.net/"&gt;Jazz.net&lt;/a&gt; is not very explicit on this, I&amp;#39;ll try to explain. Basically, RTC has several different categories of users, some of which require licenses and/or are limited based on the server edition:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Users &lt;/b&gt;(no license): have read-only access to project data such as dashboards, work items, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Admins &lt;/b&gt;(no license): can perform technical tasks, such as configuring the server, adding users and licenses, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Build &lt;/b&gt;(included with server): can perform version control operations needed for builds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Contributor &lt;/b&gt;(license needed): full access to work items, planning,
dashboards and reports. No access to version control and build
management.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Developer &lt;/b&gt;(license needed, some included with server, max per server/edition): can use everything of RTC.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, 10 developers does not mean just 10 users. You may have some flexibility if some users do not need all the features. So, go download the latest version &lt;a href="https://jazz.net/downloads/rational-team-concert/releases/2.0.0.1?p=featured"&gt;here&lt;/a&gt;. The Express-C edition is very easy to install, just unzip-and-go. Try it out, if you don&amp;#39;t like it, just throw away the directory when you&amp;#39;re done.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=19671" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Jazz/default.aspx">Jazz</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Rational+Team+Concert/default.aspx">Rational Team Concert</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/09/22/quot-jazz-quot-alm-tool-team-concert-now-free-for-10-developers.aspx</feedburner:origLink></item><item><title>Injecting JSR330 into JSR299</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/OAO_oq3ybCw/injecting-jsr330-into-jsr299.aspx</link><pubDate>Wed, 05 Aug 2009 19:04:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16490</guid><dc:creator>peterhe</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=16490</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=16490</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/08/05/injecting-jsr330-into-jsr299.aspx#comments</comments><description>&lt;p&gt;Last week, I &lt;a href="http://blogs.infosupport.com/blogs/peterhe/archive/2009/07/31/why-you-really-really-need-dependency-injection.aspx"&gt;blogged&lt;/a&gt; about Guice 2.0 and the state of Java EE 6 dependency injection: &lt;a href="http://jcp.org/en/jsr/detail?id=299"&gt;JSR299&lt;/a&gt;, competing with another injection standard: &lt;a href="http://jcp.org/en/jsr/detail?id=330"&gt;JSR330&lt;/a&gt;. Well, the wise men of the Java EE 6 spec, just before finalizing it, have just decided to &lt;a href="http://weblogs.java.net/blog/robc/archive/2009/08/dependency_inje.html"&gt;adopt JSR 330 into JSR 299&lt;/a&gt;. This is great news! JSR330 is not limited to the application server, so this means we can use the same notation mechanism on the server, desktop, mobile, etc. Also, JSR330 are just a set of interface and annotations, this means you&amp;#39;ll be able to use it in today&amp;#39;s technology as well, combined with &lt;a href="http://code.google.com/p/google-guice/"&gt;Guice&lt;/a&gt; or &lt;a href="http://www.springsource.org/"&gt;Spring&lt;/a&gt;, providing a smoother ride to Java EE 6 later on. Most important, the competing specs would have caused some massive confusion and agitation, and fortunately, this has now been prevented before the fact.&lt;/p&gt;
&lt;p&gt;In the announcement, Java EE 6 is pushed to a November release (from September), and of course, some mea culpa here, because all the current JSR 299 samples will break and some serious late-game refactoring is needed. Better late than never though: Java EE 6 will be around for a while, and it&amp;#39;s important for these kind of decisions to be right the first time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16490" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Spring/default.aspx">Spring</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Guice/default.aspx">Guice</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java+EE/default.aspx">Java EE</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/08/05/injecting-jsr330-into-jsr299.aspx</feedburner:origLink></item><item><title>Guice 2.0 presentation: no more reasons not to like dependency injection</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/atGN6TveVsU/why-you-really-really-need-dependency-injection.aspx</link><pubDate>Fri, 31 Jul 2009 19:29:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16450</guid><dc:creator>peterhe</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=16450</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=16450</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/07/31/why-you-really-really-need-dependency-injection.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency Injection&lt;/a&gt; is one of the most controversial improvements made in software development over the last few years. Dependency Injection really helps modularization of code, which in turn, among other things, greatly improves the ability to unit test code. On the other hand, dependency injection either requires tons of hand-written factories or a framework. DI frameworks may have their issues of their own, like doing a lot in complicated XML, a large footprint, too much &amp;quot;productivity improving&amp;quot; added voodoo magic, not being to inject everywhere, etc. Over the years, DI frameworks have competed fiercely with new ideas and new concepts, and though DI frameworks have been useful from the beginning, they are really a lot more powerful and easy to use nowadays.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=299"&gt;A Dependency Injection framework&lt;/a&gt; will be part of the &lt;a href="http://jcp.org/en/jsr/detail?id=316"&gt;Java EE 6 spec&lt;/a&gt;. To be honest, I have mixed feelings about this. On the one hand, it&amp;#39;s great to finally see these concepts embraced the spec, hopefully, it will end the silly battles of &amp;quot;it&amp;#39;s not a Java EE spec idea, so it cannot be used&amp;quot;. On the other hand, there are some serious drawbacks. First of all, the DI specified in Java EE 6 does not work outside the container as by the specs. You will need DI outside of container a lot: when writing stand-alone applications, when wanting to do out-of-container integration tests, simple standalone conversion code, etc. Of course, nothing prevents DI frameworks from adding custom API and support for this, but this defeats the purpose of having a standard. &lt;/p&gt;
&lt;p&gt;Also, DI is a much more evolving topic than for other infrastructure-oriented API. HTTP, JTA, JMS, JMX, are infrastructure-oriented solution APIs, and as such are most likely limited to evolve based on the underlying technology, while DI sits on a much different level. This spec will hopefully be final soon, but it will probably take at least a few years for vendors and customers to adopt to this standard. In two years, DI will probably already be evolved by then, making the current spec solution suboptimal by comparison, and the DI part will  not be as popular as one might expect now. On top of that, a competing standard (&lt;a href="http://jcp.org/en/jsr/detail?id=330"&gt;JSR-330&lt;/a&gt;) is working on a
standardized interface for DI frameworks that is different from the one
in the EE6 spec. This means the Java EE DI spec will have competition even from another JSR!&lt;/p&gt;
&lt;p&gt;Meanwhile, Google released version 2.0 of their &lt;a href="http://code.google.com/p/google-guice/"&gt;Guice DI framework&lt;/a&gt;. This &lt;a href="http://www.youtube.com/watch?v=hBVJbzAagfs"&gt;presentation&lt;/a&gt; gives a great introduction on why you need Dependency Injection in general, and what Guice is all about. No large-mouthed marketing, no mud-slinging, a very technical and honest talk. I really like Guice 2.0, it&amp;#39;s really easy, powerful, fast, small footprint, OSGi enabled, works everywhere and tries to solve one and only one problem. If you like DI, be sure to watch the presentation, if you hate DI, watch it too. No need to wait for a big spec change and a server upgrade, just start using today&amp;#39;s great ideas today.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update: &lt;/b&gt;it appears the &lt;a href="http://blogs.infosupport.com/blogs/peterhe/archive/2009/08/05/injecting-jsr330-into-jsr299.aspx"&gt;Java EE 6 spec will adopt to JSR 330&lt;/a&gt;, this solves several of the problems I mentioned. Guice will probably adopt JSR 330 as well, as the Guice architect Bob Lee is on the spec team.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16450" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Google/default.aspx">Google</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Guice/default.aspx">Guice</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/07/31/why-you-really-really-need-dependency-injection.aspx</feedburner:origLink></item><item><title>Eclipse Galileo: tons of new stuff</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/t-tBMwyIQR8/eclipse-galileo-tons-of-new-stuff.aspx</link><pubDate>Sun, 19 Jul 2009 12:37:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16384</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=16384</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=16384</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/07/19/eclipse-galileo-tons-of-new-stuff.aspx#comments</comments><description>&lt;p&gt;The &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; open source initiative is one of the biggest open source communities currently active, and since mostly backed by businesses, has a strong quality and real-world focus. Eclipse hosts a &lt;a href="http://www.eclipse.org/projects/listofprojects.php"&gt;ton of projects&lt;/a&gt;, and most of the mature projects participate in the &amp;quot;release train&amp;quot;, a yearly coordinated effort to launch new releases. This way, it&amp;#39;s easier to keep track of Eclipse developments, and because projects depend on each other, it allows for a smoother adoption as well.&lt;br /&gt;&lt;br /&gt;This year, the train was dubbed &amp;quot;&lt;a href="http://www.eclipse.org/galileo/"&gt;Galileo&lt;/a&gt;&amp;quot;, and contains 33 projects (from 23 projects last year), containing 24 million lines of code. While Eclipse started out as a base tooling platform for Java development, today, it&amp;#39;s a lot more. In fact, it&amp;#39;s such a broad platform now, I will only highlight some of the new stuff in the projects I keep track of myself, starting with the new and less known:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Jetty/Eclipselink/Swordfish/Riena&lt;/b&gt;: A few new &amp;quot;framework&amp;quot; like projects were added to Eclipse relatively recent. One is &lt;a href="http://www.eclipse.org/jetty/"&gt;Jetty&lt;/a&gt;, a mature, flexible and fast Web Container, notably used by Google for its AppEngine Java cloud offering. Another is &lt;a href="http://www.eclipse.org/eclipselink/"&gt;EclipseLink&lt;/a&gt;, the open source version of Oracle TopLink, and the official reference JPA solution. EclipseLink boasts some other interesting features too, including support for &lt;a href="http://www.ibm.com/developerworks/library/specification/ws-sdo/"&gt;SDO&lt;/a&gt; and XML, and &lt;a href="http://wiki.eclipse.org/EclipseLink/FAQ/WhatIsDBWS"&gt;DBWS&lt;/a&gt;, a mechanism for declarative data-oriented web services. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/swordfish/"&gt;Swordfish &lt;/a&gt;is a SOA &amp;quot;bus&amp;quot; product based on OSGi, and &lt;a href="http://www.eclipse.org/riena/"&gt;Riena&lt;/a&gt; is a platform for business-oriented client-server applications using Eclipse technology. Both these projects are still very new and still have some rough edges, but it&amp;#39;s interesting to see more of these kinds of projects at Eclipse. Basically, you can now build your entire application with products from Eclipse, making Eclipse compete at a new level.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Memory Analyzer/TPTP&lt;/b&gt;: the &lt;a href="http://www.eclipse.org/mat/"&gt;Memory Analyzer&lt;/a&gt; tool, contributed by SAP, is an exciting new project. It&amp;#39;s hands down the best off-line Java heap dump analyzer currently available, supporting analyzing of large dumps on simple desktop computers, with amazing detail and performance. &lt;a href="http://www.eclipse.org/tptp/"&gt;TPTP&lt;/a&gt; on the other hand still remains a bit of an obscure product, but at least I get it to work now for most scenarios, allowing some basic profiling. Still, I would recommend buying a real profiler tool, or check out the &lt;a href="http://www.netbeans.org/features/java/profiler.html"&gt;Netbeans Profiler&lt;/a&gt; (also limited, but easier to use and better performance).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Process Framework&lt;/b&gt;: the &lt;a href="http://www.eclipse.org/epf/"&gt;process framework&lt;/a&gt; project hosts a sophisticated &amp;quot;composer&amp;quot; tool, designed for building web sites to describe processes. Also, the projects hosts some great reference web sites for popular processes. I find myself looking into the &lt;a href="http://epf.eclipse.org/wikis/openup/"&gt;OpenUP&lt;/a&gt; and &lt;a href="http://epf.eclipse.org/wikis/scrum/"&gt;Scrum&lt;/a&gt; sites often. The new release improves support for &amp;quot;practices&amp;quot; based descriptions, that allow for easier mixing and matching when defining a custom process.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Eclipse Web tools&lt;/b&gt;: &amp;quot;web tools&amp;quot; always has been a bit of a weird name, since I use it most to write EJBs. This release has some nice improvements for writing XML Schema and XSL stylesheets, and some UI cleanup across the board. Also, support for Java EE 5 and JPA has been improved.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Mylyn&lt;/b&gt;: the premier task solution for Eclipse has some nice additions. Wikitext is now used all over the place for better formatting, and &lt;a href="http://www.eclipse.org/mylyn/"&gt;Mylyn&lt;/a&gt; now supports OSLC, meaning it can interact with Rational ClearQuest and the &amp;quot;Jazz&amp;quot; Team Concert products.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Eclipse platform/IDE&lt;/b&gt;: the best known Eclipse product got some nice updates. First of all, support on the Mac should be improved a lot, and there are some great tooling improvements if you are doing OSGi development. On the part of generic Java developments, there is some nice little polish, but no huge new features.&lt;br /&gt;&lt;br /&gt;Debugging now no longer requires to switch to another perspective, but allows to dynamically open/close views in the current perspective. I did not expect to like this as much as I do now. When debugging a simple unit test, it&amp;#39;s less of a mental context-switch. And when I need all of the advanced debug stuff, I can still switch to the perspective and do some serious debugging.&lt;br /&gt;&lt;br /&gt;All in all, Eclipse innovation is still going strong, with small and big improvements that keep the products going forward. Hopefully, you get to upgrade soon and start using Eclipse Galileo!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16384" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Eclipse/default.aspx">Eclipse</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/07/19/eclipse-galileo-tons-of-new-stuff.aspx</feedburner:origLink></item><item><title>Returned from the RSC: back to the rest of the world</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/PLPRBHp9DYU/returned-from-the-rsc-back-to-the-rest-of-the-world.aspx</link><pubDate>Tue, 09 Jun 2009 10:46:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16110</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=16110</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=16110</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/06/09/returned-from-the-rsc-back-to-the-rest-of-the-world.aspx#comments</comments><description>&lt;p&gt;Well, the IBM Rational Software Conference 2009 is over again. It was once again a great conference with lots of interesting new developments and insights. The &lt;a href="http://jazz.net/"&gt;Jazz&lt;/a&gt; products are evolving very fast, and they really try to improve on weak points first and adding only features that are really useful and relevant in real life. I really like the &amp;quot;enterprise&amp;quot; focus of RSC, as much fun as dancing robots or spinning cubes are, it&amp;#39;s much more interesting to see how technology and tools can be applied in real scenarios. For fun and entertainment, comedian &lt;a href="http://www.mitchfatel.com/"&gt;Mitch Fatel&lt;/a&gt; cohosted with a &lt;a href="http://www.metacafe.com/watch/2702226/ibm_rsc2009_as_real_as_it_gets_reality_show/"&gt;reality show&lt;/a&gt; using real developers. Basically, just like on tv, the show was pretty corny, but fun when the developers started arguing and acting like idiots to win the discussion. Those developers were also attending/speaking, and it was funny to see some guy getting an evil eye all the time while doing lunch (tv will do that to you). The guys from &lt;a href="http://dsc.discovery.com/fansites/mythbusters/mythbusters.html"&gt;Mythbusters&lt;/a&gt; were special guests, although it was a shame that they could not blow anything up on stage because of the fire department regulations. They did provide some insight on risk management, the process of creating experiments, and space ships fueled with poo.&lt;/p&gt;
&lt;p&gt;When I was at the conference, I completely disconnected from the rest of the world to focus on all the content. Now that I am back, I am reading up on all the other interesting stuff that happened the last few weeks. European elections, &lt;a href="http://java.sun.com/javaone/"&gt;JavaOne&lt;/a&gt;, &lt;a href="http://code.google.com/events/io/"&gt;Google I/O&lt;/a&gt;, a lot happened in such a short time. Google is moving more and more into the Java space, with the &lt;a href="http://code.google.com/appengine/docs/java/overview.html"&gt;AppEngine Java&lt;/a&gt; offering and the exciting new &lt;a href="http://wave.google.com/"&gt;Google Wave&lt;/a&gt; initiative, fully based on &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt;. The Wave demos are a great showcase for GWT. A lot of the &lt;a href="http://code.google.com/events/io/sessions.html"&gt;Google I/O sessions&lt;/a&gt; are already up on the web, and I&amp;#39;ll soon here from my colleagues that visited JavaOne what happened over there. It&amp;#39;s great that despite the economic crisis, innovation still happens!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16110" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Jazz/default.aspx">Jazz</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/RSDC/default.aspx">RSDC</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/06/09/returned-from-the-rsc-back-to-the-rest-of-the-world.aspx</feedburner:origLink></item><item><title>Rational Software Conference 2009: Real, Smart and Green</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/sBFmpuuMGnw/rational-software-conference-2009-real-smart-and-green.aspx</link><pubDate>Tue, 02 Jun 2009 21:13:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16062</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=16062</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=16062</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/06/02/rational-software-conference-2009-real-smart-and-green.aspx#comments</comments><description>&lt;p&gt;After a year, we&amp;#39;re back in Orlando, home of Mickey Mouse, roller coasters, hamburgers and Coca Cola, and of course the IBM Rational Software Conference 2009. The conference is already well under way, it started last Sunday, but with an ever increasing count of sessions and events, my schedule does not permit a lot of blogging. The themes of the conference are Real, Smart and Green. Basically, Real is about practical, concrete value, Smart is about innovation and new areas of sofware usage, and Green is not wasting paper at the conference. The green part seems a bit funny when you hear it at the keynote: big plasma screens everywhere, airconditioning that requires wearing a sweater, even though outside it is 40 degrees celcius, and then a big show about how paper is saved and plastic bottles are banished.&lt;/p&gt;
&lt;p&gt;Several new announcements were made. IBM is coming with a new cloud initiative, which should support hosting all kinds of customer applications, as well as the Rational Jazz&amp;nbsp;based tools. This means new opportunities for management, monitoring and metering, as well as hosting and licensing models. The announcement is still very fresh, but it is an interesting model that will be interesting for lots of people, including smaller companies that don&amp;#39;t want the hassle of managing infrastructure, or really big organizations that would like additional metering and governance for internal billing of server usage.&lt;/p&gt;
&lt;p&gt;Also, IBM is expanding the portfolio with even more tools. The Tivoli systems management tools will now connect more and more with Rational, bridging the gap&amp;nbsp;between software development and the production support organization. And Rational Insight will provide &amp;quot;executive dashboards&amp;quot; for management to bring together metrics from all kinds of tools and data warehouses, with analysis built in to assess the health of projects at a broad level.&lt;/p&gt;
&lt;p&gt;Of course, lots of content on the development of existing products as well. Team Concert 2.0 has some exiting new features, and the work on the Jazz foundation means that the tooling integration will push to new levels in the upcoming Quality Manager and Requirements Composer releases. The Open Services Lifecycle Collaboration (OSLC) specification was just finalized at 1.0 last week. RTC 2.0 will comply with it, and there is a OSLC adapter for ClearQuest available as well. Interestingly, the Mylyn guys added support for OSLC to the Mylyn Eclipse plug-in. This means that everyone that supports OSLC will directly work with Mylyn. For Mylyn and the adopters, this could be a real winner, because right now, there are about 29 different adapters for Mylyn to support all kinds of task repositories.&lt;/p&gt;
&lt;p&gt;Several other interesting things going on as well in the &amp;quot;agile&amp;quot; mentoring and guidance space. Adopting some of the agile ideas can be very hard to do, and there are several&amp;nbsp;experienced speakers here with great ideas about moving agile forward, without being too naieve about it. All in all, a great conference so far, back to my&amp;nbsp;busy schedule for the next sessions!&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16062" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/rup/default.aspx">rup</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Mylyn/default.aspx">Mylyn</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Jazz/default.aspx">Jazz</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/RSDC/default.aspx">RSDC</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/06/02/rational-software-conference-2009-real-smart-and-green.aspx</feedburner:origLink></item><item><title>Jazz 2.0 release candidate</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/lTiwDSKx9m8/jazz-2-0-release-candidate.aspx</link><pubDate>Sun, 17 May 2009 17:05:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15905</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15905</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15905</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/05/17/jazz-2-0-release-candidate.aspx#comments</comments><description>&lt;p&gt;RC1 for Rational Team Concert (RTC) 2.0 was released &lt;a href="https://jazz.net/downloads/rational-team-concert/milestones/2.0RC1"&gt;yesterday&lt;/a&gt;. Even though it&amp;#39;s only been a year since the 1.0 release, RTC got a lot of updates. First of all, there is now an Enterprise edition, which allows an unlimited amount of developers on a single server instance, a big improvement for large organizations with more than 250 developers. Cross-server and cross-project linking has been improved and formalized, one of the user-visible capabilities is that you can now create dashboards that contain information of several projects. This allows several interesting scenarios, such as a &amp;quot;Project of Projects&amp;quot; for a Project Office in a large orginization, or different companies with their own ALM deployments working together through the shared Jazz link.&lt;/p&gt;
&lt;p&gt;All of the core components got some serious updates, but the Agile Planning Tool got the best screenshots. First, a new Standard-only feature calculates risk in the schedule based on the estimates and the planned dates:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://jazz.net/downloads/pages/rational-team-concert/2.0/M3/images/apt_tempo.png" style="max-width:550px;" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Another fantastic feature, available in all RTC editions, is the &amp;quot;taskboard&amp;quot; view mode. This basically gives you a Scrum-sticky notes overview of the tasks. It looks really great on my big widescreen monitor at home:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://jazz.net/downloads/pages/rational-team-concert/2.0/M1/images/taskboard.png" style="max-width:550px;" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There are a lot more new features, check out the &lt;a href="https://jazz.net/downloads/rational-team-concert/milestones/2.0M3?p=news"&gt;new &amp;amp; noteworthy&lt;/a&gt; notes if you are interested. It&amp;#39;s not just brand new features though, in the different RTC &amp;quot;editions&amp;quot; (free, small, org, huge), a lot of the checkmarks got to the left side. This means the Express versions now are a much improved option for a quick single-project off-the-shelf solution. If you haven&amp;#39;t given RTC 2.0 some attention yet, be sure to take a look!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15905" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Jazz/default.aspx">Jazz</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Rational/default.aspx">Rational</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/05/17/jazz-2-0-release-candidate.aspx</feedburner:origLink></item><item><title>Why tools matter</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/dfRcEEpXyso/why-tools-matter.aspx</link><pubDate>Sun, 03 May 2009 15:34:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15784</guid><dc:creator>peterhe</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15784</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15784</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/05/03/why-tools-matter.aspx#comments</comments><description>&lt;p&gt;Improving software development productivity is a much discussed topic, with many different schools of thought. Some will say you need to get people who can &amp;quot;&lt;a title="Joel on software: Hitting the High Notes" href="http://www.joelonsoftware.com/articles/HighNotes.html"&gt;Hit the High Notes&lt;/a&gt;&amp;quot;, others will focus on &lt;a href="http://www.infoq.com/presentations/teamwork-an-individual-skill"&gt;teamwork dynamics&lt;/a&gt; as a means to ultimate productivity, while some will emphasize that &lt;a title="IBM RTC ROI Calculator" href="http://www-01.ibm.com/software/rational/rtc/roi/"&gt;using the best tool&lt;/a&gt; out there is critical. A lot of these camps will often downplay the others, stating that their focus on productivity is the only one that really matters.&lt;/p&gt;
&lt;p&gt;I think all aspects matter a lot, and depending on the situation, you should focus on different aspects. Small teams vs big teams vs novice teams vs experienced vs long vs short projects, etc. The important thing to recognize is the relations between them and how they compound or conflict with each other.&lt;/p&gt;
&lt;p&gt;Tools play an important role here (with tools, I mean &amp;quot;automated&amp;quot; support, such as an IDE, build tool, version control, etc.). In my opinion, tools can determine the bandwidth of operational productivity. In other words, tooling will play a role in determining the barrier to entry to perform certain activities, and the maximum theoretical performance a team member can reach using the tool.&lt;/p&gt;
&lt;p&gt;A nice example is creating a build. If properly tooled, everyone should be able to start an automated build with the press of a button (or even better, it just happens). Otherwise, creating a build may involve several complex steps, requiring specific knowledge and coordination, and is likely to be executed by a single team member as an &amp;quot;integrator&amp;quot; only. A properly automated build reduces the barrier to entry for the task of creating a build.&lt;/p&gt;
&lt;p&gt;If a version control system does not support certain features (like atomic commit, for instance), or is very slow, this may limit the bandwidth of team members using the tool. Limited tool support incurs overhead in the form of error-prone behavior, complex workarounds, and increased waiting time.&lt;/p&gt;
&lt;p&gt;Of course, tools are not the only potentially governing boundary factors for productivity. Just simple pen and paper are a great drawing tool, easy to use, very fast, and very mobile. On the other hand, it is difficult to navigate and search through paper drawings, or maintain them when something changes. Tools should always be viewed in the context of a given task and situation. &lt;/p&gt;
&lt;p&gt;I tried to summarize this using this very sophisticated picture:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/peterhe/toolproductivity.png"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/peterhe/toolproductivity.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15784" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/software+development/default.aspx">software development</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/05/03/why-tools-matter.aspx</feedburner:origLink></item><item><title>J-Spring 2009, full of surprises</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/-FpUEz9xgdg/j-spring-2009-full-of-surprises.aspx</link><pubDate>Wed, 15 Apr 2009 18:20:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15643</guid><dc:creator>peterhe</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15643</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15643</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/04/15/j-spring-2009-full-of-surprises.aspx#comments</comments><description>&lt;p&gt;Well, it&amp;#39;s spring again, so time for another &lt;a href="http://www.nljug.org/"&gt;NLJUG&lt;/a&gt; &lt;a href="http://www.nljug.org/pages/events/content/jspring_2009/"&gt;J-Spring&lt;/a&gt; event! The NLJUG J-Spring/J-Fall is the biggest Java event in the Netherlands, a one day conference held in Bussum. I am a regular visitor on this conference, interesting sessions, a good indication of the Dutch Java scene, and it&amp;#39;s great to meet up fellow Java developers again. The conference was &amp;quot;sold out&amp;quot; (entrance is free to NLJUG members), but because it was nice weather outside, it was less crowded inside during the breaks than usual.&lt;/p&gt;
&lt;h3&gt;Data Context Interaction&lt;/h3&gt;
&lt;p&gt;For me, the conference started out with a talk on &amp;quot;&lt;a href="http://www.artima.com/articles/dci_vision.html"&gt;Data Context Interaction&lt;/a&gt;&amp;quot; (DCI). Basically, this is supposed to be solving the problem that &amp;quot;typical&amp;quot; object oriented (OO) design mixes all kinds of stuff inside your domain objects. DCI completely separates each interaction, using simple techniques like a decorator, or a full-blown new programming environment called &lt;a href="http://www.objectteams.org/"&gt;Object Teams&lt;/a&gt; (unfortunately, only the latter was demonstrated). I had a bit of trouble with the initial problem statement. In &amp;quot;good&amp;quot; OO principles (like &lt;a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod"&gt;SOLID&lt;/a&gt;, for instance), mixing unrelated stuff in the same object was already considered very bad! I agree with the stuff DCI proposes, but I do OO design this way in plain Java for years already, without needing fancy new languages or confusing new acronyms. As a research effort though, I am really interested if something useful will evolve from this new emphasis on a cleaner separation.&lt;/p&gt;
&lt;h3&gt;Web Beans&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;Next was a talk on the &lt;a href="http://jcp.org/en/jsr/detail?id=299"&gt;JSR-299&lt;/a&gt; &amp;quot;Web Beans&amp;quot; specification. Basically Web Beans is the best of &lt;a href="http://code.google.com/p/google-guice/"&gt;Guice&lt;/a&gt; and &lt;a href="http://www.jboss.com/products/seam/"&gt;Seam&lt;/a&gt; (both inspired by &lt;a href="http://www.springsource.org/about"&gt;Spring&lt;/a&gt;), mixed together in a single &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency Injection&lt;/a&gt; standard. This talk was a real meat grinder, the speaker had little mercy for any listener that did not have intimate knowledge of Seam/Guice, and crammed the entire spec in the talk (and the spec is pretty big). Fortunately, I did know enough about Guice and Seam and managed to keep up the entire session. Web Beans will be great when it&amp;#39;s done (no date is set on that, but not likely this year), especially if it works on Java SE as well. It&amp;#39;s a nice clean spec so far: easier than Spring and Seam, more powerful and complete than Guice.&lt;/p&gt;
&lt;h3&gt;Pragmatic Model Driven&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;The revival of model driven development was apparent on this J-Spring too. &lt;a href="http://www.nljug.org/pages/events/content/jspring_2009/sessions/00002/"&gt;Jos Warmer&lt;/a&gt; did the afternoon keynote on a new framework called &lt;a href="http://www.mod4j.org/"&gt;Mod4J&lt;/a&gt;, which is basically an out-of-the-box DSL and code generation tool to work model driven using predefined DSLs. Another talk by &lt;a href="http://www.nljug.org/pages/events/content/jspring_2009/sessions/00029/"&gt;Richard and Tony&lt;/a&gt; in the afternoon relied on a more low-tech technique by using out-of-the-box &lt;a href="http://www.sparxsystems.com.au/products/ea/index.html"&gt;Enterprise Architect&lt;/a&gt; capabilities in conjunction with &lt;a href="http://freemarker.org/"&gt;Freemarker&lt;/a&gt; templates. Both approaches each have their pros and cons, but both did model driven only for the simple boilerplate code, no ambition to replace coding completely, or rely on very abstract models written by non-programmers. Very interesting stuff, meta-models seem pretty easy, especially in Enterprise Architect, so basically, this stuff relies on easy to understand code generators to be accessible to the average programmer. I talked a bit with some of the model driven guys, but since they have been investigating and experimenting with this stuff for years, to them, everything seems easy.&lt;/p&gt;
&lt;h3&gt;The demise of the Swing JSRs&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;Finally, I visited a talk on the &lt;a href="http://jcp.org/en/jsr/detail?id=296"&gt;JSR-296&lt;/a&gt; &amp;quot;Swing Application Framework&amp;quot; spec, by Karsten &amp;quot;&lt;a href="http://www.jgoodies.com/"&gt;JGoodies&lt;/a&gt;&amp;quot; Lentzsch. Karsten is a great presenter and a real Swing guru so I never miss one of his talks. This talk was especially interesting though, because although he did explain the spec, he basically said that it was dead. Sun re-prioritized on JavaFX, and abandoned some important Swing JSR specifications. According to Lentzsch, you&amp;#39;d be better off right now if you roll your own framework for serious Swing applications instead. It&amp;#39;s surprising to hear a member of a spec expert group say: don&amp;#39;t use this spec! Refreshingly honest though, which is loads better than &lt;a href="http://blogs.sun.com/theplanetarium/entry/the_future_of_swing"&gt;hollow promises of Sun&lt;/a&gt; on this subject.&lt;/p&gt;
&lt;p&gt;Still, the JSR is a great inspiration for solving common problems, although Karsten pointed out some things he did not agree upon (like resource bundle injection). Karsten did say some nice things about &lt;a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform"&gt;Eclipse RCP&lt;/a&gt; too, stating that as the only real alternative for plain Swing for now, interesting to hear from a Swing guru (both Netbeans RCP and JavaFX were mentioned). Finally, he did mention the Eclipse JFace data binding too, as a cleaner and more powerful alternative to the &lt;a href="https://beansbinding.dev.java.net/"&gt;JSR 295&lt;/a&gt; &amp;quot;Beans Binding&amp;quot; spec (dead now, too). Since JFace data binding is pluggable, it can be used outside Eclipse as well, and Karsten mentioned the &lt;a href="http://code.google.com/p/uface/"&gt;UFace&lt;/a&gt; project (Swing and GWT bindings) as something very interesting to watch in this space. UFace, though, has not released any downloads as of yet, so right now, you have the choice between a JSR that is dead, a new generic framework that is not yet available, or just plain old JGoodies for Swing data binding.&lt;/p&gt;
&lt;p&gt;All in all, an interesting and surprising day at J-Spring. See you next J-Fall!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15643" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/J-Spring/default.aspx">J-Spring</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/NLJUG/default.aspx">NLJUG</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/04/15/j-spring-2009-full-of-surprises.aspx</feedburner:origLink></item><item><title>Google AppEngine for Java: the cloud keeps getting bigger</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/uqst2ZzTbGs/google-appengine-for-java-the-cloud-keeps-getting-bigger.aspx</link><pubDate>Wed, 08 Apr 2009 19:06:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15595</guid><dc:creator>peterhe</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15595</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15595</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/04/08/google-appengine-for-java-the-cloud-keeps-getting-bigger.aspx#comments</comments><description>&lt;p&gt;Google joined the cloud computing turf a year ago with &amp;quot;&lt;a href="http://code.google.com/appengine/"&gt;Google AppEngine&lt;/a&gt;&amp;quot;, a framework to enable relatively simple applications to be deployed directly in the cloud. Google AppEngine only supported Python as the programming language, and required the use of very specific API code, that basically meant that if you wrote something for AppEngine, it would not run anywhere else.&lt;/p&gt;
&lt;p&gt;Since its inception, Google always Java promised&amp;nbsp;support for AppEngine. Today, Google announced the first preview for Google AppEngine for Java. Interestingly, unlike the Python API, the Java edition of AppEngine uses a lot of Java EE standards: WAR, JPA, Servlets, JSP, etc. This means that it is easy to program if you already know Java EE, and it is easier to migrate to or away from AppEngine. The Java edition promises support for data storage, authentication, in-memory-caching and probably other features of AppEngine, like scheduling, will be supported as well. The Google Web Toolkit (GWT), Google&amp;#39;s AJAX Web framework for Java, can be used in AppEngine too. See this &lt;a href="http://www.youtube.com/watch?v=P3GT4-m_6RQ"&gt;intro movie&lt;/a&gt; for more information (captioned, no need for sound).&lt;/p&gt;
&lt;p&gt;The AppEngine Java preview includes an SDK, complete with Eclipse support and a local sandbox environment. The &amp;quot;preview&amp;quot; program just got started, so there are limited slots for hosting applications. Claim your slot on the &lt;a href="http://code.google.com/appengine/"&gt;AppEngine page&lt;/a&gt; and start writing some cool Java apps!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15595" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Google/default.aspx">Google</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/AppEngine/default.aspx">AppEngine</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/04/08/google-appengine-for-java-the-cloud-keeps-getting-bigger.aspx</feedburner:origLink></item><item><title>The user interface beyond Star Trek</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/PxI06TXZe_Q/The-user-interface-beyond-Star-Trek.aspx</link><pubDate>Sun, 15 Mar 2009 18:07:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15300</guid><dc:creator>peterhe</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15300</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15300</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/03/15/The-user-interface-beyond-Star-Trek.aspx#comments</comments><description>Everyone knows about Star Trek and the science fiction genre. Science fiction plays with future technologies that do not exist yet. While not everything in Star Trek has now been invented, when it comes to user interfaces, we are pretty close. We now have touch-screen, very small computers, voice commands and rich real-time 3d visualization (real life proof of this: the &lt;a href="http://www.youtube.com/watch?v=U67CJqLUjA0" title="Crazy guy built a Star Trek flat"&gt;Star Trek Flat&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pranavmistry.com/projects/sixthsense/images/full/sixthsense07.jpg"&gt;&lt;img align="right" alt="Use your own hand as an interface (click for full screen)" height="113" src="http://www.pranavmistry.com/projects/sixthsense/images/thumb/sixthsense07.jpg" title="Use your own hand as an interface (click for full screen)" width="150" /&gt;&lt;/a&gt;Well, Star Trek will need to update real fast. The computer industry is still rapidly evolving, and pretty soon, the post-Star Trek user interfaces might emerge. A great example is the &lt;a href="http://www.pranavmistry.com/projects/sixthsense/" title="Sixth Sense MIT research project page"&gt;Sixth Sense&lt;/a&gt; research project. This is a portable image recognition and projecting device, that provides in-context display and can be used using gestures, projected surface interaction, or simply holding objects in front of it. See this &lt;a href="http://www.ted.com/talks/pattie_maes_demos_the_sixth_sense.html" title="Unveiling the Sixth Sense"&gt;TED presentation&lt;/a&gt; for more information and some great demos. It will be interesting, when this becomes mainstream, how much of current UI frameworks can be reused to build the next-gen interfaces.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15300" width="1" height="1"&gt;</description><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/03/15/The-user-interface-beyond-Star-Trek.aspx</feedburner:origLink></item><item><title>Manifesto for Software Craftsmanship</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/MvaLZCQvzeY/Manifesto-for-Software-Craftsmanship.aspx</link><pubDate>Sun, 08 Mar 2009 14:06:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15218</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15218</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15218</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/03/08/Manifesto-for-Software-Craftsmanship.aspx#comments</comments><description>&lt;p&gt;By now, everyone in the software development industry probably heard about &amp;quot;agile&amp;quot; development, formally described in the &lt;a href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;. Agile was a rebellious response to the continuing push of vendor-driven processes and procedures, which seemed to balloon in its efforts to describe every complex artifact and activity, preventing professionals to think up more simple solutions for the problems at hand. &lt;/p&gt;&lt;p&gt;The agile manifesto is a call to action to emphasize several points the big-process guys seemed less important. It&amp;#39;s about relying less on a big tell-me-all-do-nothing-without-it process, complex tooling, huge documents without any real proof, a detailed contract and planning set in stone. Agile states that these concepts are at odds with the very nature of software development, yet were at the time (and still are at a lot of places) commonly practiced.&lt;/p&gt;&lt;p&gt;Whether agile is right about this (I think it is) has always been controversial and a source of heated discussions. This seems strange: if you consider &amp;quot;change&amp;quot; in a software development project as inevitable as &amp;quot;gravity&amp;quot; in the real world, you would expect no real debate on something so obvious. However, unlike &lt;a href="http://www.trivia-library.com/b/sir-isaac-newton-theory-of-gravity-and-the-falling-apple.htm" title="Newton theory of gravity"&gt;falling apples&lt;/a&gt;, most problems and forces in software development are more abstract and subtle, and solutions often seem counter-intuitive.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Another controversy in the software development industry is about quality. To a lot of people, quality costs money, and lower quality equals cheaper production equals money saved. This very simplistic thinking leads to spending less on qualified developers, less solid testing and/or improving based on test results, less on learning, coaching and/or improving, less on usability and creative, but risky solutions.&lt;/p&gt;&lt;p&gt;Again, the opposite is true. High quality means better efficiency because of the extra reuse opportunities, a more predictable schedule (less meetings and re-prioritizing efforts), less re-work on testing, fixing bugs, and testing again, and higher return on investment in production, because of better features, less failures and greater user satisfaction. Actually, the best way to waste money is try to achieve the lowest quality possible, something the &lt;a href="http://en.wikipedia.org/wiki/Lean_manufacturing" title="Lean manufacturing"&gt;manufacturing industry&lt;/a&gt; already knows for decades.&lt;/p&gt;&lt;p&gt;To emphasize the value of quality and a professional attitude when developing software, the &lt;a href="http://manifesto.softwarecraftsmanship.org/main" title="Manifesto homepage"&gt;Manifesto for Software Craftsmanship &lt;/a&gt;has been created by the &lt;a href="http://groups.google.com/group/software_craftsmanship?lnk=srg"&gt;software craftsmanship group&lt;/a&gt;. Based on the Agile Manifesto, this manifesto declares that in order to be agile, you have to be professional. Probably, like the agile manifesto, it will lead to some heated discussions, with dogmatic enthusiasm and stubborn rejections. I think it&amp;#39;s a just cause though: it&amp;#39;s not just what something costs by the hour, but also what it delivers in return. If you agree that craftsmanship matters when developing software, sign the manifesto to show support!&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15218" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Process/default.aspx">Process</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/software+development/default.aspx">software development</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/practices/default.aspx">practices</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/craftsmanship/default.aspx">craftsmanship</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/03/08/Manifesto-for-Software-Craftsmanship.aspx</feedburner:origLink></item><item><title>Java 7 and the Elvis operator</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/LpCYW-ebE68/Java-7-and-the-Elvis-operator.aspx</link><pubDate>Mon, 02 Mar 2009 18:53:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15165</guid><dc:creator>peterhe</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15165</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15165</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/03/02/Java-7-and-the-Elvis-operator.aspx#comments</comments><description>
&lt;p&gt;With Java 6 out for quite a while now, Java 7 is finally looming closer for a release due in early 2010. Most of the big changes are either scrapped (like support for closures or a standard module system), or actually pushed into a Java 6 update (the new &lt;a href="http://blogs.sun.com/SDNProgramNews/entry/java_se_6u14_early_access"&gt;G1 garbage collector&lt;/a&gt; is coming in update 14).&lt;/p&gt;
&lt;p&gt;Not all is lost on Java 7 though. Along with several API updates and JVM/tooling improvements, there are also some language changes expected. These are gathered in &amp;quot;&lt;a href="http://openjdk.java.net/projects/coin/"&gt;Project Coin&lt;/a&gt;&amp;quot;. The clever name implies that each proposal involves &amp;quot;small&amp;quot; change, and refers to the proverb &amp;quot;to coin a phrase&amp;quot;.&lt;/p&gt;

&lt;p&gt;One of the proposals is the new &lt;a href="http://docs.google.com/Doc?docid=ddb3zt39_78frdf87dc&amp;amp;hl=en"&gt;&amp;quot;Elvis&amp;quot; operator&lt;/a&gt;. It involves using the question mark as a shorthand to check for null scenarios. One of the expressions is this one: &lt;br /&gt;&lt;/p&gt;&lt;h1&gt;?:&lt;/h1&gt;If you look sideways, it&amp;#39;s Elvis! I really am not that fond about this kind of programming, but having something called the Elvis operator as a new feature is reason enough for me to migrate asap. ;) I hope other language additions will get a similarly cool name.&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15165" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/03/02/Java-7-and-the-Elvis-operator.aspx</feedburner:origLink></item><item><title>JUnit to the Max</title><link>http://feedproxy.google.com/~r/PeterHendriks/~3/I4ObBek_HpI/JUnit-to-the-Max.aspx</link><pubDate>Mon, 09 Feb 2009 20:08:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15069</guid><dc:creator>peterhe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.infosupport.com/blogs/peterhe/rsscomments.aspx?PostID=15069</wfw:commentRss><wfw:comment>http://blogs.infosupport.com/blogs/peterhe/commentapi.aspx?PostID=15069</wfw:comment><comments>http://blogs.infosupport.com/blogs/peterhe/archive/2009/02/09/JUnit-to-the-Max.aspx#comments</comments><description>I just stumbled upon a cool new project from JUnit grandfather Kent &amp;quot;XP&amp;quot; Beck. It&amp;#39;s called &lt;a href="http://www.junitmax.com/junitmax/subscribe.html" title="JUnit Max subscribe page"&gt;JUnit Max&lt;/a&gt; and basically introduces the &amp;quot;Run tests on save&amp;quot; feature in Eclipse. This means you don&amp;#39;t have to think about running tests, they always run. The tests are run in fail-first order, so if you&amp;#39;re in the change/retry cycle of fixing a test you get immediate feedback. See the link for a slidecast explaining the product. The licensing model for the beta is a bit strange: 2 dollars a month! I think it&amp;#39;s a great concept though: it promotes more running of tests and adds another argument to why unit tests should run isolated and as fast as possible.&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15069" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/Eclipse/default.aspx">Eclipse</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/kent+beck/default.aspx">kent beck</category><category domain="http://blogs.infosupport.com/blogs/peterhe/archive/tags/JUnit/default.aspx">JUnit</category><feedburner:origLink>http://blogs.infosupport.com/blogs/peterhe/archive/2009/02/09/JUnit-to-the-Max.aspx</feedburner:origLink></item></channel></rss>
