Commands and Undos and Navigators oh my! (EclipseCon Day 3)

If you’re busy keeping track of all the new projects that are starting up, let’s see there’s DSDP, STP, DTP, ATF, Corona, PHP-IDE, Modeling and more, then you might overlook some of the things that are happening in the core Eclipse Platform. I went to three interesting presentations recently that covered important changes in the core Platform:

1. Your Action is My Command by Doug Pollock

Actions are still around and are not even deprecated in 3.2, but in the future use Commands. Commands are just abstract representations like “Cut” and they work with Handlers to actually perform behavior. I think the way to use these is to register global commands and then a handler for each view with IHandlerService. This is sort of like how you currently use setGlobalActionHandler. Commands have further support for customization with commandParameters, commandParameterTypes, state, contexts, bindings, and menus. The menus which are supplied to the org.eclipse.ui.menus extension point will replace many of the existing extension points for menus, but is only experimental for 3.2.

The presentation is on Doug’s personal site, not on the EclipseCon site.

2. Redoing Undo: Eclipse 3.1 Undoable Operation Support by Susan Franklin

In EclipseCon 2005, we discussed how the undo framework was changing and now it is complete. Before, there were multiple undo stacks, for example one for editing and one for refactoring. There is now a common undo framework that uses IUndoableOperation among other classes.

It wasn’t clear to me what the support was of the common undo framework by every project. Perhaps there should be a matrix that has each project and whether they support common undo fully and if there are any caveats. I would recommend that any new actions that you write should support IUndoableOperation.

3. Common Navigator Framework for Platform/UI in 3.2 by Michael Elder

This was a really pleasant surprise as it seems like we can now reduce the number of views (prevent view explosion) as well as finally support logical resources in a Common Navigator. There have been requests for supporting logical resources for as long as I can remember in Eclipse.

It was interesting to see the cream rising to the top, or is it the reusable diving into the core, as Michael showed how it started off as an IBM Rational Application Developer initiative, then it was contributed as part of the WebTools Project, then now is in the Platform UI. There is lots of good stuff here, so check out the presentation and experiment with the APIs. Hopefully there will be a nice tutorial for it in Eclipse Corner in the future.

No Halo feature for you

Well I guess we aren’t getting the embedded Halo engine in Eclipse. I mean after all, didn’t Microsoft nest part of Flight Simulator inside Excel?

Hehe – at the Halo Feature Challenge yesterday there was only one “official” challenge that I observed instead of playing. And it was a rout. I think they were playing for some change in presentation.

By the way, we played Halo 2 on Xbox with the “new-style” controllers. The ones that aren’t as huge as the original ones. I was deeply humbled during the first game I played when I was a pitiful -5. I’m really no good with rockets in Team Slayer. I redeemed myself in the second game with battle rifles in Crazy King. Then came the silly game against Doug Pollock who pretty much toyed with us 1 against 7 until 2 of us switched teams to make it a little more interesting.

Lesson learned: Don’t mess with the Platform UI team in Halo. :)

Project Proposal: Teleportation Framework

Earlier I thought that the Short Talks here at EclipseCon 2006 would be very cool and give you many interesting perspectives on Eclipse. That is proving to be true. Only one problem: There is no break time inbetween each short talk. So I’m proposing a new project: the Teleportation Framework.

However, since that probably won’t get too far at least in the short term, one way to work around this is to schedule a block of short talks that you’d like to listen to. Two or three at least. Then inbetween blocks, walk fast. :)

Also if you happen to miss a short talk, many of them are repeated. I expect many of them to be presenting at the Poster Reception which is at 5pm on Wednesday.

Consuming and producing web services with WebTools (WST and JST) (EclipseCon 2006)

Interesting – the presenter, Christopher Judd, who is President of Judd Solutions and coordinator of the Central Ohio Java User Group, wrote a childrens book called Bearable Moments about a boy whose mother is in the military and gets deployed.

He’s presenting Consuming and producing web services with WebTools (WST and JST). The overlap between JST and WST is the web services standards: SOAP, WSDL, UDDI. WebTools (WTP) uses Axis, currently 1.2.1.

You can generate web services either top down (WSDL First) or bottom up (Java code first.) There are wizards to help you with either option. There are wizards to create web service clients as well.

You can test your web services via a simple JSP that can be auto-generated. As well, you can publish your web service to a UDDI registry in the creation wizard. There’s also a nice TCP/IP monitor (also known as a sniffer) to help with testing.

How to distribute a big huge open source tool to tons of people (EclipseCon 2006)

Ok, that’s not the real title, but that’s what I think of this part of From Developer to Download: A Tour of the Eclipse Platform Build Factory as. Denis Roy, the Webmaster and Download-Meister (I made that up) is talking.

It seems like BitTorrent is the ideal way to do this. Maybe there should be a BitTorrent peer built into to the default Eclipse release that is configured to serve itself up.

Wow the main Eclipse site transfers 13.5 TERABYTES a month!

Also I didn’t know that IBM made an eServer that had a Quad G5 inside of it that runs at 1.6Ghz that is stuffed with 16GB of RAM. Coool. Those are used for the newsgroups and the backend servers.

