Tuesday, June 28, 2005

I have been without TestDriven.Net for a while and it’ s been killing me. I can’t explain why the following change works but it works.

  • Copied the version of Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel.dll that was installed with the version of the IDE into the root of “C:\Program Files\TestDriven.NET 1.0” and “C:\Program Files\TestDriven.NET 1.0\QualityTools”
  • Updated the TestDriven.Config AssemblyPath to remove “QualityTools\”.

    Original:

    testrunner Name=”QualityTools” AssemblyPath=“QualityTools\TestDriven.QualityTools.dll” TypeName=”TestDriven.QualityTools.QualityToolsTestRunner”
    targetframework AssemblyName=”Microsoft.VisualStudio.QualityTools.UnitTestFramework”
    testrunner

    Modified:

    testrunner Name=”QualityTools” AssemblyPath=“TestDriven.QualityTools.dll” TypeName=”TestDriven.QualityTools.QualityToolsTestRunner”
    targetframework AssemblyName=”Microsoft.VisualStudio.QualityTools.UnitTestFramework”
    testrunner

  • posted on Tuesday, June 28, 2005 8:51:52 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
     Friday, June 24, 2005

    It’s always nice to share your tools of the trade with fellow colleagues. I was going to compile my own list when I was passed Scott Hanselman’s. I think I shall pass, he did a great job of covering things.

    Thanks to Mike Becker for sharing it with me.

    posted on Friday, June 24, 2005 8:50:32 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
    posted on Friday, June 24, 2005 8:49:57 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
     Thursday, June 09, 2005

    Let me start by saying I just love Subversion ( SVN ). When it comes to source control there are many different products to choose from, VSS, CVS, Sourcegear Vault, Perforce, Microsoft VSTS just to name a few. They all have their pros and cons and until last night I swore by SVN. Like I said before, I love SVN. These guys really deserve a great deal of credit. SVN is free and it functionality meets the needs of a great SCC repo. When I looked to pick my personal SCC repo, I looked for the obvious things like commit, update, delete, etc and on top of that I look for things like :

  • Easy of maintenance
  • Fast
  • Simple interface ( example : TortoiseSVN or TortoiseCVS )
  • Reliable
  • Secure
  • Access from anywhere
  • Built on a DB rather than a filesystem

    I setup a small repo with SVN and was in awe. I don’t think I spent more that 30 minutes starting from scratch to committing files. I used it for a few months and decided I better move the DB to a RAID I had sitting on another sever. This would give me the reliability of a raid yet run SVN on a separate machine.

    WRONG!! I was able to mount a directory to a share on another server with the RAID. svnadmin created the DB just fine, but things puked when I tried to use it.

    It logged the following:

    (20014)Error string not specified yet: Berkeley DB error while opening environment for filesystem /PATH/To/Repos/ db:\nInvalid argument

    [error] [client XXX.XXX.XXX.XXX] Could not fetch resource information. [500, #0]

    [error] [client XXX.XXX.XXX.XXX] Could not open the requested SVN filesystem [500, #160029]

    [error] [client XXX.XXX.XXX.XXX] Could not open the requested SVN filesystem [500, #160029]

    I hit the SVN book to see what I had done wrong only to find this.

    Warning

    Do not create your repository on a network share—it cannot exist on a remote filesystem such
    as NFS, AFS, or Windows SMB. Berkeley DB requires that the underlying filesystem implement
    strict POSIX locking semantics, and more importantly, the ability to map files directly
    into process memory. Almost no network filesystems provide these features. If you attempt to
    use Berkeley DB on a network share, the results are unpredictable—you may see mysterious
    errors right away, or it may be months before you discover that your repository database is subtly
    corrupted.

    As stated on page 83 of Version Control with Subversion

    and so the boat sailed off into the distance with all the n-tier SCC users as SVN stood there watching.

    BUT there is good news…..

    The SVN team stated as a long term product goal they were going to add a SQL repository back-end. You can stay informed about it here.

  • posted on Thursday, June 09, 2005 8:49:06 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
     Thursday, June 02, 2005

    I was given the opportunity to speak at this years Microsoft Financial Services Developer Conference. I was asked to speak on Web Services and WSE in regards to an Allstate web service case study Microsoft published earlier this year.

    Rather than just talking about the case study one could just read, I recreated that project in .Net 2.0 using WSE 2.0 SP3. This gave me an opportunity to illustrate some of the new features coming and how the original solution may change when .Net 2.0 is released.

    The slides and videos have just been released here .

     

    posted on Thursday, June 02, 2005 8:48:16 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
     Friday, May 27, 2005

    The story below was passed along from a mentor of mine, Kevin Rice. Thanks!

    Start with a cage containing five monkeys. Inside the cage, hang a banana on a string and place a set of stairs under it. Before long, a monkey will go to the stairs and start to climb towards the banana. As soon as he touches the stairs, spray all of the other monkeys with cold water.

    After a while, another monkey makes an attempt with the same result all the other monkeys are sprayed with cold water. Pretty soon, when another monkey tries to climb the stairs, the other monkeys will try to prevent it.

    Now, put away the cold water. Remove one monkey from the cage and replace it with a new one. The new monkey sees the banana and wants to climb the stairs. To his surprise and horror, all of the other monkeys attack him. After another attempt and attack, he knows that if he tries to climb the stairs, he will be assaulted.

    Next, remove another of the original five monkeys and replace it with a new one. The newcomer goes to the stairs and is attacked. The previous newcomer takes part in the punishment with enthusiasm! Likewise, replace a third original monkey with a new one, then a fourth, then a fifth. Every time the newest monkey takes to the stairs, he is attacked. Most of the monkeys that are beating him have no idea why they were not permitted to climb the stairs or why they are participating in the beating of the newest monkey.

    After replacing all the original monkeys, none of the remaining monkeys have ever been sprayed with cold water. Nevertheless, no monkey ever again approaches the stairs to try for the banana. Why not? Because as far as they know that’s the way it’s always been done around here

    And that, my friends, is how a company policy begins.

    posted on Friday, May 27, 2005 8:36:26 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback