June 2006 Archives

One Space or Two?


I’ve just learnt something today from our resident tech-writer that I feel needs sharing. Apparently it is “old” to put two spaces after a full-stop (or “period” for you American’s out there).  See the following articles for evidence:-

When I learnt to type it was with a typewriter.  I was 5 and I used a lot of Tipex.  As readers of my blog will see – I’m not particularly gifted in the spelling / grammar / correct use of the apostrophe department. I quickly moved into the world of word-processors when we upgraded from the Vic-20 to my Commodore PLUS 4 and I never looked back. I found that if I typed up my homework assignments for school, not only was it quicker than hand-writing them (especially when doing multiple drafts), but I frequently got higher grades because the amazing presentation of those new-fangled dot-matrix printers would impress the teachers.

Today I earn my living by typing (all be it typing out code, with infrequent and badly spelt comments). I type over 8 hours a day, 5 days a week for money – not including all the typing I do for pleasure. From here on in, I’m going to try to stop doing a double space after the full-stop but it will take me some time to reverse over 25–years of conditioning.

The question that is really worrying me is what other typing faux-pas have I been committing for the past 25 years?  Actually, I’m also a little worried that I seem to have an obsession with office equipment.  I used to play with a type-writer as a child and I still enjoy browsing through stationary catalogues.  That’s not normal is it.

Java on Ubuntu

Teamprise currently requires a Java JRE with DES encryption available in the JVM for the magic of NTLM authentication to work correctly.  Unfortunately, the GCJ that ships by default with Ubuntu and other Debian based distributions does not have one.  The easiest way around this is to install a JRE from one of the other vendors (such as Sun, IBM or BEA) – all of which are free (as in beer).

Since Sun has recently modified it’s licensing agreement for Java it has recently become a lot easier to install a the Sun JRE onto your Debian based installation.  Today I happened to stumble upon the excellent documentation in the Ubuntu wiki detailing how to install the Sun JRE and make it your default:-


The command I never knew existed until now was:-

sudo update-alternatives --config java

That saved me a lot of time hacking around manually (I never can get the parameters to create a symlink the correct way round first time…)

By default, the maximum attachment size for attachments to work items in Team Foundation Server is 4Mb.  It is handy that this feature exists because people may accidentally attach massive files when they should really be attaching something a little smaller.  However – for some people 4Mb is just not enough and they want more (or even less).

To do this, you can use one of the WIT Web services that isn’t exposed via the object model.  The easiest way is to log on to the Team Foundation Server as an administrator and then fire up the following in Internet Explorer:-


In the “maxSize” box, enter the required size in bytes.  The maximum size for MaxSize is 2Gb, but you probably want to keep it smaller than that unless you really need people attaching VPC images to your work items :-)   Note that this setting is applied server wide (across all Team projects).  See MSDN Help for more information (and thanks to Mohammad Iqubal for posting a link to the help in the MSDN Forums).

MSDN Webcast Follow-up

Thanks to the folks that dropped by the webcast early today.  Hopefully it was ok – I found it very weird talking to the sheep in the field outside my house while all you folks were “out there”.  Anyway, here are some links that I promised to people during the Q&A Session.  I’ll post a link to the session recording as soon as I have it.

  • Team System Forums – The place to ask questions of people much cleverer than me (including many of the VSTS team).  I also hang around on here and it the best place to ask a team system related question and get it answered.
  • Force comment on Check-in – Sadly this is not one of the policies that are shipped in the box with TFS, but you can add it yourself.  See this blog post I did on the topic for some links and sample code (James Manning’s blog is worth subscribing to if this topic interests you).
  • Seeing who has what checked out etc – The pending changes view is great for seeing what you are up to, but when you are trying to see what other members of the team are up to it is a little more difficult.  If you are going to be doing anything like this with your version control repository I’m afraid you need to get familiar with the command line tool “tf.exe”.  The documentation for this is super and is available here.  It is also worth looking at the Version Control Sidekicks from Attrice software which are very helpful GUI tools to do some of these common tasks. 
  • Team Build and CI – This is not a feature “in the box”, but has to be one of the most common requests I have heard.  You can put together a piece of software that does this for you (see this example from Buck Hodges).  You can also use CruiseControl.NET with the VSTS Source Control Block.  Additionally – here is an MSDN White Paper on the topic.

I have a couple more questions that I am figuring out the answers to – results will be posted here soon so stay tuned.  If you think I’ve forgotten your question then leave it as a comment and I’ll make sure I do answer you.




