<?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>Seva Lapsha: Aptana “steals” PDT code</title>
	<guid isPermaLink="false">http://dev.eclipse.org/blogs/seva/?p=53</guid>
	<link>http://dev.eclipse.org/blogs/seva/2009/01/05/aptana-steals-pdt-code/</link>
	<description>&lt;p&gt;Long time ago I set up Google alerts to receive new search results related to myself. And today I’ve &lt;a href=&quot;https://source.aptana.com/aptanarepo/aptana/ide_suite/trunk/php/plugins/com.aptana.ide.editor.php/src/com/aptana/ide/editor/php/utils/StatusLineMessageTimerManager.java&quot; target=&quot;_blank&quot;&gt;discovered&lt;/a&gt; that &lt;a href=&quot;http://www.aptana.com/studio&quot; target=&quot;_blank&quot;&gt;Aptana&lt;/a&gt; &lt;span style=&quot;text-decoration: line-through;&quot;&gt;steals&lt;/span&gt; &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot; target=&quot;_blank&quot;&gt;“&lt;span style=&quot;font-size: 10pt;&quot;&gt;prepares derivative work of&lt;/span&gt;“&lt;/a&gt; &lt;a href=&quot;http://www.zend.com/en/community/pdt&quot; target=&quot;_blank&quot;&gt;PDT&lt;/a&gt; code.&lt;/p&gt;
&lt;p&gt;The only visible “derivation” there is they changed package names, though. &lt;img src=&quot;http://dev.eclipse.org/blogs/seva/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 05 Jan 2009 20:09:44 +0000</pubDate>
</item>
<item>
	<title>EclipseLive: Upcoming Event: Introduction to Eclipse PHP Development Tools (PDT) 2.0</title>
	<guid isPermaLink="false">http://live.eclipse.org/647 at http://live.eclipse.org</guid>
	<link>http://live.eclipse.org/node/647</link>
	<description>Event Date: January 21, 2009 9:00 am GMT-8&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.zend.com/en/company/news/event/webinar-introduction-to-eclipse-php-development-tools-pdt&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;Roy Ganor (Zend)&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;Fully compliant with Eclipse standards, the new PHP Development Tools (PDT) 2.0 release enables developers to leverage a wide variety of Eclipse projects, such as Web Tools Project (WTP) and Dynamic Language Toolkit (DLTK), for faster and easier PHP development. PDT is an open source development tool that provides all the code editing capabilities needed to get started with developing PHP applications.&lt;/p&gt;

&lt;p&gt;Join Roy Ganor, Zend Studio Project Leader at Zend, as he demonstrates the tool and new features including creating a new project, source editing, code assist, type hierarchy, mark occurrences, PHP search and more.&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>Mon, 05 Jan 2009 19:27:00 +0000</pubDate>
	<author>lynn.gayowski@eclipse.org (EclipseLive)</author>
</item>
<item>
	<title>Prakash G.R.: Commands Part 2: Selection and Enablement of IHandlers</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1557780184357927241.post-674024221056304653</guid>
	<link>http://blog.eclipse-tips.com/2009/01/commands-part-2-selection-and.html</link>
	<description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In the last tip, we saw that a Handler can be declared separately from a Command. This enables for multiple handler declarations for the same command. We can also customize when a handler is active and visible, thru plugin.xml itself. A handler that doesn't have any of these conditions is called as &quot;default handler&quot;. When no other handler is associated with a command in a particular context, then the default handler will be the handler that gets executed. Remember, at any given point of time, there is at most only one handler is associated with a command. Lets have a look into how a particular handler is selected for a given context.&lt;/p&gt;  &lt;p&gt;A handler can be specified with activeWhen condition using the expression language. Say for our command, we have two different handlers. One should be active when the current selection is an IFile and the other should be active when the current selection is IFolder. The expression for these would look like:&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#000080&quot; size=&quot;2&quot; face=&quot;Courier New&quot;&gt;&amp;lt;handler      &lt;br /&gt;      class=&quot;com.eclipse_tips.commads.SomeCommandHandler1&quot;       &lt;br /&gt;      commandId=&quot;com.eclipse-tips.commands.someCommand&quot;&amp;gt;       &lt;br /&gt;   &amp;lt;activeWhen&amp;gt;       &lt;br /&gt;      &amp;lt;with       &lt;br /&gt;            variable=&quot;selection&quot;&amp;gt;       &lt;br /&gt;         &amp;lt;iterate       &lt;br /&gt;               operator=&quot;or&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;instanceof       &lt;br /&gt;                  value=&quot;org.eclipse.core.resources.IFile&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;/instanceof&amp;gt;       &lt;br /&gt;         &amp;lt;/iterate&amp;gt;       &lt;br /&gt;      &amp;lt;/with&amp;gt;       &lt;br /&gt;   &amp;lt;/activeWhen&amp;gt;       &lt;br /&gt;&amp;lt;/handler&amp;gt;       &lt;br /&gt;&amp;lt;handler       &lt;br /&gt;      class=&quot;com.eclipse_tips.commads.SomeCommandHandler2&quot;       &lt;br /&gt;      commandId=&quot;com.eclipse-tips.commands.someCommand&quot;&amp;gt;       &lt;br /&gt;   &amp;lt;activeWhen&amp;gt;       &lt;br /&gt;      &amp;lt;with       &lt;br /&gt;            variable=&quot;selection&quot;&amp;gt;       &lt;br /&gt;         &amp;lt;iterate       &lt;br /&gt;               operator=&quot;or&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;instanceof       &lt;br /&gt;                  value=&quot;org.eclipse.core.resources.IFolder&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;/instanceof&amp;gt;       &lt;br /&gt;         &amp;lt;/iterate&amp;gt;       &lt;br /&gt;      &amp;lt;/with&amp;gt;       &lt;br /&gt;   &amp;lt;/activeWhen&amp;gt;       &lt;br /&gt;&amp;lt;/handler&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I'll save the explanation for the expression language for a separate tip, but for now a short one line desc: the first handler will be enabled when the selection current contains at least one IFile and the second handler will be enabled when the selection contains at least one IFolder. This raises to two questions.&lt;/p&gt;  &lt;p&gt;1) What if the selection is just an IProject?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;In this case, as none of the handlers are eligible, the command is disabled. This is where the default handler, if you have provided one, would be associated with the command (and the command will be enabled). &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2) What if the selection contains both IFile and IFolder?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Now both the handlers are equally qualified to handle the command. But since the framework cannot pick one randomly the command is simply disabled. Even if you have provided a default handler, it won't be associated with the command, because the other two handlers are more specific than the default one.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;How is the &quot;specificness&quot; of a handler is defined? It depends on the conditions that you give in the activeWhen expression. The order is defined in the ISources class. You can go thru the complete set there, to get a glimpse of the most commonly used ones, the order from least specific to most specific is like this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Active Context (activeContexts) &lt;/li&gt;    &lt;li&gt;Active Actions Sets (activeActionSets) &lt;/li&gt;    &lt;li&gt;Active Shell (activeShell) &lt;/li&gt;    &lt;li&gt;Active Workbench Window (activeWorkbenchWindow) &lt;/li&gt;    &lt;li&gt;Active Editor Id (activeEditorId) &lt;/li&gt;    &lt;li&gt;Active Part Id (activePartId) &lt;/li&gt;    &lt;li&gt;Current Selection (selection) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If a handler has activeWhen defined with active context and the other one with current selection, the second one will be selected as the selection is more specific than the active context. The activeWhen for all the handlers are evaluated and the one that returns true for the most specific condition is selected. When two handlers return true for the available most specific condition (like the selection having both IFile &amp;amp; IFolder in our case), no handler will be associated with the command.&lt;/p&gt;  &lt;p&gt;All these things are done without even loading your handler in the memory. Even without loading your plugin!  &lt;/p&gt;  &lt;p&gt;In the previous tip, we saw how a handler is selected with the activeWhen expression, when more than one handler is declared. Now assuming a handler is selected, whether to enable the command or not, is determined by the enabledWhen expression.&lt;/p&gt;  &lt;p&gt;In our previous example, we saw the handler that is active when the selection at least contained one IFile. Now lets we want to enable it only when the total count of the selection is 2. We can specify it as:&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#000080&quot; size=&quot;2&quot; face=&quot;Courier New&quot;&gt;&amp;lt;handler      &lt;br /&gt;      class=&quot;com.eclipse_tips.commads.SomeCommandHandler1&quot;       &lt;br /&gt;      commandId=&quot;com.eclipse-tips.commands.someCommand&quot;&amp;gt;       &lt;br /&gt;   &amp;lt;activeWhen&amp;gt;       &lt;br /&gt;      &amp;lt;with       &lt;br /&gt;            variable=&quot;selection&quot;&amp;gt;       &lt;br /&gt;         &amp;lt;iterate       &lt;br /&gt;               operator=&quot;or&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;instanceof       &lt;br /&gt;                  value=&quot;org.eclipse.core.resources.IFile&quot;&amp;gt;       &lt;br /&gt;            &amp;lt;/instanceof&amp;gt;       &lt;br /&gt;         &amp;lt;/iterate&amp;gt;       &lt;br /&gt;      &amp;lt;/with&amp;gt;       &lt;br /&gt;   &amp;lt;/activeWhen&amp;gt;       &lt;br /&gt;   &amp;lt;enabledWhen&amp;gt;       &lt;br /&gt;      &amp;lt;with       &lt;br /&gt;            variable=&quot;selection&quot;&amp;gt;       &lt;br /&gt;         &amp;lt;count       &lt;br /&gt;               value=&quot;2&quot;&amp;gt;       &lt;br /&gt;         &amp;lt;/count&amp;gt;       &lt;br /&gt;      &amp;lt;/with&amp;gt;       &lt;br /&gt;   &amp;lt;/enabledWhen&amp;gt;       &lt;br /&gt;&amp;lt;/handler&amp;gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;So the handler will be active and associated with the command, if the selection contains at least one IFile. Still the command will be enabled only if selection has exactly 2 elements. activeWhen and enabledWhen are similar - with respective to the expression language and lazy loading of the plugin until the command is executed. But there is small difference - your handler might be loaded iff the enabledWhen expression returns true and your plugin is already loaded. The enablement algo works this way:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;No enabledWhen specified, plugin is not loaded - command is enabled &lt;/li&gt;    &lt;li&gt;No enabledWhen specified, but plugin is loaded - consult handler.isEnabled() and set command accordingly &lt;/li&gt;    &lt;li&gt;enabledWhen specified, returns false, command is disabled (no matter plugin is loaded or not) &lt;/li&gt;    &lt;li&gt;enabledWhen specified, returns true, plugin is not loaded - command is enabled &lt;/li&gt;    &lt;li&gt;enabledWhen specified, returns true, plugin is loaded - consult handler.isEnabled() and set command accordingly &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So far we saw commands, handlers and their enablements. But what about generalizing a command? That can be done by adding parameters for a command. And that would be the next tip in this series.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;br /&gt;&lt;br /&gt;
From &lt;a href=&quot;http://blog.eclipse-tips.com/&quot;&gt;Eclipse Tips&lt;/a&gt;
&lt;br /&gt;
Like the tip? &lt;a href=&quot;http://feeds.feedburner.com/cypal&quot;&gt;Subscribe&lt;/a&gt;
&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 05 Jan 2009 18:25:01 +0000</pubDate>
	<author>noreply@blogger.com (Prakash G.R.)</author>
</item>
<item>
	<title>Doug Gaff: Tech Support for Geeks</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-18361809.post-1903844645918674125</guid>
	<link>http://douggaff.blogspot.com/2009/01/tech-support-for-geeks.html</link>
	<description>&lt;span&gt;&lt;p&gt;Over the holiday break, I waited on the phone 30 minutes to hear a tech support person sing Celine Dion in my ear while telling me to reset my cable modem.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ok, let me back up a bit.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I switched to a new Cable/Phone/Internet provider last week. You know the drill – the promotional period expires on your current plan and your monthly bill goes up 30%. Fortunately, there are two Cable providers (Comcast and RCN) in my town, and Verizon FiOS is coming this year. Hooray for competition, although would it kill these companies to just make the promotional price the regular price and keep me as a customer? Oops my bad. I forgot that Capitalism = bilking money from as many customers as possible for as long as possible.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Anyway, post-install my internet kept dropping for a couple of seconds every few minutes. This &quot;feature&quot; really upset my Software VPN client. Plus, I was nowhere near the peak bandwidth provisioning for my new service. So I placed the dreaded call to Tech Support. After 30 minutes, I get the aspiring American (ahem) Idol contestant singing Celine under his breath while telling me to reset my modem. Um, thanks dude. Can we try something else? He says I have to call back when the connection is down. I reply that hitting a 2 second window might be tough with a 30 minute call wait time. Long story short: threatening call to salesperson, visit by computer-savvy tech, removed hardware, and things are working.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;sigh.&amp;gt; I hate Cable companies, perhaps even more than I hate Cellular companies.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Attention service providers of the world: I, and vast numbers like me, know more than every single one of your first line tech support people. &lt;strong&gt;&lt;em&gt;I will pay you extra money&lt;/em&gt;&lt;/strong&gt; to let me talk to a real engineer when I have a problem. Save Celine for my grandmother.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</description>
	<pubDate>Mon, 05 Jan 2009 15:25:25 +0000</pubDate>
	<author>noreply@blogger.com (Doug Gaff)</author>
</item>
<item>
	<title>Antoine Toulme: Eclipse just had a japanese smoothie</title>
	<guid isPermaLink="false">http://www.lunar-ocean.com/?p=175</guid>
	<link>http://www.lunar-ocean.com/eclipse-just-had-a-japanese-smoothie/</link>
	<description>&lt;p&gt;The &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=237745&quot;&gt;huge contribution&lt;/a&gt; made by the Blanco project, sponsored by NEC, and watched over by Mori-San, was effectively added to the Babel database today.&lt;/p&gt;
&lt;p&gt;Thanks to everyone for your hard work on making this happen.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?a=RO27O&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?i=RO27O&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?a=OghHo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?i=OghHo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?a=smOUo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?i=smOUo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;</description>
	<pubDate>Mon, 05 Jan 2009 12:59:00 +0000</pubDate>
