Apr 22 2008

NServiceBus Tutorial

Tag: Open Source,SOASymon Rottem @ 10:28 pm

Staying on the SOA theme, there was a post today on the NServiceBus mailing list from Mohamed Ahmed Meligy about the NServiceBus Tutorial he’s put together.

Mohammed is working for a company that’s been evaluating NServiceBus for an internal project and they’ve been kind enough to share the document with the rest of the community using a Creative Commons license.

The document will probably be evolving rapidly, but right now it’s an excellent starting point for anyone who’s trying to get their head around using NServiceBus as their messaging middleware, so go and take a look to get you off and running.

Apr 16 2008

The SOA Question

Tag: SOASymon Rottem @ 8:37 pm

For quite some time now I’ve been dabbling away at the edges of SOA trying to properly wrap my head around it so I can become a comfortable practitioner, but there’s a lot of guff out there from vendors which has been distracting.

I’ve been keeping up with Udi’s blog for a while now, where he often has good information about the SOA world which in turn led me to tinkering with NServiceBus.

More recently, however, I started reading Bill Pool’s Creative Abrasion blog.  He’s been talking about what SOA is, and what it isn’t and how to spot the difference, to cite a few recent examples.  These have proven an interesting read and I recommend Bill’s blog if you want to get your head around the concepts of SOA and how they work in your world.

Apr 08 2008

MonoRail ‘Getting Started’ Docs Refactored

Tag: CastleSymon Rottem @ 10:22 pm

Well, that’s that done for now. *dusting hands*

I’ve been working my way through the Getting started chapter of the MonoRail documentation and have refactored a lot of the content, fixed the links so they land where they’re supposed to and added a few extra explanations. The current version can be viewed online here:


Thanks to a patch from Louis DeJardin (who provided the Windows Workflow Foundation facility in Castle) there are now navigation links at the top of the page to allow you to choose chunked, single or CHM versions of the content.

There appear to be a lot of problems with the DocBook syntax highlighter – it’s very fragile and not nearly as flexible as I’d like. I think I’m going to have to take a hack at the xslthl package and see if I can figure it out. Or if anyone else out there feels like it… :)

I’d love comments, suggestions or patches for anything that’s not clear or incorrect so feel free to dive on in.

Apr 07 2008

More Distributed Revision Control

Tag: UncategorizedSymon Rottem @ 9:40 pm

Following up on my last post about distributed revision control systems it seems that the buzz is all around town now…am I just late to the party?  I just saw the Ken Egozi has started trying to get off the ground with Git.

I’ve been doing a bit more research to understand what the phenomenon is all about and I think this comment (which I’ve trimmed slightly for brevity) left on Coding Horror by Vincent at Genezys (blog in French) explains some of the reasoning nicely:

…I agree with you about distributed source control that it is not easy to see the difference with centralized source control…this if often a misunderstanding of what a source control system is. I think all programmers will agree with me that source control system allows:

– to work on a common source code ;
– to keep an history of the changes ;
– to back up your work.

The order I choose is intentionnal, this is the way people understand source control. First I can share with others, then I save history, and then I feel safe because my code base lives in a secured server.

With distributed source control, the goal is primarily to keep an history of the changes. Sharing the code is secondary. Backing it up is not even a feature.

That is why it is so confusing to switch to distributed source control. With distributed source control, history is the main thing. They considered this feature so important that they allow you to browse your history while being offline. You can share with others later.

There is some advantage to that. First, this is much harder to break the build. You don’t have to push untested code or quick and dirty fix “just to save them” because you can save the history locally, do all the testing another day, and finally merge the whole history back with others.

Merge are easier too. With SubVersion, when a conflict occurs, you MUST resolve it before commiting your changes. But you may not understand the conflict and you really really don’t have time to fix that right now. Because distributed source control keeps a whole repository locally, merging is not mandatory when a conflict occurs. You can keep the two versions and choose to resolve the conflict later. Or even ask the programmer that introduced the conflict to fix it.

Personally I’m still a little hesitant to migrate anything I’m working on to a new revision control system at this stage; Subversion is working very nicely for me at the moment, and I’m not sure how mature the GUI tools are for working with these systems…and I do love my full coverage GUI tools. Excuse me while I go and make an offering to the Tortoise gods…

Regardless of my reservations on my own projects, I can certainly see the value for a larger, more distributed projects such as the Castle stack, NHibernate (which are not using DRCS at moment) or Ubuntu (which is) where the development team is distributed and the code base takes some real work to grok. It would be really nice to be able to work on the code for something complex and be able to check in while experimenting so a roll back would be possible if the wrong path was followed – and this is not easy with Subversion if the repository is remote and even more so if you don’t have write access.

If anyone has any broad coverage GUI tools to recommend for use with the current crop of DRCS-es I’d love to hear about them.

On a side note, I did stumble across a project that uses Subversion into a DRCS called SVK which was interesting. I don’t know how it stacks up against the others, but interesting nonetheless.

Apr 06 2008

Distributed Revision Control

Tag: UncategorizedSymon Rottem @ 4:23 pm

In general, there appears to be a lot of noise about source control on the web at the moment; Ayende has been writing about the SvnBridge for TFS he’s been working and Jeff Atwood from Coding Horror posted today about setting up a Subversion server under Windows. Within hours Scott Cowan (who I had the pleasure of meeting at the London ALT.NET conference) explains on his blog how easy it is to set up a local SVN installation on your own machine. Source control is the flavor of the week.

It’s funny how some ideas seem to gain traction and then hit a tipping point so that suddenly, something you’ve never heard about before comes at you from several disparate sources in a short space of time.

Until Friday I’d never even heard of distributed revision control.

Initially one of my colleagues mentioned it and since then I’ve seen a reference to Bazaar in the Ubuntu developer documentation (which is the revision control system they use) and Jeff’s post also referred to distributed revision control.

All of this prompted me to start doing some research – I’m just starting to dig in, but there appear to be several implementations out there at the moment that support distributed revision control such as:

There’s even a write up comparing some of these systems by demod on his blog.

I’m not entirely sure where I stand on DRCS at this stage as I haven’t yet had a chance to play with one. I’d be interested to hear about people’s experience with different systems.