Recently in Software Category

Virtualized Aero Goodness


Windows 7 with Aero running in Mac OS X 10.6

On Tuesday, VMware announced the latest in their product lines, VMware Fusion 3 and Workstation 7.  While I have been a fan of VMware Fusion on the Mac for a while – this latest version is fantastic.  As well as Snow Leopard fixes, there are lots of improvements in how “Mac-ish” the product feels. Best of all Aero is now fully supported inside a virtual machine.

I’m currently writing this post from my MacBook Pro running Snow Leopard running Windows 7 as a VM.  I have to say that running Windows 7 inside the virtual machine is actually a much better experience than I’ve been having running Windows 7 as the BootCamp partition lately.  This is largely due to driver issues, but also the muscle memory for my fingers when typing on my MacBook is to use Cmd+C and Cmd+V all the time when copy/pasting – and I forget to press Ctrl instead.  Luckily VMware keesp an eye out for this and just do the right thing.

All in all, it is a very good experience that I’d recommend to anyone that has to run multiple operating systems. Windows 7 works well in a VM where Vista used to struggle a little.  It also allows for my favorite Teamprise demo.  I set up the session so that I’m driving it from my MacBook Pro with VMware running full screen using Spaces to have it set to the right hand of the two spaces that I run.  I start the demo in Windows and then half way through use Ctrl+Left to instantly move to Mac OS and carry on the Teamprise demo from the completely different OS.  Really wakes people up after I’ve done my best to put them to sleep for 15 minutes.

Teamprise 3.0 Ships!


At EclipseCon 2008 this morning, we just announced that Teamprise 3.0 has been released!  If you've been wondering why I have been quiet on the blog lately - but also why anything I have been talking about is Team Foundation Build related, then you are about to find out why :-)  First of all, I'd encourage you to go visit the shiny new website at  Our marketing team had too much fun putting that together, including getting a real, live, massive Teamprise power button made up and shipped in a huge crate from New York to be photographed and used as the new site/icon image.

The full release notes are available here, but as has been the tradition for the past few Teamprise releases, I thought I would give you a run down of my favourite new features in the 3.0 release.

At a high level, the features in 3.0 can be summarised as:-

  • Full Team Foundation Build integration (including ability to execute Ant based builds)
  • Check-in policy support
  • Recursive folder compare
  • Single sign-on (from Microsoft Windows machines)
  • "Destroy" command for version control
  • Show deleted items and undelete from Source Control Explorer UI
  • much much more (see release notes)

While it is not my area, I should also mention that we've taken this opportunity to make our licensing more affordable for smaller teams.  We have been very pleasantly surprised by the number of people buying 1 to 20 licenses at a time.  Originally, Teamprise pricing was skewed to the Enterprise customers (i.e. simple, all inclusive and with steep volume discounts).  So we have done a couple of things to help out the smaller companies:-

  • You can now purchase the various components (Teamprise Plug-in for Eclipse, Teamprise Explorer, Teamprise Command Line Client) individually as well as the Teamprise Client Suite which gives you the lot.
  • We have lowered the initial prices for a single seat, meaning that people buying one or two licenses can now get the same discounts that used to only be available to folks purchasing 100.

If you have any licensing issues / queries then feel free to contact me, or you can talk to the sales team direct at  Anyway - back to the part of this release that I do know about - the technology. 

The first feature I want to talk about is one that I had no involvement with.  It's one of those features that many people will not notice because it just works but anyone who has done any Java to .NET web service interop work will instantly recognise as being a little bit clever.

Single Sign-On

New Teamprise Login Dialog

The initial log-in screen has undergone a big overhaul.  On Windows machines you are given the option to use "default credentials", i.e. the username and password that you are logged onto windows with.  It obviously doesn't know your password, but does some JNI magic to get the native Windows API's to handle the authentication logic with Team Foundation Server.  While you are also on the login screen, you may notice the Profile feature.  This is an area that many people probably won't use, but we added for our power users and for ourselves.  Basically, the profiles feature allows you to store sets of servers/credentials that you commonly use to connect to Team Foundation Server and then you can bring up the details using a simple drop down.  Makes it much easier to switch between your production TFS instance and your CodePlex project for example - or switch credentials if you are a TFS administrator.

Check-in Policy Support

In Visual Studio, check-in policies are implemented as a .NET assembly runs every time a policy is evaluated or configured.  The policy also has full access to the .NET API's, the Visual Studio API's as well as anything it might want to pinvoke out to on the Win32 API side.  As you can imagine, this presented us some problems when we wanted to have check-in policies that ran the same in Eclipse on Windows Vista as Teamprise Explorer on the Mac or Aptana on Ubuntu - therefore we have had to develop a parallel Teamprise check-in policy framework.

