Loïc Baumann's Blog

Team System and .Net stuffs

English Posts

French Posts

Tags

Locations of visitors to this page

Community

Email Notifications

Archives

A new Team System MVP out there!

Just a quick post to say that I became Team System MVP from today!

I’m really excited about it and I’ll continue hard working for this great community !

Thanks to all the people that helped on Team System from the early years to now: Eric Le Loc’h, Blaise Vignon, Brian Harry and Charles Sterling from Microsoft.

Also thanks to my company Winwise and the following people I met there for their great support : Florent, Mathieu Sz, Daniel, Etienne and David.

Last but not the least : my wife Virginie for her patience, support and understanding!

image

Posted: Jul 01 2009, 04:16 PM by loicbaumann | with no comments
Filed under: ,
Welcome to the Team Lab world!

The beta 1 of Visual Studio 2010 and Team System kicked out few weeks ago. As you may know it’s a major release of the Microsoft’s development tools. Most of the product were already existing in the previous version and was greatly improved (now you want Team Architect, don’t you?).

There’s one new tool: Microsoft Team & Lab Manager, formally known as Camano. I won’t do an overview of it but for those who are interested to setup Team Lab for demo or testing purpose, this post may be useful.

So what you need to get Team Lab installed:

  • A Windows Server 2008 x64 with Hyper-V activated.
  • The server must be a member of an Active Directory domain and should be able to connect to it anytime.
  • System Center Virtual Machine Manager 2008.
  • Team Foundation Server 2010 beta 1.

So the prerequisites are quite significant, if you plan to install it on a single computer, beware that it’s a not an easy task. It can be done, but still, not easy!

Everything on a laptop for roaming demonstrations!

Being a consultant is sometime tough, because you best pal weights 4pds and is not as powerful as you wished.

Still being naive about Team Lab, I decided to get it done on my dear laptop. Well, my best pal is small but sometime the size doesn’t matter: 6 GB of RAM, 120GB Vertex SSD, Core 2 Duo T9400 and a newly acquired 120GB internal HDD instead of the useless DVD Drive. Told you it was my best pal? :D

I guess  you can get it done with a 4GB of RAM, 250GB HDD but it will be very limited and slow.

You said Active Directory?

Before trying Team Lab I had one short experience with SCVMM, I remember the installation wasn’t easy and the product required a good amount of resources. At the time it was an installation on a Desktop computer, always plugged to the network through the LAN adapter.

This time, things are harder, I want to do some demo of Team Lab when I’m out from office, so my laptop is not connected to the AD, and when I first installed SCVMM I quickly realized once I got home that when you start it you get an error message telling you the Active Directory controller can’t be reached (no kidding!?) and just get kicked out of the software!

Great! So like I said at the beginning SCVMM needs the AD each time you use it! So if you want to demoing there’s only one solution: installing an Active Directory Domain service (with a DNS Server, of course) somewhere in your laptop.

Two possibilities here:

  1. Install the AD right away on your Windows 2008 Server.
  2. Install it on a VM hosted by your Windows 2008 Server’s Hyper-V (with your host registered to it – sounds weird).

I chose to go at the first solution, having my host registered to a DC that it hosts is way to weird for me and when I tried it I got some expected issues, so first one, cleaver choice.

Setup DNS and AD

Ok first thing, give up your company’s AD, because it can’t be done otherwise and install a new one on your Windows 2008 Server. The procedure is fairly easy, just find a name (e.g. “demo.local” for me), select the LAN Adapter when configuring the DNS, don’t be afraid about the warning message about your LAN Adapter not having a static IP set (after all it’s just demoing, not prod).

You should end up with something like that in your Server Manager:

image

As you installed the Domain Controller on the Host, the host automatically became a member of the domain.

Installation of System Center Virtual Machine Manager 2008

This one is a tough one, I went through major headaches just to get it done!

