Wednesday, 23 November 2011

Making the Move to Germany

I haven't blogged for a quite a while, not for lack of content, but rather for lack of time. So much as happened in the past months! In August we had visitors from Germany. We took them to see Pacific Rim National Park, one of the most beautiful places on earth.

During this time we also started making plans for an extended stay in Germany, which, as you know, is the home of Really Cool Things.™ My ThinkPad was very old and totally tired, so I finally cracked open my wallet and bought a new Dell Precision M4600; I must have a keyboard with an ultranav. My new baby is fully loaded to the hilt with every desirable feature, including 16GB of 16MHz memory, two SSD drives, an i7-2920XM Quad Core, and more. It sure was a lot of work to get it set up, but I love it.

We've been in Germany since October 7th. Berlin is our home base. And of course we brought the girlies along! Since our arrival, I've been busier than ever with visits to itemis headquarters in Lünen, the Xtext guys in Kiel, EclipseCon Europe in Ludswigburg, as well as demo camps in Bonn and Dresden. We've even had a chance to go sightseeing in Rügen.

Just this past weekend I went to a friend's concert at Berliner Dom! I captured the experience with my brand new Nikon Coolpix S9100 with 18x wide optical zoom.

This week there's a stammtisch in Berlin on Thursday and next week Eike and I present at an itemis event in Bonn on Tuesday. Maybe we'll see you at one of those events! Later next week, Eike and I host an itemis training session in Oldenburg; yet another place I've never been. I'm pretty sure I've seen more of Germany in the past weeks than most Germans have seen in the past years.

It's quite clear now that Germany is the cool place to be for us to be, so we're making long term plans to stay here. It's kind of scary, but oh so exciting too. My German comprehension improves a little bit every day though my speaking abilities lag far behind, for lack of trying I'm told. In any case, I now have a very nice home office that includes a Dell UltraSharp U3011 monitor; I kiss it every morning because I love it so much.

Life is definitely very cool and exciting. I'll have to blog more often now that things are finally settling down. Xcore too is progressing well; stay tuned...

Monday, 8 August 2011

Xcore: Coolness Reborn

The quest to Kiel has proven enlightening beyond expectation. Last week, as I approached the sanctuary of the Xtext team, sun glinting from the facade, I knew deep down that I was headed for the right place.

Xtext is the coolest of the cool projects at Eclipse today, and that's tough competition! Three of its four custodians, Sven, Sebastian, and Moritz, were there that Monday morning. We discussed the coolest things we could collectively conceive: Xcore, progeny of Ecore and Xbase. We decided to begin this new endeavor using a repository at github so we could immediately begin working as a team. (Of course we'll host this at Eclipse after we migrate EMF itself to Git.) Time flew yet much progress was made before the sun set on a great week.

We found time to write a proposal for a session at EclipseCon Europe 2011. If ever there was a Really Cool Thing,™ this definitely is it! Before I knew, I was back on a speeding plane, admiring the majesty that is Super Natural British Columbia.

I got home just in time for the final display of Vancouver's Celebration of Light. I was definitely in the mood to celebrate!

I'm extremely happy to have embarked on this cool quest. I look forward to excellent progress in the weeks to come. That vast desert of uncool is already fading from memory. To whet your appetite, here's how the Xcore model for the standard Library example looks:

This isn't just a pretty picture, we have a great deal that is working already! Don't just take my word for it, open source is a glass house; stay tuned. Of course all design decisions are subject to change. We look forward to feedback from the community.

Friday, 29 July 2011

The Quest for Coolness

As you know from my previous blog, I've been thinking a great deal about "Really Cool Things."™ In fact, not only have I been thinking, I've taken action: I have embarked on a great quest. While wandering the vast desert of uncoolness, with nothing of interest as far as the eye could see, I thought I heard a voice as my eyes were drawn to a sparkle in the distant horizon. Could it be the enlightenment that I seek? The voice compelled me to go forth: "That which you seek is in Kiel," it whispered quietly. Meanwhile, my faithful companion found coolness in a stick.

Being somewhat impulsive, I immediately booked a flight to Germany. It leaves this coming Saturday and arrives on Sunday. From there my quest will continue; I think I'll start fasting. I know not what I'll find, never having been to Kiel, but I am confident that I'll find that which I seek: "Really Cool Things."™

Sunday, 26 June 2011

All Cool Things