</item>
<item>
	<title>Antoine Toulme: The Union of The CheckBoxTreeViewer TreeItems : We shall be disabled together, or die in single combat!</title>
	<guid isPermaLink="false">http://www.lunar-ocean.com/?p=169</guid>
	<link>http://www.lunar-ocean.com/the-union-of-the-checkboxtreeviewer-treeitems-we-shall-be-disabled-together-or-die-in-single-combat/</link>
	<description>&lt;p&gt;Dear committer, prepare your jFace-foo !&lt;/p&gt;
&lt;p&gt;We have a case where we have a CheckBoxTreeViewer that represents a list of elements.&lt;/p&gt;
&lt;p&gt;The list in itself is informative. The user is going to be very interested into what is selected, and what isn’t.&lt;/p&gt;
&lt;p&gt;It’s certain that at some point he will expand the tree to look at some nodes, come back, etc.&lt;/p&gt;
&lt;p&gt;Right now, you cannot disable the checkboxes of a CheckBoxTreeViewer without disabling the whole tree.&lt;br /&gt;
So that means that your users cannot check checkboxes (that was the intent), but they also cannot expand the tree.&lt;/p&gt;
&lt;p&gt;What if you’d like to disable some checkboxes only ? That’s unsupported too.&lt;/p&gt;
&lt;p&gt;Unfortunately, there is no solution for  this problem so far. I filed &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259092&quot;&gt;259092&lt;/a&gt; earlier today to investigate the issue, and it seems you can &lt;a href=&quot;http://tom-eclipse-dev.blogspot.com/2008/10/disable-parts-swt-tabletree-with.html&quot;&gt;try to add a listener&lt;/a&gt; to revert the check event when the user clicks on checkboxes. Users would still see the items as enabled though, and given the complexity of the interface, adding a tooltip, a new decoration is just going to be confusing.&lt;/p&gt;
&lt;p&gt;If you have a spare vote to cast for this bug, a comment, and idea, and ideally a patch, let’s talk about it on the &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259092&quot;&gt;bug&lt;/a&gt;!&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?a=tp4iO&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?i=tp4iO&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?a=UTnSo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?i=UTnSo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?a=uPBxo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/LunarOceanForEclipse?i=uPBxo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;</description>
	<pubDate>Mon, 05 Jan 2009 11:20:00 +0000</pubDate>
