Friday, October 30, 2009

Eclipse Summit Europe 2009: The Final Day

The day started with Tony Ballenti's keynote about the dynamics of open source.


He explored the various reasons why organizations get involved in open source and how that motivation matures over time.


As with all things in life, investing more effort generally generates more reward, or at least the potential for that. Nevertheless, many if not most are quite comfortable investing very little while still reaping significant rewards. Tony spent a lot of time talking about ecosystems with these takeaways.


From a modeling perspective, we've gained a great deal of value from innovative individuals including many researchers. In addition, a significant number of companies have grown in this space and are investing heavily in it, which is very good if you consider where we'd be if we still relied primarily on the two large organizations that kicked off this venture.

After the break, during which I talked with Bernd, Boris, and Kai about using Xtext to specify a CSS subset for e4 styling, was Kenn Hussey, Raphael Faudou, and Patrick Tessier's Papayrus talk.


The room was way overcrowded and there just wasn't enough air. They outlined the history of the project, i.e., they started as a number of separate external UML tool efforts. These efforts merged under the Papyrus 2 umbrella which is now producing some very slick looking technology. Kenn described the "perfect storm" that's bringing things together.


The project aims to separate out a DSL backbone that can be reused with other models such as SysML, BPMN2, and so on. Stay tuned for other developments in the area of a common DSL workbench...

Markus Herrmannsdoerfer's COPE talk was in the same room and it was even more crowded, so much so that people just couldn't fit in the room anymore.


I assume many people have data that needs to be migrated as their models change. Go figure. The idea behind Cope is to track the changes made to the Ecore model and then apply those same operations to the actual instance data. He demonstrated how it really works with a simple state machine model.

Hajo Eichler's Model Execution Framework talk was also in the same room.


Thank goodness someone figured out how to open a window or I'd have died by now. He did a bit of slide "borrowing" for his talk; Eike and I made it clear intend to send the license police after him. Quickly thereafter, you could hear the police sirens out in the street, and he looked worried. He showed how he extended the Ecore model to be able to express behavior using a subset of UML activities. There's an intepretter to execute the model as well as a debugger for interactively tracking the execution process. It looks very promising.

After that was lunch, during which Thomas, Henrik and I talked with Wayne about how we can help with aggregating p2 repositories for Helios and for projects not on the release train. Unfortunately, I missed all the afternoon sessions dealing with modeling project management issues. If I told you about them, I'd have to kill you. I really wanted to see EuGENia;I heard from others that it was really cool. I also wanted to see the progress that was made on EEF. It was a bit of a bummer to miss all the interesting sessions that afternoon. There should be more time for chatting at these conferences...

By late afternoon, word had gotten out that it was my birthday. During the closing session, Ralph incited the entire audience to sing happy birthday for me. How embarrassing is that? According to German custom, I should have bought cake for everyone and invited them all to a party. Sorry dudes, I can't afford that much cake. As expected, ESE just keeps getting better each year and I look forward to next year.

Thursday, October 29, 2009

Eclipse Summit Europe 2009: A Day of Talks

The morning started with the keynote about functional programming by Don Syme of Microsoft.


I loved functional programming back in my university days, which seems like so many eons ago. He argues that certain classes of problem are far simpler to solve using functional programming and shows a number of examples where F#'s syntax is far simpler, i.e., less verbose, than C#. Personally though, I'm not one who easily buys into the idea that syntactic conciseness in and of itself makes a language significantly better. Simplicity of the underlying semantic/mental model is ultimately what counts, and that of course needs to be balanced against expressiveness power, which generally is the counter point to simplicity. F# definitely looks powerful.

The break was an opportunity for many interesting discussions. One of the great things about conferences is the face to face discussions they facilitate. The summit is particularly conducive to that type of interation. Unfortunately that resulted in missing the start of the e4 talk. The diverse e4 team has made a lot of progress.


