Wednesday, October 31, 2007

A Bug and Some Spooks

As I threatened in my previous blog, here is the result of this year's pumpkin carving extravaganza.

Frightening creations aren't they?! This bug is a distant relative of our much less scary bugzilla mascot. I expect these creations, along with the smoke machine and the moans and groans sound effects, will scare all the little kiddies away so that we'll have lots of candies left over for ourselves. Fortunately we had specialized pumpkin carving tools that are very dull so we didn't need to make any claims against our accidental death and dismemberment insurance. I do wonder though what a thumb would be worth. After all, the space bar is very big so you can hit it with either thumb...

I managed to get the changes for 207671 committed. This generalizes the support for attribute access and even allows attributes to be updated. I could imagine that this might be used to support locking and unlocking resources. I hope it's all in good shape in time for next week's M3 build...

We're also starting a discussion about creating a modeling package for all the avid modelers of the world.

I found the article "Empowering the Masses with 'Oslo'" interesting. I thought Eclipse already empowered the masses. Maybe they'll use EMF4NET and make it all EPL? But then again, I ate that yummy looking shiny red apple the nice old lady brought to the door earlier and it seems to be making me a little woozy...

Friday, October 26, 2007

The Garden is in Decline but the Community is in an Upswing

The end of October is quickly approaching, so it's almost time to carve up the pumpkins. I planted my own too late this year and had to buy them, and because it was so dry, the pumpkin selection is kind of poor. Expect some photos of my carving talents in the days to come! But don't expect me to be cackling over a cauldron any time soon.

The garden is almost done for the year. If forecasts prove correct, we'll get a killing frost on Monday. But there are still some beautiful things out there.

Bernd sent me a link to this song that I'm sure many will find as funny as I did; I had to wipe the tears from my eyes. Note however that if you're inclined to see blasphemy where others see innocent humor, don't bother going; I can't imagine anyone taking offense, but I don't like to offend anyone.

I'd like to brag about the modeling community just a bit. There are just so many cool things going on! It's like we're having a great party and everyone wants to come to it. The contributors are schooling of fish:

We have new components in the works for model-based web services, graphical Ecore editing, textual Ecore editing, and improved OCL integration. And soon I expect we'll even have EMF for C#, and some excellent tools for improved JDT integration.

I strongly encourage the modeling community to come forth with their EclipseCon proposals. Tutorials are free this year so expect lots of attendees. The modeling-specific tutorials will be available in eight two hour slots, so our community can mix and match to suit their specialized interests. Don't wait until the last minute! I want to hear all about what other people are doing so I'll avoid using up any slots myself. Don't be shy, we all want to see you:

At the risk of having yet another interrupt mechanism to destroy my productivity, I wanted to advertise the fact that Nick has convinced me to hang out on the IRC channel for #eclipse-modeling. Hopefully folks will hang out and help each other. So far it's been pretty quiet, so I sure hope I'm not opening the floodgates. Sometimes I feel like a conductor when what I really want most is to play a musical instrument myself...

Saturday, October 20, 2007

Jane You Ignorant Slug

Many of you will likely recognize the blog's title as the sanitized start of a totally unprofessional Saturday Night Live "Point Counter Point" rant between Chevy Chase and Jane Curtin that was more focused on personal attacks than on addressing actual issues like mature adults. Of course it was funny on Saturday Night Live, but I find it distressing to see the analog of it in Eclipse's blogosphere this week. I suppose some might even consider the Release Review Theme Song to be in this vein; I hope that's not the case and that certainly wasn't the intent. I think it's a testament to Bjorn's professionalism how he reacted to the obvious malcontent of the community in his usual constructive way.

All this reminds me of this little nipper I encountered on one of my dives in January. As I got ready to take his picture, he decided to dart out at me to nip my hand.

I considered it a personal attack and made a few threatening gestures in return. I suppose I had violated his space and he felt justified in asserting his dominance in that space. Be careful little fishy!

Now back to the issue at hand. I'll be the first to admit that Bjorn and I have had our differences. But guess what folks, intelligent people will often have differences of opinion and passions will often get the better of us. The more professional among us will use such things as a learning opportunity to see a perspective that might otherwise escape us, and will try to keep the heated debated focused on the subject matter rather than on denigrating the opposing party. Before folks feel compelled to knock me down off my high horse, don't worry, I often fall off all on my own. I'm far more likely to be swayed by emotions than most.

