Sunday, December 21, 2008

SCMRSS reaches Alpha 1 release

SCMRSS is a simple web application that turns Source Control events into an RSS feed. Written in Ruby using the Ramaze web framework. Once configured the web server polls the source control repository for changes and when found delivers those changes as a simple RSS feed.

This is the first alpha release so I would welcome any and all feedback either here or as issues at RubyForge

Saturday, December 20, 2008

Remote Pair Programming setup


For a few years now I have been looking for a solution that allows two or more people to share an editing session who are not sat side by side.


Each OS has its own preferred way of sharing a desctop/workspace for collaborative working. Some work cross platform (e.g. VNC) and some work via the internet (e.g. GoToMyPC). But for much of my daily work I want a nice fast way of sharing the code that I am working on with a collegue. One or both of us are likely to be behind firewalls, proxies and all sort of important security that makes collaborative remote working so very very hard.


On my current project we are using Eclipse as our development IDE, a local IRC server for ad-hoc team communication and point to point instant messaging. Backed up by Skype for person to person video and occasionaly more traditional email and phone for that personal touch.



All in all this is working fiine and I have to admit I had forgotten how useful IRC is in comparison to IM when it comes to team working. Just having everyone aware of the conversations that are taking place can be a real boon.


I had some spare time last evening and decided to see if I could track down a viable solution to the remote pair programming. Confining my requirements to either complete desktop sharing or Eclipse based paring helped quite a bit because the other added complication is that we have a mixed OS development team including Windows, Linux and Mac OS X. The number of OSs is likely to settle down to just two but at the moment we have quite a mixed bag - which is actually quite refreshing.


So back to the remote pairing issue. I quickly realised that sharing the editing session is likely to be sufficient to our needs and that other tools could provide text, voice and video quite effectively and did not need to be replaced.


My first efforts involved the Eclipse Communication Framework (ECF). I had played about with much earlier versions and concluded that it was a little fussy and difficult to work with for my tastes but decided to give it a go. Working behind a proxy with limited ports meant setting up and running a local server.


I can see a lot of promise in the ECF but it just feels far to heavy weight. I might have made some errors but I could not get it to work, connecting to the server seemed ok (although there were a lot of stack backtraces on startup - now I really cant understand why people still dump these things to the console with the idea that users - even developer users will have a hope of understanding what went wrong. With 3 pages of small text flying past it is just too easy to spot the line that tells you what when wrong. So after an unhappy hour or two trying to get two instances of Eclipse to open a shared editing setting I gave up and went back to searching for alternative.


After a little bit more searching I cam up with XPairtise and open source project that seemed to do exactly what I now wanted - share an editing session. Unusually for an open source project the documentation is pretty good although it was early in the morning and I almost missed that there are two downloads; one for the eclipse plugin and the other for the server.


The setup which I eventually came up with involved the XParitise server and Eclipse running natively on my Mac and a Ubuntu VM mimicing a remote pair. The server is nice and quiet just reporting that it is up and running - a refreshing change. After setting up accounts through the Eclipse preferences pane (a little quirky on the UI the first time around) but it was heart warming to receive the 'account created' message.


Getting the shared editing session to work took some time. First when creating a shared workspace all the files from the project are shipped up to the server. When joining the shared workspace again the project files are brought down so take heed of the backup dialog or work in a different Eclipse workspace for shared working.


It took at least 2 Eclipse restarts to get the shared editing to work and there is a note on the XPairtise site about using the eclipse -clean option to refresh all the plug-ins


But after this initial setup headache I have a configuration that will allow remote pair programming.


Result!!


Update: I have just rerun the setup within a distributed team (2 locations) and after a bit of a lag in synchronising the project contents everything worked fine with 3 concurrent users (Driver, Navigator and Spectator).



Sunday, October 5, 2008

Setting Windows Shell Font

I keep loosing track of this little tidbit

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 00 /d Consolas

logoff

The full article can be found here http://blogs.msdn.com/ie/archive/2008/04/22/give-your-eyes-a-treat.aspx

Saturday, October 4, 2008

Timewarp

About a month ago I was asked to look at an application that has been
under active development and support for quite some time. Written in C
and C++ (my old stomping grounds for 20 years) I was really looking
forward to getting stuck into the code.

What I was not expecting was the lack of tool support. I sort of knew
that refatoring tools, tests and code coverage would be a bit of a
challenge but I did not think that it would be the challenge that it
turned out to be.

I have gotten used to being able to download tools, try them out and
if appropriate buy them and add them to my toolbox. Ideally there
would be an open source tool I could use instead to get the job
done. Moving back into the C++ world also took me back in time to an
era where evaluation downloads are not available. Instead I would have
to register my interest and someone would be in touch to talk to me
about the wonders of their application and to perhaps run the
application over my source code. Well first I tend to get about a bit
and at the time I was out of my home country and well away from the
tool vendors timezone. I was up against the clock in putting together
some initial findings and recommendations, and lastly it was not my
source code so I could not offer it up to someone else to go poking
around in anyway.

Strike one - keep on searching for someone with a little less of a
protectionist attitude.

Unfortunately this seemed to become a theme. Other suppliers had no
evaluations and insisted on money up front and land shipping. In a way
they may have been doing me a favour, if the software is so complex
that it needs to be demonstrated and the licencing enforcement so
strong that it becomes difficult to use (I have been hit before by
node locked liceses to machines that decide to die) then maybe this
approach has just saved me a lot of heart ache and pain.

On the plus side there are tools out in 'open source' land that can
help and there *are* a few companies that have moved with the times
and provide a more open licensing scheme. When I have time I will list
out the toolkit that I came up with.

Thursday, September 25, 2008

Too many VMs

As part of my work life I regularly need to run windows development software on my Mac. Typically for a client engagement. This is a really convenient setup. I can take a snapshot before I start work on something new and then at the end roll back to the original state ready to work on the next project.

One of the downsides I have encountered recently is the need to keep all these machines up to date with patches and other software updates that seem to be part of everyday life.

Don't get me wrong I think its great that we have this steady stream of updates to make things better but when you start multiplying this up for the VMs I have on my machine the effort to keep them up to date starts to be become a bit of a pain.

I think it is time to start rationalising to a smaller number - just so I can keep them up to date.

Monday, August 4, 2008

Quietly Does it









I have had my eye on a pair of Bose headphones for some time but never managed to justify the cost. And to be honest I am not sure that I ever will. Except that they are truly fabulous and on my first tip with them on a plane left me feeling relaxed and comfortable. The noise onboard a plane seem to raise my tension levels but removing that noise really helped me enjoy the flight.

I was told when I bought them that the batteries were fully charged and would each last 10 hours. I can only testify to 8 on one battery with almost continuous use.

I will confess that I have tried a number of different headphones, both in and out of ear, with and without noise cancelling but nothing comes close to the peace that these phones bring with them.
So maybe I have justified them :)

Toronto - Sunday








DSC00146.JPG


Today is my first day in Toronto, preparing for Agile 2008. After a surprisingly smooth and peaceful crossing from the UK, and an even smoother journey to downtown Toronto I find myself preparing some slides for my short experience report 'TeamPace - Keeping the build times down' on Thursday.


I am staying at the Hilton just across the street from the conference at the Sheraton Centre for an early morning start.