How you can help – become an Eclipse mirror. And assist with Callisto testing, which is the simultaneous release of 10 Eclipse projects in 3.2.

Some of the Q&A portion:

Does PDE Build support Subversion? No support for Subversion yet. But I can say that the PDE Build has outstanding patches to plug-in third party version control. We used that to extend PDE Build for Perforce and will submit that back to Eclipse sometime in the future.

How Eclipse does its builds (EclipseCon 2006)

I’m at From Developer to Download: A Tour of the Eclipse Platform Build Factory. Kim Moir of the Eclipse Releng team is talking. There’s a nice presentation file if you’re interested in how the build process works.

Interesting – the main build machine for Eclipse is a Apple G5 running Yellow Dog Linux, most likely a dual processor machine. I’m currently running the builds for the company I work for on a dual G4. Seems quite a bit faster than some of the other Pentiums we use for builds. But I think things will really fly on a new Intel Core Duo.

Builds used to take many hours to complete. Now they take one hour. What was done to speed this up? A Master Feature was created. There is also now a Master Root Feature. I guess builds everything in parallel. The big reason (after User talking to Kim afterwards) is because having one big feature avoids the jar / unjar dance. Jarring and unjarring is quite expensive too do. The root feature also helps with signing jars.

Performance tests used to be inconsistent. To improve consistency, test machines are now “ghosted” (take a snapshot) of each performance test machine so that you are comparing them exactly. They are also isolated from the network so security patches which change the system do not need to be applied.

Best Build Blooper: “Release and Run” – When you have dreams of a warm beach, clear blue ocean and you’re running out the door to catch a plane there. I know this one and because of it, I don’t ever check in code at the end of the day. Especially not on a Friday afternoon. :)

Ha – if someone breaks the build too many times, they hand out a clown nose. I tried to take a pic of Kim and Denis as they had them on, but I’m kind of slow on the camera draw. :)

Update: Avoiding the jar / unjar dance was the big reason how the main Eclipse build was optimized.

Joel Spolsky keynote at EclipseCon 2006

Joel Spolsky is rambling along (it seems) about Blue chip products. Really he is a good presenter and likes to throw his audience (us EclipseCon geeks) off track to wake us up. BTW, Joel is the author of Joel on Software and The Best Software Writing I.

What are blue chip products? Apple’s iPod. Brad Pitt. Herman Miller Aeron.

What’s not? Creative NOMAD Jukebox Zen Extra. Ian Somerhalder. Random office chairs.

I think I’ve heard this before, but its nice to hear it live and in person.

The Formula for Blue Chip products:

  • Make people Happy.
  • He wrote a simulation of logging onto Windows which is hilarious. Gotta love nerd humor.

    Learned Helplessness – loss of control (through software?) causes people to give up and then further bad things in their lives.

  • Think about Emotions
  • People buy SUVs not for logic, but because they make them feel in control.

  • Obsess over Aesthetics
  • iPod has a seamless product, looks beautiful. “The NOMAD comes in ugly.”

    Joel is using old iPod photos. Showing mini – they’re discontinued. Most of what he is saying still applies to the nanos and video iPods.

    Joel recounts his early days where he did consulting to get Fogcreek off the ground and he had rescued a doomed dot-com from some big consulting firm. But when they showed it to the client, they didn’t think it was “slick enough”. So they worked with a graphic designer to make it look nicer.

    Now he compares “beautiful” vs “honest”. Architects supposedly have gone away to honest after beautiful now, but we aren’t there yet with software. I think we’re not even to the state of beautiful yet. Developers should probably work with graphic designers early.

All this points to using a Mac. Seems to me that Joel should use one. :)

My EclipseCon 2006 schedule

Not yet a recommended track, since I’m not sure exactly how to submit one. That is, I created an EclipseZilla account, but not sure if I just submit some HTML or an ICS or what.

Anyways here is my EclipseCon 2006 schedule in ICS format. I probably will make changes along the way but this is what seemed to be the best to go to late last week. I’m trying to focus on things that are new in 3.1 or 3.2 whenever possible. After that, I’m heavily weighting towards Build Processes, SWT, JFace, GEF, GMF. The basics. It’s always good to reinforce the basics, in my opinion. Plus a bit of WebTools since it continues to prove an important project.

There’s lot of interesting short talks. I like to have a sampling of a lot of different perspectives so this should be a really nice change to EclipseCon this year.

EclipseCon 2006 – Day 1 – Tutorial Day

EclipseCon 2006 has now started! Today is tutorial day and I’m sitting in Tutorial 32 The Eclipse Debug Framework.

I got into Santa Clara late last night on a packed United flight. They had actually assigned my seat to another guy so there was a synchronization problem. ;)

Registration this morning was killer. Until someone told us that A through E was in a very short line (and my last name starts with D). F through L and M through P had to wait in a VERY long line. Not sure if this is because EclipseCon 2006 is much larger (it seems so) or if it is just the design of the room. In any case, try to get your badge the night before the first day.

If you’re here at EclipseCon, stay in touch via IRC. There’s a few of us over in the IRC channel named #eclipse-con on I recommend Colloquy for the Mac, otherwise try the Chatzilla client.