</item>
<item>
	<title>Eclipse Enthusiasts Poznań: Eclipse Debugger, part III</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3691419744299351480.post-6216230592908716509</guid>
	<link>http://eclipser-blog.blogspot.com/2009/01/eclipse-debugger-part-iii.html</link>
	<description>Let's continue our tour through the features of the Eclipse debugger.  In the last parts (&lt;a href=&quot;http://eclipser-blog.blogspot.com/2008/12/eclipse-debugger-part-i.html&quot;&gt;Part I&lt;/a&gt;, &lt;a href=&quot;http://eclipser-blog.blogspot.com/2008/12/eclipse-debugger-part-i_22.html&quot;&gt;Part II&lt;/a&gt;) I was writing mostly about breakpoints and this time won't be any different. When we look at the views provided by the debugger we will find&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SWHbgMdi2ZI/AAAAAAAAEW8/nHkdkjX_7Cw/s1600-h/show_view_bp.PNG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SWHbgMdi2ZI/AAAAAAAAEW8/nHkdkjX_7Cw/s320/show_view_bp.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5287748783657114002&quot; /&gt;&lt;/a&gt;the &lt;span style=&quot;font-style: italic;&quot;&gt;Breakpoints &lt;/span&gt;view.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_9ZtWy8hlUH8/SWHiqz3E1LI/AAAAAAAAEXE/YdkUKy1Vv7k/s1600-h/bp_view_clear.PNG&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_9ZtWy8hlUH8/SWHiqz3E1LI/AAAAAAAAEXE/YdkUKy1Vv7k/s320/bp_view_clear.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 138px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5287756662613267634&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The main purpose of this view is to manage the breakpoints - it allows to easily (going from left to right through the buttons on the view's toolbar):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;remove selected breakpoints - I guess it's self explaining&lt;br /&gt;&lt;/li&gt;&lt;li&gt;remove all breakpoints -  I guess it's self explaining&lt;/li&gt;&lt;li&gt;show breakpoints supported by selected target - when you debug different kind of artifacts (code in java or C or ant build script) you can make the &lt;span style=&quot;font-style: italic;&quot;&gt;Breakpoints &lt;/span&gt;view show only the breakpoints that are supported by this type of the given artifact [Thanks &lt;a href=&quot;http://www.blogger.com/profile/16627298669538613040&quot;&gt;Jacek &lt;/a&gt;for helping with figuring this out!]&lt;br /&gt;&lt;/li&gt;&lt;li&gt;go to the file for breakpoint - it will show the place where the breakpoint is set in the editor&lt;/li&gt;&lt;li&gt;skip all breakpoints - when you don't want any breakpoint to be active check this option&lt;/li&gt;&lt;li&gt;add java exception breakpoint - I was writing about this in &lt;a href=&quot;http://eclipser-blog.blogspot.com/2008/12/eclipse-debugger-part-i.html&quot;&gt;the first part&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;More cool features can be found in the view's menu, you can:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;group the breakpoint by many criteria, e.g. type, project, files, etc.&lt;/li&gt;&lt;li&gt;define breakpoints working set&lt;br /&gt;&lt;/li&gt;&lt;li&gt;check the option to show qualified names in the view&lt;/li&gt;&lt;/ul&gt;The view allows you also to change the breakpoints' properties directly from the context menu - just right click on any breakpoint and you would see the options to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;change the hit count value&lt;/li&gt;&lt;li&gt;make the breakpoint suspend the VM or suspend the thread&lt;/li&gt;&lt;/ul&gt;To finish the breakpoints story it has to be said that breakpoint can be imported and exported - you can open the appropriate wizards from the Breakpoints menu or from the File-&amp;gt;Export-&amp;gt;Run/Debug-&amp;gt;Breakpoints option.&lt;br /&gt;&lt;br /&gt;Is there anything I have missed about breakpoints? Please, share!&lt;br /&gt;&lt;br /&gt;That's it for this week - next time I will focus on the Variables view, which is essential for efficient debugging.</description>
	<pubDate>Mon, 05 Jan 2009 10:56:41 +0000</pubDate>
	<author>noreply@blogger.com (Jakub Jurkiewicz)</author>
</item>
<item>
	<title>Nick Boldt: The Group Of Seven</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-17823979.post-6519843660547903805</guid>
	<link>http://divby0.blogspot.com/2009/01/group-of-seven.html</link>
	<description>&lt;p&gt;Seven things about me, as inspired by &lt;a href=&quot;http://ganoro.blogspot.com/2009/01/seven-things-tagged-by-andi-gutmans.html&quot;&gt;Roy's tag&lt;/a&gt;:
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;In just under 3 weeks I've become utterly obsessed with my &lt;a href=&quot;http://divby0.blogspot.com/search/label/blackberry&quot;&gt;Blackberry&lt;/a&gt;. My wife, who at first was apprehensive of hers (along with all new technology), has been using it non-stop as well. It's been a good text'mas. :)
&lt;p&gt;
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;My wife and I live with &lt;a href=&quot;http://picasaweb.google.ca/nickboldt/MobileUploads#5287252121574417874&quot;&gt;two American Pointers&lt;/a&gt;, &lt;a href=&quot;http://divby0.blogspot.com/feeds/posts/default/-/eclipse#footnote&quot;&gt;two horses*&lt;/a&gt;, three laptops, two smartphones, and many, many usb peripherals. The office is the warmest room in the house. 
&lt;p&gt;
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;My day job consists of maintaining and improving the build systems for JBoss Tools and JBoss Developer Studio. My night job involves numerous Eclipse projects, including Modeling and Dash. Basically, I hibernate in the winter in front of the computer.
&lt;p&gt;
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;My parents - divorced - are of Jewish/American (dad) and German/Canadian (mom) decent. They've now been separated longer than they've been together. With the &lt;a href=&quot;http://en.wikipedia.org/wiki/Subprime_mortgage_crisis&quot;&gt;subprime mortgage crisis&lt;/a&gt; in the US, he recently moved back to Canada to seek more gainful employment. Unfortunately, he chose Calgary which isn't faring much better, now that gas prices are finally coming back down. My mom now lives in Scaborough near us, having returned from her self-imposed escape to Vancouver, and is more or less retired.
&lt;p&gt;
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;I graduated from the University of Waterloo back in '99 with a BASc in Chemical Engineering, having spent the balance of my last two years learning about programming, workflow design, process control, and optimization. In retrospect, it seems I was always headed for release engineering.
&lt;p&gt;
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Much like &lt;a href=&quot;http://andigutmans.blogspot.com/2009/01/seven-things-about-me-tagged-by-marco.html&quot;&gt;Andi Gutmans&lt;/a&gt;, I too hate shaving... but as I work from home, I can get away with not doing so for days at stretch. I love my 30-second commute to work, which offsets my 8-to-10-hour workdays quite nicely. Why commute 2-plus-hours a day when you can use that time to get real work (or at least email) done? Thankfully, more and more companies are realizing this and are letting us work remotely.
&lt;p&gt;
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;I try to find time - when not working or hacking - to walk my dogs, hike, &lt;a href=&quot;http://cyclepathy.blogspot.com/&quot;&gt;cycle&lt;/a&gt;, kayak &amp;amp; swim: sometimes several in series. One favourite route involves cycling from my house to the beach at maximum speed, swimming in the lake to cool off, then portaging the bike up the side of Bellamy ravine and home. This past season I rode over 750KM and kayaked over 75KM, mostly in and around Toronto, Scarborough and Pickering. 
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;
So, then, here are 7 more in this chain, in no particular order...
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/opal/&quot;&gt;Opal Aristizabal&lt;/a&gt;, tech writer and Insight driver
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.confessionsofaliberalmind.com/&quot;&gt;Jamie Callingham&lt;/a&gt;, one of the few teacher-types I know who actually has time to maintain a blog
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://deliciouslyquirky.com/&quot;&gt;Alain Cloutier&lt;/a&gt;, graphic designer with a slightly insane blog, two great kids, and horse-addicted wife. He and I share a similar pain -- horsefolk are a special (wonderful) breed of crazy. :)
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://kenn-hussey.blogspot.com/&quot;&gt;Kenn Hussey&lt;/a&gt;, IBM ex-pat and blogger with great frequency, especially this past &lt;a href=&quot;http://kenn-hussey.blogspot.com/2008_08_01_archive.html&quot;&gt;Blaugust&lt;/a&gt;.
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://wassim-melhem.blogspot.com/&quot;&gt;Wassim Melhem&lt;/a&gt;, overworked - but always well-dressed - project manager 
&lt;/li&gt;&lt;li&gt;Julia Raphael Morgan, opera singer sans blog at the moment...
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://overholt.ca/wp/&quot;&gt;Andrew Overholt&lt;/a&gt;, Linux evangelist and fellow cyclist
&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;And here are the rules I'm supposed to pass on to the above bloggers:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Link your original tagger(s), and list these rules on your blog. 
&lt;/li&gt;&lt;li&gt;Share seven facts about yourself in the post - some random, some weird. 
&lt;/li&gt;&lt;li&gt;Tag seven people at the end of your post by leaving their names and the links to their blogs. 
&lt;/li&gt;&lt;li&gt;Let them know they've been tagged by leaving a comment on their blogs and/or Twitter.
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;&lt;a name=&quot;footnote&quot;&gt;&lt;/a&gt;&lt;small&gt;&lt;i&gt;* - The horses don't live with us, thankfully -- it's &lt;a href=&quot;http://www.flickr.com/photos/absoluteequine/&quot;&gt;someone else&lt;/a&gt;'s job to &lt;a href=&quot;http://absoluteequineinc.com/&quot;&gt;feed and muck&lt;/a&gt; them.&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 05 Jan 2009 06:32:24 +0000</pubDate>
	<author>nickboldt@gmail.com (nickb)</author>
</item>
<item>
	<title>Doug Schaefer: Zune 30, Killed by Complexity</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-16474715.post-2572767700051362392</guid>
	<link>http://cdtdoug.blogspot.com/2009/01/zune-30-killed-by-complexity.html</link>
	<description>I first heard of it early New Years Eve, I guess. Hoards of Microsoft Zunes were &lt;a href=&quot;http://it.slashdot.org/article.pl?sid=08/12/31/1428254&quot;&gt;committing mass suicide&lt;/a&gt; (a gruesome thought but the actual quote from the Slashdot article). Fears rose that some Y2K thing was happening, mind you things like that didn't happen in Y2K, at least not on this scale. &lt;a href=&quot;http://www.zune.net/en-us/support/zune30.htm&quot;&gt;Microsoft finally confirmed&lt;/a&gt; the issue as such though, a device driver hang on the 366'th day of a leap year. I'd love to see that code...&lt;br /&gt;&lt;br /&gt;Well, thanks to the wonders of the internet, &lt;a href=&quot;http://pastie.org/349916&quot;&gt;here it is&lt;/a&gt;! (I imagine this link will fall dead as soon as the Microsoft cronies make the rounds, as they should. It does have a Microsoft copyright). I actually found it through another blog where the guy put together a &lt;a href=&quot;http://www.aeroxp.org/2009/01/lesson-on-infinite-loops/&quot;&gt;pretty good analysis of the problem&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The root cause? A brain fart. Either someone was in a hurry, or they couldn't handle  the complexity of the algorithm once they started dealing with leap years. People blame testing for not testing all the paths. But, if you don't take the time to test all the paths, or don't have the skills to properly enumerate all the paths, testing isn't going to matter. At any rate, another great software engineering lesson learned for us all, just like the &lt;a href=&quot;http://en.wikipedia.org/wiki/Ariane_5#Launch_history&quot;&gt;unhandled exception in the Ariane-5 rocket&lt;/a&gt;, except this one is recoverable and isn't as expensive (unless the Zune market share dives as a result, which could happen).&lt;br /&gt;&lt;br /&gt;I spend a lot of my time these days working on software architectures and trying to come up with the most simple, extensible, and future proof. But none of that matters if you have code like this. And I've seen code like this all through my career. Hell, I've written some of it. But one thing I learned early from &lt;a href=&quot;http://www.cs.usask.ca/faculty/tremblay/&quot;&gt;one of my great profs&lt;/a&gt; back at the &lt;a href=&quot;http://www.usask.ca/&quot;&gt;U of S&lt;/a&gt;, was on code complexity. &lt;a href=&quot;http://en.wikipedia.org/wiki/Cyclomatic_complexity&quot;&gt;It is even measurable&lt;/a&gt; by counting the number of paths through your code. Complexity bad. Which implies that having more paths than you need is bad. As we see here, it becomes too difficult to test fully.&lt;br /&gt;&lt;br /&gt;And that is certainly the case here. Too many 'if's. How do you convert days since 1980 into a time structure? Well in the Zune code (which is actually a common device driver in a number of Windows CE platforms), one of the paths leads to an infinite loop, when days is 366 and IsLeapYear is true. The author of the blog proposes a much simpler algorithm that works correctly  but reduces the paths thus eliminating the bad one. I think you can make it even simpler.&lt;br /&gt;&lt;br /&gt;One of my mantras is &quot;I hate typing!&quot;. Of course it has nothing to do with typing (much). It's about producing simple elegant solutions to simple problems. Yes, Keep it Simple S(favorite ending here). Saves time. Saves money. Saves embarrassment. Saves your job. I'd hate to be the guy who wrote this code...</description>
	<pubDate>Mon, 05 Jan 2009 02:17:48 +0000</pubDate>
	<author>noreply@blogger.com (Doug Schaefer)</author>
</item>
<item>
	<title>Dave Carver: 2008 Top Entries</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1585332946379204379.post-6173797013997662367</guid>
	<link>http://intellectualcramps.blogspot.com/2009/01/2008-top-entries.html</link>
	<description>I use Google Analytics to track visits to this blog.  Mainly because I'm curious as to where in the world people come from and also what topics are of interest.   So with out further ado, here are the top five entries.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/06/creating-xml-ide-with-eclipse.html&quot;&gt;Creating an XML IDE with Eclipse&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/11/intrepid-ibex-sound-hickup.html&quot;&gt;Intrepid Ibex Sound Hickup&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/08/visual-xml-editor-for-eclipse.html&quot;&gt;Visual XML Editor for Eclipse&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/10/null-check-or-null-object-pattern.html&quot;&gt;Null Check or Null Object Pattern&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/06/xml-xsd-check-next-web-services.html&quot;&gt;XML? XSD? Check.  Next Web Services&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Three of the top five are related to XML which isn't surprising considering that is what I've been working on and posting most about.   I do find it interesting that there is much more interest in how to make/build an XML IDE with Eclipse.   So the interest from the XML community is there, eclipse just needs to respond.&lt;br /&gt;&lt;br /&gt;The sound problem is something that surprised me as well.   Mainly because there are much better resources and solutions out there, but I found it interesting that my suggestions would spark an interest with others.&lt;br /&gt;&lt;br /&gt;As much as I post or some would probably say preach about various Refactoring and Clean Code practices, or the lack there of them, I was surprised to see the topic of whether one should use Null Objects or Checks for Null Pointers.    Too me personally, I'd rather deal with the Null Object pattern instead of having to check to make sure that a particular variable isn't null.   It is probably one of the most annoying things about the W3C DOM is the number of nulls that are returned.    The less I have to check to make sure an object isn't null, the better.&lt;br /&gt;&lt;br /&gt;Since announcing that the VEX editor has moved to eclipse as a WTP Incubator project, entries on that have consitently rated high according to Google Analytics.   I have even received a few code contributions and patches for some bugs for it from the community and potential adopters.  Unfortunately I haven't had as much time to devote to it as I would like.    For those that are attending EclipseCon in March, I will give a very brief demo of VEX in the XML Tools roundup short talk.   I also look forward to talking to more users that are within the XML community that are using Eclipse for their development environment.&lt;br /&gt;&lt;br /&gt;The last entry is one that I had lofty goals.  It is also one of the areas that unfortunately had to be dropped down on my priority list.   XSL Tools has taken up more time than I had hoped and getting VEX off the ground at the Eclipse Foundation took a lot of effort.  Especially making sure that we were able to answer any IP concerns that were brought up.&lt;br /&gt;&lt;br /&gt;I'm not going to make predictions for 2009, as I broke my crystal ball a long time ago.   I'll just let Google Analytics report to me next year what readers thought was interesting.   I'll still continue to post about XML related items at eclipse, and continue on my crusade for cleaner and better coding practices within the projects and code I write.   So, let's see how 2009 goes, and thanks to those that find the content here interesting.  I hope that at times it gives you, your own intellectual cramps.</description>
	<pubDate>Sun, 04 Jan 2009 21:40:28 +0000</pubDate>
	<author>noreply@blogger.com (David Carver)</author>
</item>
<item>
	<title>Nicolas Richeton: Nebula Gallery widget : new features</title>
	<guid isPermaLink="false">http://nricheton.homeip.net/?p=254</guid>
	<link>http://feeds.feedburner.com/~r/NicolasRichetonEclipse/~3/502630241/</link>
	<description>&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2008/05/eclipse-642.png&quot; title=&quot;Eclipse&quot; height=&quot;37&quot; width=&quot;64&quot; alt=&quot;Eclipse&quot; border=&quot;0&quot; id=&quot;eclipse&quot; /&gt;&lt;br /&gt;&lt;p&gt;Happy New Year  to everyone !!! &lt;img src=&quot;http://nricheton.homeip.net/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;During the christmas and new year holidays, I had some free time to improve the Nebula Gallery widget. Here is the list of the new features :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Animations&lt;/strong&gt; : Expanding and closing of groups is now animated. The animation code is from &lt;a href=&quot;http://nricheton.homeip.net/?page_id=197&quot;&gt;SAT&lt;/a&gt;. Expand and collapse animations can be chosen between all existing SAT animations including Exponential, Elastic or Bounce or by any custom animation which implements &lt;code&gt;&lt;a href=&quot;http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.nebula/org.eclipse.nebula.widgets.gallery/src/org/eclipse/nebula/animation/movement/IMovement.java?revision=1.1&amp;amp;root=Technology_Project&amp;amp;view=markup&quot;&gt;IMovement&lt;/a&gt;&lt;/code&gt;. See video above &lt;strong&gt;(you may need to go to my blog, as youtube videos are not supported by planet eclipse or google reader)&lt;/strong&gt;.
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DefaultGroupRenderer#setAnimation(boolean enable)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DefaultGroupRenderer#setAnimationLength(int timems)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DefaultGroupRenderer#setAnimationCloseMovement(IMovement mov)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DefaultGroupRenderer#setAnimationOpenMovement(IMovement mov)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It’s now easy to add additional effects, like &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=197130&quot;&gt;zooming on mouse over&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ScrollingSmoother&lt;/code&gt; class which replaces the default scrolling behavior by a custom effect is now included in the bundle.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; Only Linear animation has been included with the widget. You can get &lt;a href=&quot;http://sharemedia.svn.sourceforge.net/viewvc/sharemedia/trunk/org.sharemedia.ui.sat.easing/src/org/eclipse/nebula/animation/movement/&quot;&gt;additionnal animations&lt;/a&gt; with this bundle &lt;a href=&quot;http://sharemedia.svn.sourceforge.net/viewvc/sharemedia/trunk/org.sharemedia.ui.sat.easing/&quot;&gt;org.sharemedia.ui.sat.easing&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Images and descriptions for groups&lt;/strong&gt; : images and descriptions are now displayed for groups.
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-2.png&quot;&gt;&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-2.png&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-258&quot; title=&quot;nebula-group-description1&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Up to 3 lines of text are supported, simply by using &lt;code&gt;GalleryItem#setText( int index, String text)&lt;/code&gt; with id=0 for the main label and id=1 or id=2 for the two descriptions lines.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-1.png&quot;&gt;&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-1.png&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-257&quot; title=&quot;nebula-group-description2&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lower quality on user actions&lt;/strong&gt; : Since this widget can draw easily draw more than 20 images at every redraw, the framerate can become very low with large images. This new mode reduce the quality of images (disables antialias or interpolation) when the user is resizing or scrolling the widget in order to get ultra fast redraws.
&lt;p&gt;While scrolling you would get this quality :&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-3.png&quot;&gt;&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-3.png&quot; alt=&quot;Low quality&quot; width=&quot;450&quot; class=&quot;size-full wp-image-261&quot; title=&quot;nebula-quality-low&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;500 ms after the last action, the content is updated with a better quality :&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-4.png&quot;&gt;&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-4.png&quot; alt=&quot;High quality&quot; width=&quot;450&quot; class=&quot;size-full wp-image-262&quot; title=&quot;nebula-quality-high&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Gallery#setLowerQualityOnUserAction( boolean enable)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Gallery#setHigherQualityDelay( int timems)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decorators&lt;/strong&gt; : support for decorators has been added in the widget. This allows to scale decorators differently from the main image, and solves resize problems with transparent images (reported by Justin Dolezy, see &lt;a href=&quot;http://nricheton.homeip.net/?p=6#comment-12407&quot;&gt;here&lt;/a&gt;).  Decorators can be specified using &lt;code&gt;GalleryItem#setData(String id, Object value)&lt;/code&gt; as single images or arrays of images.
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-1-decorator.png&quot;&gt;&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-1-decorator.png&quot; title=&quot;nebula_decorators1&quot; height=&quot;132&quot; width=&quot;143&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-259&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;All four corners are supported, and decorators are automatically resized if there is no enough room to draw all of them :&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-2-decorator.png&quot;&gt;&lt;img src=&quot;http://nricheton.homeip.net/wp-content/uploads/2009/01/image-2-decorator.png&quot; title=&quot;nebula_decorators2&quot; height=&quot;93&quot; width=&quot;98&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-260&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality settings&lt;/strong&gt;: It’s now possible to change the quality settings for the graphic context. Previously quality was always set to the maximum (antialias = on and interpolation = high). Quality can now be reduced when needed.
&lt;p&gt;&lt;code&gt;public void setAntialias(int antialias)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void setInterpolation(int interpolation)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Virtual groups&lt;/strong&gt;: The widget supports SWT.VIRTUAL, which create items where they are first used. But as the widget needs to know the size of every group, they are all created right await while items are still created on demand.
&lt;p&gt;The new lazy groups mode allows to create groups only when they get visible. Until that moment, a default value is used for every groups making the content creation even more lazy. This feature uses exactly the same code as the standard virtual mode.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void setVirtualGroups(boolean virtualGroups)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void setVirtualGroupDefaultItemCount(int defaultItemCount)&lt;/code&gt;&lt;br /&gt;
Set the default item count. Since changing on-the-fly the size of a group changes the size and position of the slider, using a realistic value reduces makes this update less noticeable.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void setVirtualGroupsCompatibilityMode(boolean compatibilityMode)&lt;/code&gt;&lt;br /&gt;
This mode can cause issue with code that set the slider size programatically (like ScrollingSmoother). The compatibility mode ensure that only groups after the current group can be uninitialized.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Always expanded :&lt;/strong&gt; : if you don’t need to expand/collapse groups, you can use &lt;code&gt;DefaultGroupRenderer#setAlwaysExpanded&lt;/code&gt; to remove the button in the title bar and display groups as expanded whatever their state is. With this option, the Gallery widget looks like it was on the very first versions.
&lt;p&gt;&lt;code&gt;DefaultGroupRenderer#setAlwaysExpanded( boolean enable )&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The code has been commited to Nebula’s CVS. Everyone can test this new version and give feedback. Have fun &lt;img src=&quot;http://nricheton.homeip.net/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;img width=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/NicolasRichetonEclipse/~4/502630241&quot; height=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 04 Jan 2009 16:36:19 +0000</pubDate>
</item>
<item>
	<title>EclipseLive: SWT Tables + Glazed Lists</title>
	<guid isPermaLink="false">http://live.eclipse.org/646 at http://live.eclipse.org</guid>
	<link>http://live.eclipse.org/node/646</link>
	<description>&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;Emil Crumhorn&lt;/span&gt;
&lt;/div&gt;

&lt;div class=&quot;resource-icon&quot;&gt;&lt;img src=&quot;http://live.eclipse.org/files/ECLP_articles.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;This article explains what Glazed Lists are and how they will forever make your sortable/filterable table implementations much easier to do. The article covers the SWT TableViewer, the Nebula Grid and the Nat Table.  It comes with full code for running all examples, including a big framework implementation for the Nebula Grid and the Nat Table, where you can get a runnable table up in 10 lines of code or less.&lt;/p&gt;&lt;p&gt; 

&lt;/p&gt;&lt;p&gt;If you ever wanted to build complex tables with multi-column sort,  intricate chained filtering and multi-threaded table updates, or even just simple tables with one sortable column, Glazed Lists can do it all with amazing simplicity, and it works wonderfully with SWT.&lt;/p&gt;

&lt;p&gt;The goal of the article is to give you an overview of the power of Glazed Lists in combination with SWT-based Grid/Table widgets and hopefully give you a &quot;wow, I wish I had seen this before&quot; kind of feeling.&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%2F115&amp;amp;title=Articles&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%2F115&amp;amp;title=Articles&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%2F115&amp;amp;title=Articles&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>Sat, 03 Jan 2009 11:40:31 +0000</pubDate>
	<author>emil.crumhorn@gmail.com (EclipseLive)</author>
</item>
<item>
	<title>Egon Willighagen: Editing and Validation of CML documents in Bioclipse</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5324486046611289266.post-3220184297820062228</guid>
	<link>http://chemicalrcp.blogspot.com/2009/01/editing-and-validation-of-cml-documents.html</link>
	<description>One advantage of using XML is that one can rely on good support in libraries for functionality. When parsing XML, one does not have to take care of the syntax, and focus on the data and its semantics. This comes at the expense of verbosity, though, but having the ability to express semantics explicitly is a huge benefit for flexibility.&lt;br /&gt;&lt;br /&gt;So, when &lt;a href=&quot;http://wwmm.ch.cam.ac.uk/blogs/murrayrust/&quot;&gt;Peter&lt;/a&gt; and Henry put their first documents online about the Chemical Markup Language (CML), I was thrilled, even though is actually was still SGML when I encountered it. The work predates the &lt;a href=&quot;http://www.w3.org/TR/1998/REC-xml-19980210&quot;&gt;XML recommendation&lt;/a&gt;. As I &lt;a href=&quot;http://chem-bla-ics.blogspot.com/2008/10/jchempaint-history-cml-patches-in-1999.html&quot;&gt;recently blogged&lt;/a&gt;, in '99 I wrote patches for Jmol and JChemPaint to support CML, which were published as preprint in the &lt;a href=&quot;http://www.sciencedirect.com/preprintarchive&quot;&gt;Chemical Preprint Server&lt;/a&gt; in a paper in 2000 in the &lt;a href=&quot;http://hackberry.trinity.edu/IJC/&quot;&gt;Internet Journal of Chemistry&lt;/a&gt;. Neither of the two has survived.&lt;br /&gt;&lt;br /&gt;Anyway, the &lt;a href=&quot;http://cdk.sf.net/&quot;&gt;Chemistry Development Kit&lt;/a&gt; makes heavy use of CML, and &lt;a href=&quot;http://www.bioclipse.net/&quot;&gt;Bioclipse&lt;/a&gt; supports it too. Now, Bioclipse is based on the &lt;a href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse&lt;/a&gt; &lt;a href=&quot;http://wiki.eclipse.org/index.php/Rich_Client_Platform&quot;&gt;Rich Client Platform&lt;/a&gt; architecture, for which there exist quite a few XML tools in the &lt;a href=&quot;http://www.eclipse.org/webtools/&quot;&gt;Web Tools Platform&lt;/a&gt; (WTP). Among these, a validation, content assisting XML editor. This means, I get red markings when I make my XML document not-well-formed or invalid. Just a quick recap: well-formedness means that the XML document has a proper syntax: one root node, properly closed tags, quotes around attribute values, etc. Validness, however, means that the document is well-formed, but also hierarchically organized according to some specification.&lt;br /&gt;&lt;br /&gt;Enter CML. CML is such a specification, first with DTDs, but after the introduction of XML Namespaces with XML Schema (see &lt;a href=&quot;http://cmlexplained.blogspot.com/2007/06/there-can-be-only-one-namespace.html&quot;&gt;There can be only one (namespace)&lt;/a&gt;). The WTP can use this XML Schema for validation, and this is of great help learning the CML language. Pressing Ctrl-space in Bioclipse will now show you what allowed content can be added at the current character position.&lt;br /&gt;&lt;br /&gt;Yes, Bioclipse can do this now (in SVN, at least). This has been on my wishlist for at least two years now, but never really found the right information. Now, three days ago &lt;a href=&quot;http://intellectualcramps.blogspot.com/&quot;&gt;David&lt;/a&gt; wrote about &lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/12/end-of-year-cramps.html&quot;&gt;End of Year Cramps&lt;/a&gt; in which he describes some of his work on the WTP for autocomplete for XPath queries. He &lt;span style=&quot;font-style: italic;&quot;&gt;see[s] a brighter future for XML at eclipse over the next year. I hope that those in the eclipse and XML community will help to continue to improve the basic support, so that first class commercial quality applications that leverage this support can continue to be built.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That was enough statement for me to &lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/12/end-of-year-cramps.html?showComment=1230451020000#c4332753586396921531&quot;&gt;ask in the comments&lt;/a&gt; on how to make the WTP XML editor aware of the CML XML Schema. It already picked up XML Schema's with &lt;span style=&quot;font-style: italic;&quot;&gt;xsi:schemaLocation&lt;/span&gt;, but I needed something to worked without such statements in the XML document itself. David explained that me that I could use the &lt;a href=&quot;http://intellectualcramps.blogspot.com/2008/12/end-of-year-cramps.html?showComment=1230498780000#c4628316622126916885&quot;&gt;org.eclipse.wst.xml.catalog extension&lt;/a&gt;. This was really easy, and &lt;a href=&quot;http://bioclipse.svn.sourceforge.net/viewvc/bioclipse/bioclipse2/trunk/plugins/net.bioclipse.cml/plugin.xml?r1=8101&amp;amp;r2=8100&amp;amp;pathrev=8101&quot;&gt;commited to Bioclipse SVN&lt;/a&gt; as: &lt;pre class=&quot;prettyprint lang-xml&quot;&gt;&amp;lt;extension&lt;br /&gt;  point=&quot;org.eclipse.wst.xml.core.catalogContributions&quot;&amp;gt;&lt;br /&gt;  &amp;lt;catalogContribution&amp;gt;&lt;br /&gt;    &amp;lt;uri name=&quot;http://www.xml-cml.org/schema&quot;&lt;br /&gt;          uri=&quot;schema24/schema.xsd&quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/catalogContribution&amp;gt;&lt;br /&gt;&amp;lt;/extension&amp;gt;&lt;br /&gt;&lt;/pre&gt; However, that does not make the WTP XML editor available in the Bioclipse application yet. Not ever in the &quot;Open With&quot;... So, I set up a &lt;a href=&quot;http://bioclipse.svn.sourceforge.net/viewvc/bioclipse/bioclipse2/trunk/features/net.bioclipse.cml_feature/&quot;&gt;CML Feature&lt;/a&gt;. After a follow up question, it turned out that the CML content type of Bioclipse was already a sub type of the XML type (see ): &lt;pre class=&quot;prettyprint lang-xml&quot;&gt;&amp;lt;extension&lt;br /&gt;  point=&quot;org.eclipse.core.runtime.contentTypes&quot;&amp;gt;&lt;br /&gt;  &amp;lt;content-type&lt;br /&gt;    base-type=&quot;org.eclipse.core.runtime.xml&quot;&lt;br /&gt;    id=&quot;net.bioclipse.contenttypes.cml&quot;&lt;br /&gt;    name=&quot;Chemical Markup Language (CML)&quot;&lt;br /&gt;    file-extensions=&quot;cml,xml&quot;&lt;br /&gt;    priority=&quot;normal&quot;&amp;gt;&lt;br /&gt;  &amp;lt;/content-type&amp;gt;&lt;br /&gt;&amp;lt;/extension&amp;gt;&lt;br /&gt;&lt;/pre&gt; So, the only remaining problem was to actually get the WTP XML editor as part of the Bioclipse application. The new CML Feature takes care of that (I hope the export and building the update site work too, but that's yet untested), by important the relevant plugins and features. Last night, however, I ended up with one stacktrace which gave me little clue on which plugin I was still missing.&lt;br /&gt;&lt;br /&gt;Therefore, I headed to #eclipse and actually met David of the blog that started this again. He asked &lt;a href=&quot;http://nitind.blogspot.com&quot;&gt;nitind&lt;/a&gt; to think about it too, and they helped me pin down the issue. This relevant bit of the stacktrace turned out to be: &lt;pre&gt;Caused by: java.lang.IllegalStateException&lt;br /&gt; at org.eclipse.core.runtime.Platform.getPluginRegistry(Platform.java:774)&lt;br /&gt; at org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry$ResourceFactoryRegistryReader.(WTPResourceFactoryRegistry.java:275)&lt;br /&gt; at org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry.(WTPResourceFactoryRegistry.java:61)&lt;br /&gt; at org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry.(WTPResourceFactoryRegistry.java:55)&lt;br /&gt; ... 37 more&lt;br /&gt;&lt;/pre&gt; This refered to this bit of code of Eclipse' Platform.java: &lt;pre class=&quot;prettyprint lang-java&quot;&gt;Bundle compatibility = InternalPlatform.getDefault()&lt;br /&gt;  .getBundle(CompatibilityHelper.PI_RUNTIME_COMPATIBILITY);&lt;br /&gt;  if (compatibility == null)&lt;br /&gt;    throw new IllegalStateException();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So, the plugin I turned to to have missing was &lt;span style=&quot;font-style: italic;&quot;&gt;org.eclipse.core.runtime.compatibility&lt;/span&gt;. Apparently, some parts of the WTP that the XMLEditor is using, still uses Eclipse2.x technology.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_5vhaOf2_53I/SVoEFVPRXLI/AAAAAAAAAdE/R76n3J-TRgQ/s1600-h/cmlValid.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_5vhaOf2_53I/SVoEFVPRXLI/AAAAAAAAAdE/R76n3J-TRgQ/s400/cmlValid.png&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 232px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5285541602319752370&quot; /&gt;&lt;/a&gt; This screenshot shows the WTP XMLEditor in action in Bioclipse on a CML file. It shows the document contents with the 'Design' tab, which also shows allowed content, as derived from the XML Schema for CML. Also, note that the Outline and Properties view automatically come for free, which allows more detail and navigation of the content.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_5vhaOf2_53I/SVoEtCQ9LPI/AAAAAAAAAdM/CNSv5lScQXE/s1600-h/cmlContentAssisting.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_5vhaOf2_53I/SVoEtCQ9LPI/AAAAAAAAAdM/CNSv5lScQXE/s400/cmlContentAssisting.png&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 232px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5285542284421311730&quot; /&gt;&lt;/a&gt; This screenshot shows the 'Source' tab for the same file, where I deliberately changed the value of the @id attribute of the first atom. The value does not validate against the regular expression defined in the CML schema for @id attribute values. It also shows the content assisting in action. At any location in the CML file, I can hit Ctrl-Space, and the editor will show me which content I can add at that location.&lt;br /&gt;&lt;br /&gt;This makes Bioclipse a perfect tool to craft CML documents and learn the language.</description>
	<pubDate>Sat, 03 Jan 2009 09:50:01 +0000</pubDate>
	<author>noreply@blogger.com (Egon Willighagen)</author>
</item>
<item>
	<title>Egon Willighagen: Scripting JChemPaint</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5324486046611289266.post-5465988108280673619</guid>
	<link>http://chemicalrcp.blogspot.com/2009/01/scripting-jchempaint.html</link>
	<description>Stefan, &lt;a href=&quot;http://gilleain.blogspot.com/&quot;&gt;Gilleain&lt;/a&gt;, Arvid and I had a &lt;a href=&quot;https://apps.sourceforge.net/mediawiki/cdk/index.php?title=JChemPaintWorkshop2008&quot;&gt;JChemPaint Developers Workshop&lt;/a&gt; in Uppsala, to sprint the development of JChemPaint3, for which &lt;a href=&quot;http://progz-jchem.blogspot.com/&quot;&gt;Niels&lt;/a&gt; layed out the foundation already a long time ago.&lt;br /&gt;&lt;br /&gt;Gilleain and Arvid merged their branches into a &lt;a href=&quot;http://cdk.svn.sourceforge.net/viewvc/cdk/cdk/branches/jchempaint-primary/&quot;&gt;single code base&lt;/a&gt;, while Stefan worked on the &lt;a href=&quot;http://cdk.svn.sourceforge.net/viewvc/cdk/jchempaint/trunk/&quot;&gt;Swing application and applet&lt;/a&gt;. The Bioclipse SWT-based widget is being developed for &lt;a href=&quot;http://bioclipse.svn.sourceforge.net/viewvc/bioclipse/bioclipse2/trunk/plugins/net.bioclipse.cdk.jchempaint.view/&quot;&gt;Bioclipse2&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The new design separates widget/graphics toolkit specifics from the chemical drawing and editing logic. Regarding the editing functionality, this basically comes down to have a semantically meaningful edit API. This allows us to convert both Swing and SWT mouse events into things like &lt;i&gt;addAtom(&quot;C&quot;, atom)&lt;/i&gt;, which would add a carbon to an already existing &lt;i&gt;atom&lt;/i&gt;. However, without too much phantasy, it allows adding a scripting language. This is what I have been working on. Right now, the following API is available from the Bioclipse2 JavaScript console (via the &lt;i&gt;jcp&lt;/i&gt; namespace, in random order):&lt;ul&gt;&lt;li&gt;ICDKMolecule jcp.getModel()&lt;/li&gt;&lt;li&gt;IAtom getClosestAtom(Point2d)&lt;/li&gt;&lt;li&gt;setModel(ICDKMolecule) &lt;i&gt;(for really fancy things)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;removeAtom(IAtom)&lt;/li&gt;&lt;li&gt;IBond getClosestBond(Point2d)&lt;/li&gt;&lt;li&gt;updateView() &lt;i&gt;(all edit command issue this automatically)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;addAtom(String,Point2d)&lt;/li&gt;&lt;li&gt;addAtom(String,IAtom) &lt;i&gt;(which works out coordinates automatically)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Point2d newPoint2d(double,double)&lt;/li&gt;&lt;li&gt;updateImplicitHydrogenCounts()&lt;/li&gt;&lt;li&gt;moveTo(IAtom, Point2d)&lt;/li&gt;&lt;li&gt;setSymbol(IAtom,String)&lt;/li&gt;&lt;li&gt;setCharge(IAtom,int)&lt;/li&gt;&lt;li&gt;setMassNumber(IAtom,int)&lt;/li&gt;&lt;li&gt;addBond(IAtom,IAtom)&lt;/li&gt;&lt;li&gt;moveTo(IBond,Point2d)&lt;/li&gt;&lt;li&gt;setOrder(IBond,IBond.Order)&lt;/li&gt;&lt;li&gt;setWedgeType(IBond,int)&lt;/li&gt;&lt;li&gt;IBond.Order getOrder(int)&lt;/li&gt;&lt;li&gt;zap() &lt;i&gt;(sort of &lt;i&gt;sudo rm -Rf /*&lt;/i&gt;)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;cleanup() &lt;i&gt;(calculate 2D coordinates from scratch)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;addRing(IAtom,int)&lt;/li&gt;&lt;li&gt;addPhenyl(IAtom)&lt;/li&gt;&lt;/ul&gt; This API (many more method will follow) is not really aimed at the end user, who will simply point and click. The goal of this scripting language is, at least at this moment, to test the underlying implementation using Bioclipse. Future applications, however, may include simple scripts which use some logic to convert the editor content. For example, replacing a &lt;i&gt;t&lt;/i&gt;-butyl fragment into a pseudo atom &quot;t-Bu&quot;. The key thing to remember, is that this will allow Bioclipse to have non-CDK-based programs act on the JChemPaint editor content (e.g. using getModel() and setModel(ICDKMolecule)). More on that later.&lt;br /&gt;&lt;br /&gt;A simple script could look like: Or, as screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_5vhaOf2_53I/SSWhMGiC_7I/AAAAAAAAAY8/w-HTLT80h2o/s1600-h/jcpScripting.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_5vhaOf2_53I/SSWhMGiC_7I/AAAAAAAAAY8/w-HTLT80h2o/s400/jcpScripting.png&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 298px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5270796168190951346&quot; /&gt;&lt;/a&gt;</description>
	<pubDate>Sat, 03 Jan 2009 09:43:56 +0000</pubDate>
	<author>noreply@blogger.com (Egon Willighagen)</author>
</item>
<item>
	<title>Denis &amp; Karl: Happy New Year!</title>
	<guid isPermaLink="false">http://dev.eclipse.org/blogs/eclipsewebmaster/?p=289</guid>
	<link>http://dev.eclipse.org/blogs/eclipsewebmaster/2009/01/02/happy-new-year/</link>
	<description>&lt;p&gt;Happy New Year to all, from the Eclipse Webmaster team.  2008 was a great year, with growth in the community (and our bandwidth), the release of Ganymede, great EclipseCon and Summit Europe conferences, new projects, new members, and new committers.  Here’s to 2008 and for a great 2009 to come!&lt;/p&gt;
&lt;div style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;a href=&quot;http://dev.eclipse.org/blogs/eclipsewebmaster/files/2009/01/half-full_beer.jpg&quot;&gt;&lt;img src=&quot;http://dev.eclipse.org/blogs/eclipsewebmaster/files/2009/01/half-full_beer-192x300.jpg&quot; alt=&quot;&quot; width=&quot;192&quot; class=&quot;aligncenter size-medium wp-image-290&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 02 Jan 2009 20:46:28 +0000</pubDate>
</item>
<item>
	<title>Prakash G.R.: Commands Part 1: Actions Vs Commands</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1557780184357927241.post-7125788898108321876</guid>
	<link>http://blog.eclipse-tips.com/2009/01/commands-part-1-actions-vs-commands.html</link>
	<description>As you would have seen, there are two different ways to contributing to the Workbench: Actions and Commands. Although Commands are newer and advanced, I've always preferred using Actions, simply because of my comfort level in using them. Now that I've started fixing some bugs in the Command framework, I'm forced to look into the details. The more deeper I look into the Commands, the more I'm loving it. So I decided to write a series of on the Commands and this is the first one in the series. Many of the information presented here is obtained by looking some &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=154130&quot;&gt;old&lt;/a&gt; &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=36968&quot;&gt;bugs&lt;/a&gt;, &lt;a href=&quot;http://wiki.eclipse.org/index.php/Platform_UI_Command_Design&quot;&gt;wiki&lt;/a&gt; and digging into CVS history&lt;a href=&quot;http://blog.eclipse-tips.com/&quot;&gt;.&lt;/a&gt; If I'm missing anything or wrong about something let me know.&lt;br /&gt;
&lt;br /&gt;
Lets start with Actions. We are able to &lt;a href=&quot;http://www.eclipse.org/articles/article.php?file=Article-action-contribution/index.html&quot;&gt;contribute to&lt;/a&gt; the menus, toolbars, pull down menu, etc. We are able to specify the UI details like label or tooltip in the plugin.xml itself, which helps in lazy loading. So whats wrong with them? &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The UI and handling are always tied. There is no way you can separate each other &lt;/li&gt;
&lt;li&gt;While Actions can be contributed to different parts of the workbench (popup menu/tool bar), all of them were different extension points and so you end up duplicating the XML in multiple places. The worst of it is that not all the extension points expect the same configuration. &lt;/li&gt;
&lt;li&gt;Specifying Actions in multiple places is a maintenance nightmare. If you have to change the icon of an action, you need to change in all the places. &lt;/li&gt;
&lt;li&gt;Another issue with duplicating Actions in plugin.xml is that multiple instance of the same Actions will be created in the memory &lt;/li&gt;
&lt;/ul&gt;Lets see how the Commands Framework eliminates all this. Commands are defined by the org.eclipse.ui.commands extension point. A typical command would look like:&lt;br /&gt;
&lt;span style=&quot;color: navy; font-family: Courier New; font-size: x-small;&quot;&gt;&amp;lt;command      &lt;br /&gt;
         id=&quot;com.eclipse-tips.commands.someCommand&quot;       &lt;br /&gt;
         name=&quot;Some Command&quot;&amp;gt;       &lt;br /&gt;
&amp;lt;/command&amp;gt;&lt;/span&gt;&lt;br /&gt;
Yeah thats it. That defines a Command! If you want to place this in a tool bar, you have to use the extension point org.eclipse.ui.menus:&lt;br /&gt;
&lt;span style=&quot;color: navy; font-family: Courier New; font-size: x-small;&quot;&gt;&amp;lt;menuContribution      &lt;br /&gt;
      locationURI=&quot;toolbar:org.eclipse.ui.main.toolbar&quot;&amp;gt;       &lt;br /&gt;
   &amp;lt;toolbar       &lt;br /&gt;
         id=&quot;com.eclipse-tips.commands.toolbar1&quot;&amp;gt;       &lt;br /&gt;
      &amp;lt;command       &lt;br /&gt;
            commandId=&quot;com.eclipse-tips.commands.someCommand&quot;       &lt;br /&gt;
            id=&quot;com.eclipse-tips.commands.someCommandInToolBar&quot;&amp;gt;       &lt;br /&gt;
      &amp;lt;/command&amp;gt;       &lt;br /&gt;
   &amp;lt;/toolbar&amp;gt;       &lt;br /&gt;
&amp;lt;/menuContribution&amp;gt;&lt;/span&gt; &lt;br /&gt;
Now that takes of the placement in the UI. But what about the code that gets executed? That goes into a another extension point, org.eclipse.ui.handlers:&lt;br /&gt;
&lt;span style=&quot;color: navy; font-family: Courier New; font-size: x-small;&quot;&gt;&amp;lt;handler      &lt;br /&gt;
         class=&quot;com.eclipse_tips.commads.SomeCommandHandler&quot;       &lt;br /&gt;
         commandId=&quot;com.eclipse-tips.commands.someCommand&quot;&amp;gt;       &lt;br /&gt;
&amp;lt;/handler&amp;gt; &lt;/span&gt;    &lt;br /&gt;
&lt;br /&gt;
One last piece is to add an icon to the Command&lt;br /&gt;
No price for guessing that you need to use another extension point, org.eclipse.ui.commandImages:&lt;br /&gt;
&lt;span style=&quot;color: navy; font-family: Courier New; font-size: x-small;&quot;&gt;&amp;lt;image      &lt;br /&gt;
         commandId=&quot;com.eclipse-tips.commands.someCommand&quot;       &lt;br /&gt;
         icon=&quot;icons/sample.gif&quot;&amp;gt;       &lt;br /&gt;
&amp;lt;/image&amp;gt;&lt;/span&gt;     &lt;br /&gt;
&lt;br /&gt;
All set. Lets see the Command in action:&lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_hsp14iFkRLs/SVpUL_137oI/AAAAAAAADVk/8sn6OBeOSlU/image9.png?imgmax=800&quot;&gt;&lt;img width=&quot;302&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_hsp14iFkRLs/SVpUVHAHzGI/AAAAAAAADVo/TbLu6O6qgIw/image_thumb5.png?imgmax=800&quot; border=&quot;0&quot; height=&quot;154&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
As you see, in the actions we would just use only one extension point, instead of the four which we have used now. Does it sounds like a round about way or doing things? Probably once we get to know about multiple handlers for a Command and context based association &amp;amp; enablement of the handlers etc, we will see the beauty of the framework. That would be the next in this series.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;br /&gt;&lt;br /&gt;
From &lt;a href=&quot;http://blog.eclipse-tips.com/&quot;&gt;Eclipse Tips&lt;/a&gt;
&lt;br /&gt;
Like the tip? &lt;a href=&quot;http://feeds.feedburner.com/cypal&quot;&gt;Subscribe&lt;/a&gt;
&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 02 Jan 2009 18:25:01 +0000</pubDate>
	<author>noreply@blogger.com (Prakash G.R.)</author>
</item>
<item>
	<title>David Green: Mylyn WikiText at EclipseCon 2009</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1482979278030787271.post-4749796456597517040</guid>
	<link>http://greensopinion.blogspot.com/2009/01/mylyn-wikitext-at-eclipsecon-2009.html</link>
	<description>&lt;a href=&quot;http://www.eclipsecon.org/2009/sessions?id=608&quot;&gt;WikiText will be at EcilpseCon 2009&lt;/a&gt; in Santa Clara, California.  The presentation time was expanded to allow for more coverage of WikiText -- so if there's something specific that you'd like to hear about please let me know.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The WikiText presentation is included in a session titled &quot;&lt;a href=&quot;http://www.eclipsecon.org/2009/sessions?id=708&quot;&gt;50 minutes towards a better you&lt;/a&gt;&quot;.  Don't ask me about the title -- I don't know if WikiText will make you a better person or not.  I'm very excited to be there presenting this new technology alongside Steffen Pingel, who will be providing a Mylyn connector crash course.&lt;/div&gt;</description>
	<pubDate>Fri, 02 Jan 2009 17:06:56 +0000</pubDate>
	<author>noreply@blogger.com (David Green)</author>
</item>
<item>
	<title>Wayne Beaton: Eclipse Plug-ins, Third Edition</title>
	<guid isPermaLink="false">http://dev.eclipse.org/blogs/wayne/?p=577</guid>
	<link>http://dev.eclipse.org/blogs/wayne/2009/01/02/eclipse-plug-ins-third-edition/</link>
	<description>&lt;p&gt;The third edition of “Eclipse Plug-ins” (previously titled “Eclipse: Building Commercial-Quality Plug-ins”) by Eric Clayberg and Dan Rubel is available.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Eclipse Plug-ins provides detailed, practical coverage of every aspect of&lt;br /&gt;
plug-in development, as well as specific, proven solutions for the&lt;br /&gt;
challenges developers are most likely to encounter. This comprehensive guide&lt;br /&gt;
covers the entire process of plug-in development, including all the extra&lt;br /&gt;
steps needed to achieve the highest quality results. The book has been fully&lt;br /&gt;
revised to reflect the powerful new capabilities of Eclipse 3.4; its 928&lt;br /&gt;
pages offer cookbook-style code examples, relevant API listings, diagrams,&lt;br /&gt;
screen shots and more.&lt;/p&gt;
&lt;p&gt;All code examples, relevant API listings, diagrams, and screen captures have&lt;br /&gt;
been thoroughly updated to reflect both the Eclipse 3.4 API and the latest&lt;br /&gt;
Java syntax. In addition, Clayberg and Rubel have completely revamped their&lt;br /&gt;
popular Favorites View case study, reworking much of its content and&lt;br /&gt;
recreating its code from scratch. The authors carefully cover new&lt;br /&gt;
functionality added to existing Eclipse features, such as views and editors,&lt;br /&gt;
and fully explain brand-new features such as Commands, GEF, and PDE Build.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I fully enjoyed the second edition and am looking forward to the additions in this new third edition. You can find more information about the book on the &lt;a href=&quot;http://www.qualityeclipse.com/&quot;&gt;companion website&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Fri, 02 Jan 2009 16:57:17 +0000</pubDate>
</item>
<item>
	<title>Christian Damus: Old-Fashioned Prognostication</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3979075559839929708.post-8439311979708966959</guid>
	<link>http://give-a-damus.blogspot.com/2009/01/old-fashioned-prognostication.html</link>
	<description>&lt;div&gt;No, I'm not making predictions for the success of Eclipse or any technology in 2009.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Another new year has arrived, and to usher it in I once again engaged in the timeless German tradition of &lt;a href=&quot;http://de.wikipedia.org/wiki/Bleigie%C3%9Fen&quot;&gt;Bleigießen&lt;/a&gt;:  the divination of one's future (for the coming year) in the pouring of molten lead.&lt;div&gt;&lt;br /&gt;&lt;div&gt;The idea is simple:  you cut a length of lead solder and heat it, in a steel spoon, over a candle or other tabletop flame, thus:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_xqWjI-sJPhM/SV5C0sblSCI/AAAAAAAAABY/yBMXzD1XWC0/s400/ny2009_2.jpg&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 329px; height: 400px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286736485627021346&quot; /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Once the lead is completely molten and flows freely, you pour it quickly into a bowl of cold water to chill it instantly.  In the resulting sculpture, you see a shape, figure, or other graphic indication of what the year holds in store for you (rather like cloud gazing):&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_xqWjI-sJPhM/SV5C01EvZ_I/AAAAAAAAABg/1UEr3SFuOrk/s400/ny2009_1.jpg&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 266px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286736487947134962&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;As you can see, my first attempt didn't show much and was actually spoilt by pouring too rapidly.  Am I having puppies?  Or are these tears?  As this attempt failed due to a bad pour, I tried again, with a smoother and steadier hand:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_xqWjI-sJPhM/SV5C1NuwsTI/AAAAAAAAABo/Wt9QSVlKuII/s1600-h/ny2009_3.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_xqWjI-sJPhM/SV5C1NuwsTI/AAAAAAAAABo/Wt9QSVlKuII/s400/ny2009_3.jpg&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 266px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286736494565830962&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;That's more like it.  I can read something into this!  I see ... on the right-hand side ... a frog? Yeah, a frog.  It's sitting on a stick, readying to jump into the water.  The stick is jutting out of the water from right to left, like in so many creek-paddle scenes from my canoe tripping.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Looks like Mother Nature has another great canoeing season in store for me!&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 02 Jan 2009 16:55:52 +0000</pubDate>
	<author>noreply@blogger.com (Christian W. Damus)</author>
</item>
<item>
	<title>Sandro Boehme: Eclipse Summit Europe 2008</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-8144930894367729336.post-5644199451232643764</guid>
	<link>http://jcrmanagement.blogspot.com/2008/12/eclipse-summit-europe-2008.html</link>
	<description>&lt;a href=&quot;http://2.bp.blogspot.com/_HyrJCpACxmw/SVQNDxUcuWI/AAAAAAAAABA/aJYhR6c7JZA/s1600-h/inovex-booth.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_HyrJCpACxmw/SVQNDxUcuWI/AAAAAAAAABA/aJYhR6c7JZA/s320/inovex-booth.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 201px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5283862621242308962&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I know it's a bit late, but I think might still be interesting for some people. At least to know what the outcome of the ESE 2008 was for &lt;a href=&quot;http://wiki.eclipse.org/index.php/JCR_Management&quot;&gt;JCRM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;++ The Preperation ++&lt;br /&gt;I had two talks scheduled for the ESE. One at the symposium at tuesday and one at the usual conference at wednesday. I knew it was a tough plan but I could only start to prepare the talks in the week before the conference. The idea was to demo all the JCRM tools. While playing around with them to structure the demo the first nested Eclipse instance crashed. I thought this might be sheer coincidence. But also the second nested instance crashed a few times with an OutOfMemoryError and it started to make me nervous. Of course these kind of things don't happen when developing the tools. They only show up when preparing the talk and there is not much time for fixes. Finding the memory configuration for Eclipse on Mac isn't obvious as it's in a hidden directory. So searching for it didn't make me more relaxed. But in the end I found a memory setting that worked without a problem and I needed to skip some tool demos anyway in fovour of showing the basic concepts of JCRM. That way the people can judge these concepts or influence JCRM along the lines of it. Finally at 10 pm on monday I finished the preperation of the talk for the conference and could start to prepare the talk for the symposium. I finished it at 1am on tuesday.&lt;br /&gt;&lt;br /&gt;++ The Symposium ++&lt;br /&gt;The symposium had a quite interesting start as I was chatting with Markus Völter about not having a wireless internet connection available. After a few minutes the maintenance guy who was working in the room and oviously heared us moaning gave us the underground password for the wireless internet connection and said we should not widely spread it as the connection would be overloaded otherwise.&lt;br /&gt;To be hornest I'm quite intimidated by giving such a talk so I was glad to already be the second presenter. I think I could have made the goal of the talk - handling EMF models that don't fit into the memory - more clear. But except that I think it went ok. Many other presentations were about meta model evolution. Its great that there is progress in this area. Because using JCRM it should not be too hard to use the resulting tools for the refactoring JCR node types and that would certainly be very valuable for the JCR communities.&lt;br /&gt;After the presentations the open space discussions were planned. First everybody could propose an issue to discuss about later on. Then everybody could vote three times to weight the importance of the proposals. After that the three least important proposals were skipped and the others were planned how they can run in parallel and how they fit into the available time. This is an interesting community driven format. I proposed to give information about the Java Content Repository and how it could be used also in other Eclipse use cases. When it was on me to vote I saw that there was only one vote for my proposal so far so I though: &quot;There doesn't seem to be much interest in the JCR issue. But thats ok, I will just give it one of my votes and use the other two votes for other interesting issues.&quot;. Biiiig mistake. Later on a number of other people voted for my proposal and it turned out that if I would have used my other two votes for my proposal too it would not have been skipped. Lesson learned: I could be more patriotic.&lt;br /&gt;During the symposium I had some interesting discussions about JCRM with &lt;a href=&quot;http://metafrequency.blogspot.com/&quot;&gt;Kenn Hussey&lt;/a&gt; and &lt;a href=&quot;http://model-driven-blogging.blogspot.com/&quot;&gt;Cedrik Brun&lt;/a&gt;. To &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259673&quot;&gt;integrate JCR references into EMF&lt;/a&gt; Kenn gave me some information about references in EMF that were very useful. We also discussed about JCRM performance [1], if it's possible to &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259681&quot;&gt;collaborate with CDO&lt;/a&gt; and I showed him how versioning works in JCRM.&lt;br /&gt;&lt;br /&gt;[1] - Bugzilla: Adding objects: https://bugs.eclipse.org/bugs/show_bug.cgi?id=259674&lt;br /&gt;- Bugzilla: Searching objects: https://bugs.eclipse.org/bugs/show_bug.cgi?id=259675&lt;br /&gt;- Bugzilla: traversing on EMF EStructuralFeatures https://bugs.eclipse.org/bugs/show_bug.cgi?id=259676&lt;br /&gt;- Bugzilla: Repository Editor https://bugs.eclipse.org/bugs/show_bug.cgi?id=259677&lt;br /&gt;- Bugzilla: update https://bugs.eclipse.org/bugs/show_bug.cgi?id=259678&lt;br /&gt;- Bugzilla: delete https://bugs.eclipse.org/bugs/show_bug.cgi?id=259679&lt;br /&gt;&lt;br /&gt;++ The conference ++&lt;br /&gt;At the first day of the conference I was mainly at the booth of &lt;a href=&quot;http://www.inovex.de/&quot;&gt;our company&lt;/a&gt; and visited just the keynote and a few talks like the MTL and the CDO talks.&lt;br /&gt;After that it was on me to give my presentation. Interestingly I was less nervous than the day before and better concentrated. There were 15-20 people attending. I guess the majority of the people were at the E4 talk. But I was glad to find Ed and Kenn in the audience (and later I found out that also Rich was there) because they are part of the core modeling community. It is good when they know what JCRM is about because they can judge quite good what is valueable for the Eclipse modeling community and what's not.&lt;br /&gt;Event though I made time consuming mistakes that probably nobody really recognized, I think the presentation generally went good because it made clear:&lt;br /&gt;- how the JCR communities and the Eclipse community can benefit from each other using JCRM,&lt;br /&gt;- how straight the JCR integration into EMF is,&lt;br /&gt;- that its not hard to use JCRM in existing EMF applications&lt;br /&gt;This presentation got good feedback like &quot;JCRM is Cool!&quot; and &quot;JCRM has a lot of potential.&quot;, &quot;JCRM generated quite a hype.&quot; If you did not attend my talk but you are curious about Eclipse JCRM you can download the slides from &lt;a href=&quot;http://www.slideshare.net/guestc06d27/eclipse-summit-2008-jcrm-demo-v14-presentation&quot;&gt;slideshare&lt;/a&gt;, have a look at the &lt;a href=&quot;http://wiki.eclipse.org/index.php/JCR_Management&quot;&gt;JCRM wiki&lt;/a&gt; or ask me in the newsgroup (and CC me with s(dot)boehme(at)inovex(dot)de )&lt;br /&gt;&lt;br /&gt;The conference was not only exciting for me because of my talks but also because I had a lot of interesting chats with different people:&lt;br /&gt;o Cedric hacked an example for me on how to compare two EObjects of a model. This will be very valueable for the Repository Editor (formerly called Node Editor or JCR Manager). Because this would make it possible to actually compare node objects with this editor.&lt;br /&gt;o After it didn't work out at the last ESE I finally found &lt;a href=&quot;http://thegordian.blogspot.com/&quot;&gt;Eike&lt;/a&gt; to talk with him. Interestingly it turned out that we solved the same problem the same way independend from each other. For models that are bigger than the available memory we both used the EMF EStore and the java.lang.ref.SoftReference to free unused model elements from the memory and reload them on demand. Just the day before at the Modeling Symposium I talked about that. To avoid solving the same problem twice and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259681&quot;&gt;to better integrate our projects&lt;/a&gt; we agreed to do some screen sharing sessions. To be honest this is not too high on my priority list right now because I would like to focus on the &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259684&quot;&gt;Repository Editor&lt;/a&gt; instead but I still think it's important to work on that.&lt;br /&gt;I also had an interesting discussion with the people from ikv about their project, a nice chat with Wolfgang Frank and Achim Baier and a good time during the breakfast and between the talks with Lars Schneider, Xavier and many other people.</description>
	<pubDate>Fri, 02 Jan 2009 15:48:42 +0000</pubDate>
	<author>noreply@blogger.com (Sandro Böhme)</author>
</item>
<item>
	<title>Nick Boldt: Clarifying Our All-In-Ones</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-17823979.post-6520828297483241760</guid>
	<link>http://divby0.blogspot.com/2009/01/clarifying-our-all-in-ones.html</link>
	<description>&lt;p&gt;
In order to make it clearer what's in the various flavours of all-in-one zips provided in Modeling, GEF, and PDT, I've concocted some new icons to better differentiate them.

&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_i21-98vOfTA/SV21OYJ8DFI/AAAAAAAADHw/t4nPmoHkFD8/s1600-h/aio-file-types.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_i21-98vOfTA/SV21OYJ8DFI/AAAAAAAADHw/t4nPmoHkFD8/s320/aio-file-types.png&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 151px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286580796209761362&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;This is actually moving in the opposite direction from what &lt;a href=&quot;http://divby0.blogspot.com/2008/07/request-for-comment-will-anyone-miss.html&quot;&gt;I'd proposed&lt;/a&gt; in &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240223&quot;&gt;bug 240223&lt;/a&gt; regarding &lt;a href=&quot;http://wiki.eclipse.org/EMF/EMF_2.5/Simplified_Downloads&quot;&gt;Simplified EMF Downloads&lt;/a&gt; as we're now providing more, not less... but IMHO that's okay as long as the community is well served. If you have an opinion on update site vs. update zips vs. SDK zips vs. EPP bundles, please feel free to weigh in on &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240223#c20&quot;&gt;bug 240223&lt;/a&gt;.

&lt;/p&gt;&lt;p&gt;And if you hate the new icons, please let me know. Better still, design me a replacement. Thanks to &lt;a href=&quot;http://iconeden.com/icon/bright-free-stock-iconset.html&quot;&gt;iconeden.com&lt;/a&gt; for the source pixels.&lt;/p&gt;</description>
	<pubDate>Fri, 02 Jan 2009 06:35:14 +0000</pubDate>
	<author>nickboldt@gmail.com (nickb)</author>
</item>
<item>
	<title>Dave Carver: A DOH! moment</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-1585332946379204379.post-53964224816602706</guid>
	<link>http://intellectualcramps.blogspot.com/2008/12/doh-moment.html</link>
	<description>&lt;span style=&quot;font-style: italic;&quot;&gt;Update 2009-01-01: The first refactoring is done and attached to &lt;/span&gt;&lt;a style=&quot;font-style: italic;&quot; href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=259853&quot;&gt;bug 259853&lt;/a&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;.  There is still more to do to break up some overly long methods, but it is now easier to test the various pieces.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have been working on some refactoring of the current XML formatter code.   It's taking a while to break up a roughly &lt;a href=&quot;http://dev.eclipse.org/viewcvs/index.cgi/sourceediting/plugins/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java?revision=1.13&amp;amp;root=WebTools_Project&amp;amp;view=markup&quot;&gt;2000 long line Class&lt;/a&gt;, but it's going well.   The reason for the DOH moment was when I started running into having to apply the &lt;a href=&quot;http://www.refactoring.com/catalog/replaceMethodWithMethodObject.html&quot;&gt;&quot;Replace method with Method Object&quot;&lt;/a&gt; refactoring on some of the various format methods in the code.   I started getting away from running the unit tests and just kept doing the Replace Methods to get things to compile.   I had been working on this for a day and half, and hadn't run the tests.   As I was getting compilation errors, and figured I needed to clean that up.    I eventually, realized, that even if I did get all the compilation errors cleaned up I would have no clue as to where any unit test failures would have occurred.&lt;br /&gt;&lt;br /&gt;So, I scrapped everything, and replace my content with the last known time I had run the unit tests again, and proceeded again.    It's a good thing too...as soon as I did the first Replace Method with Method Object refactoring an ran the tests, they failed.   I had forgotten to make sure that the Preference settings that had been set earlier were passed to the new method object.   So I fixed that, and all the current tests passed.    Since I hadn't even run the tests before doing these type of refactorings and I had done many of these in a day without running tests, it would have been a night mare trying to figure out what wasn't working.&lt;br /&gt;&lt;br /&gt;Uncle Bob's latest post on &lt;a href=&quot;http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone&quot;&gt;Fudge anyone&lt;/a&gt;, reminded me of my own situation a bit.  I like the morals he came up with:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Moral #1&lt;/span&gt;: Fudge tastes good while you are eating it, but it makes you fat, slow, and dumb.&lt;/p&gt;    &lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Moral #2&lt;/span&gt;: Eat the damned dog food. It’ll save your posterior from your own maladroit decisions.&lt;/p&gt;&lt;/blockquote&gt;Particularly, I agree with Moral #2, use what you write in your day job.  Ideally, if you work on an editor use that editor in your day job.  You are more likely to fix things sooner if you are directly affected by it.  It's why XSL Tools has become my primary XSLT Editor, it forces me to address the issues that affect my own use everyday.   It's why JDT is such a good editor for Java development in eclipse. The JDT team uses it themselves to develop eclipse.   The same goes for PDE.</description>
	<pubDate>Fri, 02 Jan 2009 04:32:08 +0000</pubDate>
	<author>noreply@blogger.com (David Carver)</author>
</item>
<item>
	<title>Sandro Boehme: Welcome</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-8144930894367729336.post-150308073236552708</guid>
	<link>http://jcrmanagement.blogspot.com/2008/12/welc-m.html</link>
	<description>&lt;a href=&quot;http://2.bp.blogspot.com/_HyrJCpACxmw/SVQKwIKLBHI/AAAAAAAAAAw/94NHnHDzt8c/s1600-h/sunrise.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_HyrJCpACxmw/SVQKwIKLBHI/AAAAAAAAAAw/94NHnHDzt8c/s400/sunrise.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 228px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5283860084752581746&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&quot;It's not the years in your life that counts. It's the life in your years.&quot;&lt;br /&gt;These words of Abraham Lincoln pretty much describe my attitude to live. Thats why you can expect to read in this blog about the adventures I came across. You will mainly see short stories of what I experienced running the &lt;a href=&quot;http://www.eclipse.org/modeling/emft/?project=jcrm&quot;&gt;JCR Management&lt;/a&gt; component at Eclipse. But also other advantures that might be worth reading.&lt;br /&gt;As it's always inspiring to discuss a controversy or to chat with likeminded people I'm very much looking foreward to your feedback.</description>
	<pubDate>Thu, 01 Jan 2009 16:15:18 +0000</pubDate>
	<author>noreply@blogger.com (Sandro Böhme)</author>
</item>
<item>
	<title>Ed Merks: It's a Matter of Perspective</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3879044552984472733.post-2404513377870206562</guid>
	<link>http://ed-merks.blogspot.com/2009/01/its-matter-of-perspective.html</link>
	<description>Have you ever noticed how much changes depending on your point of view?&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVzFKBlwh6I/AAAAAAAAAtg/iBTsZSt4fSE/s1600-h/RedTank.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVzFKBlwh6I/AAAAAAAAAtg/iBTsZSt4fSE/s320/RedTank.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286316838642288546&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Even just a very slight change of perspective can make a significant difference.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVzFDs4yKjI/AAAAAAAAAtY/Ww8jYx8js8c/s1600-h/DarkOrangeTank.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVzFDs4yKjI/AAAAAAAAAtY/Ww8jYx8js8c/s320/DarkOrangeTank.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 141px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286316730005727794&quot; /&gt;&lt;/a&gt;&lt;br /&gt;As such, two people looking at the same thing from different view points will actually see different things.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_rFZqMGOSYY8/SVzE97PEGAI/AAAAAAAAAtQ/-IxDxXup5o0/s1600-h/LightOrangeTank.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_rFZqMGOSYY8/SVzE97PEGAI/AAAAAAAAAtQ/-IxDxXup5o0/s320/LightOrangeTank.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286316630778058754&quot; /&gt;&lt;/a&gt;&lt;br /&gt;They might argue about how it's possible that other people sees things differently.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_rFZqMGOSYY8/SVzE4Uh4NyI/AAAAAAAAAtI/3uoNH18PTXo/s1600-h/YellowTank.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_rFZqMGOSYY8/SVzE4Uh4NyI/AAAAAAAAAtI/3uoNH18PTXo/s320/YellowTank.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286316534488643362&quot; /&gt;&lt;/a&gt;&lt;br /&gt;While it's so clearly green for one person...&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_rFZqMGOSYY8/SVzExpfownI/AAAAAAAAAtA/ZMNcv_IGXwY/s1600-h/GreenTank.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_rFZqMGOSYY8/SVzExpfownI/AAAAAAAAAtA/ZMNcv_IGXwY/s320/GreenTank.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286316419857302130&quot; /&gt;&lt;/a&gt;&lt;br /&gt;It's so obviously blue to another.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_rFZqMGOSYY8/SVzEn3cjvlI/AAAAAAAAAs4/-EyKR6tFzvg/s1600-h/BlueTank.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_rFZqMGOSYY8/SVzEn3cjvlI/AAAAAAAAAs4/-EyKR6tFzvg/s320/BlueTank.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286316251803795026&quot; /&gt;&lt;/a&gt;&lt;br /&gt;It's best to keep this in mind when arguing about perceptions.  Try to take a very close look from every point of view you can imagine.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_rFZqMGOSYY8/SVzGVhJ_bUI/AAAAAAAAAto/nJMOO5M1DY0/s1600-h/FishWithRainbow.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_rFZqMGOSYY8/SVzGVhJ_bUI/AAAAAAAAAto/nJMOO5M1DY0/s320/FishWithRainbow.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 266px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5286318135605947714&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Only then will you see reality as it actually is: a diversity of shifting sizes, shapes, textures, and colors strongly influenced by the eye of the beholder.</description>
	<pubDate>Thu, 01 Jan 2009 13:46:47 +0000</pubDate>
	<author>noreply@blogger.com (Ed Merks)</author>
</item>
<item>
	<title>Doug Schaefer: Predictions for 2009</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-16474715.post-6639181941791695393</guid>
	<link>http://cdtdoug.blogspot.com/2008/12/predictions-for-2009.html</link>
	<description>I'm not usually one to make predictions. It's hard for me to tell the difference between a prediction and wishful thinking. But &lt;a href=&quot;http://www.theinquirer.net/inquirer/news/187/1050187/what-a-techie-2009-has-in-store-for-us&quot;&gt;this article over at the Inquirer&lt;/a&gt; (still the best place to get an honest take on the industry along with /.) got me thinking about a couple of things I think are going to be important in 2009. So here we go...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2009: The Year of the GPGPU&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is more a continuation of a trend but the Inq article made some great points that I think will put some spotlight on general purpose programming with GPUs. The key one, is the recent standardization of a cross platform way of programming these things, &lt;a href=&quot;http://www.khronos.org/opencl/&quot;&gt;OpenCL&lt;/a&gt;. ATI and nVidia have already signed up to provide OpenCL support for their chips and look for Intel's Larrabee platform to come with the same. I think there is still some software and hardware architectural things that need to be done to make GPGPU more efficient and easier to program. Look for &lt;a href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt; (which needs an article on it's own) to play a role, &lt;a href=&quot;http://www.youtube.com/watch?v=syzjQJjwpyM&amp;amp;feature=related&quot;&gt;as it already is with OpenGL&lt;/a&gt;, and look for one of the chip vendors to put a GPU on the memory bus shared with the CPU and make these things sing.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2009: The year of WebKit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ok, yes, I'm playing it safe with these predictions. &lt;a href=&quot;http://www.webkit.org&quot;&gt;WebKit&lt;/a&gt; is already the base for Apple Safari, Google Chrome, and a host of Linux based browsers, so it already has a ton of momentum. The reason I think WebKit is going to the next level, is first of all the top of the class performance of it's new JavaScript VM (and I can't imagine why Google would continue with V8 in Chrome). But also, I am impressed with how easy it is to create your own WebKit based browser, and how easy it is to create a Linux based platform that uses WebKit as it's front end (launch X, launch a simplified WebKit shell in fullscreen, done). I expect to see a lot more mobile internet devices built this way. At the very least, it gives a reason for embedded developers to care about AJAX.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;C++0x won't be C++09&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I think that's a forgone conclusion but no one really wants to admit it yet. But look for the vote to finish this year at least. &lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B0x&quot;&gt;C++0x will be an exciting evolution&lt;/a&gt; of C++ into the next generation. No it doesn't have garbage collection, yet, but it does have smart pointers that do the job better if you use them right. C++0x makes it easier to do a lot of things, and the introduction of closures and lambda functions and expressions will breath some life into this stalwart of the software &lt;b&gt;&lt;i&gt;engineering&lt;/i&gt;&lt;/b&gt; community.&lt;br /&gt;&lt;br /&gt;Well, that's it for now. If I think of more over the next couple of days I'll post them. There are a lot of things I hope will happen, but i'm not sure they will. But one thing is for sure, open source is here to stay and is becoming a core business model that companies still need to understand and learn to use effectively and I will continue with my work with Eclipse and Wind River to help figure that out and spread the word.&lt;br /&gt;&lt;br /&gt;Have a safe and happy New Year! See you on the other side.</description>
	<pubDate>Wed, 31 Dec 2008 18:44:29 +0000</pubDate>
	<author>noreply@blogger.com (Doug Schaefer)</author>
</item>
<item>
	<title>Thomas Kratz: P2 deployment in enterprise applications</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4243137685413731189.post-4336094807336455684</guid>
	<link>http://thomaskratz.blogspot.com/2008/12/p2-deployment-in-enterprise.html</link>
	<description>So many times I asked people I met, why they have choosen a browser based solution for their business applications that are never meant to appear on the internet. And, as was to be expected, most of the time I didn't hear many meaningful arguments. One of the arguments that people tell in almost any cases is &quot;no trouble with deployment&quot;.&lt;br /&gt;&lt;br /&gt;I remember trying different strategies for rich client apps deployment. Some  years ago we used webstart with a Windows shortcut, which sometimes made some trouble (I never made it deeper into it) when it didn't get the changes and started from its cache instead of downloading the updates.&lt;br /&gt;&lt;br /&gt;In a client server environment it's critical that clients are synced when service api breaking changes are made on the server side. So after many years I came back to the problem with my project Mango (its about publishing business btw.) which is implemented on Eclipse RCP for the sake that I believe its the best platform we have in java-land. For sometime (as with many projects) we had only a single production installation and I didn't put much effort in installation issues. I told the admins what was to do to get it running.&lt;br /&gt;&lt;br /&gt;But times changing and installation count is rising, I noticed that I had to improve things around deployment. Typical update scenarios that eclipse mechanisms adress don't match truly what we need, because we can't update from a central point since client and server updates must be synced. As for now I decided against an automated server update (which I may rethink...).&lt;br /&gt;&lt;br /&gt;But with some effort (had to do some minor but hard to find tweaks on the current p2 implementation) we now install the p2 repository for our client on an embedded webserver in our server installation. With again some tweaking I made the p2 installer app webstartable and you guess, it too comes with the server installation.&lt;br /&gt;&lt;br /&gt;Now its a single selfextracing jar, that updates the server platform, and runs all needed changes (database schema changes, sometimes data needs to be converted etc). For a single turn users need to be emailed the link to the installer jnlp to get the current client installed on their boxes. From now on (it cost me some days, my wife can tell it was tricky...) whenever one of our users decides to update his installation to the current release, its a simple one liner to update the whole scenario.&lt;br /&gt;&lt;br /&gt;As I ran out of time its a little q&amp;amp;d trick on the client, as it simply starts up with a null perspective and disabled menus when server api has changed. It then updates itself from the p2 repository and needs to be restarted.&lt;br /&gt;&lt;br /&gt;Things that still need to be done is notifing running clients when the server goes down for maintenance, but that could gives us room for new ideas in any way.&lt;br /&gt;&lt;br /&gt;So to say, what I guess I will hear now is, that in big client installation count this will still need high network traffic when on monday mornings people fire up their clients and all request an update at nearly the same time. But without having scientific proof I guess that with p2 we can update to the point what needs to be updated. So actual download size (in our case, the client code is actually quite small compared to the base platform plugins it depends on) won't be more than some megs.&lt;br /&gt;&lt;br /&gt;So next time I stumble across the above arguments, I think I'll have something up the sleeve.</description>
	<pubDate>Wed, 31 Dec 2008 14:20:51 +0000</pubDate>
	<author>thomas.kratz@eiswind.de (Tom)</author>
</item>
<item>
	<title>Wayne Beaton: EclipseCon Very Early Registration Deadline approaching…</title>
	<guid isPermaLink="false">http://dev.eclipse.org/blogs/wayne/?p=573</guid>
	<link>http://dev.eclipse.org/blogs/wayne/2008/12/29/eclipsecon-very-early-registration-deadline-approaching/</link>
	<description>&lt;p&gt;The Very Early Registration Deadline for &lt;a href=&quot;http://www.eclipsecon.org/2009&quot;&gt;EclipseCon 2009&lt;/a&gt; is December 31st. &lt;a href=&quot;http://www.eclipsecon.org/2009/registration&quot;&gt;Register today&lt;/a&gt; and save some money!&lt;/p&gt;</description>
	<pubDate>Tue, 30 Dec 2008 02:41:24 +0000</pubDate>
</item>
<item>
	<title>Chris Aniszczyk: PDT 2.0 is available!</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-16647950.post-2196729599247635858</guid>
	<link>http://mea-bloga.blogspot.com/2008/12/pdt-20-is-available.html</link>
	<description>For those who have to hack PHP occasionally, PDT 2.0 was released &lt;a href=&quot;http://www.eclipse.org/pdt/release-notes/pdt2_0.php&quot;&gt;today&lt;/a&gt;. There's a world of a difference between 1.0 and 2.0, so I recommend you give it a &lt;a href=&quot;http://www.eclipse.org/pdt/downloads/&quot;&gt;spin&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_2017w9FY4Do/SVkozIaM_mI/AAAAAAAAA-U/59e6ZUU-cLg/s1600-h/opentypephp.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_2017w9FY4Do/SVkozIaM_mI/AAAAAAAAA-U/59e6ZUU-cLg/s320/opentypephp.jpg&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 221px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5285300496591814242&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's good to have access to 'Open Type' now in PHP development :)&lt;br /&gt;&lt;br /&gt;PDT 2.1 should be released in time for &lt;a href=&quot;http://wiki.eclipse.org/Galileo&quot;&gt;Galileo&lt;/a&gt; so try 2.0 out and give any feedback to the PDT team if you want to see new features by the time Galileo ships.</description>
	<pubDate>Mon, 29 Dec 2008 19:47:36 +0000</pubDate>
	<author>noreply@blogger.com (Chris Aniszczyk (zx))</author>
</item>
<item>
	<title>BUG Community: OpenEmbedded Tools for Eclipse (OTE) 0.4.3 Live</title>
	<guid isPermaLink="true">http://community.buglabs.net/kgilmer/posts/48-OpenEmbedded-Tools-for-Eclipse-OTE-4-3-Live</guid>
	<link>http://community.buglabs.net/kgilmer/posts/48-OpenEmbedded-Tools-for-Eclipse-OTE-4-3-Live</link>
	<description>&lt;p&gt;After several weeks of eating my own dogfood, several critical bug fixes in the core file functionality of OTE have been addressed.  Reading through the BitBake python code is not that bad actually, and the source organization makes a lot of sense.  This release offers no new functionality, it just crashes less :)  Next stop: &quot;Import Recipe as Project&quot;  The updatesite is available at http://bugcommunity.com/downloads/files/ote/updatesite&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;620&quot; alt=&quot;created on: 12/29/08&quot; src=&quot;http://community.buglabs.net/photos/0000/0165/bbte_0.4.3.png?1230575904&quot; style=&quot;border: 1px solid black; vertical-align: top;&quot; height=&quot;290&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 29 Dec 2008 18:39:25 +0000</pubDate>
