Eclipse

Missing in Action from EclipseCon 2011

EclipseCon 2011 started today, with an awesome program of events going on over the week. I’ve attended the previous four instances of the conference, and had the signal honour to have been the Program Chair for EclipseCon 2010. Now, alas, I’ve lapsed. Instead of getting a nice easy job after my release from Progress last year, I’ve foolishly decided to startup a software business with a couple of guys. I hope this adequately explains my somatic non-presence at this years showcase of what’s wonderful in the Eclipse world. For example - if I was in California today, I would not have been able to load the mobile part of our product on the phone of a friend-of-a-friend who just happens to be attending a concert with the CEO of a division of a large cellphone company, with instructions to show it to this CEO and get a meeting for us. But if I was in California today, I would be enjoying beers with lots of people that are much smarter and much more dedicated than me.

It’s always a tradeoff.


Now that I have a brand new ‘user’ perspective, and am on the outside looking in, there are a few items within the Eclipse Ecosystem that are particularly interesting.

  • EGit - I’m using git exclusively now for source code control, and having good support is very important. I think that the real decision-maker on using git all the time are hosting services like Heroku and Nodester adopting git push workflows for application deployment.
  • DSL-based mobile device project scaffolding - projects like Applause and Applitude, both based on Xtext and mobl, based on Spoofax, can give you a chunk of starting point code to get your mobile application up and running on the cheap. I haven’t taken as much time to study these as I want to - a future blog entry I think.
  • Orion - when I first saw the Bespin project, which then merged with Ace and is now the development-as-a-service Cloud9 IDE, it failed to stir me. However, when I started doing some node.js project experiments, then the option of being able to edit your JS code through the browser suddenly had more appeal, precisely because now you can edit server code. It will be worth a blog entry in its own right at some point (aside - Mr. Orion, @bokowski, just linked to another one, Akshell, a minute ago)


I just realized the other day that the last piece of Java/Eclipse a programming I did was in July 2010. Since then I’ve been in this dual world of the mobile app developer - programming native code on iOS devices, programming Rails 3 and node.js on the server end of things, pushing data into PostGIS and Redis. I didn’t think I would end up here, but it’s been fun so far :) As to the future, I’ve refused to plan anything beyond world domination for the moment. But maybe I can get an Orion talk accepted for EclipseCon Europe

Eclipse ESE 2010 and STP News

Eclipse ESE 2010 w00t!

Eclipse ESE 2010 starts tomorrow, and I'm going to be there - well, I'll be there from Wednesday to Friday. I'm delighted, because I had written it off this year, having had to dramatically scale down my Eclipse community involvement. But with the help of Herr Program Chair Bernd, and cheap Eurozone flights, I'll be helping whip the room into shape in the Build Systems Exposed: Strengths & Weaknesses of Build Technologies at Eclipse panel discussion. Present will be the usual suspects, Henrik "Buck" Lindberg, Jason "Tycho" van Zyl and Nick "Athena" Boldt. Unfortunately, the fourth stooge, Dave "Agile" Carver, is being held incommunicado by his cats and can't make it. The point of the session is to help you, the attendee Eclipse developer, to get your brain-gear about how to make your projects build, get tested and get packaged. Questions are very important in this regard. Bring 'em.

For myself, I'm too long in the tooth and cynical to insist that there is one true path here, that one of the approaches is the best in all cases. I've been in Enterprise Software for the last 17 years, you see. In any case you have to do your own research as to what will work for you - I want you to consider this as school homework. No-one is going to do your assignment for you, because every project is different, and frankly, you need to learn how this stuff works or else you will be doomed next time around. Put it into the schedule.

Maybe that came across a little cranky. I've been on both sides of the issue and neither is comfortable, but I think you do have to learn it yourself for the knowledge to stick, so you can maintain it. However, that doesn't mean I think everyone needs to start from scratch - there's a base level of mechanics that can be given as an exemplar from which people can extrapolate. Lots of examples exist for this particular sphere of issues, so what I would really like to see would be The Eclipse Ultimate Guide To Building Eclipse By Example, which would take N types of Eclipse project and for each one show the M different ways to build it. A way to kick off would be to take Wayne's article on building Woolsey with Tycho and do a similar one on building Woolsey with Buckminster (or Athena).

In any case, looking forward to getting there and reminding myself how good German beer can be!

Eclipse STP News

The Eclipse SOA top-level project is now up and running pretty much completely, and with that the merge of the Swordfish and the projects contained by the Eclipse STP top-level project is complete. More than complete, in fact, with the addition of the eBPM, eBAM and Java Workflow Tooling projects, there's a comprehensive and diverse range of solutions available. Now, there is merely tidying up to do, and the remaining strands of connective tissue (build, web, etc) that kept those projects in place in STP needs to be removed. With this message to the STP and SOA PMCs I've initiated that process. Congrats to all projects on their move to Eclipse SOA and best of luck to the combined Tools + Runtime top-level project!

OSGi Training in Dublin

The ISA-Skillnet folks have set up a rare local opportunity for people to get some insights into the world of OSGi on Thursday this week (9th September) at the IBEC offices on Lower Baggot St. The inimitable Ian Bull, the lead for the Eclipse Zest visualization toolkit and an Equinox p2 committer will be doing the pitch. Ian knows his onions when it comes to this material and if you are looking for a solid explanation of why OSGi exists, what it does and how you can use it to structure your Java development and enforce runtime component isolation, you should get your carcass over to this talk, which is free to anyone who works for an Software Skillnet member company - list of members here (PDF link). You could get your company to join up, or just email them an ask about individual access.

Here’s the announcement: http://www.isa-skillnet.com/Training_Courses/88#ss162. The show starts at 1745.

Eclipse Quickie: Changing Buckminster Build To Use Git

Question: So, you are building a gaggle of projects that use Subversion, and one of them pops up and decides that distributed source code management is now the future and that they have moved to Git. You have a Buckminster build system - what do you do?

Answer: Make a simple change to your RMAP file as follows and just carry on as usual.

Before: we discover the source code of the BPMN Modeler from its Subversion repository.

[sourcecode language="xml"] <searchPath name="bpmn.plugins"> <provider readerType="svn" componentTypes="osgi.bundle" mutable="false" source="true"> <uri format="http://dev.eclipse.org/svnroot/stp/org.eclipse.stp.bpmn-modeler/org.eclipse.stp.bpmn/trunk/{0}"> <bc:propertyRef key="buckminster.component" /> </uri> </provider> </searchPath> [/sourcecode]

After: we discover the source code of the BPMN Modeler from its Git repository.

[sourcecode language="xml"] <searchPath name="bpmn.plugins"> <provider readerType="git" componentTypes="osgi.bundle,eclipse.feature" resolutionFilter=""> <uri format="{0}/bpmnmodeler,{1}"> <bc:propertyRef key="workspace.root" /> <bc:propertyRef key="buckminster.component" /> </uri> <property key="git.remote.uri" value="git://git.eclipse.org/gitroot/bpmnmodeler"/> <property key="git.remote.name" value="bpmnmodeler"/> </provider> </searchPath> [/sourcecode]

Look for: the readerType has changed to git, there's a change in the uri format, and we've been required to add a couple of new property key-value pairs. Then it works first time (for me at least!). You will need the 3.6 Buckminster stream to get the git readerType - download information is here.

I have to say a big thank-you to the Buckminster Team for this piece of software that not only powers the STP build, but also the construction of the complete Helios release!

Ignite #4 Dublin

In the aftermath of EclipseCon 2010, when the Program Committee got together to talk about the state of the show, one item that came up was the possible use of an Ignite-style format for presentations. The format is deliberately designed to reduce waffling and slide overloading by limiting presenters to a total of twenty slides and five minutes. That's ok, but the key innovation is that each slide is shown for fifteen seconds and the presenter has no control over the transition. Now that's pressure!

The greatest challenge for constructing EclipseCon 2010 content was the wide mismatch between the sheer volume of material that was submitted and the container for that content -- the rooms and time slots. Take, for example, the Eclipse Modeling Project. This is a container project that has something in excess of sixty sub-projects. How on earth can each of those projects be given time to present in full? Even if only half of them were active, it would still be a tough deal, considering that Modeling is only one of the Eclipse top-level projects. In fact, the Modeling PMC did a great job by including a Modeling Runway talk, which gave twenty-odd projects three minutes to introduce themselves. Very Ignite-like.

Ignite Dublin

So, for the purposes of research, I attended Ignite Dublin #4 last week at the Science Gallery, and I have come away a total fan of the format. Mind you, the diversity of the presentations was the real titillating bit - some examples: we had a photo-essay from a paraglider, and ambient soundscape performance, pedantry, fish stock history (yikes - we had them all eaten by 1870), comedy, legal knowledge and the demise of newspapers. Presenters included a cinematographer, a biologist, a couple of performance artists, film-makers, a neuroscientist, a designer, an environmental historian and a statistician. Beer and pizza was the icing on the cake, if you excuse the screwed up food metaphor.

More information...

Follow @ignitedublin and @ScienceGallery for upcoming events. For those of you who are ash-strapped abroad, you can see the presentations on the Ignite Dublin YouTube channel.

EclipseCon 2010 Retrospective

It’s nearly time to return to our scheduled programming, but first a quick retrospective of EclipseCon 2010.

Oisin Rejected My Talk

The danger with writing a retrospective like this is that it can rapidly become a screed of great proportions and hit everyone’s tl;dr button. So I’ll keep this short. What I am reporting here is my own experience plus feedback from both presenter and non-presented folk. I’ll keep the format of the previous articles to focus it.

Exercise
This was a great success this year - better than years when there were half again as many attendees. My only regret was that I missed out on a teeshirt on the first day! Much appreciation to Kim Moir for, er, running with this.
Keynotes
The keynote from Oracle was a lacklustre affair - and watching some of the tweetage that was coming out from their panel later in the day, it’s no surprise since Oracle don’t appear to have decided what they are up to. Especially with the retention of three UIs - Eclipse, JDeveloper and Netbeans. Come budget time, the VP or whoever at the pointy end of controlling those three groups will have to get the hatchet out. Which will fall? JDeveloper is ensconced like a tick - parts of it are in core Oracle products (allegedly). I have to assume that the Netbeans team is larger than the Eclipse team, does that make them more likely to be kept? Of course, it won’t be that simple - perhaps the Netbeans Java tooling people could be transitioned to Eclipse to add more value to the JDT? Anyway, I’m sure we’ll be guessing for a while.

The NASA/JPL keynote from Jeff was a masterful performance - not only the content, which was bang on demographic for a crowd of developers and technophiles, but the structure and production values were excellent. I caught a couple of clips - here’s Jeff talking to David who is supervising the ATHLETE robot in the lab

[vimeo vimeo.com/10575313]

and here is Jeff’s closing remarks with his Lego buddy Socrates

[vimeo vimeo.com/10575342]

Robert “Uncle Bob” Martin (Roberto) presented the keynote on software professionalism and it too was excellent work, although on a totally different axis to Jeff’s. This man is a past master of the presentation style, fearless, emotive and ready to challenge his audience. Here’s some short extracts:

  • agile is about destroying the hope that keeps stupid plans alive
  • say no to all forms of bad code
  • say no to dropping your disciplines
  • say no to overtime - know your limits
  • say no to meetings - when the meeting gets boring, leave
  • say no to dumb restrictions on your development process
I think the talk unnerved some people (as evinced by -1’s in the red bucket), so good work Roberto!
Tutorials
I got a goodly amount of positive feedback that a tutorial-per-morning was a nice idea and something that people did look forward to. There was a bit of balancing feedback that some of the tutorials were somewhat disorganized, not fully prepared, had too many slides, didn’t have enough introductory information, or were missing required data. The Program Committee had a meeting on this and we have a couple of proposals to make sure that these kinds of issues won’t occur next year.
Talks
On balance, the 25-minute talks worked, I think. I had a lot of conference-goers saying that they were pleasantly surprised with the shorter format - they got a similar amount of information in a shorter time and could go to more talks. Most presenters stepped up to the plate and did a really good job on condensing their material and cut quickly to demos. Some didn’t and the talks were rushed and hassly. There were a couple of people who appeared to be personally upset about the timing - how on earth could you talk about anything in less than 35 minutes? They got my get over it lecture.

