# Sunday, February 03, 2008
Prestbury
Prestbury, uploaded to Flickr by James Snape.

Canon 400D, Canon EF 24-105mm f/4 L lens - 1/125 second, f/8, ISO 200

This is the second shot from Prestbury and one that has a lot of memory for me as I grew up in this village. This is one of those views you remember but has changed subtly from childhood - the 20 zone signs, the roundabout and road markings, the shops on the left and right are selling different stuff.

I'd love to find a photo from 30 years ago because I suspect the only constant, apart from the buildings themselves, is that the Legh Arms is still a pub.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Sunday, February 03, 2008 4:34:30 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Tuesday, January 29, 2008
Village Stores
Village Stores, uploaded to Flickr by James Snape.

Canon 400D, Canon EF 24-105mm f/4 L lens - 1/60 second, f/8, ISO 200

This is one of a series based taken last April in Prestbury. Again I've reprocessed the image but this time to more of an ideal than how it actually was. You can see the difference between this and the original.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Tuesday, January 29, 2008 9:15:45 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Sunday, January 27, 2008
Sunset Over Egypt
Sunset Over Egypt, uploaded to Flickr by James Snape.

Canon 400D, Canon EF-S 10-22mm f/3.5-f/4.5 USM lens - 1/80 second, f/9, ISO 100

The second of two reprocessed shots taken in Egypt this year. The reprocessing really was just to bring it back to how it was in reality.

This was at the other end of the day with the sun disappearing over the mountains behind Sharm-el-Sheikh airport. As the sun dropped out of sight you get these rays of light in the clouds due to the difference in angle.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Sunday, January 27, 2008 1:06:13 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Saturday, January 26, 2008
Red Sea Sunrise
Red Sea Sunrise, uploaded to Flickr by James Snape.

Canon Digital Ixus 500, 1/400 second, f/2.8

This photo was hastily snapped just before we dived on Jackson Reef. It's about 5am in the morning; the early start was so we could see the sharks that are around this early.

This is one of a collection I've re-processed with Photoshop.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Saturday, January 26, 2008 3:55:42 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Friday, January 18, 2008

I dug a bit deeper on the unanswered questions and with some help from the sales team...

What is the availability of TFS for Volume License Customers?

This month, sometime. The full MSDN versions are already available so check your VL web site for keys regularly.

What TFS licenses are required for the sync tools e.g. TFS Migration and Sync Toolkit?

The answer to this one is "it depends"... The main point to be aware of is what users are doing. I am not a licensing expert and if in doubt you should probably speak to one but as I understand things, Microsoft changed the licensing model a little in TFS 2008 so that we allow an unlimited number of users in your company to create any work item, query for work items they have created and view or update any work item they have created all without a CAL.

So if those users are only using the external systems for the same purpose then they don't need a CAL. If, however, they are querying, viewing or updating any (i.e. other people's) work items in the remote system (that are synchronised to TFS) then a CAL is needed for every user doing these activities.

So in terms of a scenario... You have a dev team working with TFS but they send their product to a QA department who use Mercury Test Director. The contents of the Test Director database are synchronised with TFS. The QA department has lots of people working in it but they boil down into two types of user:

  • The first type are testing the product and entering bugs. They also look at the status of their bugs and when the status changes to fixed they retest and close the bug.
  • The second type also test the product and raise bugs but they also need to see bugs raised by other testers (e.g. they are in a lead role).

In this scenario, the first set of users do not require a CAL but the second do. It's quite easy for someone in the first category to fall into the second though e.g. if anyone in the first set is to be assigned a bug to close that they did not create then they also need a CAL.

There is also another kind of license, an external connector which may seem to be perfect in this scenario but it it not valid to allow people within your own organisation access to TFS.

What is the support situation for TFS running on VMware?

I can't find any definitive information on this but with other products  it's always been "best effort" support. What that means is that whilst PSS will try to help solve an issue on VMware they can't guarantee they'll get anywhere and may ask you to reproduce the issue without VMware in the picture. Also, the normal escalation paths and QFE process doesn't apply so it's very probable that any bug you might find that only occurs under VMware will not get fixed.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, January 18, 2008 7:58:48 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Thursday, January 17, 2008