Later today I’m presenting a webcast for Microsoft EMEA on Team Foundation Server Version Control. The registration process to sign up for it was a little complicated but apparently I’m allowed to give people the direct URL to log into the live meeting account as a participant.

If you are available for an hour at 3pm in the UK & Ireland (4pm CET or 9am CST), then feel free to drop in - don't worry if you are a bit late joining, the beginning covers an overview of VSTS and the basics of source control.  

To view the webcast live:-

1. Visit the following URL: https://www.livemeeting.com/cc/emea/join?id=EDC2206&role=attend&pw=K%7B%29%25wg6

2. The Join Meeting page appears. In the following fields, verify or enter this information:

  • Your Name: (enter your first and last name)
  • Meeting ID: EDC2206
  • Meeting Key (if required): K{)%wg6

3. Click Submit.

Hope fully you'll be more or less straight in. Check back with this blog post after the event where I'll point to any follow up information that may come out of the talk along with the slide deck, associated links and eventually details of where the recording of the web.

Don’t forget to check out the official page, and sign up for any of the other sessions coming up that are of interest.

As announced yesterday by Brian Harry and also by  Michal Malecki in the TFS Version Control Forum, version 1.1 of Team Foundation Msscci Provider is now available for download here.

It incorporates the following changes:-

  • Work items can be reviewed and edited from inside the Checkin Dialog
  • Checkin locks are treated as exclusive
  • Enhanced "Open from SCC"/"Add to SCC" process - both local and server path are specified in the single dialog. Also if the local path is already mapped, the process is done automatically.Support for Enterprise Architect 6.1 and PowerBuilder 10.5
  • Fixed order of parameters passed into external diff tools (it's the same as in VS2005 now)
  • Setup is working in x64 architecture
And, the feature most commonly talked about whenever I talk to people about TFS, "Get latest" on Checkout.  Yes, they’ve added this in as an option that is disabled by default. 

As I mentioned back in February, this is the same way that we are trying it with Teamprise – it’s not totally guaranteed because it is just a client side hack – it performs a Get Latest and then instantly notifies the server of a “pending edit” in a separate transaction.  It is possible that somebody could check a file in during the few milliseconds between the “get” and the “pend edit” (especially if you are getting a large file over a slow network) – but having this as an option (disabled by default) should help the users who are used to the way VSS works.  We actually opted to leave this feature out in the end from Teamprise 1.0 because we were trying to encourage the TFS way of thinking – however I might have to add it back in now for V2 :-)

If you are using the current version of the MSSCCI provider then I would encourage you to upgrade.  I’m very impressed at the level of effort going into the development of the provider.  While this is still an “unsupported tool”, Brian mentions that he is investigating trying to change this and actually get it officially supported.  Personally, I don’t have any problems with the current state of support with the MSSCCI plugin as I feel that TFS via an unsupported MSSCCI provider is a much safer bet than VSS via MSSCCI provider – but I know that a reliance on unsupported tools is preventing many organisations from beginning their migration to TFS.

TechEd 2006 Review

I’d planned on giving a blow by blow account of TechEd 2006, but it was so amazingly busy I just never got time.  I sat down at my laptop on Wednesday night and then woke up an hour later at the keyboard – so I figured I needed to sleep.  During the day, the Teamprise booth was unbelievably busy.  To all those folks that dropped by the booth to say “Hi” – thanks very much.  It was so nice to meet everyone and also nice to show off what we have been working so hard on.  I spend most of my time working out of my office in the UK so it was fantastic to be among so many bright people.  

This show, rather than having to educate people about Team Foundation Server most folks coming up to the booth already had a TFS instance up and running and were wanting to extend the usage of it across their enterprise.  I managed to catch a few sessions including an overview of the absolutely fantastic features in the “Data Dude” SKU. 

The best part of the conference was finally meeting face to face with all the people I’ve corresponded with of TFS related issues over the past year and also meeting up with old friends.  I can’t express how invigorating the whole week was and how excited I am about the next year.

Best swag of the week for me was the WinFX team who were giving away little flashlights with the WinFX logo.  The logo is now defunct as it will soon be .NET 3.0 – I guess they were trying to get rid of them so I picked up a couple.

Teamprise2In a few hours, I’ll be getting on a flight to TechEd 2006 in Boston.  If you are coming along then make sure to stop by the Teamprise booth and get a preview of Teamprise 2.0.  As it is just about to get it’s public unveiling I can finally talk about what has been keeping us so busy for the past couple of months.  Things are coming along so well, I just had to share some of the cool stuff we’ve been working on.  Take a look at the screen-shot or watch a quick run-through I recorded while I was practising for the show and let us know what you think.  The demo shows the key features of the plug-in in just over 5 minutes.  It is pretty big (about 15Mb) so you’ll have to be patient while it loads.

