Wednesday, July 9, 2008

What's new in Ganymede for Java EE

Eclipse Ganymede has been out for about two weeks now, but when perusing its download page I didn't find links to the New and Noteworthy items in each package. The Java EE package would appear to be a hit, likely because that's an easy way to install the Web Tools Platform. Admittedly I'm biased since I both work on WTP and regularly coordinate its New and Noteworthy documents, but check out what's new in WTP right here. As if that weren't enough, to really see all that's new in the "Eclipse IDE for Java EE Developers", you also want to read about what's new in the Data Tools Platform, the DSDP's Remote System Explorer, EMF, Mylyn, GEF, and the Eclipse Platform with its JDT and PDE trimmings.

You might want to go grab a drink before you sit down and read it all.

Monday, April 7, 2008

The bursting of bubbles

I've seen more than one post (well deservedly) applauding the enhanced support for content-type specific icons in Eclipse 3.4M6 and showing how to make use of them through an extension or org.eclipse.ui.editors, but I think that something needs to be pointed out about that solution. Developers who do this aren't just specifying their icons, they're specifying whole new editors. This isn't a bad thing, but every editor has to have a unique ID, and it's easy to forget that some other features depend on that editor ID. The most common example is the org.eclipse.ui.actionSetPartAssociations extension point, which adds menu and toolbar actions automatically as you switch from workbench part to workbench part. In WTP, this is how the JSP and Web Page Editors ensure that the Run menu is present and populated with the Launch action set, and it's how most editors expose the Annotation Navigation action set. So when you're registering an editor to get that custom icon showing up, keep in mind that there may be more to it than reusing the right editor and editor contributor class.

Monday, March 17, 2008

Whoops

I'm speaking at EclipseCon

Statistics

Wayne's been posting the User Data Collector results periodically, and one thing I've noticed is that WTP's XML Editor has seriously moved up in the "rankings" to be just behind the Java editor we all know and love. Luckily I caught myself before starting to chant "we're number two, we're number two!" outloud. Its count still pales in comparison to that of the Java editor, of course, although I do have to wonder what will happen when Ganymede goes out the door. In the spirit of the EclipseCon Face-time Poker game, anyone have odds on the Java Editor keeping its lead through the end of the year? And anyone else think that by trading cards it feels more like Face-time Go Fish?

One thing that the results have brought into focus, for me, is that after discounting the commands in our WTP editors that are inherited from the Platform, the one we have for formatting is the most recorded outside of the Platform and JDT. While statistics can easily be misinterpreted or manipulated by interested parties, it's enough to let me know that the subtle fixes being made to our formatters in WTP 3.0 was worth the time spent. My thanks go out to the contributors who are making it possible, and the folks from the XSL Incubator project for giving us the right kind of nudge.

Lastly, I'm writing all of this from my hotel room at EclipseCon while updating the USB keys for the tutorial I'm giving tomorrow. Although the team hasn't yet completed all of our new APIs or features for this release, there's still a lot of ground to cover in the time alotted. And in a break from tradition, tutorials are free. I think there are few better uses of presenters' time than teaching people who want to learn, and this is fantastic news in that regard. The SSE tutorial's always been comparatively well attended, and although I have no idea whether this change will mean more attendees or not, this may be the best EclipseCon yet.

I really don't see how they'll top sumo-wrestling, though.

Wednesday, March 12, 2008

FUDcon 8

During a misadventure over the past weekend, a friend reminded me that the last significant entry in my personal blog was about a Zombie Walk from October. The most recent one, however, was about my plan to attend FUDCon 8.

FUDCon is a gathering of Fedora users and developers, vaguely like Rational's own annual Software Developer Conference. Most attendees are either working on developing Fedora itself or deploying and managing systems using Fedora, which somewhat put me on the sidelines. Fedora was one of the first distributions to include Eclipse compiled natively so it could be run with an open source VM. My own involvement with Fedora traces back to its predecessor, Red Hat Linux. And I don't mean the Enterprise offering they market these days, I mean the original Red Hat Commercial Linux, from when modular kernels were new, automatic hardware detection didn't happen, and when RPM was still written in Perl and the complete guide to using and creating packages for it took up one chapter in the supplied user guide. Old.



This FUDCon took place in Raleigh at Red Hat's headquarters, and both my twin brother and and old friend showed up to attend. I was mistaken for my brother more than once during the event ("Why is Nalin running Windows?" as Warren Tagomi asked) as he is a Red Hat employee and used to work in that building. Each day of the conference began rather early, and Im not really a morning person.

Nope, that's not me.

The first day was a hackfest working on parts of Fedora, just like the third day. I didn't do too much that day, or on the third day, since I really don't go hacking on system code that much anymore. I did get to sit in a room with members of Red Hat's kernel team and listen to what they were discussing. Most memorable to me were the fascination with the recently arrived OLPcs and that Dave Jones managed to get my Thinkpad X30 to no longer lock up randomly after starting X. I miss that kind of work sometimes, but working in the Eclipse world has its own fun challenges.



The second day was in a BarCamp format, which lives and dies with the attendees.



There were a lot of attendees.



There were a lot of suggested sessions.



This required some planning.



One of the earlier sessions I dropped in on was simply a meetup of folks with very tiny machines, such as the OLPC and Asus' recently released EEEPC. The OLPC actually runs software provided by Red Hat and there were many of them in the room. The EEPC runs another customized Linux distribution, but is more of a conventional PC--essentially the hardware of early UMPC tablets in the more traditional laptop form factor. Both machines are surprisingly easy to work with.



A later session was going over how the bootup process could be improved. While much of it went over my head, it was still interesting to hear reasoned discussions of why certain replacements to the dated System V init daemon were better or worse, with a reminder that working code is often the best place to start from.




Afterwards was a talk on building RPMs the right way. Part tutorial and part refresher for me, it's remarkable how complicated it's gotten over the years while still keeping much of the original instructions written into the Red Hat Commercial Linux 2.0 manual valid.



A first round of drinks was sponsored by Red Hat later at The Flying Saucer. I don't drink, but I was chided by a waitress for almost dozing off at the table. Good times.

Thursday, July 26, 2007

Execute them! Bogus.

Many of the Eclipse projects are presented as Platforms, but to make a successful platform you have to balance at least two factors in much the same way as an economist: the value provided and cost incurred. The value added is simply the feature set--is there something of use in there? The other factor, cost, is made up in part by the requirements. For Eclipse plug-ins this is often only thought of as which plug-ins it requires to run, but there's also the Execution Environment to consider.


One of the great things about the PDE is that when you specify an Execution Environment for plug-in projects and have matching Installed JREs within the preferences, it will automatically target your plug-in projects to use the right JRE. No more warnings about generics in a project that hasn't adopted Java5 syntax or about not supporting them in the targeted JRE. This even lets you build plug-ins specific to each environment if needed, allowing for multiple implementations of the same functions, or more commonly the graceful deactivation of certain features when running in older environments.


The larger ramification is that the Execution Environment is now every bit as critical to think about as the plug-in and version dependencies. If you are developing a plug-in that specifies an Execution Environment of J2SE-1.4 but has a dependency on a plug-in specifying an Execution Environment of J2SE-1.5, your plug-in now implicitly has an Execution Environment of J2SE-1.5 as well. Conversely, the Execution Environment you specify on your plug-in has a direct effect on how readily it can be used by someone else, and that affects the cost of adopting your platform. It's little surprise that much of the Eclipse Platform as we know it requires J2SE-1.4 or less. So keep in mind the Execution Environment you choose for your plug-ins--some day you might find it running in the most unexpected of places.