I spent quite a bit of time answering some customer questions on TFS today so it would be a shame not to share the answers.

What options are the for migrating from Subversion to TFS?

Currently there is a proposed feature for the TFS Migration and Sync Toolkit but no work has taken place on it - you can vote on the feature to increase its priority.

Alternatively, I found a couple of 3rd party tools from ComponentSoftware and Kyrosoft that claim to do the job at but I don't personally know anyone who has used them successfully.

What is the availability of TFS for Volume License Customers?

I'm still trying to find an answer to this one although I see it is possible to install the trial version and at a later date just re-apply your VL key without having to reinstall. See Brian Harry's blog for more details.

What TFS licenses are required for the sync tools e.g. TFS Migration and Sync Toolkit?

I'm still looking for an answer on this one.

What is the support situation for TFS running on VMWare?

I'm still looking for an answer on this one.

Can you create sub-folders in the team query areas of the Team Explorer?

Currently not possible. The two closest options are to either prepend a common string to query names to ensure they sort together or copy them to your favourites folder and organise them there.

How can you define different check-in policies depending on which folder path you are checking into?

This functionality isn't available out of the box but the TFS Power Tools have a "Custom Path Policy" which works with existing Team Foundation Server check-in policies. It provides a mechanism that lets you specify the source control path or paths upon which a particular policy acts. This initiates a scenario where you can enforce a different sets of rules for different source control folders. For example, one folder can have more stringent code analysis policy rules applied than another folder.

How do you configure an e-mail to be automatically sent on policy override?

You have a couple of routes for this but they all end up doing the same thing - subscribing to a TFS event. One of my colleagues wrote a piece on this a while ago. You can read it at Darren's blog.

Alternatively others have already gone to the trouble of coding it up. The first tool is probably the best (and more powerful), the second just a simple tool for managers ;-)

Can builds be restricted to security groups?

Yes,  the permissions you need to look at are:

  • Administer a build (allows users to create new build types)
  • Check-in (allows the user to check-in the build scripts)
  • Start a build (allows the user to run a build)

There is a more complete description at IT Architect.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Thursday, January 17, 2008 6:13:48 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Friday, November 02, 2007

I've been having a quick look at Google's Open Social... They really need to get better documentation so I'm not exactly sure about the fine detail. There are a few bits on developing widgets but nothing at all on hosting them which is a big chunk to be missing in my opinion. Maybe they are holding off publishing to stop a proliferation of social sites popping up and competing with their "launch partners"?

Some other random thoughts:

  • You need to implement your widgets as Google gadgets
  • All the samples are based on Orkut so it's not clear if a Google account is required - if it is then that's bad
  • There doesn't seem to be any sort of download available, probably as the JavaScript is hosted by the Google gadget system

They have been quite clever calling it "Open" Social instead of "Google" Social but it still sounds like a lock-in to the Google gadget system.

The API is really about building widgets to host in existing social web sites - in all not that exciting. What I would prefer to see is a system that allows me to access my social data from anywhere in applications I write - e.g. my blog, Outlook and my phone...

[Edit: having read around a little, Dare Obasanjo says much the same thing but slightly more coherently.]

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, November 02, 2007 5:27:27 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Monday, October 08, 2007

Claire and I are just back from a week in the Red Sea scuba diving. We had a fantastic time diving wrecks such as the Thistlegorm and the multitude of reefs around Sharm el-Sheikh. We even had a close encounter with a school of hammerhead sharks. I completed my PADI Advanced Diver qualification.

The full set of photos are on Flickr as usual but I also managed to take a little underwater footage below. Not the most exciting piece of video ever but it's a start.



Video: Red Sea Scuba

[Edit: Google Reader won't allow soapbox embeds so I've added a link to the video.]

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, October 08, 2007 4:53:22 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Thursday, August 02, 2007

I have 6 invites to Pownce too. If you want one then leave your e-mail attached to a comment and I'll forward one on.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Thursday, August 02, 2007 9:21:54 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Wednesday, August 01, 2007