You will find plenty information about installation failure on the web (yey, I’m not the only one) my advices are:

  • Don’t scare him, accept all the default settings and ports.
  • Accept the installation of a SQL Server Express (even if you have a top notch SQL Server 2008 Enterprise installed).
  • Most of all, installing on the domain controller will improve your rate of success.

Google if you get an error, specially if you get the “need attention” on the Host that you first add to SCVMM. There’s a bunch of things that may lead to this issue, MSDN forum and blogs will give you some advices and fixes.

Installation of TFS 2010 beta 1

There’s again two paths here: you can install TFS on the host operating system or in a virtual machine. I chosen the second one because the beta 1 won’t support upgrade to beta 2 so I don’t want to waste my host OS.

I’ve create a 1,5 Gig of RAM virtual machine, and installed everything I was told to in that great Team Lab Setup Guide.

One thing the document doesn’t mention is to check in SCVMM 2008 if the Network Location of the Host you added is setup correctly for the network adapter. Ok, a few screenshot may be clearer.

In the “Host” section of SCVMM 2008, display the properties of your host:

image

In the “Network Adapters” section, select the one used for the communication with your TFS 2010 and check in “Network Location” that your domain is listed (in my case “demo.local). If it’s not the case, just check the “Override discovered” box and type your domain in the edit box above.

image

The location you provide must match the one you give in the Team Foundation Administration console, in the “Lab Management” section:

image 

You should be fine to play with Team Lab!

Finally, don’t forget to check the VSTS Lab Management team blog, it’s a great source of information!

My eSata port doesn’t work! Another noob issue solved…

I was very excited today because I got my new eSata external drive with a Vertex 120 GB, so I plugged it and…. nothing happened!

No way I could put the Vertex in USB: the performances drop big time. So I gotta find a way to solve this issue.

If you can’t get your eSata drive working correctly on your laptop, this post is for you my friend!

First thing, it took me a little time to realize I had my laptop configured in IDE mode instead of AHCI and that could be a reason why my eSata wasn’t working at all. After a bit of wandering through the web it got confirmed.

So I went to the BIOS and switched the disk controller mode to AHCI, reboot and…. BOOOM! Blue Screen!
The problem got solved when I found the KB 922976. Basically when you install your Windows in IDE the AHCI drivers are deactivated, so when you switch to AHCI you got the blue screen because it can’t handle the Sata device. A simple registry edit solves the problem.

Ok, now my Windows is booting, so I can plug my eSata device again and….yey it works !!!

First thing first, I bench the eSata Vertex and the result was…. good but not very good… :(
I’m telling you, the path to achieve true performance is not easy. I noticed during the benching that there was some stalls, so I went to the hypotheses that the driver wasn’t that good.

It turned out that I had the standard (Microsoft) AHCI drivers installed (I reinstalled my OS a lot these past months, a miss can happen). So I went to get the Intel Matrix storage driver for my Dell E6400, install them and two reboots and a bench later….

YEY!

Here is a little comparison between my SATA Vertex (2 months old, shaken a lot) and the brand new never used Vertex in eSata:

Sata eSata
image image

Of course the newest one should perform better than the oldest one, but even in eSata, man that is great!

Now there's a reason to be excited!

Posted: Jun 18 2009, 05:30 PM by loicbaumann | with no comments
Filed under:
How to know the remaining life of your Vertex SSD

MLC SSD have a limited life time, the vertex announced a MTBF (Mean Time Before Failure) of 1.5 million of hours. This number is only based on a statistic of “how many gig of data you’re writing everyday”.

So if you really want to know the percentage of the remaining life you can do it if you have the firmware 1.30 or newer.

Again, this procedure is taken from a post of the OCZ forum.

Download the free tool CrystalDiskInfo, install it and run:

image The values surrounded by the blue square are meaning what they are supposed to.

The value squared in green means something different:
D0 = Erase Count Average.

The value squared in red also means something different:
D1 = Remaining drive life in % by Erase count.

So if you want to know how much is “left in the tank” of your SSD, just look to the D1 value.

As you can see, mine was already used pretty much! :)
Posted: Jun 18 2009, 09:25 AM by loicbaumann | with no comments
Filed under: , ,
How to quickly flash your Vertex SSD from USB