With regard to the issue in question, is Eclipse free, I don't agree with all the arguments Bjorn put forth but I certainly see he has a point, even if it does involve splitting hairs. Sometimes splitting hairs can be informative and even entertaining. The argument was made that by his reasoning even free beer isn't free, because you have to drink it. That's right; it might cause weight gain, and that might have health implications, the treatment for which might not be entirely free. And the over zealous free beer guzzler who killed people driving home might find that the family of those he killed doesn't consider the beer to have been free. And in some countries in the world, the folks who supplied the free beer might find that not only did the free beer cost them money but they're also held responsible for supplying it so copiously that folks go home drunk. In any case, the debate is an interesting one, and I don't see why it's necessary for it to degrade into a personal assault.

The community needs to remember that Bjorn as a representative of the Eclipse Management Office has the unenviable task of being the rule enforcer so while it's always easy to find fault with the messenger, as professionals we ought to know better. As a call to action, committers should take note that as a community it takes almost no advantage of the fact that we have five voting board members who can and do work in our interests to effect change in Eclipse's policies and processes. I doubt that most folks even realize we exist and likely would be shocked to understand just how much sway we have on the Eclipse Board. Keep in mind that many large corporations are paying $250,000 for a seat at the table, not to mention the $1,000,000 they are obligated to invest in active contributors. The committer community has five of such influential seats serving their interests and yet when was the last time someone had anything constructive to suggest on our newsgroup?

We're all responsible for making Eclipse better, so while ranting about frustrations is only human, acting on those frustrations constructively in order to harness the underlying passions for the purpose of effecting real change is what professionals do.

Thursday, October 11, 2007

Eclipse Summit Europe Day Three: Sessions and Chats

I stated the morning with Jörg Sievert's talk about what venture capitalists like about open source. The money of course! You might wonder how giving something away for free can be a good business model, but there are certainly enough examples where building an open source community is the best way to gain market dominance and that in and of itself generates value...

After the session I had a very nice chat with Brandon Ulrich and Balazs Banfai of B2 International about their use of EMF in the Open Healthcare Framework. They really appreciated Marcelo's help with their SOC project. Meeting people and understanding the issues they face is half the fun at these conferences!

I managed to track down Tom Schindl again too. He didn't try to run or hide.

Tom is self employed and hence gets to work on whatever he chooses. That must be cool! I asked him why he's so incredibly helpful on the newsgroups and so generous with sharing his cool work. He explained that he learned a great deal from the platform code and benefits so much from the help of folks like Boris Bokowski and other platform committers that he feels compelled to give back in return. So as the old saying goes, what goes around comes around. Sharing and being helpful tends to make other folks share and be helpful, so when there is such an obvious return on investment with folks like Tom, it helps to induce and even stronger feedback loop. That's what makes Eclipse such a great community. I was going to take a cell sample so we could clone him (under the EPL license of course) but I suspect there are laws against that.

As Wayne noted in his blog, I spent a lot of time chatting with folks, though perhaps he over emphasized the talking verses the listening. Several people expressed their gratitude for the help they got on newsgroups. I'm always tempted to say "Don't take it personally, I help everyone" but you have to be careful that a humorous comment isn't misinterpreted.

In the evening, I had dinner with a few of the folks who didn't have to leave immediately, like Lynn, Don and Gunnar, so that finished off the day very nicely. All in all it was a most excellent event!

I'm already looking forward to OSSummit Asia and of course the next EclipseCon. Speaking of which, I'm going to have to span all the modeling newsgroups to call for EclipseCon submissions. It's that time of the year again!

Wednesday, October 10, 2007

Eclipse Summit Europe Day Two: Big Models

Well, I'm exhausted from today's Big Models work group! Here's a snap shot of the group and of the room in which I spent most of the day:

The "let's pick on EMF" day ended well! But I'm too tired to say much about it. Axel, Simon, and Diego were the major instigators from SAP but they, and all the other folks, picked on EMF in such a nice way, it almost didn't feel like critique (much). Actually, it wasn't really so much picking on EMF, it's just that scaling problems are hard no matter what technology you use.

I got to meet some of the managers from SAP as well, so I'm very hopeful that the SAP executives will overcome their conservative ways and take the EMF plunge. You have to take risks in life to reap it's greatest benefits. It was just great getting to meet Axel, Simon, and Diego in person. It will be so cool if they get to work on and with EMF...

Rich and my demo also went well, I think, but it's best to let the audience be the judge.

And I finally got to meet Tom Schindl, though only for a few minutes. But I know what he looks like now, so I'll track him down tomorrow. He can run, but he can't hide!

The reception was nice as well, though I found out a disturbing secret. Mike Milinkovich is a closet Modeling Redneck. Apparently he believes, and I quote, "Modeling is stupid" . Rich and I were going to bitch slap him; actually mostly just me, but Rich probably would have helped because he's ever so helpful. Instead I did the politically correct thing and explained that the only thing more stupid than drawing a box called X with a compartment called y, would be to write an interface called X with getY and setY methods, a class classed XImpl, with a getY and setY methods as well as a y field and method bodies to update y, a factory to create an XImpl, some code to serialize X's y feature, and finally some code to deserialize an X's y feature. Around this point he started to glaze over so I'm sure I was highly convincing that not only is not modeling stupid, but so is Ed. He's a very insightful person!

Tomorrow I'll get to go to some of the talks so that will be cool. Stay tuned...

Tuesday, October 9, 2007

Eclipse Summit Europe Day One: The Modeling Symposium

The Modeling Symposium was really well attended with roughly 35 people. We traded for a larger room with one of the less well attended symposiums. I got a snap shot of all the folks in the room.

Markus Voelter gave a quick introduction and I talked very briefly about what's happening in EMF and the other Modeling projects. Then Bernd Kolb and Peter Friese talked about the Model Workflow Engine. It provides a language to write scripts that drive Bean-like classes representing the components within a workflow. It includes debug framework integration so you can track the activity of a flow. Folks were interested to see a sample running under debug control, so Bernd was under the gun to produce that quickly. Someone asked why not use Ant? MWE has more specialized control mechanisms; it also has an Ant task and they are working on being able to call out to Ant.

There was a presentation about Product Line Unified Modeler by Aitor Aldazabal of the European Software Institute. This involves managing variability of a line of related products via a decision model. Eclipse was a good choice because they wanted OSGi support for deploying on devices. They use Ecore to define models and generate a basic editor as well as using GMF for graphical support. They also use OCL for defining constraints on configuration validity as well as oAW for scripting the process. They need a distributed architecture so are looking into MDDi.

Then Bernd and Peter came back with a quick demo. It's very cool that you can step into the various parts of the flow processing!

Holger Papajewski of Pure Systems presented about Integrating Model-Driven development and Software Product Line Engineering. It was quite closely related to Aitor's talk. They are very happy with the choice to use Eclipse, which was a choice made very early in Eclipse's public life. We noticed a pattern that the talks all used oAW, but Markus denied selecting based on oAW usage, but that just made it more fun to tease him about it. This project manages variants and variability using feature models. The variants are generated using a decision model. They use BIRT for report generation. They are moving over to using Ecore to describe their models.
And they have a need for scripting the types of changes they commonly make.

During the break, I talked to Stephan Eberle who is at TNI-software now. I also chatted with Miguel Garcia and helped him set up his OCL tools demo on my machine. This was the only meeting I've ever been too that was ahead of schedule. Markus runs a tight ship! I also talked to Reinhold Bihler about the C# component for translating EMF's runtime for .NET; Mikael from INRIA was quite interested in this.

Dimitros Kolovos of University of York, an Epsilon committer, talked about automating repetitive tasks. Their project provides infrastructure for implementing task-specific languages. Epsilon Object Language is based on OCL and includes support for comparison, validation, merging, and transformation. He showed how to extract a class into an interface automatically, transforming references to the existing class to refer to the new interface instead. They plan to look at converting a recorded change description into a generated wizard skeleton.

Gabriele Taentzer of Philipps-Univeristat talked about supporting complex editing operations using in-place transformations based on a Transformation Rule Model that lets you describe what needs to be done to transform a graph. When I spoke with her at lunch, she expressed an interest in starting a model refactoring component in EMFT. Cool!

Maarten Steen of Telematica Institute talked about using Business Process Designs to generate code. They use QVT to transform between models. There was quite a bit of discussions about what parts of QVT are currently being supported or planned in the Modeling project.

