Tuesday, November 13, 2012

Germany: The Demo Camp Capital of the World

It's the fall demo camp season.  If you look at all the scheduled demo camps, you'll see that more than a third are in Germany!
  1. Hamburg
  2. Bonn
  3. Dresden
  4. Braunschweig
  5. Berlin
  6. Kassel
  7. Munich
If you plan to attend, I'm sure you'll hear something to perk-up your ears and learn something to squirrel away for later.

I hope to see you in the coming weeks.

Monday, November 5, 2012

A Penny Saved Can Be a Penny Wasted

There's an English saying, "A penny saved is a penny earned". The bean counters of the world who run companies large and small follow this religiously.  Carefully managed accounting books tally every bean; the more beans left over on the bottom line, the better the result. That bottom line is the difference between the earnings and the costs and because accountants have little control over  earnings, costs are the variable they carefully scrutinize and minimize. Of course earnings don't come without costs, so it's not merely a matter of minimizing costs but rather a matter of optimizing costs.  Therein lies the fundamental flaw with the old saying. It may well be the case that a penny saved is a penny twice lost.

Consider the money spent on marketing. It's clear that such money must be spent: without such  investment, earnings will drop due to reduced market demand.  So how much should be spent on marketing?  That's a tough question; intelligent people are likely to differ in their opinion though it's clear that making as much market impact as possible for as little money as possible is optimal. It's always the case that making a good impression requires investment.

In the topsy-turvy world of open source software, where money is spent on software that's given way for free, the bean counting formulas go into a tailspin. At best the open source effort can be saved by resorting to a marketing slant, that is, if we give this software away for free, we will grow the market and will increase demand, or save costs, for whatever we're producing for this market.  This is what justifies spending billions on Linux (spare the expensive Window's license associated with each computer sold) and hundreds of millions on Eclipse (ensure that the Java platform is competitive with the .NET platform).

I used to work for one of the largest organizations of the world, so I have a good understanding of the corporate mindset. One of my final lessons learned there is that managers really don't like it when you send notes to their managers: sending a well-intended, constructive note about how best to optimize open-source investment, i.e., essentially the content of the blog I wrote at the start of 2008, proved the old adage "No good deed goes unpunished". So now I work closely with itemis, essentially doing the same thing as I did before, i.e., ensuring that Eclipse modeling technologies thrive in a growing market. To digress for a moment, for me personally, the most exciting software technology this world has to offer in this space is Xtext, driven by the experts at itemis. I fundamentally believe that the integration of concise notations with well-established software platforms, is the optimal way to improve on a good thing.  Xtend is a great example of what I mean, i.e., it's simply a better Java that integrates seamlessly with Java, i.e., it's evolution rather than revolution, improving on what exists rather than replacing it. My own work on Xcore emulates that same approach.  Please come to the Eclipse Demo Camp in Bonn for a closer look.

In any case, back to the issue at hand: optimizing a company's bottom line beans. The problem in this regard at itemis is no different than anywhere else.  Fortunately itemis has an enlightened view, recognizing that the cost of open source investment pays off in the end.  One way that's the case is the money spent on services and that's why assembling the world's leading modeling experts into a cohesive organization has been one of their goals. A battle ground faced by all service companies is that other organizations often see a penny spent on services as a penny best saved; the cost of those savings are all too easily overlooked.

Consider an example back in my earlier days.  EMF is used by a lucrative web server platform as part of  their start-up configuration model.  EMF was one of their 's favorite scapegoats:  EMF slowed down start-up performance with its bloated byte code.  Of course when you have a bloated model, there's only so much you can do, but that argument goes nowhere fast.  Therefore, when I caught wind of this complaint, I pointed out that they could generate much less byte code by changing package creation to load each package from its serialized form and by using dynamic feature delegation for the implementation classes.  Sure, both of these generate slower code, but the important point is they generate less byte code, all of which needs to be loaded at startup, and then bloats the process when it's no longer needed after start-up. They changed these two options in the generator model, regenerated the code, and presto, sever start-up improved by more than 40% with less than a day of effort. Previous efforts to improve start-up involved man-decades of investment, yes decades.  In this case, my help didn't cost them a penny. Unfortunately neither the savings nor the improved sales were ever calculated, but I did get a huge thank you for my invaluable help.  Okay, that last part is just wishful thinking, I never got so much as a kind word. Oh well, it's good to help prevent fires.

In any case, my message to the enlightened developers of the world is to manage their bean counters more effectively.  Don't let them rule your organization. When you need expert help, demand that you get it.  Spend that extra penny and earn that extra dollar.  A team of unproductive developers producing inferior quality results is a cost that must be brought into focus. Demand that this be measured and that it be factored into the bean formulas.  The team of experienced exerts at itemis, including me, are always available for personalized help.  We do workshops too, like the one I'm doing after the Bonn Demp Camp. The Eclipse community as a whole is rife with expertise so for goodness sake, spend a penny, with the realization that in addition to your internal savings, much of that penny will go back into the development of the next generation of the free software that you know and love. It's an investment in the future, an investment in the commons, and an investment in a better way to build the word's software foundations.

Wednesday, July 25, 2012

Time Flies Like an Arrow

It's been a long time since last I blogged.  Much has happened these past months.  EclipseCon was, as always, a huge highlight, providing an opportunity to spend fun times with good friends. 

I was especially honored to receive the Eclipse Lifetime Contribution Award for 2012.

Thanks Anne for the memorable photos! Of course I'm eagerly looking forward to EclipseCon Europe!

Most of these past months I've been slaving away getting Xcore ready for prime time.  Thank goodness Juno is out the door.  A particularly challenging feature I felt was badly needed for the first release was support for rename refactoring.  Thanks to Jan's help in the base Xtext framework, it's working very well.  In fact, it's totally cool. You can rename something in Xcore and it will invoke Java rename refactoring for each and every Java artifact derived from the thing being renamed.  All hand written code that uses the generated APIs will be refactored seamlessly in a single step.  

It's gratifying to see from the newsgroup and bugzilla that there are real users of Xcore now.  I'm currently working hard to fix problems in the maintenance stream. If you see a problem, please report it so I can fix it.

In my "copious" spare time, I've been nurturing a new garden.

It's not as big is my old one, but it's in Berlin, the capitol of cool things!

I need to think about submitting talk proposals for EclipseCon Europe and for Eclipse Finance Day.  It looks like I may have missed the Eclipse Day Delft deadline...

On the sad news front, Amber died a few weeks ago.  She had a congenital heart defect that finally got the better of her. I miss her. All good things come to an end.

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.