<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;A08HSHc4cCp7ImA9WhRSFUs.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752</id><updated>2011-11-17T14:43:59.938-08:00</updated><category term="osgi" /><category term="eclipse" /><category term="shortcuts" /><title>Parenthetical Thoughts</title><subtitle type="html">(Random musings on life, technology, and the intersection thereof)</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/parenthetical-thoughts" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="parenthetical-thoughts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEUDRnwycSp7ImA9WxRUEkU.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-7114397818807356419</id><published>2008-09-30T06:35:00.000-07:00</published><updated>2008-11-21T07:44:37.299-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T07:44:37.299-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="osgi" /><title>Whiteboarding:  A form of torture?</title><content type="html">The whiteboard pattern is a pretty well-known "best practice" in the OSGi community.  For this reason, I was somewhat surprised to hear from a co-worker (echoed by a couple folks at EclipseCon) that not everyone considers this pattern a blessing.  Unfortunately, I have never seen this argument laid out in writing before, so I thought I would give it a shot in this blog entry--apologies if I do it no justice.&lt;br /&gt;&lt;br /&gt;The whiteboard pattern is basically a modification on the standard listener pattern in which the content publisher looks up its consumers in the service registry instead of the consumers hooking themselves into the publisher.  For a deeper understanding, there is lots of good info available including &lt;a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.osgi.org%2Fwiki%2Fuploads%2FLinks%2Fwhiteboard.pdf&amp;ei=zPocScW5JtiCtgeCsKzlCQ&amp;usg=AFQjCNG4eKUt--DACMtWg3w0L8U_JxlOsw&amp;sig2=VtQq0-guezpEZ7_vVhGFcw"&gt;this whitepaper&lt;/a&gt;.  This pattern purportedly works much better (fewer lines of code, less prone to error, etc.) in the dynamic world of OSGi services...so why wouldn't everyone love that?&lt;br /&gt;&lt;br /&gt;The answer (and I suspect this is an eye-of-the-beholder thing) is simplicity.  Although the code presented in the whitepaper makes it pretty clear that using the basic framework to implement the traditional listener pattern can be quite burdensome, I am not convinced it must be this way.  With the improvements in service frameworks like Declarative Services, it is becoming easier and cheaper to develop a system based around service interactions.  So if the programming complexity  becomes similar, in what way does the whiteboard pattern introduce additional complexity?&lt;br /&gt;&lt;br /&gt;I can say from first-hand experience that the loosely-coupled nature of OSGi services can be a dual edged sword...powerful yes, but also difficult to follow.  When you step into a large project with lots of service dependencies, it can be hard to untangle the interactions and see how the pieces fit together.  This effort is made even more difficult in code which uses the whiteboard pattern.  The registry becomes entangled with a bunch of listener objects, which have no clear indication of who should call them or what service they are providing to the system. Additionally, the developer is expected to know that they can hook into a particular producer by  implementing some standard interface and publishing it to the registry.  This type of hidden interaction model can be very tricky to find and needs to be well documented to be effective...or else it can start to feel a bit too 'magical'.&lt;br /&gt;&lt;br /&gt;The beauty of the service registry is that it gives us a single place for safe, dynamic, loosely-coupled bundle interaction.  So what we would really like to see in the registry is the "service" a particular bundle is offering to the other bundles in the system.  On the one hand we have a pool of content consumers offering only a "listen" service, while on the other we have a content publisher who allows you to register your interest with its content.  Now which of these bundles do you think more accurately fits the average developer's notion of "service"?  I wonder why we don't see this type of "whiteboard" pattern in distributed SOA systems...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-7114397818807356419?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/7114397818807356419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=7114397818807356419" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/7114397818807356419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/7114397818807356419?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/09/whiteboarding-form-of-torture.html" title="Whiteboarding:  A form of torture?" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUUDQ3s4eyp7ImA9WxRVEE4.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-4199223133600904289</id><published>2008-09-05T08:17:00.000-07:00</published><updated>2008-11-06T21:54:32.533-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-06T21:54:32.533-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="shortcuts" /><title>Keyboard Shortcuts - Others</title><content type="html">In my previous post I covered my favorite Eclipse shortcuts fairly extensively.  Here are some of my favorites in other programs:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Browsers/Apps&lt;/h3&gt;Most folks know that Firefox, IE7, Chrome and some other tabbed interfaces provide the following shortcuts for working with tabs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + T =&gt; New Tab&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + Tab =&gt; Next Tab&lt;/li&gt;&lt;li&gt;Ctrl + W =&gt; Close Tab&lt;/li&gt;&lt;/ul&gt;You can also hold the Ctrl key when following a link to open it in a new tab in the background.  Similarly, you can hold the Shift key instead to have it open in a new window altogether.&lt;br /&gt;&lt;br /&gt;Perhaps a bit less known is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alt + D =&gt; Goto the Address Bar&lt;/li&gt;&lt;/ul&gt;While there are similar shortcuts to do the same thing, this one will work across Firefox, Chrome, Internet Explorer, Windows Explorer (the Windows File Manager) and most other apps I've used with a similar layout.&lt;br /&gt;&lt;br /&gt;I have begun to use this Alt + D shortcut in combination with the Quick Search feature in Firefox.  This is a feature that allows you associate a keyword in the address bar with a particular type of search.  Firefox comes preloaded with a number of useful ones, including "wp" for wikipedia (though my Linux version of Firefox 3 seems to be missing these for some reason).  To try this out, simply navigate to the address bar and type "wp firefox".  This should pull up a page with the results of the wikipedia search.  You can even set your own Quick Searches (much like setting a bookmark).  For more info on this nice little feature, check out &lt;a href="http://lifehacker.com/software/geek-to-live/geek-to-live-fifteen-firefox-quick-searches-129658.php"&gt;http://lifehacker.com/software/geek-to-live/geek-to-live-fifteen-firefox-quick-searches-129658.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, there are the page search shortcuts (at least in Firefox).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;/ =&gt; Find As You Type Text&lt;/li&gt;&lt;li&gt;' =&gt; Find As You Type Link&lt;/li&gt;&lt;/ul&gt;I still tend to use the Find shortcut Ctrl + F for text searches instead of / because you can more easily toggle through multiple hits.  However, the &lt;span style="font-style: italic;"&gt;', search_string, Enter&lt;/text_search&gt;&lt;/span&gt; sequence is a very useful one for quickly finding and following a link on the page.&lt;br /&gt;&lt;br /&gt;Finally, some new-fangled, web 2.0, RIA, Ajax-enabled, Software-as-a-Service webpages provide their own shortcuts.  The only ones I know of and use are the Google shortcuts (especially for Gmail and Reader).  In particular, I find the use of j/k and n/p to navigate lists/items quite useful.  For a useful reference list, be sure to type '?' while in one of these services.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Operating Systems&lt;/h3&gt;Operating systems usually provide some useful shortcuts for managing the desktop and the running applications.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alt + Tab =&gt; Switch between applications&lt;/li&gt;&lt;/ul&gt;If you continue to hold the Alt key (and have multiple apps running), pressing Tab multiple times will cycle you through a list of the running applications.  Interestingly, there is a lesser known Alt + Esc shortcut which can be used to switch between applications in-order (queue) as apposed to the last used (stack).&lt;br /&gt;&lt;br /&gt;On my work computers I use Windows XP and have gotten familiar with a number of the special windows shortcuts (many involving that silly little "windows" key between Ctrl and Alt on the keyboard).  Of these shortcuts, perhaps my favorite is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Winkey + D =&gt; Show Desktop (Toggle)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;However, for some reason, this shortcut doesn't work on my T60p Thinkpad!  For more shortcut-related info on the Windows Key, be sure to check out &lt;a href="http://www.codinghorror.com/blog/archives/000378.html"&gt;http://www.codinghorror.com/blog/archives/000378.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well that is enough for now.  I will have to write new posts or update these ones as I find particularly useful shortcuts which I have missed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-4199223133600904289?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/4199223133600904289/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=4199223133600904289" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/4199223133600904289?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/4199223133600904289?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/09/keyboard-shortcuts-others.html" title="Keyboard Shortcuts - Others" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DEMNQn85eyp7ImA9WxRSF0g.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-1736190250975716908</id><published>2008-08-29T07:28:00.000-07:00</published><updated>2008-09-18T09:48:13.123-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-18T09:48:13.123-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="shortcuts" /><title>Keyboard Shortcuts - Eclipse</title><content type="html">Whether you call them &lt;a href="http://parenthetical-thoughts.blogspot.com/2008/07/keyboard-shortcuts.html"&gt;Keyboard Shortcuts&lt;/a&gt;, Key Bindings, Hotkeys, or what-have-you the Eclipse IDE contains a great number of useful keyboard shortcuts...from general navigation to coding/editing and running/debugging.  In fact, beneath the surface lies an entirely extensible &lt;a href="http://wiki.eclipse.org/index.php/Platform_Command_Framework"&gt;command and binding framework&lt;/a&gt;, which I have only briefly investigated.&lt;br /&gt;&lt;br /&gt;One simple shortcut for displaying a list of these shortcuts is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + Shift + L =&gt; Show Key Assist&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;This same feature is available in some Eclipse RCP products as well, including Lotus Notes 8.  Unfortunately, I don't find such a list all that useful...especially if I am looking for one binding/command in particular.  Fortunately, in the Eclipse IDE at least, hitting Ctrl+Shift+L again will open the key binding preferences page, found in Preferences under General-&gt;Keys.  This page contains a long list of all the key bindings in your system and is also equipped with a fancy filtering search function which is VERY useful for finding both commands and shortcuts...as well as letting you set your own custom bindings.&lt;br /&gt;&lt;br /&gt;Here is a list of some of the most useful Eclipse shortcuts I use:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Disclaimer: my shortcuts are very Java(JDT)/Plug-in(PDE) focused.  Similar shortcuts are probably available in CDT or other packages, especially given the ongoing work to provide JDT-like functionality via projects such as the DLTK.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Common&lt;/span&gt;&lt;br /&gt;There is something to be said for de facto shortcuts which work across all types of programs.  Eclipse does a good job in this respect by implementing some shortcuts that are common to many programs.  Such shortcuts include&lt;br /&gt;&lt;ul&gt;&lt;li style="font-style: italic;"&gt;[update: I thought Ctrl+Tab was used to tab through the open editors, but I see now the default for this command is Ctrl+F6.  Another command I would find useful is a next tab command for navigating the bottom tabs found in editors such as the Plug-in Manifest Editor.]&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + W =&gt; Close Tab&lt;/li&gt;&lt;li&gt;Ctrl + N =&gt; New (Other...)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Navigation&lt;/span&gt;&lt;br /&gt;One of the tasks which led to my constant use of the mouse in Eclipse was the simple navigation between views/perspectives/editors/etc.  While each of these tasks has its own set of commands (Alt+Shift+Q was particularly useful for me to open/navigate to different views), I recently discovered the master of all shortcuts&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + 3 =&gt; Quick Access&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Or as I like to call it, the "find whatever I'm looking for" command.  This one command will give you a filtered search for perspectives, views, wizards, command, etc.  The thing that makes this command even more useful is that it caches your command choice to provide a customized list of your common commands.  While I still use Ctrl+E to activate an editor and Ctrl+N to launch the New-&gt;Other... wizard (I find it tricky to filter between those options), this is definitely one of my favorite shortcuts.&lt;br /&gt;&lt;br /&gt;Most people I know are familiar with some common navigation shortcuts such as&lt;br /&gt;&lt;ul&gt;&lt;li&gt;F3 =&gt; Open Declaration&lt;/li&gt;&lt;li&gt;F2 =&gt; Open Tooltip&lt;/li&gt;&lt;/ul&gt;but they are nonetheless worth mentioning.  Similar functionality is available using Ctrl+click.&lt;br /&gt;&lt;br /&gt;Eclipse provides some useful views for navigation, including the type hierarchy and outline views, but instead of letting these views clog your precious screen real-estate, you can use their quick command options instead:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + O =&gt; Quick Outline (x2 to toggle show/hide inherited members)&lt;/li&gt;&lt;li&gt;Ctrl + T =&gt; Type Hierarchy (x2 to toggle between supertype/subtype hierarchies)&lt;/li&gt;&lt;/ul&gt;In additional to the normal Find/Replace (Ctrl+F) command, Eclipse provides an advanced extensible search feature, which provides customizable scoped searches for particular resources such as Java Search, Plug-in Search, and standard global search.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + H =&gt; Search&lt;/li&gt;&lt;/ul&gt;Although this feature provides powerful queries for all sorts of resources, I primarily use it for doing global/workspace file searches based on text and file type.  It is also worth pointing out that the file search provides a global Replace... button as well if you look for it.  For Java-specific searches, I usually find myself using some other useful bindings instead:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + G =&gt; Declarations in Workspace&lt;/li&gt;&lt;li&gt;Ctrl + Shift + G =&gt; References in Workspace&lt;/li&gt;&lt;/ul&gt;Somewhat related, the call hierachy view is a very useful way to figure out who calls a method&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + Alt + H =&gt; Call Hierarchy&lt;/li&gt;&lt;/ul&gt;Another command I use religiously, is the open resource command&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + Shift + R =&gt; Open Resource&lt;/li&gt;&lt;/ul&gt;Similarly, the open type and open plug-in artifact commands are very useful when you know which type of resource you are looking for.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + Shift + T =&gt; open type&lt;/li&gt;&lt;li&gt;Ctrl + Shift + A =&gt; open plug-in artifact*&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Editing&lt;/span&gt;&lt;br /&gt;Eclipse also provides some useful commands for use while programming.  Perhaps the best know example would be the content assist (Ctrl+Space) feature.  This binding will also rotate through a list of (customizable) templates/proposals if you press it more than once.&lt;br /&gt;&lt;br /&gt;Another prevalent shortcut is the quick fix.  This command seems to get better with each version of eclipse (especially for OSGi-related issues).  I also use the lesser know quick assist command for assigning statements to fields (Ctrl+2, F) and local variables (Ctrl+2, L). &lt;ul&gt;&lt;li&gt;Ctrl + 1 =&gt; Quick Fix&lt;/li&gt;&lt;li&gt;Ctrl + 2 =&gt; Quick Assist (Assign To)&lt;/li&gt;&lt;/ul&gt; Another useful editing shortcut is the formatting command&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + Shift + F =&gt; format&lt;/li&gt;&lt;/ul&gt;For the longest time I used Ctrl+I to fix indentation issue, in part because I found the format option too extreme.   However, after investing a little time in learning the formatting preferences, I now tend to format just about everything.&lt;br /&gt;&lt;br /&gt;Eclipse is also chock full of refactoring/source assistance.  Although each of these menus is available via shortcut (Alt+Shift+T and Alt+Shift+S), my favorite refactoring shortcuts are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alt + Shift + R =&gt; Rename&lt;/li&gt;&lt;li&gt;Alt + Shift + Z =&gt; Surround With&lt;/li&gt;&lt;li&gt;Alt + Shift + M =&gt; Extract Method&lt;/li&gt;&lt;/ul&gt;Both Surround With (try/catch, loops, etc) and Extract Method are quite useful for optimizing common tasks.  However, the Rename shortcut in particular has been a real time-saver for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Run/Debug&lt;/span&gt;&lt;br /&gt;Finally I would be remiss to list my favorite run/debug shortcuts, though I think these are fairly self-explanatory:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;F11 =&gt; Run&lt;/li&gt;&lt;li&gt;Ctrl + F11 =&gt; Debug&lt;/li&gt;&lt;li&gt;F5 =&gt; Step Into&lt;/li&gt;&lt;li&gt;F6 =&gt; Step Over&lt;/li&gt;&lt;li&gt;F7 =&gt; Step Return&lt;/li&gt;&lt;li&gt;F8 =&gt; Resume&lt;/li&gt;&lt;li&gt;Ctrl + R =&gt; Run to Line&lt;/li&gt;&lt;li&gt;Ctrl + click =&gt; &lt;a href="http://eclipse-debug.blogspot.com/2008/07/remember-hyperlink-debugging-rocks.html"&gt;Step Into Method&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + F2 =&gt; Terminate&lt;/li&gt;&lt;/ul&gt;One thing worth noting here is that the F11 run/debug command used to always launch the previously launched app...but it will now default to whatever project is associated with the selected resource/active editor.  To edit this preference, check out the Launch Operation section of Preferences-&gt;Run/Debug-&gt;Launching.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;The combination of key bindings and filtering text boxes is awesomely powerful.&lt;br /&gt;Learning to use Alt, Ctrl, and Shift on both sides of keyboard is vital (maybe its just me, but I previously used my left hand for all these keys...proving problematic for bindings like Alt+Shift+R).&lt;br /&gt;In general, I am not a big fan of Fx (x=1-12) shortcuts as I find them awkward to type (though I do use them and have even listed a few).&lt;br /&gt;&lt;br /&gt;Here is a slightly condensed list of the most useful bindings I've seen people miss:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ctrl + Shift + L (x2) =&gt; Key Bindings Preferences&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + 3 =&gt; Quick Access List&lt;/li&gt;&lt;li&gt;Ctrl + O =&gt; Quick Outline (x2 to toggle show/hide inherited members)&lt;/li&gt;&lt;li&gt;Ctrl + T =&gt; Type Hierarchy (x2 to toggle between supertype/subtype hierarchies)&lt;/li&gt;&lt;li&gt;Ctrl + H =&gt; Search (File Search)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + G =&gt; Declarations in Workspace&lt;/li&gt;&lt;li&gt;Ctrl + Shift + G =&gt; References in Workspace&lt;/li&gt;&lt;li&gt;Ctrl + Alt + H =&gt; Call Hierarchy  &lt;/li&gt;&lt;li&gt;Ctrl + Shift + R =&gt; Open Resource&lt;/li&gt;&lt;li&gt;Ctrl + Shift + T =&gt; Open Type&lt;/li&gt;&lt;li&gt;Ctrl + Shift + F =&gt; Format&lt;/li&gt;&lt;li&gt;Alt + Shift + F1 =&gt; Plug-in Spy&lt;/li&gt;&lt;li&gt;Alt + Shift + R =&gt; Rename&lt;/li&gt;&lt;li&gt;F11 =&gt; Run&lt;/li&gt;&lt;li&gt;Ctrl + F11 =&gt; Debug&lt;/li&gt;&lt;li&gt;Ctrl + R =&gt; Run to Line&lt;/li&gt;&lt;/ul&gt;  There are also a couple of custom bindings I usually set, but I will leave those for another day.  There are PLENTY of commands which I left off this list, so let me know if I missed one of your favorites!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;*new in Ganymede&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-1736190250975716908?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/1736190250975716908/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=1736190250975716908" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/1736190250975716908?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/1736190250975716908?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/08/keyboard-shortcuts-eclipse.html" title="Keyboard Shortcuts - Eclipse" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;C0UFRXY6cSp7ImA9WxRTE0s.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-342316176964878809</id><published>2008-07-24T07:27:00.000-07:00</published><updated>2008-09-02T06:13:34.819-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-02T06:13:34.819-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="shortcuts" /><title>Keyboard Shortcuts</title><content type="html">Perhaps it was my use of emacs in college.  Or maybe the fact I was using my &lt;a href="http://en.wikipedia.org/wiki/Pointing_stick"&gt;trackpoint mouse&lt;/a&gt; so much that it was making my hand hurt.  No matter the reason, I have recently been kindling a healthy obsession with keyboard shortcuts. For the most part, quality programs will ship with useful shortcuts.  Mastering these can go a long way toward boosting your productivity.&lt;br /&gt;&lt;br /&gt;One tell-tale sign that you may benefit from investing some time in learning keyboard shortcuts is if you find yourself using the mouse to perform the same tasks over and over throughout the day.  In my case, I noticed that I was using the mouse for just about everything...even in the programs I use constantly (e.g. Eclipse and Firefox).&lt;br /&gt;&lt;br /&gt;However, when I investigated the available shortcuts for these programs, I found the majority of shortcuts marginally helpful at best (obviously this would be the case given the diverse user bases for such programs).  There are just too many, and staring at or even printing off the list of all shortcuts is quite painful.  And the thing about shortcuts is that you really need to internalize them.  If you have to look them up, if you even have to think about them, then they may be more of a hassle than they are worth.  To cope, I have developed a little system for internalizing them (similar to &lt;a href="http://www.lispcast.com/drupal/node/12"&gt;many others&lt;/a&gt; I'd imagine)...each time I read/hear about a potentially useful shortcut (aka a shortcut for some task I often perform, or sometimes even for a new task that seems useful) I write it on the whiteboard above my desk.  This way, each time I want to perform that task I can quickly glance up to see the shortcut...and after a few times, I find I no longer need to look up and can remove it from the board (and transfer the shorcut to &lt;a href="http://www.google.com/notebook/user/09436876178369980090"&gt;my notebooks&lt;/a&gt; for when my memory fails next).  Alternatively, infrequently used shortcuts (which I had mistakenly presumed useful) will waste precious space for a short time until I erase them (from both board and mind).&lt;br /&gt;&lt;br /&gt;Although I believe this system is improving my productivity, I find myself getting frustrated while watching friends and colleagues use these same programs without the added benefit of shortcuts.  In fact, particularly in Eclipse, I find that most users have a very limited subset of shortcuts which they have deemed worthy to internalize.  Often times, these same users will be astonished at the power of a few commands which they haven't yet discovered.  Even now, I will hear of &lt;a href="http://mea-bloga.blogspot.com/2008/07/keeping-users-happy-via-irc.html"&gt;some new shortcut&lt;/a&gt; (new to me that is), and a week later be wondering how I ever lived without it.&lt;br /&gt;&lt;br /&gt;For this reason, I plan to document my favorite shortcuts here...hopefully without creating yet another long list of marginally helpful entries.  Admittedly, a blog is probably not the proper forum for such a list, so my intent is to provide a bit more context/narration for each shortcut than you might otherwise find.  Stay tuned...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-342316176964878809?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/342316176964878809/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=342316176964878809" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/342316176964878809?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/342316176964878809?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/07/keyboard-shortcuts.html" title="Keyboard Shortcuts" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEIHR3k9eip7ImA9WxdVE0U.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-4648643580692535699</id><published>2008-07-13T11:05:00.001-07:00</published><updated>2008-07-18T05:02:16.762-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-18T05:02:16.762-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>Bug Reporting</title><content type="html">If you use open source software...its your duty.&lt;br /&gt;&lt;br /&gt;As I have become more involved with open source, one of the largest revelations I've had is the usefulness of bug reporting.  When I first started contributing, I was very nervous about opening a new bug...often neglecting to do so and sometime forgetting the problem altogether until I hit it the next time.  For bugs which occur frequently, these annoyances tend to build up and significantly detract from my overall experience with the product.&lt;br /&gt;&lt;br /&gt;I think there were a number of factors for this apprehension,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I assumed all the problems I hit were probably already reported&lt;/li&gt;&lt;li&gt;I didn't want to sound stupid for reporting something that wasn't really a bug, or had been dealt with in the past&lt;/li&gt;&lt;li&gt;I felt that opening a bug was like asking the developers for a favor&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I assumed the amount of time it would take me to properly research the topic and investigate all similar problems would probably outweigh the limited loss of time/productivity from the bug in question&lt;/li&gt;&lt;/ul&gt;I realize that this issue likely varies by personality (I tend to be a bit shy before I have established relationships), but from talking with friends and coworkers I think that my feelings are shared by many.&lt;br /&gt;&lt;br /&gt;One of the things which helped me most is the leadership I've received from coworkers at IBM.  In particular, I recall one such coworker speaking with me on the importance of bug reporting...this was the first I had heard of this referred to as my duty.  You are not asking for a favor when you open a bug, you are documenting a known limitation or problem and helping to make a better product for everyone.&lt;br /&gt;&lt;br /&gt;Another important factor in my progress has been the ease with which I can produce high quality bug reports.  For this reason, the Mylyn &lt;a href="http://www.peterfriese.de/reporting-bugs-has-never-been-easier/"&gt;bug reporting feature&lt;/a&gt; (since Eclipse 3.3) has long been one of my favorites.  I am not sure when they started including this in the main Eclipse Packages, but I am very happy to report it is included with at least the Ganymede JEE and RCP/Plug-in packages (I feel it should be in every Eclipse IDE package).  If it isn't included in your build, you can get it from the &lt;a href="http://download.eclipse.org/releases/ganymede"&gt;Ganymede update site&lt;/a&gt; by installing &lt;span style="font-style:italic;"&gt;Mylyn Connector: Bugzilla&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;Mylyn Bridge: Eclipse IDE&lt;/span&gt;.&lt;br /&gt;When installed, the dialog can be found at Help-&gt;Report Bug or Enhancement...&lt;br /&gt;&lt;br /&gt;Included with Ganymede, Mylyn 3.0 provides a nice &lt;a href="http://www.eclipse.org/mylyn/new#task-list"&gt;improvement&lt;/a&gt; on this feature.  Namely, when you create a new bug report, it will automatically be placed in the "Unsubmitted" category in your task list.  This simple feature drastically improves my productivity and effectively lowers the barrier to bug submission (in older releases I don't think it was possible to save working drafts of bugs).  In an open source community, I feel this 'lowering of the walls' is one of the most important keys to success.  After all, this user involvement is one of the keys to cultivating a strong community (active users beget contributors beget committers).&lt;br /&gt;&lt;br /&gt;With the latest feature I can open a new report every time I encounter a problem or think of a neat enhancement.  If I do not have the time to investigate at present, the issue is at least documented for me so that I can finish my investigation when I do have the time.  For me, this process usually looks something like:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Hit a bug or think of a cool enhancement and open a new report&lt;/li&gt;&lt;li&gt;Forget about it for a while&lt;/li&gt;&lt;li&gt;Come back to my list of bugs/enhancements&lt;/li&gt;&lt;li&gt;Try to reproduce the problem and document the steps in the bug&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Perform a google search for others with the same problem/workarounds&lt;/li&gt;&lt;li&gt;Perform a bugzilla search on all open bugs for that component/project&lt;/li&gt;&lt;li&gt;Search the list and open all related bugs in tabs&lt;/li&gt;&lt;li&gt;Browse throught the tabs and copy the most relevent ones to my bug report&lt;/li&gt;&lt;li&gt;Finish filling in the details and submit the report&lt;/li&gt;&lt;li&gt;Respond to addition questions/responses on the bug report&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Now that I have been able to get beyond my initial fears, I have been most impressed with the speed and quality with which most Eclipse projects (and most other high-quality open source projects for that matter) respond to my issues.  This level of involvement has helped me to feel included in the Eclipse community and greatly improved my experience with the Eclipse Platform.&lt;br /&gt;&lt;br /&gt;There certainly is a delicate balance between properly researching a suspected bug and blindly submitting every subtlety you find (otherwise committers would be hit with endless streams of duplicates and low-quality bugs).  For me, this balance has trended toward submitting reports early and often...what process do you use to submit high quality bugs with minimal investment?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-4648643580692535699?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/4648643580692535699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=4648643580692535699" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/4648643580692535699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/4648643580692535699?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/07/bug-reporting.html" title="Bug Reporting" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DkEMQnkycSp7ImA9WxdWGUs.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-943229219105777605</id><published>2008-07-10T00:32:00.000-07:00</published><updated>2008-07-13T08:58:03.799-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-13T08:58:03.799-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>Fun With p2</title><content type="html">&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;captions=1&amp;noautoplay=1&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Flmsurprenant%2Falbumid%2F5221266347345489553%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;This walkthrough is intended chronicle my experiences with the &lt;a href="http://wiki.eclipse.org/Equinox_p2"&gt;Equinox provisioning platform&lt;/a&gt; Admin UI.  I was able to glean most of the info needed from the Admin UI wiki at &lt;a href="http://wiki.eclipse.org/Equinox_p2_Getting_Started_Admin_UI"&gt;http://wiki.eclipse.org/Equinox_p2_Getting_Started_Admin_UI&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;br /&gt;I tried http://wiki.eclipse.org/Equinox_p2_Admin_UI_Users_Guide&lt;/span&gt;&lt;span style="font-style: italic;"&gt; first, but it wasn't very helpful.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Download the &lt;a href="http://download.eclipse.org/eclipse/equinox/drops/R-3.4-200806172000/index.php#Provisioning"&gt;equinox p2 agent&lt;/a&gt; and unzip to a good location (I used /opt/p2). Note that due to p2 limitations it is painful to move the agent around after provisioning multiple profiles.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It seems to take a few moments [too long] to start up (and why does it add a workspace directory to my Desktop?!)&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It is also possible to run the Admin UI from within Eclipse by installing the Equinox Provisioning Agent Feature.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Add Metadata and Artifact Repositories&lt;span style="font-style: italic;"&gt; &lt;/span&gt;for at least &lt;a href="http://download.eclipse.org/releases/ganymede/"&gt;http://download.eclipse.org/releases/ganymede/&lt;/a&gt; and&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;a href="http://download.eclipse.org/eclipse/updates/3.4milestones/"&gt;&lt;span&gt;http://download.eclipse.org/eclipse/updates/3.4milestones/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Whoa, it looks like the first add gets displayed many times&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(see picture) &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240472"&gt;[1]&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Where is that nice drag and drop from the Software Update... feature&lt;/span&gt; &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240600"&gt;&lt;span style="font-style: italic;"&gt;[2]&lt;/span&gt;&lt;/a&gt;?&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;Drill down into the Metadata Repositories.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I find it nicer to group the Installable Units (IU) by category (Window-&gt;Preferences)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In the Profiles view there is an EquinoxProvisioningUI profile corresponding to the agent itself.  Add a new profile for the Eclipse SDK and set the location and bundle pool location.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"/home/lee/user" seems like a poor default&lt;/span&gt; &lt;a style="font-style: italic;" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=229699"&gt;[3]&lt;/a&gt;.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I would have like to set a global bundle pool for all users, but didn't want to run as root, so the bundle pool location I chose was /home/lee/.p2&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=222130"&gt;[4]&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Drag and drop the org.eclipse.sdk.ide feature from install list.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I tried installs with org.eclipse.platform.ide and org.eclipse.platform.sdk and they both installed but failed to start.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Approve the installations and proceed to Finish.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Check out some of the improved equinox security features at http://wiki.eclipse.org/Trusted_Bundles&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I had some problems taking a screen shot of the downloads, possibly due to my humble AMD Sempron 2800+ 1.6GHz CPU being pegged&lt;/span&gt;.&lt;br /&gt;After about 10 minutes (for my 6.6 Mb/s connection--according to &lt;a href="http://speedtest.net/"&gt;http://speedtest.net/&lt;/a&gt;) the install should complete and the IU should be displayed in the profile.&lt;br /&gt;&lt;br /&gt;Navigate to the install location and launch your new Eclipse instance.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If you select Help-&gt;About Eclipse and click the Configuration button, you will notice one of the limiting factors of the agent...for some reason each install points back to the p2 agent for their p2 metadata &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240601"&gt;[5]&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a new profile in the Admin UI with the same bundle pool location (/home/lee/.p2) and install the Eclipse SDK IU to this profile.&lt;br /&gt;Notice that this time, the install is only 4KB and will take about 10 seconds.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Way cool.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Launch your new Eclipse instance and open Help -&gt; Software Updates...&lt;br /&gt;You will notice the only Installed unit listed is the Eclipse SDK itself.&lt;br /&gt;Lets install a new feature (the SCA tools feature from the STP project looks pretty interesting).&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Using the filter list to narrow down installable units would be useful but it seems very slow&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;a style="font-style: italic;" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240603"&gt;[6]&lt;/a&gt;.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The SCA tools install took me about 4 minutes.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Looks like the &lt;a href="http://picasaweb.google.com/lmsurprenant/PooledEclipseInstallsWithTheP2AdminUI/photo#5221271424587087698"&gt;install button is missing its uppermost pixels&lt;/a&gt;, but that seems to have gone away now.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Restart Eclipse and be sure the plugins were properly installed&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If you installed the SCA tools like me, create a new SCA example project using the wizard and note that&lt;/span&gt; &lt;span style="font-style: italic;"&gt;the errors will go away when you point the tooling at an &lt;a href="http://tuscany.apache.org/sca-java-releases.html"&gt;apache tuscany distribution&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Next, install the same feature to your original Eclipse Profile instance and you should see that it finds the plugins from your bundle pool.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;My SCA Tools install took about 15 seconds this time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Back in the Admin UI, you can refresh the Profiles view but for some reason it can't see the newly installed features (after a quick restart they will magically appear) &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240602"&gt;&lt;span style="font-style: italic;"&gt;[7]&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Next, lets install another Ganymede IU for good measure.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This time I went with the JavaScript Development Toolkit&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Notice that directly after the install, the new IU shows up under "Installed Software" from you Eclipse instance.  However, like installing plugins normally, it may require a restart to take effect.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;At least you can use File -&gt; Restart&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;now instead of a manual stop and start (I used Switch Workspace -&gt; Other for this in previous releases).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If you open the other Eclipse Profile installation, you can verify that it does not contain the newly installed feature.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Now suppose we would like to remove the SCA tooling feature from one of our profiles.  In the Admin UI, there is no way to uninstall features.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This was very annoying when I installed the org.eclipse.platform.sdk feature and it wouldn't work...basically I had to remove the whole profile and delete the files manually.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However, if you have a working Eclipse install, it should still be possible to revert to a previous configuration by selecting the &lt;span style="font-style: italic;"&gt;Revert Configuration...&lt;/span&gt; button in the &lt;span style="font-style: italic;"&gt;Update Software...&lt;/span&gt; dialog.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Once again, the Admin UI will require a restart to notice the change in profile.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Overall, the p2 experience is very promising, despite the numerous annoying bugs left to solve.  I am impressed with how this all came together, especially given some of the p2 criticism I heard near the end game for Ganymede.&lt;br /&gt;&lt;br /&gt;[1]&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240472"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240472&lt;/a&gt;&lt;br /&gt;[2]&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240600"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240600&lt;/a&gt;&lt;br /&gt;[3]&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=229699"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=229699&lt;/a&gt;&lt;br /&gt;[4]&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=222130"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=222130&lt;/a&gt;&lt;br /&gt;[5]&lt;a href="http://www.blogger.com/%5B1%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240472%20%5B2%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240600%20%5B3%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=229699%20%5B4%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=222130%20%5B5%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240601%20%5B6%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240603%20%5B7%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240601"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240601&lt;/a&gt;&lt;br /&gt;[6]&lt;a href="http://www.blogger.com/%5B1%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240472%20%5B2%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240600%20%5B3%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=229699%20%5B4%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=222130%20%5B5%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240601%20%5B6%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240603%20%5B7%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240603"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240603&lt;/a&gt;&lt;br /&gt;[7]&lt;a href="http://www.blogger.com/%5B1%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240472%20%5B2%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240600%20%5B3%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=229699%20%5B4%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=222130%20%5B5%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240601%20%5B6%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240603%20%5B7%5Dhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=240602"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=240602&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-943229219105777605?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/943229219105777605/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=943229219105777605" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/943229219105777605?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/943229219105777605?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/07/fun-with-p2.html" title="Fun With p2" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CU8HQ3k9fyp7ImA9WxRVFUQ.&quot;"><id>tag:blogger.com,1999:blog-1160088509642785752.post-2537396649894898281</id><published>2008-07-01T21:41:00.000-07:00</published><updated>2008-11-13T08:30:32.767-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-13T08:30:32.767-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>Eclipse Ganymede Review</title><content type="html">The latest Eclipse release train, &lt;a href="http://www.eclipse.org/ganymede/"&gt;Ganymede&lt;/a&gt;, has arrived(on time as usual) and comes loaded with 23 projects and a whole host of &lt;a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/eclipse-news.html"&gt;improved features&lt;/a&gt; (even for the Platform project alone) that I have been looking forward to since &lt;a href="http://www.eclipsecon.org/2008/index.php?page=sub/&amp;amp;id=395"&gt;EclipseCon&lt;/a&gt;.  Tops on my list are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The OSGi and Eclipse run configurations are &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_M1iiFz0Huww/SGsachVS7PI/AAAAAAAAAAo/TsWHLVOEsbs/s1600-h/Screenshot-Run+Configurations+.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_M1iiFz0Huww/SGsachVS7PI/AAAAAAAAAAo/TsWHLVOEsbs/s200/Screenshot-Run+Configurations+.png" alt="" id="BLOGGER_PHOTO_ID_5218293670525201650" border="0" /&gt;&lt;/a&gt;sporting a shiny new filter box.  This alone was worth the upgrade for me...no more hunting through the hundreds of bundles in my target to add a bundle that was missing and not "required" (target platforms are still the way to go to limit the number of bundles in this list).&lt;/li&gt;&lt;li&gt;PDE has added a spiffy feature called the plug-in spy...simply click ALT+SHIFT+F1 over any active window and it will pop up with useful info like the active View class and the contributing plugin. This is so useful I retrofitted it to my 3.3 instance as well.&lt;/li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/images/plug-in-spy.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/images/plug-in-spy.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;li&gt;The Plug-in Registry view now allows you to start/stop, enable/disable, and diagnose individual bundles (toggle the &lt;strong&gt;Show   Advanced Operations&lt;/strong&gt; menu item to turn them on).&lt;/li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/images/bundle-operations.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/images/bundle-operations.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;li&gt;Improved String matching in Find/Replace dialog (esp. with newlines).  That used to drive me nuts.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;Improved Share Project wizard.  It was a real pain to share each of my projects individually in the past, and the addition of the "use the project name as the module name       and place it under the selected module" option would have been really handy for me last month :-&lt;span style="font-style: italic;"&gt;) update: I just tried this out and it wasn't that special...still have to share each project individually, you just have a nicer wizard to tell you that.  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;(I was hoping to add links from these items to their location in the New and Noteworthy doc, but it doesn't seem to offer anchors for that purpose)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;update: this was an &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240604"&gt;oversite&lt;/a&gt; on my part&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Overall I have been very impressed with the stability of the new release...even after loading it with all kinds of Ganymede plugins it seems to be performing splendidly on my underpowered (1.6 Gh, 512MB) Linux box.&lt;br /&gt;&lt;br /&gt;However, the project/feature I am most excited for is the new provisioning platform (&lt;a href="http://wiki.eclipse.org/Equinox_p2"&gt;p2&lt;/a&gt;).  I have read an interesting review at &lt;a href="http://ekkes-corner.blogspot.com/2008/06/eclipse-ganymede-p2-shared.html"&gt;Ekkes Corner&lt;/a&gt; and also began to play with the new "Software Updates..." feature.  I was also able to set up a working pooled Eclipse install using the &lt;a href="http://download.eclipse.org/eclipse/equinox/drops/R-3.4-200806172000/index.php#Provisioning"&gt;p2 admin ui agent&lt;/a&gt; (as apposed to the installer) to provision my SDK.  I hope to document this experience here shortly...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1160088509642785752-2537396649894898281?l=parenthetical-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://parenthetical-thoughts.blogspot.com/feeds/2537396649894898281/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1160088509642785752&amp;postID=2537396649894898281" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/2537396649894898281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1160088509642785752/posts/default/2537396649894898281?v=2" /><link rel="alternate" type="text/html" href="http://parenthetical-thoughts.blogspot.com/2008/07/eclipse-ganymede-review.html" title="Eclipse Ganymede Review" /><author><name>lmsurprenant</name><uri>http://www.blogger.com/profile/06628367357896203785</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp2.blogger.com/_M1iiFz0Huww/SHl_F0bchaI/AAAAAAAAAME/BbKTTq2nXIM/S220/CIMG1092.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_M1iiFz0Huww/SGsachVS7PI/AAAAAAAAAAo/TsWHLVOEsbs/s72-c/Screenshot-Run+Configurations+.png" height="72" width="72" /><thr:total>0</thr:total></entry></feed>