</item>
<item>
	<title>Ed Merks: It's Here, it's Finally Here!</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3879044552984472733.post-7648957832674879959</guid>
	<link>http://ed-merks.blogspot.com/2008/12/its-here-its-finally-here.html</link>
	<description>The &lt;a href=&quot;http://www.informit.com/title/9780321331885&quot;&gt;second edition of the EMF book&lt;/a&gt; physically arrived at my doorstep today!  Here she is, modeling her new improved jacket with the Ecore Tools diagram of the Ecore model as a backdrop.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVkTpmEBkdI/AAAAAAAAAsw/jge-9DbkXxE/s1600-h/EMFBook.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVkTpmEBkdI/AAAAAAAAAsw/jge-9DbkXxE/s320/EMFBook.jpg&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 274px; height: 320px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5285277243008979410&quot; /&gt;&lt;/a&gt;&lt;br /&gt;What a stunningly fashionable combination!  With almost twice as much meaty content that's more than twice as excellent as the last edition, I expect it will be all the rage in the new year.  According to Amazon, if you order today, it will still arrive in time to ring in the new year on Wednesday night.  We live in a world of instant gratification...&lt;a href=&quot;http://3.bp.blogspot.com/_rFZqMGOSYY8/SVkTpmEBkdI/AAAAAAAAAsw/jge-9DbkXxE/s1600-h/EMFBook.jpg&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/span&gt;</description>
	<pubDate>Mon, 29 Dec 2008 18:31:37 +0000</pubDate>
	<author>noreply@blogger.com (Ed Merks)</author>