With Indigo behind me and Juno in the distant horizon, it's time to chart a new course. It was with great interest that I read Mile's inspirational and timely blog about Indolent Programming. I immediately recognized that I definitely prefer to work on Really Cool Things. Moreover, like a bolt of lightning, I had a startling revelation: providing service and support for a ten year old framework like EMF is totally, absolutely uncool. Granted it was definitely cool to create and popularize EMF and most certainly it's great for the uncounted clients relying heavily on EMF that it be well supported, but one salient fact stands stark: service and support is at the far end of the coolness spectrum. As a result of this awakening, I nurtured my inner Teflon Programmer, and embarked on a renewed quest for coolness. Who will support EMF in my stead, you might ask. Ms. Else of course!

She's the ultimate goat, to use Mile's enlightened terminology. She actually enjoys eating her own dog food. Not only that, if you throw her the occasional bone, she's simply beside herself. This will help free up much of my time. She'll be well qualified to hit some of my simple short cut keys. For example, the first answer to any newsgroup question will be, "Did you consult with your best friend, the debugger? She's able to answer questions far faster than me." Of course Else too has a backup, Ms. Ruby!

What will I do with my new found freedom? That's for me to know and for you to find out. The only thing I'll reveal is that at this moment, number one on my list is Eclipse Demo Camp Vancouver. See you there or be uncool; the choice is always yours.

Sunday, 12 June 2011

So Much to Do, So Little Time

It's been ages since last I blogged. Where does all the time go? EclipseCon came and went in a whirlwind of activity. There wasn't nearly as much modeling content as in previous years and I know more than a few folks were frustrated that I rejected their talks. I didn't bother explaining that this year's selection process reduced me to tears; sometimes it's best to just clam up.

You'll probably be surprised to learn that I actually spent quite a bit of time in my evil secret lair doing cool technical work in recent months. EMF's RESTful persistence framework is heavily focused on stream-based I/O, but sometimes streams are just not what you really need. To enable greater flexibility, we've added two new interfaces to URIConverter: Loadable and Saveable. These make it easy to add a URIHandler that creates facades rather than real streams and via those facades persists a resource's contents in some arbitrary manner, i.e., in a database or some other type of structured repository. If you're interested in details about how to exploit these two new pillars, Byan Hunt blogged about MongoDB integration for EMF not so long ago.

As part of EMF's persistence flexibility enhancements, I vamped up the existing resource implementations as well. Of course they needed to detect the new stream facades in order to delegate appropriately, but more to the point, it's now also possible with a single resource implementation, i.e., XMIResourceImpl, to produce or consume binary using XMLResource.OPTION_BINARY, XML using XMIResource.OPTION_SUPPRESS_XMI, and of course XMI as usual. It's been a well hidden secret up to now, much like the new ODA support Kenn Hussey implemented!

The coolest new feature though is the improved ability to record a set of changes being made to a model and from that efficiently produce a change description that can be sent elsewhere and applied to replicate those changes. It's ironic that a feature so easy to describe is so deceptively difficult to implement. As part of its Change model EMF has long supported a ChangeRecorder that produces a ChangeDescription for this purpose. The problem is that it describes how to go from the current state back to the original state, i.e., it's a reverse delta. It's possible to call applyAndReverse to produce a forward delta, but that modifies the state of the model, i.e. , it's like undo. Of course it's also possible to call applyAndReverse as second time to redo the changes, but clearly that's not very efficient nor desirable when there's a user interface updating in response to all the changes. To address that problem, we've implemented copyAndReverse so that we can produce a serializeable forward delta without changing the state of the model itself. You might want to try it out and help stamp out any remaining bugs.

At the beginning of May I traveled to Germany for JAX and met up with a bunch of my friends for an Eclipse modeling day. The presentations and discussions were in German, so that was very tiring! Can you name all the Eclipse committers in this picture?

As part of the JAX trip to Europe, I spent some time in the Netherlands; I was born in Rijswijk and I took my mother long to visit with her family there while Frank and I stayed in Den Haag and then Amsterdam. I've never been to Amsterdam before and we happened to be there for Koninginnedag. That was quite amazing. No one can pack more boats on a small canal than the Dutch! The fact that their raft was being pushed under by the crowding boats didn't bother these guys one bit.

Not long after getting back from that, it was time for CodeGen 2011 in Cambridge where I did a keynote on the last day. That was a very interesting conference. I met lots of new people. I hope I'll be able to attend again next year. Mark Dalgarno, the conference organizer, did a great job. He even included a very memorably outing to experience punting on the Cambridge waterways.