Miguel Garcia give his impromptu presentation about his OCL tools and the Emfatic work referring to his home page:

At the end of the morning, Markus collected topic for afternoon break out discussions.
  1. Would be a nice to have one QVT implementation.
  2. Dashboard for model users; making the tools more usable.
  3. Organization of the Modeling project. How to make the overall project more organized?
  4. IP? Autosar has a private metamodel...
  5. Validation and OCL constraints.
  6. Scripting and orchestrating the tools.
  7. Scalable support for big models.
  8. What's happening with M2T?
  9. Textual modeling framework.
  10. Integration of textual and graphical aspects of DSLs.
  11. Weaving instances and determining correspondence between instances.
  12. Visualization of complex models.
We voted on our favorite topics and used that to determine which discussions should happen sequentially. After that we had lunch.

As part of the "Better organization" discussion lots of issue were raised. How to use all the different projects in a cohesive way to achieve a particular result? Many people invest a lot of time learning poorly documented tools to understand which ones will help contribute useful capability for their task at hand. We need better summaries of what projects really provide. It's hard to find the information you need. The ability to use all the frameworks in an end-to-end solution is an important need to address. I pointed out that what would be really good would be if users help to focus on building up the information base that documents what they've learned to help make life easier for the next set of users. I.e., the community can contribute to the solution via the wiki.

Markus argued that we need better leadership, i.e., folks who understands and promote the big picture with less particular focus on a specific project. I think that comment was directed mostly at me rather than at Rich, who is busy working on a book for how to use the various Modeling project technologies to build a domain specific language. Hey, if the shoe fits, I put it on! There is also a problem of reinventing technology; researchers tend to like to do this. Overall, a dashboard for technology in Modeling project, like the one for GMF would be appreciated. It was observed that it's not necessarily in the funding company's best interests to make open source so competitive it competes with their products or services, so the community really needs to step in to help polish the open source results. It was also observed that academic research funding is often driven by folks relabeling their work to fit into the special interest of the day without actually changing what they are doing. Folks were also concerned about competition with Microsoft's DSL tooling; obviously Microsoft knows how to polish their results. In general, there are perceived to be too many projects with overlapping scope and with vague interrelations. In the end, we don't need yet more solutions to the same problems, we need a smaller number of well-integrated high-quality solutions. I'll need to think about all this a lot...

As a prelude to tomorrow's Big Models meeting, the issue of scalability was raised. Solutions that work well for smaller models will often not work so well for larger models. It was noted that unloading a large model will actually increase the memory consumption by converting objects to proxies. The objects are detached from the resource but they maintain all their connections,
including their containment tree so any reference to any object in the tree will keep the whole tree in memory. One could unset features to eliminate the containment connections between the objects and thereby allow the individual unreferenced ones to be collected. Fragment paths are seen to be quite large and fragile, though that space is transient while the ID overhead stays around longer. Some folks need to track all instances of some specific type so I pointed out at a specialized EContentAdapter could maintain that information on the fly to avoid visiting the whole model each time.

The issue of large models that are too big to fit all in memory came up, but even without EMF, there is really no solution to this problem. One needs to split them into smaller pieces to make working with them manageable and to reduce change conflicts; cross resource containment can help with splitting large models into smaller pieces. Repositories can be a solution for the search and query problems by maintaining caches and indexes; it can understand the deep structure of what is saved. Also, the EStore API can be useful for separating the data from the EObjects that carry the data; CDO is using this approach. In the end, the best way to make things scale is to have a larger number of smaller resources rather than a small number of very large resources. One can always process the smaller resources one at a time, but a large resource taxes pretty much any technology.

There was a slightly confusing discussion about end user integration because defining an end-user is tricky in this meta meta world. But we decided that by end-users, we mean the modelers, i.e., those folks who will use the Modeling project infrastructure to build models, tools driven by those models, and utilities to manipulate those models. It would be awfully nice to make the tools feel more like the JDT with proper end to end integration to handle common issues easily. Scripting or workflows to perform more complex tasks as part of a build would be a time saver and error preventer as well. Make tools simpler by hiding incidental complexity...

It was a very interesting but tiring day. Rich arrived at the end and I sat down with him to go over the demo we do tomorrow. I'm a little ill prepared. I hope I don't screw it up too much!

