<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Eclipse</title>
	<link>http://planeteclipse.org/planet/</link>
	<language>en</language>
	<description>Planet Eclipse - http://planeteclipse.org/planet/</description>

<item>
	<title>Egon Willighagen: Call for Collaboration: JavaDoc validation with OpenJavaDocCheck</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5324486046611289266.post-3672014681537577151</guid>
	<link>http://chemicalrcp.blogspot.com/2009/11/call-for-collaboration-javadoc.html</link>
	<description>Dear all,&lt;br /&gt;&lt;br /&gt;while it is still very much in progress, I have made good progress with writing a new BSD-licensed replacement for &lt;a href=&quot;http://java.sun.com/j2se/javadoc/doccheck/&quot;&gt;Sun's DocCheck&lt;/a&gt; utility for testing the library's JavaDoc quality. The DocCheck's never really satisfied me, and the most recent version is ancient. Because it is &lt;i&gt;closed source&lt;/i&gt;, no one can continue on those efforts. DocCheck is &lt;a href=&quot;http://en.wikipedia.org/wiki/Missing_In_Action&quot;&gt;MIA&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://pmd.sf.net/&quot;&gt;PMD&lt;/a&gt; is given nice, simple overviews instead. It provides me with a quick overview of what is wrong with the &lt;a href=&quot;http://cdk.sf.net&quot;&gt;CDK&lt;/a&gt; JavaDoc, and also provides a decent XML format which allows extraction of information, which is used by, for example, &lt;a href=&quot;http://pele.farmbio.uu.se/supernightly/&quot;&gt;SuperNightly&lt;/a&gt; as showed yesterday in &lt;a href=&quot;http://chem-bla-ics.blogspot.com/2009/10/pmd-245-installed-in-cdk-12x-branch.html&quot;&gt;PMD 2.4.5 installed in the CDK 1.2.x branch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have been pondering about it for a long time now, but writing a JavaDoc checking library is hardly core cheminformatics research; at least, you would not get funding for it, despite everyone always complaining about good documentation. &lt;i&gt;Alas&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;A few weeks ago, I was reviewing some more code, and again saw the very common &lt;i&gt;error&lt;/i&gt; of the missing period at the end of the first sentence in JavaDoc. This one is sort of important for proper JavaDoc documentation generation, but the complexity of the current DocCheck reporting, people are not familiar enough with it. Being tired of having to repeat myself, I decided to address the problen, but creating better &lt;a href=&quot;http://pele.farmbio.uu.se/nightly/javadoc/data/&quot;&gt;Nightly error reporting for the CDK JavaDoc&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, I started &lt;a href=&quot;http://github.com/egonw/ojdcheck&quot;&gt;OpenJavaDocCheck&lt;/a&gt;, or &lt;i&gt;ojdcheck&lt;/i&gt;. As mentioned, I have made quite promising progress, and the current version provides the ability to write custom tests (which I plan to use for validating content of &lt;a href=&quot;http://cdk.sourceforge.net/guides/devel/ch01.html&quot;&gt;CDK taglet&lt;/a&gt; content), and create XML as well as XHTML which can be saved to any file. To give you a glimps of where things are going, here's a screenshot of the current XHTML output:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://3.bp.blogspot.com/_5vhaOf2_53I/SvVDdgJhZ_I/AAAAAAAAAs0/qcnG2jKspaI/s1600-h/ojdcheck.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_5vhaOf2_53I/SvVDdgJhZ_I/AAAAAAAAAs0/qcnG2jKspaI/s320/ojdcheck.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This list shows a mix of tests that are now implemented in OpenJavaDocCheck itself, but the third line is actually a test that is plugged in and specific for the CDK. This is an important feature, I think, and allows users of OpenJavaDocCheck to add functionality is that is not interesting to the general public, but very interesting for the JavaDoc being analyzed. Well, at least, it is to the CDK project :)&lt;br /&gt;&lt;br /&gt;The current list of tests is still quite small, and consists of these tests:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;test if each class and method has JavaDoc&lt;/li&gt;&lt;li&gt;test for missing @return tags&lt;/li&gt;&lt;li&gt;test for missing @param tags&lt;/li&gt;&lt;li&gt;test for @returns instead of @return&lt;/li&gt;&lt;li&gt;test @param template code, such as added by IDEs like Eclipse&lt;/li&gt;&lt;li&gt;test @exception template code, such as added by IDEs like Eclipse&lt;/li&gt;&lt;li&gt;test for redundant @version tags&lt;/li&gt;&lt;/ul&gt;I am now &lt;a href=&quot;http://github.com/egonw/ojdcheck/issues&quot;&gt;seeking feedback&lt;/a&gt; on the current code base, and potentially collaboration with writing more JavaDoc validation tests. There is enough to do, and I have been thinking on tests for:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;spell checking JavaDoc&lt;/li&gt;&lt;li&gt;checking for 404s of web pages linked with &amp;lt;a href&amp;gt; in the JavaDoc&lt;/li&gt;&lt;li&gt;well-formedness of the HTML in the webpages&lt;/li&gt;&lt;/ul&gt;And about:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a PMD-like system to allow people to choose which testing they want or not&lt;/li&gt;&lt;li&gt;an Eclipse plugin&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5324486046611289266-3672014681537577151?l=chemicalrcp.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 07 Nov 2009 10:08:16 +0000</pubDate>
	<author>noreply@blogger.com (Egon Willighagen)</author>