</item>
<item>
	<title>Eclipse Enthusiasts Poznań: Eclipse Debugger, part II</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-3691419744299351480.post-461917972510801239</guid>
	<link>http://eclipser-blog.blogspot.com/2008/12/eclipse-debugger-part-i_22.html</link>
	<description>As I said in the Part I, this time I will focus on the Hit Count property and the Conditions of breakpoints. If you go to the breakpoint's properties (right click on the breakpoint and choose &lt;span style=&quot;font-style: italic;&quot;&gt;Breakpoint properties...&lt;/span&gt; option) you will see two interesting options:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Hit count&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_9ZtWy8hlUH8/SU-WXAc6iLI/AAAAAAAAEWM/hVA5ZjKbZuo/s1600-h/hit_count.PNG&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_9ZtWy8hlUH8/SU-WXAc6iLI/AAAAAAAAEWM/hVA5ZjKbZuo/s320/hit_count.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 273px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5282606209931315378&quot; /&gt;&lt;/a&gt;When we enable the &lt;span style=&quot;font-style: italic;&quot;&gt;Hit Count&lt;/span&gt; and give some positive integer value X the breakpoint will suspend the execution when it would be hit Xth time.&lt;br /&gt;Lets illustrate this with example. If we consider the following code:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SU-bfdv7JrI/AAAAAAAAEWU/PoxQPPxftmA/s1600-h/code.PNG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SU-bfdv7JrI/AAAAAAAAEWU/PoxQPPxftmA/s320/code.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 185px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5282611852792768178&quot; /&gt;&lt;/a&gt;and we set the Hit count of the breakpoint (look at the picture above to see where the breakpoint is placed) to 7 we will find the following output in the &lt;span style=&quot;font-style: italic;&quot;&gt;Console &lt;/span&gt;view before the execution is suspended:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SU-d-iO2ZuI/AAAAAAAAEWc/i5peA9KoVoQ/s1600-h/console.PNG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SU-d-iO2ZuI/AAAAAAAAEWc/i5peA9KoVoQ/s320/console.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 103px; height: 163px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5282614585595422434&quot; /&gt;&lt;/a&gt;So as you can see the execution was suspended when the breakpoint was hit 7th time.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Conditions&lt;/span&gt;&lt;br /&gt;Sometime everyone faces the situation when we want a breakpoint to be active only if some condition is fulfilled (e.g. we go in the loop through a 1000 elements list o people's names and we want to debug this loop for a particular name and we don't want to go 1000 times through this loop). To see how it works let's take the same code and let's set the condition the following way:&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_9ZtWy8hlUH8/SU-j4SiGGmI/AAAAAAAAEWk/b37EN-W33Kw/s1600-h/cindition.PNG&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_9ZtWy8hlUH8/SU-j4SiGGmI/AAAAAAAAEWk/b37EN-W33Kw/s320/cindition.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 277px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5282621075371727458&quot; /&gt;&lt;/a&gt;In this case the output in the &lt;span style=&quot;font-style: italic;&quot;&gt;Console &lt;/span&gt;view will look as follows:&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SU-kLvC6QYI/AAAAAAAAEWs/adJumUU2RNo/s1600-h/cindition2.PNG&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_9ZtWy8hlUH8/SU-kLvC6QYI/AAAAAAAAEWs/adJumUU2RNo/s320/cindition2.PNG&quot; alt=&quot;&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 104px; height: 185px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5282621409443070338&quot; /&gt;&lt;/a&gt;The given condition is evaluated in the context of the breakpoint, so we can use all the variables that are available the context. Of course you don't have to use the numerical conditions, any expression that gives boolean answer can be used!</description>
	<pubDate>Mon, 29 Dec 2008 10:47:05 +0000</pubDate>
	<author>noreply@blogger.com (Jakub Jurkiewicz)</author>