Finally we went out for the sponsors dinner organized by Ralph.

Tomorrow's Big Models meeting should prove fun as well. Stay tuned...

Monday, October 8, 2007

Eclipse Summit Europe: The Day Before

My flight from Toronto to Frankfurt yesterday afternoon was on time and very nice. Out of tact, I won't describe just how nice it was. The flight from Frankfurt to Stuttgart this morning was only slightly late. And the taxi ride was fast, i.e., 170km/h at times. I certainly got to the hotel in good time and they had my room ready when I arrived, so I could catch up on a bit of lost sleep.

I had a little bit of time to explore before dinner. The forum looks to be a nice venue.

It didn't take me long to find a cool garden too.

I ran into Don and Lynn, but they were eating early so I walked with them to their restaurant. Later, this snake caught my eye on the way to dinner with the Architecture Council folks, Michael, Pavel (I hope I spelled it right), Bjorn, the two Dougs, and Jeff.

It was a small but tasteful group and later we were joined by Ralph, Wayne and company, so it got to be a big group. Some of us left to make room for the late arrivals, and we strolled through the pretty town in the dark.

I'm looking forward to the modeling symposium and the sponsor's dinner tomorrow night.

Stay tuned for the next chapter!

Friday, October 5, 2007

Is EMF going to replace MOF?

Ian Bull directed my attention to a Model Driven Engineering poll which asks "Is EMF going to replace MOF?" The four choices are quite amusing:
  • Yes, MOF is about dead. That's really sad. I didn't even know it was ill!
  • It may influence it, but both will stay. This sounds a bit too future tense to me. EMOF and Ecore are effectively equivalent---we can read and write Ecore as an EMOF serialization---and that's not an accident. MOF was split into EMOF and CMOF (essential and complete) because of Ecore's influence. When we started work on EMF, MOF seemed to have a lot of nonessential things, so we eliminated those.
  • EMF will never supplant MOF, MOF is great. Since Ecore is an implementation of EMOF and existed before EMOF, I'll be just as happy if we compliment MOF rather than supplant it. If MOF is great, so is EMOF, and so is Ecore. Transitivity is such a useful property!
  • EMF is just for Java, it is too specific, MOF is great. Well, EMF is clearly a MOF implementation targeted to Java. I'm not sure if a Java implementation can be too specific for Java, but if so, I guess it could also be not specific enough, or it could hit the Goldilocks target of being specific but not too specific. Coincidentally, Reinhold Bihler is working on a .NET version of EMF and I know other folks have generated C from it. His version will be just for C# so it might be too C# specific but I expect it will be just specific enough. I'm still waiting to find out from Mike if a C# project can be hosted at Eclipse. That would be a first I think...
So in the end, I think all the choices are good ones, except maybe the first half of the last choice.

Like so many other folks, I'm very much looking forward to Eclipse Summit Europe next week. The Architecture Council group, of which I am a member, is planning to have dinner, which will of course accomplish next to nothing and hence will completely live up to the expectations based on the council's past performance. Oops, did I say that out loud? Just a little joke! Besides, I'm just quoting Bjorn who's never afraid to say what needs to be said. In all seriousness, the newly reformed council has yet to meet, so time will tell if we can become a functional body. If we can just become good mentors for the community we will have taken a positive step in the right direction.

On Tuesday there will be an all day Eclipse Modeling Symposium. Last year's symposium was way cool, so I'm particularly looking forward to this one. On Wednesday there are all day meetings about Big Models to look closely at issues of how EMF can best help support a massive collection of interrelated models. And by the way, don't ever Google for "big models". Oh my eyes. Some images are hard to erase after having been seared onto your retinas. My partner in crime, Rich Gronback, and I will be giving a cool demo. And of course modeling is ever so popular in Europe so there will be cool talks about oAW and compare. I'd never heard about Medany Platform before, so I'll be interested to find out about that!

Lots of people I've never met will be there, and meeting people is more than half the fun. I'm particularly excited to meet Tom Schindl. He's so incredibly helpful on the newsgroups and is doing such cool things. I can't wait.

So no garden pictures this time, but I'll leave you with this photo I took a few years back in Grenda with a rainbow to remind us that diversity in our community is the key to its long term growth: