Wednesday, March 29, 2006

The Community

People talk quite a bit about "the community" when discussing the IT/software development world. It's a quite nebulous concept. For me, recently, the term has taken on quite specific meaning in the context of our Software Engineering Radio podcast.

The community of listeners has given us tremendously encouraging feedback. Our listener numbers are rising continuously and the feedback (till now, anyway) has been overwhelmingly positive.

But the podcast itself is an effort of (a small part of) the community. The team that I had invited to help doing the show is eagerly producing stuff. It's great to work in a good team whose members share the vision (thanks :-)).

But there's more. Other podcasts (such as JavaPosse) have helped us publicize our show by plugging us on their (very popular) podcast. Henning Pauly, the creative mind of Chain has given us permission to use his music as the intro and outro to our podcast! We also have the permission from marillion to use their music for the same purpose. There is Libsyn who provide hosting and bandwidth specifically to podcasters for a very very reasonable monthly charge. Finally, there are the folks from Creative Commons who provide bullet proof licenses for endeavors like our podcast.

All of those people are part of a community that is (as can be seen from the music and Creative Commons folks) not necessarily IT specific. But that community is very collaborative, helpful, uncomplicated and generally really nice to work with. I don't know whether such communities have been around forever and I just didn't notice? I think this phenomenon is somewhat specific to the Web and how it enables collaboration in ways that have not been imaginable before.

We all know this talk about community, tagging, web 2.0, user involvement, free content and open source, etc. etc. In the context of building this podcast, some of these intangible and nebulous concepts have become quite concrete for me.

It's nice that all of this exists and I am happy to be a part of that.
Saturday, March 18, 2006

First Experiences with GMF

Eclipse GMF, the Graphical Modelling Frameworks will be one of the most important innovations for Model-Driven Development in 2006. It supports the (relatively) simple creation of graphical editors for Ecore-based metamodels. My view has always been that simplyfying the creation of "good" editors for your DSL is a much more pressing issue that coming up with fancy model-to-model transformation languages. So, GMF will be a big step in the right direction.

Currently, Milestone 5 of GMF is available. I have played around with M5 as well as M4 (thanks to some of my customers for being interesting in GMF and giving me the chance to "play" with it for a purpose :-)). Of course, there are still features missing and it is also a bit buggy, the overall impression is really good.

On the plus side, you can really easily come up with simple editors. The process is straigh forwards, once you understood the basic principles. You can build compartments (even nested ones), you can connect top-level elements as well as contained elements (you can even connect contained elements to top level elements), you can add labels, adapt the figures, define pallets, etc. The routing algorithms supplied with GMF are really not too bad, either.

There are, however, still a couple of problems when playing around with it (and yes, I fully realize that it's not finished yet, so this is not a complaint, it's just a description!). For example, the wizards that should come up with a good "default" editor in a couple of minutes didn't work well so we had to do the editors manually. Also, if you have a flaw in your model, the GMF generators might just silently crash without a notice or throw some (seemingly unrelated) exception. So, always make small changes (so you know what to undo to get it to work again), and sometimes you have to debug into the generator to see what it does. Also, some of the decorations you can add to your editor visual elements are simply ignored. A more important problem is that the documentation lacks some of the important use cases, e.g. explaining the extension points that allow you to add conditional decorations to your shapes. And by the way, in case you wonder, why the tutorial uses two levels of compartments in an introductory example: the reason is that it doesn't work with only one level :-) This looks like a funny bug, unless you try for an hour to go with only one level ("why start with the two-level, more complex example, anyway").

So, all in all, GMF looks very promising. What I would really see improved is the documentation. Yes, they have zillions of pages (taken from IBM's underlying framework), but what developers need is a kind of FAQ to answer typical questions such as: how do I add conditional decoration, how do I add an arrow to my line, how can I prepare a model before the editor is opened, etc. Maybe some of the GM folks read this.... if you need more FAQ-questions, let me know :-)
Monday, March 13, 2006

SOA Article

Those of you who can read german might be interested in
this new article, where I discuss SOA, component-based development as well as model-driven software development.
Monday, March 06, 2006

Thinking recursively in Java

Working with recursion is not something that the typical Java programmer does day in and day out. However, it is a very powerful concept worth using more.

A while ago Wiley had sent me a book called Thinking recursively in Java by Eric Roberts. Since I had nothing else to read at the time, I started reading the book and I have to say it is quite nice. It explains recursion from the outset, going into things such as sorting algorithms, backtracking, etc.

So I'd really recommend reading this book if you want to learn more about recursion - worth reading!

back to

This is Markus Voelter's Blog. It is not intended as a replacement for my regular web site, but rather as a companion that contains ideas, thoughts and loose ends.

December 2005 / January 2006 / February 2006 / March 2006 / April 2006 / May 2006 / June 2006 / July 2006 / August 2006 / September 2006 / October 2006 / November 2006 / December 2006 / February 2007 / March 2007 / April 2007 / May 2007 / June 2007 / July 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / February 2008 / March 2008 / April 2008 / May 2008 / June 2008 / July 2008 / August 2008 / September 2008 / October 2008 / November 2008 / December 2008 / January 2009 / February 2009 / March 2009 / April 2009 / May 2009 / June 2009 / July 2009 / August 2009 / September 2009 / October 2009 / November 2009 / December 2009 / January 2010 / February 2010 / April 2010 / May 2010 / June 2010 / July 2010 / August 2010 / September 2010 / October 2010 / November 2010 / December 2010 / January 2011 / March 2011 / April 2011 / May 2011 / June 2011 / July 2011 / October 2011 / November 2011 / December 2011 / January 2012 / February 2012 / October 2012 / January 2013 /

You can get an atom feed for this blog.