You can flash your Vertex’s firmware only from the DOS (under Windows or WinPE won’t work).

Here is the fastest way to create a bootable USB Key containing the DOS version of Windows 98.

The procedure was stolen form this OCZ forum post.

Get this file from the OCZ forum, unpack it and execute “RunThis.exe”, the following dialog form appears:

image

Select the USB key you want to use to create the bootable DOS.
Check “Quick Format”.
Check “Create a DOS startup disk” and select the folder “Bootfiles” in the zip you just unpacked.

Click “Start” and in few second the work is done.

Now you can copy the firmware you want to flash in you USB key and all you have to do is reboot, boot on the key and you’re done!

You can find more about the latest 1.3 firmware here.
Posted: Jun 18 2009, 08:04 AM by loicbaumann | with no comments
Filed under: , ,
OCZ released the 1.3 Firmware of the Vertex

The official post in the OCZ can be found here.

Links to the Firmware for the different size of SSD:

30 Gig
60 Gig

120 Gig
250 Gig

You can safely flash your SSD from the DOS and it won't erase your existing data! You can flash from the version 1275 or newer.

The change log for this version is:

Version 1.3
Release Date: June 03, 2009

Bug fixes

• Host program lost drives if NAND BIST is run on multiple drives.
• Read Fail handling
• ATA Security Command didn’t work as expected.
• Race condition occurred during soft reset handler
• ATA Security Command didn’t work in AHCI mode.
• If read fail occurs during reading stamp information, firmware corrupted block 0.
• Power off recovery had bug in certain circumstances
• If host sends invalid SMART subcommands, Abort was not sent to host.
• SMART attribute data was not initialized properly for certain fields.
• Improper handling of ATA command when sent with 0 sector count

Feature Addition

• Remaining life expectancy calculation is implemented. 

Posted: Jun 18 2009, 07:40 AM by loicbaumann | with no comments
Filed under: , ,
When a network newbie plays with Hyper-V

I use Hyper-V since a while now, but somehow I always managed to get the network part working without doing anything special, until I met System Center Virtual Machine Manager (SCVMM)…

When I was creating VMs and connecting them with an Internal or External Virtual Network, everything was working fine.

The Network Adapter created on the VM had the default settings:

image image

 

So me being a total newbie when I saw the result of the ipconfig /all I thought that Hyper-V, in someway, was emulating a DHCP for the Virtual Machines it hosts. One might agree with me, after all we’re getting an IP, right ?

Well, wrong! If you look closer at the IP you’ll see it starts with “169.254” and that my friend is not a standard DHCP allocated IP.

IP addresses starting with 169.254 are special, you can find more info here, but basically it’s standard supported by Windows that allocates a “special” IP when the network adapter should get one from a DHCP but the DHCP wasn’t found.

So it leads us to:

Hyper-V’s Virtual Networks are not magic, they won’t allocate IP for the Virtual Machines they host if you let the default settings on the VM’s network adapter. You have to either specify a static IP or setup a DHCP somewhere and reference it from your network adapter.

After some thinking I realized that it was supposed to be this way, it’s way more realistic for production purpose. But my experience being mostly about prototyping, I had first a different point of view.

One last thing: you don’t have DHCP, but there’s still an IP allocated so you get the “NETBIOS over TCP/IP” working fine, so can do “Windows stuffs” like RDP, File Sharing, Windows Network discovery. But when you have to fully rely on TCP/IP and use DNS (installing SCVMM for instance :D) it won’t work at all…