</item>
<item>
	<title>Doug Gaff: I’m addicted to information</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-18361809.post-4204345071490636911</guid>
	<link>http://douggaff.blogspot.com/2008/12/im-addicted-to-information.html</link>
	<description>&lt;span&gt;&lt;p&gt;Over this lovely holiday break, I have decided to catch up on {everything}. Starting next year off with a clean to do list seems like a good idea. Before I left work for the holidays, I managed to get my inbox down to 3 or 4 items. (If you think you're one of those 3, you'd better remind me via email.) But email is just one of my problems, an antiquated one in fact.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Most of the good stuff comes in through RSS feeds. I counted them a couple of days ago: &lt;strong&gt;97 feeds&lt;/strong&gt;. They breakdown roughly into the following categories: Business, Culture, Humor, Software, Technology, Work, odds and ends. Unfortunately, many of these feeds have high update rates, like &lt;a href=&quot;http://www.boingboing.net/&quot;&gt;BoingBoing&lt;/a&gt;, &lt;a href=&quot;http://lifehacker.com/&quot;&gt;LifeHacker&lt;/a&gt;, and the collection of work-related feeds. Even &lt;a href=&quot;http://www.planeteclipse.org/planet/&quot;&gt;PlanetEclipse&lt;/a&gt;, my first RSS feed, has become a challenge to follow in my expanding list. I've already dropped several others because the signal-to-noise ratio was too low.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;But I can't let go of my current list of 97. Every day I think, maybe I'll drop this one or that one, but then I pick up a new software utility, laugh at a good cartoon, find out about a &lt;a href=&quot;http://www.kk.org/cooltools/&quot;&gt;cool tool&lt;/a&gt;, or learn something new about art/politics/technology/photography/music/whatever. And almost every day, I find YAF (yet another feed) that I think maybe I'll subscribe to…just for a little while…just to try out it. Dammit.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;We have reached information saturation: Email, Twitter, Facebook, YouTube, podcasts, blogs, RSS, …. (I don't even turn on my TV anymore.) Either someone needs to install one of those Matrix ports into the back of my skull, or we need to move way beyond reddit, delicious, and digg to get useful, personalized information.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Oh well. Here's to a New Year and another 100 feeds.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</description>
	<pubDate>Mon, 29 Dec 2008 03:11:12 +0000</pubDate>
	<author>noreply@blogger.com (Doug Gaff)</author>
