Tuesday, December 1, 2009

That Totally Sucks You Big Loser

Suppose you went for dinner at someone's house and they served excellent wine, a fantastic main course, a scrumptious dessert, and a salad that made you want to gag. What would you do?
  1. Compliment them on all the good things, overlooking the one bad thing.
  2. Explain that the salad literally sickened you, carefully detailing exactly what was so awful about it.
  3. Something between these two extremes.
Keep in mind that the blue cheese salad dressing might very well be fine quality; the real problem might be that the taste and smell of rotted milk just isn't your thing, i.e., the problem might be subjective, not objective.

It seems human nature to find fault with the world around us. It's not even bad thing. After all, how can one improve anything without constructive ideas for making them better? One must counter that with the fact that it's also human nature to take offense easily to anything that isn't entirely flattering. We generally prefer to hear mostly compliments, especially given the fact that we're getting asymptotically closer to the perfection for which we strive. That's why as children we're taught: if you can't say something nice don't say anything at all. Clearly that's a little too black and white, but that's yet another human failing: to over simplify problems and then come up with simplistic solutions to those. One thing to keep in mind in this drive to achieve perfection through criticism is that focusing on positives, or at least noticing them, generally makes one feel better, e.g., I noticed how lovely these maple trees looked and therefore spent much less time noticing that the wild pigs of Berlin had destroyed the lawn around it.

Given we're all so perfect, of course it's a virtue that we should speak our mind whenever a thought enters it. Every criticism we dish out should be seen as clear evidence of our drive for ultimate perfection. The sharper the critique, the more evident is our keen intellectual perceptiveness. Any mature adult ought to see our commentary as the good kind of criticism, i.e., the constructive kind. Those who do not are, well, over-sensitive, short-sighted losers to be perfectly blunt. With folks like that, one might as well waste time explaining to this water plant that the underwater lily bees aren't about to show up to pollinate it.

Personally I'm more than a little fed up with people complaining about the salad; it tends to ruin the dinner party for the host, and even the other guests who don't share the subjective distaste. It's especially disturbing when the host shrieks back a retort about the gawd awful choice of the complainer's dinner wear. One always has to wonder if the complainers could throw a dinner party or their own, especially given their lack of social graces. I'd suggest they think more carefully about the impact of their criticism before dishing it out. Is it actually valid critique to begin with, or is blue cheese simply not their thing? Most important of all, what good will come from the criticism? Is there perhaps a nicer, more effective way to achieve that goal with an approach that doesn't sound so critical? Sharing your favorite salad dressing recipes without a single word of criticism is probably an approach close to optimal.

Monday, November 23, 2009

Modeling Daze

The Modeling Days have left me in a bit of a daze so I'm way behind with my blogging. The New York Eclipse Modeling Day was hosted by Credit Suisse in the smaller building next to their main tower across from Madison Garden.

Ian Skerret started the day with a quick introduction followed by Joe Wood of Credit Suisse who talked about how modeling is rapidly becoming a central aspect of Credit Suisse's information technology infrastructure. They're very focused on industry standards to help facilitate integration across organizations. Following those quick introductions, I did my stupid modeling talk.

After the morning break, Richard Wood of Credit Suisse presented a case study on model transformation. They're using oAW and EMF. He talked about Gobal Services as Enterprise Java Beans for which service interface definitions were specified as UML class models. It was a quick and dirty solution with the drawback that the UML API was complex to use and hence the templates were difficult to maintain. Using a specialized model to express web services helped simplify the transformation process of producing WSDLs and XSDs. In other projects they used profiled UML to describe the different design layers of a large project, i.e., the presentation layer and the business data layer, which they mapped onto a specialized DSL and from that generated the parts of the application. He also talked about generating a profiled UML instance from a model and talked about some of the lessons learned. The requirements for the model that are needed for generating is often different from the original high level model, so using transformation to produce the more specialized form can help simplify the design. He suggests to avoid generating directly from UML because it's too complex and that complexity obscures the logic of the templates to make them unreadable and unmaintainable. He feels that static content in templates needs to be independently maintained. He also advises to reuse existing technology whenever possible, e.g, the oAW XMLWriter. One of the questions afterward was about why UML was being used at all; the primary reason given was that UML is simply a standard requirement for which there is existing experience and tools.