Teamprise Check-in Policies

As we were doing this, we took the opportunity to learn from some of the feedback folks have been having with the Visual Studio check-in policies.  While our framework and SDK will look very familiar to anyone that has developed a custom check-in policy for Visual Studio, you will notice some differences.

Firstly, we supply different policies out of the box.  The vast majority of custom check-in polices that people deploy are things like "Check for Comments" etc, so we just shipped the common ones our customers wanted to prevent them from having to write their own.

Secondly, we make use of the Eclipse plug-in framework to implement our policies as extension points.  This means that they are easy to deploy (using the Eclipse update site mechanisms built in to the IDE).  We have also separated the configuration (stored as a blob of XML data in our framework) from the implementation - represented by the plug-in deployed.  The again makes it easier to deploy, especially when it comes to version 2 of a policy...

Thirdly, all of our policies can be scoped by the path in version control to which they correspond - you are not limited to per Team Project scoping and you do not have to wrap your policies in a custom policy to get more detailed scoping like you do with the current Visual Studio framework.

Team Foundation Build Integration

Anyone that has been following this blog for a while, or who attended the Team Build talk I did at TechEd with Brian Randell, will notice that I have been increasingly involved in the inner workings of Team Foundation Build.  Now you can see the fruits of that labour.

Teamprise Build Explorer on Widows Vista

In Teamprise we now have full integration with the shiny new build functionality in TFS 2008 as well as support for TFS 2005.  Backwards compatibility with the TFS 2005 server is very similar to if you were using a Visual Studio 2008 client, accept that ours is slightly more backwards compatible (you can create new builds on a TFS 2005 server as well as manage build qualities etc).  However it is with TFS 2008 that you get to see the majority of the features.  I could go on about this aspect all day as their are so small things that I am proud of, but at a high level you can:

  • View existing build definitions
  • Manage builds in Build Explorer
  • Queue new builds
  • View build report
  • Edit Build Quality
  • Delete build
  • Manage Build Qualities
  • Open Drop Folder
  • New/Edit Build Definition
The following features are only available against a TFS2008 server:
  • Edit Retention Policies
  • Keep Build
  • Set Queue Priority
  • Postpone Build
  • Stop/Cancel Build
  • Delete Build Definition

One of the smaller features I will call out is that from the build definition in the Team Explorer, you can right click and do a "View Build Configuration" that will open the Source Control Explorer at the place in which the TFSBuild.proj file is stored so that you can check it out and edit it.  A feature that I added solely for my own sanity during dogfooding :-). 

Build Explorer on Mac OS 10.5 - click for a higher res image All this would be fairly academic, if you didn't have some way to do a cross-platform build using Team Foundation Build.  In the current release, we provide a the Teamprise Extensions for Team Foundation Build which basically Ant enables the Team Foundation build server.  The Teamprise extensions are a set of MSBuild targets that insert the Ant build process into the standard Team Build mechanism as well as a custom MSBuild We hope to extend this to support in the near future to some of the other common build/test tool-chains in the cross-platform world.  However, the Ant integration case will help a lot number of people out there.

Best yet, the Teamprise Extensions for Team Foundation Build are available free of charge for everyone - wether or not you are a Teamprise customer.  Also, if you want to see how they work and customize them to meet your own non-standard build system then the source is available under the permissive open source Microsoft Public License (MS-PL).

I would personally like to thank the Team Foundation Build Team (especially Buck Hodges and Aaron Hallberg) who have been incredibly helpful through the development of the build functionality in Teamprise 3.0 while they were also busy working on TFS 2008. 

Hopefully that gives you a quick flavour of Teamprise 3.0 and where we are going with this release.  If you head over to the new site now and take a look at the many improvements we've made, we'd love to hear what you think.

Radio TFS


radiotfs Paul Hacker, Mickey Gousset and I have recently started a Team System related podcast called Radio TFS.

While it is not going to win any awards any time soon, we've been having a lot of fun so we are going to continue to try and get one or two episodes out a month. If you have 40 or so minutes to kill, then feel free to take a listen and subscribe.

If you have any suggestions for topic or any questions about Team System that you would like answered then please drop us a line at or visit the website at

Microsoft Max


I just discovered Microsoft Max.  While the application still seems to be in the early stages, it has to be the prettiest application I have ever used - just take a look at the semi-transparent splash screen with it's lovely wobbly progress bar. 