As you’ll be able to see we’ve been busy adding features since 1.0 shipped.  We are making sure everything the developer needs to work with Team Foundation Server is inside the Eclipse plug-in.  We now have work item editing support along with access to the Team Explorer view (including the Windows Sharepoint Services document libraries and access to Reports).  I’m just incredibly impressed with the Work Item Editor work that Ben has been leading the development on.  It is just soo good that I frequently forget which IDE I am in – Visual Studio 2005 or Eclipse and I have to double check to make sure.

Most of the source control features are already working very well in Teamprise 1.0 – however 2.0 gives you Shelve and Un-Shelve directly from inside Eclipse.  Version 2.0 will also have branch, merge and label support along with many other features, performance improvements and improved connectivity.  It’s not just the graphical clients that have been getting functionality added – there are some cool new features available from the command line including work item capabilities that are just super cool.

As you can tell, I’m quite excited about going to TechEd and showing everyone the cool new things we’ve been working on.  It is a nervous sort of excitement as this will be the first public outing for the new functionality but I really want to hear what everyone thinks.  It’ll also be nice to put faces to some of the people I’ve been talking with and folks who’s blogs I have been reading over the past year or so.  If you happen to read my blog and are at the show then do please drop by and say “Hi”.

In a couple of weeks I’ll be presenting a MSDN webcast on Team Foundation Server Source Control  For those of you that have attended one of the talks I did around Ireland it is probably nothing new, but if you missed the talk then now is your opportunity to join in the fun from the comfort of your own computer. I’ll only briefly touch on Teamprise related material – most of the talk is regarding general concepts in TFS and also some little gotchas if you are coming from other source control systems such as VSS or Subversion.

There are a series of webcasts on the way.  Even if you have no interest in TFS there is probably something that will interest you here.  Personally, I’ll be listening in to Rob Burkes presentation on WPF as I just caught the end of his talk at the INDC and it seemed like a fantastic session – also helps that the presenter to so passionate about the technology in question.  If you have the chance then you can catch Rob’s session in person at the Galway ITAG next Monday (June 12th).

Anyway – here are the details for my talk if you are interested.  The presentation will be recorded and will be made available after the event from the Microsoft site.

Source Control with Team Foundation Server - June 22nd, 4:00pm - 5:30pm CET

Session description:
In this session, Martin explains version control using Microsoft Visual Studio Team Foundation Server, how this differs from other source control systems such as VSS, CVS or Subversion and how to get the best out of it in your day to day development.
He also talks about how to adopt Microsoft Visual Studio Team Foundation Server to manage all the source code of your company including Visual Studio 2003, Visual Basic 6 or Java projects. Register Here

Apologies for being quiet on the blogging front lately, we’ve been busy getting ready for TechEd in Boston next week.  I’ll soon be able to share some exciting news so stay tuned.  One of the areas I have been playing with in my spare time recently is with CodePlex – the new developer community site from Microsoft that uses Team Foundation Server for Version Control and Work Item Tracking.  I noticed that the Turtle project had a work item to configure CruiseControl.NET to talk to their project tree so I thought I’d quickly describe how to do it here in case anyone else is interested.

First things first, you’ll need to install CruiseControl.NET 1.0 on your build server, the TFS Client and also the TFS Source Control Block from VSTSPlugins.  (To be honest, you don’t actually need to install the TFS Client, you could just copy the appropriate assemblies into the CruiseControl server directory).

Then, you have to configure the source control block (along with your tasks and publishers) in your ccnet.config file.  Below is an example:-

    <project name="CodeplexExample">
        <sourcecontrol type="vstsautoGetSource="trueapplyLabel="false">

                <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
            <!-- Insert publishers here -->

Remember to substitute “USERNAME” and “PASSWORD” for your appropriate values.  Note that your username should be suffixed with _cp.  In the example above, I’m using the MSBuild Task – more information on that is available here.

Anyway, it all seems to work perfectly.  All this has reminded me that I want to fix / improve a few things with the CruiseControl.NET plugin – better add that to my todo list – but hopefully it should be good to get people started.

Update:  As I’m currently sat in a Hotel room I figured I should just make those changes.  They appeared to be easier than I thought and worked first time – but I’ve probably introduced a few new bugs.  Anyway, feel free to download the latest version and let me know how you get on.


Creative Commons License
This blog is licensed under a Creative Commons License.