</item>
<item>
	<title>Tonny Madsen: Screen Flows support released</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-35738028.post-3834729114845550485</guid>
	<link>http://blog.rcp-company.com/2008/12/screen-flows-support-released.html</link>
	<description>It took a while longer than promised, but now I am happy to release the screen flow implementation I talked about at &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2008/sessions?id=37&quot;&gt;Eclipse Summit Europe '08&lt;/a&gt; to the public.&lt;br /&gt;
&lt;br /&gt;
Just go to &lt;a href=&quot;http://code.google.com/p/screen-flows-in-eclipse/&quot;&gt;http://code.google.com/p/screen-flows-in-eclipse/&lt;/a&gt; and you should find both the presentation as well as all the needed sources. If you find any problems with the implementation or just find a way to enhance them, then please free to submit your changes.</description>
	<pubDate>Sun, 28 Dec 2008 22:32:07 +0000</pubDate>
	<author>noreply@blogger.com (Tonny Madsen)</author>
</item>
<item>
	<title>Craig Setera: Mobile Tools for Java Release 0.9.1</title>
	<guid isPermaLink="false">http://eclipseme.org/blog/?p=68</guid>
	<link>http://eclipseme.org/blog/2008/12/28/mobile-tools-for-java-release-091/</link>
	<description>&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Release 0.9.1 of the MTJ project is available to download from the MTJ website. You can access the release from:&lt;/p&gt;
&lt;p&gt;Download site: &lt;a href=&quot;http://download.eclipse.org/dsdp/mtj/downloads/drops/R-0.9.1-200812231340/index.html&quot; target=&quot;_blank&quot;&gt;http://download.eclipse.org/dsdp/mtj/downloads/drops/R-0.9.1-200812231340/index.html &lt;/a&gt;&lt;br /&gt;Via update manager: &lt;a href=&quot;http://download.eclipse.org/dsdp/mtj/updates/0.9/stable/&quot; target=&quot;_blank&quot;&gt;http://download.eclipse.org/dsdp/mtj/updates/0.9/stable/&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Below is a list of the main new features that are available in the new release:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Multidevice support: each MTJ project can now have several devices associated to it&lt;/li&gt;
&lt;li&gt;Preprocessor enhancements: there is code assist on the preprocessor tags&lt;/li&gt;
&lt;li&gt;MIDlet Unit Test Support: it is possible to create unit tests cases/suite to MIDlet classes. The tests can be packed with the MIDlet suite&lt;/li&gt;
&lt;li&gt;MIDlet localization: There is now one option on the MIDlet suite to localize all Strings that are used on the MIDlet Suite&lt;/li&gt;
&lt;li&gt;MIDlet suite libraries: There is a new extension point that can be used by content developers to provider libraries that can be packed with the MIDlet suite&lt;/li&gt;
&lt;li&gt;Import Symbol Set definitions: Besides creating symbols and symbols set, MTJ users are now able to import predefined symbol sets based on Antenna format&lt;/li&gt;
&lt;li&gt;Content assist on the JAD Editor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this release, besides the valuable community contributions during conference calls, email discussions and bug reports, there were code contributions from the following companies:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Craig Setera (individual)&lt;/li&gt;
&lt;li&gt;Inlogic Software ltd&lt;/li&gt;
&lt;li&gt;Motorola&lt;/li&gt;
&lt;li&gt;Nokia&lt;/li&gt;
&lt;li&gt;Sybase&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks for the hard work of everyone that contributed to this release.  The project will be scheduling a call in early January to talk about MTJ 1.0 scope.
&lt;/p&gt;&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description>
	<pubDate>Sun, 28 Dec 2008 18:25:46 +0000</pubDate>
</item>
<item>
	<title>Dave Orme: On collecting ideas for a simplified data binding API</title>
	<guid isPermaLink="true">http://www.coconut-palm-software.com/the_new_visual_editor/doku.php?id=blog:on_collecting_ideas_for_a_simplified_data_binding_api</guid>
	<link>http://www.coconut-palm-software.com/the_new_visual_editor/doku.php?id=blog:on_collecting_ideas_for_a_simplified_data_binding_api</link>
	<description>&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

In my previous entry, I referred to &lt;a href=&quot;http://toedter.com/blog/?p=36&quot; class=&quot;urlextern&quot; rel=&quot;nofollow&quot; title=&quot;http://toedter.com/blog/?p=36&quot;&gt;Kai's blog&lt;/a&gt; where various community members wished for a simpler data binding &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; and asked for comments.
&lt;/p&gt;

&lt;p&gt;
This blog is intended to collect the various proposals I've seen for simplifying data binding into one place so we can discuss their relative merits.
&lt;/p&gt;

&lt;p&gt;
First, I'll state my personal biases.

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Although I find it a bit verbose, I still really like the existing data binding &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;.  This is because every other &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; I've tried has imposed assumptions about what I wanted to do that eventually constrained me too much.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Given the previous, I prefer to keep the existing &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; and view it like an assembly language for bindings.  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It's easy to imagine a convenience layer added on top of the existing code; this way if you need data binding's full power, you drop down to the lower level of abstraction.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Second, what are the various ways to raise the level of abstraction?
&lt;/p&gt;

&lt;/div&gt;
&lt;h2&gt;&lt;a id=&quot;have_two_sets_of_ui_widgetsunbound_and_bound_widgets&quot; name=&quot;have_two_sets_of_ui_widgetsunbound_and_bound_widgets&quot;&gt;Have two sets of UI widgets: unbound and bound widgets&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

The bindable widgets themselves have the intelligence needed to bind them.
&lt;/p&gt;

&lt;p&gt;
I dislike this approach for several reasons.

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From a community point of view, this forces authors of SWT widgets to build two versions of every widget: a normal one and a bindable one.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The bindable widget nearly always makes assumptions about the sorts of things you might want to bind to it.  For example, table controls in the Microsoft world at least used to assume that you were binding to a database cursor.  Android (which also uses the bindable widget approach) solves this problem somewhat by letting you implement your own database cursor.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the end, this doesn't feel like the optimum separation of concerns.  When reading the &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; for a control, you have to keep in mind that APIs for dealing with the control itself are mixed with APIs for binding to it.  The result is a less intentional &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; in the control itself.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a id=&quot;layer_an_external_dsl_on_top_of_data_binding&quot; name=&quot;layer_an_external_dsl_on_top_of_data_binding&quot;&gt;Layer an external DSL on top of data binding&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

This is the approach of things like Beans Binding, as well as several w