Wednesday, May 25, 2011

Montreal democamp notes

Eclipse democamp in Montreal came and went. It was definitely a great event with a lot of participants and great presentations. Here is a quick recap of what was there.

Remote provisioning with JMS
In this demo, Anthony demo'ed how he used the p2 API to remotely manage with JMS multiple nodes running p2. To help with the visual aspect of the demo, the managed application was an RCP app show casing the dynamic addition and removal of a menu, but the application scheduled to go in production in a couple months will be handling regular OSGi apps.
After having heard about this project on the p2 ml, I was happy to see it live!

z/OS synchronization
Here, Johnny demonstrated how the Eclipse Team API can not only used to work against SCMs but can be used to keep a remote system and a local system in sync.
In this case, he was demonstrating how to keep a z/OS system in sync with resources in the workspace reusing concepts like commit, update, sync, etc.
The presenter was pretty happy to note that he has been able to implement everything he needed *only* using the API and that the API was well designed and well documented.

PDE feature dependencies visualization
This time Johnny demonstrated the work of one of his coop that consists in adding to the PDE visualization project the ability to view inter feature dependencies.
In this case, they started by implementing a clean Model / UI separation where the model is agnostic of features and simply uses a generic graph. With this graph based model, they have been able to implement well known graph algorithms such as shortest path, or cycle detection.
This tool will definitely be a nice addition to the PDE visualization and I'm already dreaming of a p2 extension for it :)

During this presentation Regent from the Canadian Space Agency demonstrated how the various Eclipse frameworks (RCP, EMF, etc.) helped the agency deliver in no time a large set of products ranging from a way to operate highly autonomous bots to space operations planning software. Regent was strongly recommending the usage of EMF as a time saver.
The good news is that some of the components the agency has developed will also be contributed back in the open source, but this is a long process since this is a first time.

R4e - Review for Eclipse
Alvaro and Sebastien demonstrated review for Eclipse, a nicely integrated plugin that let you do code review directly from within Eclipse.
I had not realized but code review in Eclipse seems to be a hot topic, so hot that there are currently 3 projects at eclipse to deal with the topic: Mylyn reviews, Gerrit and review 4 eclipse…

Debugging in CDT
For years, C/C++ developers had been asking for CDT to catch up with JDT. A couple years ago Doug Schaefer was demonstrating CDT had finally caught up with the possibility to do refactoring, better launching, etc. What I saw yesterday simply blew JDT debugging support out the water! Marc showed some of the new and noteworthy from CDT 8:
- debugging an app that is *not* a project in the IDE
- attach to a running process
- smart way to compare data executed between multiple threads (second variable view, expression view, etc.)
- improved support for multicore (show the core)

Last point, these guys are working hand in hand with the GDB team to continuously push the boundaries and more multicore enhancements are in the pipe. Again kudos :)

Sharing preferences
Domenic demonstrated a new plugin developed at Ericsson to share Eclipse preferences across a team. The solution is quite simple and efficient: one or multiple preference files are shared on a server, the plugin gets them and apply them. The plugin also offers the ability to diff the preferences currently active from those that were in the reference file.
The code is currently available in bug and discussions will happen in 3.8 to see where it best fit.

Ericsson's p2 installer
Domenic demonstrated a customized version of p2 that dealt with sharing bundles across all the installs of Eclipse for all their users. The use cases for that stemmed from both a disk space saving and a control perspective. Since all the tools are installed on a shared mounted drive it is beneficial for Ericsson to have a "company-wide bundle pool" such every user of Eclipse does not end up with its own copy of Eclipse. As for control, this bundle pool is also used as a catalog from which the user can pick what he wants. Still the tool let the user install anything but will notify the maintainer of the catalog so he can add it to the catalog.
After having discussed this idea at EclipseCon with Domenic, I was quite happy to see it live. Now I'm curious to know how much contortion they had to do :)

Linux Tracing and monitoring
Yet another C focused tool that just amazed me. In this case, the linux tracing and monitoring tools in Eclipse from the linux tools project was showing how various linux tracing and monitoring tools were integrated in the IDE. I really appreciated the efforts made on the visualization of the data (various charts, searching, etc.) and how scalable and snappy was the tool (it literally needs to be able to handle millions of events). If you are showing large data sets in SWT table, there is probably some code in there that you want to look at.
Kudos to the developers.

Tycho, building OSGi bundles with Maven
I gave a very quick demo of building bundles with Maven. This was a condensed version of the webinar I did a couple weeks ago.

Natural Language Processing for Eclipse - The Semantic Assistants
Ninus, from Concordia University, described the usage of natural language processing techniques to help on the day to day development tasks. He showed analysis of the javadoc, and also mentioned some tools that are able to correlate commits with bugs.
Something to keep an eye on, especially to mine old codebases.

Java7 in JDT
Olivier Thomann, last minute guest star at the camp, literally gave a 5 min tour of the new features of Java 7, and gave a status update on the Java 7 support in JDT. Basically most of the support is in place in JDT, but because Java7 will not be released by the end of June, Indigo will not have support for Java 7. *However* Java 7 support will be added to Indigo SR1 that is scheduled for September. In the interim develop builds will be made available.


Marc Khouzam said...

Thanks for the kind works on CDT Debug. Imagine if I had the time to show Reverse Debugging!

Sebastien Angers said...

Great summary notes! Was nice to have you and Olivier attending and presenting at the Camp!

irbull said...

Wow, I'm happy to see my PDE Visualization tool still has life in it.