Open Source

Enforce Web API version compatibility with Sinatra filters

Versioning in APIs is vital if you want to control the lifecycle, rather than it controlling you. If you are using Sinatra to do routing for your Web API, then you can easily stuff all the version compatibility testing into one place - a filter - and not have to propagate it through all your routes. Follow the gist to see the code.

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

Xcake - Web Services with Sinatra and Heroku

On Feb 8, I gave a talk at the local Xcake monthly meetup at the Science Gallery in Dublin. These meetings are predominantly loaded with mobile developers, with a worthy smattering of other creative professionals. The talk was on Web services, and how easy it can be to lash something together to test your mobile application development. Many of the mobile dev shops interact with client data through a web service, and making your own local copy with test data can give you a speed advantage in getting your (client's) app to market. The talk uses Ruby, Sinatra and Heroku as the core tech behind a RESTafarian style of service, with persistence and a public deployment.

The good news is that neither the bucket of tar nor the sack of feathers was required by the audience, there was a distinct lack of torches/pitchforks, et cetera. As a result I've posted the slides on Slideshare. They are mostly composed of screengrabs and codedumps, so make sure you view the presenter notes, in which I have expanded on the sparsely populated slides themselves. You can get the sample code on GitHub. I'll buy beers for anyone who implements simple database authentication and sends me a successful pull request :)

Note: I've spotted some rendering weirdness with Chrome - if you can't see the slides, try another browser, or hit the download button.

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!

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="{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://"/> <property key="" 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!

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.

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.
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


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


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!
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.
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.

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


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.


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.


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!


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


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.


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?


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.


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.


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).


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.


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.


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.


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).


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.


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


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 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.


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.

Sic transit gloria mundi

Dear Diary,

Got laid off today, sausages for tea.

Even when you’re an old hand, there’s a first time for everything. Myself, and plenty others more talented than I, fell under the unexpected cash-cushioned hammer of a lay-off today. This marks the first time I’ve not had a regular income since 1985, which is a bit of a thrill. Also it may have been while you, dearest reader, weren’t on solids yet. (Hopefully I’m being read by people younger than me. If you don’t wear glasses, that counts. Or I’m claiming it at least.)

What’s keeping me bouyant, in the non-physical sense, is the fact that I’ve spent the last few years contributing and being a part of open-source communities. The wheel is still turning and the hamster is not yet dead – while my employers may change, I can still write the code I want to write, further the projects I favour to be furthered, and continue to do the things I enjoy doing. This is the beauty, for any developer, to be in open source. You get, for free, an option on continuity that is new and unique, a possibility of satisfaction that your contributions to the global corpus of software is not going to rot in a hopelessly un-administered clearcase repository in the bowels of a corporation. I’m going to spend some time now working through some karmic burdens which have been drifting up against the for-pay-wall, and I’m going to enjoy it.

By the way, I’ll see you all at EclipseCon. If you don’t put speaker names to your talks right now, as soon as I write this, your ass will be slung out of the program. We will make an effigy of you, and either burn it in situ or send it to be consumed by hollowed-out meaty integuments of the NetBeans engineers. You don’t even get the choice.

Oh, and by the by, if you haven’t already discerned, I will attempt to ensure that the removal of the restraining bolt will result in a bit more than a choppy video of some lady in a dress :)

For shorter spoutings, follow @oisin on twitter.

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.

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.

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...

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!

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

WSDL Revisited

Waay back in May last year, I wrote a little blog entry taking WSDL and associated tools to task. You can imagine my delight when my esteemed colleague Guillaume Nodet sent me a link to a Google Code project called Relax-WS.

The author states

WSDL is a key technology for SOA, and yet creating and editing these files is about as much fun as straightening all the noodles in a bowl of spaghetti with a pair of tweezers.

and goes on to promise

Relax-WS aims to provide a simple, programmer-friendly syntax, without losing any of the metadata