</item>
<item>
	<title>Jacek Pospychala: PDE Plug-in registry to query your Equinox install</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-7131917596625047485.post-3933590216115549052</guid>
	<link>http://jacekonthings.blogspot.com/2009/08/pde-plug-in-registry-to-query-your.html</link>
	<description>This year's Google Summer of Code is nearing the end so it's high time to see some results. Under PDE umbrella Wojciech Galanciak is working on making PDE Plug-in registry view able to show you contents of your Equinox/Eclipse/any OSGi application (&lt;a href=&quot;http://wiki.eclipse.org/OSGi_Remote_Management_Tool&quot;&gt;project details here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;It's like OSGi console, except that you can easily browse all extension point details, services details, bundles details, use filtering, easily scroll and so on.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_WymYeMz82WE/Sowe--HhI_I/AAAAAAAAC5M/qrGTwIRz9E0/s1600-h/holymolypde.PNG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_WymYeMz82WE/Sowe--HhI_I/AAAAAAAAC5M/qrGTwIRz9E0/s320/holymolypde.PNG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 217px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5371702522721412082&quot; /&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today he posted some demos:&lt;br /&gt;&lt;a href=&quot;http://www.szymonnowacki.pl/wojtek/connect.htm&quot;&gt;First demo&lt;/a&gt; shows how to connect with remote applicaiton (or local in other JVM).&lt;br /&gt;&lt;a href=&quot;http://www.szymonnowacki.pl/wojtek/selfhosting.htm&quot;&gt;The second one&lt;/a&gt; how to use self-hosting mode in plugin registry view.&lt;br /&gt;&lt;br /&gt;Check them out and share your thoughts either on &lt;a href=&quot;https://dev.eclipse.org/mailman/listinfo/pde-dev&quot;&gt;pde-dev&lt;/a&gt; or directly in &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=243439&quot;&gt;bugzilla&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7131917596625047485-3933590216115549052?l=jacekonthings.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 07 Nov 2009 07:28:25 +0000</pubDate>
	<author>noreply@blogger.com (Jacek Pospychala)</author>
</item>
<item>
	<title>Ian Bull: Tips for Successful PDE Product Builds</title>
	<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3332</guid>
	<link>http://eclipsesource.com/blogs/2009/11/07/pde-product-build-tips/</link>
	<description>&lt;p&gt;Recently I had the pleasure of updating the way &lt;a href=&quot;http://eclipsesource.com/en/yoxos/yoxos-ondemand/&quot;&gt;Yoxos&lt;/a&gt; is built.  Like a lot of Eclipse based applications, the Yoxos build was feature based and we naturally use the normal headless PDE/Build scripts to do this.  To make things a little easier to extend, I decide to use the new product based builds (new is relative, as product builds have been around since about Eclipse 3.2).&lt;/p&gt;
&lt;p&gt;There are a number of subtle points that I think are worth mentioning.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. PDE/Build does not checkout the .product file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As you may know, when you specify a product build, you use the following build.property setting:&lt;/p&gt;
&lt;pre&gt;product=/some_bundle_or_featre/your.product&lt;/pre&gt;
&lt;p&gt;However, PDE/Build does not fetch that bundle or feature from your SCM system (See Bug: &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=159128&quot;&gt;bug 159128&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;To get around this problem, you can use a post setup custom target like this:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;xml&quot;&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;ant&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;antfile&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;${genericTargets}&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;target&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;fetchElement&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;property&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;type&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;feature&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;property&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;id&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;org.feature.containing.product.file&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
 &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/ant&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;2. Platform specific products require platform filters&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When I converted to product builds, I decided to build platform specific products (with platform launchers, etc…).  If any of your features contain platform specific fragments, make sure you set the conditions under which the fragment can be installed.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://eclipsesource.com/blogs/wp-content/uploads/2009/11/fragments1.png&quot; title=&quot;fragments&quot; height=&quot;197&quot; width=&quot;974&quot; alt=&quot;fragments1 Tips for Successful PDE Product Builds&quot; class=&quot;aligncenter size-full wp-image-3334&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you don’t set these, and the bundle or fragment has set platform filters, then at build time the fragment won’t be included, however, the feature will still require it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Make sure your delta pack matches your platform&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you are building a product that targets a number of different architectures, then you are likely familiar with the delta pack.  It’s very important that you use the delta pack that matches your platform version (i.e. don’t use the Eclipse 3.5.1 delta pack with Eclipse 3.5.0). At build time, the executable features (found in the delta pack) has a requirement on the org.eclipse.equinox.launcher bundle.  This bundle comes with the platform and the versions &lt;strong&gt;must&lt;/strong&gt; match.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Make sure all your bundles are contained in a feature&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If your product is feature based, make sure all the bundles that constitute your product are listed in a feature.  This is one of those errors that manifest itself as &lt;em&gt;it worked when I ran it from Eclipse, why doesn’t it work on the build machine.&lt;strong&gt; &lt;/strong&gt;&lt;/em&gt;The reason for this is you likely had all your bundles in your workspace when you launched from Eclipse, so PDE was able to track down these dependencies for you.  When you build on the server, only things that are explicitly included are fetched for building.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Check your javacSource setting&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you are using newer java constructs like generics (again, new is relative as these constructs have been around for over 4 years), make sure your java settings reflect this. However, changing your compiler settings in your workbench will have little effect on a server 1/2 a world away.  To influence the compiler settings during build, you can set the following properties in your build.properties file:&lt;/p&gt;
&lt;pre&gt;# Default value for the version of the source code.
# This value is used when compiling plug-ins that do not set the
# Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
javacSource=1.5

# Default value for the version of the byte code targeted.
# This value is used when compiling plug-ins that do not set the
# Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
javacTarget=1.5&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Happy building!&lt;/em&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 07 Nov 2009 00:28:32 +0000</pubDate>
</item>
<item>
	<title>Doug Schaefer: Unreal Development Kit</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-16474715.post-3433160306990582704</guid>
	<link>http://cdtdoug.blogspot.com/2009/11/unreal-development-kit.html</link>
	<description>Wow. Unreal Development Kit. Free. Or at least free for free content. I've always wondered how developers create content for the big game engines, id and Unreal. And now I know and I have it installed on my laptop. For free. Can you tell I'm beside myself here. Check it out: &lt;a href=&quot;http://www.udk.com&quot;&gt;http://www.udk.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At any rate, Epic has released their development kit for free. It's a great gesture and a great way to get hobbyists and students and even small start-up shops using their engine. It seems to be complete, including their famous editor, amongst a plethora of other tools that help you create full games that you can distribute (for free, of course, otherwise you'll need to pay for a license as you should).&lt;br /&gt;&lt;br /&gt;Looking back at the archives, my second blog entry after saying &quot;Hi&quot;, was on &lt;a href=&quot;http://cdtdoug.blogspot.com/2005/12/eclipse-for-digital-content-creation.html&quot;&gt;digital content creation tools for Eclipse&lt;/a&gt;. I conjectured that having such tools would be very cool. And I think it still would be.&lt;br /&gt;&lt;br /&gt;And playing with the UDK, I don't see any technical reason why such tools couldn't be created using Eclipse technologies. With integrations with the various programming language and domain modeling frameworks and tools, and being able to run on Windows, Linux, and Mac, and target those and game consoles and mobile devices, what a great game development environment that would be.&lt;br /&gt;&lt;br /&gt;That was my dream for Eclipse back in 2005, and it's still a dream I have for it today. All it takes is a community of like minded dreamers to make it happen. Oh, and some money to pay for the dreamers. Thus the dream...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/16474715-3433160306990582704?l=cdtdoug.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 20:17:09 +0000</pubDate>
	<author>noreply@blogger.com (Doug Schaefer)</author>
</item>
<item>
	<title>Kim Moir: Happy Birthday Eclipse...now some pictures from your youth</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-25023280.post-7528532020304386955</guid>
	<link>http://relengofthenerds.blogspot.com/2009/11/happy-birthday-eclipsenow-some-pictures.html</link>
	<description>Saturday November 7th, 2009 is Eclipse's 8th birthday. Eight years ago the first Eclipse downloads were publicly available along with the source code.&lt;br /&gt;&lt;br /&gt;Here's a picture of the first www.eclipse.org.  The website was  slashdotted shortly after the &quot;Eclipse is open source&quot; announcement was made.   The hard drive  had to be replaced, thus the missing cover.  This machine was replaced by a real server a few weeks later.  A couple of years later, this was replaced by faster and more fault tolerant hardware managed by our most excellent &lt;a href=&quot;http://dev.eclipse.org/blogs/eclipsewebmaster&quot;&gt;webmasters&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_cHqYDQknqAI/SvN-vyXGsiI/AAAAAAAAAi0/8y0E1bNHCPk/s1600-h/www.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_cHqYDQknqAI/SvN-vyXGsiI/AAAAAAAAAi0/8y0E1bNHCPk/s320/www.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5400799737584988706&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I went through my desk the other day, and found some emails of the original requirements for the eclipse infrastructure, project structure and commit rights.    A fast server has 512MB RAM and 20GB of disk space...really? Okay, I feel old.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvCZSZ3oEnI/AAAAAAAAAh0/2CICiL6Jkbo/s1600-h/IMG_2687.JPG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvCZSZ3oEnI/AAAAAAAAAh0/2CICiL6Jkbo/s320/IMG_2687.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399984494678119026&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bugzilla was there from the start.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_cHqYDQknqAI/SvQ9qEESs2I/AAAAAAAAAj0/8gRJgaM_lq0/s1600-h/IMG_2690.JPG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_cHqYDQknqAI/SvQ9qEESs2I/AAAAAAAAAj0/8gRJgaM_lq0/s320/IMG_2690.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401009645979612002&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some of the first mailing lists.  A few disappeared but even more new ones were &lt;a href=&quot;http://www.eclipse.org/mail&quot;&gt;created&lt;/a&gt;.  Today, we have eclipse on &lt;a href=&quot;http://wiki.eclipse.org/Twitter&quot;&gt;twitter&lt;/a&gt;,&lt;a href=&quot;http://www.eclipse.org/forums&quot;&gt; forums&lt;/a&gt;, &lt;a href=&quot;http://www.eclipsecon.org/&quot;&gt;conferences&lt;/a&gt;, &lt;a href=&quot;http://marketplace.eclipse.org/&quot;&gt;marketplace&lt;/a&gt;, &lt;a href=&quot;http://planeteclipse.org/planet&quot;&gt;blogs&lt;/a&gt; and the list goes on. Pretty impressive!&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_cHqYDQknqAI/SvREa4cssPI/AAAAAAAAAkk/uUmohsLto5Q/s1600-h/mailing.JPG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_cHqYDQknqAI/SvREa4cssPI/AAAAAAAAAkk/uUmohsLto5Q/s320/mailing.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401017081744109810&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In 2001, the linux kernel still fit on a floppy disk. It was useful to have a boot disk in the event that the boot partition became corrupted and the machine wouldn't boot. Much easier than booting from a rescue cd and mounting all the partitions by hand. Especially at 4am. Here's a picture for those who've never worked with a diskette (*ahem* co-ops :).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_cHqYDQknqAI/SvRNrGBWPBI/AAAAAAAAAk8/rzK3ynEggW4/s1600-h/floppy.JPG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_cHqYDQknqAI/SvRNrGBWPBI/AAAAAAAAAk8/rzK3ynEggW4/s320/floppy.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401027255870045202&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Initial project structure.  Today we have so much much&lt;a href=&quot;http://www.eclipse.org/projects/listofprojects.php&quot;&gt; more&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_cHqYDQknqAI/SvRmKk-JjsI/AAAAAAAAAlc/5iSIG3Y1ETI/s1600-h/IMG_2700.JPG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_cHqYDQknqAI/SvRmKk-JjsI/AAAAAAAAAlc/5iSIG3Y1ETI/s320/IMG_2700.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401054185033141954&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The  first commit rights - hello PDE family!   Today we have an amazing diversity of &lt;a href=&quot;http://dash.eclipse.org/dash/commits/web-app/commit-count-loc.php&quot;&gt;committers&lt;/a&gt; from around the world and many companies.  Eclipse also has &lt;a href=&quot;http://www.eclipse.org/donate/&quot;&gt;friends&lt;/a&gt;, but would always like more....who doesn't?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_cHqYDQknqAI/SvRqxcl_9rI/AAAAAAAAAls/Cka6tdXUdhI/s1600-h/IMG_2706.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_cHqYDQknqAI/SvRqxcl_9rI/AAAAAAAAAls/Cka6tdXUdhI/s320/IMG_2706.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 250px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401059250845775538&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In reality, the past doesn't matter that much, and we need to focus on the future.  Sometimes I'm cynical about Eclipse, because as a long time committer, I notice that many people like to play (consume), but fewer want to pay (contribute).   And to some degree we make it difficult to contribute without a significant investment of time and a steep learning curve.  But most days, I'm absolutely amazed by the work that we as a community can do together, when smart, passionate people strive toward a common goal.   Happy Birthday Eclipse!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvRh-yl6ACI/AAAAAAAAAlE/1B14u3wXxOM/s1600-h/Fullscreen+capture+1162009+120336+PM.bmp.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvRh-yl6ACI/AAAAAAAAAlE/1B14u3wXxOM/s320/Fullscreen+capture+1162009+120336+PM.bmp.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 213px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401049584484614178&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/25023280-7528532020304386955?l=relengofthenerds.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 20:13:12 +0000</pubDate>
	<author>noreply@blogger.com (Kim Moir)</author>
</item>
<item>
	<title>Robert Konigsberg: Final Thoughts On: A Symbolic Puzzler</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-8055871.post-7834337169564611731</guid>
	<link>http://konigsberg.blogspot.com/2009/10/final-thoughts-on-symbolic-puzzler.html</link>
	<description>This is the final in a series of posts about a puzzler  [ &lt;a href=&quot;http://konigsberg.blogspot.com/2009/10/symbolic-puzzler.html&quot;&gt;post containing the question&lt;/a&gt; ] [ &lt;a href=&quot;http://konigsberg.blogspot.com/2009/10/answer-to-symbolic-puzzler.html&quot;&gt;post containing the answer&lt;/a&gt; ]. In those two posts I highlighted some bizarre Java weirdness as it pertained to the &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#getCanonicalPath%28%29&quot;&gt;java.io.File.getCanonicalPath&lt;/a&gt; method, that canonicalized paths are cached, which means if a symbolic link changes somewhere the cached value becomes invalid.&lt;br /&gt;&lt;h3&gt;Blatherberg&lt;/h3&gt;This problem really only ever crops up when your code relies on calls to &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;getCanonicalPath&lt;/span&gt;&lt;/span&gt; and the links change while the application is running.  If you expect your application to run against a filesystem with shifting symbolic links, you have to do one of these three things: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Disable the cache by setting  the system property &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;sun.io.useCanonCaches&lt;/span&gt;&lt;/span&gt; to &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;false&lt;/span&gt;&lt;/span&gt;. (I would also like to briefly nod to the pedantic point that the string &lt;i&gt;useCanonCaches&lt;/i&gt; is &lt;i&gt;icky&lt;/i&gt;.)&lt;br /&gt;&lt;br /&gt;The seems like an easy out (particularly if your application is moderately complex, and deployed, and assuming your application doesn't rely on the default behavior,) but there's a reason Java comes with a canonicalization cache: performance. Reading symbolic links from disk can take time, especially if you do it a lot.&lt;br /&gt;&lt;br /&gt;Also, you might be running your application in a Java EE container along with other applications, in which case, you can't isolate the cache behavior to a single application.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Stop using &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;getCanonicalPath&lt;/span&gt;&lt;/span&gt; (and its sugary sibling, &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;getCanonicalFile&lt;/span&gt;&lt;/span&gt;) in your application, and rely solely on the non-canonicalized path.&lt;br /&gt;&lt;br /&gt;Changing your infrastructure to rely on the symlink paths themselves and not their canonicalized values sounds good, but you might not have control over that code: your application may rely on an application infrastructure that already relies on &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;getCanonicalPath&lt;/span&gt;&lt;/span&gt;, and then you're kind of screwed. It's easy to say that the cache should be disabled in the name of correctness, but if you're repeatedly resolving symbolic links files by the thousand, the time cost may be significant.&lt;br /&gt;&lt;br /&gt;This leads to the other way to look at this problem, which is the lack of accessibility and flexible control over the cache. You might want to cache calls in some circumstances yet not others. The use cases for cache control can be complex, and by hiding the complexity you get, well, surprises like this.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Disallow an application's filesystem to redefine symbolic links.&lt;br /&gt;&lt;br /&gt;If you've got that power, go for it.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Help From JSR 203&lt;br /&gt;&lt;/h3&gt;There's actually some hope for the future, and that's &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=203&quot;&gt;JSR203: More New I/O APIs for the JavaTM Platform (&quot;NIO.2&quot;)&lt;/a&gt; which is scheduled to be part of &lt;a href=&quot;http://java.sun.com/features/jdk/7/&quot;&gt;Java 7&lt;/a&gt;. Look back to the puzzler, which points out the use of &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;Filesystem&lt;/span&gt;&lt;/span&gt; and &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;UnixFilesystem&lt;/span&gt;&lt;/span&gt; classes. In JSR203, those ideas are explicit. The equivalent of &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;java.io.File&lt;/span&gt;&lt;/span&gt; is &lt;a href=&quot;http://openjdk.java.net/projects/nio/javadoc/java/nio/file/Path.html&quot;&gt;java.nio.file.Path&lt;/a&gt; which exposes a method &lt;a href=&quot;http://openjdk.java.net/projects/nio/javadoc/java/nio/file/Path.html#getFileSystem%28%29&quot;&gt;getFileSystem&lt;/a&gt;. That's right, the file system is no longer hidden from the user, and you can read all about &lt;a href=&quot;http://openjdk.java.net/projects/nio/javadoc/java/nio/file/FileSystem.html&quot;&gt;java.nio.file.FileSystem&lt;/a&gt; here. You can have a file system that represents a thin layer on top of your disk, or one that caches all sorts of metadata from your disk, or, heck, create an in-memory implementation for high-speed storage! But the real benefit is that these filesystem implementations can be injected into your classes: no more need for a single static filesystem. Whereas &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;java.io.File&lt;/span&gt;&lt;/span&gt; objects are created through a constructor, &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;java.nio.file.Path&lt;/span&gt;&lt;/span&gt; objects are constructed through the &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;FileSystem&lt;/span&gt;&lt;/span&gt;'s &lt;a href=&quot;http://openjdk.java.net/projects/nio/javadoc/java/nio/file/FileSystem.html#getPath%28java.lang.String%29&quot;&gt;getPath&lt;/a&gt; method.&lt;br /&gt;&lt;br /&gt;This isn't disk i/o nirvana, unfortunately, because like the continuing transition from &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;java.util.Date&lt;/span&gt;&lt;/span&gt; to &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;java.util.Calendar&lt;/span&gt;&lt;/span&gt; to something more reasonable like &lt;a href=&quot;http://joda-time.sourceforge.net/api-release/org/joda/time/DateTime.html&quot;&gt;org.joda.time.DateTime&lt;/a&gt;, there's still plenty of legacy code using the old and busted APIs. But it's a good start.&lt;br /&gt;&lt;br /&gt;If you want some more information about JSR 203, here's a &lt;a href=&quot;http://java.dzone.com/articles/some-jsr-203-examples&quot;&gt;write-up by Alex Miller&lt;/a&gt; and a link to a &lt;a href=&quot;http://www.youtube.com/watch?v=yNRS1ssLPdQ&quot;&gt;JavaOne talk from 2008&lt;/a&gt;. The video is a bit out of date (for instance it highlights the notion of &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;Path.get&lt;/span&gt;&lt;/span&gt;, which seems to be gone, thank goodness.) But it's got lots of great information about the JSR.&lt;br /&gt;&lt;h3&gt;The Last Word&lt;br /&gt;&lt;/h3&gt;In the end, I want to highlight something underlying this entire journey: the choice to cache the values by default in the first place is just wrong. It reminds me of the saying (that seems to be attributed to Bill Harlan): &quot;It's easier to optimize correct code than it is to correct optimized code.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/8055871-7834337169564611731?l=konigsberg.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 19:59:23 +0000</pubDate>
	<author>noreply@blogger.com (Robert Konigsberg)</author>
</item>
<item>
	<title>Robert Konigsberg: Answer to: A Symbolic Puzzler</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-8055871.post-8190157737502733706</guid>
	<link>http://konigsberg.blogspot.com/2009/10/answer-to-symbolic-puzzler.html</link>
	<description>This blog post contains the results and answer to the previous post, &lt;a href=&quot;http://konigsberg.blogspot.com/2009/10/symbolic-puzzler.html&quot;&gt;A Symbolic Puzzler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The answer will be covered here, and I'll follow this up with a fourth post that covers my thoughts on this issue.&lt;br /&gt;&lt;h3&gt;What were your guesses?&lt;/h3&gt;&lt;img src=&quot;http://spreadsheets.google.com/oimg?key=0An7t5-rPAK9ZdFpLemE3TERMREM3MXhYUTdmSW4yaGc&amp;amp;oid=3&amp;amp;v=1256138313280&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Clearly, the most popular answer was that the test would fail.&lt;br /&gt;&lt;h3&gt;What would have been my guess?&lt;/h3&gt;Look, nobody codes in puzzler fashion, so without details I'll explain what I expected to occur from my own production code, but in terms of this test. I wouldn't be confident that &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;TESTDIR_SYMLINK.getCanonicalPath()&lt;/span&gt;&lt;/span&gt; returned the non-canonicalized location, but excepting that, I certainly would assume that once the symbolic link was created at the end, the second call to &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;TESTDIR_SYMLINK.getCanonicalPath()&lt;/span&gt;&lt;/span&gt;would return the symlinked directory. So my guess would have been &lt;i&gt;a. It passes.&lt;/i&gt;&lt;br /&gt;&lt;h3&gt;The Answer&lt;br /&gt;&lt;/h3&gt;The correct answer is: &lt;i&gt;d. It depends&lt;/i&gt;. More specifically, it depends on the VM's arguments.&lt;br /&gt;&lt;h3&gt;The Explanation&lt;br /&gt;&lt;/h3&gt;If you ran this test straight up without any special VM arguments, the test would fail (which might lead you to think the answer is&lt;i&gt; b. It fails&lt;/i&gt;.)&lt;br /&gt;&lt;blockquote&gt;junit.framework.ComparisonFailure: &lt;b&gt;expected:&amp;lt;/testdir/[file]&amp;gt; but was:&amp;lt;/testdir/[symlink]&amp;gt;&lt;/b&gt;&lt;br /&gt;    at junit.framework.Assert.assertEquals(Assert.java:81)&lt;br /&gt;    at junit.framework.Assert.assertEquals(Assert.java:87)&lt;br /&gt;    at ATest.testSymlink(ATest.java:26)&lt;br /&gt;    ...&lt;br /&gt;&lt;/blockquote&gt;Why wouldn't the canonicalization return the updated value? It's because the return value from &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/io/File.html#getCanonicalPath%28%29&quot;&gt;getCanonicalPath&lt;/a&gt; was cached from the previous call. Yes, calls to &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;getCanonicalPath&lt;/span&gt;&lt;/span&gt; are cached.&lt;br /&gt;&lt;br /&gt;Let's look at the code underneath &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;getCanonicalPath&lt;/span&gt;&lt;/span&gt;. The magic lies in some package-private classes in the &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;java.io&lt;/span&gt;&lt;/span&gt; package, specfically &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;Filesystem&lt;/span&gt;&lt;/span&gt; and &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;UnixFilesystem&lt;/span&gt;&lt;/span&gt;. The key operation occurs in &lt;span&gt;UnixFilesystem.canonicalize&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;class UnixFileSystem extends FileSystem {&lt;br /&gt;  public String canonicalize(String path) throws IOException {&lt;br /&gt;     if (!useCanonCaches) {&lt;br /&gt;       return canonicalize0(path);&lt;br /&gt;     } else {&lt;br /&gt;       String res = cache.get(path);&lt;br /&gt;       ... &lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;  private native String canonicalize0(String path) throws IOException;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In other words, the path canonicalization computations are cached when &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;useCanonCaches&lt;/span&gt;&lt;/span&gt; is true. So just when is &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;useCanonCaches&lt;/span&gt;&lt;/span&gt; true? For that let's look at the static initialization block for &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;Filesystem&lt;/span&gt;&lt;/span&gt;, the subclass of &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;UnixFilesystem&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;// Flags for enabling/disabling performance optimizations for file&lt;br /&gt;// name canonicalization&lt;br /&gt;static boolean useCanonCaches      = true;&lt;br /&gt;static boolean useCanonPrefixCache = true;&lt;br /&gt;... &lt;br /&gt;&lt;br /&gt;static {&lt;br /&gt;    useCanonCaches      = getBooleanProperty(&quot;sun.io.useCanonCaches&quot;,&lt;br /&gt;                                             useCanonCaches);&lt;br /&gt;    useCanonPrefixCache = getBooleanProperty(&quot;sun.io.useCanonPrefixCache&quot;,&lt;br /&gt;                                             useCanonPrefixCache);&lt;br /&gt;} &lt;/pre&gt;&lt;br /&gt;So by default, the cache canonicalization is on, but when you specify the VM arg &lt;span&gt;-Dsun.io.useCanonCaches=false&lt;/span&gt;, the cache is never used.&lt;br /&gt;&lt;br /&gt;Getting back to the puzzler, the first call to &lt;span&gt;TESTDIR_SYMLINK.getCanonicalPath()&lt;/span&gt; always returns the path to the symlink, while the second call returns either the cached value (the path to the symlink) or the up-to-date resolved symlink, but only when &lt;span&gt;-Dsun.io.useCanonCaches=false&lt;/span&gt; is specified.&lt;br /&gt;&lt;br /&gt;If you don't beleive me now, go try running the test twice, once without specifying VM arguments, and once while disabling the canonicalization cache, and you'll see that it fails once, and passes another time. Hence, &lt;i&gt;d. It depends. &lt;/i&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;h3&gt;Replies to some of the comments&lt;/h3&gt;Here are some of the comments that accompanied the survey:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Guess:&lt;/b&gt; It fails.&lt;br /&gt;&lt;b&gt;Comment:&lt;/b&gt;The target of the symlink doesn't exist so I suspect exists() will return false&lt;br /&gt;&lt;/blockquote&gt;In fact, exists() will return true since the symlink exists. And in fact, the next call to getCanonicalPath returns itself, just as the comment suggested.&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Guess:&lt;/b&gt; It depends.&lt;br /&gt;&lt;b&gt;Comment:&lt;/b&gt; Depending on where the root filesystem is mounted, the canonical path might be something else. For example, /etc on Mac is a symlink to /private/etc. In addition, the mountpoint for / might be a networked drive (e.g. netboot) which might have different semantics.&lt;br /&gt;&lt;br /&gt;The bottom line is that you can't necessarily assume that the file you use to access a file is the canonical path for that file, without knowing the filesystem.&lt;br /&gt;&lt;/blockquote&gt;This is an interesting comment. I had hoped this was cleared up by this statement in the original post: &quot;The path &lt;span&gt;/testdir&lt;/span&gt; is not a symbolic link to another directory, and the user running the test also owns &lt;span&gt;/testdir&lt;/span&gt;.&quot; If my explanation was  insufficient, then so be it.&lt;br /&gt;&lt;br /&gt;There were other comments to that effect: &quot;Does &lt;span&gt;/bin/rm&lt;/span&gt; do what &lt;span&gt;/bin/rm&lt;/span&gt; should do?&quot; &quot;Does the user have write permissions?&quot; These are good points, and would be better suited for a UNIX puzzler. I hope people who worried about those cases looked past them to focus on Java's behavior.&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Guess: &lt;/b&gt;It throws an exception&lt;br /&gt;&lt;b&gt;Comment: &lt;/b&gt;I want be the first one to check &quot;it throws an exception&quot;!&lt;br /&gt;&lt;/blockquote&gt;Sorry, not the first.&lt;br /&gt;&lt;h3&gt;Meta: Thoughts on writing a puzzler&lt;/h3&gt;There are at least two places where the puzzler's code could have been simplified without sacrificing its quality:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Replace explicit calls that delete the files &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;/testdir/file&lt;/span&gt;&lt;/span&gt; and &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;/testdir/symlink&lt;/span&gt;&lt;/span&gt;, with a communicated precondition that &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span&gt;/testdir&lt;/span&gt;&lt;/span&gt; had no files.&lt;/li&gt;&lt;li&gt;This test has an interim call that computes the canonical path of a symlink that points to nothing, leading people to spend too much time worrying about that case. A better snippet would: &lt;/li&gt;&lt;ol&gt;&lt;li&gt;point the symlink  to a file that exists.&lt;/li&gt;&lt;li&gt;compute the  symlink's canonical location thereby (optionally) populating the internal cache.&lt;/li&gt;&lt;li&gt;point the symlink to a second file that also exists.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/8055871-8190157737502733706?l=konigsberg.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 19:59:19 +0000</pubDate>
	<author>noreply@blogger.com (Robert Konigsberg)</author>
</item>
<item>
	<title>Robert Konigsberg: Interim: A Symbolic Puzzler</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-8055871.post-970893791466256056</guid>
	<link>http://konigsberg.blogspot.com/2009/10/interim-symbolic-puzzler.html</link>
	<description>Last night I published a &lt;a href=&quot;http://konigsberg.blogspot.com/2009/10/symbolic-puzzler.html&quot;&gt;Java puzzler&lt;/a&gt; for your enjoyment. I will publish the answer tomorrow, but for now I thought you would enjoy an interim count of the guesses:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://spreadsheets.google.com/oimg?key=0An7t5-rPAK9ZdFpLemE3TERMREM3MXhYUTdmSW4yaGc&amp;amp;oid=1&amp;amp;v=1256071424929&quot; /&gt;&lt;br /&gt;&lt;br /&gt;There's still plenty of time to participate in the  &lt;a href=&quot;http://konigsberg.blogspot.com/2009/10/symbolic-puzzler.html&quot;&gt;puzzler&lt;/a&gt;. Don't forget to use the text box if you want to back up your reasoning.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/8055871-970893791466256056?l=konigsberg.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 19:59:14 +0000</pubDate>
	<author>noreply@blogger.com (Robert Konigsberg)</author>
</item>
<item>
	<title>Oisín Hurley: A short post on EclipseCon 2010</title>
	<guid isPermaLink="false">http://oisinh.wordpress.com/?p=135</guid>
	<link>http://feedproxy.google.com/~r/oisin/~3/8W0X93hYeC4/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href=&quot;http://www.eclipsecon.org/2010/submissions/&quot;&gt;submission floodgates have been opened&lt;/a&gt; on &lt;strong&gt;EclipseCon 2010&lt;/strong&gt;, and you have until &lt;strong&gt;December 18&lt;/strong&gt; to get your submissions in to attend the usual West Coast extravaganza of all things Eclipse and OSGi. Go for it.&lt;/p&gt;
&lt;p&gt;I’ve been seriously quiet about the conference, even though I’m Program Chair and should be running around shouting about it. If you are &lt;a href=&quot;http://twitter.com/oisin&quot;&gt;following me on twitter&lt;/a&gt;, or searching on the &lt;a href=&quot;http://twitter.com/#search?q=eclipsecon&quot;&gt;#eclipsecon hashtag&lt;/a&gt; you will have seen a few leaking tweets over the past little while. But here, now, ladies and gentlemen, boys and girls, is a &lt;strong&gt;little more information&lt;/strong&gt;. This marks the point from where you may begin the countdown to the insufferability of /me on this topic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Committee of The Caring&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Program Chair does get to innovate a little bit on the approach and set-up of the spirit of the conference and some of the structures that will support same. This person also gets to pick the Program Committee, a shower of dedicated and committed professionals with a overweening fondness for Eclipse and that most qualifying of characteristics — &lt;strong&gt;they care&lt;/strong&gt;. I don’t mean that in a fluffy-cardigan-cuddles-and-tissues kind of way. I mean it in the way that if you try to mess with their relationship with Eclipse, they care enough to see you outside in the car park, toot sweet. You know what I’m talking about.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What’s Different This Year?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Back to the innovation piece. When &lt;a href=&quot;http://eclipse-projects.blogspot.com/2009_07_01_archive.html&quot;&gt;Bjorn announced the conference &lt;/a&gt;way back in July 09, the first little peep of innovation squeaked out. This was the &lt;strong&gt;themes&lt;/strong&gt;. I think it’s important that we create themes that directly address the Eclipse Ecosystem’s three constituencies – consumers, contributors and community.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Making with Eclipse&lt;/em&gt; — you are consuming Eclipse open source software to build your own products, internal or external to your organization. You could even be selling them and making pots of cash, which is good. You want to come to this conference and see what people in the same boat as you are doing, what new innovations have come to light that you can use to speed up your processes and potentially reduce your costs and to show everyone how cool the stuff you’ve made happens to be.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Making for Eclipse&lt;/em&gt; — you are a contributor or a committer, you write code, or docs, or both. Maybe your language skills mean you do translations. In some way you are injecting some of your expertise and time in to enhancing and extending the corpus of Eclipse creativity. You’re here to show people the awesome stuff that you are producing and adding to the Eclipse Ecosystem, as well as to teach people APIs, announce new projects and talk about project directions.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Making Community&lt;/em&gt; — one of the most important things at a conference is the fact that you have many human meteors zinging around the halls bumping into each other and exchanging information. You’re here to meet your forums and IRC buddies face-to-face, or to have a full-duplex discussion with a group telling them why they should take a certain path, or to finally grab a project lead and suss out &lt;em&gt;exactly&lt;/em&gt; how such-and-such a weird API works.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But what about the technology, I hear some shriek, &lt;em&gt;won’t someone please think of the technology?&lt;/em&gt; High level themes like the above are not enough to navigate a conference the size of EclipseCon. When you go to the submission system, you have a whole passel of tags that will help you mark your talk. If you are looking for something in particular, you can search the talks using the tags too. You think maybe we need more tags? Let me know on a comment here, or address yourself to &lt;strong&gt;@oisin&lt;/strong&gt; in tweetenland.&lt;/p&gt;
&lt;p&gt;Yes, we’ve got ski ratings too. If your talk is totally hard-core, you should give it a double-diamond marking to set expectations. People with dashed expectations sometimes get a little heavy-handed with the &lt;strong&gt;-1 &lt;/strong&gt;cards. Don’t worry about marking your talk as being at the easiest level, the Program Committee wants talks at all levels for all comers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Types of Talks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here’s where things get a bit more interesting. &lt;a href=&quot;http://oisinh.wordpress.com/2009/03/25/some-opinions-about-eclipsecon-talks-that-will-no-doubt-be-unpopular/&quot;&gt;I made a post at EclipseCon 2009&lt;/a&gt; where I blew the lid off the story that I had been at some boring talks. Yikes! I got a bit of ribbing for that, as you can imagine, so look out for the case of rotten fruit wherever I do Eclipse talks. When I got this Program Chair gig, I had a few chats with a few people, looked at a number of presentations and proposed to the Program Committee that this time around we are going to &lt;em&gt;savagely&lt;/em&gt; cut the number of hour-long talks. This will cut waffle. It will cut meandering code walk-throughs. It will cut monster slide-decks. Your talk will be &lt;strong&gt;clear&lt;/strong&gt;, &lt;strong&gt;sharp&lt;/strong&gt;, &lt;strong&gt;to the point&lt;/strong&gt;. You will say all you want to say and you will do it in &lt;strong&gt;twenty-five minutes&lt;/strong&gt;.  There will be applause at the conciseness of your perspicacity, and you will be mobbed by well-wishers in the halls. Seriously.&lt;/p&gt;
&lt;p&gt;Here’s the nitty-gritty details of the talk sizes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Lightning Talk&lt;/em&gt; — it’s a Blitz. You have &lt;strong&gt;twelve point five minutes&lt;/strong&gt; to do your thing. Get up there and show that crazy mash-up you’ve constructed, tell me what’s new in your project, shoe me the result and give me a page-o-links so I can find out more. I’ll find you and bug you if I have questions.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Standard Talk&lt;/em&gt; — this is the &lt;strong&gt;twenty-five minuter&lt;/strong&gt;. You know the score already.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Extended Talk&lt;/em&gt; — I never said there were going to be &lt;em&gt;no&lt;/em&gt; long talks, just that we would be culling their population. An Extended Talk is &lt;strong&gt;fifty minutes&lt;/strong&gt; long. You don’t just get one easy as pie. The Program Committee will be scrutinizing the submissions and you will need to get over a high bar to get an Extended Talk accepted. These guys are professionals and can smell over-stretched talk like a shark smells blood in the water. Top tips — don’t leave your abstract until the last hour before the call for submission ends and then bang it out fast; do link to a paper or document giving more information about your talk; do expand on details in the comments section of the submission; do produce slideware early; do have multiple presenters construct a connected whole from two pieces of cloth; do show some demonstration applications.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Tutorials&lt;/em&gt; — you know these guys. A tutorial can be &lt;strong&gt;two or three hours&lt;/strong&gt; long.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Panels&lt;/em&gt; — you might know these guys from previous EclipseCons or other conferences. Panels are chancy – they can be dull, but there’s nothing better than a good, disputative panel to get people engaged. The Program Committee will be working hard to make sure the Panels won’t have a dull moment in their &lt;strong&gt;one hour&lt;/strong&gt; length.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Unconference&lt;/em&gt; — you’ve heard of these, right? Ever been to a &lt;a href=&quot;http://en.wikipedia.org/wiki/BarCamp&quot;&gt;BarCamp&lt;/a&gt;? If you haven’t, don’t worry. What we are talking about here is a participant-driven conference space in the evenings – it’s like the base class of a BoF. The idea is that you can get some space to do a short talk or meeting, you put the subject up on a notice board and people turn up, or not. We’re still putting the details together on the logistics for this one, so hang in there for a future blog entry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Conference Structure&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I think this is the most interesting part. An EclipseCon day is a long, long day, especially if you have travelled a distance and it can be tough to keep the concentration levels up, despite liberal caffeination. The best way to stave off that all-conferenced-out feeling is to ensure that there is a mix of things going on during the day. So I’ve applied a bit of innovation to the structure of the conference itself.  We kick off in the morning with either a tutorial, or a keynote followed by a tutorial. Get your learning on. After lunch, it’s talk sessions. Sit back and listen, or ask questions. End of the day, it’s Panels. Ask questions, get engaged in a conversation. Evening time, it’s the Unconference. Did something inspire you during the day? Grab a podium and talk about it! Maybe someone agrees with you, or maybe the opposite. You can go and blog the day later on.&lt;/p&gt;
&lt;p&gt;That’s the short description of what’s going to go down this year. I’ll follow up with more detailed articles on submissions, panels, tutorials, unconference and all that. Your comments are welcome. Ask questions, write your own blog entries. While you are doing that, I’ll be over here, watching the &lt;a href=&quot;https://www.eclipsecon.org/submissions/2010/edit_talk.php&quot;&gt;submission system&lt;/a&gt;.&lt;/p&gt;
Posted in conferences, eclipse, open source, osgi  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/oisinh.wordpress.com/135/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/oisinh.wordpress.com/135/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/oisinh.wordpress.com/135/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/oisinh.wordpress.com/135/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/oisinh.wordpress.com/135/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/oisinh.wordpress.com/135/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/oisinh.wordpress.com/135/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/oisinh.wordpress.com/135/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/oisinh.wordpress.com/135/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/oisinh.wordpress.com/135/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=oisinh.wordpress.com&amp;amp;blog=4822470&amp;amp;post=135&amp;amp;subd=oisinh&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/oisin?a=8W0X93hYeC4:7XLVEs0tr80:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/oisin?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/oisin?a=8W0X93hYeC4:7XLVEs0tr80:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/oisin?i=8W0X93hYeC4:7XLVEs0tr80:V_sGLiPBpWU&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/oisin?a=8W0X93hYeC4:7XLVEs0tr80:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/oisin?i=8W0X93hYeC4:7XLVEs0tr80:F7zBnMyn0Lo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/oisin?a=8W0X93hYeC4:7XLVEs0tr80:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/oisin?d=dnMXMwOfBR0&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/oisin/~4/8W0X93hYeC4&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 06 Nov 2009 18:44:44 +0000</pubDate>
</item>
<item>
	<title>EclipseLive: Upcoming Event: Write Once, Test Everywhere? Cross Platform Development and Testing with Eclipse</title>
	<guid isPermaLink="false">http://live.eclipse.org/834 at http://live.eclipse.org</guid>
	<link>http://live.eclipse.org/node/834</link>
	<description>Event Date: December 3, 2009 4:00 pm GMT-8&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;mailto:webinar-rcp@eclipse.org?subject=Register me for the cross platform testing for RCP apps webinar&quot;&gt;Register Now&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   

&lt;div class=&quot;field field-type-text field-field-author&quot; id=&quot;author&quot;&gt;
  &lt;span class=&quot;field-item&quot;&gt;Markus Tiede (Bredex)&lt;/span&gt;
&lt;/div&gt;

&lt;div class=&quot;resource-icon&quot;&gt;&lt;img src=&quot;http://live.eclipse.org/files/ECLP_webinar.gif&quot; border=&quot;0&quot; /&gt; &lt;/div&gt;  

&lt;div id=&quot;abstract&quot;&gt;
	&lt;span class=&quot;field-label&quot;&gt;Abstract:&lt;/span&gt;  
	&lt;div class=&quot;field field-type-text field-field-author&quot;&gt;
	  &lt;span class=&quot;field-item&quot;&gt;&lt;p&gt;How platform independent are Eclipse applications in practice? This talk looks at some of the differences between operating systems supported by Eclipse with respect to RCP applications and examines their effects on usability, development and testing.&lt;/p&gt;

&lt;p&gt;This webinar is aimed at developers, project managers and testers (automated and manual) working on RCP applications that are intended to run on more than one platform. Participants will learn about large and small differences between the platforms. Some of these differences must simply be considered in the development and testing process, others mean that testing, documentation and development are affected.&lt;/p&gt;

&lt;p&gt;Some of the points raised include:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;How widgets can behave differently on the platforms&lt;/li&gt;
&lt;li&gt;Variation in the library support for each platform&lt;/li&gt;
&lt;li&gt;Other GUI considerations such as tooltips, toolbars, buttons and focus&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Automated testers will also benefit from the information and examples in the talk. Ideally, only one automated test should be necessary to test all versions of an application. Some of the differences between the platforms make this aim difficult, and some differences mean finding a lowest common denominator to be able to write tests. The variation between the platforms is therefore something which must be considered at the test planning stage, and in the test design itself.&lt;/p&gt;

&lt;p&gt;Participants will learn to consider and deal with any variations between platforms to make cross-platform projects a success.&lt;/p&gt; 

&lt;p&gt;Total running time will be approximately 1 hour&lt;/p&gt;

&lt;p&gt;8:00 am PST / 11:00 am EST / 16:00 pm GMT - &lt;a href=&quot;http://www.timeanddate.com/worldclock/fixedtime.html?month=12&amp;amp;day=3&amp;amp;year=2009&amp;amp;hour=16&amp;amp;min=0&amp;amp;sec=0&amp;amp;p1=0&quot; target=&quot;&quot;&gt;Convert to other time zones&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks to Adobe for contributing their Adobe Acrobat Connect product to host this webinar.&lt;br /&gt;
&lt;img src=&quot;http://live.eclipse.org/files/images/adobeconnect.jpg&quot; height=&quot;10&quot; /&gt;&lt;/p&gt;
&lt;/span&gt;&lt;br /&gt;
	  &lt;span class=&quot;field-item&quot;&gt;&lt;a href=&quot;http://del.icio.us/post?url=http%3A%2F%2Flive.eclipse.org%2Fnode%2F18&amp;amp;title=Webinar&quot; rel=&quot;nofollow&quot; title=&quot;Bookmark this post on del.icio.us.&quot;&gt;&lt;img src=&quot;http://live.eclipse.org/modules/service_links/delicious.png&quot; alt=&quot;delicious&quot; /&gt; delicious&lt;/a&gt; | &lt;a href=&quot;http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Flive.eclipse.org%2Fnode%2F18&amp;amp;title=Webinar&quot; rel=&quot;nofollow&quot; title=&quot;Digg this post on digg.com.&quot;&gt;&lt;img src=&quot;http://live.eclipse.org/modules/service_links/digg.png&quot; alt=&quot;digg&quot; /&gt; digg&lt;/a&gt; | &lt;a href=&quot;http://www.dzone.com/links/add.html?url=http%3A%2F%2Flive.eclipse.org%2Fnode%2F18&amp;amp;title=Webinar&quot; rel=&quot;nofollow&quot; title=&quot;Tag this post on DZone.&quot;&gt;&lt;img src=&quot;http://live.eclipse.org/modules/service_links/dzone.png&quot; alt=&quot;dzone&quot; /&gt; dzone&lt;/a&gt;&lt;/span&gt;
	&lt;/div&gt;
	
&lt;/div&gt;

&lt;div id=&quot;embedded&quot;&gt;
	  &lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 18:41:52 +0000</pubDate>
	<author>lynn.gayowski@eclipse.org (EclipseLive)</author>
</item>
<item>
	<title>Mariot Chauvin: GEF support in SWTbot and GMF</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3193880670773749221.post-2307040351731996089</guid>
	<link>http://mariot-thoughts.blogspot.com/2009/11/gmf-and-gef-support-in-swtbot.html</link>
	<description>Back from &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/&quot;&gt;ESE&lt;/a&gt; where I gave my &lt;a href=&quot;http://www.slideshare.net/mchv/gef-support-in-swtbot-ese-09&quot;&gt;presentation&lt;/a&gt; about &lt;a href=&quot;http://www.eclipse.org/gef/&quot;&gt;GEF&lt;/a&gt; support in &lt;a href=&quot;http://www.eclipse.org/swtbot/&quot;&gt;SWTBot&lt;/a&gt; last week, I am happy to announce that GEF feature is available in SWTBot update site. Thanks &lt;a href=&quot;http://ketan.padegaonkar.name/&quot;&gt;Ketan&lt;/a&gt; for that.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_QqsJK1u1WXI/SvRVd1IxJ_I/AAAAAAAAAJc/Dk4ec6cmqNQ/s1600-h/GEF-Feature.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_QqsJK1u1WXI/SvRVd1IxJ_I/AAAAAAAAAJc/Dk4ec6cmqNQ/s400/GEF-Feature.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401035824092489714&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quite obviously there are several bugs opened and there is room for improvement but current API is not frozen, so it's time to test and &lt;a href=&quot;https://bugs.eclipse.org/bugs/enter_bug.cgi?product=SWTBot&amp;amp;component=GEFBot&amp;amp;bug_severity=enhancement&quot;&gt;ask for enhancements&lt;/a&gt; !&lt;br /&gt;&lt;br /&gt;On &lt;a href=&quot;http://www.eclipse.org/gmf/&quot;&gt;GMF&lt;/a&gt; side I updated yesterday &lt;a href=&quot;http://wiki.eclipse.org/GMF&quot;&gt;its main wiki page&lt;/a&gt; to use tabs. There is a lot of valuable information available on the wiki for GMF, but it was scattered. I hope you find the new page clearer and useful.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://wiki.eclipse.org/GMF&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_QqsJK1u1WXI/SvRV4XF2tXI/AAAAAAAAAJk/ZkA9gULJxfQ/s400/GMF-wiki.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401036279883674994&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3193880670773749221-2307040351731996089?l=mariot-thoughts.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 17:20:19 +0000</pubDate>
	<author>noreply@blogger.com (Mariot Chauvin)</author>
</item>
<item>
	<title>Dave Carver: Eclipse XSL Tools gets SAXON Debugging Support</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1585332946379204379.post-6621470278895158478</guid>
	<link>http://intellectualcramps.blogspot.com/2009/11/eclipse-xsl-tools-gets-saxon-debugging.html</link>
	<description>One of the items for XSL Tools that we were not able to provide out of the box was support for debugging XSLT stylesheets using the &lt;a href=&quot;http://saxon.sourceforge.net/&quot;&gt;Saxon&lt;/a&gt; processor.  However, there is good news for those that wish to use XSL Tools and debug their stylesheets using SAXON (especially useful for XSLT 2.0 support).&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://code.google.com/p/cakupan/&quot;&gt;Cakupan project&lt;/a&gt; being hosted at Google Code, has created the necessary plugin needed to enable the debugging support.   More information can be found at their project.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1585332946379204379-6621470278895158478?l=intellectualcramps.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 14:52:59 +0000</pubDate>
	<author>noreply@blogger.com (David Carver)</author>
</item>
<item>
	<title>Andy Maleh: Social Dev Camp - Paper Prototyping: Discover Your Interface Sooner!</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-32881756.post-8995853171199971390</guid>
	<link>http://andymaleh.blogspot.com/2009/11/social-dev-camp-paper-prototyping.html</link>
	<description>I'm giving a presentation at &lt;a href=&quot;http://barcamp.pbworks.com/SocialDevCampChicago&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Social Dev Camp / Chicago&lt;/a&gt; this Sunday at 2:30PM.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Title:&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Paper Prototyping: &lt;span style=&quot;font-style: italic;&quot;&gt;Discover Your Interface Sooner!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Abstract:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Iterative incremental design of software is great as it helps developers discover how to build their applications gradually with small low-risk steps followed by user acceptance testing. However, why limit this agile approach to writing code? This same technique can be applied to user interfaces too during the early conceptual stages of design, enabling ability to make changes in hours instead of weeks since it is done to paper instead of code. For example, can you think how much more time it would take to redesign each page in MySpace to look more like Facebook if it is already coded vs when it was still on paper? Come to this talk to learn the basics of Paper Prototyping and how you can apply this valuable tool to achieve better user experience.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/32881756-8995853171199971390?l=andymaleh.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 06 Nov 2009 10:16:00 +0000</pubDate>
</item>
<item>
	<title>Rafael Chaves: TextUML Toolkit 1.4 is out!</title>
	<guid isPermaLink="false">http://abstratt.com/blog/?p=161</guid>
	<link>http://abstratt.com/blog/2009/11/06/textuml-toolkit-141-is-out/</link>
	<description>&lt;p&gt;Release 1.4 of the TextUML Toolkit is now available from the &lt;a href=&quot;http://abstratt.com/update/&quot;&gt;update sites&lt;/a&gt;, for both Eclipse 3.5+ and 3.4 (&lt;em&gt;by the way, it is possible this will be the last major release targetting Eclipse 3.4, unless someone volunteers to generate and test builds for 3.4&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;This is mostly a bug fix release. However, there were some minor notation changes to support stereotypes on dependencies, generalizations and interface realizations, hence the version change from 1.3.x to 1.4.x.&lt;/p&gt;
&lt;p&gt;Thanks to Vladimir Sosnin, Attila Bak and fredlaviale for contributing with code and/or bug reports/feature requests. Keep them coming!&lt;/p&gt;
&lt;p&gt;As usual, you can find a summary of the changes in the &lt;a href=&quot;https://sourceforge.net/apps/mediawiki/textuml/index.php?title=TextUML_Toolkit_Features&quot;&gt;TextUML Toolkit Features&lt;/a&gt; page. If you are using the Toolkit, make sure you upgrade soon. If not, what are you waiting for? &lt;a href=&quot;https://sourceforge.net/apps/mediawiki/textuml/index.php?title=Install_Instructions&quot;&gt;Install it already&lt;/a&gt;!&lt;/p&gt;</description>
	<pubDate>Fri, 06 Nov 2009 07:51:00 +0000</pubDate>
</item>
<item>
	<title>Miles Parker: Acore Design Discussion Wiki</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1706439134994847071.post-2024845417979885447</guid>
	<link>http://feedproxy.google.com/~r/MetaBeta/~3/72F7bEou9tk/acore-design-discussion-wiki.html</link>
	<description>&lt;i&gt;Every once in a while I think it makes sense to have a completely on-topic, technical post!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;One of the (many) things that has been on the top of my to do list is to get a discussion going about all of the challenging and deeply interesting design issues involved in creating a meta-model that supports the representation of arbitrary natural systems. You know, it's funny, but putting it that way I just had a realization of how -- ambitious? hubristic? no, I'm thinking simply ridiculous -- that particular use case is. But what the hell, let's give it a try. And you can help. Check out the document below.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://wiki.eclipse.org/AMP/Acore_Model_Design&quot;&gt;http://wiki.eclipse.org/AMP/Acore_Model_Design&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You don't have to be involved in agent-based modeling to contribute -- in fact, it would be really great if you weren't! There are very likely issues in the overall design that already have good solutions and we're simply not aware of them. I'm especially hopeful that the broader modeling community will have some ideas about namespace and query mechanisms. And on the other hand, you might see something here that will be helpful to your own efforts. I think AMF is doing some interesting stuff in terms of supporting general behavioral modeling and the more arbitrary and dynamic relations than can be represented in OO meta-model designs.&lt;br /&gt;&lt;br /&gt;Though I've had many many interesting conversations about MetaABM design issues on an individual and small group basis, and though those discussion are often about the same basic issues, it's been frustratingly difficult for me to get a more open discussion going. In the past, I've tried newsgroup and mailing list postings, but somehow the discussions are never quite as interesting as the more private ad hoc ones. Incidentally, this is true at conferences as well. And it's especially true in academic conferences where -- ironically or not -- people can be the most conservative about sharing their more interesting ideas. The real action at conferences happens not in the session rooms but in the hallway. Hmm, perhaps I could have put that statement better -- the images it brings to mind are a little disturbing. But you know what I mean. OK, getting back on topic now... I'm often reduced to cc'ing folks into email discussions and that can get ideas going. But those discussions end up sort of petering out before any real conclusions are drawn. To have a real sense of community ownership in Acore and AMP, it's going to take a lot more than that.&lt;br /&gt;&lt;br /&gt;I guess there are two aspects to this; network effects and making tools that people just spontaneously want to be involved in. But that's an iterative process, and for a tool like AMP AMF that is already pretty conceptually abstract and complex, how can I jump-start that process? That's the challenge, and I'm hoping that combining an active design process with other kinds of communication will get us past the tipping point / s-curve / [insert-your-favorite-complex-systems-buzzword-here].&lt;br /&gt;&lt;br /&gt;I was inspired to take the Wiki approach by the effort that the P2 team made last year -- see &lt;a href=&quot;http://wiki.eclipse.org/Equinox_p2_UI_Use_Cases&quot;&gt;http://wiki.eclipse.org/Equinox_p2_UI_Use_Cases&lt;/a&gt;. Their approach was really light-weight but it was able to capture the core issues and solutions really well, and -- here's the key and to me really surprising thing -- involve users form outside of the core P2 group to provide feedback and input. Outside of bug reports and infrequent blog posts from happy or disgruntled users, and (at least for those projects with already active user communities) gleaning newsgroup postings, it's really hard to get a discussion going about detailed design issues, so as I've mentioned here before I was impressed by the P2 team's effort. It'll be interesting to see how it works in this somewhat different context.&lt;br /&gt;&lt;br /&gt;So, I hope you'll take a look and give feedback on the technical issues but I'd also really appreciate any advice on the technical community building challenge itself.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1706439134994847071-2024845417979885447?l=milesparker.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/axZ2KbF32mfiGUwbdbEeXQJABW4/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/axZ2KbF32mfiGUwbdbEeXQJABW4/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/axZ2KbF32mfiGUwbdbEeXQJABW4/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/axZ2KbF32mfiGUwbdbEeXQJABW4/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/MetaBeta/~4/72F7bEou9tk&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 06 Nov 2009 01:35:00 +0000</pubDate>
	<author>noreply@blogger.com (Miles Parker)</author>
</item>
<item>
	<title>Wayne Beaton: The Power to Make things Better</title>
	<guid isPermaLink="false">http://dev.eclipse.org/blogs/wayne/?p=892</guid>
	<link>http://dev.eclipse.org/blogs/wayne/2009/11/05/the-power-to-make-things-better/</link>
	<description>&lt;p&gt;One of the things that I quite like about my new job at the Eclipse Foundation is the feeling that I can make a difference in the lives of committers, adopters, users, and the broader community. Actually… check that. It’s not me that’s making the difference. Individuals and project teams seem to be stepping up all over the place to make things better. Change is happening at the Foundation.&lt;/p&gt;
&lt;p&gt;Builds have gotten better with the arrival of the &lt;a href=&quot;http://wiki.eclipse.org/Athena_Common_Build&quot;&gt;Athena Common Builder&lt;/a&gt;. I know first-hand how much easier it is to get a build running as I’ve applied it to some of the projects that I’m working on. Numerous projects have adopted Athena and seem to be thriving on it. This is, of course, largely due to the tireless efforts of Nick Boldt (who has recently been brought into the &lt;a href=&quot;http://wiki.eclipse.org/index.php?title=Architecture_Council&quot;&gt;Architecture Council&lt;/a&gt;). We’re still not to the point of having a single Ant or Maven script, but it is getting better. New work around build is on the horizon in the form of the &lt;a href=&quot;http://eclipse.org/proposals/b3/&quot;&gt;B3 project&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I recall the first answer to the request for &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; repository support at eclipse.org: “no way”. Today, we have a Git mirror of our CVS servers and are on our way toward implementing a proper Git repository for a few select projects sometime early in the new year. Denis “&lt;a href=&quot;http://en.wikipedia.org/wiki/Montgomery_Scott&quot;&gt;Scotty&lt;/a&gt;” Roy is, of course, working his usual miracles. It won’t be long before we have first-class support for Git both as a repository and as integration with the Eclipse workbench via the &lt;a href=&quot;http://www.eclipse.org/egit&quot;&gt;EGit&lt;/a&gt; project. On that note, first-class rock-solid Eclipse-based tools for Git is one of the conditions for full-blown Git support at eclipse.org; please get involved with the EGit project and help where you can.&lt;/p&gt;
&lt;p&gt;Early discussions about Maven repositories at eclipse.org didn’t get very far. But, thanks to the good folks from the &lt;a href=&quot;http://www.eclipse.org/buckminster&quot;&gt;Buckminster&lt;/a&gt; project, we are planning to make the Helios release train available as both a p2 and a Maven repository. Over the past couple of weeks, I’ve been chatting with many folks in our community about creating a new über repository where projects that are not participating in the release train can make their code available to both p2 and Maven clients. The best part in all this is that it doesn’t require very much work for projects to participate: it’s looking like they have only to make their update sites known to the aggregator and they’re in. The aggregator will do important things like check dependencies and keep track of previous versions; these are important features for people who depend on bits staying where they are so that they can base real builds on them. Having an über repository will make it far easier for the broader community to find and use Eclipse technology. We’re still early in this process, but I remain hopeful and excited.&lt;/p&gt;
&lt;p&gt;And darn it, we’re going to get &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=280730&quot;&gt;Bug 280730&lt;/a&gt; resolved.&lt;/p&gt;
&lt;p&gt;It’s amazing what a little positive energy can bring.&lt;/p&gt;</description>
	<pubDate>Thu, 05 Nov 2009 21:46:02 +0000</pubDate>
</item>
<item>
	<title>Eclipse Announcements: Last Chance to Register for Eclipse Modeling and EclipseRT Days in Austin, New York and Toronto</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/eclipse/fnews/~3/U-AYOK9XhPI/20091105_lastchanceEclipseDay.php</guid>
	<link>http://feedproxy.google.com/~r/eclipse/fnews/~3/U-AYOK9XhPI/20091105_lastchanceEclipseDay.php</link>
	<description>&lt;p&gt;The deadline to register for the Eclipse Modeling Days and EclipseRT Days is fast approaching.  If you plan
		to attend the events in New York City, Austin or Toronto please make sure you pre-register before the deadline next week. More details at 
		&lt;a href=&quot;http://wiki.eclipse.org/EclipseRT_Day&quot;&gt;EclipseRT Days&lt;/a&gt; and 
		&lt;a href=&quot;http://wiki.eclipse.org/Eclipse_Modeling_Day&quot;&gt;Eclipse Modeling Days&lt;/a&gt; web sites.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/eclipse/fnews/~4/U-AYOK9XhPI&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 05 Nov 2009 19:51:00 +0000</pubDate>
</item>
<item>
	<title>Eclipse Announcements: Eclipse DemoCamps, November 8-14: Columbus, Jakarta</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/eclipse/fnews/~3/UJjih5ZQN3w/Eclipse_DemoCamps_November_2009</guid>
	<link>http://feedproxy.google.com/~r/eclipse/fnews/~3/UJjih5ZQN3w/Eclipse_DemoCamps_November_2009</link>
	<description>&lt;p&gt;The Eclipse community is hosting DemoCamps in cities around the world
		during November and early December to showcase new and interesting solutions with Eclipse. Events
		coming up for the week of November 8-14 are:
		&lt;/p&gt;&lt;ul&gt;
			&lt;li&gt;&lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Columbus&quot;&gt;Columbus&lt;/a&gt;, OH, US - November 10&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Jakarta&quot;&gt;Jakarta&lt;/a&gt;, Indonesia - November 13&lt;/li&gt;	
		&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
				
		&lt;p&gt;There will be a lot of time for informal conversation and networking as well, so sign up to attend a
		DemoCamp and connect with colleagues and friends. Check out the &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009&quot;&gt;DemoCamp wiki&lt;/a&gt; for
		other locations near you.&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/eclipse/fnews/~4/UJjih5ZQN3w&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 05 Nov 2009 19:10:00 +0000</pubDate>
</item>
<item>
	<title>Eclipse Announcements: Register for Eclipse Training</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/eclipse/fnews/~3/srg5SMbXOEI/classes.php</guid>
	<link>http://feedproxy.google.com/~r/eclipse/fnews/~3/srg5SMbXOEI/classes.php</link>
	<description>&lt;p&gt;
			There are 4 weeks left in the fall Eclipse training series.  Classes on Eclipse Rich Client Platform
			(RCP), Equinox &amp;amp; OSGi and Modeling are being offered until December 4.  You can learn practical
			techniques and tips in a classroom setting or online from Eclipse experts. 
		&lt;/p&gt;
		&lt;p&gt;		
			&lt;a href=&quot;http://www.eclipse.org/community/training/classes.php&quot;&gt;See
			the schedule&lt;/a&gt; for a complete list of classes and course descriptions.	
		&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/eclipse/fnews/~4/srg5SMbXOEI&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 05 Nov 2009 18:55:00 +0000</pubDate>
</item>
<item>
	<title>Chris Aniszczyk: The Company-Customer Pact</title>
	<guid isPermaLink="false">http://aniszczyk.org/?p=1404</guid>
	<link>http://aniszczyk.org/2009/11/05/the-company-customer-pact/</link>
	<description>&lt;p&gt;I’m not a fan of anonymous feedback or anonymous communication, especially if you’re trying to build a community around something. I recently came across the &lt;a href=&quot;http://www.ccpact.com/&quot;&gt;Company-Customer Pact&lt;/a&gt; which I highly recommend people read as it embodies a lot of things I believe in.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ccpact.com/&quot;&gt;&lt;img src=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/ccpact-300x200.png&quot; title=&quot;Company Customer Pact&quot; height=&quot;200&quot; width=&quot;300&quot; alt=&quot;Company Customer Pact&quot; class=&quot;alignnone size-medium wp-image-1405&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;We, customers and companies alike, need to trust the people with whom we do business. Customers expect honest, straightforward interactions where their voices are heard. Companies work to inspire brand loyalty and deliver satisfaction while trying to understand their customers better. It is evident that we all have a crucial stake–and responsibility–in transforming the adversarial tone that too often dominates the customer experience.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;A Call for Shared Responsibility&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Along with open, authentic communication comes the mutual responsibility to make it work. As each of us is both a customer and an employee, we share in the rewards and challenges of candor. By adopting these five practical measures, we can together realize a fundamental shift in our business relationships:&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;What do people think?&lt;/p&gt;
&lt;p&gt;Any lessons we can take away that would benefit the &lt;a href=&quot;http://www.eclipse.org&quot;&gt;Eclipse&lt;/a&gt; community?&lt;/p&gt;</description>
	<pubDate>Thu, 05 Nov 2009 17:42:21 +0000</pubDate>
</item>
<item>
	<title>David Green: TreeViewer: Two Clicks To Edit</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1482979278030787271.post-9085719594655362661</guid>
	<link>http://greensopinion.blogspot.com/2009/11/treeviewer-two-clicks-to-edit.html</link>
	<description>&lt;p&gt;TreeViewer is the foundation behind most trees and tree tables found in Eclipse.  It provides excellent extensibility and options for customization.  One feature, in-place editing of tree nodes, is very useful -- however the default implementation activates editing on the first click.  This can be frustrating and unintuitive to users who expect the first click to select a node, and the second click to edit.  This tip shows a simple way to cause TreeViewer to require two clicks to edit.&lt;/p&gt;&lt;p&gt;Since Eclipse 3.3, &lt;code&gt;ColumnViewerEditorActivationStrategy&lt;/code&gt; has been available as API to configure how a TreeViewer starts editing.  Our strategy will require the tree's current selection to be the node being clicked in order for a click to be considered an editing event.  We do this by extending ColumnViewerEditorActivationStrategy as follows:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;/**&lt;br /&gt; * an activation strategy that only allows editor activation if the item under the&lt;br /&gt; * event was already selected. This has the effect of requiring a click to first select&lt;br /&gt; * the item, then a second click to edit. &lt;br /&gt; */&lt;br /&gt;class SecondClickColumnViewerEditorActivationStrategy extends&lt;br /&gt;  ColumnViewerEditorActivationStrategy implements ISelectionChangedListener {&lt;br /&gt;&lt;br /&gt; private Object selectedElement;&lt;br /&gt;&lt;br /&gt; public SecondClickColumnViewerEditorActivationStrategy(ColumnViewer viewer) {&lt;br /&gt;  super(viewer);&lt;br /&gt;  viewer.addSelectionChangedListener(this);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; @Override&lt;br /&gt; protected boolean isEditorActivationEvent(&lt;br /&gt;   ColumnViewerEditorActivationEvent event) {&lt;br /&gt;  IStructuredSelection selection = (IStructuredSelection)getViewer().getSelection();&lt;br /&gt;  &lt;br /&gt;  return selection.size() == 1 &amp;amp;&amp;amp; super.isEditorActivationEvent(event) &amp;amp;&amp;amp; &lt;br /&gt;    selectedElement == selection.getFirstElement();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void selectionChanged(SelectionChangedEvent event) {&lt;br /&gt;  IStructuredSelection ss = (IStructuredSelection) event.getSelection();&lt;br /&gt;  &lt;br /&gt;  if (ss.size() == 1) {&lt;br /&gt;   selectedElement = ss.getFirstElement();&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  selectedElement = null;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This code relies on the order of events when comparing the tree's current selection against it's previous current selection.&lt;/p&gt;&lt;p&gt;Now all we have to do is install the strategy on our TreeViewer:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;viewer = new org.eclipse.jface.viewers.TreeViewer(parent, &lt;br /&gt;   SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);&lt;br /&gt;TreeViewerEditor.create(viewer,null,new SecondClickColumnViewerEditorActivationStrategy(viewer),&lt;br /&gt;   ColumnViewerEditor.DEFAULT);  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Voila!  We're done: our TreeViewer now edits on the second click instead of the first.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1482979278030787271-9085719594655362661?l=greensopinion.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 05 Nov 2009 17:16:14 +0000</pubDate>
	<author>noreply@blogger.com (David Green)</author>
</item>
<item>
	<title>Birt World: Calling Spring Objects from BIRT Expressions and Event Handlers</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-14521551.post-7932873220674159902</guid>
	<link>http://birtworld.blogspot.com/2009/11/calling-spring-objects-from-birt.html</link>
	<description>Several examples are already available on the web, which demonstrate calling the BIRT engine from a Spring MVC application.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://internna.blogspot.com/2007/03/integrating-birt-with-spring-in-web.html&quot;&gt;Integrating BIRT with Spring in a Web application&lt;/a&gt;&lt;br /&gt;and &lt;br /&gt;&lt;a href=&quot;http://blog.xebia.com/2006/08/29/reporting-the-eclipse-way/&quot;&gt;Eclipse BIRT in Spring web applications&lt;/a&gt;&lt;br /&gt;are a couple of examples.&lt;br /&gt;&lt;br /&gt;There is not much information on how to include Spring Beans within a report design.  This post details an example of injecting the Spring ApplicationContext into BIRT’s AppContext object which will allow you to call your Spring Beans in BIRT expressions or event handlers.  A link for the source is listed at the bottom.  A readme file containing instructions for building the example is included in the download.&lt;br /&gt;&lt;br /&gt;You can include the BIRT runtime by following the post above or examining the download.  The Example implements a Spring Controller with the following code.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.eclipse.birt.spring;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletContext;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import org.eclipse.birt.report.engine.api.HTMLRenderOption;&lt;br /&gt;import org.eclipse.birt.report.engine.api.HTMLServerImageHandler;&lt;br /&gt;import org.eclipse.birt.report.engine.api.IReportEngine;&lt;br /&gt;import org.eclipse.birt.report.engine.api.IReportRunnable;&lt;br /&gt;import org.eclipse.birt.report.engine.api.IRunAndRenderTask;&lt;br /&gt;import org.springframework.web.servlet.ModelAndView;&lt;br /&gt;import org.springframework.web.servlet.mvc.AbstractController;&lt;br /&gt;&lt;br /&gt;public class BirtController extends AbstractController {&lt;br /&gt;&lt;br /&gt;  private IReportEngine reportEngine;&lt;br /&gt;&lt;br /&gt;  protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {&lt;br /&gt;&lt;br /&gt; String reportName = request.getParameter(&quot;ReportName&quot;);&lt;br /&gt; ServletContext sc = request.getSession().getServletContext();&lt;br /&gt; reportEngine = BirtEngine.getBirtEngine(sc);&lt;br /&gt; IReportRunnable runnable = null;&lt;br /&gt; runnable = reportEngine.openReportDesign( sc.getRealPath(&quot;/Reports&quot;)+&quot;/&quot;+reportName );&lt;br /&gt;    IRunAndRenderTask runAndRenderTask = reportEngine.createRunAndRenderTask(runnable);&lt;br /&gt;&lt;br /&gt;    HTMLRenderOption options = new HTMLRenderOption();&lt;br /&gt;    options.setOutputFormat(&quot;html&quot;);&lt;br /&gt;    options.setOutputStream(response.getOutputStream());&lt;br /&gt; options.setImageHandler(new HTMLServerImageHandler());&lt;br /&gt; options.setBaseImageURL(request.getContextPath()+&quot;/images&quot;);&lt;br /&gt; options.setImageDirectory(sc.getRealPath(&quot;/images&quot;));&lt;br /&gt;    runAndRenderTask.setRenderOption(options);&lt;br /&gt;    runAndRenderTask.run();&lt;br /&gt;&lt;br /&gt;    return null;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that no error checking is implemented in this example.  This controller class just extends the Spring AbstractController class passes the response object to the BIRT engine to output the report.  The report name is retrieved from the request.  Before running the report the BirtEngine class is used to retrieve the BIRT engine.  This is virtually the same BirtEngine class used in the servlet example available in the &lt;a href=&quot;http://wiki.eclipse.org/Servlet_Example_%28BIRT%29_2.1&quot;&gt;BIRT wiki&lt;/a&gt; with some exceptions that are noted here.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.eclipse.birt.spring;&lt;br /&gt;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import java.util.logging.Level;&lt;br /&gt;&lt;br /&gt;import org.eclipse.birt.report.engine.api.EngineConfig;&lt;br /&gt;import org.eclipse.birt.report.engine.api.IReportEngine;&lt;br /&gt;import javax.servlet.*;&lt;br /&gt;import org.eclipse.birt.core.framework.PlatformServletContext;&lt;br /&gt;import org.eclipse.birt.core.framework.IPlatformContext;&lt;br /&gt;import org.eclipse.birt.core.framework.Platform;&lt;br /&gt;import org.eclipse.birt.core.exception.BirtException;&lt;br /&gt;import org.eclipse.birt.report.engine.api.IReportEngineFactory;&lt;br /&gt;import org.springframework.context.ApplicationContext; &lt;br /&gt;&lt;br /&gt;public class BirtEngine {&lt;br /&gt;&lt;br /&gt; private static IReportEngine birtEngine = null;&lt;br /&gt;&lt;br /&gt; private static Properties configProps = new Properties();&lt;br /&gt;&lt;br /&gt; private final static String configFile = &quot;BirtConfig.properties&quot;;&lt;br /&gt;&lt;br /&gt; public static synchronized void initBirtConfig() {&lt;br /&gt;  loadEngineProps();&lt;br /&gt; }&lt;br /&gt; public static synchronized IReportEngine getBirtEngine(ServletContext sc) {&lt;br /&gt;  if (birtEngine == null) &lt;br /&gt;  {&lt;br /&gt;   //optionally load engine props&lt;br /&gt;   //loadEngineProps();&lt;br /&gt;   EngineConfig config = new EngineConfig();&lt;br /&gt;   if( configProps != null){&lt;br /&gt;    String logLevel = configProps.getProperty(&quot;logLevel&quot;);&lt;br /&gt;    Level level = Level.OFF;&lt;br /&gt;    if (&quot;SEVERE&quot;.equalsIgnoreCase(logLevel)) &lt;br /&gt;    {&lt;br /&gt;     level = Level.SEVERE;&lt;br /&gt;    } else if (&quot;WARNING&quot;.equalsIgnoreCase(logLevel))&lt;br /&gt;    {&lt;br /&gt;     level = Level.WARNING;&lt;br /&gt;    } else if (&quot;INFO&quot;.equalsIgnoreCase(logLevel)) &lt;br /&gt;    {&lt;br /&gt;     level = Level.INFO;&lt;br /&gt;    } else if (&quot;CONFIG&quot;.equalsIgnoreCase(logLevel))&lt;br /&gt;    {&lt;br /&gt;     level = Level.CONFIG;&lt;br /&gt;    } else if (&quot;FINE&quot;.equalsIgnoreCase(logLevel)) &lt;br /&gt;    {&lt;br /&gt;     level = Level.FINE;&lt;br /&gt;    } else if (&quot;FINER&quot;.equalsIgnoreCase(logLevel)) &lt;br /&gt;    {&lt;br /&gt;     level = Level.FINER;&lt;br /&gt;    } else if (&quot;FINEST&quot;.equalsIgnoreCase(logLevel)) &lt;br /&gt;    {&lt;br /&gt;     level = Level.FINEST;&lt;br /&gt;    } else if (&quot;OFF&quot;.equalsIgnoreCase(logLevel)) &lt;br /&gt;    {&lt;br /&gt;     level = Level.OFF;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    config.setLogConfig(configProps.getProperty(&quot;logDirectory&quot;), level);&lt;br /&gt;   }&lt;br /&gt;   config.setEngineHome(&quot;&quot;);&lt;br /&gt;   &lt;br /&gt;   IPlatformContext context = new PlatformServletContext( sc );&lt;br /&gt;   config.setPlatformContext( context );&lt;br /&gt;   config.getAppContext().put(&quot;PARENT_CLASSLOADER&quot;, BirtEngine.class.getClassLoader());&lt;br /&gt;   ApplicationContext sprCtx = ContextAccess.getApplicationContext();&lt;br /&gt;   config.getAppContext().put(&quot;spring&quot;,sprCtx);   &lt;br /&gt;   try&lt;br /&gt;   {&lt;br /&gt;    Platform.startup( config );&lt;br /&gt;   }&lt;br /&gt;   catch ( BirtException e )&lt;br /&gt;   {&lt;br /&gt;    e.printStackTrace( );&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   IReportEngineFactory factory = (IReportEngineFactory) Platform&lt;br /&gt;   .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );&lt;br /&gt;   birtEngine = factory.createReportEngine( config );&lt;br /&gt;  }&lt;br /&gt;  return birtEngine;&lt;br /&gt; }&lt;br /&gt; public static synchronized void destroyBirtEngine() {&lt;br /&gt;  if (birtEngine == null) {&lt;br /&gt;   return;&lt;br /&gt;  }  &lt;br /&gt;  birtEngine.destroy();&lt;br /&gt;  Platform.shutdown();&lt;br /&gt;  birtEngine = null;&lt;br /&gt; }&lt;br /&gt; public Object clone() throws CloneNotSupportedException {&lt;br /&gt;  throw new CloneNotSupportedException();&lt;br /&gt; }&lt;br /&gt; private static void loadEngineProps() {&lt;br /&gt;  try {&lt;br /&gt;   //Config File must be in classpath&lt;br /&gt;   ClassLoader cl = Thread.currentThread ().getContextClassLoader();&lt;br /&gt;   InputStream in = null;&lt;br /&gt;   in = cl.getResourceAsStream (configFile);&lt;br /&gt;   configProps.load(in);&lt;br /&gt;   in.close();&lt;br /&gt;  } catch (IOException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt; &lt;br /&gt;This class just wraps access to the BIRT engine in a singleton.&lt;br /&gt;The notable changes are in these lines of code deal with the EngineConfig class.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;   config.setEngineHome(&quot;&quot;);&lt;br /&gt;   &lt;br /&gt;   IPlatformContext context = new PlatformServletContext( sc );&lt;br /&gt;   config.setPlatformContext( context );&lt;br /&gt;   config.getAppContext().put(&quot;PARENT_CLASSLOADER&quot;, BirtEngine.class.getClassLoader());&lt;br /&gt;   ApplicationContext sprCtx = ContextAccess.getApplicationContext();&lt;br /&gt;   config.getAppContext().put(&quot;spring&quot;,sprCtx);  &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The setEngineHome is passed a blank value and setting the PlatformContext to use a PlatformServletContext class will by default look for the BIRT plugins in the WEB-INF/Platform/plugins directory.  Next we set the parent classloader for the report engine plugin so that classes available to the project will also be available to the BIRT engine.  The final line gets the Spring ApplicationContext instance and loads it into the BIRT AppContext object and names it “spring”.  The method used for retrieving the Spring context is described in a great post &lt;a href=&quot;http://blog.jdevelop.eu/2008/07/06/access-the-spring-applicationcontext-from-everywhere-in-your-application/&quot;&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The ContextAccess class is defined as follows.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.eclipse.birt.spring;&lt;br /&gt;import org.springframework.context.ApplicationContext; &lt;br /&gt;public class ContextAccess {&lt;br /&gt; private static ApplicationContext ctx;&lt;br /&gt; public static void setApplicationContext(ApplicationContext applicationContext) {   &lt;br /&gt;  ctx = applicationContext;   &lt;br /&gt; }&lt;br /&gt; public static ApplicationContext getApplicationContext() {&lt;br /&gt;  return ctx;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This Class just contains methods to set and get the static variable ctx, which will contain the Spring ApplicationContext with the addition of one more class.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;package org.eclipse.birt.spring;&lt;br /&gt;&lt;br /&gt;import org.springframework.beans.BeansException;&lt;br /&gt;import org.springframework.context.ApplicationContext;&lt;br /&gt;import org.springframework.context.ApplicationContextAware; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class SpringContextProvider implements ApplicationContextAware {&lt;br /&gt; public void setApplicationContext(ApplicationContext ctx) throws BeansException {&lt;br /&gt;  ContextAccess.setApplicationContext(ctx);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This Class implements the ApplicationContextAware interface which causes the Spring framework to callback this class with the Spring context, when it is created.  The Spring configuration file for this example looks like the following.&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt; &amp;lt;bean id=&quot;springContextProvider&quot; class=&quot;org.eclipse.birt.spring.SpringContextProvider&quot;&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;     &lt;br /&gt; &amp;lt;bean id=&quot;urlMapping&quot; class=&quot;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&quot;&amp;gt;&lt;br /&gt;  &amp;lt;property name=&quot;mappings&quot;&amp;gt;&lt;br /&gt;   &amp;lt;props&amp;gt;                &lt;br /&gt;    &amp;lt;prop key=&quot;/runbirt.htm&quot;&amp;gt;birtController&amp;lt;/prop&amp;gt;&lt;br /&gt;   &amp;lt;/props&amp;gt;        &lt;br /&gt;  &amp;lt;/property&amp;gt;    &lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt; &amp;lt;bean id=&quot;birtEngine&quot;&lt;br /&gt;  class=&quot;org.eclipse.birt.spring.BirtEngine&quot;&lt;br /&gt;  destroy-method=&quot;destroyBirtEngine&quot;&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt; &amp;lt;bean id=&quot;birtController&quot;&lt;br /&gt;  class=&quot;org.eclipse.birt.spring.BirtController&quot;&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt; &amp;lt;bean id=&quot;carPojo&quot;&lt;br /&gt;  class=&quot;org.eclipse.birt.spring.CarPojo&quot;&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt; &lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;br /&gt;We have a carPojo bean that is available.  To access this from a BIRT expression, all we have to do is use the following syntax.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var mypojo = spring.getBean(&quot;carPojo&quot;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can then call the methods on the object. Eg &lt;code&gt;mypojo.getYear();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_GN1FyT5H8Kg/SvLzpcdiV7I/AAAAAAAAAHI/0Vmh-WCz_OQ/s1600-h/expression.PNG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_GN1FyT5H8Kg/SvLzpcdiV7I/AAAAAAAAAHI/0Vmh-WCz_OQ/s320/expression.PNG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 274px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5400646796510910386&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Output for the example is presented below.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_GN1FyT5H8Kg/SvLz0-FxYpI/AAAAAAAAAHQ/BPdwDwyyUQ4/s1600-h/example.PNG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_GN1FyT5H8Kg/SvLz0-FxYpI/AAAAAAAAAHQ/BPdwDwyyUQ4/s320/example.PNG&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 230px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5400646994516599442&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Caveats&lt;/em&gt;&lt;br /&gt;If you preview the report in the designer the report will not work.  This is because the Spring context is not available to the designer.  The report has to be deployed to test it.  There are many ways this example could be extended to circumvent this issue.  BIRT provides an extension point to enhance the expression builder which could be used with Spring Remoting to access the Spring context.  BIRT also provides an extension to implement a BIRT application context object within the designer that could be used in this same fashion.  I will try to implement one of these methods in the future to illustrate this concept.&lt;br /&gt;&lt;br /&gt;The example can be downloaded from &lt;a href=&quot;http://www.birt-exchange.org/devshare/designing-birt-reports/1082-accessing-spring-beans-from-birt-reports/#description&quot;&gt;Birt-Exchange&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14521551-7932873220674159902?l=birtworld.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 05 Nov 2009 16:24:10 +0000</pubDate>
	<author>noreply@blogger.com (Jason Weathersby)</author>
</item>
<item>
	<title>Dave Carver: SWARM for the Community</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1585332946379204379.post-7652732186388684843</guid>
	<link>http://intellectualcramps.blogspot.com/2009/11/swarm-for-community.html</link>
	<description>The Eclipse Platform releng team has been struggling with some build times recently.  Kim's woes are described in bug &lt;a href=&quot;http://bugs.eclipse.org/293830&quot;&gt;293830&lt;/a&gt;.  In general, the eclipse platform needs some help from the community to help off load some of the time it takes to do the eclipse platform builds.   In particular running unit tests.   She would like to move the builds to eclipse.org, but unfortunately the Foundation does not have the resources or machines necessary to build on all the various platforms.   A possible solution...create a community build swarm.&lt;br /&gt;&lt;br /&gt;Swarm's are typically thought of in a negative ways...&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_KrN73FFeGok/SvLpnUnWHjI/AAAAAAAAALk/Tdx8As3Ocl8/s1600-h/swarm.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_KrN73FFeGok/SvLpnUnWHjI/AAAAAAAAALk/Tdx8As3Ocl8/s400/swarm.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 306px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5400635764928552498&quot; /&gt;&lt;/a&gt;Image Available From: &lt;a href=&quot;http://redwing.hutman.net/%7Emreed/warriorshtm/swarm.htm&quot;&gt;http://redwing.hutman.net/~mreed/warriorshtm/swarm.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;However, they can also be quite beneficial and beautiful as well...&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_KrN73FFeGok/SvLpUMdJBCI/AAAAAAAAALc/FrX0CWZMxSQ/s1600-h/galaxyswarm.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_KrN73FFeGok/SvLpUMdJBCI/AAAAAAAAALc/FrX0CWZMxSQ/s400/galaxyswarm.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 380px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5400635436320752674&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have a spare system that isn't being used, and you would like to help check out &lt;a href=&quot;http://bugs.eclipse.org/294330&quot;&gt;bug 294330&lt;/a&gt;, put your two cents into it.   If you have a platform that you think should be tested against then consider adding it to the swarm, so that the various eclipse projects can leverage it to build against.&lt;br /&gt;&lt;br /&gt;Another way to help out is to contribute some cash to the Foundation as a &lt;a href=&quot;http://www.eclipse.org/donate/&quot;&gt;Friend of Eclipse&lt;/a&gt;.   This way poor Kim doesn't have to pay for Amazon Cloud instances with her credit card.&lt;br /&gt;&lt;br /&gt;So here is yet another way that the community could help, that does not require a bit of code.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1585332946379204379-7652732186388684843?l=intellectualcramps.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 05 Nov 2009 15:11:48 +0000</pubDate>
	<author>noreply@blogger.com (David Carver)</author>
</item>
<item>
	<title>Kenn Hussey: On Momentum...</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5620932762413494076.post-4069410098217837154</guid>
	<link>http://kenn-hussey.blogspot.com/2009/11/on-momentum.html</link>
	<description>&lt;p&gt;Despite &lt;a href=&quot;http://thegordian.blogspot.com/2009/11/less-emf.html&quot;&gt;rumors&lt;/a&gt; of a resistance movement (ha!), the momentum of modeling at Eclipse continues to build, as attested by last week's &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/&quot;&gt;summit&lt;/a&gt;. By all accounts the various &lt;a href=&quot;http://ed-merks.blogspot.com/2009/10/eclipse-summit-europe-2009-tutorials.html&quot;&gt;tutorials&lt;/a&gt;, &lt;a href=&quot;http://ed-merks.blogspot.com/2009/10/eclipse-summit-europe-2009-day-of-talks.html&quot;&gt;presentations&lt;/a&gt;, and &lt;a href=&quot;http://ed-merks.blogspot.com/2009/10/eclipse-summit-europe-2009-final-day.html&quot;&gt;discussions&lt;/a&gt; about modeling were quite productive. I'll be blogging in more detail about the BoF and &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/sessions?id=1027&quot;&gt;long talk&lt;/a&gt; that I helped deliver at ESE in the coming days, but before I do I wanted to bring your attention to two other upcoming events that may be of interest to modelers.&lt;/p&gt;&lt;p&gt;In just under two weeks, Eclipse will be hosting &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_Modeling_Day&quot;&gt;&quot;Modeling Days&quot;&lt;/a&gt; in New York and Toronto. The line-up of presenters is terrific, and in case you missed my &lt;a href=&quot;http://www.slideshare.net/kenn.hussey/papyrus-advent-of-an-open-source-ime-at-eclipse&quot;&gt;presentation on Papyrus&lt;/a&gt; in &lt;a href=&quot;http://kenn-hussey.blogspot.com/2008/11/on-ludwigsburg.html&quot;&gt;Ludwigsburg&lt;/a&gt;, I'll be delivering (an updated version of) it at the Toronto Modeling Day on Wednesday, November 18. &lt;a href=&quot;http://kenn-hussey.blogspot.com/feeds/posts/eclipse_modeling_toronto@eclipse.org&quot;&gt;Registration&lt;/a&gt; is free, so there's no excuse for missing this opportunity to interact with thought leaders in the Eclipse Modeling community.&lt;/p&gt;&lt;p&gt;I &lt;a href=&quot;http://kenn-hussey.blogspot.com/2009/09/on-going-forth-to-past.html&quot;&gt;alluded&lt;/a&gt; to the second event some time ago, but now it's official - another &lt;a href=&quot;http://kenn-hussey.blogspot.com/2008/04/on-fake-ed-merks.html&quot;&gt;Eclipse/OMG Symposium&lt;/a&gt; is being held, this time at the &lt;a href=&quot;http://www.omg.org/news/schedule/upcoming.htm&quot;&gt;OMG Technical Meeting&lt;/a&gt; in Minnesota, Minneapolis on June 23, 2010. The &lt;a href=&quot;http://www.omg.org/news/meetings/tc/mn/special-events/Eclipse.htm&quot;&gt;call for participation&lt;/a&gt; is already open, so it's not too early to consider submitting a proposal and making your contribution to the joint future of open source and open specifications.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5620932762413494076-4069410098217837154?l=kenn-hussey.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 05 Nov 2009 15:11:34 +0000</pubDate>
	<author>noreply@blogger.com (Kenn Hussey)</author>
</item>
<item>
	<title>David Bosschaert: Submit your OSGi talks!</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4030657773074828717.post-2042943446485719729</guid>
	<link>http://osgithoughts.blogspot.com/2009/11/submit-your-osgi-talks.html</link>
	<description>Two OSGi Conferences are currently accepting presentation submissions, so if you have something interesting, cool or noteworthy to say about OSGi, make sure to submit your stuff!&lt;br /&gt;&lt;br /&gt;They are:&lt;br /&gt;  OSGi DevCon London (Feb 23, 2010): &lt;a href=&quot;http://www.osgi.org/DevConLondon2010&quot;&gt;http://www.osgi.org/DevConLondon2010&lt;/a&gt;&lt;br /&gt;and&lt;br /&gt;  OSGi DevCon at EclipseCon 2010 (March 22-25, 2010): &lt;a href=&quot;http://www.eclipsecon.org/2010/&quot;&gt;http://www.eclipsecon.org/2010/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So come out and show us all what you are using OSGi for!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4030657773074828717-2042943446485719729?l=osgithoughts.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 05 Nov 2009 14:32:05 +0000</pubDate>
	<author>david.bosschaert@gmail.com (davidb)</author>
</item>
<item>
	<title>Chris Aniszczyk: {F}CKEditor</title>
	<guid isPermaLink="false">http://aniszczyk.org/?p=1395</guid>
	<link>http://aniszczyk.org/2009/11/05/fckeditor/</link>
	<description>&lt;p&gt;Hrmm, one of my favorite HTML text editors, FCKEditor, got re-branded.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/fckeditor-logo.png&quot;&gt;&lt;img src=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/fckeditor-logo.png&quot; title=&quot;fckeditor-logo&quot; height=&quot;57&quot; width=&quot;226&quot; alt=&quot;fckeditor-logo&quot; class=&quot;alignnone size-full wp-image-1397&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It’s now known as CKEditor.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/ckeditor.png&quot;&gt;&lt;img src=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/ckeditor.png&quot; title=&quot;ckeditor&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;ckeditor&quot; class=&quot;alignnone size-full wp-image-1398&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Wonder why they changed the name &lt;img src=&quot;http://aniszczyk.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; ?&lt;/p&gt;
&lt;p&gt;On a side note, they have an impressive &lt;a href=&quot;http://ckeditor.com/license&quot;&gt;licensing&lt;/a&gt; scheme.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;CKEditor is distributed under the GPL, LGPL and MPL open source licenses. This triple copyleft licensing model avoids incompatibility with other open source licenses…&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;For commercial usage, they have the CKSource Closed Distribution License.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;For many companies and products, Open Source licenses are not an option. This is why the CKSource Closed Distribution License (CDL) has been introduced. It is a non-copyleft license which gives companies complete freedom when integrating CKEditor into their products and web sites…&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Fun.&lt;/p&gt;</description>
	<pubDate>Thu, 05 Nov 2009 14:02:39 +0000</pubDate>
</item>
<item>
	<title>OpenNTF: New OpenNTF Release of popular File Navigator</title>
	<guid isPermaLink="true">http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-7XHE2X</guid>
	<link>http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-7XHE2X</link>
	<description>&lt;font size=&quot;3&quot;&gt; &lt;/font&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Today a new release of the popular File
Navigator project has been released by Rene Winkelmeyer. The main focus
of this release is providing a more end-user friendly interface and additional
functionality.&lt;/font&gt;&lt;font size=&quot;3&quot;&gt; &lt;br /&gt;
&lt;/font&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;&lt;br /&gt;
Besides localization in five languages you can now set your own favorite
folders, add the &quot;Desktop&quot; to the file tree, rename files, create
folders and so on.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Install it via drag and drop from the
&lt;/font&gt;&lt;a href=&quot;http://www.openntf.org/catalogs/a2cat.nsf/topicThread.xsp?action=openDocument&amp;amp;documentId=2DFAACEB82DE7876852576480020247F&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;catalog&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;
or download the &lt;/font&gt;&lt;a href=&quot;http://www.openntf.org/Projects/pmt.nsf/downloadcounter?openagent&amp;amp;project=File%20Navigator&amp;amp;release=1.0.2&amp;amp;unid=B4FB77193AF7D5FB86257665003ADA8F&amp;amp;attachment=filenavigator_102.zip&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;zip
file&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;. &lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src=&quot;http://www.openntf.org/blogs/openntf.nsf/Images/C9FDA1BD299A65C8862576650038ECFE/EntryMoreRichMime/M2?OpenElement&quot; alt=&quot;A picture named M2&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;&lt;b&gt;New preferences&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src=&quot;http://www.openntf.org/blogs/openntf.nsf/Images/C9FDA1BD299A65C8862576650038ECFE/EntryMoreRichMime/M3?OpenElement&quot; alt=&quot;A picture named M3&quot; /&gt;
&lt;br /&gt;</description>
	<pubDate>Thu, 05 Nov 2009 10:15:49 +0000</pubDate>
</item>
<item>
	<title>Jason van Zyl: Maven 3.x: Paving the desire lines —  Part One</title>
	<guid isPermaLink="false">http://www.sonatype.com/people/?p=3292</guid>
	<link>http://www.sonatype.com/people/2009/11/maven-3x-paving-the-desire-lines-part-one-2/</link>
	<description>&lt;h1&gt;Maven 3.0&lt;/h1&gt;

&lt;p&gt;With Maven 3.x we have made our best attempt to listen to users, find out what they need and want, and make reasonable preparations and plans to fix the problems, implement useful features, and create the integration points for working properly with third-party systems like Nexus and Hudson. While there have been many new feature requests — and we have many new features done or in the works — the number one concern is backward compatibility. Maven 3.x makes an ardent attempt to be 100% backward-compatible with Maven 2.x. All your Maven 2.x builds should work out of the box using 3.x without change to your projects. We simply can’t cause pain to the existing user base. We are very cognizant that even small changes can have a huge impact and so we have tried achieve complete Maven 2.x fidelity with Maven 3.x.&lt;/p&gt;

&lt;p&gt;In Maven 3.x we have reduced the number of modules, we have simplified and extracted the artifact resolution system, we have put a performance framework in place, and we have created an enormous set of integration tests for Maven’s core and for many of the core plugins. We are constantly trying to validate core features and core plugins are working properly. We hope with the simplifications that we have made that more people will get involved in the project. We have done some heavy overhauling of many of the internals to make way for future features and I believe Maven 3.x is really the only path forward for Maven. What’s the technique we used to decide on how to plan and work toward the completion of Maven 3.x? A very practical approach to determining an optimal path called desire lines.&lt;/p&gt;

&lt;h2&gt;Desire Lines&lt;/h2&gt;

&lt;p&gt;A desire line usually represents the shortest or most easily navigated route between an origin and destination. The width and amount of erosion of the line represents the amount of demand. The term was coined by Gaston Bachelard in his book The Poetics of Space. Desire lines can usually be found as shortcuts where constructed pathways take a circuitous route. A concrete example: the pathways around the Berkeley campus in California. During the early years of Berkeley no pathways were paved. Instead they let inhabitants walk in optimal paths between the buildings and location over a period time to form clear pathways over the grass. Once these pathways had been established they could be paved to make the pathway more permanent. This is very similar to what happened with Maven 2.x. Consider Maven 2.x the pathways marked in the grass. Consider Maven 3.x taking all that learning from Maven 2.x and adopting the optimal form of use and codifying those forms of use i.e. paving the desire lines.&lt;/p&gt;

&lt;p&gt;Over the course of hundreds of thousands of people using Maven we have a very good idea of what these optimal pathways look like now. Here are a few examples of some of the things we’ve seen and the things we have to do in order to make these lasting improvements.&lt;/p&gt;

&lt;h2&gt;Responding to invitations for improvement&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;http://www.sonatype.com/people/wp-content/uploads/2009/11/desireline11.png&quot; alt=&quot;DesireLine1.png&quot; border=&quot;0&quot; width=&quot;666&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are many things in Maven 2.x that work reasonably well but have some minor flaws which cause irritation:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Dependency management. How to effectively manage what we will call a target platform (intentionally using the Eclipse nomenclature). It is easy to manage the versions of an applications runtime or its target platform. But what happens when you start pulling in multiple, separately developed target platforms.&lt;/li&gt;&lt;li&gt;Version specifications and version ranges. Maven’s notion of this is workable, but when it comes to the version specification and ranges it’s time to just defer to OSGi in this regard. What OSGi specifies and what Maven specifies are not wildly different but different enough to cause some problems. We’ll be working on aligning Maven to the version specification of OSGi.&lt;/li&gt;&lt;li&gt;The way plugins interact with embedded environments was just wrong. We allowed for no support for incremental changes. The result is that in M2Eclipse when you change an individual resource, that individual resource can be processed efficiently and not fire up all of Maven to run the whole build lifecycle. Sorry, but you won’t have time to get a coffee anymore.&lt;/li&gt;&lt;li&gt;There are slew more, but we’ll save those for other blog entries.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Responding to … being completely wrong&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;http://www.sonatype.com/people/wp-content/uploads/2009/11/desireline2.jpg&quot; alt=&quot;DesireLine2.jpg&quot; border=&quot;0&quot; width=&quot;375&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are some things in Maven 2.x we just didn’t get right and we have to make reparations:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Composition versus inheritance in the POM. There are some great debugged toolchains like we have in the Apache Organization POM for releasing, but this toolchain is not easily consumable by outside projects because it makes no sense to inherit from the Apache Organization POM for your projects. So how can we make these chunks of debugged combinations of plugins and their associated configuration? We will introduce mixins to help with this. Essentially it will be a POM consisting of plugins and configurations that can be externally parameterized. These mixins will be deployed to a repository and be referenced with a standard coordinate. Basically it will be an intelligent import with validation which will allow composition in your POMs.&lt;/li&gt;&lt;li&gt;Checking out the whole source tree versus an individual module and parent element versioning. We have always intentionally made projects specify versions in the parent elements. When you check out individual modules this is necessary. But for projects where the whole source tree is checked out, the version of the parent can be inferred and the requirement for specifying the version element in the parent can be removed.&lt;/li&gt;&lt;li&gt;Clean separation of operations that need to happen at the beginning and end of the lifecycle versus in the lifecycle itself. To make the OSGi integration we created work we needed to get at the projects before the build lifecycle was executed so we added a clear hook before lifecycle execution. What we have done to make OSGi integration work in Maven 3.x is simply not possible in Maven 2.x. We also had a terrible problem with reporting and aggregation because there was no clear point at which the lifecycle was over. Now once the build lifecycle is complete there is a clear hook to get the projects in the reactor so they can be processed easily. Accurate aggregation is now possible.&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Again, there are slew more, but we’ll also save those for other blog entries.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Responding to under-utilization of what exists&lt;/h2&gt;

&lt;p&gt;Unfortunately there are still a lot of powerful features and plugins in Maven that a lot of people don’t know about. We have tried to remedy this situation with the four books that we constantly update stream, and a stream of blog posts, and the soon to be enterprise Maven users list which will focus on the holistic and systematic use of Maven, M2Eclipse, Nexus and Hudson. We need to do a better job explaining end-to-end best practices for developing, testing, and provisioning software. We also need to do a better job describing some of the incredibly useful plugins we have like the enforcer plugin and the dependency plugin.&lt;/p&gt;

&lt;p&gt;But again, our best attempt to show people what is available through the four books that we have:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.sonatype.com/documentation/books/maven-defguide&quot;&gt;Maven: The Definitive Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://books.sonatype.com/nexus-book/&quot;&gt;Repository Management with Nexus&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://books.sonatype.com/m2eclipse-book/reference&quot;&gt;Developing with Eclipse and Maven&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://books.sonatype.com/mhandbook/reference&quot;&gt;The Maven Handbook&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Here is a picture I always use to illustrate the point that even though something may be sitting directly in front of you, it’s not always immediately obvious unless someone points it out to you. This is very much the case where we see users asking us for help with particular use cases and in frequently it’s very easy to answer the question by pointing to a URL. My example is the Fedex logo which was designed to have an arrow being formed between the last two letters of the logo. Quite ingenious but most people I point this out to haven’t notice it. &lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.sonatype.com/people/wp-content/uploads/2009/11/fedex11.png&quot; alt=&quot;Fedex1.png&quot; border=&quot;0&quot; width=&quot;588&quot; height=&quot;175&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.sonatype.com/people/wp-content/uploads/2009/11/fedex21.png&quot; alt=&quot;Fedex2.png&quot; border=&quot;0&quot; width=&quot;588&quot; height=&quot;175&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We are going to try a lot harder to make sure the value that exists is easier to find. I don’t enjoy reading blog posts from unhappy users at all, but I especially don’t like it when I know there is a solution which has been documented somewhere. Those painful situations can be reduced if not eliminated completely.&lt;/p&gt;

&lt;h2&gt;Backward Compatibility&lt;/h2&gt;

&lt;p&gt;I can’t stress enough how important backward compatibility is to us. We have done a non-trivial amount of work to pave the way for new capabilities in Maven 3.x while preserving 100% backward compatibility for:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Maven itself and the behaviour that users expect from the CLI&lt;/li&gt;&lt;li&gt;Artifact Resolution API&lt;/li&gt;&lt;li&gt;Plugin API&lt;/li&gt;&lt;li&gt;Plugin configuration&lt;/li&gt;&lt;li&gt;Site generation (even though we’ve extracted site/reporting entirely into the maven-site-plugin)&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;We must ensure that plugins and reports written against the Maven 2.0.x APIs remain viable in 3.0. We don’t want people rewriting their plugins or having to change their projects at all or it will simply be chaos. We simply have too many users and requiring changes will have an enormous human cost so we’ve been slow in announcing Maven 3.x. The version of Maven 3.x you can pull from the Sonatype grid is probably the best version of Maven that has existed but we are still being careful about releasing it. If you want to try it you can find it &lt;a href=&quot;https://grid.sonatype.org/ci/view/Maven%203.0.x/job/maven-3.0.x-bootstrap/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We must also ensure that POMs of version 4.0.0 are supported in 3.x along with the behavior currently experienced. We will need to make changes to the POM in order to introduce many of the new features so we’ve made the requisite preparation. We are relying heavily on our integrations tests right now but as we move forward the work that Benjamin is doing on the project/model-builder will help us to accommodate different versions of a POM, and different formats we decide to support.  The model-builder code has no limitation with respect to formats. We can support XML, or any source that anyone can dream up. These implementations may find use outside of Maven. For example someone might build something with the Maven, JRuby, and Mercury to create a JRuby-based system. The same could be done for Groovy. We already have some examples of this with the Polyglot Maven project we’ve started which will be the topic of a subsequent post.&lt;/p&gt;

&lt;p&gt;We have managed to keep almost everything backward compatible and we will go so far as to provide an isolated execution environment that can contain older versions of the plugin API so that everything from the past can continue to work in Maven 3.x. We will not truly be able to do this until we change the internal Maven runtime over to OSGi but we know what needs to be done. &lt;/p&gt;

&lt;h2&gt;Integration Testing&lt;/h2&gt;

&lt;p&gt;An enormous amount of time and energy has gone into improving the the integration tests for Maven. The integration tests are the gatekeeper and let us determine that we have a Maven 3.x that is compatible for Maven 2.x. We now have 506 integration tests that will help protect us as we move forward. We will likely approach 600 integration tests by the time we reach the Maven 3.0 GA.&lt;/p&gt;

&lt;p&gt;All core Maven plugins now have ITs and we have started branching out into the Mojo project to create plugin ITs there as well. We have a good pattern so we are encouraging anyone writing a Maven plugin to create ITs so that we can help ensure we don’t break people in the future. We have really taken fixing the problems we see seriously. I couldn’t help but make a little spoof of the SNL skit and adapting it for the Maven perspective.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;In the next post I will start talking about some of the technical changes we have made to Maven 3.x in order to achieve our goals. Those will include:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Refactored model/project builder (the support Polyglot Maven uses)&lt;/li&gt;&lt;li&gt;Queryable lifecycle&lt;/li&gt;&lt;li&gt;Lifecycle Extension points&lt;/li&gt;&lt;li&gt;Error and integrity reporting&lt;/li&gt;&lt;li&gt;Mercury: Jetty Client &amp;amp; SAT4J&lt;/li&gt;&lt;li&gt;Embedding&lt;/li&gt;&lt;li&gt;Incremental build support (used heavily in M2Eclipse for performance improvements, these are changes to the plugin API)&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;I plan to try and write something about Maven 3.x frequently in preparation for the Maven 3.x talks in &lt;a href=&quot;http://www.javaforum.se/jf/index.jsp?meeting=53&quot;&gt;Stockholm&lt;/a&gt;, &lt;a href=&quot;http://rheinjug.de/knowledge/vortr-mainmenu-28/108-maven-3-mit-jason-van-zyl&quot;&gt;Dusseldorf&lt;/a&gt;, &lt;a href=&quot;http://87.230.78.21:8080/display/jugc/2009.11.16+Maven+3&quot;&gt;Cologne&lt;/a&gt;, and &lt;a href=&quot;http://oredev.org/maven&quot;&gt;Devoxx&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;</description>
	<pubDate>Thu, 05 Nov 2009 08:32:29 +0000</pubDate>
</item>
<item>
	<title>Bob Balfe: YANKEES WIN!  27 baby….27!</title>
	<guid isPermaLink="false">http://blog.balfes.net/?p=889</guid>
	<link>http://feedproxy.google.com/~r/Balfesnet/~3/126dAaQDhkQ/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://newyork.yankees.mlb.com/NASApp/mlb/index.jsp?c_id=nyy&quot;&gt;New York Yankees : The Official Site&lt;/a&gt;&lt;/p&gt;





&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/jIVx-nbpc18aTsF6RBI-LiOtM0U/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/jIVx-nbpc18aTsF6RBI-LiOtM0U/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/jIVx-nbpc18aTsF6RBI-LiOtM0U/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/jIVx-nbpc18aTsF6RBI-LiOtM0U/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/Balfesnet/~4/126dAaQDhkQ&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 05 Nov 2009 05:07:22 +0000</pubDate>
</item>
<item>
	<title>Dave Carver: XPath 2: Collections and PsychoPath</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1585332946379204379.post-5336524877457061983</guid>
	<link>http://intellectualcramps.blogspot.com/2009/11/xpath-2-collections-and-psychopath.html</link>
	<description>PsychoPath is setup as a framework for other applications to use and interface with, so it does not provide implementations for Collections, but depends on the application using it to provide the available collections.&lt;br /&gt;&lt;br /&gt;The current implementation uses a MAP interface, and expects the value to be a LIST interface with a DOM Document interface as the value for the list.   The StaticContext and DynamicContext provide the necessary information for loading the available collections.&lt;br /&gt;&lt;br /&gt;By sticking with interfaces adopters can determine how best to provide the functionality.  A thing to note, is that the XPath 2.0 specification says that the collections must be static during the lifetime of processing the xpath expression.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;/**&lt;br /&gt; * Retrieve the available collections&lt;br /&gt; * @since 1.1&lt;br /&gt; */&lt;br /&gt;public Map&amp;lt;String, List&amp;lt;Document&amp;gt;&amp;gt; get_collections();&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Set the available collections&lt;br /&gt; * @since 1.1&lt;br /&gt; */&lt;br /&gt;public void set_collections(Map&amp;lt;String, List&amp;lt;Document&amp;gt;&amp;gt; collections);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The map key is a URI that identifies the collection.  PsychoPath specifies the default collection URI to be:  http://www.w3.org/2005/xpath-functions/collection/default&lt;br /&gt;&lt;br /&gt;So one way in which a default collection can be provided to PsychoPath is as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;private void loadCollection2Default(DynamicContext dc) throws Exception {&lt;br /&gt;   DOMLoader domload = new XercesLoader();&lt;br /&gt;   URL fileURL = bundle.getEntry(&quot;/TestSources/bib.xml&quot;);&lt;br /&gt;   Document dom1 = domload.load(fileURL.openStream());&lt;br /&gt;   fileURL = bundle.getEntry(&quot;/TestSources/reviews.xml&quot;);&lt;br /&gt;   Document dom2 = domload.load(fileURL.openStream());&lt;br /&gt;   fileURL = bundle.getEntry(&quot;/TestSources/books.xml&quot;);&lt;br /&gt;   Document dom3 = domload.load(fileURL.openStream());&lt;br /&gt;   ArrayList&amp;lt;Document&amp;gt; arraylist = new ArrayList&amp;lt;Document&amp;gt;();&lt;br /&gt;   arraylist.add(dom1);&lt;br /&gt;   arraylist.add(dom2);&lt;br /&gt;   arraylist.add(dom3);&lt;br /&gt;   HashMap&amp;lt;String, List&amp;lt;Document&amp;gt;&amp;gt; map = new HashMap();&lt;br /&gt;   map.put(FnCollection.DEFAULT_COLLECTION_URI, arraylist);&lt;br /&gt;   map.put(COLLECTION2, arraylist);&lt;br /&gt;   dc.set_collections(map);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above code is just an example. It obviously needs refactoring but it demonstrates what needs to be done.   It will load the Documents that are to be part of the collection into an ArrayList, and then add this to a HashMap containing the same Documents as both the Default Collection URI, and in a separate URI that can be retrieved.  It then sets the collection on the Static/Dynamic Context.&lt;br /&gt;&lt;br /&gt;This allows for the following bit of XPath code to be done to count the number of Documents in the collection:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;fn:count(fn:collection(&quot;http://www.w3.org/2005/xpath-functions/collection2&quot;))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you want to count the number in the default collection, then this will work:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;fn:count(fn:collection())&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can also do more complex retrievals to get specific nodes from a collection as well:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&lt;br /&gt;&lt;br /&gt;fn:collection(&quot;http://www.w3.org/2005/xpath-functions/collection2&quot;)//*[text()[contains(.,&quot;TCP/IP)]]&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In which it will return any node that has a text node that contains TCP/IP in it.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;fn:Collection&lt;/span&gt; opens up a wide range of possibilities when working with multiple XML documents. Most people think that this is an XQuery or XSLT only implementation, but in reality Collections are provided from the XPath 2.0 standard.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;fn:collection&lt;/span&gt; will make its first appearance in PsychoPath 1.1M4...be looking for an announcement on PsychoPath 1.1M3 next week.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1585332946379204379-5336524877457061983?l=intellectualcramps.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 04 Nov 2009 18:06:16 +0000</pubDate>
	<author>noreply@blogger.com (David Carver)</author>
</item>
<item>
	<title>Chris Aniszczyk: I’m growing a ’stache</title>
	<guid isPermaLink="false">http://aniszczyk.org/?p=1388</guid>
	<link>http://aniszczyk.org/2009/11/04/im-growing-a-stache/</link>
	<description>&lt;p&gt;To the dismay of my stylist, I’m growing a ‘&lt;a href=&quot;http://www.urbandictionary.com/define.php?term=stache&quot;&gt;stache&lt;/a&gt; for &lt;a href=&quot;http://www.movember.com&quot;&gt;Movember&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/big-stache.jpg&quot;&gt;&lt;img src=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/big-stache-300x227.jpg&quot; title=&quot;big stache&quot; height=&quot;227&quot; width=&quot;300&quot; alt=&quot;big stache&quot; class=&quot;alignnone size-medium wp-image-1391&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.apache.org&quot;&gt;Apache&lt;/a&gt; may have their 10th anniversary, but Eclipse committers are growing ’staches for &lt;a href=&quot;http://www.movember.com&quot;&gt;prostate cancer awareness&lt;/a&gt; this month.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.movember.com&quot;&gt;&lt;img src=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/mo-eclipse.jpg&quot; title=&quot;Eclipse Moustache&quot; height=&quot;256&quot; width=&quot;256&quot; alt=&quot;Eclipse Moustache&quot; class=&quot;alignnone size-full wp-image-1390&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Since I’ve been involved with open source for quite awhile, I’m used to doing things in a transparent fashion. I decided to create a &lt;a href=&quot;http://www.surveymonkey.com/s.aspx?sm=pEBgcLwZ8CACmzeEFNYMBg_3d_3d&quot;&gt;poll&lt;/a&gt; for the type of moustache I should grow, seeking community input.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/moustache.gif&quot;&gt;&lt;img src=&quot;http://aniszczyk.org/wp-content/uploads/2009/11/moustache.gif&quot; title=&quot;moustache&quot; height=&quot;382&quot; width=&quot;420&quot; alt=&quot;moustache&quot; class=&quot;alignnone size-full wp-image-1389&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’m currently favoring the “major” … in the end, I hope I an rock a moustache like Orlando Bloom or Johnny Depp. So please, &lt;a href=&quot;http://www.surveymonkey.com/s.aspx?sm=pEBgcLwZ8CACmzeEFNYMBg_3d_3d&quot;&gt;vote&lt;/a&gt; for my ’stache and I’ll announce the results this Friday. While you’re voting, please take time to &lt;a href=&quot;http://us.movember.com/mospace/295712/&quot;&gt;donate&lt;/a&gt; if you have the resources.&lt;/p&gt;</description>
	<pubDate>Wed, 04 Nov 2009 13:46:32 +0000</pubDate>
</item>
<item>
	<title>Jacek Pospychala: Eclipse Ajax tools help is on wiki!</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-7131917596625047485.post-4245999033060546816</guid>
	<link>http://jacekonthings.blogspot.com/2009/11/ajax-tools-help-is-on-wiki.html</link>
	<description>When Eclipse Ajax Tools Framework (&lt;a href=&quot;http://www.eclipse.org&quot;&gt;ATF&lt;/a&gt;) re-started delivering builds some time ago, we scored some negative feedback that it's hard to find what actually ATF does, and how it should be used.&lt;br /&gt;&lt;br /&gt;This information, initially located in ATF help plug-in, was simply too hard to find. Now it's available at &lt;a href=&quot;http://wiki.eclipse.org/ATF/Help&quot;&gt;wiki&lt;/a&gt; and hopefull we'll be able to keep maintaining it both in wiki and eclipse help format.&lt;br /&gt;&lt;br /&gt;Check out sexy ATF help :-)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://wiki.eclipse.org/ATF/Help&quot;&gt;&lt;img src=&quot;http://lh6.ggpht.com/_WymYeMz82WE/SvF0_LtQKOI/AAAAAAAAC78/l8z7TgsA_6w/moollage.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;btw. missed the Movember story? &lt;a href=&quot;http://eclipsesource.com/blogs/2009/10/31/come-on-eclipse-lets-grow-a-mo/&quot;&gt;Ian explains&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7131917596625047485-4245999033060546816?l=jacekonthings.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 04 Nov 2009 12:45:57 +0000</pubDate>
	<author>noreply@blogger.com (Jacek Pospychala)</author>
</item>
<item>
	<title>Egon Willighagen: New Bioclipse Features: Kabsch Alignment, RMSD Distance and Tanimoto Simarlity Matrices</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5324486046611289266.post-1508559695880597603</guid>
	<link>http://chemicalrcp.blogspot.com/2009/11/new-bioclipse-features-kabsch-alignment.html</link>
	<description>We recently submitted a second paper on &lt;a href=&quot;http://www.bioclipse.net/&quot;&gt;Bioclipse&lt;/a&gt;, and have worked hard in the past two weeks on addressing the reviewers' questions (and we love these feature requests! See also these &lt;a href=&quot;http://bioclipse.blogspot.com/2009/11/download-pdbs-with-bioclipse.html&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;http://bioclipse.blogspot.com/2009/11/align-sequences-with-kalign-web-service.html&quot;&gt;blogs&lt;/a&gt;). One reviewer seemed very interested in seeing docking available in Bioclipse. While we do not have a full docking feature set up for Bioclipse, we do have functionality to deal with 3D structures, though our researched urged us to focus on the 2D side of cheminformatics so far.&lt;br /&gt;&lt;br /&gt;To strengthen our intentions towards the 3D cheminformatics world, we have implemented a few new features, using &lt;a href=&quot;http://cdk.sf.net/&quot;&gt;CDK&lt;/a&gt; functionality. For example, we added Kabsch aligment and the related RMSD between molecular structures implemented as both popup menus as well as manager methods. The manager method you can see in action in &lt;a href=&quot;http://www.myexperiment.org/workflows/937&quot;&gt;MyExperiment workflow 937&lt;/a&gt;, which you can download directly into Bioclipse with one simple command (see &lt;a href=&quot;http://chem-bla-ics.blogspot.com/2009/11/bioclipse-manager-for-myexperimentorg.html&quot;&gt;Bioclipse Manager for MyExperiment.org&lt;/a&gt;):&lt;br /&gt;&lt;pre&gt;var smileses = new Array(&quot;CC(C)C&quot;, &quot;CCCN&quot;, &quot;CCC=O&quot;);&lt;br /&gt;&lt;br /&gt;var unaligned = cdk.createMoleculeList();&lt;br /&gt;for (i=0; i&amp;lt;smileses.length; i++) {&lt;br /&gt;  mol = cdk.fromSMILES(smileses[i]);&lt;br /&gt;  mol = cdk.generate3dCoordinates(mol)&lt;br /&gt;  unaligned.add(mol);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var aligned = cdk.kabsch(unaligned)&lt;br /&gt;&lt;br /&gt;jmol.load(aligned.get(0));&lt;br /&gt;for (i=1; i&amp;lt;aligned.size(); i++) {&lt;br /&gt;  jmol.append(aligned.get(i));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Now, we do have to update the use of Jmol in Bioclipse, and a big overhaul is scheduled for the 2.4 released in February next year. But you get the idea.&lt;br /&gt;&lt;br /&gt;As said, there are two stories to adding this new functionality. Because we want all GUI interaction the user performs to be recordable (Scientist 1: &lt;i&gt;What did you do to get those nice results?&lt;/i&gt; Scientist 2: &lt;i&gt;I pushed that button in the that long menu.&lt;/i&gt; Scientist 1: &lt;i&gt;What button is that?&lt;/i&gt; Scientist 2: &lt;i&gt;Wait, I send you the BSL script with a Google Wave.&lt;/i&gt;)&lt;br /&gt;&lt;br /&gt;The managers that allow this recording is Bioclipse specific, and also the reason why it would not be trivial to make a general Bioclipse plugin for Eclipse... some Spring magic is used to inject the managers into the JavaScript language. Anyway, the second thing is to add a GUI element, like popup menus. Now, this is a particular area where Eclipse excels. Now, I did have to ask for the details, as I am not using this daily (I'm doing science, not IT), but Ola was kind enough to give me the pointers for it.&lt;br /&gt;&lt;br /&gt;The below configuration snippet links the pop up action to Bioclipse Navigator content (you know, where your MDL SD, CML, script and other files show up in Bioclipse). &lt;b&gt;&lt;i&gt;But&lt;/i&gt;&lt;/b&gt; only if I have selected 3 or more files! And, only if those files are actually some molecular content with 3D coordinates! And Bioclipse inherits this functionality by using the Eclipse platform.&lt;br /&gt;&lt;pre&gt;&amp;lt;menuContribution&lt;br /&gt;  locationURI=&quot;popup:org.eclipse.ui.popup.any?after=additions&quot;&amp;gt;&lt;br /&gt;  &amp;lt;command&lt;br /&gt;    commandId=&quot;net.bioclipse.cdk.ui.handlers.kabschAlignment&quot;&lt;br /&gt;    label=&quot;Perform Kabsch Alignment&quot;&lt;br /&gt;    icon=&quot;icons/molecule2D.png&quot;&amp;gt;&lt;br /&gt;    &amp;lt;visibleWhen&amp;gt;&lt;br /&gt;      &amp;lt;with variable=&quot;selection&quot;&amp;gt;&lt;br /&gt;        &amp;lt;count value=&quot;(2-&quot;/&amp;gt;&lt;br /&gt;        &amp;lt;iterate operator=&quot;and&quot; ifEmpty=&quot;false&quot;&amp;gt;&lt;br /&gt;          &amp;lt;adapt type=&quot;org.eclipse.core.resources.IResource&quot;&amp;gt;&lt;br /&gt;            &amp;lt;or&amp;gt;&lt;br /&gt;              &amp;lt;test property=&quot;org.eclipse.core.resources.contentTypeId&quot;&lt;br /&gt;                       value=&quot;net.bioclipse.contenttypes.cml.singleMolecule3d&quot;/&amp;gt;&lt;br /&gt;              &amp;lt;test property=&quot;org.eclipse.core.resources.contentTypeId&quot;&lt;br /&gt;                       value=&quot;net.bioclipse.contenttypes.cml.singleMolecule5d&quot;/&amp;gt;&lt;br /&gt;              &amp;lt;test property=&quot;org.eclipse.core.resources.contentTypeId&quot;&lt;br /&gt;                       value=&quot;net.bioclipse.contenttypes.mdlMolFile3D&quot;/&amp;gt;&lt;br /&gt;            &amp;lt;/or&amp;gt;&lt;br /&gt;          &amp;lt;/adapt&amp;gt;&lt;br /&gt;        &amp;lt;/iterate&amp;gt;&lt;br /&gt;      &amp;lt;/with&amp;gt;&lt;br /&gt;    &amp;lt;/visibleWhen&amp;gt;&lt;br /&gt;  &amp;lt;/command&amp;gt;&lt;br /&gt;&amp;lt;/menuContribution&amp;gt;&lt;/pre&gt;When Bioclipse is run, this looks like:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://1.bp.blogspot.com/_5vhaOf2_53I/SvFc27G20II/AAAAAAAAAsM/r4pKRCIZsw0/s1600-h/bioclipseKabsch.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_5vhaOf2_53I/SvFc27G20II/AAAAAAAAAsM/r4pKRCIZsw0/s320/bioclipseKabsch.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And the alignment results will nicely show up in a Jmol viewer (while it is implemented as an Eclipse editor, it is not yet):&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://2.bp.blogspot.com/_5vhaOf2_53I/SvFhxfJVGzI/AAAAAAAAAsU/n7HxPoiqVLs/s1600-h/bioclipseKabsch1.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_5vhaOf2_53I/SvFhxfJVGzI/AAAAAAAAAsU/n7HxPoiqVLs/s320/bioclipseKabsch1.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;The first screenshot also shows the new pop-up menus for calculating two matrices for 3 or more molecules. One is based on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Root_mean_square_deviation&quot;&gt;RMSD&lt;/a&gt; of the 3D atomic coordinats of the atoms in the &lt;a href=&quot;http://blog.rguha.net/?p=113&quot;&gt;MCSS&lt;/a&gt; (BTW, Asad's SMSD work is making its way into the CDK library, and will be available in a later Bioclipse version too.) and will create a distance matrix. The second new pop-up menu used the Tanimoto similarity measure based on CDK fingerprints on the selected chemical graphs. If the Bioclipse Statistics feature is installed, the created &lt;a href=&quot;http://en.wikipedia.org/wiki/Comma-separated_values&quot;&gt;CSV files&lt;/a&gt; will open up in a matrix editor:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://3.bp.blogspot.com/_5vhaOf2_53I/SvFjSjkhi5I/AAAAAAAAAsc/cv4_Ru3X6HU/s1600-h/bioclipseTanimoto.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_5vhaOf2_53I/SvFjSjkhi5I/AAAAAAAAAsc/cv4_Ru3X6HU/s320/bioclipseTanimoto.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5324486046611289266-1508559695880597603?l=chemicalrcp.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 04 Nov 2009 11:23:31 +0000</pubDate>
	<author>noreply@blogger.com (Egon Willighagen)</author>
</item>
<item>
	<title>Tom Schindl: The core-platform, e4 – some random thoughts</title>
	<guid isPermaLink="false">http://tomsondev.bestsolution.at/?p=567</guid>
	<link>http://tomsondev.bestsolution.at/2009/11/04/the-core-platform-e4-some-random-thoughts/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;At the Eclipse Summit there’s was a special symposia where discussion about Eclipse Foundation 2.0 happened. I’m not going into detail but as others already also found out (e.g. Bjorn) the investment into core platform is decreasing and too few people understand that without a properly maintained platform-core their business will be broken sooner than they imagine.&lt;/p&gt;
&lt;p&gt;One of the problems I see from the point of an indivual committer (I own my company so individual might not be the right term here) is: Making money from working on those low levels of the Eclipse Ecosystem stack is nearly impossible whereas gaining revenue from things up in the stack e.g. getting payed for adding features to Nebula for example is easier. This is the reason I had to reduce (=stop) my work investment in the 3.x (though I’m still fixing severe bugs when found it code I introduced into the repository).&lt;/p&gt;
&lt;p&gt;Looking at e4 the situation is similar because we are here also developing something which is at the bottom of the whole stack – well e4 is a new application runtime platform.&lt;br /&gt;
The difference to 3.x is that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I can at least justify my investment with an academic interest&lt;/li&gt;
&lt;li&gt;I believe with e4, eclipse is prepared for the future and without it other platforms will outpace it in the short-term and make it obsolete in the long-term when we talk about RCP/RIA-Applications (for IDEs it might be a bit different) which will make my Java, SWT, Eclipse, … know-how obsolete as well&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;but without an immediate use case or customer who needs certain features in e4 I can only spend my spare time into this. &lt;/p&gt;
&lt;p&gt;I still hope that I can find a customer or a business use case which makes it possible to also invest work time (1-2 days a week) into it (I think my in depth knowledge about the core design is something others might cause some trouble to get started) but at the moment it’s not looking very promising because like it is with 3.x people take the core for granted.&lt;/p&gt;
&lt;p&gt;Anyways Eclipse is with e4 getting once more an innovative core-platform and I’m proud to be and stay part of it – especially e4.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/tomsondev.wordpress.com/567/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/tomsondev.wordpress.com/567/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/tomsondev.wordpress.com/567/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/tomsondev.wordpress.com/567/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/tomsondev.wordpress.com/567/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/tomsondev.wordpress.com/567/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/tomsondev.wordpress.com/567/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/tomsondev.wordpress.com/567/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/tomsondev.wordpress.com/567/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/tomsondev.wordpress.com/567/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=tomsondev.bestsolution.at&amp;amp;blog=7995503&amp;amp;post=567&amp;amp;subd=tomsondev&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 04 Nov 2009 10:34:14 +0000</pubDate>
</item>
<item>
	<title>Bjorn Freeman-Benson: Hiring Developers at the Foundation</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-12783252.post-5692849907241204494</guid>
	<link>http://eclipse-projects.blogspot.com/2009/11/hiring-developers-at-foundation.html</link>
	<description>&lt;span style=&quot;font-style: italic;&quot;&gt;Here's a post I was working on back in May. Recent discussions around the tragedy of the commons has led me to resurrect it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The core Eclipse platform is the single most valuable, most important, thing the Eclipse community has going for it. (The second most valuable thing is the worldwide recognition of the Eclipse brand.) It is essential that the core frameworks (Platform, JDT, CDT, EMF, WTP) remain the best in the world. I'm sure that everyone agrees.&lt;br /&gt;&lt;br /&gt;Unfortunately, remaining the best in the world requires an investment of person hours which in turn requires an investment of money. It's no secret that the sugar daddies behind Eclipse have been reassigning their developers to other projects.&lt;sup&gt;1&lt;/sup&gt; I fully support these members in their profit-making efforts and so I have no complaints about this reallocation of their resources, none at all.&lt;br /&gt;&lt;br /&gt;At the same time, however, the viability of Eclipse requires continued investment. We can't just say &quot;more companies should participate&quot; - that hasn't worked. We can't just say &quot;members must participate&quot; - that hasn't worked either. And we can't just say &quot;someone will fix things&quot; - that hasn't worked either.The only solution I see to the &lt;a style=&quot;font-style: italic;&quot; href=&quot;http://en.wikipedia.org/wiki/Tragedy_of_the_commons&quot;&gt;tragedy of the commons&lt;/a&gt; is to hire developers at the Foundation to &lt;span style=&quot;font-style: italic;&quot;&gt;repair the commons&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;This Foundation-direct investment in the core platform would be good for the members (their most important bugs would get fixed) and it would be good for the committers (the paid developers would work on the important but dull bugs, while  the volunteer committers would work on the fun stuff). So why hasn't this been done yet?&lt;br /&gt;&lt;br /&gt;I believe the key blocker in the past has been the members not wanting to pay dues only for the Foundation to turn around and compete with the members - a valid and understandable concern. The solution is to let the members themselves control the paid developers: use the &lt;a href=&quot;http://www.eclipse.org/org/foundation/council.php#requirements&quot;&gt;Requirements Council&lt;/a&gt; to prioritize the bug list and require that the Foundation developers only work on bugs on that list. As the Requirements Council is made up of the members, the members would then be in control.&lt;br /&gt;&lt;br /&gt;If half the Foundation budget were allocated to projects (for example), there could easily be a dozen or more developers working hard to reduce that bug backlog. Win-win &lt;span style=&quot;font-style: italic;&quot;&gt;and&lt;/span&gt; the Foundation doesn't compete with its members.&lt;br /&gt;&lt;br /&gt;Your mileage may differ.&lt;br /&gt;&lt;div style=&quot;font-size: 70%;&quot;&gt;&lt;br /&gt;&lt;sup&gt;1&lt;/sup&gt; Some might want this declining investment to be left unspoken, but it's not a secret: you can't hide in an open source project.&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/12783252-5692849907241204494?l=eclipse-projects.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 04 Nov 2009 09:00:05 +0000</pubDate>
	<author>noreply@blogger.com (Bjorn Freeman-Benson)</author>
</item>
<item>
	<title>Paul Trevithick: OpenID Summit &amp; IIW IX Presentations</title>
	<guid isPermaLink="true">http://www.incontextblog.com/?p=456</guid>
	<link>http://www.incontextblog.com/?p=456</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.incontextblog.com/wp-content/uploads/2009/11/ULX-at-OpenID-Summit-Nov-2-2009.pdf&quot;&gt;Kantara ULX WG&lt;/a&gt; – a quick intro to what we’re trying to do&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.incontextblog.com/wp-content/uploads/2009/11/Relationship-Cards-IIW-Nov-3-2009.pdf&quot;&gt;Relationship cards&lt;/a&gt; – newbie intro&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Wed, 04 Nov 2009 07:19:45 +0000</pubDate>
</item>
<item>
	<title>OpenNTF: IBM Lotus Notes runs on Eclipse</title>
	<guid isPermaLink="true">http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-7XGA36</guid>
	<link>http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-7XGA36</link>
	<description>&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;&lt;b&gt;Planet Eclipse readers, &lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Chris Aniszczyk was so kind to add the
&lt;/font&gt;&lt;a href=&quot;http://blog.openntf.org/&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;OpenNTF
blog&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt; to &lt;/font&gt;&lt;a href=&quot;http://planeteclipse.org/&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Planet
Eclipse&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;a href=&quot;http://www.openntf.org/&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;OpenNTF&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;
is an alliance of members with the common interest to provide open source
applications and samples for IBM Lotus Notes and Domino. OpenNTF has been
extended over the last year to be an &lt;/font&gt;&lt;a href=&quot;http://openntf.org/Internal/home.nsf/dx/About_openNTF&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Alliance&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;
of equal members similar to OpenAjax. Legally cleared code goes in a catalog
with the last good releases, see for example the &lt;/font&gt;&lt;a href=&quot;http://www.openntf.org/catalogs/a2cat.nsf/Components.xsp&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Apache
catalog&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Since version 8.0 IBM Lotus Notes is
based on IBM Lotus Expeditor which is an extension (e.g. Derby database,
local web container) of the Eclipse rich client platform. This allows one
to extend the Lotus Notes client via Eclipse programming and opens up many
new capabilities for application development on the Lotus Notes platform.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;As platform Lotus Notes provides additional
value through document based storage, data replication with the Domino
server, built in security features and many built in collaborative functions
like email.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Here are a couple of links to help Eclipse
developers to get started with using Lotus Notes as their platform to run
Eclipse applications. &lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;First you need Lotus Notes 8.5.1. There
is a &lt;/font&gt;&lt;a href=&quot;https://www.ibm.com/developerworks/downloads/ls/dominodesigner/index.html?S_TACT=105AGX13&amp;amp;S_CMP=LSDL&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;free
version of Lotus Domino Designer&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;
available which is an (Eclipse based) development tool for Lotus Notes/Domino
developers to build applications via XPages and the classic rapid application
development capabilities. This version also comes with Lotus Notes 8.5.1.
As the web site describes &quot;Developers may use Domino Designer to build
applications that are run locally.&quot;&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;In order to start Lotus Notes from your
Eclipse IDE you can install the &lt;/font&gt;&lt;a href=&quot;http://www-10.lotus.com/ldd/lewiki.nsf/dx/Using_IBM_Lotus_Expeditor_Toolkit_6.2.1_with_IBM_Lotus_Notes_8.5.1&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Lotus
Expeditor Toolkit&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt; into your Eclipse
IDE which provides a UI to easily launch Lotus Notes from the IDE. Technically
it is also possible to launch Lotus Notes directly from the basic Eclipse
IDE.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;There are a couple of places where you
can find more information:&lt;/font&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/lotus/library/notes8-sidebar/&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Writing
plugins for Lotus Notes&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www-10.lotus.com/ldd/lewiki.nsf&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Lotus
Expeditor Wiki&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www-10.lotus.com/ldd/compappwiki.nsf/0/BF22A81A43BB3EC08525746700538236/%24FILE/Composite%20Applications%20in%20Notes.pdf&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Composite
Applications in Lotus Notes &lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www-10.lotus.com/ldd/compappwiki.nsf&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;IBM
Composite Applications Wiki&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www-10.lotus.com/ldd/ddwiki.nsf&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Lotus
Domino Designer Wiki&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Over the last weeks we've started to
release a couple of simpler samples showing how to use Eclipse for Notes.
Here are some of them:&lt;/font&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www.openntf.org/catalogs/a2cat.nsf/topicThread.xsp?action=openDocument&amp;amp;documentId=2DFAACEB82DE7876852576480020247F&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;File
navigator&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www.openntf.org/catalogs/a2cat.nsf/topicThread.xsp?action=openDocument&amp;amp;documentId=C6635B82CC8D73AB8525763C00200EBB&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Handwriting
for Lotus Sametime&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;- &lt;/font&gt;&lt;a href=&quot;http://www.openntf.org/catalogs/a2cat.nsf/topicThread.xsp?action=openDocument&amp;amp;documentId=B35B5108135948C685257616001E8B53&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;Rich
client for Delicious&lt;/font&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;These samples can be easily installed
into Lotus Notes via &lt;/font&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=fU7-DvDxubc&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;drag
&amp;amp; drop&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;. In addition to Eclipse
code OpenNTF has also applications built with other technologies like XPages
(e.g. &lt;/font&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=DuPrm93fhx8&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;).&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;&lt;b&gt;Planet Lotus readers, &lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;font size=&quot;2&quot; face=&quot;sans-serif&quot;&gt;I've created a new category &quot;Eclipse&quot;
for the OpenNTF blog so that only Eclipse related entries show up on Planet
Eclipse: http://www.openntf.org/blogs/openntf.nsf/stories.xml?OpenAgent&amp;amp;cat=Eclipse&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;</description>
	<pubDate>Wed, 04 Nov 2009 06:51:25 +0000</pubDate>
</item>
<item>
	<title>Benjamin Cabe: Slides from Eclipse Summit Europe 2009</title>
	<guid isPermaLink="false">http://blog.benjamin-cabe.com/?p=708</guid>
	<link>http://blog.benjamin-cabe.com/2009/11/03/slides-from-eclipse-summit-europe-2009</link>
	<description>&lt;p style=&quot;text-align: left;&quot;&gt;I’ve just uploaded the slides of the &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/sessions?id=1020&quot; target=&quot;_blank&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/sessions?id=1021&quot; target=&quot;_blank&quot;&gt;talks&lt;/a&gt; I gave at Eclipse Summit Europe last week on SlideShare.&lt;br /&gt;
Feel free to contact me if you have questions!&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;I enjoyed the event a lot (cool talks, cool food, cool people), and I already can’t wait for &lt;a href=&quot;http://www.eclipsecon.org/2010/&quot; target=&quot;_blank&quot; title=&quot;EclipseCon 2010&quot;&gt;EclipseCon 2010&lt;/a&gt;!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;/p&gt;&lt;div style=&quot;width: 425px; text-align: center;&quot; id=&quot;__ss_2415037&quot;&gt;&lt;a style=&quot;font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;&quot; href=&quot;http://www.slideshare.net/kartben/use-eclipse-technologies-to-build-a-modern-embedded-development-ide&quot; title=&quot;Use Eclipse Technologies to build a modern embedded development IDE&quot;&gt;Use Eclipse Technologies to build a modern embedded development IDE&lt;/a&gt;&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;width: 425px; text-align: center;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;width: 425px; text-align: center;&quot;&gt;&lt;a style=&quot;font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;&quot; href=&quot;http://www.slideshare.net/kartben/programming-for-lego-mindstorms-using-eclipse-to-take-you-back-to-your-childhood-2410716&quot; title=&quot;Programming for Lego Mindstorms using Eclipse to take you back to your childhood!&quot;&gt;Programming for Lego Mindstorms using Eclipse to take you back to your childhood!&lt;/a&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 22:45:00 +0000</pubDate>
</item>
<item>
	<title>Ekkehard Gentz: wonderful new world of UI design at eclipse</title>
	<guid isPermaLink="false">http://ekkescorner.wordpress.com/?p=1105</guid>
	<link>http://ekkescorner.wordpress.com/2009/11/04/wonderful-new-world-of-ui-design-at-eclipse/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;If you’re following &lt;a href=&quot;https://dev.eclipse.org/mailman/listinfo/e4-dev&quot; target=&quot;_blank&quot;&gt;e4 developer list discussions&lt;/a&gt; you know that there are some new tools and frameworks to design UI in eclipse. These are great news for all developers of RCP or RAP applications per ex. Sometimes discussions at e4 dev-list sounds like a war between different UI concepts – curious what will find the way into e4.&lt;/p&gt;
&lt;p&gt;Here are some interesting concepts of a (model-driven) UI:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wazaabi.org/&quot; target=&quot;_blank&quot;&gt;Wazaabi 2.0&lt;/a&gt; is a declarative UI framework based on live EMF models. Wazaabi provides a live update using EMF Reflexive Editor if running in the same VM. Please read more at &lt;a href=&quot;http://generic-concept.com/blogs/olivier/&quot; target=&quot;_blank&quot;&gt;Oliviers Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wiki.eclipse.org/E4/XWT&quot; target=&quot;_blank&quot;&gt;XWT&lt;/a&gt; is a declarative UI framework designed for Eclipse, based on XML. You can get more info also at &lt;a href=&quot;http://dev.eclipse.org/blogs/yvesyang/&quot; target=&quot;_blank&quot;&gt;Yves Yang’s Blog&lt;/a&gt;. There’s also a new WYSIWYG editor for XWT, which will become part of &lt;a href=&quot;http://www.eclipse.org/vep/&quot; target=&quot;_blank&quot;&gt;VE&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wiki.eclipse.org/E4/UI/Toolkit_Model&quot; target=&quot;_blank&quot;&gt;TM – Toolkit Mode&lt;/a&gt;l is an EMF model of the user interface (UI) components. TM provides a Model Editor built on the reflective Ecore editor and supports editing of both Toolkit Model resources and resources containing sample data.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wiki.eclipse.org/Incubator/Platform/UFacekit&quot; target=&quot;_blank&quot;&gt;UFacekit&lt;/a&gt; is another great Toolkit: UFacekits scope is to develop highlevel API and framework modules to develop applications in a widget-toolkit independent fashion which are small and easy to extend.&lt;/p&gt;
&lt;p&gt;If you have to design very complex and difficult SWT UI, then perhaps the only way is to use a UI Designer like Instantiations &lt;a href=&quot;http://www.instantiations.com/windowbuilder/swtdesigner/&quot; target=&quot;_blank&quot;&gt;SWT Designer&lt;/a&gt; – the tool with the best UI itself.&lt;/p&gt;
&lt;p&gt;From my POV there’s not the one-and-only tool which fits all your needs – it always depends from your project requirements and its good to have a choice.&lt;/p&gt;
&lt;p&gt;And its not the end of the story &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ekkescorner.files.wordpress.com/2009/07/128x128_rv.png?w=128&amp;amp;h=128&quot; title=&quot;redView (Riena EMF Dynamic Views for Business Applications)&quot; height=&quot;128&quot; width=&quot;128&quot; alt=&quot;redView (Riena EMF Dynamic Views for Business Applications)&quot; class=&quot;alignnone size-full wp-image-547&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The next weeks I’ll tell you the story about &lt;a href=&quot;http://redview.org&quot; target=&quot;_blank&quot;&gt;redView&lt;/a&gt; (&lt;strong&gt;Riena&lt;/strong&gt; – &lt;strong&gt;EMF&lt;/strong&gt; – &lt;strong&gt;Dynamic&lt;/strong&gt; Views for Business Applications): there’ll be screencasts, documentation, and demos (Eclipse Democamps in &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Frankfurt&quot; target=&quot;_blank&quot;&gt;Frankfurt&lt;/a&gt;, &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Hamburg&quot; target=&quot;_blank&quot;&gt;Hamburg&lt;/a&gt;, &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Vienna&quot; target=&quot;_blank&quot;&gt;Vienna&lt;/a&gt;, Open Source Expo &lt;a href=&quot;http://it-republik.de/konferenzen/openexpo/psecom,id,1.html&quot; target=&quot;_blank&quot;&gt;Karlsruhe&lt;/a&gt;, W-JAX &lt;a href=&quot;http://it-republik.de/jaxenter/wjax09/&quot; target=&quot;_blank&quot;&gt;Munich&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;First time I presented redView was at EclipseCon 2009 and it took much longer then expected to go public as Open Source project. Plug-ins and Sources will be available in november / december 2009 (promised !)&lt;/p&gt;
&lt;p&gt;redView’s focus is to provide an easy way for developers of business applications to design UI, share this with customers and use it in RCP applications. redView contains a WYSIWYG editor with Drag’n'Drop and also Properties from Outline, an engine to dynamically render the models, distributed editiing of design changes and live-pushing into running RCP clients using &lt;strong&gt;CDO&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;redView uses Riena Ridgets to separate UI and Control. redView provides localization of Labels, Enums and more. redView supports and uses Extension Points and Declarative Services. redView can bind to associations of abstract or super classes and embed different nested views depending from data type or even exclude composites depending on a visibility processor/descriptor.&lt;/p&gt;
&lt;p&gt;redView can be used for prototyping or in real applications or to get a nice UI for web services. redView’s WYSIWYG editor is something like the “&lt;em&gt;babelfish&lt;/em&gt;” between customer-requirements and developer-implementation.&lt;/p&gt;
&lt;p&gt;redView can be integrated into a complete modeling workflow using &lt;strong&gt;openArchitectureWare&lt;/strong&gt; (Eclipse Modeling MWE, Xpand, Xtend) and you’re able to generate a complete RCP application with Riena Navigation, LnF and UI from an UML or EMF model.&lt;/p&gt;
&lt;p&gt;redView is customizable and supports EMF Model Extensions, so you can have your own Validators, Visibility Descriptors and more.&lt;/p&gt;
&lt;p&gt;… and this is only the tip of the iceberg. stay tuned….&lt;/p&gt;
Posted in CDO, Eclipse, MDSD, openArchitectureWare, redview, Riena  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/ekkescorner.wordpress.com/1105/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/ekkescorner.wordpress.com/1105/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/ekkescorner.wordpress.com/1105/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/ekkescorner.wordpress.com/1105/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/ekkescorner.wordpress.com/1105/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/ekkescorner.wordpress.com/1105/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/ekkescorner.wordpress.com/1105/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/ekkescorner.wordpress.com/1105/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/ekkescorner.wordpress.com/1105/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/ekkescorner.wordpress.com/1105/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=ekkescorner.wordpress.com&amp;amp;blog=7691743&amp;amp;post=1105&amp;amp;subd=ekkescorner&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 22:03:26 +0000</pubDate>
</item>
<item>
	<title>Virgil Dodson: BIRT/JBoss Webinar Thursday</title>
	<guid isPermaLink="true">http://www.birt-exchange.org/blog/2009-11-03/birtjboss-webinar-thursday/</guid>
	<link>http://www.birt-exchange.org/blog/2009-11-03/birtjboss-webinar-thursday/</link>
	<description>&lt;p&gt;This Thursday, November 5th, there will be a joint webinar from RedHat and Actuate demonstrating integration between BIRT and JBoss.  The webinar will take place online and is titled, &lt;em&gt;Using JBoss and BIRT to Develop and Deploy Rich Internet Applications&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;If you are using JBoss and are interested in how BIRT might integrate, then attend this webinar where we will show several options.&lt;/p&gt;
&lt;p&gt;More information can be found at &lt;a href=&quot;http://www.birt-exchange.com/be/info/birt-jboss/?tracklink&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.birt-exchange.com/be/info/birt-jboss/?tracklink&quot; target=&quot;_blank&quot;&gt;http://www.birt-exchange.com/be/info/birt-jboss/?tracklink&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 03 Nov 2009 22:00:20 +0000</pubDate>
</item>
<item>
	<title>Ian Bull: An Introduction to OSGi in Victoria</title>
	<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3326</guid>
	<link>http://eclipsesource.com/blogs/2009/11/03/an-introduction-to-osgi-in-victoria/</link>
	<description>&lt;p&gt;Have you heard about OSGi but are not sure about the details?  Are you wondering what this &lt;strong&gt;brand new &lt;/strong&gt;Java technology is all about?  Are you concerned that its footprint is too large for your specific application?  Are you not sure if OSGi solves a problem you have? Is OSGi a no go for you because you don’t use the Standard Widget Toolkit (SWT) or any other Eclipse technology?&lt;/p&gt;
&lt;p&gt;If you considered answering yes to any of these questions, or are just curious about OSGi… please join us at the &lt;a href=&quot;http://www.mosabuam.com/vijug/blog/&quot;&gt;Vancouver Island Java User Group (VIJUG)&lt;/a&gt; on November 26th in Victoria, BC where I will be giving a introduction to OSGi. You might be surprised to learn that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The OSGi specification is over 10 years old&lt;/li&gt;
&lt;li&gt;OSGi was originally designed for embedded devices (and it’s small footprint reflects this)&lt;/li&gt;
&lt;li&gt;OSGi is a framework that enables highly modular systems and a consistent programming model whether you are developing for the server, client or mobile devices&lt;/li&gt;
&lt;li&gt;While Eclipse does make use of OSGi, there is no requirement on any Eclipse technologies when using OSGi.  There are even several implementations of OSGi specification to choose from&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information, please see the announcement &lt;a href=&quot;http://www.mosabuam.com/vijug/blog/2009/11/03/november-2009-vijug-meeting-osgi-framework/&quot;&gt;page&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Tue, 03 Nov 2009 21:54:40 +0000</pubDate>
</item>
<item>
	<title>Miles Parker: Zest with a Twist</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1706439134994847071.post-7628004744503584245</guid>
	<link>http://feedproxy.google.com/~r/MetaBeta/~3/99nwUGxqrUc/zest-with-twist.html</link>
	<description>&lt;a href=&quot;http://www.zest.com/zest_tangerine_mango.html&quot;&gt;&lt;img src=&quot;http://www.zest.com/images/zest_content_tm.jpg&quot; style=&quot;margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 400px;&quot; id=&quot;navImage5&quot; /&gt;&lt;/a&gt;I found this googling a bit on the history of Zest soap, a product of Proctor &amp;amp; Gamble, while committing a bunch of stuff to sourceforge's god-awful slow SVN servers. You were perhaps thinking that this was a post on that Eclipse GEF project also referred to as Zest? Time to broaden our horizons a bit and explore the bleeding edge of consumer culture. Which brings to my mind Gillette, in the process subjecting me (and now you) to that little wince that we associate with razors and blood. But Gillette's products hardly ever leave you bleeding. I wouldn't make a very good add copy-writer, I guess. Though, I mean, yeah, fully disposable razors really make me wince but is a keeper razor with disposable blades truly the best a man can get? A bit of a dystopic message, huh?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;But here's a much more uplifting one. I think. Well maybe not, but at least it does kind of make you think:&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_K9MQQrsKS7A/SvCdZ_xI21I/AAAAAAAAAyk/5fasmuYZUYk/s1600-h/Moments.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_K9MQQrsKS7A/SvCdZ_xI21I/AAAAAAAAAyk/5fasmuYZUYk/s320/Moments.png&quot; alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399989023157050194&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Any guesses what that's about? But first, back to the soap. (Actually, it's not really soap, it's detergent, but that doesn't sound like something we would want to put on our bodies, so it's better to call it soap.) I'm currently kind of a Dr. Bronner's guy, so perhaps I'm not qualified to make a judgement about the merits of this particular branding, but I do have a few thoughts here..&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Was there something that P&amp;amp;G felt people were missing from the whole Zest experience?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If so, is it likely that it was the experience of smelling like a Mango &lt;i&gt;and&lt;/i&gt; a Tangerine?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Is that say second best to the experience of using a Gillette razor?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What are these stimulating effects they speak of? I mean, that one actually sounds like a real selling point to me. They should hype that one even more, because personally the scent thing isn't drawing me in. Maybe I'm more of a AXE guy. On second thought, yech, maybe &lt;a href=&quot;http://en.wikipedia.org/wiki/Axe_(grooming_product)#PR_controversies&quot;&gt;not&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If I were a marketing genius could I figure out a way to do the whole give away the razor and sell the blades thing only with soap? Because I can't figure out how to do that with Open Source software.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;That bit about Open Source was just an attempt to keep folks who think there might be a tech component buried in here reading. I'll give you a hint about that.. The latest behavioral economics research suggests that contrary to the assumptions of classical economics, people vastly over-estimate the value of sunk costs. (Truthfully, I'm not aware of any actual research on that, but my guess is that it exists.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I wonder if the P&amp;amp;G guys ever do pro bono work? As I intimated in my last blog post, academic conferences and societies could sure use a lot of help in that regard. It's all about branding folks!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Perhaps I &lt;i&gt;am&lt;/i&gt; a marketing genius, and this whole Eclipse thing was just a way of ingratiating myself into a group of soap use opinion leaders so that I can put the viral marketing wammy on them. (If you trust folks like us to recommend a new computer to you, perhaps you'd trust us to recommend other consumer products. Recent consumer market segmentation reveals that those old stereotypes of the computer guy -- with the doritos droppings flecking his week old beard stubble, slightly smelly armpits, and a vaguely hostile or at minimum subtly patronizing attitude -- have gone by the way side, to be replaced by the image of that nice young man on the Mac ads. Oh how grateful I am to Apple marketing in so many ways. True story: one of the first things my wife asked me when we first met on a buddhist internet dating site (I kid you not) was wether I was a Mac guy or PC guy. She's a lawyer, not a techy, but I just had the realization that what she was really asking me was wether I was like that nice guy or more like John Hodgman. In fact, if you added Hodgman's caustic wit to Mac guy's lovable and so approachable mien you'd have me to a tee. Or at least that was what I was advertising...&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_K9MQQrsKS7A/SvCdgF2P4EI/AAAAAAAAAys/8SMYXre2lwo/s1600-h/MomentsFull.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_K9MQQrsKS7A/SvCdgF2P4EI/AAAAAAAAAys/8SMYXre2lwo/s320/MomentsFull.png&quot; alt=&quot;&quot; style=&quot;float: right; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 320px; height: 160px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399989127868309570&quot; /&gt;&lt;/a&gt;And, yep as most of you probably guessed, the profound message above comes from the mangos and razor blades folks. Making fun of advertising is like shooting fish in a barrel, but it does make me think about how we construct our views about reality. I mean, this stuff works, and our perceptions about the world around us are pretty much constructed by our own preconceptions even when they aren't so coarsely engineered. The thoughts we carry around with us and give so much importance to aren't really that much more sophisticated then the message above, but we still end up giving them much more credibility than we do our own direct experience. Weird..&lt;br /&gt;&lt;br /&gt;Anyway, here's the part about GEF Zest. You folks that stuck it out must be feeling pretty good about your choice now, eh? That's the thing. Any heuristic -- say the one about sunk costs -- ends up being wrong eventually.&lt;br /&gt;&lt;br /&gt;Zest has been both a source of joy and sorrow for me as I've worked with it over the last year or two. I'm thinking that that experience is pretty common among those of us who are spending a lot of time with relatively bleeding edge software. We're sucked in by tremendous potential for offering functionality that we wouldn't have been able to do otherwise. We make a ton of progress really rapidly. Then we run into some limitations, and spend weeks hacking around trying to get rather simple things working. It never fails to amaze me how quickly I can get complicated and powerful things working and then how long it takes to refine those things down to something that I actually feel good about presenting to end-users. The question for me always comes down to wether the enormous productivity and feature gains are worth the (seemingly inevitable to me at the moment) pain. Why, it's just like when I was making the decision wether to switch from Mach II to Mach IV. And should I get the kind where you can put a battery in it? No, it's actually nothing like that.&lt;br /&gt;&lt;br /&gt;Zest is a particularly interesting case in point, because of a design philosophy that favors encapsulation of functionality and ease of use for common issues over flexibility and integration with other components. For example, the first versions made it really impossible to use one's own GEF figures without extensive hacking -- essentially copying a significant part of the source tree. That has since been changed -- thanks Ian! -- and there is now a nice feature provider capability. But it seems like the default API decisions always err toward the side of marking things as not accessible, to the point of deliberately locking down some functionality that could be exposed. There are really good arguments for doing things this way. Some of this graph stuff is inherently complicated and difficult to grok, and often it doesn't make sense to expose a bunch of stuff that people won't be able to override properly anyway. But it can get really frustrating especially when doing implementations that are extending the framework.&lt;br /&gt;&lt;br /&gt;One thing I've really been struggling with since I started using Zest is the issue of layout sizing. Zest's approach is to try to fit the graph into the space allotted, which makes sense for the majority of cases. But I want the layout to grab the amount of space that it would ideally need. What I've ended up doing is writing my own layout progress monitor that dynamically adjusts the size of the underlying scroll pane as a result of the outcome of the zest layout. If the graph nodes are too scrunched together, then I increase the size in increments that are my best guess of how much more space the layout needs.&lt;br /&gt;&lt;br /&gt;So this ends up being a sort of weird approach as I've basically got two layouts playing off of each other. I've spent quite a bit of time mucking with it, and it's still not doing exactly what I want, but it's getting closer. I've been trying to also get the layout to shrink when the layout is too big, but that hasn't been working so well. I've been ending up with the two algorithms fighting each other so that the graph layout ends up yo-yoing back and forth between two sizes. Pretty funny the first time it happened, but it's getting a bit old now. Anyway, for those of you who want to try this out, the core code is below.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;            Graph graph = this.visualEditor.getBehaviorViewer().getGraphControl();&lt;br /&gt;            List&amp;lt;Rectangle&amp;gt; figures = new ArrayList&amp;lt;Rectangle&amp;gt;();&lt;br /&gt;            for (Object node : graph.getNodes()) {&lt;br /&gt;                GraphNode graphNode = (GraphNode) node;&lt;br /&gt;                Rectangle newRectangle = new Rectangle(graphNode.getLocation(), graphNode.getSize());&lt;br /&gt;                figures.add(newRectangle.expand(insets));&lt;br /&gt;            }&lt;br /&gt;            List&amp;lt;Rectangle&amp;gt; remaning = new ArrayList&amp;lt;Rectangle&amp;gt;(figures);&lt;br /&gt;            Map&amp;lt;Integer, Collection&amp;lt;Integer&amp;gt;&amp;gt; columnIntersects = new HashMap&amp;lt;Integer, Collection&amp;lt;Integer&amp;gt;&amp;gt;();&lt;br /&gt;            Map&amp;lt;Integer, Collection&amp;lt;Integer&amp;gt;&amp;gt; rowIntersects = new HashMap&amp;lt;Integer, Collection&amp;lt;Integer&amp;gt;&amp;gt;();&lt;br /&gt;            for (Rectangle rectangle1 : figures) {&lt;br /&gt;                remaning.remove(rectangle1);&lt;br /&gt;                for (Rectangle rectangle2 : remaning) {&lt;br /&gt;                    Rectangle r1 = new Rectangle(rectangle1);&lt;br /&gt;                    Rectangle r2 = new Rectangle(rectangle2);&lt;br /&gt;                    Rectangle intersect = r1.intersect(r2);&lt;br /&gt;&lt;br /&gt;                    if (rectangle1.y != rectangle2.y) {&lt;br /&gt;                        if (intersect.height &amp;gt; 0) {&lt;br /&gt;                            Collection&amp;lt;Integer&amp;gt; column = columnIntersects.get(intersect.x);&lt;br /&gt;                            if (column == null) {&lt;br /&gt;                                column = new ArrayList&amp;lt;Integer&amp;gt;();&lt;br /&gt;                                columnIntersects.put(intersect.x, column);&lt;br /&gt;                            }&lt;br /&gt;                            column.add(intersect.height);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                    if (rectangle1.x != rectangle2.x &amp;amp;&amp;amp; intersect.width &amp;gt; 0) {&lt;br /&gt;                        Collection&amp;lt;Integer&amp;gt; row = rowIntersects.get(intersect.y);&lt;br /&gt;                        if (row == null) {&lt;br /&gt;                            row = new ArrayList&amp;lt;Integer&amp;gt;();&lt;br /&gt;                            rowIntersects.put(intersect.y, row);&lt;br /&gt;                        }&lt;br /&gt;                        row.add(intersect.width);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            int uniqueColumns = columnIntersects.keySet().size();&lt;br /&gt;            int uniqueRows = rowIntersects.keySet().size();&lt;br /&gt;            int maxOverlapWidth = 0;&lt;br /&gt;            int maxOverlapHeight = 0;&lt;br /&gt;            for (Entry&amp;lt;Integer, Collection&amp;lt;Integer&amp;gt;&amp;gt; entry : columnIntersects.entrySet()) {&lt;br /&gt;                int overlapHeight = 0;&lt;br /&gt;                for (Integer columnIntersect : entry.getValue()) {&lt;br /&gt;                    if (columnIntersect &amp;gt; overlapHeight) {&lt;br /&gt;                        overlapHeight = columnIntersect;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                overlapHeight = overlapHeight * uniqueRows;&lt;br /&gt;                if (overlapHeight &amp;gt; maxOverlapHeight) {&lt;br /&gt;                    maxOverlapHeight = overlapHeight;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            for (Entry&amp;lt;Integer, Collection&amp;lt;Integer&amp;gt;&amp;gt; entry : rowIntersects.entrySet()) {&lt;br /&gt;                int overlapWidth = 0;&lt;br /&gt;                for (Integer rowIntersect : entry.getValue()) {&lt;br /&gt;                    if (rowIntersect &amp;gt; overlapWidth) {&lt;br /&gt;                        overlapWidth = rowIntersect;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                overlapWidth = overlapWidth * uniqueColumns;&lt;br /&gt;                if (overlapWidth &amp;gt; maxOverlapWidth) {&lt;br /&gt;                    maxOverlapWidth = overlapWidth;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            if (maxOverlapWidth != 0 || maxOverlapHeight != 0) {&lt;br /&gt;                nextSize.setSize(new Dimension(nextSize.width + maxOverlapWidth, nextSize.height + maxOverlapHeight));&lt;br /&gt;                visualEditor.getBehaviorViewer().applyLayout();&lt;br /&gt;            } else {&lt;br /&gt;                resizing = false;&lt;br /&gt;            }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;While it sounds like I'm mostly complaining, in fact on balance Zest has been an enormously cool component and one that I've relied really heavily on. That reliance does bring an extra level of frustration when the development and support level isn't ideal. But the benefits still far outweigh the cots.&lt;br /&gt;&lt;br /&gt;What did any of that have to do with soap? Nothing.&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1706439134994847071-7628004744503584245?l=milesparker.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/QYtPlfUwbkK3wAAS-BTA-sBbtqM/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/QYtPlfUwbkK3wAAS-BTA-sBbtqM/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/QYtPlfUwbkK3wAAS-BTA-sBbtqM/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/QYtPlfUwbkK3wAAS-BTA-sBbtqM/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/MetaBeta/~4/99nwUGxqrUc&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 03 Nov 2009 21:48:00 +0000</pubDate>
	<author>noreply@blogger.com (Miles Parker)</author>
</item>
<item>
	<title>John Graham: On purpose, an emergency</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1084075077187529390.post-5790608761086449497</guid>
	<link>http://osmusings.blogspot.com/2009/11/on-purpose-emergency.html</link>
	<description>&lt;p style=&quot;margin-bottom: 0in;&quot;&gt;The frantic pounding on your door jolts you awake, and noticing that it is three in the morning doesn't calm your nerves. You peek out the window, not really knowing what to expect, but any speculation  is immediately cut off by the fire you see climbing up the side of your house. Before you can react,  a man appears (the one who was pounding on the door, you guess: funny how the mind can still reason so quickly under such stress), takes your garden hose and begins to spray water onto the fire. By the time you stumble out the front door, the fire is almost out. Panting, you stumble up to him and stare at the scorched wall. “I was on my way home from work,” he says, “and I saw the fire. Lucky I put it out before it spread.” You thank him for helping, and offer a reward. He turns down the offer, saying he was just glad to help.  &lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;Of course you would be grateful to someone who saved your home from a fire. But how would you feel if you later learned that he had also set the fire? What kind of lunatic would do that? Certainly you would not feel like offering a reward under those circumstances.  &lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;Yet we routinely praise and reward people who do the same type of thing in software business. A sales person runs into trouble with a customer, waits until the customer is really upset (due to inaction), and then “helps” to solve the problem by short-circuiting company procedures to “do the right thing for the customer.” A software team waits until late in the project to announce that certain serious problems – which they had known about for a long while – are going to cause a schedule slip. The team then makes a heroic effort to finish, and is thanked afterward for “getting it done.”  We are happy when a vendor fixes a problem in their software, after much complaining and arguing from our side, even though all the vendor did was fix a problem it created. Whether through ignorance, incompetence, lack of planning or gamesmanship (it is easier to force an issue with a preferred solution if time to consider the problem is artificially cut), we are are grateful that the problem was solved and that the team “pulled together” at the crucial point. We breath a sigh of relief and move on, waiting for the next fire.&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;But we fail badly each and every time we move on with first looking back. We fail to ask the key question: How did the emergency arise in the first place? In the heat of the emergency, such questions are usually cut off with well-intentioned statements like “this is not the time to point fingers” (many times by those who created the emergency, for obvious reasons).  Although that is probably right (during the emergency you need to react to address the challenge), it does not mean that you shouldn't ask in retrospect.  You have lost a chance to learn and avoid future emergencies for the same reasons, and you have set the stage to reinforce the bad behavior that relies on such emergencies to get things done.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1084075077187529390-5790608761086449497?l=osmusings.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 21:44:42 +0000</pubDate>
	<author>jygramas@gmail.com (John Graham)</author>
</item>
<item>
	<title>Kim Moir: Now I see IU, now IU don't</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-25023280.post-3975501941668717375</guid>
	<link>http://relengofthenerds.blogspot.com/2009/11/now-i-see-iu-now-iu-dont.html</link>
	<description>Eclipse 3.6M3 went out the door over the weekend, along with a lot of Halloween candy.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvB9CUZ81FI/AAAAAAAAAhk/HFz0qYMON2g/s1600-h/IMG_2662.JPG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvB9CUZ81FI/AAAAAAAAAhk/HFz0qYMON2g/s320/IMG_2662.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399953432007988306&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sometimes, you can have too much Halloween candy.  And sometimes, you can have too many IUs in your p2 repo. Don't believe me - just look at this repo with bogus bundles - scary!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvB7J6sS_8I/AAAAAAAAAhc/CliooPBN3PM/s1600-h/IMG_2625.JPG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_cHqYDQknqAI/SvB7J6sS_8I/AAAAAAAAAhc/CliooPBN3PM/s320/IMG_2625.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399951363521314754&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Both scenarios can cause your friendly neighbourhood release engineer pain.  This is unusual because we're a very pain tolerant people.  To alleviate the suffering, the p2 team added an Ant task in 3.6M3 that allows you to remove bundles from your repo. As much as I love spending quality time at the command line modifying metadata, Ant tasks that automate tedious jobs are even better.&lt;br /&gt;&lt;br /&gt;The p2.remove.iu task will remove both the metadata and the bundle from the repository for a specified IU.  For example, if you had bogus packed com.ibm.icu.* bundles in your repo, this task would remove them.&lt;br /&gt;&lt;br /&gt;&amp;lt;p2.remove.iu&amp;gt;&lt;br /&gt;   &amp;lt;repository location=&quot;file://${reposource}&quot; /&amp;gt;&lt;br /&gt;   &amp;lt;iu id=&quot;com.ibm.icu&quot; artifacts=&quot;(format=packed)&quot; /&amp;gt;&lt;br /&gt;   &amp;lt;iu id=&quot;com.ibm.icu.base&quot; artifacts=&quot;(format=packed)&quot; /&amp;gt;&lt;br /&gt;   &amp;lt;iu id=&quot;com.ibm.icu.source&quot; artifacts=&quot;(format=packed)&quot; /&amp;gt;&lt;br /&gt;   &amp;lt;iu id=&quot;com.ibm.icu.base.source&quot; artifacts=&quot;(format=packed)&quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/p2.remove.iu&amp;gt;&lt;br /&gt;&lt;br /&gt;This task is useful if you'd like to remove some built time bundles from your repo.  Or just correct a mistake after a release.  It happens.  In any case, it's all good.  Almost as tasty as chocolate.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_cHqYDQknqAI/SvCBrOGAlxI/AAAAAAAAAhs/Skzwfdrxizk/s1600-h/IMG_2665.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_cHqYDQknqAI/SvCBrOGAlxI/AAAAAAAAAhs/Skzwfdrxizk/s320/IMG_2665.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399958532734883602&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Related bugs&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=289866&quot;&gt;&lt;span id=&quot;summary_alias_container&quot;&gt;&lt;span id=&quot;short_desc_nonedit_display&quot;&gt;Support excluding bundles when running p2.process.artifacts task&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=291424&quot;&gt;p2.remove.iu task should have an option to specify to remove packed file only&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=272140&quot;&gt;ICU jars at Eclipse 3.5 update site have size of 0&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/25023280-3975501941668717375?l=relengofthenerds.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 19:55:21 +0000</pubDate>
	<author>noreply@blogger.com (Kim Moir)</author>
</item>
<item>
	<title>Ian Skerrett: Eclipse Days in Toronto</title>
	<guid isPermaLink="false">http://ianskerrett.wordpress.com/?p=1193</guid>
	<link>http://feedproxy.google.com/~r/IanSkerrett/~3/LMAw8i05SEc/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Developers in Toronto have a great opportunity to participate in back-to-back Eclipse events: &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_Modeling_Day&quot;&gt;Eclipse Modeling&lt;/a&gt; and &lt;a href=&quot;http://wiki.eclipse.org/EclipseRT_Day&quot;&gt;EclipseRT Day&lt;/a&gt; on November 18 &amp;amp; 19.    Think of it as a mini-EclipseCon but with polite Canadians saying ‘eh’, ‘pop’ and ‘about’.&lt;/p&gt;
&lt;p&gt;Modeling and Eclipse runtime technology (including OSGi and Equinox) are two of the most innovative areas in the Eclipse community.   Speaking at this event will be some of the project leaders and committers for these Eclipse projects.  There will even be some of the e4 committers talking about the next generation of Eclipse.&lt;/p&gt;
&lt;p&gt;If you are an Eclipse user and live near Toronto, you should seriously consider attending.   Even if you live outside of Toronto, two days of free Eclipse related session in one place is a great opportunity to learn more about Eclipse technology.&lt;/p&gt;
&lt;p&gt;There is no fee to attend but you need to pre-register via e-mail.  You can &lt;a href=&quot;mailto:eclipsert_toronto@eclipse.org;eclipse_modeling_toronto@eclipse.org?subject=Register for both EclipseRT and Modeling Day in Toronto&quot;&gt;pre-register for both days&lt;/a&gt; or you can also register for just the &lt;a href=&quot;mailto:eclipsert_toronto@eclipse.org?subject=Register for EclipseRT Day in Toronto&quot;&gt;EclipseRT Day&lt;/a&gt; or the &lt;a href=&quot;mailto:eclipse_modeling_toronto@eclipse.org?subject=Register for Eclipse Modeling Day in Toronto&quot;&gt;Modeling Day.&lt;/a&gt;&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/ianskerrett.wordpress.com/1193/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/ianskerrett.wordpress.com/1193/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/ianskerrett.wordpress.com/1193/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/ianskerrett.wordpress.com/1193/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/ianskerrett.wordpress.com/1193/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/ianskerrett.wordpress.com/1193/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/ianskerrett.wordpress.com/1193/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/ianskerrett.wordpress.com/1193/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/ianskerrett.wordpress.com/1193/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/ianskerrett.wordpress.com/1193/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=ianskerrett.wordpress.com&amp;amp;blog=405862&amp;amp;post=1193&amp;amp;subd=ianskerrett&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 16:48:52 +0000</pubDate>
</item>
<item>
	<title>Bob Balfe: Android will kill the iPhone</title>
	<guid isPermaLink="false">http://blog.balfes.net/?p=884</guid>
	<link>http://feedproxy.google.com/~r/Balfesnet/~3/-qaenShInks/</link>
	<description>&lt;p&gt;I am sure many have seen the press on Android and all of the features it “&lt;a href=&quot;http://phones.verizonwireless.com/motorola/droid/&quot;&gt;does better&lt;/a&gt;” than the iPhone.&lt;/p&gt;
&lt;p&gt;The one feature I think that will ultimately kill the iPhone is the &lt;a href=&quot;http://developer.android.com/sdk/index.html&quot;&gt;Android SDK&lt;/a&gt;.  You can download the Android SDK for Windows, Mac, and Linux and you can also just install it into your &lt;a href=&quot;http://developer.android.com/sdk/eclipse-adt.html&quot;&gt;existing Eclipse IDE&lt;/a&gt;.  Just having this available to all Eclipse developers is HUGE.  This means you can start playing immediately without owning a specific OS/Computer - like a Mac.&lt;/p&gt;
&lt;p&gt;This is a consistent mistake Apple makes over and over and it just shocks me, now Google is taking advantage of it.  Don’t get me wrong I think Apple makes great products but the entire “we need control” mentality just exhausts everyone.  If the Android devices end up being better hardware than the iPhone then I don’t see how iPhone will be able to compete.  I know there is a lot of talk about the iPhone becoming more open and moving to other carriers but I think it just may be too little too late - maybe.  Android is around the corner Apple - get moving!&lt;/p&gt;



&lt;p class=&quot;technorati-tags&quot;&gt;technorati tags: &lt;a href=&quot;http://technorati.com/tag/Android&quot; class=&quot;technorati-link&quot; rel=&quot;tag&quot; target=&quot;_blank&quot;&gt;Android&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/eclipse&quot; class=&quot;technorati-link&quot; rel=&quot;tag&quot; target=&quot;_blank&quot;&gt;eclipse&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/iPhone&quot; class=&quot;technorati-link&quot; rel=&quot;tag&quot; target=&quot;_blank&quot;&gt;iPhone&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/mQiWNx34rar9ewcIjBdGCyOp080/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/mQiWNx34rar9ewcIjBdGCyOp080/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/mQiWNx34rar9ewcIjBdGCyOp080/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/mQiWNx34rar9ewcIjBdGCyOp080/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/Balfesnet/~4/-qaenShInks&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 03 Nov 2009 16:33:39 +0000</pubDate>
</item>
<item>
	<title>Chris Aniszczyk: Git Mirrors at Eclipse.org</title>
	<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3322</guid>
	<link>http://eclipsesource.com/blogs/2009/11/03/git-mirrors-at-eclipse-org/</link>
	<description>&lt;p&gt;Good news everyone, Git &lt;a href=&quot;http://dev.eclipse.org/git/&quot;&gt;mirrors&lt;/a&gt; are going live at Eclipse.org&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dev.eclipse.org/git/&quot;&gt;&lt;img src=&quot;http://eclipsesource.com/blogs/wp-content/uploads/2009/11/gitmirrors-300x93.png&quot; title=&quot;Eclipse Git Mirrors&quot; height=&quot;93&quot; width=&quot;300&quot; alt=&quot;Eclipse Git Mirrors&quot; class=&quot;alignnone size-medium wp-image-3323&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please give them a whirl.&lt;/p&gt;
&lt;p&gt;If you find any issues, please state them on this &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=280583&quot;&gt;bug&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Tue, 03 Nov 2009 15:04:43 +0000</pubDate>
</item>
<item>
	<title>Stephane Bouchet: Updates from ESE</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-2725710657746694091.post-5875660079137582842</guid>
	<link>http://sbouchet-eef.blogspot.com/2009/11/updates-from-ese.html</link>
	<description>Hi all,&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://eef-modeling.blogspot.com/2009/11/back-from-ese-2009.html&quot;&gt;goulwen is just coming back from ESE&lt;/a&gt; and we are moving EEF forward :)&lt;br /&gt;&lt;br /&gt;In response to &lt;a href=&quot;http://intellectualcramps.blogspot.com/2009/11/making-it-easy-for-contributors-to.html&quot;&gt;David&lt;/a&gt;, i created a page in the &lt;a href=&quot;http://wiki.eclipse.org/EEF_Sources&quot;&gt;wiki&lt;/a&gt; to explain briefly were to get the sources, using this &lt;a href=&quot;http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.emf/org.eclipse.emf.eef/releng/psfs/eef.cvs.psf?root=Modeling_Project&amp;amp;view=log&quot;&gt;PSF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We started a cvs branch to add some new functionality to EEF, too.&lt;br /&gt;The current stable version resides in the v0.7.1_BRANCH.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2725710657746694091-5875660079137582842?l=sbouchet-eef.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 14:12:00 +0000</pubDate>
	<author>noreply@blogger.com (Stéphane Bouchet)</author>
</item>
<item>
	<title>BioClipse: Download PDBs with Bioclipse</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-19419978.post-1429956110026260438</guid>
	<link>http://bioclipse.blogspot.com/2009/11/download-pdbs-with-bioclipse.html</link>
	<description>It is easy to download bioinformatics resources into Bioclipse using the&lt;a href=&quot;http://www.ebi.ac.uk/Tools/webservices/services/dbfetch&quot;&gt; WSDbfetch Web service &lt;/a&gt;at the &lt;a href=&quot;http://www.ebi.ac.uk&quot;&gt;European Bioinformatics Institute (EBI)&lt;/a&gt;. From console you can use the method:&lt;br /&gt;&lt;br /&gt;              &lt;span style=&quot;font-family: courier new;&quot;&gt;ws.downloadDbEntry(String db, String query, String format)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From the GUI you can use menu: &lt;span style=&quot;font-weight: bold;&quot;&gt;File &amp;gt; New...&lt;/span&gt; and select the &lt;span style=&quot;font-weight: bold;&quot;&gt;Wizard Download &amp;gt; Query WSDbfetch at EBI&lt;/span&gt;. Click next and see the many available databases in the dropdown list Supported databases:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_h6tAVZXYvfs/SvAzKXX9HuI/AAAAAAAAAFU/ASShycXPCJ0/s1600-h/wsdbfetch_dbs.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_h6tAVZXYvfs/SvAzKXX9HuI/AAAAAAAAAFU/ASShycXPCJ0/s400/wsdbfetch_dbs.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 365px; height: 400px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399872206383423202&quot; /&gt;&lt;/a&gt;Try for example to download the sequence &quot;NM_210721&quot; from the &lt;a href=&quot;http://www.ncbi.nlm.nih.gov/RefSeq/&quot;&gt;&quot;refseq&quot; database&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you'd like to download proteins in &lt;a href=&quot;http://en.wikipedia.org/wiki/Protein_Data_Bank&quot;&gt;PDB format&lt;/a&gt;, there is a convenience wizard available in the New Wizards dialog available from the menu &lt;span style=&quot;font-weight: bold;&quot;&gt;File &amp;gt; New...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_h6tAVZXYvfs/SvA1Q4gu88I/AAAAAAAAAFc/FSbCfUyyWvk/s1600-h/NewPDBWizard.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_h6tAVZXYvfs/SvA1Q4gu88I/AAAAAAAAAFc/FSbCfUyyWvk/s400/NewPDBWizard.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 324px; height: 308px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399874517381084098&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Clicking &lt;span style=&quot;font-weight: bold;&quot;&gt;Next&lt;/span&gt; allows for inputting a comma-separated list of PDB IDs, try for example &quot;1ale,2pdz&quot;. Clicking next downloads the file to the selected folder in the Navigator, or to the Virtual project if nothing is selected. Below is visualized 2PDZ in the Jmol Editor.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_h6tAVZXYvfs/SvA24xV8ifI/AAAAAAAAAFs/Ij8fvtemhiA/s1600-h/res_jmol_2pdz.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_h6tAVZXYvfs/SvA24xV8ifI/AAAAAAAAAFs/Ij8fvtemhiA/s400/res_jmol_2pdz.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 304px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399876302163184114&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/19419978-1429956110026260438?l=bioclipse.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 14:00:47 +0000</pubDate>
	<author>noreply@blogger.com (Ola Spjuth)</author>
</item>
<item>
	<title>Paul Webster: e4 and injectable command execution</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-29207064.post-6237934266560299489</guid>
	<link>http://pweclipse.blogspot.com/2009/11/e4-and-injectable-command-execution.html</link>
	<description>I'm fond of most of the Command Framework in Eclipse 3.x (I have to maintain it after all :-)  The notion of an abstract command (as opposed to the Command class) has 2 interesting responsibilities:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Am I enabled?&lt;/li&gt;&lt;li&gt;Do something.&lt;/li&gt;&lt;/ol&gt;In 3.x, commands delegate them to the command's currently active handler.  Two aspects of the 3.x implementation aren't quite right in my opinion.&lt;br /&gt;&lt;br /&gt;Responsibility #1 is implemented as state (&lt;code&gt;isEnabled()&lt;/code&gt;) on the Command itself.  Because a command is a global singleton (it's supposed to represent the operation) this has the unintended side effect that a command is enabled or disabled globally for the application.  The active handler determines the state, but based on whatever information it wants (which may or may not be the same information it will execute against).&lt;br /&gt;&lt;br /&gt;Responsibility #2 is implemented in the handler's execute method.  It can then use the execution event to get the &lt;code&gt;IEvaluationContext&lt;/code&gt; and extract information out of it.  This mostly works well, and you end up treating the &lt;code&gt;IEvaluationContext&lt;/code&gt; as a map.&lt;br /&gt;&lt;br /&gt;In e4 we're looking &lt;code&gt;IEclipseContext&lt;/code&gt; &quot;&lt;a href=&quot;http://www.eclipse.org/e4/resources/e4-whitepaper.php&quot;&gt;Contexts: the service broker&lt;/a&gt;&quot; which provides a localized view into the application state (i.e. what you can see from your view or editor makes sense).  Information relevant to the state of the application is stored in your context in 2 forms.  Some information is identified by class (&lt;code&gt;ECommandService.class.getName(), EventAdmin.class.getName()&lt;/code&gt;) and some information is identified by name (&lt;code&gt;selection, activePart&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;Now the fun part.  In e4 a handler for a command can define 2 methods:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;canExecute(*)&lt;/code&gt; - This will be called by the framework before trying to execute a command&lt;/li&gt;&lt;li&gt;&lt;code&gt;execute(*)&lt;/code&gt; - This will be called by the framework when appropriate (can you guess what it does? :-)&lt;/li&gt;&lt;/ul&gt;But in e4 you don't need to extract your variables from your context, you can ask for them directly:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;public boolean canExecute(&lt;br /&gt;    @Named(&quot;selection&quot;) IStructuredSelection selection);&lt;br /&gt;public void execute(&lt;br /&gt;    @Named(&quot;selection&quot;) IStructuredSelection selection, &lt;br /&gt;    Shell shell);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;When the framework needs to call either method, it will inject the needed information from the appropriate &lt;code&gt;IEclipseContext&lt;/code&gt;.  It uses the &lt;code&gt;@Named&lt;/code&gt; annotation if it is present, or the type of the parameter (for example, &lt;code&gt;Shell.class.getName()&lt;/code&gt;) if &lt;code&gt;@Named&lt;/code&gt; is not.&lt;br /&gt;&lt;br /&gt;In e4 1.0 we're adopting the &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=330&quot;&gt;JSR 330&lt;/a&gt; annotations for injection (plus a few extras that we need).  This is still a work in progress, but it's moving right along.  If you are interested, now is the time to get involved - &lt;a href=&quot;http://wiki.eclipse.org/E4&quot;&gt;http://wiki.eclipse.org/E4&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There's a lot more to this story, so stay tuned for the next update.&lt;br /&gt;&lt;br /&gt;PW&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/29207064-6237934266560299489?l=pweclipse.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 13:57:21 +0000</pubDate>
	<author>noreply@blogger.com (paulweb515)</author>
</item>
<item>
	<title>BioClipse: Align sequences with the Kalign Web service</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-19419978.post-8182694557532069002</guid>
	<link>http://bioclipse.blogspot.com/2009/11/align-sequences-with-kalign-web-service.html</link>
	<description>A recent feature addition to &lt;a href=&quot;http://www.bioclipse.net&quot;&gt;Bioclipse&lt;/a&gt; is the ability to align protein sequences using the &lt;a href=&quot;http://www.ebi.ac.uk/Tools/webservices/services/kalign&quot;&gt;Kalign Web service&lt;/a&gt; available from the &lt;a href=&quot;http://www.ebi.ac.uk&quot;&gt;European Bioinformatics Institute (EBI)&lt;/a&gt;. Simply select two protein sequences in the Navigator (currently the FASTA format is only supported but more formats are in the pipe), right-click, and select &lt;span style=&quot;font-weight: bold;&quot;&gt;Align &amp;gt; Align using Kalign&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_h6tAVZXYvfs/SvAvyHCQpKI/AAAAAAAAAFE/4X3_E4XzA58/s1600-h/align_context.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_h6tAVZXYvfs/SvAvyHCQpKI/AAAAAAAAAFE/4X3_E4XzA58/s400/align_context.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 315px; height: 275px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399868491145716898&quot; /&gt;&lt;/a&gt;&lt;br /&gt;This compiles the sequences into the input format that Kalign expects, and sends it via SOAP to the Kalign Web service at EBI. The results is stored as a file in the same folder as the aligned resources, and opened in the &lt;a href=&quot;http://wiki.bioclipse.net/index.php?title=Sequence_editor&quot;&gt;SequenceEditor&lt;/a&gt; (note the new Wrap feature available from the toolbar).&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_h6tAVZXYvfs/SvAwQ-i8tgI/AAAAAAAAAFM/mXtuDBdrUpg/s1600-h/kaligned_wrap.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_h6tAVZXYvfs/SvAwQ-i8tgI/AAAAAAAAAFM/mXtuDBdrUpg/s400/kaligned_wrap.png&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 323px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399869021442848258&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The feature is available from the latest &lt;a href=&quot;http://pele.farmbio.uu.se/bioclipse-devel&quot;&gt;development version&lt;/a&gt; of Bioclipse.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/19419978-8182694557532069002?l=bioclipse.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 13:34:03 +0000</pubDate>
	<author>noreply@blogger.com (Ola Spjuth)</author>
</item>
<item>
	<title>Goulwen Le Fur: Back from ESE 2009</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3811318399853665936.post-5967666418266443559</guid>
	<link>http://eef-modeling.blogspot.com/2009/11/back-from-ese-2009.html</link>
	<description>After a little break, I'm back ! :)&lt;br /&gt;&lt;br /&gt;ESE 2009 was a very cool experience. An opportunity to meet very important people for the EEF project and to assist to very interesting presentations.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First of all, EMF, CDO, EMF Databinding tutorial was very interesting. It's a shame that we hadn't the time to do all the exercices.&lt;/li&gt;&lt;li&gt;In the afternoon the modeling symposium showed us some very interesting application of EMF. I found the demo of Cedric Vidal from ProxiAD especially interesting with the &lt;a href=&quot;http://code.google.com/p/emf-customizer/&quot;&gt;EMF customizer&lt;/a&gt;. This tools allows users to &quot;customize&quot; generated EMF models with a models using an Xtext syntax very close to CSS.&lt;/li&gt;&lt;/ul&gt;And that was all for the first day. A very nice diner in a typical German Restaurant and it was time to sleep a little.&lt;br /&gt;&lt;br /&gt;The second day, after a first key note that let me quite unconvinced, it was time for talks. I assisted to many talks about e4 and the riena project then back to modeling talks. I went to the talk about the brigde between EMF and Oslo made by the AtlanMod/INRIA team. Finally, It was the talk of Cedric for Acceleo. What an amazing room ! Cedric made a very good talk and I was glad to see the audience impressed by the new Acceleo tooling.&lt;br /&gt;&lt;br /&gt;The final day began with an interesting talk about Papyrus and the very very huge plan for the future. I saw that papyrus is on a good way and I'm happy they use EEF for this project. Final preparations and it was time for my talk. I'm quite satisfied of it. I had some good advice of people that assisted to my &quot;sexy&quot; talk. I finally went to the talk of Mariot about SWTBot, what an amazing technology ! EEF have a start of support for automated tests with SWTBot and I really think that finalize this part of EEF is one of the important job of EEF in 2009.&lt;br /&gt;&lt;br /&gt;ESE is finished and now we have to improve EEF to come next year with very new powerful features !&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3811318399853665936-5967666418266443559?l=eef-modeling.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 11:18:46 +0000</pubDate>
	<author>noreply@blogger.com (Goulwen Le Fur)</author>
</item>
<item>
	<title>Eclipse Enthusiasts Poznań: Small but usefull enhancements to StyledText</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3691419744299351480.post-4896332549236975716</guid>
	<link>http://eclipser-blog.blogspot.com/2009/11/small-but-usefull-enhancements-to.html</link>
	<description>The biggest problem with line indenting in StyledText was that only the first line was indented when word wrapping was enabled.&lt;br /&gt;But right now this issue has been &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=115432&quot;&gt;fixed by Felipe Heidrich&lt;/a&gt;.&lt;br /&gt;See the snippet:&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_HD8AYVGgSww/SvAEo5zitFI/AAAAAAAAA9A/FvvYHa_Uvx4/s1600-h/StyledTextIndenting.PNG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_HD8AYVGgSww/SvAEo5zitFI/AAAAAAAAA9A/FvvYHa_Uvx4/s320/StyledTextIndenting.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399821053975508050&quot; /&gt;&lt;/a&gt;Can you see the difference between first and second paragraph? I think it will address many many issues that you had with text indentation.&lt;br /&gt;&lt;br /&gt;The most important new API method is:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;StyledText#setLineWrapIndent(int, int, int)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The patch was released into Eclipse 3.6 M4 stream, so you need to checkout SWT from HEAD to utilize this awesome functionality.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Chris&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3691419744299351480-4896332549236975716?l=eclipser-blog.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 10:27:38 +0000</pubDate>
	<author>noreply@blogger.com (Christopher Daniel)</author>
</item>
<item>
	<title>Prakash G.R.: Eclipse Tips on Twitter !</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1557780184357927241.post-1723605305934596489</guid>
	<link>http://feedproxy.google.com/~r/cypal/~3/Vtv-UixxecY/eclipse-tips-on-twitter.html</link>
	<description>Get (a different set of) Eclipse  Tips in twitter: &lt;a href=&quot;http://twitter.com/Eclipse_Tips&quot;&gt;@Eclipse_Tips&lt;/a&gt;. If you are still in the RSS reader era, get the feed &lt;a href=&quot;http://twitter.com/statuses/user_timeline/85313393.rss&quot;&gt;here&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;br /&gt;&lt;br /&gt;
&lt;p style=&quot;border: 1px solid rgb(198, 198, 198); padding: 10px; color: rgb(51, 51, 51); font-family: 'Lucida Grande',sans-serif; font-size: 1.1em; background-color: rgb(255, 255, 198); margin-bottom: 10px;&quot;&gt; 
From &lt;a href=&quot;http://blog.eclipse-tips.com&quot;&gt;Eclipse Tips&lt;/a&gt;
&lt;br /&gt;
Like the tip? Subscribe via &lt;a href=&quot;http://feeds.feedburner.com/cypal&quot;&gt;RSS&lt;/a&gt; or &lt;a href=&quot;http://bit.ly/2mfGXa&quot;&gt;Email&lt;/a&gt; or &lt;a href=&quot;https://twitter.com/Eclipse_Tips&quot;&gt;Twitter&lt;/a&gt;
&lt;/p&gt;
&lt;br /&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1557780184357927241-1723605305934596489?l=blog.eclipse-tips.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/cypal/~4/Vtv-UixxecY&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 03 Nov 2009 09:50:16 +0000</pubDate>
	<author>noreply@blogger.com (Prakash G.R.)</author>
</item>
<item>
	<title>Frederic Madiot: Eclipse Summit Europe 2009</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3294520508206749272.post-8574782048067243209</guid>
	<link>http://fmadiot.blogspot.com/2009/10/test.html</link>
	<description>This year was my first attending ESE, and it was worth it !&lt;br /&gt;&lt;br /&gt;The talks on modeling were very interesting (Xtext, EMFQuery, Papyrus, ...) and it was nice to meet the guys directly involved in the projects we are interested in.&lt;br /&gt;&lt;br /&gt;The Cloudsmith team, for example, to discuss how we could use &lt;a href=&quot;http://www.eclipse.org/gmt/modisco/&quot;&gt;MoDisco&lt;/a&gt; on the &lt;a href=&quot;http://www.eclipse.org/proposals/b3/&quot;&gt;B3&lt;/a&gt; project to analyse plugins and create models of builds. Or André &lt;span&gt;&lt;span class=&quot;label fullname&quot;&gt;Dietisheim&lt;/span&gt;&lt;/span&gt; about our tests with &lt;a href=&quot;http://www.eclipse.org/modeling/emf/?project=cdo&quot;&gt;CDO&lt;/a&gt; to manage models of large Java applications created with MoDisco. Nice also to talk with Kenn, Ed, Ralph and many others.&lt;br /&gt;&lt;br /&gt;I had the chance to talk during both the &lt;a href=&quot;http://ed-merks.blogspot.com/2009/10/eclipse-summit-europe-2009-tutorials.html&quot;&gt;Modeling Symposium&lt;/a&gt; (Tuesday) and a &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/sessions?id=886&quot;&gt;session&lt;/a&gt; dedicated to MoDisco (Thursday).&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_3jpQTZO9cJ8/SuybO_6bXuI/AAAAAAAAAAU/6RudBpCGTTU/s1600-h/MoDisco-ShortTalk2.JPG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_3jpQTZO9cJ8/SuybO_6bXuI/AAAAAAAAAAU/6RudBpCGTTU/s320/MoDisco-ShortTalk2.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5398860735287353058&quot; /&gt;&lt;/a&gt;&lt;br /&gt;With my colleague Gabriel Barbier of Mia-Software, who presented the demo Thursday, we shown how to create fine-grained models from Java source code (based on a Java.ecore metamodel), and how to navigate through this model with the model browser we have developped. We put the focus on the customization and the extensibility of this browser by using queries.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_3jpQTZO9cJ8/Su1fVHDPHtI/AAAAAAAAAAc/-5bto7xd0I4/s1600-h/modisco-ese2009.PNG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_3jpQTZO9cJ8/Su1fVHDPHtI/AAAAAAAAAAc/-5bto7xd0I4/s320/modisco-ese2009.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 257px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399076344561606354&quot; /&gt;&lt;/a&gt;You can dynamically change the icon, color, font ... of the instances of your models (by defining a UICustomization, stored in a EMF model), or add &quot;virtual&quot; types (not originally defined in your Ecore metamodel) with &quot;virtual&quot; properties and references (by defining a RoleSet, also stored in a EMF model). The query mechanism that we provide is generic : it allows integrating queries written in Java, EMFQuery, OCL, XPath or ATL.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_3jpQTZO9cJ8/SuybA-zZbGI/AAAAAAAAAAM/lNEN6MVtHcA/s1600-h/MoDisco-ShortTalk1.JPG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_3jpQTZO9cJ8/SuybA-zZbGI/AAAAAAAAAAM/lNEN6MVtHcA/s320/MoDisco-ShortTalk1.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5398860494471261282&quot; /&gt;&lt;/a&gt;&lt;br /&gt;We presented the 0.8 version which is still under development (planned for the end of 2009). But thanks to Nicolas Bros who have put the releng in place, it is possible to download an &lt;a href=&quot;http://www.eclipse.org/gmt/modisco/downloads/&quot;&gt;integration build&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The demos are online :&lt;br /&gt;- &lt;a href=&quot;http://www.eclipse.org/gmt/modisco/doc/MoDisco-ESE2009-Symposium/demo.htm&quot;&gt;Demo during the Modeling Symposium&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;http://www.eclipse.org/gmt/modisco/doc/MoDisco-ESE2009-Talk/Short_talk_demo-20091028-0003.htm&quot;&gt;Demo during the MoDisco short talk&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3294520508206749272-8574782048067243209?l=fmadiot.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Nov 2009 09:36:22 +0000</pubDate>
	<author>noreply@blogger.com (Fred Madiot)</author>
</item>
<item>
	<title>Yves Yang: XWT Designer</title>
	<guid isPermaLink="false">http://dev.eclipse.org/blogs/yvesyang/?p=96</guid>
	<link>http://dev.eclipse.org/blogs/yvesyang/2009/11/02/xwt-designer/</link>
	<description>&lt;p&gt;During the ESE 2009 last week, I have shown a demo with a WYSIWYG editor for &lt;a href=&quot;http://wiki.eclipse.org/e4/XWT&quot;&gt;XWT&lt;/a&gt; in e4 Symphosium and XWT session. It is a tool like &lt;a href=&quot;http://www.eclipse.org/vep&quot;&gt;VE&lt;/a&gt; of eclipse. But the architecture is completely different. XWT Designer relies on XML, instead of Java in VE. And also it doesn’t have two JVMs as &lt;a href=&quot;http://www.eclipse.org/vep&quot;&gt;VE&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In terms of features, &lt;a href=&quot;http://wiki.eclipse.org/e4/XWT&quot;&gt;XWT&lt;/a&gt; supports already all layouts and controls with Tabbed propertiew view. In summary, all feature of &lt;a href=&quot;http://www.eclipse.org/vep&quot;&gt;VE&lt;/a&gt; has been supported such as:&lt;br /&gt;
  - Palette&lt;br /&gt;
  - DnD&lt;br /&gt;
  - Event&lt;br /&gt;
  - Layout&lt;br /&gt;
  - User-firendly Tabbed Properties View&lt;br /&gt;
  - Tree View&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dev.eclipse.org/blogs/yvesyang/files/2009/11/xw-designer.png&quot;&gt;&lt;img width=&quot;500&quot; alt=&quot;&quot; src=&quot;http://dev.eclipse.org/blogs/yvesyang/files/2009/11/xw-designer.png&quot; class=&quot;aligncenter size-full wp-image-97&quot; height=&quot;389&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And furthermore, it overcomes the limitations of &lt;a href=&quot;http://www.eclipse.org/vep&quot;&gt;VE&lt;/a&gt; by providing some tools for Data/Control Binding edition. And it is definitively designed for non-SWT programmer.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dev.eclipse.org/blogs/yvesyang/files/2009/11/control-binding.png&quot;&gt;&lt;img width=&quot;500&quot; alt=&quot;&quot; src=&quot;http://dev.eclipse.org/blogs/yvesyang/files/2009/11/control-binding.png&quot; class=&quot;aligncenter size-full wp-image-98&quot; height=&quot;394&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Soyatec has planned to contribute it as a subproject of &lt;a href=&quot;http://www.eclipse.org/vep&quot;&gt;VE&lt;/a&gt;. It takes some time to get in eclipse. But by now, you can already install it using the following URL with the last daily build (&lt;a href=&quot;http://download.eclipse.org/e4/downloads/drops/I20091029-2100/index.html&quot;&gt;here&lt;/a&gt;) of e4 :&lt;br /&gt;
  &lt;a href=&quot;http://www.xwtdesigner.org/update&quot;&gt;http://www.xwtdesigner.org/update&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Any feedback and suggestion are welcome.&lt;/p&gt;</description>
	<pubDate>Mon, 02 Nov 2009 22:07:23 +0000</pubDate>
</item>
<item>
	<title>Gorkem Ercan: What else have been keeping us busy</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-29853730.post-7178559297972495827</guid>
	<link>http://feedproxy.google.com/~r/Developing/~3/R7v-_kfImDU/what-else-have-been-keeping-us-busy.html</link>
	<description>&lt;p&gt;Nokia’s Java UIs team has been quite busy getting the &lt;a href=&quot;http://www.gorkem-ercan.com/2009/10/new-release-for-ercp-on-qt.html&quot; target=&quot;_blank&quot;&gt;eSWT port&lt;/a&gt; on &lt;a href=&quot;http://www.qtsoftware.com/&quot; target=&quot;_blank&quot;&gt;Qt&lt;/a&gt; ready for the last 18 months, however what we have been working on has not been limited to eSWT port on Qt. We have been running a parallel project called OpenLCDUI. The goal of the project is to create an open source ready implementation of &lt;a href=&quot;http://en.wikipedia.org/wiki/Mobile_Information_Device_Profile&quot; target=&quot;_blank&quot;&gt;MIDP&lt;/a&gt;’s GUI toolkit (LCDUI) using eSWT. &lt;/p&gt;  &lt;p&gt;Initially, the development is done using eSWT on Symbian while the rest of the team is getting the Qt port ready. As a result, OpenLCDUI is proven to be able to bring MIDP UI support to any platform that has eSWT. Since eSWT’s Qt port can run on any platform that Qt can the list of possible platforms is quite extensive. This implementation will be open sourced together with the rest of the &lt;a href=&quot;http://www.s60.com&quot; target=&quot;_blank&quot;&gt;S60&lt;/a&gt; Java Runtime as mentioned &lt;a href=&quot;http://blogs.forum.nokia.com/blog/java-runtime-for-s60-blog/2009/11/02/java-roadmaps-presented-at-symbian-exchange&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and will provide a cross-platform alternative to developing mobile Java UIs.&lt;/p&gt;  &lt;p&gt;Nokia’s Java UI team also has some other interesting stuff cooking up that I will be posting about soon.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/29853730-7178559297972495827?l=www.gorkem-ercan.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/mwZrbBdAC_W1Up8kAlbuEQQWA5k/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/mwZrbBdAC_W1Up8kAlbuEQQWA5k/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/mwZrbBdAC_W1Up8kAlbuEQQWA5k/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/mwZrbBdAC_W1Up8kAlbuEQQWA5k/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/Developing?a=R7v-_kfImDU:9qZPCA9N3Zo:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/Developing?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/Developing/~4/R7v-_kfImDU&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 02 Nov 2009 21:14:23 +0000</pubDate>
	<author>noreply@blogger.com (gorkem)</author>
</item>
<item>
	<title>Eike Stepper: Less EMF!</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-824652428103224164.post-2052892461559586349</guid>
	<link>http://thegordian.blogspot.com/2009/11/less-emf.html</link>
	<description>This year's Eclipse summit was a great success, again. Before I start to chatter about the modeling technologies that I found most interesting, I'd like to point out that there also seems to be some sort of anti modeling coalition. It's clear that the public statement that &quot;Modeling sucks!&quot;, without further reasoning, is more likely to create common hilarity than constructive engagement in the challenges and opportunities. A pity that I missed the Foundation 2.0 talk!&lt;br /&gt;&lt;br /&gt;I noticed that others took the war against modeling and EMF in particular more seriously. There seems to be a whole industry concerned with devices that shield against EMF and the like. They are sold with the slogan &quot;Less EMF&quot;, go figure:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-family: arial; font-size: 130%;&quot;&gt;&lt;a href=&quot;http://www.lessemf.com/&quot;&gt;http://www.lessemf.com&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Of course these attempts to discredit the value of modeling are doomed to failure, as the overwhelming interest in Eclipse modeling technologies at the past summit demonstrated. The tutorial about &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/sessions?id=1015&quot;&gt;Advanced Programming Techniques with EMF and CDO&lt;/a&gt; was so overly crowded that the organizers had to take all tables out of the room and make place for almost 100 attendees.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6Y29iRV9ZvA/Su8rUobRqAI/AAAAAAAAARY/lKC18efgUQA/s1600-h/PA270001.JPG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_6Y29iRV9ZvA/Su8rUobRqAI/AAAAAAAAARY/lKC18efgUQA/s320/PA270001.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399582111689713666&quot; /&gt;&lt;/a&gt;&lt;br /&gt;At least the same amount of interested persons stayed in that room to participate in the discussions of the following modeling symposium. All the other talks (&lt;a href=&quot;http://www.eclipsecon.org/summiteurope2009/sessions?category=Modeling&quot;&gt;24&lt;/a&gt; total) and BOFs about modeling had been extremely well attended, too. Some of them were of particular interest for me and the CDO Model Repository project:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The new EMF Model Query provides an SQL-like query language, cool (Xtext-based?) tooling and an extensible query orchestration and interpretation framework. The SAP team announced that an integration with the CDO server side is very interesting.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Frederic Jouault and Hugo Bruneliere compared Eclipse modeling and Microsoft Oslo technologies and had some ideas how to bridge the two worlds and transform artifacts between both. They mentioned that Oslo misses a model repository.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cedric Brun demonstrated the Acceleo generator tooling and gave insights to the process of bringing this project into Eclipse.org. The tooling looked so comfortable that I thought I should give generative approaches a new chance in the CDO code itself.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kenn Hussey and Raphael Faudougave a BOF and a talk on Papyrus, the new integrated modeling environment at Eclipse.org. These ones were really interesting because some large companies announced that they want to participate in a general initiative with the goal of providing a commercial quality modeling tool with various diagramming support, queries, refectorings and a lot more. CDO was seen in the center of this new architecture to provide client-side scalability, model storage and collaboration.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Markus Herrmannsdoerfer gave a talk that I awaited for a long time already. It was about the COPE framework that seems to do a great job to assist with model evolution (they call it adaptation) and the subsequent instance data migration. Very interesting stuff! Many CDO users have asked for more support in this area and it's clear that we need to provide solutions in a world of changing businesses.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hajo Eichler demonstrated his ideas on executable models. And he did that very well. Last not least because he copied major parts of my own slides. Sure, he asked for my permission, but because he also changed the copyright to his own's Ed announced that we might send the police after him. Two minutes later we could hear their alarms from outside and he got really worried. Poor Hajo!&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Goulwen Le Fur gave an introduction to the new Extended Editing Framework project which is about generating &quot;sexy&quot; properties sheets and possibly object data entry forms. I really hope that they add support for reflective models soon, so that we can use this cool technology in our CDO Explorer UI.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6Y29iRV9ZvA/Su80eSrKUlI/AAAAAAAAARg/xw7Q06QgqdI/s1600-h/IMG_0323.JPG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_6Y29iRV9ZvA/Su80eSrKUlI/AAAAAAAAARg/xw7Q06QgqdI/s320/IMG_0323.JPG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 202px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5399592173254103634&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Today it's exactly one year ago that I startet blogging and since that time I was allowed to realize how much positive impact a little marketing can have on a technology like CDO. Some of my friends startet a private competition in finding modeling talks at the summit with no mention of CDO. Not an easy task ;-)&lt;br /&gt;&lt;br /&gt;I realize that these days more and more modelers are interested in a model repository, either for using it as a runtime platform for their own products or for storing their design time models. I'm glad that we, the CDO team, have forseen this interest and for the future I hope that we can have even more collaboration and consolidation with other efforts in this area:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Please work with us&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;on adding the cool features to CDO that you need!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/824652428103224164-2052892461559586349?l=thegordian.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 02 Nov 2009 19:52:43 +0000</pubDate>
	<author>noreply@blogger.com (Eike Stepper)</author>
</item>
<item>
	<title>Tonny Madsen: Learning more about Eclipse plug-in development...</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-35738028.post-6666372850095584508</guid>
	<link>http://blog.rcp-company.com/2009/11/learning-more-about-eclipse-plug-in.html</link>
	<description>&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot; href=&quot;http://www.eclipse.org/community/training/traininggraphic_125x125.jpg&quot;&gt;&lt;img src=&quot;http://www.eclipse.org/community/training/traininggraphic_125x125.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;As part of the Eclipse Foundation Training series, there are scheduled 5 classes on &quot;Advanced Eclipse RCP&quot;.&lt;br /&gt;&lt;br /&gt;This is the perfect class for people, who have developed Eclipse plug-ins for the last year or so and now wants to know more about some of the more advanced subjects in Eclipse plug-in development.&lt;br /&gt;&lt;br /&gt;The title of the classes is &quot;Advanced &lt;i&gt;RCP&lt;/i&gt; Eclipse&quot;, but with the exception of one subject, all the subjects of the class are just as relevant if you're developing Eclipse plug-ins for the IDE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Amoung the subjects we will teach in the classes are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Wizards - which is basically here because we don't have time for this subject during &quot;Development in Eclipse RCP&quot;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Long-Running operations and Jobs and how to make the interaction between these and the UI as painless as possible.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to use Eclipse Adapters. While the Adapter framework arguably is one of the more difficult to understand and use properly, the is also a framework that will solve many of the problems you might face is larger non-trivial applications especially when used in conjunction with the menus extension point and handlers.&lt;/li&gt;&lt;li&gt;The Data Binding framework and how to use this to cut down on the boilerplate code in the application.&lt;/li&gt;&lt;li&gt;How to handle virtual trees and tables when either the amount of data is large or the retrieval time is long for items in the tree or table.&lt;/li&gt;&lt;li&gt;How to declare and implement your own extension points. Not that this is especially difficult, but there are a number of god design patterns around this that can help reduce the code involved and also make your application react properly when plug-ins are either added or removed from the running aplication.&lt;/li&gt;&lt;li&gt;How to do head less builds using PDEBuild, which probably is not of the most troublesome subjects in Eclipse. One day it works, then next it don't...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;You can see the complete list of subjects in these classes and where to attend of the classes on &lt;a href=&quot;http://www.eclipse.org/community/training/classes.php&quot;&gt;the training page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Although the page on the training says &quot;&lt;b&gt;Prerequisites:&lt;/b&gt; Solid Java experience, experience with Eclipse SDK as a Java development environment and &lt;i&gt;notions of Eclipse RCP&lt;/i&gt;&quot;, I know from past experience that mere &lt;i&gt;notions&lt;/i&gt; will make for very hard three days. In the classes we assume you know about commands, views, perspectives, etc - basically the subjects from the &lt;a href=&quot;http://www.eclipse.org/community/training/Developing_RCP_Course.pdf&quot;&gt;&quot;Development in Eclipse RCP&quot;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have been developing Eclipse plug-ins for some time, this just might be the next class for you...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/35738028-6666372850095584508?l=blog.rcp-company.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 02 Nov 2009 19:50:59 +0000</pubDate>
	<author>tonny.madsen@rcp-company.com (Tonny Madsen)</author>
</item>
<item>
	<title>Kenn Hussey: On the Mo...</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5620932762413494076.post-4840500135087525726</guid>
	<link>http://kenn-hussey.blogspot.com/2009/11/on-mo.html</link>
	<description>&lt;p&gt;Having witnessed, &lt;a href=&quot;http://kenn-hussey.blogspot.com/2009/07/on-lighter-loads.html&quot;&gt;first-hand&lt;/a&gt;, the transformative effect that hair (or absence thereof) can have on our personal lives, I've decided to grow some hair, this time for a cause. That's right, it's &lt;a href=&quot;http://ca.movember.com/&quot;&gt;Movember&lt;/a&gt; and I've joined the &lt;a href=&quot;http://blog.ianbull.com/2009/11/mo-mo-mo-movember.html&quot;&gt;Eclipse Mommitters&lt;/a&gt; in their effort to raise money to &quot;help change the face of men's health&quot;. I'll be posting pictures of my progress over the next few weeks on my &lt;a href=&quot;http://ca.movember.com/mospace/231899&quot;&gt;&quot;Mo Space&quot; (personal page)&lt;/a&gt;. Check it out, consider making a &lt;a href=&quot;https://www.movember.com/ca/donate/your-details/team_id/44681/&quot;&gt;donation&lt;/a&gt; to our team, and think about how you could do your part to help fight prostate cancer.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5620932762413494076-4840500135087525726?l=kenn-hussey.blogspot.com&quot; height=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 02 Nov 2009 18:37:24 +0000</pubDate>
	<author>noreply@blogger.com (Kenn Hussey)</author>
</item>

</channel>
</rss>