Poor me developer having to discover the cruel world of networking… :(

Posted: Jun 05 2009, 05:06 PM by loicbaumann | with no comments
Filed under: ,
Roaming with Hyper-V: solving network issues

I installed Windows 2008 Server x64 with Hyper-V since a while on my laptop. Hyper-V was a great way for me to build up prototypes of several servers in a V-LAN and once you tasted the multiple Snapshot feature, it’s hard to live without it.

Now it’s clear that Windows 2008 Server wasn’t meant to be used on a laptop and you have to sacrifice some features or be tricky to get what you want.

One of the things that bothered me the most was finding a way to get my VM having internet access either when I’m plugged to the internet through WIFI (home) or Ethernet (work).

These two cases can be separately solved:

- With WIFI you will use a Internal Virtual Network for your VMs and enable Internet Connection Sharing (ICS) from the WIFI adapter, pointing to the Internal Virtual Network.

- With Ethernet, create an External Virtual Network and you’re done.

Now I don’t want to constantly switched from the two Virtual Networks depending on if I’m using WIFI or Ethernet, it’s taking time and your VMs are not always happy about the changes…

The solution will look familiar to people that used Virtual PC for complex things: using the Microsoft Loopback Adapter!

Here are the steps to perform

Add the Loopback adapter

Go to the Control Panel, then “Add Hardware”

image

Click next to get to the screen when you choose to install the hardware manually:

image

In the next screen select the “Network adapters” category, click “Next”.

In the “Manufacturer” list select “Microsoft”, then select the “Microsoft Loopback adapter”:

image

Click next twice and you will get your Loopback adapter installed in few seconds.

Creating the Hyper-V Virtual Network

Now go to the Hyper-V console and right click on you Hyper-V host and select “Virtual Network Manager”:

image

 

 

 

Follow the standard procedure to create an External Virtual Network using you newly created Loopback adapter:

image 

I called mine “LoopBackLan”.

Setting up the Virtual Network

The next thing you will have to do is setting up the TCP/IP configuration for the newly created connection. If you’re unfamiliar with Hyper-V, you have to know that creating a Virtual Network will have for result to create a new Network Connection. You will see it from the Control Panel’s “Network Connections” item.

image

The connection squared in red is the logical Loopback adapter you add in the first step.
The one squared in green is what was created by Hyper-V.

You don’t want to touch the configuration of the red one.

Now you have to configure the green one:

image image

You have to manually setup the IP and it has to be 192.168.0.1, it’s a restriction of ICS (we’ll see that just after).

You’re ready to set this this External Virtual Network to your Virtual Machines!

Enabling internet access through ICS

To get internet access, just enable ICS on the adapter that is active, for instance if you’re plugged to the LAN, go to the “Network Connections” panel,  select your LAN adapter and display its properties, select the “Sharing” tab and configure as followed:

image 

The “Home networking connection” has to be your Hyper-V External Virtual Network (remember, the green one).

Now if you want to switch to WIFI, just disabled the ICS from the LAN and repeat the action on the WIFI adapter and you will be fine!

Posted: Jun 05 2009, 07:36 AM by loicbaumann | with no comments
Filed under: ,
What you need to know to use the Process Template API

Developing an application using the Team Foundation Server Process Template feature is not an easy task, mainly because of the lack of documentation and sample around it.

As I had to deal with it when writing the WITSynchronizer I guess I can share some experience out there.

Using the IProcessTemplates interface

Let's start by the beginning, you have your Team Foundation Server object and want to get the IProcessTemplates interface.
The GetService() method can do that for you:

                 // Get the Process Template interface
                 IProcessTemplates ptp = (IProcessTemplates)tfs.GetService(typeof(IProcessTemplates));

 The MSDN documentation about this interface is pretty much the list of its members, so let's describe a bit more what you can do with them.

int AddTemplate(string name, string description, string metadata, string state)

This method is used to add a new Process Template in your TFS, it's only the declaration of the new Process Template, the content will have to be upload with another method.

  • name: the name of your Process Template (the one you see in the combo box when creating a new Team Project)
  • description: the description of your Process Template (the one you see in the description field when creating a new Team Project)
  • metadata: the "OuterXML" of the metadata XML element in the ProcessTemplate.xml file of your Template. You can't pull this off manually, you have to take what's come out of the Process Template editor.
  • state: I don't know all the possible values, but the "visible" one is the one you want to get your Template correctly.

 void AddUpdateTemplate(string name, string description, string metadata, string state, string zipFileName)

This method is used apparently to add a new Process Template (and uploading its content) or updating an existing one.

The first four parameters are the same as the AddTemplate() method.

  • zipFileName: the full path and filename of the zipped version of you Process Template folder. Beware that you can't zip this file with WinZip or any kind of Zip Library. The only one I could use successfully is the ICSharpCode.SharpZipLib with the FastZip class.  

TemplateHeader[] DeleteTemplate( int templateId)

Delete a template from its ID, you can get the ID calling the TemplateHeaders() method and using the TemplateId field, or by calling GetTemplateIndex().

string GetTemplateData(int methodologyIndex)

This method will download the Template Data as a temporary zipped file and returns you the full path and file name.

So you better have to delete the file once you're done with it!

Basically, unzip the file and you get all the content of your Process Template.

  • methodologyIndex: the index can be retrieved calling the GetTemplateIndex() method or using the TemplateHeader structure.

int GetTemplateIndex(string name)

Get the ID of a Template from its name. I guess this method is named incorrectly because what you have in return is the Template's Id.

XmlNode GetTemplateNames()

     This method returns an XML Node listing all the Process Templates and their corresponding Id.

TemplateHeader[] MakeDefaultTemplate(int templateId)

     Make the Template of the given ID the default one.

TemplateHeader[] TemplateHeaders()

     Return an array describing all the Process Template. You will find in this structure all the general information (Name, Description, State, Rank, Metadata, ID)

void UploadMethodology(string filename, int templateId)

 Upload a new version of the methodology in an existing Process Template.

  • Filename: the full path and file name of the Zipped file containing the content of the Process Template to upload.
  • templateId: the ID of the template to update.

My ProcessTemplate class

If you want to do some basic operations with Process Template, you can use the little class I wrote for the WITSynchronizer. It's far from being complete and perfect, but it is easy to use...

You can download the class here.

Construction

You can create a ProcessTemplate instance with three possible ways:

  1. By giving the directory where the Process Template is stored.
  2. By giving the zipped file you got by calling GetTemplateData().
  3. By giving a TeamFoundationServer object and the name of the Process Template.

The class will handle the cleanup of the resource it created (nothing for the first constructor, the directory for the second constructor, the zip file and the directory for the third).

Features

  • Get/Set the name and description of the Process Template.
  • List all the Work Item Type definitions.
  • List all the Work Item Query definitions.
  • Get the XML document of a given Work Item Type definition.
  • Get the XML document of a given Work Item Query definition.
  • Add/update a Work Item Type definition.
  • Add/update a Work Item Query definition.
  • Upload the Process Template back to the Team Foundation Server.
Sortie d’un nouveau projet CodePlex: WITSynchronizer

Travaillant avec beaucoup de client sur le sujet de l'ALM et des méthodologies, je suis souvent confronté à ce genre de situation :

  • Je crée un Process Template pour le client, puis je crée un Team Project qui se base sur celui-ci. Le Team Project devient pour l'équipe de développement en quelque sorte le projet de « référence » concernant la méthodologie.
  • Le client alors va donc faire évoluer ce Team Project en modifiant la définition des types de Work Item, créant des nouvelles requêtes de Work Items afin de faire évoluer l'implémentation de la méthodologie au sein de l'équipe.
  • Tout va bien, mais maintenant que faire si l'on démarre un nouveau Team Project (ou si vous l'avez déjà) et que vous souhaitez que celui-ci bénéficie des évolutions faites sur le projet de « référence » ?