One the other hand, the 12-minute lightnings did not really work at all well this year compared to other years. I think it’s because so many speakers got instructed to cut from standard length to lightning and it was just too difficult to do. I’m thinking we might revisit that for next year.

Feedback was on the high side for good talks, however some donkeys were brought to light too.

Panels
The panels I went to were good. The quality of the moderation was tip-top, the preparation was good, and all were conducted in good humour and with great candour. Controversy can work well in a panel, but it appears that good, solid, experiential data works well too. Big shout out to Dave Carver for his innovative Jeopardy-style approach in moderating the Build and Continuous Integration Panel and use of “the Undead” as a question category :)
BoFs and Unconference
This year we seemed to be totally BoF-tastic, with a great amount of activity going on there, but the Unconference got little support. Lesson learned here - the crowd at the ‘Con are more interested in getting together in a social group for listen and learn rather than stepping up and doing their own off-piste talks.
Divers Alarums - being a gallimaufry of tatterdemalion conference qualia
  • e4 Rover Programming Competition - wow, this was a runaway success and frankly will be hard to top. Huge kudos to the NASA guys, Ian, Boris and Ben
  • EclipseCon Tweetup - informal meeting in the bar, always works for me ;)
  • Don’s sense of humour - “I’m stalling…and you’re all leaving…and now I’ve lost all credibility…”
  • Sergey P’s phones - classic
  • Giving us mugs instead of little rinky-dink cups for coffee - most essential
  • The general buzz around the place since we were in a smaller area was great
Thanks to all…
Well it looks like this turned out to be a screed after all. I hope you enjoyed the conference. I’ll finished with thanks to many people that made the conference work - attendees, thank you for coming; presenters, thank you for presenting your work; keynoters, thank you for crafting your keynotes and delivering them to a tough crowd; program committee, thank you for the hard graft coming up to program announce date; Don, Anne, Gabe, Ian, Lynn, Mary, thank you for hard work in the logistics and outreach departments!

And with that, I leave you all in the safe and capable hands of Chris Aniszczyk, Eclipse Committer, runner, author and Program Chair for EclipseCon 2011.

EclipseCon Stalwarts Quenching Their Thirst

Cheers!

MyEclipseCon Thursday

Late again. I think I'm losing my motivation to write these blog entries :) But, better late than never, I guess, so here's the plan for Thursday at EclipseCon.

Exercise


Errm, nothing doing here. Weighed down by the burdens of a sore foot and a big curry dinner with some Progress guys at Amber (I recommend the okra gojju), I just turned over when the alarm clock went.

Keynote


This morning's keynote is from Uncle Bob Martin - Software Professionalism and the Art of Saying "No". Uncle Bob is one of those world-class speakers in the software industry and always produces thought-provoking and inspiring talks, whether you agree with him or not!

Tutorial


I was thinking that Getting the most out of your models: performance and extensibility with EMF would be my tutorial of choice this morning.

Talks


Mik Kersten of Mylyn fame is giving two talks after lunch: From Tasks to Tweets: the IDE is Going Social and The future of Mylyn. Mik is an energetic and skilled presenter and it's usually well worth attending his talks. This time around, however, he's got a bit of a challenge! Congratulations are in order on the very recent birth of a new daughter, which means he cannot travel, but he will still be making the presentations via a live stream. Tests have been run, but fingers crossed that there's no tech glitches!

Third talk will be a break from Mylyn and back on the subject of testing, specifically Use a bot to test your GEF and GMF based applications. A recent extension contributed to SWTBot makes it possible to use it to test plug-ins that use GEF.

Fourth talk of the day for me will be The Future of Code Coverage for Eclipse, which will present the JaCoCo project. I use code coverage to tell me when to stop testing, and so should you :)

Final talk of the day. Neil Bartlett with ScalaModules: OSGi the Easy Way with a Scala DSL. I'm still threatening to learn Scala, but I'm being a bit lazy about it, so maybe this might be a prod of encouragement and maybe I'll be able to try out other neat Scala stuff like Scalate.

Panel


At the end of the day, there is the usual Community Spotlight plenary to close the conference, then it's time to start planning for EclipseCon 2011! Congratulations to Chris on his appointment as Program Chair - he's going to bring a lot of energy and dedication to the role and getting out of the traps right now is a great start.

MyEclipseCon Wednesday

EclipseCon: one of the best conferences I have attended!

I’m getting some good feedback on EclipseCon 2010 :) This is great news and has has buoyed up the Program Committee no end - to the point where they would almost do it again!

But we’re not there yet. There are two more days left. The rush of content and the pace of this conference seems to be way in advance of the larger affairs in the past. No-one is getting lost trying to find their target talk, people are bumping into each all over. So what’s up for tomorrow?

Exercise


Time to give up complaining about my sore foot and go for a run with the rest of the crew. Then just man up and take painkillers for the rest of the day.

Keynote


Rockets! Robots! Lasers! Space! Jeff Norris the supervisor of the Planning Software Systems Group at the NASA Jet Propulsion Laboratory. His group develops operations systems for a variety of space missions including the Phoenix Mars Scout, Cassini Saturn Orbiter, Mars Reconnaissance Orbiter, and the Spirit and Opportunity Mars Exploration Rovers. The keynote is called Rocket Science and the Republic.

Tutorials


I love having a tutorial every morning! Today it is going to be Eclipse UI Test Automation with SWTBot, where I am going to learn how to write and run SWTBot tests, with the intention of fleshing out the Message Owl project with some tests! I’m really interested in seeing what the capabilities of this framework are (check out the Bonitasoft Blog for some hints).

Talks


First up XQDT - XQuery Getting Momentum in Eclipse to find out about the state of the art for XQuery tools here at Eclipse.

Continuing with the XML technologies theme, next on my list is Down the Rabbit Hole: A Single Character in the XML Editor, which will give me some insight into how the XML editor works. Could be useful!

Third talk will be Scale, Share and Store your Models with CDO. Back in the IONA days we made a product that had client connections to a remote EMF repository, which sat in a database. We applied changesets from clients to the data and had our own EMF->SQL persistence layer. It is a pity we didn’t have CDO back then, and I’d like to know more about it.

Developing Eclipse Plug-ins with JavaScript is next on the block. I’m interested in polyglot plugins, developing for OSGi in non-Java languages.

Final talk of the day will most likely be What’s Cookin’ at SWT just to get a look at what’s going on there, especially for Cocoa.

Panels


The Future of Open Source looks interesting, so I think I’ll make that the last stop of the day.

MyEclipseCon Tuesday

Talk about a late blog entry. I’m just enjoying this EclipseCon too much. Here’s my plan for Tuesday, that is today.

Keynote

Oracle will be (were) here to tell us about the future of Java. Multiple modularity systems (sigh) with some kind of paste on top to hide which one you are using, a nice JavaFX authoring tool that will allow you to create vibrating animated rockets and JDK 7 to be shipped as fast as possible.

Tutorial

It was a tough choice again - Server-side Web Applications, Anatomy of e4, Getting Started with EclipseRT, all sounded great, but I’m currently in the JDT Fundamentals tutorial, learning about the three pillars of JDT (java model, search engine, AST), the APIs of each and how to use them. It’s not by any means trivial, but it is definitely very cool. They have given so much thought to performance and cost of usage in the APIs. Kudos.

I made this choice because part of the work we did in Progress on a UI for Apache Camel included an Eclipse view that rendered the Camel route, based on the content of a Java editor where the developer was using the fluent builder APIs. We did this by walking the JDT AST and constructing a model that could be rendered. The result was a better user experience for people using Java as the route definition language - they could simply glance at the diagram of the route to ensure that the Java they were writing was correctly expressing their intent. I didn’t write this code, but I’d like to know how it works, and this JDT tutorial might help me with that (partial ASTs FTW, I think).

Talks


My first choice is Textual Modeling Tools: overview and penalty shoot-out. This is a comparison study of a number of text modeling tools. Top tip to presenters in the future - more of this kind of thing, please. Comparison studies are extremely valuable for developers and product managers that need to make technology choices. It’s even more important in a big wide space like the Modeling Project where there are many projects that appear to have overlapping capabilities.

Second talk - Documentation: Single-Sourcing, Crowd-Sourcing And Other Voodoo. Documentation is the Achilles heel of many Open Source projects. In a sweeping generalization, I hereby declare that developers like to focus on code and tests, and not so much the explanations in natural language. Couple this with a ‘read the code’ type of arrogance that sometime pops up and you have a project that has a serious bar to entry for new contributors. One thing that might help stave off that kind of situation is to have a very functional way to contribute documentation, thought out as a first-order plan rather than an afterthought, which permits the spreading of a wide net and makes it really really easy for contributors to add snippets and fix issues. Maybe there will be some solutions in this talk.

Talk three - one of those rarely-observed Extended Talks - OSGi Best and Worst Practices. I’ve been looking over zx’s shoulder as he has been putting this together and it looks like there is a bit of presentation zen going on with good dollop of humour as well as good, solid information, so looking forward to it.

Note to presenters: the primary purpose of a presentation is to entertain, the secondary purpose is to inform. Let’s face it - if you are not entertaining the crowd, they are going to get up and leave before you get a chance to give them data.

Talk number four is another Extended Talk, and it is definitely going to be Graphiti - The Graphical Tooling Infrastructure Speaking Plain Java. I am totally looking forward to this, because I’m a bit excited about this project and can’t wait to get my hands on it :)

Talk five - I can’t believe there will be this many talks - I’m not so sure about. Using JPA in OSGi might be the one - I have seen so many developers in trouble trying to get this running it would be good to know how to do it. The Towards Contributors Heaven: from CVS and SVN to EGit/JGit talk will be interesting, but I think I know that well enough. How to make a framework plugin that doesn’t suck could be good too - the speaker has a lot of experience in developing Eclipse tools. I don’t know if he will be wearing his Superman shirt for this gig, however.

Panels


I’ll be on the Build and Continuous Integration with Eclipse panel.

Unconference


I think I’ll do an Unconference presentation this evening, what topic, I don’t know just yet. Will decide during the Reception ;-)

MyEclipseCon Unconference

Before getting onto my Tuesday session favourites, I thought I'd do a short piece on a new creature in the EclipseCon bestiary - the evening Unconference.  If you have ever attended a BarCamp, or dabbled with the Open Space Technology meeting methods, then you will know what this about. If not, do not panic! It's really quite straightforward.

Why add an Unconference?


My own experience with this type of interaction was three years ago at BarCamp Dublin, organized by my pal Joe Drumgoole. There were some pre-organized sessions given by local industry luminaries, which was followed by appearance of a whiteboard divided into a grid of times and rooms, with a pad of sticky notes. If you wanted to present, you wrote your topic and name on a sticky note, pasted it on the whiteboard, then turned up at the appointed place and time and you just...did your thing.

I was fascinated by this straight away, but I also had some considerable skeptiscism on the potential for success. I thought, who would just get up there and yap away for twenty minutes? To my surprise, the slots on the whiteboard filled within an hour. It was infectious - once the first few slots were taken, people started to get ideas about subject matter and began to get worried that there would be no slots left in the schedule! It ended up being well over-subscribed.

When I was thinking about how the conference could be shaped this year, an Unconference section appeared to fit in a highly complementary fashion with the standard conference format of the day. Here I am going to quote myself (oh, the narcissism!) from an interview I did with JAXenter last week:

A conference day is always a long day, so the concept behind this new structure is that attendees get education in the morning when their brain is ready to learn, they get entertainment and information with the talks, they get to give feedback and interact directly with the experts during the panels and finally, they get their own say at the Unconference. No-one likes to listen for the whole day without giving something in return, so you can see the balance of communication starting focussed on the presenters then shifting over to focus on the attendees at the end of the day.

The Gross Mechanics


We've reserved three or four rooms for the Unconference.  When you sign up as an Unconference speaker you get twenty minutes of time. You can talk for twenty minutes on a single topic, or you can talk for five minutes each on four topics. It's up to you. You could join forces with an open source buddy and do a joint presentation. You could do a mini-hackathon. You could facilitate a panel recruited from the bar area.

How do you sign up? There will be poster board available on the concourse and pads of sticky notes. The schedule will be on the boards. Write the topic of your talk and your name on a sticky and put it into a free slot if there is one available. The Program Committee will keep an eye on things - make sure that you have your name on the sticky note.