all good, right and true, in my opinion. I would go even further on the last quote there and say that Relax-WS should aim to provide the simple, programmer-friendly syntax, but should also lose any metadata that is not necessary and add metadata where it is missing from WSDL.

One comment I have on the Relax-WS approach is a reaction to the sample code that is on the front page

service Hello {
  port {
    operation SayHello {
      in {
        element name {xsd:string}
      out {
        element message {xsd:string}

What's wrong with this, you might ask? It's clear and concise. Indeed it is, say I, and there is nothing at all wrong here, but the bit that makes me somewhat uncomfortable is the use of the service term there. Once you start to mention services, you are looking at a crossover from definition of schema and operation to a service provider definition, which necessarily leads on to having concrete pseudo-physical resource details in the Relax-WS file. What's a pseudo-physical resource? It's an artifact that has a constraints on a machine - so things like ports, databases, file systems, etc fall under this category. If you nail down your pseudo-physical resources at development time, then you are in for a reduced amount of fun when it comes to deployment. Ideally, you bind all those pp-resource details at the last minute (delay your decisions -- a lean maxim), so when you are developing you should set up the capability to discover those details at start up time from a fixed place, rather than baking them in.

A good example would be coding a Spring application for the ServiceMix 4 kernel, burning in the configuration into the bundle, and then binding it to a little properties file that contains the pp-resource specifics for the particular [virtual] machine upon which it is to be hosted.

Anyway - fair play to the author of Relax-WS for taking this on. I'm sure there will be take-up of the project.

Eclipse Provisioning Platform

At the Eclipse Summit 2007, Jeff McAffer gave a presentation [link to slides not available yet] on what has been happening with Equinox. I missed the talk itself, but later on I had lunch with him, Naci Dai of WebTools and Jerry Preissler of Swordfish and we talked about the Eclipse Provisioning Project, aka p2

p2 is a framework which is all about configuring things and putting them somewhere. That's as generic as I can make the definition :) In the example on the website, p2 is being used to move bundles around. The SoaTools, Swordfish and WebTools projects already do this kind of thing, and we have a set of deployment frameworks which allow us to configure and deliver things (WAR files for example) to different places (server runtimes for example). That's why we are interested, especially since there are visible moves in the direction of OSGi based runtimes for hosting Services .

I'm just at the point where I need to drill into the information on the web. As per usual, I'm confused about how p2 and Buckminster appear to do exactly the same thing. And I want to see how p2 matches up with the SoaTools SOAS component. If we could do something around extending p2 (if appropriate) then we could reduce the STP workload a bit. I guess that WTP and Swordfish are thinking the same thing.

I feel a workshop coming on here :)

A tangential point: as far as I know, and I am open to correction here, the p2 project was brought into the Eclipse ecosystem as an effort to replace the aging Update Manager mechanisms. Certainly over the course of the last couple of years, many interesting behaviours of the UM have come to light, but it might have been a good idea to fix those in conjunction with starting a new development effort. As per usual, if you have patches, feel free to open a bugzilla :)

Another tangential point: there is a project proposal called Riena which will also be interested in the p2 capabilities. I don't yet understand what Riena is trying to do - all I know is that it is about 'smart clients', the committers are mostly tall, and that they all wear the same teeshirts. When I find out more I'll let you know. In the meantime visit the top-level page on wiki for p2 for details.

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.

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.

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.

TSS Java Symposium Barcelona


I got a chance to attend, and speak</a;, at The ServerSide Java Symposium in Barcelona at the end of June. The talk I gave was about how Enterprise Software can be delivered using Open Source as the basis for satisfying some of the most common Enterprise Software requirements. I wasn’t talking about business logic here – I was talking about the nonbiosphere that surrounds a piece of Enterprise software, including process automation support, addressing chargeback in a transparent manner, managing middleware heterogeneity. I also guaranteed the listeners that I wouldn’t use any buzzwords :)

You can download the slides and notes and check it out. From the top of the room, I observed the reaction: a healthy mix of boredom, horror, torpor, confusion, outrage, interest, catatonia and crackberry tapping. After the talk, I did get some compliments and interesting questions. No pitchforks and torches, so that was good.

On the subject of pitchforks and torches, I was lucky enough to be invited to sit on a SOA Industry Leaders Panel with Martin Fowler and Gregor Hohpe. It was an interesting thing to site between those two guys, whose books and articles I’ve avidly consumed in the past. Mainly I worried about looking like a total idiot. According to Jay at DeCare Systems, I did ok - if you read that entry, you’ll see the torches reference I made earlier.The whole thing was filmed, so perhaps we will get to see it online sometime. The panel moderator, the inimitable Ted Neward, gets my vote for best panel mod evah, coaxing some excellent tough questions from what turned out to be a good audience. It was with a mental sigh of relief from me that Gregor got in first on the inevitable What is a Service, anyway?.

Update - check out Ade’s experiences at TSSJS

At the TSS Java Symposium Europe

This week I'm attending the TSS Java Symposium, which is taking place in Barcelona. I have a talk to give on using OSS in enterprise environements (will link to slides later), plus I've been asked to sit on a panel with Martin Fowler and Gregor Hohpe on SOA. It will be unusual to talk to these guys, having studied their work :)

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.

Welcome to 2007

What a start to a new year - finding ones phyzz adorning the front page of The Server Side! Steve and myself did a piece before the holiday where we spoke about the company we work for and some of our favourite topics. link

Now I know what the phrase you have a great face for radio really means.

Celtix Enterprise

IONA, the company I work for, has just released an Open Source bundle called Celtix Enterprise. It's a collection of Open Source elements geared towards helping you create your distributed SOA infrastructure -- we've integrated and tested these.

So where's the return? IONA is doing the for-pay training, consultancy and support for this product. Check it out and let me know what you think.


Release the Hounds!

Or, in this case, the incubating projects. Apache Yoko incubator has published an M1 release. Yoko (no, I don't know why it's called that) is a fast Java CORBA server which can be used in Open Source JVM and JEE implementations. Hot on it's heels, it looks like the Apache CXF (yes, I know why it is called that - don't ask) is gearing up to an imminent 2.0-M1 release. CXF should be very interesting to people who are doing JAX-WS service development - I have been using it myself in another project and it has worked very well.