C'est possible, mais ce n'est pas aussi simple et rapide que ca le devrait être… Vous devez exporter les définitions des type de Work Item qui ont changés en local sur votre machine, télécharger le Process Template, remplacer les définitions dans celui-ci, faire de même avec les WIQL (requêtes de Work Item), mettre à jour le fichier « WorkItems.xml » et enfin remonter le Process Template tout beau tout neuf sur le serveur.

Si vous voulez mettre à jour un Team Project existant, l'opération est moins fastidieuse, mais vous devez toujours effectuer les mêmes tâches répétés pour chaque WIT et WIQL, un par un…

Donc comme je n'aime pas trop perdre du temps ainsi que les tâches répétitives, j'ai décidé de développer un petit programme sans prétention, mais qui sera utile pour l'utilisation au quotidien et la maintenance de votre Team Foundation Server.

C'est ainsi que le WITSynchronizer est né !

Je sais, je poursuis toujours ma quête du nom le plus ridicule pour un projet CodePlex, je me demande si j'ai mieux fait qu'avec mon premier "WICreator"! En tout cas j'espère que ce projet le battra en termes de nombre de téléchargements !

Vous trouverez la page d'accueil du projet ici : http://witsynchronizer.codeplex.com.
La première version se télécharge ici.

N'hésitez pas à me donner votre avis !