Combating Irrelevant Twaddle


In this kind of open format, there is always the likelihood that the most mouthy and/or obsessed will attempt to dominate the delivery channel. In this scenario, the Law of Two Feet should be observed. This is a simple filtering mechanism - if you don't feel you are learning or contributing, or the relevance quotient has slipped below your baseline, then vote with your feet! Go to another session in another room, or just go have a margarita and some shrimp or something. Alternatively, you could ask the speaker to talk about another aspect of the topic under discussion.

Back to BarCamp Dublin - for myself, I really wanted to sign up to participate, but I was kind of parched for subject matter. Not this time for the Eclipse Unconference -  I'm hoping to be able to beat the rush and get a couple of sessions up there on the board!  Anyone out there interested in joining in?

MyEclipseCon Monday

It's been a nervous couple of weeks here in Dublin - US passport restrictions require a six month validity period on foreign passports post arrival, and it turned out mine was due to expire in July (huh? where did that ten years go?) No more than forty-five minutes after I sent in my application, the Passport Office announced industrial action :] Fortunately, just before blood-pressure reached vein-rupturing levels this morning, I discovered that the passport is in the post and should reach me today, so it turns out I will go to the ball after all. Now I'm busy filling out my dance card.

As per usual, the diversity of sessions makes for a daunting choice -- thanks to the Program Committee, I'm going to be on my toes, running around like a blue-arsed fly from session to session. The good part about this is I'll get to (literally) bump into loads of people in the halls!

It's Monday, the first day of the conference, so everyone is hot to trot and no-one has had a drink or a row yet. Usually the most energetic day of the conference, new PBs are set on the 5k and breakfast burritos are wolfed down with aplomb. Email can go hang.

Space and Robots

First up, Mission launch for e4 rover mars challenge! Squee! In conjunction with some awesome types at NASA JPL, we have a programming competition to produce the best control software for driving a robot across a prototypical Mars terrain. Follow that link and read the FAQ for details.

Tutorials

Tutorials follow - already I've got problems about what to attend and it's not even 9am. The Xtext and p2 tutorials are the ones that jump out at me, and I think I'm going to favour the Xtext one, because it has a little bit of e4 for extra learn points.

Quick aside here. When I was working in IONA and in Progress, making Eclipse things, I had a total blackout on e4 material, basically because there was no way that we were going to re-engineer for e4 before late 2011 by my reckoning. But now that I am floating around the place, it might be a good plan to know more about this approaching technology. My experiences with Xtext (I made a not-dead-but-sleeping project charmingly titled CamelSpit) were good in the past and I would like to use it a bit more. Kim and Ian are doing the p2 gig, which made this a tough call. I'm definitely going to get their slides and exercises material if I can.

Talk Sessions

After the tutorial comes lunch and the Standard Talks. The first standard slot of the day is either going to be Dave Carver's SCRUM experiences, or the e4 model and application framework. Right now I'm tending towards Dave's presentation, provided he doesn't bring his cat, which looks a bit vicious in the photo.

Second slot after lunch - the traditional dozy need coffee slot - I think is going to be the b3 introduction. I should know more about this, but I haven't been keeping up. Bad committer! I'd like to see people's responses and questions to this session too.

Third slot after lunch - there's a choice of four standard sessions and a couple of lightning talks. I think the Eclipse Virgo one might be the one to visit at this point. I'm holding on to healthy skepticism about this project at the moment, fears of abandonware and all that, but time will tell.

As another aside, it's mildly interesting for some (although a bit of a waste from a developer's point of view) to see the choose-your-community-along-business-lines in operation: the IBM guys plus pals at Apache with Aries, the Oracle guys plus pals at Eclipse with Gemini. I'm not going to go to those talks, since I'm not involved with any of the organizations at this point (although I am an as-yet-inactive committer on Aries.) But if you want to know what is happening in the new scrabble for position on OSGi runtimes and the formation of the "enterprise" take on the picture by the usual suspects, then both of those talks will be worth a visit.

First slot after the coffee break, I think it's time to kick back and let the short concentration span rule with a couple of lightning talks - Xpand and iPhonical are my targets.

Last talk slot of the day, I'm going to find out about the brand spanky new p2 API.

Panels

Next up are the Panel Sessions and I see that Don has snuck in some contemporaneous lightning talks. Best case would have been panels on their own, but at least if you just want to see one of the talks, you can get up and move to the panel (that's where the shouting is coming from, by the way). There's a good chance I'll be moderating one of these panels, so that's what I will be up to.

Evening Antics

At this point, jetlag will be solid set in for us Euro-types, and the only way to intercede is with some ethanol-fuelled beverages and cocktail sauce-drenched shrimp at the Oracle and Sonatype receptions. Don't forget, however, that the BoFs and Unconference is happening at the same time -- sign ups are on site, and if you have any bees in your bonnet about any Eclipse related subject, or you have your own trumpet to toot on a pet project, then this is your chance to let us all know. Don't drink too much beer before you do your presentation!  I'm knocking together a few talks that I'll try to present in the Unconference time  - you'll see them when you get there.

The clock will be at 9pm at this stage, and it's time to unwind and think about tomorrow's sessions.

EclipseCon 2010 Program In The Bag

If you have been tracking the EclipseCon submission system, or tweets from @eclipsecon, or blog posts from Donald Smith, you will have noticed that the Program Committee have finalized the program for 2010.

We’ve rejected far, far more submissions than we accepted, and probably upset some people. Sorry about that. Lucky for me, I’m getting the positive mail and Donald is getting the grief. Just in case you wanted to know, the decision process went a bit like this:

  • the big list of submissions was reviewed - we set up small teams from the Program Committee to review based on tags assigned to the submissions to do this
  • each tag team did a full review of the abstracts in their tag area and came back to the group with the “must-haves”
  • we gathered all the “must-haves” into lists for each talk type and spent over eight hours arguing about which were the most appropriate to choose for the program
All during this period, talks were being shrunk in size, coalesced, moved around and generally acting like quicksand.

I need to offer many thanks to guys on the Program Committee for the big pile of work they put in over the weekly conference calls and the big push in the endgame. They are:

When these guys failed to reject your talk, I stepped in and did so. I’d also like to recognize the excellent contributions of two others who for one reason or another needed to withdraw from the committee: Gabe O’Brien provided great help and timely support in the extension and massaging of the various recondite figaries of the submission system.

If your talk has been accepted - good stuff, start making your slides and, more importantly, your demos. Resist the urge to crow about it on twitter, if you can. If your talk has not been accepted - we will have outside-program space as part of the Unconference in the evenings. If you are coming along to the conference, you will get a chance to pitch your project or work. We’ll roll out plans and guidelines on how that will come together over the next couple of weeks.

Keep working on your talks. You should know your own stats at this stage. It takes me a total of about twenty hours to prepare from scratch a mediocre forty-minute talk about something I know pretty well. To do a shorter and better-quality talk takes considerably longer.

See you in Santa Clara in March.

Welcome to 2010!

I predict this will be the year of the Most Number of Disappointed EclipseCon Submitters Ever.

Myself and the Program Committee are trawling through the many, many submissions for EclipseCon 2010, and having a rough time finding space for so many potentially interesting talks. It’s even rougher than usual this year.

If you have submitted a proposal, keep an eye on your email for communications. We’re trying hard to produce a balanced program that caters to everyone - but Eclipse has a large ecosystem and while we are trying to be as diverse as possible in our choices, there will be good material we will have to leave out from the official program.  We may ask you to restructure your talk, or make it shorter, or merge it with another talk. If you have submitted multiple talks on the same topic, or with a core plus tangential topics, well, I guess you can see where this is going :)

Ok, so much for the gloomy part – the upside is that we will have a really neat collection of talks this year that accurately (as much as we can) reflect the popularity of the various topics. So far it seems to fit the demographic we’ve seen before, with Modeling, Runtime, Java and UI/RCP being the most popular areas. The new tag Build and Continuous Integration has entered the charts pretty high up too, not unexpected with the multiple approaches now becoming available to build Eclipse products and plug-ins.

If your talk is rejected, don’t forget that we will also run an Unconference event in the evenings - you might still get a chance to say your piece. You might want to think of it as a just-off-Broadway show alternative.

EclipseCon Submissions - pendant le déluge

This time of the year is holiday season around where I live and it can get pretty quiet during the day, as people dream of days off rapidly approaching and answer IMs from boomerangs of the diaspora, back for a couple of weeks. It makes me wish I had followed through on my idea to make a machine that goes ping whenever an EclipseCon submission came through, because the constant ringing would be like totally festive. Jingles bells and all.

Sadly, though, the jingling will be coming to a halt TODAY.  It is bah humbug time as the Program Committee close the sack and wander off to their various lairs to peruse its contents. So, if you have a submission that you were thinking about, and you’ve been putting it on the long finger, now is the time to get that finger out and submit your abstract.

Enough of the reminders. This year we picked up Donald Smith by his ankles and shook him and enough money fell out to fund a Program Committee Top Five Early Bird Pick competition, wherein awesome Eclipse schwag would be deployed to a lucky few. The talks were selected to be great representatives of the different topics, styles and directions that the PC is looking for this year.

The ever-on-the-button Don has already blogged about the winners. No doubt he was a little miffed when we couldn’t settle on just five talks and had to shake him again to get enough funding for a sixth!

Reminder! Submit your EclipseCon Talks Now!

For extra-special goodness, and to get all you potential presenters off your collective keister, we have a little bonus going here. If you get your talk in today, 10 December 2009, before about 1800 Pacific Time, we, the ever-hard-working EclipseCon Program Committee, have the opportunity to pick 5 Talks of Awesomeness and Timeliness from the current tally of submissions.

These talks will receive some universally coveted Eclipse schwag in recognition of their their awesomeness and their timeliness. The PC will be up all hours over the weekend haggling over the winners with the intention to announce on 14th December. There are no lobbying guidelines in place!

There’s news on the keynotes too - check the conference page - what can I say here, except if you like Programming, Space or Robots, we are catering to you.

A short post on EclipseCon 2010

[Update - once you read this, go check out this entry in Don’s blog for some extra goodies!]

The submission floodgates have been opened on EclipseCon 2010, and you have until December 18 to get your submissions in to attend the usual West Coast extravaganza of all things Eclipse and OSGi. Go for it.

I’ve been seriously quiet about the conference, even though I’m Program Chair and should be running around shouting about it. If you are following me on twitter, or searching on the #eclipsecon hashtag you will have seen a few leaking tweets over the past little while. But here, now, ladies and gentlemen, boys and girls, is a little more information. This marks the point from where you may begin the countdown to the insufferability of /me on this topic.

The Committee of The Caring

The Program Chair does get to innovate a little bit on the approach and set-up of the spirit of the conference and some of the structures that will support same. This person also gets to pick the Program Committee, a shower of dedicated and committed professionals with a overweening fondness for Eclipse and that most qualifying of characteristics – they care. I don’t mean that in a fluffy-cardigan-cuddles-and-tissues kind of way. I mean it in the way that if you try to mess with their relationship with Eclipse, they care enough to see you outside in the car park, toot sweet. You know what I’m talking about.

What’s Different This Year?

Back to the innovation piece. When Bjorn announced the conference way back in July 09, the first little peep of innovation squeaked out. This was the themes. I think it’s important that we create themes that directly address the Eclipse Ecosystem’s three constituencies - consumers, contributors and community.

  • Making with Eclipse – you are consuming Eclipse open source software to build your own products, internal or external to your organization. You could even be selling them and making pots of cash, which is good. You want to come to this conference and see what people in the same boat as you are doing, what new innovations have come to light that you can use to speed up your processes and potentially reduce your costs and to show everyone how cool the stuff you’ve made happens to be.
  • Making for Eclipse – you are a contributor or a committer, you write code, or docs, or both. Maybe your language skills mean you do translations. In some way you are injecting some of your expertise and time in to enhancing and extending the corpus of Eclipse creativity. You’re here to show people the awesome stuff that you are producing and adding to the Eclipse Ecosystem, as well as to teach people APIs, announce new projects and talk about project directions.
  • Making Community – one of the most important things at a conference is the fact that you have many human meteors zinging around the halls bumping into each other and exchanging information. You’re here to meet your forums and IRC buddies face-to-face, or to have a full-duplex discussion with a group telling them why they should take a certain path, or to finally grab a project lead and suss out exactly how such-and-such a weird API works.