After another yummy lunch I was torn between Sven's Xtext talk and Tom's e4 model talk. Two cool things at once. Darn! I know more about Xtext than the e4 model, so I opted for the latter. It was interesting hearing all Tom's reasons for using EMF in e4.


He showed how a simple application model specifies the logical structure of the user interface, eliminating the need to build up these structures with a pile of boilerplate Java code. Then he showed how to extend that base scaffolding with embedded parts. He even showed an example where one process is editing an e4 model stored in a CDO repository while another process is rendering that same model from the shared repository in the actual UI; changes are immediately reflected across the process boundary effecitvely giving you a WYSIWYG editor. He also explained how you can define your own renderer to display the same model in various different ways. It's looking very good!

After that I attended Bernd Kolb and Christian Mohr's query talk.


Bernd explained some of the shortcomings of the existing EMF query technology; it's definitely pretty crude. SAP had some existing query infrastructure that was part of their proprietary MOF implementation; that's what's being contributed to Eclipse. They demonstrated examples of the cool SQL-like query language they support. The query execution engine makes use of the EMF index project, but can work against in memory resources as well as directly against a database too.

Frederic Jouault and Hugo Bruneliere's EMF Oslo talk was next.


They explained that M consistst of three complementary languages: MSchema, MGraph, and MGrammer, analogous to Ecore, EObject, and Xtext. Bridging these technologies involves mapping these specific concepts. To start one could define an Ecore model for MSchema so that it's possible to transform Ecore instances to MSchema instances which could then be serialized to conform of the MSchema textual syntax. They demonstrate their progress toward implementing this approach including ATL transformations for doing the mapping.

Henrik Lindberg and Thomas Hallgren's b3 talk followed a short break.

One might summarize the approach as model driven builds. Key aspects of the build and provisioning process are captured as declarative models, e.g., buildable units which are analogous to p2's installable units, and these ultimately drive the build process. Xtext is being used to provide human readable syntax for the build models. There's a lot of cool stuff planned! If you're working on an Eclipse project, you're probably painfully aware of how much of a nightmare it currently is to set up and maintain your builds. Goodness forbid someone changes the requirements for what needs to be pumped out at the end!

After that I had a chance to chat with a guy hoping to get involved in GEF, a project that certainly needs some fresh and lively committers. Maybe I'll be able to help. This was followed by the Buckminster talk from Henrik, Thomas, and Filip Hrbek.


It attracted a very large audience.

Henrik explained that provisioning a workspace or building a p2 repository ought to be as simple as ordering your favorite burger at your burger outlet of choice.

Filip and Thomas demonstrated that it's as simple as specifying a query to locate the root feature and asking for its p2 repository to be built.


The tools, e.g., the dependency visualizer, are looking very slick. They also demonstrated the repository aggregator, which is based on an EMF model and an EMF generated editor. It can even produce a Maven repository as well as a p2 repository. How cool is that? At the end they explained how the lessons learned from building Buckminster will be used to drive further improvements into the b3 project. Models, models, everywhere.

This was followed by the reception. It included a talk by Microsoft that felt a little too much like advertisement to me. Oh well, they paid for the the food and the spirits---the salmon was excellent and so was the wine---so it was a reasonable trade-off. I finished the day at a birds of a feather session discussing how to transform the modeling project into something suited for supporting a DSL workbench as well as how interested consumers could help fund that effort. It was a very interesting day indeed!

Wednesday, October 28, 2009

Eclipse Summit Europe 2009: Tutorials and Symposia

Eclipse Summit Europe started today. The weather was very mild making the short walk from Nestor Hotel to the Schlosspark Forum particularly enjoyable. It's a grand looking facility.


Eike, Tom, and I started the day with the EMF Tutorial. It was an extremely large group of people.

They didn't all fit in one picture.


I started with basic concepts about resource management and XML serialization, Eike went into depth about CDO, and Tom finished with an overview of EMF's data binding integration.

The Modeling Symposium also had a very large turnout.


The room was packed.


Christian Meier of UBS kicked off the Modeling Symposium with a presentation about the relevance of modeling in the enterprise.


He would like to see Eclipse evolve toward a first class IDE for developing models with integration through repositories to better manage the integrity of large interdependent models as they are modified by distributed groups of developers.

Eike continued with a brief demonstration of CDO as applied to his eDine restaurant model.


He showed how several applications can coordinate around a single repository and thereby reflect changes made to the state at that central repository.

Next Frédéric Madiot of Mia-Software presented the MoDisco project which is focused on discovering the models that underlie complex applications.


This information can be used to evolve and modernized those applications. He showed the generic browser that can help analyze any EMF model. It supports specifying queries that can be used to alter how the model is viewed. He shows how this can be used to specify a derived feature that's external to the actual model. Once you induce an interesting view on the model, you could use those queries to extract that into a formal model of the application.

Next Skhiri Sabri of Euranova demonstrated his live model to model transformation technology.


He talked about how an underlying model drives many of the related parts of an overall application. They have a model for the UI, a model for the data objects, and a modeled transformation layer for mapping the object model onto the UI. The tansformation layer is designed to listen to the source instances so that it can update the target instances as the source changes. In many ways, it acts similar to data binding, but is focused on always on live model to model transformation. It would have been cool to see it in action.

Markus Voelter did a lightning presentation about feature models which are used for managing variability.


A feature model describes how a valid instance is composed of parts, some of which might be mandatory, optional, or perhaps one choice of many options.

Frédéric Jouault of Ecole Des Mines Nantes described the MDE diploma he's helping to develop.


It will teach students basic MDE concepts and technologies with a focus on things that have direct industrial application. He outlined the basic curriculum they plan to support. It will include an internship program.

Cédric Vidal of ProxiAD described EMF Customerizer, a technology for customizing generated models.


It uses a CSS-style syntax for expressing the customization. This way the customizations can be expressed external to the model and hence can be reapplied to a modified version of that model. Perhaps in the future, direct changes to a model could be persisted as a customization.

Sebastian Benz of BMW presented EFactory, a textual syntax for creating instances of Ecore models.


He used Xtext to define it and showed how it could be used as textual syntax for building Ecore itself. How cool is that?

Cédric Brun demonstrated Acceleo's support for MTL. It looks like a nice language and the editor is quite slick.


There is support for prototype-based template generation, traceability hooks, and even a profiler to help tune generator performance. Very impressive.

During the final discussions, we talked about the problem of wanting fine grained object level repositories as well course grained textual resources. Part of the issue is how often do conflicts arrive from simultaneous users. But even there, a textual file can be converted to a model, and comparisons can be done at the model level instead of the file level when merging changes. The problem is often establishing identity, which is generally lost in a modified textual representation. Names could be used for identity, but refactoring can change a name. Ideally we could edit textually but not produce wholesale changes in the underlying model. It was an interesting discussion, but such a large room with a large group is not a great venue for including all the interested parties.

Afterward I sat through the Foundation 2.0 Symposium, but I quickly started to feel that pulling out a fingernail would be far less painful. I'm still not sure why model bashing is a necessary part of improving the foundation. Consider the 150+ people interested in modeling at ESE today, you'd feel safe to assume that modeling is quite an important part of the foundation's future. Oh well, you can't please all of the people all of the time. At least things progressed to more constructive contributions, such as how best to build an ecosystem where people can pay for bug fixes as well as fund feature development. I had to leave early for the sponsor's dinner, which was far more enjoyable!

Friday, October 23, 2009

Life in the Fast Lane

Do you ever feel as if life is speeding by in a blur? I often feel that way these days.

My time in Berlin is rapidly nearing the end. How can the last five weeks have gone by so quickly? It's been more than a bit little dazzling.


Next week is Eclipse Summit Europe, so I'll be off to Ludswigburg. I love the cozy atmosphere of the summit! I've been fortunate to have been able to attend every single one; I've only missed one EclipseCon, but let's not go there. The summit gets better every year so I have particularly high expectations. No doubt it will be grand.