Voilà à quoi ressemble l'application :

Au passage, je suis particulièrement fier d'une petite fonctionnalité : Unhandled Exception lié à CodePlex !
Si jamais vous rencontrez un problème dans l'utilisation de l'application, un bug par exemple Smile, vous aurez le dialogue suivant qui apparaitra :

Avec un lien très pratique sur la page « Issue Tracker » de CodePlex qui vous permettra de remplir une fiche de bug !

Bon, comme vous j'espère qu'il y en aura pas trop, mais quand ca se produira, utilisez cette fonctionnalité, je pourrais fixer les bugs rapidement.

Voilà, profitez en bien, et n'oubliez pas que votre avis sera toujours le bienvenue !

Released a new Codeplex project: WITSynchronizer

Working with many clients on ALM and development processes I am often in a situation like this:

  • I create a Process Template for the client and then create a Team Project based on it. The Team Project will become the "reference Team Project", the main one for Process evolution.
  • Then the client or I are making modifications on the existing Team Project (modify WIT, add new ones, create new WIQLs) when we want to upgrade the development process.
  • Now it's fine, but what happens when you have to start another Team Project (or you already had), and want it to be synchronized with the Work Item Types and WIQL of your "reference Team Project"?


It is possible, but it's not as easy as it should be…. You have to export the WIT and WIQL definition in local, download the Process Template, replace the WIT definition XML files, add new WIT and WIQL, references them in the WorkItems.xml and finally uploading the Process Template back to your Team Foundation Server.
If you want to update a Team Project, the operation is less tedious, but still you have to perform the same set of tasks for each WIT and WIQL, one by one…

So as I don't like to waste time and doing always the same thing, I decided to develop a little program, not a killer featured one, but a useful one for the day to day maintenance of you Team Foundation Server!

Here I present you: the WITSynchronizer!


I know, I'm still running for the "worst CodePlex project name ever" and wonder if it topped my "WICreator" one! Smile Well, I hope it will top it in download count! Cool

You'll find the project's homepage here: http://witsynchronizer.codeplex.com/.
The first release can be found here.

Don't hesitate to use it and give me feedback!

Here what it looks like:

What feature I'm pretty proud about is the Unhandled Exception one! If you encounter a problem while using the program, a bug for instance J, you'll have the following dialog showing up:

With a nice link to the CodePlex Issue Tracker for you to fill a bug request!

Like you, I hope there won't be too many, but in case there's I expect people to use for me to fix it ASAP.

Enjoy it! And remember, all feedback and thanks are warmely welcome!

A laptop that rocks for Team System!

As I am a consultant, my best friend is the laptop I'm carrying all the time with me.