After lunch, Bjorn Freeman-Benson, Miles Daffin of Morgan Stanely, and I did our b3 talk. It went pretty well I think. The b3 project completed its creation review just last week, so we're off to the races! Our talk was followed by Eike's CDO talk where he explained many of the same things I've seen at the Munich code camp and at ESE, so it's starting to sound simple and familiar.

Moritz's talk about combining graphical and textual views followed the final break. He focused on some of the qualities of good textual notations, e.g., readability and writability, as well as the tooling aspects that further facilitate these aspects, e.g., syntax highlighting and content assist. Then he compared different aspects of textual and graphical notations, e.g., text tends to be presented in its entirety whereas graphics tends to hide much of the model in properties not directly visible.

The day finished with a closing panel where the panel asked the audience questions to stimulate more two-way interaction. All in all, it was a very fun day. One of the ladies I chatted with remarked how great it was to be able to attend a free mini-conference like this. "Usually something like this costs a lot of many," she remarked. Soon it was time to say goodbye to the bright lights of New York.

The Toronto modeling day was fun as well. It follow much the same format and included mostly the same content. IBM's facilities were very nice, but they asked us not to use cameras. It was especially nice to see some familiar faces. I did my stupid modeling talk yet again; people always seem to like it so that's rather gratifying. My build talk was after the break, so basically I talked the whole morning and was very tired after that. Following lunch I attended the MDE talk as well as Mile's AMP talk. Both were very interesting.

I think the Toronto day went even better than the New York; folks seemed more inclined to interact with each other. That same evening there was a demo camp as well, so we had even more opportunities to chat and mingle. If I wasn't so darned tired, I'd have taken a few pictures. With all the excitement behind me, Frank and I were able to focus on setting up this year's festival of lights.

We refuse to be outdone by our neighbors, not that we're competitive or anything.

Monday, November 9, 2009

Do It Better With A Model

Has the spark of excitement in your life slowly dwindled? Do you suffer from performance anxiety? Are you concerned that you won't be able to fully satisfy Helios? Fear not for you are not alone! Fortunately for you, we have a new drug free solution. Forget about all those ads for pills and mechanical devices filling up your spam folder. We have discovered that real live models bring a whole new perspective.

Our carefully selected models aren't merely super, they're versatile and flexible enough to satisfy your every need. Just relax and let them do their thing. Of course if you feel so inclined, you can take control anytime the urge arises. If you aren't yet fully convinced that our stimulating models are exactly what you need, have a look at this testimonial from one our many completely satisfied customers. He's clearly taken aim and hit the mark, and he's not alone.

Best of all, our models aren't merely good for builds, they're good for development in general. Whether you like to do it top down, bottom up, or some other way we've not yet imagined, our models will be there to help you feel like the real developer you've always wanted to be. Your imagination is the only limitation, so take a bit of time to dream of the many exciting things our models might do for you do today. The e4 team has, and now there's no holding them back. Just keep in mind that no problem is too small or too big for our models. After all, I doubt this grand palace was built without the aid of a model.

We're so fully convinced that our models are world class, we've scheduled free modelings days in two of North America's great cities: New York and Toronto. Register immediately for these exclusive events before time runs out! You'll spend a fun filled day learning about b3, Xtext, CDO, AMP, Papyrus, and SAP's exciting new query technology from some of the world's leading experts as well as discovering how these technologies have been effectively exploited. Not only that, all four authors of the EMF book are expected to be at the Toronto event, so bring your books to be signed. At the end of the day, I'm sure you'll agree: it's simply more exciting to do it with models.

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!