Back in the SOA Tools Platform project we're adding UI support for JAX-WS service development and we are testing against CXF to make sure that we are generating the correct classes and dealing with the JAX-WS and other annotations in the right way.

WSDL to *

It's expected that once you have an interface language, like WSDL or CORBA IDL, that you will have a suite of tools that allows you to generate stubs, skeletons, starting code, tests and so forth from the basic interface description in the implementation language of your choice. This is a very important productivity element for any developer, as having to code up server skeletons by hand is just an outrageously dull task.

When I was putting together CORBA systems, I used a tool called idlgen which saved huge amounts of time by generating complete test suites with randomized data, and allowed you to produce stubs, skeletons and mainline code in a jiffy. In my current work, I'm using EMF to represent a suite of models, from which I generate implementation code.

But there's one thing that's starting to bug me about some code generation tools, and here I'm talking about one particular tool that is almost always called wsdl2java, and that is there are so many of them. Everyone! Stop writing new wsdl2java tools and just write a wsdl2star tool instead! Take wsdl4j or Woden as your model and write some backend processing that allows people to develop Velocity templates, or write JavaScript/E4X code to generate the necessary. Wrap all of this up in a single Open Source project and kick-off a community of Open Source script/template developers so that other projects can contribute their code generation incantations (there's your regression test suite too, by the way).

Is there someone doing this already? Let me know if you find them!

Mixed Experiences with OSS