The Microsoft Max splash screen on my Windows Royale desktop.

This is currently a photo-organizing/sharing app based on top of the WPF and WCF stuff in the .NET 3.0 release (think Picasa but from Microsoft).  I'm pretty happy to see that my Dell M70 with Nvida Quadro FX Go 1400 graphics card qualifies as a "Tier 2" device for WPF world - hopefully signifying a Vista upgrade will actually give me the fancy look and feel.

As far as the application goes - currently it allows you to automatically share photos with your friends so that they automatically receive new photos inside Microsoft Max.  It also has a decent RSS aggregator.  Apple has something similar in the iLife suite of products for Mac OS X, I think it is iPhoto, don't remember.  Anyway the use case I have in mind is an easy way for my father to get the latest photos of my family growing up automatically on his desktop so that he can print them / burn them to DVD.

However, while Microsoft Max looks incredibly nice, there are some problems with the current architecture as I see it.  The main one is that without the equivalent of a .Mac account, files are transferred directly between my machine and my fathers - meaning both machines have to be on for this to work.  It also has to make it through the multiplicity of NAT's, firewalls etc separating our machines.  I hoping that there is a backing Windows Live online service in the works to help with this, we'll see.  The fact that you have to have a MS Passport to use the software certainly suggests that this may be the case.  The lack of information on the Max web site leads you to think that this is the basis of some sort of social network type application - more indications that in the Web 2.0 world Microsoft are stepping up the pace to justify a specific OS to be an ideal complement to peoples new online lifestyles.

Anyway, this bodes well for applications coming the pipe from Microsoft to make Vista a more consumer friendly OS.  Also it shows what can be done with WPF. 

While WPF has me very excited, I'm also a little scared.  You are going to have to have a modicum of graphical talent to use WPF sensibly or you could very rapidly have a very ugly application.  It's looking like application vendors are going to have to hire some of the creative talents from the games studios to make apps that are visually pleasing. 

One thing is certain, the Windows world is going to have a revolution in UI design over the next 5 years - probably the biggest change in the history of Windows - and anyone not keeping up is soon going to have a very dated looking application.

Syntax Highlighter for Live Writer at CodePlexWell, the benefits of the Live Writer SDK are already coming true for me.  One of my bug-bears with BlogJet was to copy/paste in code samples was pretty tricky.  I ended up evolving a manual process of visiting the excellent CodeHTMLer site to convert into HTML and then pasting the source into BlogJet source view (when pasting Java code I just to tell that CodeHTMLer it was C# and it usually looks great.

I was over at the CodePlex site this morning and noticed that Alexander Concha Abarca has posted a Syntax Highlighting Plug-in for LiveWriter.

Seems to work ok so far, the actual plug-in is very simple as it re-uses a code high-lighting engine from Wilco Bauwer which supports many languages including all the ones I may want to talk about such as C#, Java, XML, Perl, Ruby, Python, PHP, SQL, Visual Basic, ASP.NET and even Fortran (if I wanted to post my highly fascinating university projects).

Skype SMS

| 1 Comment

SkypeI’ve been using the new 2.5 beta version of Skype for a week now and I am loving it.  The main new feature is the support for SMS messaging.  When I am out of the country I use SMS as a primary method of communication to home – however when roaming I am frequently charged about 50 pence per message sent (free to receive).  Using Skype I can now text home for 0.08 € (about 5p – which is actually half the price I pay for my text messages when at home and 10 times cheaper than what I pay while abroad).  According to the Skype blog, the feature set it due to increase but it already works for me.  I text from my computer and receive replies to my cell phone, the recipient has no idea I’m using Skype to send the message apart from the fact that my messages are usually longer as I have access to my full Qwerty keyboard.

All I need now is to get one of those NetGear SPH101 phones and Skype will have 100% WAF.  Until that point, I’ll have to pay for my phone / text messages home.

World Wind

So, how about a desktop application that allows you to zoom in to any part of the world, move around and view in 3D? How about the appliation coming from NASA, which means you have a NASA directory in your Program Files, and a cool NASA icon on your desktop? How about the application in question being Open Source and written in C#?

If like me you think this is really cool, then download World Wind from NASA. The project is in SourceForge if you also would like to help. The software is really cool. Works a treat! Unfortuneately the server seems quite busy and you get lots of errors saying so, however when it is working it is soo worth it. The picture here is of my journey to work, nice... I can virtually fly to work in less than a second...


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