But what about the technology, I hear some shriek, won’t someone please think of the technology? High level themes like the above are not enough to navigate a conference the size of EclipseCon. When you go to the submission system, you have a whole passel of tags that will help you mark your talk. If you are looking for something in particular, you can search the talks using the tags too. You think maybe we need more tags? Let me know on a comment here, or address yourself to @oisin in tweetenland.

Yes, we’ve got ski ratings too. If your talk is totally hard-core, you should give it a double-diamond marking to set expectations. People with dashed expectations sometimes get a little heavy-handed with the -1 cards. Don’t worry about marking your talk as being at the easiest level, the Program Committee wants talks at all levels for all comers.

Types of Talks

Here’s where things get a bit more interesting. I made a post at EclipseCon 2009 where I blew the lid off the story that I had been at some boring talks. Yikes! I got a bit of ribbing for that, as you can imagine, so look out for the case of rotten fruit wherever I do Eclipse talks. When I got this Program Chair gig, I had a few chats with a few people, looked at a number of presentations and proposed to the Program Committee that this time around we are going to savagely cut the number of hour-long talks. This will cut waffle. It will cut meandering code walk-throughs. It will cut monster slide-decks. Your talk will be clear, sharp, to the point. You will say all you want to say and you will do it in twenty-five minutes.  There will be applause at the conciseness of your perspicacity, and you will be mobbed by well-wishers in the halls. Seriously.

Here’s the nitty-gritty details of the talk sizes

  • Lightning Talk – it’s a Blitz. You have twelve point five minutes to do your thing. Get up there and show that crazy mash-up you’ve constructed, tell me what’s new in your project, shoe me the result and give me a page-o-links so I can find out more. I’ll find you and bug you if I have questions.
  • Standard Talk – this is the twenty-five minuter. You know the score already.
  • Extended Talk – I never said there were going to be no long talks, just that we would be culling their population. An Extended Talk is fifty minutes long. You don’t just get one easy as pie. The Program Committee will be scrutinizing the submissions and you will need to get over a high bar to get an Extended Talk accepted. These guys are professionals and can smell over-stretched talk like a shark smells blood in the water. Top tips – don’t leave your abstract until the last hour before the call for submission ends and then bang it out fast; do link to a paper or document giving more information about your talk; do expand on details in the comments section of the submission; do produce slideware early; do have multiple presenters construct a connected whole from two pieces of cloth; do show some demonstration applications.
  • Tutorials – you know these guys. A tutorial can be two or three hours long.
  • Panels – you might know these guys from previous EclipseCons or other conferences. Panels are chancy - they can be dull, but there’s nothing better than a good, disputative panel to get people engaged. The Program Committee will be working hard to make sure the Panels won’t have a dull moment in their one hour length.
  • Unconference – you’ve heard of these, right? Ever been to a BarCamp? If you haven’t, don’t worry. What we are talking about here is a participant-driven conference space in the evenings - it’s like the base class of a BoF. The idea is that you can get some space to do a short talk or meeting, you put the subject up on a notice board and people turn up, or not. We’re still putting the details together on the logistics for this one, so hang in there for a future blog entry.
Conference Structure

I think this is the most interesting part. An EclipseCon day is a long, long day, especially if you have travelled a distance and it can be tough to keep the concentration levels up, despite liberal caffeination. The best way to stave off that all-conferenced-out feeling is to ensure that there is a mix of things going on during the day. So I’ve applied a bit of innovation to the structure of the conference itself.  We kick off in the morning with either a tutorial, or a keynote followed by a tutorial. Get your learning on. After lunch, it’s talk sessions. Sit back and listen, or ask questions. End of the day, it’s Panels. Ask questions, get engaged in a conversation. Evening time, it’s the Unconference. Did something inspire you during the day? Grab a podium and talk about it! Maybe someone agrees with you, or maybe the opposite. You can go and blog the day later on.

That’s the short description of what’s going to go down this year. I’ll follow up with more detailed articles on submissions, panels, tutorials, unconference and all that. Your comments are welcome. Ask questions, write your own blog entries. While you are doing that, I’ll be over here, watching the submission system.

...then *four* come at once

Arg - I haven’t had a blog entry in a month! I’m sure at this point that the Marketing Dept have opened the Big Book of Slaps and are thumbing their way towards the end of the list, their quill well-charged and dripping with ink the colour of fresh arterial blood. Or something. But now I have three four things to mention.

FUSE Integration Designer 1.2.1 Released! We’ve pushed out an update to the 1.2 release we did in May. It’s a little point release, primarily about fixing bugs (and the team got through over 100 JIRAs!) but we have managed to sneak in a few improvements, including support in the palette for FTP/SFTP, XSLT and Timer endpoints. Check out the release notes for the full skinny. The download page continues to be in the same place.

One thing to note - if you are updating your existing 1.2 installation from the update site, there’s a small speed bump that turned up at the last second. Make sure that you read the installation notes for some instructions on how to make the update work smoothly for you.

FUSE Forge Open For Business Yes, we’ve made our own Forge - a chunk of infrastructure to support projects that want to extend or apply the various FUSE technologies in whatever way makes sense. Initial reactions appear positive. I’m hoping I can use it for a bit of crowdsourcing action - I’ve set up a  FUSE Integration Designer Samples project, with the plan to add sample projects which illustrate some of the capabilities of the tool. If you have any examples you would like to share, let me know and we can put them up there!

If you have been watching the development of Apache Felix Karaf, and thought to yourself, you know, that’s just another one of them there OSGi containers with some tinsel, ekcetera, you are right. Stephen Evanchik spotted this too, but he went one step further and started creating Eclipse code to treat A.F. Karaf as an Eclipse Target Platform.  Very recently, he migrated this code to the EPL-licensed EIK Project at FUSE Forge, which is fantastic. I’m looking forward to hacking on this stuff with him.

But wait! There’s more! Lukasz, developer of the ServiceMixIde project had been following Stephen’s progress and decided that he would like to bring his code base to the project, too. This is a better start than I could have imagined. Right now we’re getting bootstrapped, code is going in, build systems need to get made (banging Maven and Eclipse rocks together), web sites, CI and all that good stuff.

FUSE Integration Designer Webinar I’ll be doing a webinar, as it is known, on Tuesday 21st July to show how you can use the FUSE Integration Designer to make services, wire together mediation routes and poke around at JMS queues. The times are available on the FUSE Webinars page - yes, it’s happening twice in the one day, and both times it will be live and unexpurgated! Who knows what will happen?

Yikes! I just agreed to be Program Chair for EclipseCon 2010! This should be interesting.

Announcing: FUSE Integration Designer 1.2

Phew. It’s out the door. FUSE Integration Designer 1.2 is now available for download.

This release follows on from a couple of preview releases that we ran to gauge our approaches and get feedback. And we got plenty of it, in all flavours.

You might already know what FUSE is about - it’s four popular Apache projects (ActiveMQ, Camel, CXF, ServiceMix), bundled together into a single offering with subscription-based support from Progress Software. These four projects bring together capabilities around messaging, Web services, message mediation and the ESB concept, the idea being to give you a grab-bag of goodies that make sense when you are trying to solve integration problems.

As you might imagine, it’s an interesting task to put together a toolset that lets you blend these technologies in way that can suit every integration issue. In our preview versions, we concentrated on visualization and debugging of Camel routes and creation of Web services. I think the first thing we learned was that users tended to hit the limits of the tool far too quickly - the routes, for example, had a limited set of capabilities that was outstripped by what Camel had to offer. So we concentrated on making sure that the tool could handle any (1.5 or 1.6) route configuration you could throw at it. Let me know if you break it :)

We also filled in some glaring holes in the preview - you can now deploy your Web services to ServiceMix 3.x and ServiceMix 4.x containers, for example, and we have put in some tools that will let you rummage around inside your ActiveMQ message broker, introspect the queues and topics, inject messages for testing and snoop on messages that are going by. You can save and reload your state too, so it’s possible to set up and share a set of messages and configurations for testing or joint review.

There’s more, of course.

The previews were delivered solely as an Eclipse update site, which could be a bit of a bear to interact with. This time around, you download zip files that have everything - Eclipse core, dependencies, FUSE code, the works. They are big ok, but it means that you get everything in one swoop. There’s online help in there, and some cheatsheets to get you started.

Try it out - download is here, forum is here - and let us know what you think.

What next? The radar is moving on to things like JAX-RS tooling, Camel 2.0 support (runtimes go faster than tools, that’s why they are called runtimes, natch), getting a deep integration with m2eclipse and such like other tasty treats. If you’ve got a hankering for anything particular, let it be known in our tools forum.

By-the-by, since we are all Twittertastic these days, you can get more FUSE news by subscribing to @fusenews or indeed subject yourself to my edgy waffling at @oisin.

Intermittent Bug in Eclipse Community

This bug has been cropping up on and off since Eclipse 3.2. The usual pattern is that it becomes visible early in the year to the Planning Council, who immediately attempt to triage it and limit the potential solution space so that resolution can be made as cheaply as possible. Because Eclipse is an open organization, and is populated by humans, who are in the main scurrilous gossipers and rumour-mongers, awareness of the bug expands in the community as a whole. A Bugzilla is usually created to give the community the opportunity to cosmologically inflate the solution space through the time-honoured approach of getting your oar in.

Eventually, broad interest wanes, and the determination comes back the Planning Council again, who, disappointed that no really clear solution has come out of the community involvement, many eyes == many opinions it appears, just sigh and put a workaround in. Next year the same sequence of events occur.

This year, it’s bug 271054, but the problem is the same.

What do we call the next roll-up release after Galileo?

Comments about bike sheds will be modded up appropriately.

Eclipse 2009 Thursday

Nearly there. This is the final article in a tetralogy of tardy tales from EclipseCon 2009. I don't know about you, but I'm looking forward to the end of this, where I can put a big scratch mark through my notes and call them done.

Thursday 26th March

OSGi Dual Talks: Clouds + Bundle Generation

This dual talk turned into a singleton due to the US immigration office who didn't manage to get a travel visa to the presenter in time for the conference. There seemed to be a lot of this about. Because I'm on the programme committee, I got to see a number of emails, and there was a couple of tweets too, where developers with Eastern European-style names didn't get replies on their visas in a timely fashion. Further research indicates that the immigration people are guiding 150 days in advance application for scientific/technical conference travel visas. So, as the Irish Girl Guides say bí ullamh - be prepared: either get your application in early, or change your name.

Back to the cloud. Alexsey showcased some interesting tech around managing and deploying bundles into Amazon EC2, as well as discussing some of the security issues. There's a lot of this about too. Many companies are constructing their own tools around deployment and management into Amazon and private clouds, using OSGi technology as a handy enabler for standardized packaging and lifecycle. The scale of the activity was brought into sharp relief when I got to sit in on an OSGi Tools meeting on Friday morning. Conclusion - moderately interesting. Next step - wait for someone to develop a standard application model for OSGi.

Conquering GEF: Creating well designed graphical editors and bringing them to the Web

Over in FUSE-land, we've got a lot of software that use graph models. Integration graphs, dependency graphs, pipelines, that kind of thing. Graphs are great for visualizing, but when you've got the job of doing this for both browser and IDE based tools, then you start looking for ways to minimize your code base forkage. The RAP guys have done a great job in bringing SWT to the Web. If there was a chance that GEF, or better still Zest, could be brought to the Web, then that would be full of win. That's why I went to this talk, which was standing room only.

Once more, this was a talk of two halves. The first half was a kind of a playbook for GEF, and while that was moderately interesting from the point of view of a useful summary of the trials and errors of getting GEF right, the real meat was in the second part of the talk. Here, Vineet brought us from a GEF editor running in a workbench, to the same editor working in a standalone form without a workbench, to the same editor working in a browser. Very cool. The only downside here is that it's early days for the work, and there are issues that need to be resolved as well as features that need to be added. The way that it happens behind the scenes is that the original GEF code is compiled to ActionScript (some manual intervention required if there's name clashes) and then that ActionScript is the thing that gets rendered in the browser window. Definitely worth looking into as it matures. Conclusion - very interesting. Next step - come back and check this out after the summer.