Since then, like so many of you, I've been caught up in the final frenzied daze of Indigo. With that almost behind me, I am looking forward to a trip to Raleigh, North Carolina Monday for the Eclipse Board meeting. Speaking of which, the foundation is proposing some updates to the Eclipse Bylaws, so the committer representatives took the opportunity to propose a change to how we are elected. In particular, we looking to deliver on the one committer one vote principle. We're quite pleased about that and hope you are too.

Tuesday, 8 March 2011

The Universe is Unfair

Fairness is a highly subjective thing. It's not simply about everyone being treated equal, it's about everyone being treated in a way that's proportional to need, merit, or some combination of the two. The universe is objectively blind to need and merit. It rains fortune and misfortune on the guilty and the innocent with equal abandon. Given that the universe is unfair, we must intervene to rectify the situation and be prepared that when we do, it will be, as Dave points out, contentious.

So it is with divvying out the Friends of Eclipse funds. Scott suggests we give up. Just kidding; I'm distorting his words by taking them out of context. What's life without a bit of humor? He actually suggests we give up centralized control. Fortunately he doesn't mean we should have a vote each and every time. We all know how contentious voting can be and how easily one can stack the vote with all your best friends. It's more likely to resemble a popularity contest than anything else.

Concretely, in 339239, Scott suggests that the individuals donating the money should make the decision. I'm not completely sure what this would entail. I think the suggestion is that the donor delegates the spending decision to a specific project's leadership, sort of like ear marking it, perhaps via a huge drop-down list of all projects. That certainly sounds very fair, at least to the donor.

Let's consider though just for a moment if donor earmarking is likely to be fair in the grand scheme of things. I hope the Aardvark project, being early in the list of choices, doesn't get most of the donations! I hope projects with poor documentation, builds, and testing get some money to help fix that. I hope projects that are used in the many other projects, but aren't apparent in the user interface, get lots of donations. In fact, I hope it's not just a few sexy projects that get the lion's share of the money. Simply put, I hope the donors will be fair. I doubt it though. I fear it will just be a case of the rich getting richer. Personally, I'd rather have people I trust to do what's fair making the decisions.

Sunday, 6 March 2011

To be Fair and Balanced, That is the Question

As you may or may not be aware, your committer representatives are responsible for the allocation of the Friends of Eclipse fund. There's not a lot of money and we'd like to use it in a way that promotes our community. A few people have proposed ideas. Some were accepted and some were not. We'd like to think our decision making process was fair and balanced, but that's been called into question, particularly with regard to a request for release engineering support for ECF. As a group, all the people currently running to be a committer representative agreed that using the community's limited funding to scratch the admittedly nasty itch of one specific project isn't appropriate.

To me, that seems fair and balanced, but apparently some are inclined to see it differently. Simply put, we are doing damage to small projects like ECF by saying no, we have wasted the valuable time they spent asking for money, and we generally don't represent the interests of the community. The list of things we're doing poorly is long and we're clearly bad people. It's ironic to me how often those most skilled at dishing out critique---calling Ekke an ignorant hack being another good example---are the very same ones so easily offended by another's poor choice of words. I need to keep an open mind though, so if others feel we've misjudged in our decisions, please let us know your thoughts.

Tuesday, 1 March 2011


Never put off until tomorrow what you can forget about forever. After all, some problems will just go away on their own if you ignore them long enough, right?

I've been so busy these past months that a great many things have slipped through the cracks. I'm beginning to think there are more cracks than solid ground. Last I blogged I'd just traveled to Zurich for Eclipse Enterprise Modeling Day as well as to Ludwigsburg for Eclipse Summit Europe and I was living in Maple Ridge. Three months later, I'm planning a trip to Zurich for a Modeling Workshop---don't procrastinate, register immediately or miss your opportunity---as well as a trip to Santa Clara for yet another fun-filled, action-packed EclipseCon and I'm living in amazing downtown Vancouver; the Tasktop office just a five minute walk away. What happened to the house plans? A word to the wise: if you think we software engineers have trouble staying on schedule and within budget, the North American construction industry makes our industry look like a well-oiled machine. I'd rather step on a stone fish than try to design and build my own house again; it would a much quicker and far less painful death.

Don't forget, it's election time again for the Committer Representatives of the Eclipse Board of Directors. I thought fierce mudslinging might ensue while I was off gallivanting around the far east, but apparently it's turning out to be another tame campaign. While all the candidates are very good, and obviously very nice, I'm clearly by far the best because I have the prettiest underwater photographs.

Okay, that's not terribly relevant. But I do have a proven track record when it comes to braving shark-infested waters.

That's an essential skill to be sure! If you plan to vote, you have until March 11th to procrastinate.