April 2007 Archives

Vista Admin Shell Icon


In Windows Vista, one of the first things I do on a new machine is create an "Admin Shell".  The steps I do are as follows:-

  1. Copy the shortcut of your favorite command prompt (PowerShell or cmd.exe)
  2. Rename the shortcut "Admin Shell" or whatever you want.  I use "Admin Shell" and then eventually the Windows, "Admin" keyboard shortcut works for it when I have use the computer long enough.
  3. Edit the shortcut properties.  (Right click, Properties).  In Shortcut, Advanced... check the "run as administrator" option. Then set the Colors, Screen background to be something that will let you know that this command prompt is running as administrator - I use 51,0,0 as the RGB value to give the shell a nice but slight scary red tinge.

The only thing that was missing was an icon to make this stand out more as my admin shell.  Here is a red version of the PowerShell icon that I just hacked together - enjoy (Right click, save as...)

File attachment: admin_shell.ico (72kb)

Mickey Gousset has posted details of the new Team System training courses from Notion Solutions.  What I think is very excited about this offering is that it is a proper "remote learning" initiative.  It has all the self-paced benefits of computer based training initiatives, but the critical difference is the involvement of Mickey himself as a tutor available over live meeting when you need him.

Not only do you get to learn Team System from one of the best Team System training companies on the planet, you also get to learn it directly from one of the authors of the best Team Foundation Server book and someone who has depth and real-life experience of the product.  That's a cool offering, I hope it works out well.

Always on my way home...

Sigh.  Why do I only experience travel delays when I am coming home and never on the outbound journey?  Last night, my first plane from New York to Belfast suffered a hydraulics failure.  Luckily they had a spare airplane lying around that they then got cleaned up, filled up with gas etc and let us on.  Amazingly after all the messing around in New York I landed only 3 hours late.  Just arrived home to find that my wife has gone out and locked me out the house, so I'm now sat in my garage feeling sorry for myself.

At least I have great WiFi reception out here in the garage - and to think I got mocked for rigging network sockets, UPS and a WAP out here.  Admittedly this wasn't the exact scenario I had in mind at the time I got the networking done, but still.

Team System Chat - This Friday

As you may have seen elsewhere, the VSTS team will be available for you to talk with on Friday.  This is a great opportunity to talk directly with the team, get answers direct from from the folks that know as well as pass along any feedback you might have.  Due to popular demand, there are two sessions scheduled to try and give everyone a chance to talk without having to get up in the middle of the night in their timezone. 

Join the chat on Friday, April 27th, 2007 from 10:00am - 11:00am Pacific Time.
Add to Calendar | Additional Time Zones

Join the chat on Friday, April 27th, 2007 from 4:00pm - 5:00pm Pacific Time.
Add to Calendar | Additional Time Zones

When debugging network issues, I tend to fallback to good old telnet as a way of opening a port to a machine.  Being able to do "telnet myserver 80" to check if a web server is up, listening, resolvable and no firewalls getting in the way helps you figure out where the problem is.

I'm staying in a hotel at the moment, and struggling with hotel WiFi.  While debugging the network problems I realized that the telnet client is not installed by default on Vista.

To install it,  go to Control Panel, Programs, and then "Turn Windows Features on or off" under "Programs and Features".  Scroll down a bit and then Telnet Client is available.

Chicken or Beef (redux)

This is a follow-up to a post I made over a year ago.  I'm popping over to the US for a couple of days this week and I am currently sat in Newark airport with the New York skyline out one window, and Ikea out the other.  Since making that post, I must have been back to the US 7 or 8 times and flown on a few dozen flights with several different carriers.  On the flight over this morning, I finally broke with form and actually went for the beef option.  Crazy times :-)

While failing to get to sleep on the way over, I also listened to the Hitchhikers Guide to the Future series for the first times in a couple of years.  Considering this was broadcast in 2001, it amazing how much of this stuff has appeared as part of the Web 2.0 bubble - and how much of it is still yet to appear.  Anyway, even if you are not a fan of the (much missed) Douglas Adams, I encourage you to take a listen.