Eclipse Swordfish - an open source SOA runtime framework for the enterprise

Swordfish is Eclipse's very own ESB - you can't have an open source community without one - and builds upon Apache ServiceMix and Apache CXF with some added-value capabilities and services. One neat technological advance they have in there is an extensible framework for dynamically generating interceptor chains which are installed in the Normalized Message Router to mediate message exchange. Now there's a statement that only makes sense to probably about ten people, all of whom are already too busy writing in their own blogs to notice it and marvel at its awesome niche techiness. So it goes. For everyone else, I'll offer the statement that this enables policy-driven behaviour. The ESB is OSGi-based, and uses JBI (also not as dead as people think) as the way to bundle up units of function. Conclusion - very interesting. Next step - must try it out a bit.

Afterwards, I said to Oliver that it was a good presentation, but probably a bit too much technical detail towards the end. He reminded my that the last time he did a presentation I had told him it was too high-level. He then asked was it possible to make me happy. I replied in the negative.

There's always an issue with demonstrating middleware. It is not interesting to some people to see command windows and logs - the MEGO effect is immediately apparent. It's like demonstrating intestines. All you have to look at is the output, and it's not really that pleasant. Ideally, you could take a chunk of intestine out, and attach electrodes to it, then you could pop your microphone in one end, throw the power switch and the induced peristalsis would rocket the mic out the other end, where you could catch it in an amusing manner. I bet you would get a whole lot of +1s for that demo. But you can't do that with middleware, alas.

SOA Ecosystems

Yet another one of these curated talks - I've got feedback on the plus, minus and meh sides of the argument on this model for talks, so I'm interested in what y'all think. Leave a comment with your, er, comment. I'll bring it back to the programme committee.

This started off badly because I turned up late to introduce it. Zsolt had already started Eclipse Community Registry, a building block to foster the adoption of the Eclipse Runtime and I'd swear that I got a few filthy looks from Adrian. Sorry, guys. This community registry that Zsolt was talking about sounded like a super-duper version of EPIC - but for services. It's a service registry with handy stuff like tagging, voting, commentary and the like. Zsolt made sure to point out that this is just an idea at the moment, it's not a project as yet, he's just putting it out there to see what people think. Conclusion - interesting. Next step - wait and see.

The second talk, galaxy, an open agile platform using dynamic software architecture continued the theme of long talk names, and removed the convention of capitalization. This was a consumer style of talk - Fy brought us through a fairly large-scale initiative being explored by INRIA to construct a development platform that integrates open standard technologies, includes an agile design and modeling environment, and ensure direct feedback to the design from a monitoring infrastructure. It looks neat, and my first thought was that well, this is a long way off. But it turns out there's a date on it, in Q4 2010, so that makes it more interesting. Conclusion - very interesting. Next step - keep an eye on what's going on.

Personal applause for Fy because he did a presentation which was almost completely pictures! Yay!

The final event of the day, and the conference, was The Eclipse Community Spotlight. It's the same every year, the top-level project leads, or their designated PMC representative get to sit in front of the whole crowd and answer questions. Every year, Doug Gaff does the lyrics of Baby Got Back sotto voce into one of the mics before they are switched on. This year, we found out exactly how much Eclipse real estate David Williams (WTP lead) owns - all of our base is pretty much belong to him.

That's it for this year. As per usual it's all great fun, and there was visits to one of the best Thai restaurants in the area, one or two great socializing occasions at receptions and bars, and awesome high-bandwidth interactions with people that can help me solve issues, forge alliances, explain concepts, and such important things. Ultimately, huge thanks are due to Bjorn, Scott, Anne and the rest of the extended team that made this all happen.

