Friday, February 10, 2012

Xcore on Training Wheels

I've quietly been making excellent progress with Xcore. After getting IP approval, the first step was to migrate the code base to be hosted at Eclipse. I decided this was also an appropriate time to migrate EMF and XSD to use Git to preserve the github history of Xcore. All the cool kids are doing it. Being cool is very important. No one wants to be left out in the cold.

Unfortunately, learning Eclipse's Git tools has been a bit of a nightmare. Its poor support for proper line feed handling continues to be frustrating. I compare learning Git to being given an advanced new hammer, one without a handle, that if you just instruct it nicely to do what you want, will do the job ten times better than ever before. Only the instructional language is Gitinese. It's very hard to pronounce, with lots of German "ch"s (think hissing snake), "st"s, and "sp"s (think "sht" and "shp" where the "h" is implied), plenty of Dutch "g"s (think clearing your throat), and no end of "th"s (think "s" but with your tongue hanging way too far out; it is a very unusual sound if English is not your native language). Anyway, enough bashing Gitinese and the Germanic languages. Once you learn them, they all sound as if they were simply meant to be that way. Oh well, back to Xcore.
Of course we needed a logo, so I whipped one up. Maybe someone will contribute a nicer one. On a more substantial front, with the help of Dennis Hübner, we have our first builds of Xcore available. It's been contributed to the Juno repository. (Note that he's working on making EMF and XSD 2.8 build with Eclipse 3.5 so that we'll have more permissive version ranges that are properly tested.) I also finally found time to write a wiki tutorial for how to get started with Xcore. Lots of cool things are working rather nicely. We even have support for organizing imports. So have a look if you have the time.

Tuesday, January 10, 2012

Modeling Daze to Come

My transition to Germany is nearing completion. I now have a three year visa to stay in Germany and I'm registered as living in Berlin. Amazingly the visa was acquired with roughly eight hours of time investment, including the four hour wait for the appointment, along with zero euros of financial investment. The best things in life are free.


The German process stands in sharp contrast to the Canadian process we followed for Frank. That cost many thousands of dollars and took the better part of a year. All I need now is a German tax number and a German bank account and I'll be ready for business in 2012. Speaking of business, there's a lot going on! Jonas recently blogged about the Eclipse Modeling Symposium scheduled for EclipseCon. If you'd like an opportunity to showcase Really Cool Things,™ please send in your proposal so that Jonas and I can find an appropriate slot for your facet.


The OMG is holding an Eclipse Symposium as well. It will be held the day before EclipseCon starts, i.e., Sunday, March 25th, 2012. It will focus on Eclipse technologies that implement and support OMG specifications. Ed Willink is helping organize it. If you're interested, I suggest you contact him at ed at willink dot me dot uk . You can also register just to attend. I'm looking forward to seeing the juxtaposition of the old and the new.


As you may have noticed, you simply can't have too many Modeling Days, so of course there will be another modeling day at JAX this year. Sven, Eike, and I are organizing it. If you'd like to get involved, please send your proposal to ed dot merks at gmail dot com. I expect I'll be able to understand more of the German content this year than I did last year. Maybe I'll even have plodded along far enough to speak some broken German by then.


To further round off an already well rounded event schedule, there's an Eclipse Day in Florence on May 4th. Can you think of a lovelier place to hold a Eclipse event? We're really looking forward to having a peek at part of the community we've seen less frequently.


At this point you might be wondering about deadlines for submissions. All I can say is don't ask about deadlines! Do it now. There's no time like the present. Time waits for no one, and most especially not for you. If you have time, and you expect to be in Berlin, Eike and I will be at the Eclipse User Group Stammtisch on January 31st.

Wednesday, November 23, 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...

Tuesday, August 9, 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, July 29, 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, June 26, 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.

Monday, June 13, 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.