Ralph would be very happy if you registered immediately; we all live to make him happy, don't we? Of course it will make your pocket happier not to wait until next week. Note that last I checked, there were at least 60 people planning to attend the modeling symposium. Bernd and I have a few interesting sessions lined up already, but there's still room if you having something cool you'd like to show off. It doesn't have to be anything too formal.


The registration for the Eclipse Modeling Days is looking very good too. That's something to look forward to after Frank, Else, and I leave Berlin behind at the beginning of November. These days, Berlin is the city of lights; I'll always remember it fondly.


When you live life in the fast lane, there's never a dull moment. I even fixed almost the entire defect backlog this week!

Friday, October 16, 2009

Much Ado About Modeling

What a relief! Eike and I completed our Code Camp yesterday here in Munich. It was a great deal of effort to prepare the material and given my strong dislike for working on powerpoint slides, all the advanced work seemed particularly onerous. But it was fun once we got started and now that it's done we have excellent material for the next time. The attendees were certainly very positive in their reviews; look at how studious they were doing their exercises.


Everyone had a great time and even I learned a lot listening to Eike's excellent presentation about CDO. CDO is totally cool and I bet a lot more people would use it if they knew more about it. Eike's CDO tutorial at ESE on October 27th is bound to be well attended; Tom will also be involved to explain how EMF and databinding are as complimentary as nuts and chocolate. Speaking of totally cool, the DSL tutorial at ESE I'm sure will be a big hit as well; Xtext is one of my favorite things. It goes without saying that attending the ESE Modeling Symposium after the tutorial of your choice is an absolute must; don't forget to send us your abstracts so we can prepare a fascinating agenda. It's clear that October 27th will be all modeling all the time! Even the b3 symposium and the e4 symposium are about modeling. In Germany, every time you turn around, there's another model, or statue if you like.

Of course you don't have to attend ESE to learn more about modeling. For example, the itemis guys are doing several training sessions in the coming weeks, not to mention the upcoming modeling days in Toronto and New York. Don't forget to register! Personally I'm very excited to learn more about the Agent Modeling Platform, among other things; Miles is doing some really cool stuff. There are definitely interesting things on the horizon as well as a clear path for how to get there.

Eike and I were going to go sight seeing in Munich today, but it's unseasonably cold---it snowed the last few days--- and we're just not properly equipped with warm jackets, so we'll head back to Berlin around noon. I'm not exactly sure what to sink my teeth into next.


No doubt it will be modeling related. Perhaps I should tackle that growing defect backlog!

Tuesday, October 6, 2009

Really Big Models

My modeling pilgrimage to Nantes the other week was most enjoyable. The stupid modeling talk went over well and it was great fun spending time with Jean as well as the academic and industrial modeling researchers from the area. Instead staying at an impersonal hotel, Stéphane, Etienne, and Cédric each hosted me at their respective homes. I even participated in the swimming portion of the La Baule Triathalon. Checkout out my awesome team.

After the triathlon, we played soccer for a few hours; I hate to admit that I had trouble walking the next few days. Thanks to the Nathalie Effect, my soccer team crushed the other team; sorry Etienne, better luck next year. The day was rounded off by a giant barbecue party at Cedric's country estate.


Since then I've been working with Eike to prepare for the Eclipse Code Camp which is next week; did I ever mention how much I dislike preparing slides? I've also been working with Ian on the plans for the Eclipse Modeling Days as well as with Bernd on the agenda for Eclipse Summit Europe's Modeling Symposium. If you're interested in participating in these events please let us know! Lately I feel like I've bitten off more than I can chew...


This last weekend was a special event for Berlin: the wall came down twenty years ago. As part of the festivities, I saw the biggest model ever!



The small giant above was 7 meters tall but the big one was 14 meters!!



I can say without fear of contradiction that models are big in Germany!