(Don't forget to take the survey!)

EclipseCon 2009 - Wednesday

Today I continue my week-in-arrears retrospective of the EclipseCon 2009. Authors often mumble into their whiskey about the tyranny of the blank page, but I feel that the full page (of partially illegible notes) is equally tyrannical. And I have no whiskey either.

Just a quick concerned citizen-o-gram by the way, please go and fill out the EclipseCon Survey, paying special attention to the the areas that you would like to see improve. It's important for the program committee next year.

Wednesday 25 March

Building Applications for the Cloud with Amazon

This was the keynote first thing in the morning. I was impressed with Don MacAskill's shoes, and the way that they run SmugMug on Amazons cloudtastical offering. I experience a veritable frisson at the new EC2 deploy and debug tools that Amazon have created for Eclipse. It uses Webtools' server framework and deployment mechanism to allow you to deploy your webservices to machine instances running in EC2, and it allows you to debug them as they run. Very neat. Limited to Tomcat at the moment, I'm sure it'll be no time at all when you will suddenly see it working for things like FUSE ESB and FUSE MR to name but two, 'nuff said. Conclusion - interesting plus frisson. Next step - extend Amazon code to deploy to FUSE ESB instances.

What's Baking in the WTP Incubator

was a little curated number intended to act as a showcase for some new projects that are growing in the WTP Incubator project. In a session of two halves, Shane Clarke gave us an insight into Developing JAX-WS Web Services - this is a new piece of tooling that enhances the dynamic web project approach of WTP so that it's easy to create JAXWS services. I'm biased, since we consume this stuff in FUSE and I'm a committer on the project, but Shane has done a maximum awesome job here, I can't recommend the man highly enough. Unfortunately, this looked like it was a two-hour talk that had to be jammed into twenty-five minutes, so I'm sure that there's plenty we didn't get to see. Conclusion - awesome. Next step - update the Apache CXF wiki with details of this.

Next element in the showcase Incubating XML Security Tools. This incubator project contains a set of capabilities for dealing with various XML Security standards, like partial encryption, signing and the like. The author, Dominik, originally constructed this as an e-learning thing, for people that wanted to experiment with XML Security and see how it all worked. It works pretty well for that, but I'm not sure if there are public APIs in place which would allow you drive the encryption processes programmatically. That would be of more value than the user-driven version. Conclusion - interesting. Next step - somebody translate the help from German please!

From source to automated builds with Buckminster and p2

Buckminster is the software assembly tool that we use to do the STP builds, and it has served us well over the past couple of years, so I was interested to see what has happened recently, given all of the p2 stuff going on, and Eclipse release train requirements around packing and signing and all that. Good news - there's a recent version of Buckminster that is p2ized and fully kitted out for packing and signing headless builds. Just what the doctor ordered. I would rush off to try it out immediately, but I'm stuck here writing in this damn blog. A footnote on the presentation - the subject matter is a little esoteric, but Henrik did a good job explaining it in a way that didn't dive deep into the details - except perhaps with the CSPEX thing. Conclusion - w00t. Next step - update to the Magic Buckminster and plumb in my STP generic build system, then blog about it.

Higher-level UI programming

Intriguing title on this session. Perhaps we were to be shown how to program UIs by pure radiant thought alone? Or perhaps we were going to see some Epic-class characters showing us how to do our UI? This was a two-session talk again. First up was UFaceKit - A highlevel Databinding and Widget-Toolkit-Abstraction - the motivation behind this particular piece of work is to provide a higher-level widget toolkit abstraction that can be successfully mapped to alternate widget toolkit implementations, like Swing, GWT, SWT and the like. UFaceKit is now an Eclipse project. Conclusion - interesting. Next step - keep an eye for an opportunity to experiment.

The second talk in the showcase was UI designers : Untangle the knots, use EMF (live) models! (yes, there was an entertaining selection of session titles this year for some reason). We got to see an EMF model representing an SWT UI rendered, live, with instant updates to the UI as you tweaked the model. Very nice. The code that does this is an open source declarative UI framework (ye gods, another one) called Wazaabi. Conclusion - me like! Next step - use this for kick-starting mockups at least.

Eclipse and Maven

This next session was one that I was particularly looking forward to. Eclipse, Maven and how they interact is a persistent thorn in my side - always has been - so I was going to this session in the hope that there will be some release from the anguish. There are two Eclipse and Maven projects at the Foundation, and this session was split into two parts to align with the projects. Some people came along hoping for celebrity deathmatch - I just wanted some solutions.

I'm not going to go into the details of the sessions - I can summarize with m2eclipse FTW, apologies to Phil and Brett and Carlos, but m2eclipse is really ploughing resources into this and is moving ahead with a much more complete and broad solution. Conclusion - m2eclipse FTW. Next step - I think I'll have to start committing to this when it moves onto Foundation turf.

I got the chance to have a sit-down chat with Jason of the m2eclipse project later in the day and we talked about where it was going, and I asked some questions about how I can incorporate the thing into the FUSE Tools and meet the double goal of providing a means for developers to move in a frictionless manner from snappy Eclipse builders to Maven CBI approaches and not suffer terrible brain-damage. Jason gave me enough confidence that this will happen, but it's going to require some work. I'll pick up that thread again in another blog entry.

EclipseCon Thru The Lens

[caption id=“attachment_86” align=“alignnone” width=“500” caption=“P”]Page 1[/caption]

[caption id=“attachment_86” align=“alignnone” width=“500” caption=“P”]Page 2[/caption]

EclipseCon 2009 - Tuesday

As usual, day one back from a conference has disappeared in a miasma of hurried catchups, email rationalizations and a numbing sensation of generalized low-grade horror.

Day two must mean the summary of the conference experience. I'm looking at my twenty-four pages of notes with mounting distress at the level of detail. Some ruthless editing is in order. I've previously written about the Monday line-up, and followed with a partially incendiary post that spiked my stats and has probably ensured that I will have a crowd around me at my next talk. Remember, everyone, that pitchforks are sharp and flaming torches are hazardous items indoors.

Tuesday 24 March

Enterprise Build System: Model Driven Architecture on PDE Build runtime

At some point in the past, Kagan's company had constructed an Eclipse tool for our service testing framework, so I was recommended to go along to this talk. I got to see about fifteen minutes of it before being interrupted by a call that I couldn't defer. Unfortunately, this meant missing the demo part. Overall the subject matter looked interesting. It addresses the issue of constructing Eclipse builds and products, which, for some unknown reason is more difficult than it should be - mostly it's the failure modes that are impenetrable. However, because of my vendor/consumer hat, the profusion of build approaches fills me with more trepidation than delight. You know the feeling - you're watching the Cambrian explosion here, much experimentation of body plans and capabilities, and you are all positive but really you are gritting your teeth waiting for the Pliocene to arrive so you can use the stuff in anger. Conclusion - interesting. Next step - contribution to Athena maybe?

Executing BPMN

Koen Aers presented this session, wherein BPMN was hung within an inch of its life, cut down from the scaffold, eviscerated on the windlass, had its intestines burnt in front of its eyes and finally had its corpse quartered and dispatched to points north, south, east and west. My little joke. It wasn't that sort of execution at all. Basically he showed how jBPM 4 can execute your BPMN-described models. He gave a quick intro to the charmingly retro little grayscale icons used by BPMN. Koen also said that the BPM/Workflow is a jungle of standards. I think he understated the case a little. It's probably more like the particle decay cloud that emerges from the collision point of two positron beams, except a lot slower. Hopefully convergence will occur at some point in our lifetimes. Conclusion - informative. Next step - /me will leave this kind of thing up to the experts.

SOA Track Set

Here we go. This is the collection of short talks that I was curating. The point of these tiny talks was to bring people up to speed with what's going on in the SOA Tools Platform project. Jerry spoke about the STP Policy Editor New and Noteworthy - not too much changed here, but some interesting elements have been added to help you edit Distributed OSGi remote services configuration files. Next up was /me with Enterprise Integration Designer: New and Noteworthy - this is where I got to practice being the bearer of bad news. This component is currently sleeping deeply, with no real effort being made to support it except by yours truly. A plea for help ensued, complete with cute puppy picture. Want to contribute? Take a look at the Wiki and get in touch! In a carefully-planned sweetener to disperse the bitter aftertaste induced by bad news, Vincent then presented SCA Tools: new & noteworthy. Now this project is really lively and is constantly adding new features. They've made some changes around the capability to extend the metamodel with new SCA artifacts and included an XML editor for defining composites and component types. Above and beyond the immediate application to SCA runtimes like Tuscany and Frascati, I think that this tool has great potential to help people construct composite applications in this brave new OSGi world we are entering. Finally, Adrian brought us up to date on Integration of SOA Editors in Eclipse using the STP Intermediate Model. There's another big potential here as the basis for a SOA-style repository model. Conclusion - you tell me. Next step - this will be the subject of another post!

Practical Process Orchestration using Eclipse SOA

In this talk, Dietmar introduced us to some of the BPEL-y stuff that he's been working on, based off the Eclipse BPEL project. If you view the stats, this talk got totally panned, with a lot of -1s. Two things come to mind straightaway. First, I think that the material in the talk wasn't really quite ready for presentation. If an attendee wanted to go off and do some work with this, they needed to download and build the BPEL project first. That's ok in my book, but many attendees might expect to be served their meal on a plate, rather than being handed a bag of raw meat and other ingredients. Personal taste applies, but know your audience. Second, the stats seem off. Last time I looked, I didn't see any +0 votes in the stats for this talk, and there was at least one - mine. So I'm not so sure accurate reporting has occurred here. Conclusion - somewhat confusing. Next step - tighten up and have downloads.

I think there will need to be an aside soon on the Eclipse BPEL project. Not now though. There's more sessions. No wonder we were all hosed at the end of the week.

Eclipse SOA Initiative

This was a quick intro from Ricco about a nascent initiative to produce an industry-aligned working group in Eclipse about all SOA things. More on that as it gains more support and strength later. And, for those of you who are quick to turn around and say that SOA is dead, I have two words for you: Ker. Ching. That will be all. Conclusion - watch this space.

Galileo: delivering the next major release

Last talk of the day. Rich and Markus lead us through the Galileo build, and dammit, the room is out the door again. Grr. Since I spend time looking inside the guts of this particular monster, I bailed early, before the funk started to rise in the room. Conclusion - I know where the bodies are buried already. Next step - keep shovelling.

At that point I retired to the bar for beer and sushi with some other Progressians. Having a distributed organization, and in an environment where the travel budget fairies have gone to the bad, conferences can provide valuable meet-up opportunities. The Wednesday writeup shall ensue...

Some Opinions About EclipseCon Talks That Will No Doubt Be Unpopular

In watching the presentations this year, it has come to my attention that some of them are boring. Yes, I know this will be an unpopular opinion, but I was startled enough by it that I thought I had to share.

I have always asserted that as a presenter, your primary role is to entertain. That is, you want to ensure that the arses stay on the seats until you get your point across, and when you do get that point across you want people to be engaged, with their brains on.

Remember, presenter - I have Twitter now. I can amuse myself if you are not amusing me. But haven’t I come for content? Sure, but if I enjoyed the presentation, then I’ll be happy with a bunch of recommended links.

Now unfortunately, there are some topics that are inherently dull and uninteresting in their own right, although this does vary with personal taste. For example, even the merest mention of BPEL gets me right into that day-dream about being out on the golf course on a sunny day.

Or, come to think of it, the one about chainsaws, which I won’t elucidate here.

You are kind of doomed with those type of topics - you had better hope that the attendance contains a cadre of narrow-niche hardcore heads who love it from their own particular perspective. But it will - unless you get the conference wrong.

Ok, so you have a topic thats intrinsic novelty has not put you at a disadvantage. Hypothetical example, Editing Tools for SmoochML Documents. The first mistake to make would be to say “First I will introduce the SmoochML standard”. Dude, if I didn’t know what it was, I wouldn’t be in your talk. You are a developer, so I understand your need to do obsessive corner-case coverage, but, you know, you’re actually off-topic. And then you might complain that you are running out of time at the end. Sympathy, I know thee not.

This is why I like short talks (although ten minutes is too short) - there’s no time for a gentle introduction, it’s off the cliff, into the sea, down as deep as you can go, and then pop out of the water panting and hollering. Forget beach entry.

If you are doing a fifty-minute talk, then I recommend you get in there with a good narrative. Set up a dramatic situation - what was the problem? What would be the consequence of failure? You must create several thousand SmoochML documents in 24 hours, or the Joker is going to blow up a hospital. And, all you have is three dozen red pandas that the programmers inadvertently left behind over the weekend. Yikes!

Next step is to resolve the conflict, tell the story, how did you deliver using the Editing Tools for SmoochML project? Just tell it. Then once it’s all over, go back over a few things and drill into them a little more. People will be more engaged - they may even ask some questions rather than sitting there breathing shallowly with glossy little eyes.

Good luck.

Oh, and go check out the stats for the talks and see if you can spot the ones where people weren’t engaged.

EclipseCon 2009 - Monday

It’s 7am Wednesday morning in Santa Clara, CA. Breakfast is on its way and I’m trying to sort my schedule for the day ahead at EclipseCon 2009.

The last couple of days have been busy. Not as busy as previous years - there’s a marked downturn in the attendance due to corporate travel bans and a seeming go-slow in the US Immigration Dept responsible for issuing travel visas.

On tutorial day, Monday, I attended a PDE builds/Athena builder tutorial. Peak learning came from Andrew Niefer (the last PDE build guy standing) whos skilled explanations painted a picture of PDE build not so much as the be-tentacled monstrosity many believe it is. Top tip - think of PDE as a framework for generating Ant scripts.

Nick has slides and comments on his blog.

Verdict: early days yet, but potential there. Looks like most of the presentation to the user is going to be a minimized properties file plus a conventional project structure. It’s ok. Work to be done with tests etc.

I’d planned to attend the p2 tutorial in the afternoon, but turned up three minutes late (lunchtime visit to Apple store, natch) and the place was rammed.

Rant ensues - we do need to get sorted on room allocations. The p2 thing is popular, since it was forced down our throats last year, and it was in a small room. Downstairs, there were huge rooms with a dozen people scattered about. Grr.

In the heel of the hunt, I went to the Domain-specific Language Development talk, which turned out to be a good learner (the pain). I actually twigged how GMF works at last. The concern is that I may have lossed SAN points in the process - I’ve often remarked how learning the many Eclipse frameworks closely mirrors character progression in the Call of Chthulu RPG. What’s more, I learned about model tranformation with Operational QVT, which is good - will use it. I zoned out during the Xpand piece (jetlag).

Top tip to presenters - Address your audience, not your slides. The slides can’t beat you with sticks for a bad delivery. Ask your audience how they are doing now and then: are they following? Have they got the ellipse in the node mapping done yet? Do they need a minute to regenerate the model because they are newbies at reading your mind? That would be a good start.

To wind it up, I got fingered by The Powers That Be to do powerpoint karaoke session with the inimitable Mik Kersten of Mylyn fame (going to have to get that integrated with FUSE tools). We presented a new framework for identity theft in the cloud. ROFLMAOs there were in abundance.

Back to the schedule selection. At this point in my career I had expected to have mastered basic bi-location, but haven’t, so I thinking of relying on oscillating between sessions. Tuesday update later on. Don’t forget there will be tweetin’ ahead - #eclipsecon.

BPMN Modeler Demo

Last week, Antoine Toulmé hosted a live action demo of the BPMN Modeler Project. It’s been recorded, and you can catch up with at Eclipse Live. Eclipse Live has turned out to be a pretty cool resource, and I’m promising myself I’ll spend more time hanging out there, and might even do some video.

If you think that the demo is going to be all about BPMN and possibly a little too dull for your bytecode-wielding brain, fast forward a bit to where Antoine talks about extending and changing the modeler for your own needs. You’ll be deep in the code at that point and finding out about the awesome GMF chops that went into making the modeler what it is.

Check out the collection of screenshots here to see some of the possibilities.

[caption id=“attachment_71” align=“alignnone” width=“500” caption=“Due Diligence Process”]Due Diligence Process[/caption]

Developing Silverlight clients for CXF using JAX-WS Tools

I just found out that the eclipse4SL, a development environment for creating RIAs with Microsoft Silverlight, is using JAX-WS Tools for Apache CXF. In the linked how-to, the guys show how to develop a Silverlight client that accesses a Java Web service. Nice!

CXF Tools in WTP 3.1M5

The JAXWS project in the WebTools incubator has made its way into the light of day on the latest and greatest 3.1M5 release update site. Point your Eclipse update site manager to http://download.eclipse.org/webtools/milestones to get the plug-ins. One thing to note is that while this release uses the most recent I-build of the WTP frameworks, the code is intended to work with the Eclipse 3.4.1 release too.

When you access the update site, you should see the CXF Web Services (Incubator) feature available in the site listing.

cxfservices

Thanks to David Williams for setting up the build and Shane Clarke for the awesome code construction!

Developing with Eclipse and ServiceMix

Update :  There’s some issues with this right now - see ESB-531.

My pal Ade has produced a nice little video on using m2eclipse and the Apache ServiceMix maven archetypes catalog to accelerate your development of ServiceMix-based applications. You can find it on the FUSE training videos entitled Performance.

Check it out. It should speed up your ServiceMix development!

Open Source not proof against EOL

[caption id=“” align=“alignright” width=“198” caption=“Thanks to Aaron_M!“][/caption]

“The glories of our blood and state     Are shadows, not substantial things;  There is no armour against Fate;     Death lays his icy hand on kings: …”

And, as it turns out, Eclipse Projects too. On November 12th, the Eclipse Foundation is holding two Termination Reviews as part of its regular Eclipse Project Review schedule. The ALF Project (death knell pdf) and two of the components (SC, SOAS, death knell pdf) of the SOA Tools Platform project are slated to shuffle off their mortal coil, kick the bucket, buy the farm.

The good thing is that while an Open Source project might well crumble, through neglect or disinterest, to readonly svn dust, like the mythical vampire, just a few drops of the right kind of blood dripped onto the repository will have it up and about again.

Updates 2:

Blog posting gets SearchSOA interview with Rich Seeley

Updates 1:

Slow Friday in Vulture Central  ;  Sanjiva has a Little Sneer at Eclipse

Working With Enterprise Integration Patterns

Thanks to Enterprise Integration Patterns, architects have a clear and succinct way to describe integration within complex systems. It certainly beats a lot of MS-Word documents and monster integration architecture diagrams. And, with Apache Camel, we’ve got an open source runtime that allows us to create routes by chaining EIPs together, using Spring XML or Java fluent builders. That’s fantastic, but EIPs are as much about sharing pictures as creating message routing graphs, and where are the pictures?  

We’ve made some tools that will allow you to load up Camel Spring XML files into Eclipse for visual inspection and editing. You can also create EIP diagrams in your Workbench and save them as Camel configurations. Finally, we’ve put in some debugging capabilities to allow you trace through the paths a message will take through your EIP graph.  

We are earnestly seeking feedback - check out the FUSE Integration Designer Preview page to download the Eclipse plugins, or check out the video links under the Training Videos at the bottom of the page.

Developing Web Services with Eclipse and CXF

Update:This is the most searched-for entry on my blog, and I have to warn you it is WAY OUT OF DATE! So skip it - and someday I’ll write an update and link it from here…

I’ve seen more than one instance of people scratching their heads over the CXF tools in the Eclipse STP project, so it was time to go back to the drawing board and take a new approach. Now we’ve finished our first cut of what we think service creation tools should look like, we would like you to check them out and tell us what you think.

What have we done differently? Well, the code is now completely based on Eclipse WTP frameworks, rather than having only a passing integration with them. If you’ve ever done Axis2 web service development with Eclipse, then you should be able to get familiar with this really, really quickly. You can create CXF web services from WSDL, or from a Java class or interface. The tools support selection or extraction of an SEI if you are starting from a class. JAX-WS annotations get added automatically, and you set preferences on how you would like them to be defaulted. And to help with getting those annotations right, we’ve added some validation - you’ll get error markers if you incorrectly combine annotations.

If the alphabet soup in the previous paragraph has made you sleepy, a few examples of the tools working might help to perk you up. Check the silent movies.

So, where can you get the code? For a start, we’ve bundled it in the FUSE Integration Designer Preview. We’ve also decided to contribute the code to the Eclipse WTP project, where it can be warm and cosy and be accessible for all. You can find the proposal for the WTP Incubator attached to Eclipse bug #248630. Also attached to that Eclipse bug is a zip file that contains the plugins you need to get running. Unzip this into your eclipse directory, restart your workbench and you should be good to go.

Try it out and let me know how you got on. You can leave feedback here on this blog, add a comment to the Eclipse bugzilla, send an email to users@cxf.apache.org (best place right now), or drop in on the FUSE Tools Forum.

Some things I learned at the Eclipse Summit Europe 2007

Eclipse users and developers know that the Eclipse platform is a bit of beast - there is just so much in there that if you don't get the chance to poke your head out of your own personal Eclipse-interaction light cone, you can miss out on some cool stuff. And it turns out that the best way to do that is to come to these kind of conferences :) Here's some things I found out about yesterday.

Plugin Spy
Select something in the UI, hit Alt+Shift+F1, and you get a window containing an introspection of the current widget/part that you have selected. Check out the PDE Incubator page, and a blog entry from Chris. If you are using Eclipse 3.4M2 or later, you will find this feature already built-in.

Clean Ups
I use Checkstyle in most of my project work, and it and I have an uneasy relationship. The sort of one where the dishes get broken and people come around to bring the pets away. I have always whined that if Checkstyle is so smart, why doesn't it get rid of that trailing space it spotted for me and stop bothering me? Well, it can't do that, but Eclipse Clean Ups can. Woot!

A Clean Up is just a collection of refactorings that you use regularly on your code to keep it squeaky. You can run 'em manually, or have them run automatically when you save a Java file. Go to this developerworks article to find out more.

EclEmma
If you are familiar with the Emma Project then you will have probably guessed that this is a test coverage tool for Eclipse, based upon Emma. I've always found test coverage to be an invaluable tool for showing you where the great, gaping, black holes of non-deterministic behaviour reside in your code. There's a lot of tools that can do coverage, and there are Eclipse integrations at varying levels of quality. What I liked about EclEmma is that it is quick and straightforward to use on a single Eclipse project, and gives me the results fast. Although the results are not always welcome :)