Ok, this is the last entry on the Gartner OSS Summit, I promise. And, rather a regurgitation of the keynotes, etc, it’s my own impressions. It was surprising to me to see how many of the attendees were au fait with Open Source software being used in their organizations. It was even more surprising to see how many of those who were purposefully using Open Source actually changed the source to meet their needs – unfortunately I couldn’t get any information on how many of the changers submitted patches. Conversing with individuals that stopped by the IONA booth showed a vast continuum of experience with OSS. For example, one visitor, employed by an enormous and well-known bank, spends his time working in a group that performs risk assessments on OSS and approves it for use in the IT infrastructure. Other visitors from budget-free government organizations were keen to make progress on projects using the lack of license fee as the carrot to lure their patrons. Some others were a little frightened by the whole thing, but of course, felt reassured by Gartner :-) A brief aside - earlier on this year I attended a talk at Engineers Ireland on the merits, and de-merits of Open Source. The protagonists were IBM and Microsoft. I went hoping for a least a minor bunfight, if not a celebrity deathmatch smackdown. Alas, this was not to be as each side of the affair merely introduced Open Source from the perspective of their business models, which are discrete and different. However, one developer person that was there came out with a most excellent question that I will have to paraphrase:

But doesn’t that mean that a developer that does Open Source is debasing their skills and going to put themselves out of job?
It was very nearly a cola-out-the-nose incident. Unfortunately I didn’t get to catch up with the individual after the event to elicit more from him and then attempt to explain why he was barking up the wrong tree. The overall message here is that while awareness of OSS is heading towards an acceptable level in the ‘industry’ (that’s the Silicon Valley definition of the word, not the Hollywood one), there’s still a lot of education to do at the level of the usual corporate decision-maker. Enterprising and visionary individuals continue to market OSS, but having an organization like Gartner, who really are at the top of opinion-maker peak for the traditional big-company IT development teams, pushing OSS as a good thing for business is a very powerful boost.

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.

Gartner OSS Summit Roundup - Tapscott Keynote

The opening keynote of the conference was given by Don Tapscott, co-author of the well-known Paradigm Shift and author of many other interesting treatises. In his presentation, he explored and explained what he termed the Participation Age, in which those of us who are privileged enough to have access to globe-spanning communications tools can join together as independent actors in a powerful peer production effort, free of hierarchies and centralized control. He articulated the business benefits of exposing corporate information to take advantage of a peer production effort - the striking example was that of goldcorp, who revealed geosurvey data on a large area of land and offered prizes for those who could pick the strongest locations for gold. They spent $500000 on prizes, and in return were presented with locations that later product $3.5 billion worth of the metal. He spoke of other ‘open source’ efforts - such as SpikeSource for applications, the MIT Open Courseware project and school- and text-book efforts at GlobalText and Wikibooks. He talked about new approaches to traditional business, such as the development of prosumers that consume your goods, but also in turn produce material (extensions to goods, etc) for you. Overall, it was a good enough keynote for the occasion, giving a broad overview of situations in many businesses where ‘open source’ has been of clear advantage and linking the individual successes with an overall trend. No explanation for the trend itself – but I suspect that it could be related to the co-option of the commons by corporate interests, viz. the purposing of the web and internet to the creation of new commons.

The Other Third

I’ve just arrived in Phoenix for the Gartner Open Source Summit and to get a chance to see how the other third lives - I’ve spoken to OSS developers at ApacheCon, OSS users and extenders at EclipseWorld and now I’m going to get a chance to talk to Directors of IT Planning, Directors on Information Services, Lead Technical Architects and suchlike. This, I should add, is the same Gartner from which an SVP went on record last year saying that open source could have a damaging impact on software innovation. We’ll see if the opinion has changed - from my own perspective, it would appear that the total opposite is true. Also, this is my first time in Arizona. It’s 100°F (a change from 59°F in Dublin) and I’m delighted to see that the skies do indeed have lots of little fluffy clouds.