TFS and offline mode

Ah the joy of using TFS. Don't get me wrong, the server looks like a well architected and well thought source server. No, my real problem is the client.

First, I hate Visual Studio trying to manage my source control. I hated it when SourceSafe was around, hated it with SourceGear Vault, and was very happy no real solution existed to get some manager to decide it was a good idea when I was using Perforce, cvs or svn.

Second, why in the name of god should I check-out a file to work on it? It has no rationale whatsoever. My colleagues ask me to check-in files I've checked-out, but what for? People end up being anal about a check-out that has no value whatsoever. I believe I should be in control with no pressure from anyone to check-in my file after I merge it with whatever changes have been made since the last time I got the last version. And I also believe it's my responsibility and my responsibility alone to ensure I merge my code. Don't take away my freedom!

Third, how could they forget most developers don't have access to their source server all the time? Maybe it's an independent developer thing, but in the evening I like modifying code here and there... And I can't! Because each modify end up in visual studio asking me to check-out the file... Argh!

Not all is lost though. It would seem that some people at Microsoft thought of us when they released the Team Foundation PowerToys. Once you've installed it and added it to your path, you can do the lovely, and oh so sweet:

C:\mysrc> tfpt online

And off you go. This little gem will compare all your files and let you know which ones are different from the server, letting you queue the changes for the next time you reconnect to the server. Of course the attrib -r is your responsibility, but it's a small price to pay.

Also very useful for people that wants to know which files they've actually modified when they check-out a whole solution or project before going home, the uu command works the same way as the Cancel check-out for unmodified files (or similar name) that the perforce client has. Sweet.

Now when will we be able to remove this check-out absurdity all together and go back to the more natural modify - get latest - merge - commit ? Oh and a powershell version of the tool would be fabulous...


Building a Vista Development machine

As I said yesterday, once most of the driver issues are resolved, it's time to install everything else. Gigs of it. So here's a list. I'll update as I remember all the stuff I've not needed yet.

[Update: After a whole day of installation, the machine is still not ready. I'll add some more of my tools tonight. Ah if only there was one way to click with a nice checkbox on the software you want to get installed on a machine and let it do its job on its own. A bit like a package manager...]


MacBook Pro Core2 Duo 17in just arrived!

Ah the pleasure of receiving new hardware.

First and foremost, what a fantastic packaging. You can already feel this geeky chic pleasure just from the box. Everything fits in nicely, no bulky documentation, no stupid 4mx3m posters explaining how to press the power key. Pure pleasure.

The form factor is fabulous. Most of my co-workers looked at it, commenting on the form factor, the sleekness, the weight... Some looked at it like a strange animal they've never seen before.

And yet it's one of the best performing Intel laptop you can find on the market. The equivalent Dell XPS came to a bit more than £100 more (that said, factor out the cost of a bit higher resolution screen and a windowsXP license... But factor in the webcam, the FireWire...)

So the bootcamp software installed like a breeze, followed by a reboot. My advice, kill the partition that was created and create a fresh one (remember, it's partition 3). You do gain back that 100 megs that were left over by bootcamp partitioning.

Next step is to install the drivers. Do not try to run the installer, it fails miserably, and apple failed to provide an installer that rolls back properly. When they mean windowsXP SP2 they really mean it.

To get your drivers, simply call the .exe on the mac driver from the command line, with the arguments /a /V (notice the capital v). That will expand your drivers in the location you provide. Install all the drivers by going to your Hardware and devices snap-in, but don't try either the video or the keyboard ones [update] or the audio ones...[/update] For the former you simply want to reach ATI's web site and download the latest ATI Mobility X1600.

For your audio drivers, you want the vista version of the Intel drivers available here. 

For the trackpad support, you need to manually install the driver by replacing the HID-compliant mouse from the Devices MMC snap-in. This should give you right click and scroll support.

The iSight driver didn't work on the first installation for me so i had to reinstall it, and it's now perfect.

Bluetooth is a bit more complicated. Follow these instructions.

For the keyboard, Apple missed the boat completely. Not only do they not remap all the keys, but they manage to confuse the trema (¨) and the double quote ("). Unacceptable. But then again, the keyboard driver author must've not been a developer.

Instead of relying on apple, go over to Damiens' weblog and download the macBook Pro keymaps. The link to Input remapper is also very useful so highly recommended.

And if you need it, bookmark the link. I didn't and just spent a two whole hours to find this link again, just to bring it to this blog!

Next, tomorrow, a list of all the nice pieces of software I'll install on my machine over the day to turn it into a nice killer dev box!