Update: Jeff McAffer's Eclipse Update Talk [pdf link] has details of Plug-in Spy and Clean Ups.

Is your code C.R.A.P.?

Just got a link this morning to the C.R.A.P. metric and the crap4j Eclipse plugin. This humourously-named approach mixes up cyclomatic complexity and code coverage to give a number that is your code's CRAP index. Generally speaking, you can lower your CRAP index either by adding automated tests or by refactoring to reduce complexity, or both.

Apparently crap4j can also estimate your CRAP Load (we've beaten this one to death - ed.), in which it gives an indication of how many tests you will need to write to reduce the CRAP index to less than an arbitrary bar of 30.

Update: tried it out, and it seems interesting - I can understand the concepts immediately and it has an amusing toilet paper icon on the menu. Here's a screenshot of the CRAP Report that it produces.

crappy.png

In the case of this anonymous component, you can see that the crapometer weighs in at 14.91% - an artitrary figure that tells me that a little over one in seven of the methods in the component are, well, crappy.

crapload.png

The CRAP Load figure above hints that maybe about 14 tests would do the trick in reducing the CRAP figure of a complex method with 0% coverage.

RESTafarianism and EMF

I had the pleasure to share a drink and a chat last night with Ed Merks, the EMF Project lead. One of the interesting things that he brought up was his efforts to extend the EMF URIHandlers to be more REST-like. He mentions this in a blog entry - you will find the reference after the picture of the hibiscus. There are some more techcore details at the Bugzilla entry that hosts the patch.

This work is a big thing for EMF, in my opinion. Putting this together with a simple HttpService instance in an OSGi container can give you the basis for remotely manipulable models, with most of the work done by EMF itself. This opens up the field for Rich Internet Applications (blach - another buzzword) that can interact with hosted EMF models without having to depend on having an EMF library on the client side.

The Artix Repository product that IONA ships has done something very similar, but we have created the RESTful interactions outside of EMF. It's cool to see this kind of capability moving into the core.

Off to Eclipse Summit Europe

I'm waiting for my flight to Frankfurt to attend the Eclipse Summit Europe that is being held in sunny Ludwigsburg, in Germany. Due to a typical pebkac error, I'll be staying in 3 hotels over the 5 days that I will be there :)

The Euro Summit is an interesting conference - the content is usually good, the venues conducive to meeting people and of course the German beer is without peer. This adds up to a fun-filled few days. During the conference, Adrian from STP will be updating us on what's new and noteworthy on the project, and of course bringing us up to date on the old material too. One of the evenings will contain an STP BoF, although the date has to be confirmed.

Eclipse Europa has Shipped

Well, it shipped nearly a couple of weeks now, and I've been taking a bit of breather and getting back in touch with some other things that get left by-the-by as we went through the release process. Bjorn and the legal team deserve great praise for their mammoth efforts in getting everything lined up for those of us who delivered projects.

From the perspective of SOA Tools, it's a time to gather our wits and make some plans, with the help of the community. I'm glad to say that over the last few months, there has been a considerable amount of interest in the project from a number of organizations that wish to contribute code and expertise. The PMC's challenge is how to make sure that all these prospective committers can work together in a way that is conducive to developing the best open source tools and frameworks.

Enter the Incubator. This is to be an STP sub-project (it's in pre-proposal phase right now), which I hope will address our challenge. It works like this -- a number of organizations decide they would like to contribute some code, but in each case, they have code that does the same or similar things. The best thing for the project is that the committers come together, bring their solutions to the table, re-architecting if necessary, and producing a joint vision for the merged code. The 'table' in that metaphor is the Incubator sub-project. Once the technical vision has been constructed and agreed upon, and a draft plan put in place, any work that has taken place in the Incubator is ready to 'graduate', that is, move to full STP sub-project status.

It's also time to let us know what you would like to see happening in the current areas of the project - let us know on the dev list or the newsgroup!

Eclipse nears Europa release

It's getting near now - end of this week we are good to go for the Eclipse Europa release.

I'm looking forward to getting this out the door so that we can get back into a planning mode next week!

This is not WSDL

Recently in IONA, in an informal moment in the coffee area, a number of us sat down with sore heads and decided that we would all feel better if WSDL wasn’t so hard to use. Not in those exact words, but I’m writing for a mixed audience here.

In March, I was out at EclipseCon, and got to visit the Yahoo office (where old webservices comrades Mark Nottingham and Hugo Haas now toil). During lunch in the canteen, we talked about lots of things, but one of them was how we would all feel better if WSDL wasn’t so hard to use.

magritte-not-a-wsdl.jpg

There are of course lots of WSDL editors out there in the wide world. At Eclipse, there is the WTP graphical WSDL editor. Many products, such as XMLSpy and IONA’s own Artix Designer incorporate ways to reduce the agony of dealing with WSDL.

For me though, none of editors I’ve tried have made the nut. As a developer I want a clean way to make WSDL that deals with all of the crud that needs to be there (like pointy-bracket syntax for example). What I don’t want is a weird graphic metaphor with links and dragging and dropping, thanks. Just let me type it, like code, give me some syntax support and some useful conventions and then let some other agency worry about generating the XML vocabulary.

Here is the sort of thing that I would like to be able to type in and have it converted to WSDL for me, with some sensible defaults, etc:

import “myTypes.xsd”;

namespace “http://www.iona.com/interface-namespace";

interface myInterface version 1.0 {
    string myOperation (in string param1);
}

We could also code in some conventions (like that version in the interface) to help people along, so for example:

import “myTypes.xsd”;

namespace “http://www.iona.com/interface-namespace";

interface myInterface version 1.0 {
    string myOperation (in string param1);
}

interface myInterface version 1.1 {
    string myOperation (in double param1);
}

would cause an error because someone has changed the method signature in a minor version upgrade. They should have used version 2.0 instead. There’s little limit to the fun we could have with this :-)

By the way, the string type that you see there is, by convention, the XML Schema string type. Same goes for the float. You can use imported types just by using the prefix approach that XML already has - pfx:myType.

I haven’t mentioned the bindings aspect of the WSDL specifically. To me, that part is a big target for an extensible set of wizards or tailored binding editors and not something that feels like it should be accessible to code-like definition.

EclipseCon Day 4

The last day of EclipseCon was SOA Tools talk day. I spent the early part of the day working on the presentaiton (which you can find if you follow the previous link). The talk itself went well - there was an audience of about 40 or so, and there wasn't much attrition towards the end. In the talk we covered some of the technology that had been put into the SOA Tools project, and gave an update of progress and a draft roadmap.

EclipseCon Day 3

Day 3, Wednesday, and at this stage in the conference I feel as if I have been dragged through a hedge. I'm not the only one, as lots of the people I've talked to have been here since Sunday and the adrenaline is starting to fade. This has nothing to do with a number of BoF sessions that provided free beer late into the night, nor has it to do with mojito-fuelled technical and project discussions. More on that in a later entry.

Today was the big day for the guys in the SOA Tools BPMN sub-project. I introduced their long talk From Modelling to Execution in the Enterprise - using BPMN and BPEL to a crowd of around 60 people, which was an excellent attendance. Antoine and Hugues did a a great job of bringing the audience through BPMN and how it can be mapped to and from BPEL.

I was due to do my talk on SOA Tools the next day, so an early night was in order. There was an IONA round-up at Pedro's and then it was back to base to sand down the corners of the presentation.

EclipseCon Day 2

These entries are being posted ex post facto to the conference - I just haven't yet got the hang of real-time blogging!

I managed to get one demo, one long talk and a panel in today. Lunch and part of the afternoon got subsumed by meetings and general corridor work. I was also developing some ideas to bring to the ServerSide Java Symposium in Barcelona in June. Here's the roundup:

Getting Hooked on Equinox

This session was out the door, standing room only, and at some point the event hall monitors started beating people with sticks to prevent them from attempting to enter the room. The guys showed us how to configure adapter hooks for the OSGi framework (using Equinox, of course) , extending the default behaviour, for example to do some class checking on class-load, or to filter the contents of contributed bundles to remove disrespectful extensions.

The presenters talked about and demonstrated two great applications of this technology. The first was the capability to load classes from a memory mapped archive or indeed shared memory, rather than from a JAR files. The second used AspectJ to weave incoming class files and instrument them for monitoring.

Extending WTP Using Project Facets

This long talk gave a full introduction to the facets facility in WTP. Facets can be associated with Eclipse projects, as metadata to describe capabilities, or requirements. For example, a project can be given the jst.web facet, to indicate that it is a web application. In this way, facets are similar to Eclipse natures, but the advantages that facets provide is that they are versioned and may have information about other facets that they require to function, and facets with which they conflict. All in all it's a cool approach and I certainly think we should consider using it in SOA Tools - we currently use natures to mark JAX-WS and SCA projects, but the versioning feature of facets would be very useful here as these approaches are standards and will move on over time.

Adopting WTP in Your Products

This session was a panel, hosted by Bill Roth of BEA. The panellists were asked a number of questions about how they have adopted WTP as part of their product suite. The most interesting thing I got from this session was an insight into SAP's open source strategy, which is more about take than give: the SAP representative on the panel showed some serious frustration at not being permitted by his employer to actually commit code back into the Eclipse commons. This cleared up something for me: I know that there are some guys in SAP Labs in Bulgaria (video link) working with SOA Tools, so on a recent IM session with an insider, I dropped some dark hints about contributions. The response was along the lines of "our Open Source strategy is difficult to explain". I guess that in the fullness of time, SAP will get its head straight on OSS and be more forthcoming. We live in hope.

EclipseCon Day 1 - The Tutorials

Last year I regretted not attending more of the tutorials, so this year I kept the schedule clear to let me attend as many as I could. Here's the experiences from the day.

A Tour of the Eclipse Debug Framework

This was a double-length (4hrs) tutorial that would take up the whole morning. My major motivation here was to get an idea of where I would start writing a BPEL remote debugger. I have some debugger coding experience: many moons ago I had spent a summer rummaging around in the belly of dbx , changing the remote debugging elements to allow it to debug bootstrap code on a uVax at the end of a serial line. Charged with this dim experience, plus a very long bittersweet affair with using debuggers to find bugs, I was really looking forward to this session, and I can say that I wasn't disappointed with the content and presentation. The link to the tutorial page above contains a link to a zip file with all the tutorial materials. Go and download it - if you use Eclipse for debugging your code, you should at least read it and see how the magic works.

After a break to miss lunch, I had two short tutorials lined up for the afternoon.