Being a Team System consultant, it's not easy to fulfill all the needs with a single laptop:

  1. I have to use several VPCs: a demonstration one, a "development" one (for the tools I'm writing based on Team System) and the latest version of the upcoming VSTS 2010.
  2. As I am a developer, I also have Visual Studio 2008 Team Suite on the host OS.
  3. I'm often in a situation I have to prototype a new server, then creating a VPC from scratch and installing everything I need, the way I want.
  4. Ideally, it would be nice to be able to prototype a VLAN of servers for complex deployments.
  5. My laptop is my working computer, so all the usual stuffs (Office, etc.) have to be installed too.

It makes a lot of things for a small laptop! Did I mention that the limit weight I am willing to carry is 5 pounds?

The standard configuration

As you can guess, a "standard" laptop is not suited to fulfill all these needs: it's a Core 2 Duo @ 2GHz, 4Gig of Ram, 200Gig of HDD and running a Vista 32 or 64Bits. Typically you have a Dell Latitude 630 or XPS M1330 (to keep the weight accordingly).

With such configuration you're bound to use Virtual PC for your work. The soft is fine, but kind of limited if you want to work all the time with. It consumes a lot of resources: especially RAM and IOP (HDD read/write operation). You can make several VPC communicating each other, but it's a bit tricky. One feature that I miss is the inability to create multiple snapshots of a given VPC, the undo drive a nice feature, but again, it limits you in many ways…

Like some people when I saw Windows 2008 Server coming out more than a year ago now, I decided to go for it to get the benefits of a real hypervisor: Hyper-V.

The experience was interesting; it had some pros and cons.

Pros of Hyper-V:

  • You can create a Virtual Network, which is necessary if you want to prototype say a TFS environment with a separated Data Tier, Application Tier and MOSS Server.
  • You can now have the multiple snapshots features on your VM (which is not a VPC anymore by the way) you finally have the chance to roll back many steps backwards if you realize you failed in some way or if you just want to check for something.
  • The resources among VMs are managed way better than VPC.
  • Well, it's ideal for prototyping!

The Cons of Hyper-V:

  • You have to have a 64 Bits Windows 2008 server, 32 Bits won't work for you. The consequence is that with 4 Gig of RAM, it's tighter than a 32 Bits version.
  • Windows Server 2008 is what it's being called for: a server OS, not a workstation one. Even if some tweaks can give you the feeling of a Vista you miss one crucial feature: the sleep/hibernate (very limited for a laptop).
  • Now the biggest concern by far: your poor 2"5 HDD with its 17ms access time is TOTALLY killed by the high activity that is required for your work!

So after few months of working with such configuration, I decided (like many) to roll back to Vista.

A new age

Now things have changed, the moment I was awaiting for many many months have finally arrived: I can suppress the two bottlenecks that were preventing me to use 2008 with Hyper-V which are RAM limit and HDD poor performances.

With the new Dell Latitude series (E6400 for me) I can finally have a laptop with at least 6Gig of RAM (which is enough for me), and the most revolutionary thing (and I mean it) is I got rid of the poor HDD to replace it by a new OCZ Vertex 120Go SSD!

And boys, I can tell you: it rocks deadly!

You can't even imagine the overall improvement by just using this SSD, which is the first true generation affordable, with a good capacity and which gives you want you were looking for: fast random reads/writes, instant access time and high bandwidth!

Here are some benchies just to give you a little comparison of the "high end 7200 RPM, 32MB Cache HDD" (yes it is, can't have a better one for a laptop) and the OCZ Vertex:

HDD 2"5, 7200 RPM, 32MB Cache

SSD OCZ Vertex 120Go, 64MB Cache

 

The first is HD Tune's random read benchmark, just pay attention to the difference of IOP/sec between the two:

  • The HDD can barely handle 60 IOP/sec for small chunks and 30 for big ones.
  • The Vertex can handle 8000 IOP/sec for small chunks (133 times more) and 2000 (60 times more) for big ones.  

The average speed is greatly improved too. Let's look at the 4KB and 64KB stats (the most important ones to me):

  • 4KB chunk: 0.242 MB/sec against 23.7 MB/sec. It's just almost 100 times faster!
  • 64KB chunk: 3.638 MB/sec against 120.566 MB/sec. It's 33 times faster!

The second is Crystal Disk Mark with three tests: sequential access, random 512KB operations and random 4KB operations for both read and write. The numbers speak of themselves.

Some real world random numbers and facts

  • My Windows 2008 Server + Hyper-V and my two standards VM are booting in 80sec to desktop and the shutdown is about 30sec. (I can survive without hibernate now) 
  • Outlook, Words, Excel, PowerPoint are all loading instantaneously.
  • Visual Studio 2008 Team Suite is loading in 3 sec.
  • I can start 3 Words, 3 Internet Explorers, 3 Excels, 3 PowerPoints and 3 Visual Studios in about 8 sec (fun stat of course).
  • I can create a VM of a Windows Server 2008 Enterprise in 12 Min from scratch.
  • I can create three VMs (simultaneously) of the same Win2K8 as above in a total of 15min (yep, 3 min more to get the triple!).
  • The output window of Visual Studio is slowing down the compilation of my programs… L
  • I can finally work with Outlook, Office, Visual Studio all running with several VMs in background with no slow down at all!
  • One VM of 1GB of RAM starts in less than 5 sec, it's saved in about 7 sec.

Told you, a new era has arrived, and I'm enjoying it big time! J

News about very old stuffs

Well, it's been a long time that I didn't post a message.
There were many reasons to that, one of them was undergoing surgery of my right shoulder and then being out for more than 2 months.

So let's make some new with old stuffs.

Back in 2004, when I was young and working in the real-time 3D industry, I wrote a little renderer using (at that time) a new technique call "Deferred Shading".

This technique was only possible in real-time with the new Shader Model 3 of DirectX 9 and the new nVidia 6800 GT card, and I just had both in beta version...

So working on "boring stuffs" (i.e. 3D Engine, content editing tools, ALM, and so on...) for 4 years, I decided to take a break and start working on something exciting, at a real fast pace (something like 16 hours of coding a day)!

I kept a little "diary" (no blog these days), and I decided to put it back on this blog, for everybody to see the result and enjoy a little "apparté"...

I don't remember having coded with so much productivity in my whole life, and the result surpassed all my expectation.

It was one of the first Deferred Shading renderer out-there (working correctly!), and nowadays most of the games are using this technique!

It happened to be my last "little stone" for the gaming industry, because I totally changed my professional direction few months later.

Enjoy the reading and more importantly: the screenshots!

Posts of July 2004 

Posts of August 2004

Last post: October 2004 

PS: for each link you have to read from the bottom to the top!

Article MSDN sur les Work Items avec VSTS 2010

On prend les mêmes et on recommence! Smile

Après avoir réalisé une petite série de posts en Anglais sur les Work Item avec la CTP d'Octobre de Visual Studio Team System 2010, j'ai décidé de pousser un peu plus loin mes recherches afin de rédiger un nouvel article pour la MSDN France !

L'article est disponible sur ce lien.

Je remercie encore une fois Eric Le Loc'h de Microsoft France pour son aide !

Un petit teaser :

Article sur l’ALM pour IT Expert

Le magazine en ligne IT Expert (N° 76) vient de publier un article sur l'ALM (Application Lifecycle Management) que j'ai coécrit avec Eric Le Loc'h de Microsoft France.

Cet article est une introduction à l'industrialisation des développements. Il présente aussi comment ces méthodes sont utilisées par les équipes de Microsoft.

Le lien vers cet article. Choisissez le N° 76.

Bonne lecture !

Posted: Dec 04 2008, 08:46 AM by loicbaumann | with no comments
Filed under: ,
More Posts Next page »