Friday, 30 May 2008

Carefully Managing a Community

My tulips are blooming so the Eclipse Ganymede release cycle must be coming to an end. It's good timing, because planting season takes up quite a bit of my time.


Tulips are a beautiful reminder of my native land, the Netherlands, which I left behind so many decades ago. I seem to have a compulsive need to dig in dirt as well as a compulsive tendency to take on tasks that seem almost futile. Perhaps that comes from a genetic heritage that involves holding back the seas and then farming the land. Tulips are also interesting in their role as the fuel and fodder that drove the first economic bubble. But I digress as I am so often wont to do.

The Ganymede release cycle is winding to an end and that implies that the IP review cycle is in full swing. This year's swing seems to have taken on a particularly fevered pitch. I'm almost overwhelmed by it all, and I'm not a happy camper when I'm overwhelmed. The arrival of yet another note about a contribution questionnaire, about.html, or IP log sends shudders of apprehension up and down my spine and pangs fear into my heart, almost like the thought of a vampire shrimp loose in my aquarium.


Of course vampire shrimp is a misnomer for this innocuous but large filter feeding shrimp; look closely and you'll see that it has sieve-like feet to strain the water. And of course Eclipse's IP processes too are a good thing. They set Eclipse apart from other open source organizations. In fact, they set Eclipse above them, in my opinion. IP cleanliness is extremely important to the commercial adopters, so the foundation takes it very seriously and even more so this year. This is not so different from the fact that guppies tend to be ridden with parasites and diseases (just as the code we commit or use might be tainted) so it's safest to quarantine them and treat them (just as we IP review code) before releasing them into the community tank (Ganymede). I just finished the guppy treatment process yesterday; check out the beauty of a carefully managed and untainted community.


I'd also like to remind folks that however annoying this IP process might be to you as a committer, imagine being at the receiving end of this deluge of poorly organized and often incoherent data. Put yourself in shoes of Janet's team for just a moment, or imagine being Bjorn, herding a bunch of ill tempered cats with sharp claws. Not a pretty scene is it? I wanted to thank Sharon Corbett in particular for helping me and my extended global team navigate these troubled waters. The modeling project's component structure has made the burden to the foundation even more onerous and they've been great in their effort to support us. So while many might be tempted to point fingers at others for problems, I'd like to think that we committers need to take more responsibility ourselves for helping improve the processes. Spawning tadpoles and forgetting about them works well for the frogs, but we need to treat our code differently.


I'll certainly be talking with the other committer representatives about improvements at the next board meeting. Managing things like about.html files, IP logs, bugzilla contributions, and jars in CVS ought to be ammenable to automation and continuous monitoring so that the burden of maintaining them is spread out more evenly and hence the burden at the end of the release cycle is reduced. We need to work together to ensure that Eclipse keeps improving.

Monday, 26 May 2008

The Metamorphosis of a New Community

Last week's e4 summit was fantastic. I should have taken some pictures but given that Wayne was doing an excellent job with the play-by-play, I decided to remain focussed on the discussions, at least to the extent that was possible with the pressures of Ganymede breathing down my neck. As such, gratuitous unrelated pictures will have to suffice. Check out this view of Vancouver from Queen Elizabeth Park.


Getting back to the e4 summit instead of the QE summit, it was incredibly nice to have the opportunity meet with so many like-minded constructive people all focused on a common goal. I have to admit though that I came to the meeting with an expectation, based on a long history of past experience, that it would be a struggle to get past the typical skepticism about the value of formal modeling. People typically feel that formal techniques will constrain or limit them and then look for as many examples as they can think of to justify why they'd be able to accomplish their task more effectively without all those annoying obstacles to their capacity for creative expression. Been there, done that, could write a book about it. Don't look so surprised!


Of course I don't fault people for healthy skepticism given that we live in world rife with hype where style is all too often more important than substance. Can you say Teflon Programming? I can relate so well because I went through that same process myself many years ago, and let me assure you that at that time, there were a heck of a lot more substantial reasons why the final results produced by the generator were less than ideal, not to mention the bloated MOF API. I even found the class diagrams a complete turnoff, even though now I love them in an almost unnatural way. It all smacked way too much of those flow charts you had to do in university which you were supposed to do before you wrote the code, in waterfall fashion, but actually did after the iterated design was correct, and then only because it was required.


It's clear that what I hadn't anticipated was the fact that I was dealing not only with exceptionally bright people but also atypically diligent people. Folks had done their homework before the meetings and had gathered actual data themselves; of course Tom's prototype was a godsend. That guy is truly amazing. He's the epitome of a great community member, with 233843 being just one of an endless stream of examples. We must clone him! Anyway, getting back to the meandering path, when I asked Eric what convinced him of the merits of EMF he explained that he measured the speed of EObject.eGet and found it to be more than twice as fast as HashMap.get and that of course a HashMap, with its plethora of Map.Entry instances and its sparse hash index dwarfs an EObject's footprint. That's not even taking into account the use of bit flags for booleans and enums nor the ability to store primitive values rather than boxed values. Clearly faster and smaller is hard to beat so I shouldn't be surprised. I'm just way more used to having to argue that point rather than having people verify this themselves! It was like a breath of fresh air.


What I thought was especially great about the the summit was the extent to which it genuinely felt like one big team without the usual organizational boundaries. Folks seemed uniformly excited to do new and cool things while embracing existing technologies like EMF to solve the hard problems we face. Just look at the summary of the major issues that need solutions in our drive to model the workbench and the things in it. People were surprised by the breadth of solutions we already have available in the modeling space, i.e., note how most of the issues already have solutions. In fact, even high end solutions important in developing a rich SDK for self-hosted e4 development, such a graphical Ecore editing, are already available. I take great pride in the fact that the modeling community is diverse and hence has so much to bring to the e4 table. By the end of the summit, it got to be a bit of a joke that every modeling problem raised was either already solved or was currently under investigation.


I think we are witnessing the metamorphosis of a new community around e4, and like the metamorphosis of my community tank, it's a beautiful thing!

Wednesday, 14 May 2008

Rain in Vancouver

I've been in Vancouver visiting family since Saturday, and it's rained every day. Some might be saddened by this, but I see clearly the beauty it brings.


Chris' departure saddens me far more. Fortunately I expect to see Chris and Jeff frequently at the Eclipse board meetings. I hope that many opportunities will bloom for them both.


One of the nice things about my job at IBM is that I can work from home and on a week like this, I can simply work from Vancouver instead of Toronto. Hardly anyone will notice and certainly no one will get prickly.


I even took a bit of time off during the day to see the Canadian team win their hockey game and then fly the maple leaf flag up high where it belongs.


A T-shirt I saw the other day summed it up well: Canadians like to be on top. This was made more poignant by the associated map of North America where Canada is clearly positioned geographically where it likes to be.

The Ganymede M7 packages are out now! For the Eclipse modeling community, it's getting to be far easier to obtain everything they need in just one easy step.