Extending the XML and source editors from the WTP Project

Part of the work SOA Tools needs to get sorted in the short term is an editing facility for SCA .scdl files. These files describe the structure of an assembly, and use an XML vocabulary. The current state of the art is a WTP XML editor, backed by a the SCA 0.95 schema and registered for .scdl resources. I'd like to be able to do better for SCA 1.0 when it is released, so I attended this session to gen up on the whole procedure.

The session itself was fine, the exercises were useful, but I got there a bit late after saying a few words at the membership meeting, plus I was missing something in my installation that cause things to go a bit tango uniform about three-quarters the way through. I adjourned for coffee and email at that point, but I certainly plan to revisit the tutorial materials that are posted at the link above.

Extending your DSM by leveraging the GMF Runtime

I work with some guys who do GMF programming and, frankly, I can't understand a single word they say at the standups. I attended this tutorial to try to remediate that situation, and to hopefully gain some kind of understanding on where to start on creating some domain-specific pictures for the SOA Tools Core Frameworks. One thing that was very useful was a run-down on what the GMF runtime provides - action bars, collapsible compartments, connection handles, geometric shapes, ruler and grid support, appearance properties and lots of other good stuff (especially: printing support!). The other thing was the discovery of inimitable GMF Dashboard:

Gmf_dashboard.png

They tutorial went on to show how to customize and extend your domain-specific model and to how to keep your crazy diagramming from eating EObjects. Unfortunately, I needed to peel off for a meeting before the tutorial had finished, but this is another one that I will be going through again offline.

EclipseCon Day 0

Sunday is Day Zero of EclipseCon - traditionally a day for some introductory meetings and beers with people that you might not have seen, well, since the last Eclipse conference meeting.

DSC00017.jpg Would you buy a Maven support license from this man?

Phil Dodds, of Simula Labs and Kepler, in reflective form while waiting for the next mojito to arrive. I bet he's thinking about money.

EclipseCon is also a time to meet new people that you've only ever written emails to, or seen on dev lists and newsgroups.

Adrian Mos, from the ObjectWeb Team at INRIA, enjoying beer the quality of which cannot be easily obtained in Grenoble. Adrian is a JBI stalwart, and has been working with guys that created Cimero and ServiceMix to advance the state of the art in JBI tooling for Eclipse, and bring it to a home in the SOA Tools Project.

This photo has been shamelessly plagiarized from Ed Merks' blog, so he gets a link. Thanks, Ed!
IanBlogParty.jpg

Next up is Day One - tutorials - and as usual there's great stuff on offer. STP's own Antoine Toulmé is doing a two-hour tutorial on our BPMN Modeler, which has attracted a lot of interest. I'm taking the opportunity to learn more about the Eclipse Debug Framework, and later on in the day, looking at how to extend the XML editors that are in WTP. At the end of the day, I'm closing up with some GMF domain-specific model stuff.

DSC00018.jpg Carlos sums up the mood of the evening.

Flashback to the PDE Build

I just got a comment on the blog recently updating me on an initiative which supports the build automation of Eclipse Plugins. Markus sent the link to www.pluginbuilder.org, where the eponymous software has just had a 0.2.0 release. Go try it out and see what you think.

Recently I've been having a most excellent time updating and building the SOA Tools project, constructing an update site and getting the infrastructure ready for the Europa (wiki link) release in the summer. It's all PDE, all of the time, and looking forward to a build matrix where we will have Eclipse 3.2.1 builds, 3.3 builds and a mix of J2SE 1.5 and J2SE 1.4 between the subprojects is interesting, to say the least.

However, things are hotting up in the Eclipse build world, and with projects like Kepler, Buckminster and ALF on the go, we are looking at a very interesting future.

What does an SCA Assembly look like?

Here's a picture of an SCA composite, as found in the SCA Assembly specification.

SCA_Composite.gif

What do you think? Pukka or pants? Personally, I think it's a bit inclined to the trousers side of the question. We all worked on the specification words, which were scrutinized most closely, but the diagrammatic representations didn't get much attention. Perhaps we are looking here at an interface designed by Engineers.

One of the things on the STP project plan is a graphical editor for constructing SCA composites from pre-existing service elements and allowing the compositor to wire up the various components and eventually package and deploy it to an SCA runtime. I'd like it to be a useful representation, however, and not something as clunky as what you see here. I know that many of you software developers are really frustrated designers at heart - what's your opinion?

Eclipse Summit Europe

Barely has my backside hit the office seat when I am off on a plane again, this time to the Eclipse Summit Europe.

Everytime I come to an Eclipse event I find out some new stuff. Here's one example: in STP, we've been doing some work on developer support for JAX-WS, code-first web service development. Here we've put together an annotations view, which allows the developer to edit the parameters of an annotation with support for validation of the annotation content, hints for enums, that type of thing. At the Summit, I attended a presentation by one of the guys from the Dali project</a, which is all about the definition and editing of Object-Relational (O/R) mappings for EJB 3.0 Java Persistence API (JPA) Entities. Of course, JPA uses Java5 annotations to implement its POJO persistence, so it makes sense that Dali have invested time in creating a Java annotation view, similar to what we've done in STP. The next job is to see how well the two approaches can be merged.

I was going to include the STP bugzilla link here, but bugs.eclipse.org appears to be suffering some database overload at the moment -- I'll update the posting later.

Gartner OSS Summit Roundup - Mastermind Panel

An open source ‘mastermind’ panel was held at the Gartner conference last week. Mike Milinkovich of Eclipse, Brian Behlendorf of Apache and Collabnet and Stuart Cohen of OSDL. I diligently wrote down all of the conversation until, unused to actually using a non-keyboarded writing instrument, I cramped up :-) Luckily Zack Urlocker was much more diligent than I, and captured pretty much everything in a blog entry - to which I redirect you. Further analysis can be found on Ian Skerrett’s blog - Ian is the Director of Marketing at the Eclipse Foundation.

Eclipse COSMOS

In a previous entry I mentioned SML and the fact that I got a chance to speak with one of the authors at EclipseWorld. During the conversation we were joined by Mark Weitzel and Joel Hawkins and we started talking about something called the COSMOS project - a joint effort between IBM, Cisco, HP, Compuware, IBM, Intel and others. This project was about unifying a lot of the capabilities of SOA Systems Management and agreeing on resource modeling approaches using the aforementioned SML. Just today, I read an entry on Chris Aniszczyk’s blog stating that COSMOS had been proposed as an Eclipse project. This looks like a good idea to me, and from the point of view of the SOA Tools Platform Project it could make it more straightforward for us to incorporate management of SOA resources. By the way, Mark and Joel put together a really interesting talk and demo at EclipseWorld in which they managed to mashup SCA, Tuscany, OSGi, and TPTP. I was totally impressed!

Eclipse 2006 - Meetin' and Greetin'

Working in OSS projects means that much of the time the only chance you get to meet co-developers and other community members is when conferences like EclipseWorld happen. Usually, you get to meet brand-new people and have interesting conversations with them. At the Wednesday night Tailgate Party at EclipseWorld I was introduced to Chris Aniszczyk and - I don’t know how we got into it - we had a little conversation about the PDE. My major gripe relating to the PDE is the headless facilities for automating build, test and coverage - after I compared it to something like chewing ground glass, Chris informed me with a grin that he worked on the PDE UI. The PDE UI you will agree is in good shape. You just have to take a look at the new and noteworthy for 3.3 M1 to see that the team haven’t been sitting on their keisters since Callisto. It’s great to use, but from my perspective it’s only part of the equation of shipping software on the Eclipse platform. Back to the PDE headless build. The PDE build works - right now every Eclipse project uses it as far as I know. But it’s got a steep learning curve, and it’s brittle. I know this from experience :-) So let’s fast forward to now: in STP we got the PDE build to work well under the expert guidance of Naci Dai, who is the JST lead and buildmeister extraordinaire. Adrian carries on the torch and maintains the STP build for us. I’ve probably timed this badly, but we would like some more people to help us with build mastery. Send email to the usual address - stp-dev@eclipse.org :-) Update: looks like Felix is heading out of incubation! Update: a sudden conversation on Bug 154251 - Maven2 Integration shows some relevant work in progress.

Unfortunately we - the Eclipse developers - are not in a position to make much of a choice in the matter of building our projects. The PDE build will build Eclipse for us, but nothing else can really engage with the way Eclipse wants to be constructed. Of all the build system approaches available for Java, there’s probably only two that are front runners as an alternative to the PDE build. The first one is Buckminster - but the technology product named for the inventor of the geodesic dome appears to be closely aligned with the existing build approach and has as a goal the ability to materialize component dependencies from other, non-Eclipse, worlds. I confess I don’t fully understand how Buckminster really operates, however, so I’m looking forward to meeting up with some of the guys behind it at the Eclipse Summit in Esslingen in October and asking them to explain in easy words what it is all about. The second one is Maven. Most new java open source projects seem to use maven as their buildsystem. The maven software is itself open source and uses a plugin architecture to permit the addition of new capabilities. The pluggable nature of the software is the basis for a flourishing ecosystem of open source extensions, which is a really good thing. By the way guys, it would be cool if someone could put together a PlanetMaven tracker (see PlanetEclipse for example) or something like that so we could have a single go-to place for plugins and plugin doco. So, maven and eclipse don’t play well together because both of them are trying to do the dependency tracking. But there seems to be a genuine interest in moving towards some kind of resolution here. My colleague Conrad (who’s doing a talk at OSCON in Brussels - I’ve seen the drafts and heard the conversations and I recommend you go see it) tells me that the Geronimo guys are making some good progress in this area as part of their Development Tools subproject. Download the source for the details. I’ve also had a look at the OSGi plugin for maven that is part of the Felix project at Apache, which generates OSGi plugins in a hassle-free manner, but still needs a small amount of work to give it the ability to include Eclipse-specific manifest entries and offer some options on being able to fine-tune the content of the Classpath: manifest entry. Also, the fact that Simula Labs has joined the Eclipse Foundation as a strategic developer makes me think that we’ll see more going on in this area. SimulaLabs are of course the parent of Mergere - a source of all things to do with Java build processes in general and maven in particular. Of course, just because the PDE build is difficult to grok, sketchily documented and somewhat brittle doesn’t mean it should be replaced. Ideally more love here from the Eclipse development community would reduce the burden of the buildsystem maintenance and close off many of the issues. As usual, the community will decide in it’s own way what to do here. Whatever the route taken, any action will lead to an improvement of the status quo.

SOA Tools Press Cuttings

I got the chance to talk to a number of interested tech journalists and analysts during EclipseWorld and sure enough, the STP got some nice mentions in the tech press:

It’s great to get this kind of coverage at this stage. Hopefully it will generate more interest for those developers who might want to use the SOA Tools Platform in the future. By the way, if you are one of those developers, we would really like to hear from you: if you check out our Call for SOA Scenarios page you will see some of the feedback we have received on typical SOA development scenarios. You can edit this page once you create a wiki account and add those items that are important to your SOA development requirements. Update:
A clarification - the SOA Tools Platform has not limited itself to Web Services only, but intends to include the tooling elements to support construction of other mechanisms of service creation - for example, a CORBA interface and its servant implementation. If you look into the SCA Assembly specification, you’ll see that the assembly description has extension points for implementation/interface/bindings, so the space is there to be innovative about service creation. As we grow the STP, you’ll see approaches for deploying Services that aren’t related to WSDL or WS-* standards.

EclipseWorld 2006 - SOA Tools

soatools.png I’m in Logan Airport, on my way back to Dublin after a hectic few days in Cambridge at the EclipseWorld 2006 conference. I went over there with a job to do: as the the PMC Lead for the SOA Tools Platform (STP) project, I had a talk to give, updating the attendees with the status of the project. I think it went over pretty well - our presentation (pdf link) was chock-full of details of the STP sub-projects and included a number of demos of the code contributions.
After the presentation we had some great questions and I’ll be frank and say for some of them I didn’t have really good answers - especially on how the SOA tools project is going to enable and support security aspects of many runtimes and services programming models. I got lucky though when a guy from the Australian Bureau of Statistics volunteered to help us out with putting together our vision around security. Wayne, I thank you most sincerely and look forward to working with you. I’ve subscribed you to the stp-dev mailing list too :-)