Right then, I promise that this is the last post I'll make on such an inane topic.  If I had a cat, I'd include some pictures of it just to get that out of my system.

Those of you lucky enough to have an MSDN subscription can go download Beta 1 very shortly, according to the announcement it is available now (but it isn't showing up in my MSDN subscription yet) - I suspect that the lovely bits on on the way through the MSDN distribution pipe as we speak.

However, while you are waiting you can check out the Channel 9 video of the announcement from Soma.

My poor ADSL pipe - I'm already downloading Ubuntu Linux 7.04 over bittorrent which was also released today.  At least I'll have something to play with over the weekend :-)

With Beta 1 I'm going to be attempting a side by side installation of Orcas Beta 1 with VS 2005 and VS 2003 (and also the many versions of Eclipse I have on my main dev machine which is running Vista).  I'll let you know how I get on.  I will however be cheating and going for the VPC version of Team Foundation Server just to save myself some time setting that up right now.

Update:  The VPC Image with Team Foundation Server installed is now available via the public download site.  Personally, I use a download manager (such as wxDownload) to get these files as they are pretty big.  If you do to, then the following direct download links may well be useful

Pre-caching your TFS Proxy


The Team Foundation Server Version Control Proxy is a wonderful thing - despite the not so catchy name.  It sits between a remote office and your Team Foundation Server Application Tier and caches requests for file downloads from that remote office so that the second person to request that version of that file will get it from the local network and not have to download it over a slow WAN link again.  This is great - helps to make sure that the files cached locally are the files wanted locally and generally makes the proxy self-managing, but the only problem here is that the first person to download that file always takes the hit to download it.

In my office, I'm usually the first person to make that download so I wanted a way of pre-caching data.  There are a few approaches to doing this, most of which would be cleverer than this one - however what follows is a simple way that simply uses the command line client tf.exe to do most of the work for you (meaning in some companies you will be more likely to get this approach past your IT security folks that manage the production server your TFS Proxy server is running on).

1)  On the TFS Version Control Proxy, install the Team Explorer Client.  This will also install the TFS command line client (tf.exe) - that is the bit we need here.

2) Create a directory to act as a temporary dumping ground.  In my case this is d:\tempget

3) In a command shell, cd to d:\tempget and then create a TFS workspace and working folder mappings to the parts of the code that you would like to pre-cache.  Something like the following would do:

C:\tempget> tf workspace /new /server:http://myserver:8080 /login:DOMAIN\myuser,password /noprompt proxycache tf C:\tempget> workfold /server:http://myserver:8080 /login:DOMAIN\myuser,password /workspace:proxycache /map $/MyTeamProject/AreaToGet

If you wanted, you could be more creating with your working folder mappings to give a very fined grained approach to what you want to pre-cache.

4) Write a script to perform call tf.exe and perform a get latest.  The trick here comes in the form of an undocumented environment variable TFSPROXY that I've mentioned previously.  Below is an example of the file I created for this purpose saved as proxysync.cmd

  1 @echo off
  2 setlocal
  3 set TFSPROXY=http://localhost:8081
  4 echo Forcing Pre-cache of files using TFS VC proxy at %TFSPROXY%
  5 cd d:\tempget
  6 "%PROGRAMFILES%\Microsoft Visual Studio 8\Common7\IDE\TF.exe" get
  7 del /F /S /Q d:\tempget\*.*
  8 echo Pre-cache complete.
  9 endlocal

Note that if your sync script will actually be performing several get's then it would make sense to put these into a command file and use the much overlooked "tf @" syntax.

3) Set up a scheduled task to run the script periodically.  I have mine set to run during working hours - there is little point in doing it when no-one will be in the office to take advantage of the pre-cached data.  I actually have the first download of the day to start a little earlier than normal working hours to ensure that the nights changes have all been downloaded before I start work.

There you go.  Very low tech, and no where near as fancy as doing something like subscribing to TFS Check-in events etc - but I was able to get it up and running in less time than it has taken me to write the blog post about it.


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