TechReady 5 It's been a few weeks since my last post and I've been busy with customers and Outlook add-ins. Last week, however, I was at Microsoft's internal conference. It's like a TechEd proving ground where presenters get to try out their talks on an internal audience. There is some amazing stuff coming down the line in Windows Server, Visual Studio and SQL Server. I'm really pleased about the data warehousing enhancements across the SQL Server product line.

Way back in 2004 I went to TechEd and blogged a series of articles about new features that would arrive in SQL Server 2005. I plan to do a similar series for SQL Server 2008 but since a lot of stuff we saw last week is still internal I'll only blog about bits in publicly released CTP's.

duck Finally, the Popfly mashup site is now allowing invitations so the first five people to leave a comment telling me what you plan to do with your mashup gets an invite. You need to leave me your e-mail address as well.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Wednesday, August 01, 2007 1:33:24 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Wednesday, July 18, 2007

I’ve recently done some research into .NET WinForms testing on behalf of a customer and there are several different levels which we can attack this. Each is of different complexity and cost.

Simulate Mouse Clicks and Keyboard Presses

This method has been around since Windows 3.1 days and involves heavy use of SendKeys and SendMessage to manipulate Window message queue to send mouse and keyboard events directly. An old but pretty good sample is at http://msdn.microsoft.com/msdnmag/issues/02/03/Bugslayer/.

Drive Forms Controls Directly

The next simplest method is to get hold of Windows forms controls directly so you can call methods and set properties using code. This method usually involves running the target forms within your own process. The following two MSDN magazine articles describe the steps:

The second one looks at how to cancel message boxes etc by sending messages directly to the window. Both articles describe the method but they are not very user friendly and you will have to write a fair amount of code. Fortunately there is a library available that hooks into the NUnit testing framework at http://nunitforms.sourceforge.net/. Still lots of code but you get to write higher level stuff such as:

ButtonTester button = new ButtonTester("nameOfSomeButton");
button.Click();
Assert.Equals(“Clicked!”,  button.Text);

The only problem I can see with this is maybe development has stopped as the last full release was in November 2004 with a few alphas up until May 2006. Still you can grab the source and start hacking away if there are any problems.

Using Active Accessibility 2.0

This API has been around for a few years and is a standard way of controlling all Windows controls. The trouble is though that it’s a COM API and somewhat complex to master. I’ve seen anecdotes on the Internet talking about the test code being more complex than the application code when using this. For completeness the API is documented at http://msdn2.microsoft.com/en-us/library/ms697707.aspx though the following section has a more modern way of doing this. A walkthrough is available showing how to make a .NET application accessible at http://msdn2.microsoft.com/en-us/library/cb35a5fw(vs.80).aspx.

Using UI Automation

UI Automation is the successor to Active Accessibility and, unlike Active Accessibility, was specifically designed with automation in mind. It’s described in more detail at http://msdn2.microsoft.com/en-us/library/aa348551.aspx with a complete walkthrough and sample code at http://msdn.microsoft.com/msdnmag/issues/07/03/Bugslayer/default.aspx. One thing to note though – the UI Automation bits are only available on computers with .NET 3.0 installed – i.e. Vista, Windows XP and Windows Server 2003.

There is also a very useful library available to help with the code at http://www.codeplex.com/uapp.

Third Party Tools

This wouldn’t be complete without a nod to some of the commercial offerings out there. I haven’t used any since Rational Test many years ago which was next to useless but I hear reasonably good things about Mercury QuickTest Professional though I have no idea how much it costs. There is even a virtual lab available on Automating Testing of Windows Forms Application with TestComplete and Visual Studio 2005 Team System.

Conclusions

To summarize, I would recommend trying NUnitForms and UI Automation to see how you get on with both of them and making a choice between the two. QuickTest Professional will probably be too costly and the other two technologies are a lot of work and too old to consider for all your testing – they may have tactical uses though.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Wednesday, July 18, 2007 7:52:52 AM (GMT Daylight Time, UTC+01:00)  #    Comments [1] Trackback
# Sunday, July 08, 2007
Monowall
Monowall, uploaded to Flickr by James Snape.

Canon 400D, Canon 24-105 f/4L IS lens - 1/60 second, f/4, ISO 100

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Sunday, July 08, 2007 3:27:19 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback