<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>deepdark.net - James Green's Blog - Geeking Out!</title>
    <link>http://deepdark.net/</link>
    <description>.NET, SQL Server and *.*</description>
    <image>
      <url>http://deepdark.net/files/deepdark.jpg</url>
      <title>deepdark.net - James Green's Blog - Geeking Out!</title>
      <link>http://deepdark.net/</link>
    </image>
    <language>en-us</language>
    <copyright>James Green</copyright>
    <lastBuildDate>Tue, 20 May 2008 12:56:04 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>James.Green@deepdark.net</managingEditor>
    <webMaster>James.Green@deepdark.net</webMaster>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=9100f681-876b-4221-8ea9-eb7dc972be8d</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9100f681-876b-4221-8ea9-eb7dc972be8d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Today at <a href="http://www.microsoft.com/australia/remix08/index.aspx">REMiX
'08 Sydney</a> (<a href="http://www.visitmix.com/">Also see VisitMIX</a>) along with
a good show and a grand feed, attendees also got a copy of <a href="http://www.microsoft.com/expression/products/Overview.aspx?key=studio">Expression
Studio 2</a>.  After seeing it in action I'm quite looking forward to taking
it around the block.  I never quite got into [Macromedia|Adobe]Flash, and am
quietly hoping Silverlight can find a spot next to it in the web ecosystem.<br /><br />
First thing I did when I got home was install Expression Studio, I got a little curious
to find that there is a Visual Studio 2008 Standard disk in the box.  It got
me to wonder what really is the difference between VS Pro which I am using at the
moment and VS Standard?<br /><br />
I can't remember the product comparison pages for any version of Visual Studio on
MSDN ever being completely illuminating.  <a href="http://msdn.microsoft.com/en-us/vs2008/products/cc149003.aspx">The
2008 version is about as good as it gets it seems</a>.  
<br /><br />
The one that I am most interested in somehow is down the end of the list:  the
inclusion of the Unit Testing features in VSPro 2008, when it was only included in
Team System versions of VS 2005.  Here is a slightly abridged summary of the
other features included in VS Professional that you do not get in VS Standard:<br /><br />
Debugging Tools:<br /><ul><li>
Attach to Remote Process</li><li>
SQL-CLR Debugging</li><li>
XSLT Debugger 
</li><li>
T-SQL Debugging 
</li></ul>
Data Tools:<br /><ul><li>
Database Projects</li><li>
SQL Server Projects</li><li>
Server Explorer</li></ul>
Reporting: 
<br /><ul><li>
Crystal Reports Application &amp; Crystal Reports for Visual Studio</li></ul>
Office development:<br /><ul><li>
VSTO for Office 2003 and Office 2007</li><li>
Sharepoint 2007 State Machine workflow template<br /></li></ul>
Smart Device Development:<br /><ul><li>
Device Emulator</li><li>
Project Templates</li><li>
Debugging Tools</li></ul><br /><br /><b>...but surely this can't be it?</b><br /><br />
It's not.  Well, this <i>is</i> the story if you are comparing VS Pro and VS
Standard alone, but there is one other thing to consider:<br /><ol><li>
In my timezone, the <a href="http://www.ht.com.au/N/0/keyword/visual+studio/part/V6262-Microsoft-Visual-Studio-2008-Standard-Edition-Complete-package-1-user-DVD-Win-English/detail.hts">full
boxed retail VS Standard</a> is less than half the price of <a href="http://www.ht.com.au/N/0/keyword/visual+studio/part/V4896-Microsoft-Visual-Studio-2008-Professional-Edition-Complete-package-1-user-DVD-Win-English/detail.hts">the
equiv. VS Professional</a>... but;<br /></li><li>
You can't get <a href="http://msdn.microsoft.com/en-us/subscriptions/aa718657.aspx">an
MSDN Subscription</a> including VS Standard.  They are only available with Professional
and above, and imho the licensing benefits of MSDN for developers is well worth the
look.<br /></li></ol>
So there you have it.  If an MSDN Subscription is on your radar, enjoy using
VS Pro.  If it is not, and you can live without the above listed features, well
maybe there is no need to spend more than you have to.<br /><p></p></body>
      <title>Visual Studio 2008 Professional vs. Standard edition.  Just what are the differences?  Is it Features?</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx</link>
      <pubDate>Tue, 20 May 2008 12:56:04 GMT</pubDate>
      <description>Today at &lt;a href="http://www.microsoft.com/australia/remix08/index.aspx"&gt;REMiX '08
Sydney&lt;/a&gt; (&lt;a href="http://www.visitmix.com/"&gt;Also see VisitMIX&lt;/a&gt;) along with a
good show and a grand feed, attendees also got a copy of &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=studio"&gt;Expression
Studio 2&lt;/a&gt;.&amp;nbsp; After seeing it in action I'm quite looking forward to taking
it around the block.&amp;nbsp; I never quite got into [Macromedia|Adobe]Flash, and am
quietly hoping Silverlight can find a spot next to it in the web ecosystem.&lt;br&gt;
&lt;br&gt;
First thing I did when I got home was install Expression Studio, I got a little curious
to find that there is a Visual Studio 2008 Standard disk in the box.&amp;nbsp; It got
me to wonder what really is the difference between VS Pro which I am using at the
moment and VS Standard?&lt;br&gt;
&lt;br&gt;
I can't remember the product comparison pages for any version of Visual Studio on
MSDN ever being completely illuminating.&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/vs2008/products/cc149003.aspx"&gt;The
2008 version is about as good as it gets it seems&lt;/a&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
The one that I am most interested in somehow is down the end of the list:&amp;nbsp; the
inclusion of the Unit Testing features in VSPro 2008, when it was only included in
Team System versions of VS 2005.&amp;nbsp; Here is a slightly abridged summary of the
other features included in VS Professional that you do not get in VS Standard:&lt;br&gt;
&lt;br&gt;
Debugging Tools:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Attach to Remote Process&lt;/li&gt;
&lt;li&gt;
SQL-CLR Debugging&lt;/li&gt;
&lt;li&gt;
XSLT Debugger 
&lt;/li&gt;
&lt;li&gt;
T-SQL Debugging 
&lt;/li&gt;
&lt;/ul&gt;
Data Tools:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Database Projects&lt;/li&gt;
&lt;li&gt;
SQL Server Projects&lt;/li&gt;
&lt;li&gt;
Server Explorer&lt;/li&gt;
&lt;/ul&gt;
Reporting: 
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Crystal Reports Application &amp;amp; Crystal Reports for Visual Studio&lt;/li&gt;
&lt;/ul&gt;
Office development:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
VSTO for Office 2003 and Office 2007&lt;/li&gt;
&lt;li&gt;
Sharepoint 2007 State Machine workflow template&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
Smart Device Development:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Device Emulator&lt;/li&gt;
&lt;li&gt;
Project Templates&lt;/li&gt;
&lt;li&gt;
Debugging Tools&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;...but surely this can't be it?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
It's not.&amp;nbsp; Well, this &lt;i&gt;is&lt;/i&gt; the story if you are comparing VS Pro and VS
Standard alone, but there is one other thing to consider:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
In my timezone, the &lt;a href="http://www.ht.com.au/N/0/keyword/visual+studio/part/V6262-Microsoft-Visual-Studio-2008-Standard-Edition-Complete-package-1-user-DVD-Win-English/detail.hts"&gt;full
boxed retail VS Standard&lt;/a&gt; is less than half the price of &lt;a href="http://www.ht.com.au/N/0/keyword/visual+studio/part/V4896-Microsoft-Visual-Studio-2008-Professional-Edition-Complete-package-1-user-DVD-Win-English/detail.hts"&gt;the
equiv. VS Professional&lt;/a&gt;... but;&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
You can't get &lt;a href="http://msdn.microsoft.com/en-us/subscriptions/aa718657.aspx"&gt;an
MSDN Subscription&lt;/a&gt; including VS Standard.&amp;nbsp; They are only available with Professional
and above, and imho the licensing benefits of MSDN for developers is well worth the
look.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
So there you have it.&amp;nbsp; If an MSDN Subscription is on your radar, enjoy using
VS Pro.&amp;nbsp; If it is not, and you can live without the above listed features, well
maybe there is no need to spend more than you have to.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx</comments>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=5d5addad-0186-4e0d-a8ce-4da5400da852</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5d5addad-0186-4e0d-a8ce-4da5400da852</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">This is the first in what I hope will become <a href="http://deepdark.net/CategoryView,category,C%23%2B3.0.aspx">a
series on the new language features in C# 3.0</a> used in <a href="http://msdn2.microsoft.com/en-us/library/w0x726c2.aspx">.NET
3.5</a> / <a href="http://msdn2.microsoft.com/en-us/vs2008/default.aspx">Visual Studio
2008</a>.<br /><br />
One thing I am not intending to cover is LINQ.  Just because the <a href="http://www.technorati.com/search/linq?authority=a4&amp;language=en">blogosphere
has been buzzing with LINQ</a> articles since the early days of <i>"Orcas"</i>. 
And with good reason I hasten to add!<br /><br /><b>Where I am starting is with the <font color="#000080" face="Courier New">var </font>keyword.</b><br /><br />
VB6 veterans will remember the <font color="#000080" face="Courier New">Variant </font>type. 
A <font color="#000080" face="Courier New">Variant </font>could contain anything,
even <font color="#000080" face="Courier New">Object</font>.  While this was <i>sort
of</i> useful, my memory of it is as a synonym for:  <i>I can't be bothered,
lets just stick it in a Variant and deal with it later</i>.<br /><br />
There was also a performance impact of using the special Variant type, they were large
in memory and have an overhead of extra runtime checking that added up; like when
assigned inside a loop for example.  They were also a special case in their un-assigned
form, taking on the value <font color="#000080" face="Courier New">Empty </font>(test
with <font color="#000080" face="Courier New">IsEmpty()</font>) vs <font color="#000080" face="Courier New">Nothing </font>(test
with <font color="#000080" face="Courier New">Is Nothing</font>).  
<br /><br />
So when I saw <font color="#000080" face="Courier New">var </font>added to C# I raised
my eyebrows in the way a Fed might, when the beagle sits quietly next to your suitcase
at the airport.<br /><br />
Most of the time you see it in the samples, it is used when returning an Anonymous
Type from a LINQ query.  And this is the clue!  <font color="#000080" face="Courier New">var </font>is
not itself a type, but instead <b>it is a signal to the compiler to infer the type
of an operation, and substitute in the required type</b>.  It does not even have
to be an Anonymous Type.  Consider the following simple example:<br /><br /><font face="Courier New"><font color="#000080">var </font>result = 10 / 2.0;<br /><font color="#0000ff"><font color="#000080">Console</font>.</font>WriteLine(result.ToString());<br /></font><br />
By the time this code is compiled, <font color="#000080" face="Courier New">var </font>is
replaced with <font color="#000080" face="Courier New">double</font>.  In fact,
the Intellisense on result will be correct for it being a <font color="#000080" face="Courier New">double</font>.<br /><br />
To confirm this, looking at those lines of the assembly in <a href="http://www.aisto.com/roeder/dotnet/">Lutz
Roder's Reflector</a> show the following after disassembly:<br /><br /><font face="Courier New"><font color="#000080">double </font>result = 5.0;<br /><font color="#000080">Console</font>.WriteLine(result.ToString());</font><br /><br />
OK, so var can be used independant of Anonymous Types, <b>but why would you want to
be <i>less </i>explicit in typing your variables?</b>  Consider the following
fictitious example:<br /><br /><font color="#000080" face="Courier New">DatabaseRequestService </font><font face="Courier New">req
= </font><font color="#000080" face="Courier New">DatabaseRequestService</font><font face="Courier New">.CreateFrom(value);</font><br /><br />
And compare it with the equivalent line using <font color="#000080" face="Courier New"><font color="#0000ff">var</font></font>: 
<br /><br /><font color="#000080" face="Courier New"><font color="#0000ff">var<font color="#000000"></font></font><font color="#000000">req
= </font>DatabaseRequestService</font><font face="Courier New">.CreateFrom(value);</font><br /><br />
Here, <b><font color="#000080" face="Courier New"><font color="#0000ff">var<font color="#000000"></font></font></font>leads
itself to much more readable syntax</b> with the same typing, Intellisense, and everything
else!<br /><br /><font color="#808080" size="1"><b>Listening To:  Róisín Murphy</b></font><br /><p></p></body>
      <title>The var keyword (C# 3.0) - Nothing at all like VB6 Variant - It's not even a Type!</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx</link>
      <pubDate>Tue, 01 Apr 2008 11:25:00 GMT</pubDate>
      <description>This is the first in what I hope will become &lt;a href="http://deepdark.net/CategoryView,category,C%23%2B3.0.aspx"&gt;a
series on the new language features in C# 3.0&lt;/a&gt; used in &lt;a href="http://msdn2.microsoft.com/en-us/library/w0x726c2.aspx"&gt;.NET
3.5&lt;/a&gt; / &lt;a href="http://msdn2.microsoft.com/en-us/vs2008/default.aspx"&gt;Visual Studio
2008&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
One thing I am not intending to cover is LINQ.&amp;nbsp; Just because the &lt;a href="http://www.technorati.com/search/linq?authority=a4&amp;amp;language=en"&gt;blogosphere
has been buzzing with LINQ&lt;/a&gt; articles since the early days of &lt;i&gt;"Orcas"&lt;/i&gt;.&amp;nbsp;
And with good reason I hasten to add!&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Where I am starting is with the &lt;font color="#000080" face="Courier New"&gt;var &lt;/font&gt;keyword.&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
VB6 veterans will remember the &lt;font color="#000080" face="Courier New"&gt;Variant &lt;/font&gt;type.&amp;nbsp;
A &lt;font color="#000080" face="Courier New"&gt;Variant &lt;/font&gt;could contain anything,
even &lt;font color="#000080" face="Courier New"&gt;Object&lt;/font&gt;.&amp;nbsp; While this was &lt;i&gt;sort
of&lt;/i&gt; useful, my memory of it is as a synonym for:&amp;nbsp; &lt;i&gt;I can't be bothered,
lets just stick it in a Variant and deal with it later&lt;/i&gt;.&lt;br&gt;
&lt;br&gt;
There was also a performance impact of using the special Variant type, they were large
in memory and have an overhead of extra runtime checking that added up; like when
assigned inside a loop for example.&amp;nbsp; They were also a special case in their un-assigned
form, taking on the value &lt;font color="#000080" face="Courier New"&gt;Empty &lt;/font&gt;(test
with &lt;font color="#000080" face="Courier New"&gt;IsEmpty()&lt;/font&gt;) vs &lt;font color="#000080" face="Courier New"&gt;Nothing &lt;/font&gt;(test
with &lt;font color="#000080" face="Courier New"&gt;Is Nothing&lt;/font&gt;).&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
So when I saw &lt;font color="#000080" face="Courier New"&gt;var &lt;/font&gt;added to C# I raised
my eyebrows in the way a Fed might, when the beagle sits quietly next to your suitcase
at the airport.&lt;br&gt;
&lt;br&gt;
Most of the time you see it in the samples, it is used when returning an Anonymous
Type from a LINQ query.&amp;nbsp; And this is the clue!&amp;nbsp; &lt;font color="#000080" face="Courier New"&gt;var &lt;/font&gt;is
not itself a type, but instead &lt;b&gt;it is a signal to the compiler to infer the type
of an operation, and substitute in the required type&lt;/b&gt;.&amp;nbsp; It does not even have
to be an Anonymous Type.&amp;nbsp; Consider the following simple example:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&lt;font color="#000080"&gt;var &lt;/font&gt;result = 10 / 2.0;&lt;br&gt;
&lt;font color="#0000ff"&gt;&lt;font color="#000080"&gt;Console&lt;/font&gt;.&lt;/font&gt;WriteLine(result.ToString());&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
By the time this code is compiled, &lt;font color="#000080" face="Courier New"&gt;var &lt;/font&gt;is
replaced with &lt;font color="#000080" face="Courier New"&gt;double&lt;/font&gt;.&amp;nbsp; In fact,
the Intellisense on result will be correct for it being a &lt;font color="#000080" face="Courier New"&gt;double&lt;/font&gt;.&lt;br&gt;
&lt;br&gt;
To confirm this, looking at those lines of the assembly in &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Lutz
Roder's Reflector&lt;/a&gt; show the following after disassembly:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&lt;font color="#000080"&gt;double &lt;/font&gt;result = 5.0;&lt;br&gt;
&lt;font color="#000080"&gt;Console&lt;/font&gt;.WriteLine(result.ToString());&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
OK, so var can be used independant of Anonymous Types, &lt;b&gt;but why would you want to
be &lt;i&gt;less &lt;/i&gt;explicit in typing your variables?&lt;/b&gt;&amp;nbsp; Consider the following
fictitious example:&lt;br&gt;
&lt;br&gt;
&lt;font color="#000080" face="Courier New"&gt;DatabaseRequestService &lt;/font&gt;&lt;font face="Courier New"&gt;req
= &lt;/font&gt;&lt;font color="#000080" face="Courier New"&gt;DatabaseRequestService&lt;/font&gt;&lt;font face="Courier New"&gt;.CreateFrom(value);&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
And compare it with the equivalent line using &lt;font color="#000080" face="Courier New"&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/font&gt;: 
&lt;br&gt;
&lt;br&gt;
&lt;font color="#000080" face="Courier New"&gt;&lt;font color="#0000ff"&gt;var&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;req
= &lt;/font&gt;DatabaseRequestService&lt;/font&gt;&lt;font face="Courier New"&gt;.CreateFrom(value);&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
Here, &lt;b&gt;&lt;font color="#000080" face="Courier New"&gt;&lt;font color="#0000ff"&gt;var&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;leads
itself to much more readable syntax&lt;/b&gt; with the same typing, Intellisense, and everything
else!&lt;br&gt;
&lt;br&gt;
&lt;font color="#808080" size="1"&gt;&lt;b&gt;Listening To:&amp;nbsp; Róisín Murphy&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx</comments>
      <category>C#</category>
      <category>C# 3.0</category>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=0c131ef3-45e9-486a-934c-8b8fc4ee0236</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0c131ef3-45e9-486a-934c-8b8fc4ee0236</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the things I miss from my Unix/Linux days is <a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?grep">Grep</a>. 
Previously I have tried things like <a href="http://cygwin.com/">Cygwin</a>,
but was never quite satisfied.  I am quite excited about <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">PowerShell</a> and am
always trying to get more PS&gt; in my life :-)
</p>
        <p>
I'm using Powershell almost daily to replace Grep.
</p>
        <p>
To start, this is all based on the <a href="http://technet.microsoft.com/en-us/library/bb978664.aspx">Get-ChildItem</a> cmdlet. 
The best way to think about <font face="Courier New" color="#000080">Get-ChildItem</font> is
it does what the <font face="Courier New"><font color="#000080">Dir</font></font>command did
in DOS.  One important difference is it is not just for files, and can be used
to return all items in a location - and it is up to each provider to decide what a
location &amp; item means to it!
</p>
        <p>
For the PowerShell n00bie, you can just use <font face="Courier New" color="#000080">cd</font> around
the filesystem and when you type <font face="Courier New" color="#000080">dir</font>,
you are really running <font face="Courier New" color="#000080">Get-ChildItem</font>. 
In fact when you type <font face="Courier New" color="#000080">cd</font> you are really
running <font face="Courier New" color="#000080">Set-Location</font>.  For a
full list of aliases for common commands, run <a href="http://technet.microsoft.com/en-us/library/bb978751.aspx">Get-Alias</a>.
</p>
        <p>
          <strong>To search in file names:</strong>
        </p>
        <p>
The following command searches <em>for</em> .aspx &amp; .ascx files in the current
directory that have the word "metro" in the filename.
</p>
        <p>
          <font face="Courier New" color="#000080">PS &gt; Get-ChildItem -Include *metro*.as?x</font>
        </p>
        <p>
          <strong>To search inside text files:</strong>
        </p>
        <p>
The following command searches <em>inside</em> .aspx &amp; .ascx files in every
subdirectory that have the word "metro" in the filename, and has the word "train"
inside the file.
</p>
        <p>
          <font face="Courier New" color="#000080">PS &gt; Get-ChildItem -Recurse -Include *metro*.as?x
| Select-String -Pattern train </font>
        </p>
        <p>
You are also able to add the <font face="Courier New" color="#000080">-CaseSensitive</font> parameter
to the end of the <font face="Courier New" color="#000080">Select-String</font> command,
by default it will search case insensitive.<br /></p>
        <p>
          <strong>NB</strong>:  I have used the full names of the parameters of the commands. 
This may look clunky, but:
</p>
        <ol>
          <li>
I wanted the examples to be clear, because this is a blog :-) 
</li>
          <li>
The Tab-Completion feature works for parameter names so they are not hard to type 
</li>
          <li>
You can use the smallest number of letters that identify a parameter.  For example,
if a cmdlet accepts a <font face="Courier New" color="#000080">-Recurse</font> and
a <font face="Courier New" color="#000080">-Record</font> param, you would only need
to use <font face="Courier New"><font color="#000080">-Rec<em>u</em></font></font> and <font face="Courier New"><font color="#000080">-Rec<em>o</em></font></font> respectively.</li>
        </ol>
        <p>
          <strong>
            <font color="#ff0000">Update</font>
          </strong>: A lot of parameters accept an
array as input.  The syntax for listing these is as a comma seperated list.
</p>
        <p>
An example where this applies to our example is searching through multiple file types,
i.e. .aspx and .cs.
</p>
        <p>
The following example searches both .aspx/.ascx files and .cs files with the word
"metro" in the filename.
</p>
        <font face="Courier New" color="#000080">PS &gt; Get-ChildItem -Recurse -Include *metro*.as?x,*metro*.cs </font>
        <p>
          <strong>
            <font color="#808080" size="1">Listening To:  Wicket Beat Sound System,
Inner Styles</font>
          </strong>
        </p>
      </body>
      <title>Bringing Grep back using PowerShell</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx</link>
      <pubDate>Wed, 05 Mar 2008 12:25:19 GMT</pubDate>
      <description>&lt;p&gt;
One of the things I miss from my Unix/Linux days is &lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?grep"&gt;Grep&lt;/a&gt;.&amp;nbsp;
Previously I&amp;nbsp;have tried things like &lt;a href="http://cygwin.com/"&gt;Cygwin&lt;/a&gt;,
but&amp;nbsp;was never quite satisfied.&amp;nbsp;&amp;nbsp;I am quite excited about &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;PowerShell&lt;/a&gt; and&amp;nbsp;am
always trying to get more PS&amp;gt; in my life&amp;nbsp;:-)
&lt;/p&gt;
&lt;p&gt;
I'm using Powershell almost daily to replace Grep.
&lt;/p&gt;
&lt;p&gt;
To start, this is all based on the&amp;nbsp;&lt;a href="http://technet.microsoft.com/en-us/library/bb978664.aspx"&gt;Get-ChildItem&lt;/a&gt; cmdlet.&amp;nbsp;
The best way to think about &lt;font face="Courier New" color=#000080&gt;Get-ChildItem&lt;/font&gt; is
it does what the &lt;font face="Courier New"&gt;&lt;font color=#000080&gt;Dir&lt;/font&gt; &lt;/font&gt;command&amp;nbsp;did
in DOS.&amp;nbsp; One important difference is it is not just for files, and can be used
to return all items in a location - and it is up to each provider to decide what a
location &amp;amp; item means to it!
&lt;/p&gt;
&lt;p&gt;
For the PowerShell n00bie, you can just use &lt;font face="Courier New" color=#000080&gt;cd&lt;/font&gt; around
the filesystem and when you type &lt;font face="Courier New" color=#000080&gt;dir&lt;/font&gt;,
you are really running &lt;font face="Courier New" color=#000080&gt;Get-ChildItem&lt;/font&gt;.&amp;nbsp;
In fact when you type &lt;font face="Courier New" color=#000080&gt;cd&lt;/font&gt; you are really
running &lt;font face="Courier New" color=#000080&gt;Set-Location&lt;/font&gt;.&amp;nbsp; For a full
list of aliases for common commands, run &lt;a href="http://technet.microsoft.com/en-us/library/bb978751.aspx"&gt;Get-Alias&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;To search in file names:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The following command searches &lt;em&gt;for&lt;/em&gt; .aspx &amp;amp; .ascx files in the current
directory that have the word "metro" in the filename.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000080&gt;PS &amp;gt; Get-ChildItem&amp;nbsp;-Include *metro*.as?x&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;To search inside text files:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The following command searches &lt;em&gt;inside&lt;/em&gt; .aspx &amp;amp; .ascx&amp;nbsp;files in every
subdirectory that have the word "metro" in the filename, and has the word "train"
inside the file.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000080&gt;PS &amp;gt; Get-ChildItem -Recurse -Include *metro*.as?x
| Select-String -Pattern train &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
You are also able to add the &lt;font face="Courier New" color=#000080&gt;-CaseSensitive&lt;/font&gt; parameter
to the end of the &lt;font face="Courier New" color=#000080&gt;Select-String&lt;/font&gt; command,
by default it will search case insensitive.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NB&lt;/strong&gt;:&amp;nbsp; I have used the full names of the parameters of the commands.&amp;nbsp;
This may look clunky, but:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
I wanted the examples to be clear, because this is a blog :-) 
&lt;li&gt;
The Tab-Completion feature works for parameter names so they are not hard to type 
&lt;li&gt;
You can use the smallest number of letters that identify a parameter.&amp;nbsp; For example,
if a cmdlet accepts a &lt;font face="Courier New" color=#000080&gt;-Recurse&lt;/font&gt; and a &lt;font face="Courier New" color=#000080&gt;-Record&lt;/font&gt; param,
you would only need to use &lt;font face="Courier New"&gt;&lt;font color=#000080&gt;-Rec&lt;em&gt;u&lt;/em&gt;&lt;/font&gt;&lt;/font&gt; and &lt;font face="Courier New"&gt;&lt;font color=#000080&gt;-Rec&lt;em&gt;o&lt;/em&gt;&lt;/font&gt;&lt;/font&gt; respectively.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#ff0000&gt;Update&lt;/font&gt;&lt;/strong&gt;: A lot of parameters accept an
array as input.&amp;nbsp; The syntax for listing these is as a comma seperated list.
&lt;/p&gt;
&lt;p&gt;
An example where this applies to our example is searching through multiple file types,
i.e. .aspx and .cs.
&lt;/p&gt;
&lt;p&gt;
The following example searches both .aspx/.ascx files and .cs files with the word
"metro" in the filename.
&lt;/p&gt;
&lt;font face="Courier New" color=#000080&gt;PS &amp;gt; Get-ChildItem -Recurse -Include *metro*.as?x,*metro*.cs &lt;/font&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening To:&amp;nbsp; Wicket Beat Sound System, Inner
Styles&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx</comments>
      <category>Geeking Out!</category>
      <category>PowerShell</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=e754a53a-21cc-4f2d-918a-6f6c16f5ab84</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e754a53a-21cc-4f2d-918a-6f6c16f5ab84</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Out of the blue I got this message from iTunes today:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/itunes_has_detected_an_ipod.jpg" border="0" />
        </p>
        <p>
iTunes has detected an iPod in recovery mode.  You must restore this iPod before
it can be used with iTunes.
</p>
        <p>
Fair enough, foo happens, life goes on.  Or so I thought.  When you restore
your iPod and reboot it, the same message comes back!  Over and over.
</p>
        <p>
The solution, it turns out according to the collective wisdom of the blogs, is to
change the drive letter of your iPod in Computer Manager.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/itunes_has_detected_an_ipod-fixed.jpg" border="0" />
        </p>
        <p>
Mine had, for reasons not yet understood, changed from J: to H: - which was in use
as a network-mapped home drive.  This conflict was being reported in iTunes as
an iPod in Recovery Mode.
</p>
        <p>
It seems like all I do these days is download iTunes updates, and the messages are
not getting any better when it goes belly-up.
</p>
        <p>
Apple, this is turning into a one way relationship!
</p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening To:  Zephyr Timbre, Absrtakt
Fusion</font>
          </strong>
        </p>
      </body>
      <title>iTunes messages not getting any better despite constant updates!</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx</link>
      <pubDate>Fri, 15 Feb 2008 02:57:52 GMT</pubDate>
      <description>&lt;p&gt;
Out of the blue I got this message from iTunes today:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/itunes_has_detected_an_ipod.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
iTunes has detected an iPod in recovery mode.&amp;nbsp; You must restore this iPod before
it can be used with iTunes.
&lt;/p&gt;
&lt;p&gt;
Fair enough, foo happens, life goes on.&amp;nbsp; Or so I thought.&amp;nbsp; When you restore
your iPod and reboot it, the same message comes back!&amp;nbsp; Over and over.
&lt;/p&gt;
&lt;p&gt;
The solution, it turns out according to the collective wisdom of the blogs, is to
change the drive letter of your iPod in Computer Manager.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/itunes_has_detected_an_ipod-fixed.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Mine had, for reasons not yet understood, changed from J: to H: - which was in use
as a network-mapped home drive.&amp;nbsp; This conflict was being reported in iTunes as
an iPod in Recovery Mode.
&lt;/p&gt;
&lt;p&gt;
It seems like all I do these days is download iTunes updates, and the messages are
not getting any better when it goes belly-up.
&lt;/p&gt;
&lt;p&gt;
Apple, this is turning into a one way relationship!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening To:&amp;nbsp; Zephyr Timbre, Absrtakt Fusion&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx</comments>
      <category>Geeking Out!</category>
      <category>UX</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=b5f2d169-b6fe-4245-af25-33c315c9d547</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,b5f2d169-b6fe-4245-af25-33c315c9d547.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,b5f2d169-b6fe-4245-af25-33c315c9d547.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b5f2d169-b6fe-4245-af25-33c315c9d547</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sydney had some very heavy storms today, on the back of what is an unseasonal string
of storms.  The drains outside my new home office were at capacity for the first
time and with the rain coming down…
</p>
        <p>
          <strong>It flooded</strong>
        </p>
        <p>
However by and large things went well.  First thing was to cut mains power to
the room as a puddle was forming under my rack.  A laptop was on hand and the
LAN infrastructure was on power protection, so all the machines that matter shut down
cleanly.  
</p>
        <p>
What did I learn?
</p>
        <ul>
          <li>
My SQL Server (Proliant ML530, 2x Xeons, 3Gb, Ultra3 RAID) takes the longest to shut
down so should be shut down first.  Tacitly I knew this, but didn’t connect the
dots at the time (with the UPS ticking away)</li>
          <li>
Power packs, in fact mains power in general should be off the floor.  I am gonna
make a policy about this.  Again it could have been a lot worse but it was a
distraction with the clock ticking.  Command hooks are cheap and I will be making
some CapEx 3M’s way shortly.</li>
          <li>
The floor is a bad place to stack paperwork.  Nothing important was lost but <em><a href="http://www.alibris.com/booksearch.detail?invid=9118554718&amp;browse=1&amp;isbn=9780760049044&amp;qsort=&amp;page=1">Rob
and Coronel</a></em> has a date with the hair dryer</li>
          <li>
One of my UPSes goes Red with plenty of juice to spare.  Might need to do more
testing.</li>
        </ul>
        <p>
 
</p>
      </body>
      <title>First DR scare at the new office</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,b5f2d169-b6fe-4245-af25-33c315c9d547.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,b5f2d169-b6fe-4245-af25-33c315c9d547.aspx</link>
      <pubDate>Thu, 07 Feb 2008 07:46:14 GMT</pubDate>
      <description>&lt;p&gt;
Sydney had some very heavy storms today, on the back of what is an unseasonal string
of storms.&amp;nbsp; The drains outside my new home office were at capacity for the first
time and with the rain coming down…
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;It flooded&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
However by and large things went well.&amp;nbsp; First thing was to cut mains power to
the room as a puddle was forming under my rack.&amp;nbsp; A laptop was on hand and the
LAN infrastructure was on power protection, so all the machines that matter shut down
cleanly.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
What did I learn?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
My SQL Server (Proliant ML530, 2x Xeons, 3Gb, Ultra3 RAID) takes the longest to shut
down so should be shut down first.&amp;nbsp; Tacitly I knew this, but didn’t connect the
dots at the time (with the UPS ticking away)&lt;/li&gt;
&lt;li&gt;
Power packs, in fact mains power in general should be off the floor.&amp;nbsp; I am gonna
make a policy about this.&amp;nbsp; Again it could have been a lot worse but it was a
distraction with the clock ticking.&amp;nbsp; Command hooks are cheap and I will be making
some CapEx 3M’s way shortly.&lt;/li&gt;
&lt;li&gt;
The floor is a bad place to stack paperwork.&amp;nbsp; Nothing important was lost but &lt;em&gt;&lt;a href="http://www.alibris.com/booksearch.detail?invid=9118554718&amp;amp;browse=1&amp;amp;isbn=9780760049044&amp;amp;qsort=&amp;amp;page=1"&gt;Rob
and Coronel&lt;/a&gt;&lt;/em&gt; has a date with the hair dryer&lt;/li&gt;
&lt;li&gt;
One of my UPSes goes Red with plenty of juice to spare.&amp;nbsp; Might need to do more
testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,b5f2d169-b6fe-4245-af25-33c315c9d547.aspx</comments>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=8e6d7f92-03be-4744-80e6-e6440be75268</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,8e6d7f92-03be-4744-80e6-e6440be75268.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,8e6d7f92-03be-4744-80e6-e6440be75268.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=8e6d7f92-03be-4744-80e6-e6440be75268</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Lots of people are familiar with obtaining and installing SSL Certificates for hosting
secure web sites, but the area of code signing seems less cohesive. I’ve compiled
some notes I have on the process together in this blog post. 
</p>
        <p>
          <strong>Yes, but who are you?</strong>
        </p>
        <p>
Reputable publishers of code signing certificates require some evidence that you are
authorized with respect to the organization you wish to have named on your certificate.
In my case, being able to produce the ASIC registration <a href="http://www.ServEssence.com">for
my company</a> was enough, YMMV. 
</p>
        <p>
This is subtle, but important.
</p>
        <ol>
          <li>
My company rego papers are credentials a Root CA (e.g Comodo, Verisign, Thawte, USERTrust
etc) uses to trusts me.</li>
          <li>
The user (implicitly) trust the Root CA by using an OS with their Certificate installed.</li>
          <li>
Ergo, the user (indirectly) trusts me.</li>
        </ol>
        <p>
          <strong>Macro projects in Microsoft Excel/Word/Visio/Access/etc</strong>
        </p>
        <p>
Once you have obtained your certificate, you are able to sign Macro projects in Office
document templates by choosing <font face="Courier New"><strong>Tools -&gt; Digital
Signature</strong></font>. 
</p>
        <p>
Your newly purchased certificate will appear in the list and by saving the project
your template is signed. The difference is now the user is asked to trust you (as
verified by the CA) and your code, rather than being asked to enable all macros. 
</p>
        <p>
          <strong>Software distributed MSI packages</strong>
        </p>
        <p>
Signing MSI packages and CAB files is more visible than ever before in Windows Vista.
This I think is a good thing, however I do worry that because there are a lot of unsigned
installers out there that users may get the message that it’s not that important. 
</p>
        <p>
Once you have got your certificate from a CA, the process couldn’t be easier. There
are a couple of ways to get signtool.exe, I usually have <a href="http://www.microsoft.com/downloads/details.aspx?familyid=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;displaylang=en">the
Windows SDK on my machines</a> which ships with it.  The command to sign ClassLibrary1.dll
for example is: (assuming signing from a pfx, not the local cert store)
</p>
        <p>
          <font face="Courier New">
            <strong>C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\signtool.exe
sign /f My_Code_Signing_Cert.pfx /p L0ng5ecr3tp@ssw0rd /d name /du http://www.MyCompany.com
/t http://timestamp.verisign.com/scripts/timestamp.dll ClassLibrary1.dll</strong>
          </font>
        </p>
        <p>
The time stamping is important here, in that certificates expire. An external time
stamp ensures that the assembly was signed while the certificate was valid. 
</p>
        <p>
          <strong>.NET Assemblies</strong>
        </p>
        <p>
Technically, signing an assembly is not unlike signing an MSI. On one hand it is easier
because you can do the signing from inside Visual Studio’s project properties 
</p>
        <p>
On the hand there is the concept of delay signing, where the actual private key is
not available to the developer on a day-to-day basis.  This added security adds
a layer of complexity that is frankly beyond the scope of this post. I will come back
and dedicate a whole post to it some time :-) 
</p>
        <p>
          <strong>Windows Logo Certification / WinQual</strong>
        </p>
        <p>
This is the only case I can think of where the vendor of the certificate matters.
A certificate from VeriSign is required to prove <a href="https://winqual.microsoft.com/default.aspx">your
identity in the WinQual program</a>, which is required for <a href="http://microsoft.mrmpslc.com/InnovateOnWindowsVista/">a
Windows Logo certification</a>. VeriSign <a href="http://www.verisign.com/code-signing/msft-organizational-certificates/index.html">has
special pricing is on offer for members of Windows Quality Online Services site</a>. 
The $99 cert from VeriSign is required for WinQual membership, and is all you need
if you already have a code signing certificate. The $399 cert is valid for both code
signing and WinQual membership. 
</p>
      </body>
      <title>Sign your way to better quality with a x509 Certificate</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,8e6d7f92-03be-4744-80e6-e6440be75268.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,8e6d7f92-03be-4744-80e6-e6440be75268.aspx</link>
      <pubDate>Wed, 23 Jan 2008 05:26:10 GMT</pubDate>
      <description>&lt;p&gt;
Lots of people are familiar with obtaining and installing SSL Certificates for hosting
secure web sites, but the area of code signing seems less cohesive. I’ve compiled
some notes I have on the process together in this blog post. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Yes, but who are you?&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Reputable publishers of code signing certificates require some evidence that you are
authorized with respect to the organization you wish to have named on your certificate.
In my case, being able to produce the ASIC registration &lt;a href="http://www.ServEssence.com"&gt;for
my company&lt;/a&gt; was enough, YMMV. 
&lt;/p&gt;
&lt;p&gt;
This is subtle, but important.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
My company rego papers are credentials a Root CA (e.g Comodo, Verisign, Thawte, USERTrust
etc) uses to trusts me.&lt;/li&gt;
&lt;li&gt;
The user (implicitly) trust the Root CA by using an OS with their Certificate installed.&lt;/li&gt;
&lt;li&gt;
Ergo, the user (indirectly) trusts me.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Macro projects in Microsoft Excel/Word/Visio/Access/etc&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Once you have obtained your certificate, you are able to sign Macro projects in Office
document templates by choosing &lt;font face="Courier New"&gt;&lt;strong&gt;Tools -&amp;gt; Digital
Signature&lt;/strong&gt;&lt;/font&gt;. 
&lt;/p&gt;
&lt;p&gt;
Your newly purchased certificate will appear in the list and by saving the project
your template is signed. The difference is now the user is asked to trust you (as
verified by the CA) and your code, rather than being asked to enable all macros. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Software distributed MSI packages&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Signing MSI packages and CAB files is more visible than ever before in Windows Vista.
This I think is a good thing, however I do worry that because there are a lot of unsigned
installers out there that users may get the message that it’s not that important. 
&lt;/p&gt;
&lt;p&gt;
Once you have got your certificate from a CA, the process couldn’t be easier. There
are a couple of ways to get signtool.exe, I usually have &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;amp;displaylang=en"&gt;the
Windows SDK on my machines&lt;/a&gt; which ships with it.&amp;nbsp; The command to sign ClassLibrary1.dll
for example is: (assuming signing from a pfx, not the local cert store)
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;strong&gt;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\signtool.exe
sign /f My_Code_Signing_Cert.pfx /p L0ng5ecr3tp@ssw0rd /d name /du http://www.MyCompany.com
/t http://timestamp.verisign.com/scripts/timestamp.dll ClassLibrary1.dll&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The time stamping is important here, in that certificates expire. An external time
stamp ensures that the assembly was signed while the certificate was valid. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;.NET Assemblies&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Technically, signing an assembly is not unlike signing an MSI. On one hand it is easier
because you can do the signing from inside Visual Studio’s project properties 
&lt;/p&gt;
&lt;p&gt;
On the hand there is the concept of delay signing, where the actual private key is
not available to the developer on a day-to-day basis.&amp;nbsp; This added security&amp;nbsp;adds
a layer of complexity that is frankly beyond the scope of this post. I will come back
and dedicate a whole post to it some time :-) 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Windows Logo Certification / WinQual&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
This is the only case I can think of where the vendor of the certificate matters.
A certificate from VeriSign is required to prove &lt;a href="https://winqual.microsoft.com/default.aspx"&gt;your
identity in the WinQual program&lt;/a&gt;, which is required for &lt;a href="http://microsoft.mrmpslc.com/InnovateOnWindowsVista/"&gt;a
Windows Logo certification&lt;/a&gt;. VeriSign &lt;a href="http://www.verisign.com/code-signing/msft-organizational-certificates/index.html"&gt;has
special pricing is on offer for members of Windows Quality Online Services site&lt;/a&gt;.&amp;nbsp;
The $99 cert from VeriSign is required for WinQual membership, and is all you need
if you already have a code signing certificate. The $399 cert is valid for both code
signing and WinQual membership. 
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,8e6d7f92-03be-4744-80e6-e6440be75268.aspx</comments>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
      <category>Secutity</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=dfe76834-02ec-4f90-bad7-47b9dbee6e11</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,dfe76834-02ec-4f90-bad7-47b9dbee6e11.aspx</pingback:target>
      <dc:creator>James Green</dc:creator>
      <wfw:comment>http://deepdark.net/CommentView,guid,dfe76834-02ec-4f90-bad7-47b9dbee6e11.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=dfe76834-02ec-4f90-bad7-47b9dbee6e11</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">So looking forward to another year in Visual
Studio, and this year in Visual Studio <i>2008 </i>no less!  
<br /><br />
I thought I'd open 2008's blog posts with a note about what is in my toolkit at the
moment for developing in VS2008.  So in no particular order... 
<br /><br /><font color="#006400"><b>What is in?</b></font><br /><br /><ul><li>
Visual Studio 2008.  I played with it since Beta1, and blogged about it a bit
too.  Living in the RTM now and quite liking it.</li><li><a href="http://www.devexpress.com/Products/NET/IDETools/Refactor/">Refactor! Pro</a> and <a href="http://www.devexpress.com/Products/NET/IDETools/CodeRush/">Coderush</a> from
Developer Express are still on my list.  There is a new version (3.0.5 at time
of writing) out that has some cool new improvements.<br /></li><li><a href="http://www.aptana.com/">Aptana Studio</a>.  I heard about this <a href="http://www.eclipse.org/">Eclipse</a>-based
IDE on the <a href="http://www.hanselminutes.com/default.aspx?showID=109">Hanselminutes</a> podcast
and had to check it out.  There are some good features in there for CSS and JS. 
Worth having around and they cram a <b>lot </b>of IDE into a tiny space!</li><li><a href="http://channel9.msdn.com/ShowPost.aspx?PostID=256835">The PowerShell Visual
Studio Templates</a>.  Powershell is getting more and more use in my life, and
I love the idea of rolling your own cmdlet (pronounced:  "command-let") to manage
your own apps.  The page says they are for VS2005 but they are good for VS2008
as well.</li><li><a href="http://nmock.org/">NMock</a>.  I know there are plenty of mocking frameworks
out there each with their own style.  I just happen to like NMock.</li></ul><br /><br /><font color="#ff0000"><b>What is out?</b></font><br /><br /><ul><li>
The notable exclusion from my 2008 dev environment is <a href="http://www.nunit.org/">NUnit</a>. 
I have been a fan and user of NUnit for some time, but am going with the MSTest-based
unit testing framework that is built in to Visual Studio 2008.</li><li><a href="http://nant.sourceforge.net/">NAnt </a>is on thin ice in my environment too
in favour of MSBuild.  This is largely for pragmatic reasons, there is project
information kept in both the VS Solution and in the NAnt file and my preference is
to maintain it in one spot only.</li></ul><br />
And that's it!  I like to keep it light.  For Continuous Integration I am
using <a href="http://ccnet.thoughtworks.com">CruseControl.NET</a>.<br /><br />
I'm still searching for the perfect XPath/XSLT environment.  Visual Studio is
OK for the moment, but I have a feeling that the perfect tool may just be <a href="http://www.eclipse.org/">Eclipse</a> based
:)<br /></body>
      <title>What's in my developer toolbox for 2008</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,dfe76834-02ec-4f90-bad7-47b9dbee6e11.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,dfe76834-02ec-4f90-bad7-47b9dbee6e11.aspx</link>
      <pubDate>Mon, 14 Jan 2008 12:45:38 GMT</pubDate>
      <description>So looking forward to another year in Visual Studio, and this year in Visual Studio &lt;i&gt;2008 &lt;/i&gt;no
less!&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
I thought I'd open 2008's blog posts with a note about what is in my toolkit at the
moment for developing in VS2008.&amp;nbsp; So in no particular order... 
&lt;br&gt;
&lt;br&gt;
&lt;font color="#006400"&gt;&lt;b&gt;What is in?&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Visual Studio 2008.&amp;nbsp; I played with it since Beta1, and blogged about it a bit
too.&amp;nbsp; Living in the RTM now and quite liking it.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.devexpress.com/Products/NET/IDETools/Refactor/"&gt;Refactor! Pro&lt;/a&gt; and &lt;a href="http://www.devexpress.com/Products/NET/IDETools/CodeRush/"&gt;Coderush&lt;/a&gt; from
Developer Express are still on my list.&amp;nbsp; There is a new version (3.0.5 at time
of writing) out that has some cool new improvements.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.aptana.com/"&gt;Aptana Studio&lt;/a&gt;.&amp;nbsp; I heard about this &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;-based
IDE on the &lt;a href="http://www.hanselminutes.com/default.aspx?showID=109"&gt;Hanselminutes&lt;/a&gt; podcast
and had to check it out.&amp;nbsp; There are some good features in there for CSS and JS.&amp;nbsp;
Worth having around and they cram a &lt;b&gt;lot &lt;/b&gt;of IDE into a tiny space!&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=256835"&gt;The PowerShell Visual
Studio Templates&lt;/a&gt;.&amp;nbsp; Powershell is getting more and more use in my life, and
I love the idea of rolling your own cmdlet (pronounced:&amp;nbsp; "command-let") to manage
your own apps.&amp;nbsp; The page says they are for VS2005 but they are good for VS2008
as well.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://nmock.org/"&gt;NMock&lt;/a&gt;.&amp;nbsp; I know there are plenty of mocking frameworks
out there each with their own style.&amp;nbsp; I just happen to like NMock.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color="#ff0000"&gt;&lt;b&gt;What is out?&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
The notable exclusion from my 2008 dev environment is &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt;.&amp;nbsp;
I have been a fan and user of NUnit for some time, but am going with the MSTest-based
unit testing framework that is built in to Visual Studio 2008.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://nant.sourceforge.net/"&gt;NAnt &lt;/a&gt;is on thin ice in my environment too
in favour of MSBuild.&amp;nbsp; This is largely for pragmatic reasons, there is project
information kept in both the VS Solution and in the NAnt file and my preference is
to maintain it in one spot only.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
And that's it!&amp;nbsp; I like to keep it light.&amp;nbsp; For Continuous Integration I am
using &lt;a href="http://ccnet.thoughtworks.com"&gt;CruseControl.NET&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
I'm still searching for the perfect XPath/XSLT environment.&amp;nbsp; Visual Studio is
OK for the moment, but I have a feeling that the perfect tool may just be &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; based
:)&lt;br&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,dfe76834-02ec-4f90-bad7-47b9dbee6e11.aspx</comments>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=9071b05e-de49-4c43-842f-ebd4cd972248</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,9071b05e-de49-4c43-842f-ebd4cd972248.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,9071b05e-de49-4c43-842f-ebd4cd972248.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9071b05e-de49-4c43-842f-ebd4cd972248</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">One question I have strugled to answer
clearly in past is <i><b>What is the difference between Windows Sharepoint Services
(WSS 3.0) and Microsoft Office Sharepoint Server?</b></i><br /><br />
The first difference is in the name, and is best highlighted in the words of <a href="http://www.campbellassociates.ca/blog/default.aspx">Richard
Campbel</a> of <a href="http://www.dotnetrocks.com/">DNR</a>/<a href="http://www.runasradio.com/">Run-As</a> fame:  <i><font color="#000080">When
it is a serv<b>ice</b> it is free, when it is serv<b>er</b> you have to pay for it.</font></i><br /><br />
The following diagram shows how I keep them apart in my mind:<br /><font color="#808080" size="2"><b></b></font><p></p><img src="http://deepdark.net/content/binary/Sharepoint_V1.jpg" border="0" /><br /><br /><br />
To explain a bit: this is not a complete list of features, and not the most important
features, just my favs :-)<br /><br />
So if you have any features that you think are really important and didn't get a mention,
leave me a comment!<br /><br /><font color="#808080" size="2"><b>Listening To: You're Living All Over Me, Dinosaur
Jr.</b></font><br /></body>
      <title>The MOSS / WSS decision</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,9071b05e-de49-4c43-842f-ebd4cd972248.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,9071b05e-de49-4c43-842f-ebd4cd972248.aspx</link>
      <pubDate>Wed, 12 Dec 2007 06:03:40 GMT</pubDate>
      <description>One question I have strugled to answer clearly in past is &lt;i&gt;&lt;b&gt;What is the difference
between Windows Sharepoint Services (WSS 3.0) and Microsoft Office Sharepoint Server?&lt;/b&gt;&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
The first difference is in the name, and is best highlighted in the words of &lt;a href="http://www.campbellassociates.ca/blog/default.aspx"&gt;Richard
Campbel&lt;/a&gt; of &lt;a href="http://www.dotnetrocks.com/"&gt;DNR&lt;/a&gt;/&lt;a href="http://www.runasradio.com/"&gt;Run-As&lt;/a&gt; fame:&amp;nbsp; &lt;i&gt;&lt;font color="#000080"&gt;When
it is a serv&lt;b&gt;ice&lt;/b&gt; it is free, when it is serv&lt;b&gt;er&lt;/b&gt; you have to pay for it.&lt;/font&gt;&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
The following diagram shows how I keep them apart in my mind:&lt;br&gt;
&lt;font color="#808080" size="2"&gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://deepdark.net/content/binary/Sharepoint_V1.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
To explain a bit: this is not a complete list of features, and not the most important
features, just my favs :-)&lt;br&gt;
&lt;br&gt;
So if you have any features that you think are really important and didn't get a mention,
leave me a comment!&lt;br&gt;
&lt;br&gt;
&lt;font color="#808080" size="2"&gt;&lt;b&gt;Listening To: You're Living All Over Me, Dinosaur
Jr.&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,9071b05e-de49-4c43-842f-ebd4cd972248.aspx</comments>
      <category>Geeking Out!</category>
      <category>Sharepoint Annoyances</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=dffd5242-eb06-448c-9697-b39d7d190492</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,dffd5242-eb06-448c-9697-b39d7d190492.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,dffd5242-eb06-448c-9697-b39d7d190492.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=dffd5242-eb06-448c-9697-b39d7d190492</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The problem with IIS6 that I have been curious about but up until today never needed
a solution for.
</p>
        <p>
The problem I am talking about is that with the IIS 6.0 UI you cannot set a host
header on a SSL port for a domain.  You can live a long and happy life with a
1-cert-per-server config but with the case of a wildcard cert (one covering all subdomains
of the domain it was purchased for) you really want to be able to take advantage of
these extra subdomains.
</p>
        <p>
Consider an example from a server below.  The two sites that are highlighted
belong to the same domain - Lets call the <font color="#ff0000"><strong>red </strong></font>one <font face="Courier New" color="#000000">www.MySite.com</font> and
the <strong><font color="#0000ff">blue</font></strong> one <font face="Courier New" color="#000000">shop.MySite.com</font>. 
There is a wildcard cert installed on the machine for <font face="Courier New">*.MySite.com</font>.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/iis_ssl_adsultil.gif" border="0" />
        </p>
        <p>
The first one is easy.  Install the cert and assign it to the site.
</p>
        <p>
Setting this on subsequent sites on the same box is where you get the problem. 
It can be done, and it isn't hard, you just have to know the trick!
</p>
        <p>
          <strong>The trick is the <font face="Courier New">adsutil.vbs</font> script that is
included when you install IIS</strong>.  The default path to find these scripts
is: <font face="Courier New">C:\Inetpub\AdminScripts</font>.
</p>
        <p>
The process for assigning a host header for SSL to all subsequent sitess is:
</p>
        <ol>
          <li>
Don't assign a SSL port number to the second site.  Leave it on port 80 for now</li>
          <li>
Open a command window and change to the path with adsutil.vbs.</li>
          <li>
Run the following command:  <font face="Courier New" color="#000000"><strong>cscript.exe
adsutil.vbs set /w3svc/<em>&lt;site identifier&gt;</em>/SecureBindings ":443<em>:&lt;host
header&gt;"</em></strong></font>   In our example above the <em>&lt;site
identifier&gt;</em> is replaced with the Id of the blue site, <font face="Courier New">1023406912</font>,
and the <em>&lt;host header&gt;</em> is replaced with <font face="Courier New">shop.MySite.com</font></li>
          <li>
adsutil will assign port 443 to the site, you do not need to reset IIS</li>
        </ol>
        <p>
          <a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d3df4bc9-0954-459a-b5e6-7a8bc462960c.mspx?mfr=true">TechNet
has a rundown of all the things you can do with adsutil.vbs and IIS6</a>, so check
it out.  But don't get too attached - the Metabase is not showing up for
IIS 7!
</p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening To: The Boatman's Call, Nick Cave
and the Bad Seeds</font>
          </strong>
        </p>
      </body>
      <title>Running multiple secure (SSL) sites with host headers and a wildcard SSL Certificate</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,dffd5242-eb06-448c-9697-b39d7d190492.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,dffd5242-eb06-448c-9697-b39d7d190492.aspx</link>
      <pubDate>Tue, 27 Nov 2007 08:32:41 GMT</pubDate>
      <description>&lt;p&gt;
The problem with IIS6 that I have been curious about but up until today never needed
a solution for.
&lt;/p&gt;
&lt;p&gt;
The problem I am talking about is&amp;nbsp;that with the IIS 6.0 UI you cannot set a host
header on a SSL port for a domain.&amp;nbsp; You can live a long and happy life with a
1-cert-per-server config but with the case of a wildcard cert (one covering all subdomains
of the domain it was purchased for) you really want to be able to take advantage of
these extra subdomains.
&lt;/p&gt;
&lt;p&gt;
Consider an example from a server below.&amp;nbsp; The two sites that are highlighted
belong to the same domain - Lets call the &lt;font color=#ff0000&gt;&lt;strong&gt;red &lt;/strong&gt;&lt;/font&gt;one &lt;font face="Courier New" color=#000000&gt;www.MySite.com&lt;/font&gt; and
the &lt;strong&gt;&lt;font color=#0000ff&gt;blue&lt;/font&gt;&lt;/strong&gt; one &lt;font face="Courier New" color=#000000&gt;shop.MySite.com&lt;/font&gt;.&amp;nbsp;
There is a wildcard cert installed on the machine for &lt;font face="Courier New"&gt;*.MySite.com&lt;/font&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/iis_ssl_adsultil.gif" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The first one is easy.&amp;nbsp; Install the cert and assign it to the site.
&lt;/p&gt;
&lt;p&gt;
Setting this on subsequent sites on the same box is where you get the problem.&amp;nbsp;
It can be done, and it isn't hard, you just have to know the trick!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The trick is the &lt;font face="Courier New"&gt;adsutil.vbs&lt;/font&gt; script that is
included when you install IIS&lt;/strong&gt;.&amp;nbsp; The default path to find these scripts
is: &lt;font face="Courier New"&gt;C:\Inetpub\AdminScripts&lt;/font&gt;.
&lt;/p&gt;
&lt;p&gt;
The process for assigning a host header for SSL to all subsequent sitess is:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Don't assign a SSL port number to the second site.&amp;nbsp; Leave it on port 80 for now&lt;/li&gt;
&lt;li&gt;
Open a command window and change to the path with adsutil.vbs.&lt;/li&gt;
&lt;li&gt;
Run the following command:&amp;nbsp; &lt;font face="Courier New" color=#000000&gt;&lt;strong&gt;cscript.exe
adsutil.vbs set /w3svc/&lt;em&gt;&amp;lt;site identifier&amp;gt;&lt;/em&gt;/SecureBindings ":443&lt;em&gt;:&amp;lt;host
header&amp;gt;"&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp; In our example above the &lt;em&gt;&amp;lt;site
identifier&amp;gt;&lt;/em&gt; is replaced with the Id of the blue site, &lt;font face="Courier New"&gt;1023406912&lt;/font&gt;,
and the &lt;em&gt;&amp;lt;host header&amp;gt;&lt;/em&gt; is replaced with &lt;font face="Courier New"&gt;shop.MySite.com&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
adsutil will assign port 443 to the site, you do not need to reset IIS&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d3df4bc9-0954-459a-b5e6-7a8bc462960c.mspx?mfr=true"&gt;TechNet
has a rundown of all the things you can do with adsutil.vbs and IIS6&lt;/a&gt;, so check
it out.&amp;nbsp; But don't get too attached -&amp;nbsp;the Metabase is not showing up for
IIS 7!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening To: The Boatman's Call, Nick Cave and
the Bad Seeds&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,dffd5242-eb06-448c-9697-b39d7d190492.aspx</comments>
      <category>ASP.Net</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just saw these and thought they were worthy of linkage
</p>
        <p>
          <a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=127135">Clinic
2806: Microsoft® Security Guidance Training for Developers</a>.
</p>
        <p>
          <a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=127163">Clinic
2807: Microsoft® Security Guidance Training for Developers II</a>.
</p>
        <p>
There is a good breadth of topics covered, and the price is right :-)
</p>
      </body>
      <title>Free Security Guidance Training for Developers</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8.aspx</link>
      <pubDate>Tue, 20 Nov 2007 12:37:00 GMT</pubDate>
      <description>&lt;p&gt;
I just saw these and thought they were worthy of linkage
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=127135"&gt;Clinic
2806: Microsoft® Security Guidance Training for Developers&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=127163"&gt;Clinic
2807: Microsoft® Security Guidance Training for Developers II&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
There is a good breadth of topics covered, and the price is right :-)
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,0b2ffbc6-f4de-4ef1-af36-b861fe6a0bd8.aspx</comments>
      <category>Downloads</category>
      <category>Geeking Out!</category>
      <category>Secutity</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=1a093d04-9717-44ca-bf05-b99b0089a4c2</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,1a093d04-9717-44ca-bf05-b99b0089a4c2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,1a093d04-9717-44ca-bf05-b99b0089a4c2.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1a093d04-9717-44ca-bf05-b99b0089a4c2</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
OK I'm wheeling out the <a href="http://deepdark.net/CategoryView,category,Sharepoint%2BAnnoyances.aspx">Sharepoint
Annoyances</a> category for one last random show - until next time (kinda like the
Rolling Stones)
</p>
        <p>
The problem comes when you remove WSS 3.0 from a box and the instance of <strong>Microsoft
SQL Server 2005 Embedded Edition (SSEE)</strong> does not get removed.  
</p>
        <p>
This is by design, however if the reason you are removing WSS 3.0 is because of a
problem with the SSEE database you have a problem.
</p>
        <p>
It turns out it is easy to uninstall after all - <a href="http://jclabaut.free.fr/serendipity/index.php?/archives/27-How-to-Uninstall-Microsoft-SQL-Server-2005-Embedded-Edition-SSEE-Instance.html">I
found the answer via Jérémie Clabaut's blog</a>.
</p>
        <p>
The good news is it is a one liner to call msiexec.  Quoting Jérémie:
</p>
        <p>
          <font color="#000080">
            <em>msiexec /x {CEB5780F-1A70-44A9-850F-DE6C4F6AA8FB} callerid=ocsetup.exe</em>
          </font>
        </p>
        <p>
As is documented elsewhere - don't forget to move away / delete any errant Mdf/Ldf
files as they can interfere with the reinstall.  
</p>
        <p>
Thanks Jérémie!
</p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening To:  The Velvet Underground
and Nico, The Velvet Underground</font>
          </strong>
        </p>
      </body>
      <title>Removing SQL Server Embedded Edition after Windows Sharepoint Services 3.0</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,1a093d04-9717-44ca-bf05-b99b0089a4c2.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,1a093d04-9717-44ca-bf05-b99b0089a4c2.aspx</link>
      <pubDate>Mon, 19 Nov 2007 10:13:12 GMT</pubDate>
      <description>&lt;p&gt;
OK I'm wheeling out the &lt;a href="http://deepdark.net/CategoryView,category,Sharepoint%2BAnnoyances.aspx"&gt;Sharepoint
Annoyances&lt;/a&gt; category for one last random show - until next time (kinda like the
Rolling Stones)
&lt;/p&gt;
&lt;p&gt;
The problem comes when you remove WSS 3.0 from a box and the instance of &lt;strong&gt;Microsoft
SQL Server 2005 Embedded Edition (SSEE)&lt;/strong&gt; does not get removed.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
This is by design, however if the reason you are removing WSS 3.0 is because of a
problem with the SSEE database you have a problem.
&lt;/p&gt;
&lt;p&gt;
It turns out it is easy to uninstall after all - &lt;a href="http://jclabaut.free.fr/serendipity/index.php?/archives/27-How-to-Uninstall-Microsoft-SQL-Server-2005-Embedded-Edition-SSEE-Instance.html"&gt;I
found the answer via Jérémie Clabaut's blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The good news is it is a one liner to call msiexec.&amp;nbsp; Quoting Jérémie:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;&lt;em&gt;msiexec /x {CEB5780F-1A70-44A9-850F-DE6C4F6AA8FB} callerid=ocsetup.exe&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
As is documented elsewhere - don't forget to move away / delete any errant Mdf/Ldf
files as they can interfere with the reinstall.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Thanks Jérémie!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening To:&amp;nbsp; The Velvet Underground and
Nico, The Velvet Underground&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,1a093d04-9717-44ca-bf05-b99b0089a4c2.aspx</comments>
      <category>Database</category>
      <category>Geeking Out!</category>
      <category>Sharepoint Annoyances</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=43976bf7-cb60-4ecf-8adb-855afe3006c0</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,43976bf7-cb60-4ecf-8adb-855afe3006c0.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,43976bf7-cb60-4ecf-8adb-855afe3006c0.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=43976bf7-cb60-4ecf-8adb-855afe3006c0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So I recently got my first Bluetooth phone.  The whole purpose of the phone was
to keep my calendar on the road <a href="http://deepdark.net/PermaLink,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx">in
sync with my shiny new notebook</a>, and it worked out OK actually.
</p>
        <p>
Being a nerd I was curious about the Bluetooth protocol and how it works, the following
is an architectural overview of how the protocol is used to sync calendar and todo
items:
</p>
        <p>
          <strong>
            <font color="#000080">Outlook</font>
          </strong>: oh Hai, iz me 
<br /><font color="#006400"><strong>Phone</strong></font>: Hai 
<br /><strong><font color="#000080">Outlook</font></strong>: haz new itemz? 
<br /><font color="#006400"><strong>Phone</strong></font>: ya 
<br /><strong><font color="#000080">Outlook</font></strong>: o rly? 
<br /><font color="#006400"><strong>Phone</strong></font>: ya rly, Lulz 
<br /><strong><font color="#000080">Outlook</font></strong>: Can has new itemz? 
<br /><font color="#006400"><strong>Phone</strong></font>: here iz itemz rite now, k 
<br /><strong><font color="#000080">Outlook</font></strong>: I has new itemz2 
<br /><font color="#006400"><strong>Phone</strong></font>: Srsly? 
<br /><strong><font color="#000080">Outlook</font></strong>: ya, here iz them 
<br /><font color="#006400"><strong>Phone</strong></font>: we kool? awsum. kthxbai 
</p>
      </body>
      <title>Bluetooth protocol - an architectural overview</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,43976bf7-cb60-4ecf-8adb-855afe3006c0.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,43976bf7-cb60-4ecf-8adb-855afe3006c0.aspx</link>
      <pubDate>Wed, 14 Nov 2007 00:12:24 GMT</pubDate>
      <description>&lt;p&gt;
So I recently got my first Bluetooth phone.&amp;nbsp; The whole purpose of the phone was
to keep my calendar on the road &lt;a href="http://deepdark.net/PermaLink,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx"&gt;in
sync with my shiny new notebook&lt;/a&gt;, and it worked out OK actually.
&lt;/p&gt;
&lt;p&gt;
Being a nerd I was curious about the Bluetooth protocol and how it works, the following
is an architectural overview of how the protocol is used to sync calendar and todo
items:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#000080&gt;Outlook&lt;/font&gt;&lt;/strong&gt;: oh Hai, iz me 
&lt;br&gt;
&lt;font color=#006400&gt;&lt;strong&gt;Phone&lt;/strong&gt;&lt;/font&gt;: Hai 
&lt;br&gt;
&lt;strong&gt;&lt;font color=#000080&gt;Outlook&lt;/font&gt;&lt;/strong&gt;: haz new itemz? 
&lt;br&gt;
&lt;font color=#006400&gt;&lt;strong&gt;Phone&lt;/strong&gt;&lt;/font&gt;: ya 
&lt;br&gt;
&lt;strong&gt;&lt;font color=#000080&gt;Outlook&lt;/font&gt;&lt;/strong&gt;: o rly? 
&lt;br&gt;
&lt;font color=#006400&gt;&lt;strong&gt;Phone&lt;/strong&gt;&lt;/font&gt;: ya rly, Lulz 
&lt;br&gt;
&lt;strong&gt;&lt;font color=#000080&gt;Outlook&lt;/font&gt;&lt;/strong&gt;: Can has new itemz? 
&lt;br&gt;
&lt;font color=#006400&gt;&lt;strong&gt;Phone&lt;/strong&gt;&lt;/font&gt;: here iz itemz rite now, k 
&lt;br&gt;
&lt;strong&gt;&lt;font color=#000080&gt;Outlook&lt;/font&gt;&lt;/strong&gt;: I has new itemz2 
&lt;br&gt;
&lt;font color=#006400&gt;&lt;strong&gt;Phone&lt;/strong&gt;&lt;/font&gt;: Srsly? 
&lt;br&gt;
&lt;strong&gt;&lt;font color=#000080&gt;Outlook&lt;/font&gt;&lt;/strong&gt;: ya, here iz them 
&lt;br&gt;
&lt;font color=#006400&gt;&lt;strong&gt;Phone&lt;/strong&gt;&lt;/font&gt;: we kool? awsum. kthxbai 
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,43976bf7-cb60-4ecf-8adb-855afe3006c0.aspx</comments>
      <category>Funnies</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=12fb2397-0496-4677-aae2-46b8cbf39489</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,12fb2397-0496-4677-aae2-46b8cbf39489.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,12fb2397-0496-4677-aae2-46b8cbf39489.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=12fb2397-0496-4677-aae2-46b8cbf39489</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I got this message again this morning and I am so sick of it!
</p>
        <p>
          <img src="http://deepdark.net/content/binary/Bad.png" border="0" />
        </p>
        <p>
Only 16 chars?  O RLY?  What if my dog's name is more than 16 chars long?
</p>
        <p>
Further investigation of the JS source reveals that other error messages include:
</p>
        <p>
          <em>
            <font color="#a52a2a">Password can only contain letters and numbers</font>
          </em>
        </p>
        <p>
I am always talking to people about password policy and no wonder people are confused. 
So much good guidance out there is buried under so much rubbish.
</p>
        <p>
Compare this to the other user experience that is becoming more common:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/Good.png" border="0" />
        </p>
        <p>
Much better!  There was a time when it would be appropriate to explain why the
second case is better... but in this day and age it should be obvious.  It is
all about coercing people to do good passwords until they are made obsolete in the
future.
</p>
        <p>
Since Version 1.0.60731.0 of <a href="http://www.asp.net/AJAX/AjaxControlToolkit/">the
ASP.NET AJAX Control Toolkit</a> there has been a <a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/PasswordStrength/PasswordStrength.aspx">quite
good Password Strength control available</a> to the ASP.NET platform.  Everyone
else (like my first, deliberately anonymous example) can just Google it!  There
are plenty of samples available.
</p>
        <p>
One that I liked was <a href="http://www.gerd-riesselmann.net/">at Gerd Riesselmann's
blog</a>, where he shares (GPL) a simple example suitable for learning how this is
done.
</p>
        <p>
What do you think?  Is there any excuse for giving poor password guidance in
2007?
</p>
      </body>
      <title>Password Strength, again!  </title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,12fb2397-0496-4677-aae2-46b8cbf39489.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,12fb2397-0496-4677-aae2-46b8cbf39489.aspx</link>
      <pubDate>Mon, 05 Nov 2007 23:37:32 GMT</pubDate>
      <description>&lt;p&gt;
I got this message again this morning and I am so sick of it!
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/Bad.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Only 16 chars?&amp;nbsp; O RLY?&amp;nbsp; What if my dog's name is more than 16 chars long?
&lt;/p&gt;
&lt;p&gt;
Further investigation of the JS source reveals that other error messages include:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a52a2a&gt;Password can only contain letters and numbers&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
I am always talking to people about password policy and no wonder people are confused.&amp;nbsp;
So much good guidance out there is buried under so much rubbish.
&lt;/p&gt;
&lt;p&gt;
Compare this to the other user experience that is becoming more common:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/Good.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Much better!&amp;nbsp; There was a time when it would be appropriate to explain why the
second case is better... but in this day and age it should be obvious.&amp;nbsp; It is
all about coercing people to do good passwords until they are made obsolete in the
future.
&lt;/p&gt;
&lt;p&gt;
Since Version 1.0.60731.0 of &lt;a href="http://www.asp.net/AJAX/AjaxControlToolkit/"&gt;the
ASP.NET AJAX Control Toolkit&lt;/a&gt; there has been a &lt;a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/PasswordStrength/PasswordStrength.aspx"&gt;quite
good Password Strength control available&lt;/a&gt; to the ASP.NET platform.&amp;nbsp; Everyone
else (like my first, deliberately anonymous example) can just Google it!&amp;nbsp; There
are plenty of samples available.
&lt;/p&gt;
&lt;p&gt;
One that I liked was &lt;a href="http://www.gerd-riesselmann.net/"&gt;at Gerd Riesselmann's
blog&lt;/a&gt;, where he shares (GPL) a simple example suitable for learning how this is
done.
&lt;/p&gt;
&lt;p&gt;
What do you think?&amp;nbsp; Is there any excuse for giving poor password guidance in
2007?
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,12fb2397-0496-4677-aae2-46b8cbf39489.aspx</comments>
      <category>ASP.Net</category>
      <category>Geeking Out!</category>
      <category>Secutity</category>
      <category>That will be all (rant)</category>
      <category>UX</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=9ff94a13-7b23-4be4-a61f-a47e5ca81bba</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,9ff94a13-7b23-4be4-a61f-a47e5ca81bba.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,9ff94a13-7b23-4be4-a61f-a47e5ca81bba.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9ff94a13-7b23-4be4-a61f-a47e5ca81bba</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>(I know, every year!  and you will see it next year too so long as I am able
to type :) )<br /></em>
        </p>
        <p>
Because 31 oct == 25 dec
</p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening to: You am I, Hourly Daily</font>
          </strong>
        </p>
      </body>
      <title>Why do programmers confuse Halloween &amp; Christmas</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,9ff94a13-7b23-4be4-a61f-a47e5ca81bba.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,9ff94a13-7b23-4be4-a61f-a47e5ca81bba.aspx</link>
      <pubDate>Tue, 30 Oct 2007 10:05:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;(I know, every year!&amp;nbsp; and you will see it next year too so long as I am able
to type :) )&lt;br&gt;
&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Because 31 oct == 25 dec
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening to: You am I, Hourly Daily&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,9ff94a13-7b23-4be4-a61f-a47e5ca81bba.aspx</comments>
      <category>Funnies</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=78a1a9b4-f5e9-4765-9de4-358acdc47f08</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=78a1a9b4-f5e9-4765-9de4-358acdc47f08</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So today I took delivery of my shiny new XPS M1330, here is my thoughts so far [end
of day 1]
</p>
        <p>
          <strong>Background:</strong>
        </p>
        <p>
For years (and years…) I have been using a Dell Inspiron 1100.  I think of it
as the little laptop that could.  I had a P4 and 1Gb of RAM but it didn’t take
much to bring it to a halt.  It also generated enough heat that I had global
warming protesters picketed outside for a month… I tried Vista on it and it had a
WEI of 1, and to top it off I cannot live in 1024x768 for one more day!
</p>
        <p>
So trying to run the latest hotness like Visual Studio 2008 and SQL Server 2008 betas
was completely out of the question.
</p>
        <p>
It would also blue screen switching between screen and VGA out.  OK, enough space
spent on the old, bring on the new!
</p>
        <p>
          <strong>The new hotness</strong>
        </p>
        <p>
So I bit the bullet and went in for a new laptop.  After much research I chose
the Dell XPS M1330.  In <strong><font color="#ff0000">red</font></strong>. 
Pillar box red.  Sexy lingerie red.  Very very red.
</p>
        <p>
While the 64Gb Solid State hard drive would have been an awesome inclusion, for the
extra $1000 I just couldn’t do it.
</p>
        <p>
          <strong>Out of Box experience.</strong>
        </p>
        <p>
It comes in an XPS sleeve that is actually pretty good quality, down to magnetic fasteners
and neoprene sides.
</p>
        <p>
Further investigation revealed a folder to keep the CDs and manuals.  It looked
something like an executive folder you might take to a meeting.  A nice surprise
in there was an XPS microfibre cloth.
</p>
        <p>
The first thing I noticed was the weight.  This is one very light machine. 
Thin, small and light.  
</p>
        <p>
Upon plugging it in, the screen struck me as being exactly what the doctor ordered
for the 1024x768 blues.  It is clear, bright and crisp.  Also very thin!
</p>
        <p>
          <strong>Design, design, design</strong>
        </p>
        <p>
It’s the details.  
</p>
        <p>
If you search for pictures of the M1330 you will always come up with a side profile
but the coolness of the hinge design for the lid didn’t dawn on me until I saw it
– no, until I felt it.
</p>
        <p>
At the top of the keyboard are a set of controls to eject the CD/DVD, control the
audio &amp; playback etc.  These are not buttons per se, but little touch sensitive
spots that glow when you touch them.  Very cool.
</p>
        <p>
The XPS M1330 comes with Creative EP-630 Noise Isolation earphones that compare quite
favourably to my standard work wear – Philips SHP805.  They have 3 sizes of rubber
seal for your ear, dunno how they feel when used for extended periods yet.  This
was a nice surprise.
</p>
        <p>
...and there are other little supprises all throughout this machine.  Someone,
somewhere put thought into the design of this machine and it shows.
</p>
        <p>
          <strong>Now, to uninstall the crapware…</strong>
        </p>
        <p>
Having had a bit to do with Dell over the years, first thing I always do is open Control
Panel and uninstall the bloat.  I was pleased to see so little preinstalled on
my machine. 
</p>
        <p>
I removed:
</p>
        <ul>
          <li>
Google Desktop</li>
          <li>
Google IE Toolbar</li>
          <li>
Microsoft Works  (I have Office and didn’t want to pay for a redundant CAL, so
Works is the only choice when ordering)</li>
        </ul>
        <p>
Things that may go if they show me the first sign of trouble, but can stay for now:
</p>
        <ul>
          <li>
Dell Browser Address Error Redirection (whatever that is!)</li>
          <li>
Roxio Creator Home</li>
        </ul>
        <p>
          <strong>So, what’s not to like:</strong>
        </p>
        <p>
There are a couple of minor things – so minor I only list them for completeness. 
None of these are an obstacle to being very happy with this machine:
</p>
        <ol>
          <li>
When you eject a CD the sound is like strangling a pigeon. Don’t ask me how I know
what that sounds like, it just does.</li>
          <li>
Chipset does not support Intel VT.  I use Virtual PC a lot, but VMs run fine
without it.</li>
          <li>
The system comes with a 10Gb recovery partition.  This isn’t a worry to me with
250Gb but if I had gone for the 64Gb Solid State drive for the extra thou’ I would
be nuking this straight away</li>
          <li>
The battery in the media remote is tricky to seat properly.  
</li>
        </ol>
        <p>
          <strong>The Essential Stats:<br /></strong>
        </p>
        <p>
Dell XPS M1330
</p>
        <p>
          <font color="#000080">
            <em>
              <strong>CPU</strong>
            </em>
          </font>: Intel Core2 Duo @ T7500
2.2Ghz
</p>
        <p>
          <strong>
            <em>
              <font color="#000080">OS</font>
            </em>
          </strong>: Windows Vista Business
32 Bit
</p>
        <p>
          <strong>
            <em>
              <font color="#000080">RAM</font>
            </em>
          </strong>: 4Gb RAM installed – 3.5Gb
Visible to 32bit OS
</p>
        <p>
          <strong>
            <em>
              <font color="#000080">WEI</font>
            </em>
          </strong>:  4.0, broken down
as follows
</p>
        <ul>
          <li>
processor: 5.1</li>
          <li>
RAM: 4.8</li>
          <li>
Graphics: <font color="#ff0000"><strong>4.0</strong></font></li>
          <li>
Gaming Graphics: 4.5</li>
          <li>
Primary Hard Disk: <strong><font color="#006400">5.2<br /></font></strong></li>
        </ul>
        <p>
          <strong>
            <em>
              <font color="#000080">Video</font>
            </em>
          </strong>: NVidia 8400M GS w/ 128Mb
RAM – 1280 x 800 x 32 on 13.3” 
<br /></p>
        <p>
          <strong>
            <em>
              <font color="#000080">HDD</font>
            </em>
          </strong>: 250Gb WD SATA<br /></p>
        <p>
          <strong>Overall</strong>
        </p>
        <p>
Since it is only day 1 I can't be definitive, but this machine shows every sign of
being a great developer PC.  Recommended.  
</p>
      </body>
      <title>Hardware review:  Dell XPS M1330 as a developer machine</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx</link>
      <pubDate>Wed, 24 Oct 2007 09:23:41 GMT</pubDate>
      <description>&lt;p&gt;
So today I took delivery of my shiny new XPS M1330, here is my thoughts so far [end
of day 1]
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Background:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For years (and years…) I have been using a Dell Inspiron 1100.&amp;nbsp; I think of it
as the little laptop that could.&amp;nbsp; I had a P4 and 1Gb of RAM but it didn’t take
much to bring it to a halt.&amp;nbsp; It also generated enough heat that I had global
warming protesters picketed outside for a month… I tried Vista on it and it had a
WEI of 1, and to top it off I cannot live in 1024x768 for one more day!
&lt;/p&gt;
&lt;p&gt;
So trying to run the latest hotness like Visual Studio 2008 and SQL Server 2008 betas
was completely out of the question.
&lt;/p&gt;
&lt;p&gt;
It would also blue screen switching between screen and VGA out.&amp;nbsp; OK, enough space
spent on the old, bring on the new!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The new hotness&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So I bit the bullet and went in for a new laptop.&amp;nbsp; After much research I chose
the Dell XPS M1330.&amp;nbsp; In &lt;strong&gt;&lt;font color=#ff0000&gt;red&lt;/font&gt;&lt;/strong&gt;.&amp;nbsp;
Pillar box red.&amp;nbsp; Sexy lingerie red.&amp;nbsp; Very very red.
&lt;/p&gt;
&lt;p&gt;
While the 64Gb Solid State hard drive would have been an awesome inclusion, for the
extra $1000 I just couldn’t do it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Out of Box experience.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
It comes in an XPS sleeve that is actually pretty good quality, down to magnetic fasteners
and neoprene sides.
&lt;/p&gt;
&lt;p&gt;
Further investigation revealed a folder to keep the CDs and manuals.&amp;nbsp; It looked
something like an executive folder you might take to a meeting.&amp;nbsp; A nice surprise
in there was an XPS microfibre cloth.
&lt;/p&gt;
&lt;p&gt;
The first thing I noticed was the weight.&amp;nbsp; This is one very light machine.&amp;nbsp;
Thin, small and light.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Upon plugging it in, the screen struck me as being exactly what the doctor ordered
for the 1024x768 blues.&amp;nbsp; It is clear, bright and crisp.&amp;nbsp; Also very thin!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Design, design, design&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
It’s the details.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
If you search for pictures of the M1330 you will always come up with a side profile
but the coolness of the hinge design for the lid didn’t dawn on me until I saw it
– no, until I felt it.
&lt;/p&gt;
&lt;p&gt;
At the top of the keyboard are a set of controls to eject the CD/DVD, control the
audio &amp;amp; playback etc.&amp;nbsp; These are not buttons per se, but little touch sensitive
spots that glow when you touch them.&amp;nbsp; Very cool.
&lt;/p&gt;
&lt;p&gt;
The XPS M1330 comes with Creative EP-630 Noise Isolation earphones that compare quite
favourably to my standard work wear – Philips SHP805.&amp;nbsp; They have 3 sizes of rubber
seal for your ear, dunno how they feel when used for extended periods yet.&amp;nbsp; This
was a nice surprise.
&lt;/p&gt;
&lt;p&gt;
...and there are other little supprises all throughout this machine.&amp;nbsp; Someone,
somewhere put thought into the design of this machine and it shows.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Now, to uninstall the crapware…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Having had a bit to do with Dell over the years, first thing I always do is open Control
Panel and uninstall the bloat.&amp;nbsp; I was pleased to see so little preinstalled on
my machine. 
&lt;/p&gt;
&lt;p&gt;
I removed:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Google Desktop&lt;/li&gt;
&lt;li&gt;
Google IE Toolbar&lt;/li&gt;
&lt;li&gt;
Microsoft Works&amp;nbsp; (I have Office and didn’t want to pay for a redundant CAL, so
Works is the only choice when ordering)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Things that may go if they show me the first sign of trouble, but can stay for now:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Dell Browser Address Error Redirection (whatever that is!)&lt;/li&gt;
&lt;li&gt;
Roxio Creator Home&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;So, what’s not to like:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
There are a couple of minor things – so minor I only list them for completeness.&amp;nbsp;
None of these are an obstacle to being very happy with this machine:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
When you eject a CD the sound is like strangling a pigeon. Don’t ask me how I know
what that sounds like, it just does.&lt;/li&gt;
&lt;li&gt;
Chipset does not support Intel VT.&amp;nbsp; I use Virtual PC a lot, but VMs run fine
without it.&lt;/li&gt;
&lt;li&gt;
The system comes with a 10Gb recovery partition.&amp;nbsp; This isn’t a worry to me with
250Gb but if I had gone for the 64Gb Solid State drive for the extra thou’ I would
be nuking this straight away&lt;/li&gt;
&lt;li&gt;
The battery in the media remote is tricky to seat properly.&amp;nbsp; 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;The Essential Stats:&lt;br&gt;
&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Dell XPS M1330
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;&lt;em&gt;&lt;strong&gt;CPU&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;: Intel Core2 Duo @ T7500
2.2Ghz
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;OS&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;: Windows Vista Business 32
Bit
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;RAM&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;: 4Gb RAM installed – 3.5Gb
Visible to 32bit OS
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;WEI&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;:&amp;nbsp; 4.0, broken down as
follows
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
processor: 5.1&lt;/li&gt;
&lt;li&gt;
RAM: 4.8&lt;/li&gt;
&lt;li&gt;
Graphics: &lt;font color=#ff0000&gt;&lt;strong&gt;4.0&lt;/strong&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
Gaming Graphics: 4.5&lt;/li&gt;
&lt;li&gt;
Primary Hard Disk: &lt;strong&gt;&lt;font color=#006400&gt;5.2&lt;br&gt;
&lt;/font&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;Video&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;: NVidia 8400M GS w/ 128Mb
RAM – 1280 x 800 x 32 on 13.3” 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000080&gt;HDD&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;: 250Gb WD SATA&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Overall&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Since it is only day 1 I can't be definitive, but this machine shows every sign of
being a great developer PC.&amp;nbsp; Recommended.&amp;nbsp; 
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,78a1a9b4-f5e9-4765-9de4-358acdc47f08.aspx</comments>
      <category>Geeking Out!</category>
      <category>Vista</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The SQL Server 2008 ("Katmai") CTP 4 VHD that was published to MSDN Subscriber Downloads
last week is made available as a 4-part self-extracting RAR archive.  
</p>
        <p>
It can seem to have an issue in while self-extracting.  As shown in the screen
cap below is it looking for <strong>en_sql_server_2008_ctp_4_vhd_part_1_of_5_.rar: </strong></p>
        <p>
          <strong>  </strong>
          <img src="http://deepdark.net/content/binary/Katmai_CTP4_Extract_Error.gif" border="0" />
        </p>
        <p>
This is obviously wrong because a) part 1 is not a rar - it is in the
exe, and b) the download is in 4 parts not 5.  So if you see this prompt, browse
for <strong>en_sql_server_2008_ctp_4_vhd_part_2_of_4_.rar</strong>.
</p>
        <p>
Likewise when asked for <strong>en_sql_server_2008_ctp_4_vhd_part_2_of_5_.rar</strong> browse
for <strong>en_sql_server_2008_ctp_4_vhd_part_3_of_4_.rar</strong>.  
</p>
        <p>
Finally when prompted for <strong>en_sql_server_2008_ctp_4_vhd_part_3_of_5_.rar</strong> browse
for <strong>en_sql_server_2008_ctp_4_vhd_part_4_of_4_.rar</strong>.  You will
not be prompted for a part 5.
</p>
        <p>
Once you have done that, fire up VPC or Virtual Server 2005 and enjoy!
</p>
        <p>
Also, don't forget:  You can check out the <a href="https://connect.microsoft.com/SQLServer/">LiveMeeting
events on the new features in SQL Server 2008 available through the Connect site</a>.
</p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening to: Aphex Twin, Selected Ambient
Works, Volume II</font>
          </strong>
        </p>
      </body>
      <title>Trouble with the SQL Server 2008 CTP 4 VHD on MSDN</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4.aspx</link>
      <pubDate>Sun, 21 Oct 2007 02:48:20 GMT</pubDate>
      <description>&lt;p&gt;
The SQL Server 2008 ("Katmai") CTP 4 VHD that was published to MSDN Subscriber Downloads
last week is made available as a 4-part self-extracting RAR archive.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
It can seem to have an issue in while self-extracting.&amp;nbsp; As shown in the screen
cap below is it looking for &lt;strong&gt;en_sql_server_2008_ctp_4_vhd_part_1_of_5_.rar:&amp;nbsp;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&amp;nbsp; &lt;/strong&gt;&lt;img src="http://deepdark.net/content/binary/Katmai_CTP4_Extract_Error.gif" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This is obviously wrong because&amp;nbsp;a) part 1 is not a rar -&amp;nbsp;it is in&amp;nbsp;the
exe, and b) the download is in 4 parts not 5.&amp;nbsp; So if you see this prompt, browse
for &lt;strong&gt;en_sql_server_2008_ctp_4_vhd_part_2_of_4_.rar&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Likewise when asked for &lt;strong&gt;en_sql_server_2008_ctp_4_vhd_part_2_of_5_.rar&lt;/strong&gt; browse
for &lt;strong&gt;en_sql_server_2008_ctp_4_vhd_part_3_of_4_.rar&lt;/strong&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Finally when prompted for &lt;strong&gt;en_sql_server_2008_ctp_4_vhd_part_3_of_5_.rar&lt;/strong&gt; browse
for &lt;strong&gt;en_sql_server_2008_ctp_4_vhd_part_4_of_4_.rar&lt;/strong&gt;.&amp;nbsp; You will
not be prompted for a part 5.
&lt;/p&gt;
&lt;p&gt;
Once you have done that, fire up VPC or Virtual Server 2005 and enjoy!
&lt;/p&gt;
&lt;p&gt;
Also, don't forget:&amp;nbsp; You can check out the &lt;a href="https://connect.microsoft.com/SQLServer/"&gt;LiveMeeting
events on the new features in SQL Server 2008 available through the Connect site&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening to: Aphex Twin, Selected Ambient Works,
Volume II&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,288cb08c-0fc2-40cf-9c10-ec7bd94fe4a4.aspx</comments>
      <category>Database</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=7bb58319-de9d-42ed-94a4-9ab6a2a47af5</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,7bb58319-de9d-42ed-94a4-9ab6a2a47af5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,7bb58319-de9d-42ed-94a4-9ab6a2a47af5.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7bb58319-de9d-42ed-94a4-9ab6a2a47af5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I have a <a href="http://www.colorvision.com/product-mc.php">ColorPlus monitor profiling
spyder</a> by what was formally marketed as Pantone and is now Datacolor and I profile
my monitors regularly.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/pantonecolorvision.jpg" border="0" />
        </p>
Today was the first time I have tried to profile it <a href="http://deepdark.net/PermaLink,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx">since
I built my new dev workstation</a>.  It turns out the (circa 2004) ColorPlus
spider that has served me well so far is now in the legacy bin.  While it works
great on Vista x32 with the XP driver it has not had signed drivers released for Vista
x64. 
<p>
This lead me to look at what was the latest news for loading unsigned drivers into
Vista x64, since I only need the thing to run for 5 minutes once every couple of months
I was hoping to see that there would be some <a href="http://technet.microsoft.com/en-us/windowsvista/aa905126.aspx">BCDEdit</a> trickery
that may let me reboot into a non-standard config, generate an ICC profile and then
boot back into "real" Windows.  Seems that option was supported on Vista RC2
and removed for the RTM.
</p><p><strong>What has this to do with Linchpin Labs?</strong></p><p>
Further investigation showed up the case of <a href="http://www.linchpinlabs.com/">Linchpin
Labs</a> (who have a Willoughby NSW address, as well as Ottawa CA).   Linchpin
released a widget called Atsiv that was itself signed and would let you load unsigned
drivers through it.  
</p><p>
Things got interesting when Microsoft categorized Atsiv as malware.  
</p><p><a href="http://blogs.msdn.com/windowsvistasecurity/archive/2007/08/03/x64-driver-signing-update.aspx">The
Microsoft position on this is detailed in the Windows Vista Security blog</a>, and <a href="http://www.linchpinlabs.com/resources/atsiv/usage-design.htm">the
equally detailed response by Linchpin Labs is detailed on their site</a>.  It's
unfortunate that Linchpin do not have a blog because it would be interesting to contrast
the comments on the MSDN blog to any they attract.
</p><p>
As for the comments it seems lots of folks think their obligation ends with complaining. 
It may be fun to type crap on a message board, but my respect is reserved for the
folks who put time into finding the solutions.
</p><p>
But, what seems missing in the discussion to me is that (depending on how you count
the numbers) <a href="http://news.softpedia.com/news/6-Months-Later-Windows-Vista-Worldwide-61901.shtml">between
40 and 60 million copies of Vista have been shipped in 19 languages to 70 countries</a>. 
Only a slim slice of that huge number of users are the tech savvy / tech professional
community who, generally speaking, keep technology and the internet working and profitable
for the rest of the world.  <strong>I think it is right that security decisions
favor the great unwashed masses rather than the techno-elite, who should be able to
look after themselves</strong>.  A bit of perspective please people.
</p><p>
If you get to the bottom of the Linchpin Labs announcement you find the following:
</p><p><em><font color="#000080">  Linchpin Labs would like to suggest that Microsoft
spend less time using debatable policy as a security mechanism, and spend more time
actually tightening its operating systems.</font></em></p><p>
Wha??  Isn't that what this is all about?  Driver Signing Policy <strong><em>is</em></strong> tightening
the OS.  Other examples of Vista security enhancements include:
</p><ul><li>
Restricted Services (service hardening)</li><li>
DEP and NX, including supporting hardware-based DEP </li><li>
User Account Control (UAC)</li><li>
Windows Defender / Windows Firewall / Windows Security Center (techies:  think
of the 98% of the world; they need hand holding, OK)</li><li>
Network Access Protection (NAP) </li><li>
Bitlocker and EFS</li><li>
ActiveX Opt-In, support for EV Certs and anti-phishing filter support in IE7</li><li>
...</li></ul><p>
...and probabbly others.  Yeah I'd call this tightening the OS.
</p><p><strong>Back to my ColorPlus Spyder...</strong></p><p>
So, looking at my options:
</p><ul><li><strong>Get a Mac</strong>.  Oh yes would I love to get a Mac.  hmmmm :) 
But, desk space, power and brain cycles are at a premium at the moment.  Also
being a entry-level product the ColorPlus is a Windows-only product so it would mean
getting a new spider anyway.<br /></li><li><strong>Get a new Spider</strong>.  These are costly devices and not really top
of my spend list right now.  Maybe one day.</li><li><strong>Abandon the DRM-infested evil Microsoft empire, like some of the commenters
(e.g. "Joe" et al) on the Vista Security Blog suggest</strong>.  Just try and
have a 16-bit/channel colour accurate workflow in Linux.  I've been there (not
recently, but as far as I can tell things haven't changed much) and it's not fun. 
Just go and spend some a couple of weeks setting it up and let me know how you get
on.  Send me a postcard.  Really.</li></ul><p>
Now for some real options:
</p><ol><li>
Email Datacolor and let them know that people are interested in Vista drivers.  <strong><font color="#008000">Done</font></strong>.</li><li>
Install a copy of Vista x86, update to the latest vid drivers, calibrate the monitor,
pinch the ICC profile, reboot into my "real" Vista x64.  It'll take 1hr tops. 
I'll get to this on the weekend.</li></ol><p><strike>um, anyone want to but a second hand ColorPlus Spyder?  One careful owner,
still with original box...</strike></p><p><font color="#808080" size="1"><strong>Listening To: The Polyphonic Spree, The Fragile
Army</strong></font></p><p><font color="#ff0000"><b>Update</b></font>:  My ColorPlus is no longer for sale
:-)
</p>
It turns out that in the ColorVision Knowledge Base (under Support Centre) there is
an article that says:<br /><br /><i><font color="#0000ff"><span class="mediumtext"> ColorPlus users can download Spyder2express
software from the colorvision website's support section, and run that software with
a ColorPlus serial number and a ColorPlus Spyder. The latest versions of Spyder2express
are compatable with Vista32 and Vista64.<br /></span></font></i><p>
I can confirm this works.  Spyder2express is a 120Mb download which is hefty
since I only want the driver :-/  The ColorPlus is detected as a Spyder2 after
installation and works as advertised.
</p><p>
...and would you believe their is a Mac version of ColorPlus 1.1 in the Knowledge
Base that is not listed in the Support downloads.  I'm happy to be wrong anytime
it works out for the best :)<br /></p><p><font color="#808080" size="1"><b>Listening to: The Campfire Headphase, Boards of
Canada</b></font><br /></p></body>
      <title>The uneasy case of Linchpin Labs and Vista x64 driver signing</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,7bb58319-de9d-42ed-94a4-9ab6a2a47af5.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,7bb58319-de9d-42ed-94a4-9ab6a2a47af5.aspx</link>
      <pubDate>Thu, 18 Oct 2007 12:09:42 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I have a &lt;a href="http://www.colorvision.com/product-mc.php"&gt;ColorPlus monitor profiling
spyder&lt;/a&gt; by what was formally marketed as Pantone and is now Datacolor and I profile
my monitors regularly.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/pantonecolorvision.jpg" border="0"&gt;
&lt;/p&gt;
Today was the first time I have tried to profile it &lt;a href="http://deepdark.net/PermaLink,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx"&gt;since
I built my new dev workstation&lt;/a&gt;.&amp;nbsp; It turns out the (circa 2004) ColorPlus
spider that has served me well so far is now in the legacy bin.&amp;nbsp; While it works
great on Vista x32 with the XP driver it has not had signed drivers released for Vista
x64. 
&lt;p&gt;
This lead me to look at what was the latest news for loading unsigned drivers into
Vista x64, since I only need the thing to run for 5 minutes once every couple of months
I was hoping to see that there would be some &lt;a href="http://technet.microsoft.com/en-us/windowsvista/aa905126.aspx"&gt;BCDEdit&lt;/a&gt; trickery
that may let me reboot into a non-standard config, generate an ICC profile and then
boot back into "real" Windows.&amp;nbsp; Seems that option was supported on Vista RC2
and removed for the RTM.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What has this to do with Linchpin Labs?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Further investigation showed up the case of &lt;a href="http://www.linchpinlabs.com/"&gt;Linchpin
Labs&lt;/a&gt; (who have a Willoughby NSW address, as well as Ottawa CA).&amp;nbsp;&amp;nbsp; Linchpin
released a widget called Atsiv that was itself signed and would let you load unsigned
drivers through it.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Things got interesting when Microsoft categorized Atsiv as malware.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/windowsvistasecurity/archive/2007/08/03/x64-driver-signing-update.aspx"&gt;The
Microsoft position on this is detailed in the Windows Vista Security blog&lt;/a&gt;, and &lt;a href="http://www.linchpinlabs.com/resources/atsiv/usage-design.htm"&gt;the
equally detailed response by Linchpin Labs is detailed on their site&lt;/a&gt;.&amp;nbsp; It's
unfortunate that Linchpin do not have a blog because it would be interesting to contrast
the comments on the MSDN blog to any they attract.
&lt;/p&gt;
&lt;p&gt;
As for the comments it seems lots of folks think their obligation ends with complaining.&amp;nbsp;
It may be fun to type crap on a message board, but my respect is reserved for the
folks who put time into finding the solutions.
&lt;/p&gt;
&lt;p&gt;
But, what seems missing in the discussion to me is that (depending on how you count
the numbers) &lt;a href="http://news.softpedia.com/news/6-Months-Later-Windows-Vista-Worldwide-61901.shtml"&gt;between
40 and 60 million copies of Vista have been shipped in 19 languages to 70 countries&lt;/a&gt;.&amp;nbsp;
Only a slim slice of that huge number of users are the tech savvy / tech professional
community who, generally speaking, keep technology and the internet working and profitable
for the rest of the world.&amp;nbsp; &lt;strong&gt;I think it is right that security decisions
favor the great unwashed masses rather than the techno-elite, who should be able to
look after themselves&lt;/strong&gt;.&amp;nbsp; A bit of perspective please people.
&lt;/p&gt;
&lt;p&gt;
If you get to the bottom of the Linchpin Labs announcement you find the following:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color="#000080"&gt;&amp;nbsp;&amp;nbsp;Linchpin Labs would like to suggest that Microsoft
spend less time using debatable policy as a security mechanism, and spend more time
actually tightening its operating systems.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Wha??&amp;nbsp; Isn't that what this is all about?&amp;nbsp; Driver Signing Policy &lt;strong&gt;&lt;em&gt;is&lt;/em&gt;&lt;/strong&gt; tightening
the OS.&amp;nbsp; Other examples of Vista security enhancements include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Restricted Services (service hardening)&lt;/li&gt;
&lt;li&gt;
DEP and NX, including supporting hardware-based DEP&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
User Account Control (UAC)&lt;/li&gt;
&lt;li&gt;
Windows Defender / Windows Firewall / Windows Security Center (techies:&amp;nbsp; think
of the 98% of the world; they need hand holding, OK)&lt;/li&gt;
&lt;li&gt;
Network Access Protection (NAP)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
Bitlocker and EFS&lt;/li&gt;
&lt;li&gt;
ActiveX Opt-In, support for EV Certs and anti-phishing filter support in IE7&lt;/li&gt;
&lt;li&gt;
...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
...and probabbly others.&amp;nbsp; Yeah I'd call this tightening the OS.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Back to my ColorPlus Spyder...&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So, looking at my options:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Get a Mac&lt;/strong&gt;.&amp;nbsp; Oh yes would I love to get a Mac.&amp;nbsp; hmmmm :)&amp;nbsp;
But, desk space, power and brain cycles are at a premium at the moment.&amp;nbsp; Also
being a entry-level product the ColorPlus is a Windows-only product so it would mean
getting a new spider anyway.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get a new Spider&lt;/strong&gt;.&amp;nbsp; These are costly devices and not really top
of my spend list right now.&amp;nbsp; Maybe one day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Abandon the DRM-infested evil Microsoft empire, like some of the commenters
(e.g. "Joe" et al) on the Vista Security Blog suggest&lt;/strong&gt;.&amp;nbsp; Just try and
have a 16-bit/channel colour accurate workflow in Linux.&amp;nbsp; I've been there (not
recently, but as far as I can tell things haven't changed much) and it's not fun.&amp;nbsp;
Just go and spend some a couple of weeks setting it up and let me know how you get
on.&amp;nbsp; Send me a postcard.&amp;nbsp; Really.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Now for some real options:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Email Datacolor and let them know that people are interested in Vista drivers.&amp;nbsp; &lt;strong&gt;&lt;font color="#008000"&gt;Done&lt;/font&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
Install a copy of Vista x86, update to the latest vid drivers, calibrate the monitor,
pinch the ICC profile, reboot into my "real" Vista x64.&amp;nbsp; It'll take 1hr tops.&amp;nbsp;
I'll get to this on the weekend.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strike&gt;um, anyone want to but a second hand ColorPlus Spyder?&amp;nbsp; One careful owner,
still with original box...&lt;/strike&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#808080" size="1"&gt;&lt;strong&gt;Listening To: The Polyphonic Spree, The Fragile
Army&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#ff0000"&gt;&lt;b&gt;Update&lt;/b&gt;&lt;/font&gt;:&amp;nbsp; My ColorPlus is no longer for sale
:-)
&lt;/p&gt;
It turns out that in the ColorVision Knowledge Base (under Support Centre) there is
an article that says:&lt;br&gt;
&lt;br&gt;
&lt;i&gt;&lt;font color="#0000ff"&gt;&lt;span class="mediumtext"&gt; ColorPlus users can download Spyder2express
software from the colorvision website's support section, and run that software with
a ColorPlus serial number and a ColorPlus Spyder. The latest versions of Spyder2express
are compatable with Vista32 and Vista64.&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;
&lt;p&gt;
I can confirm this works.&amp;nbsp; Spyder2express is a 120Mb download which is hefty
since I only want the driver :-/&amp;nbsp; The ColorPlus is detected as a Spyder2 after
installation and works as advertised.
&lt;/p&gt;
&lt;p&gt;
...and would you believe their is a Mac version of ColorPlus 1.1 in the Knowledge
Base that is not listed in the Support downloads.&amp;nbsp; I'm happy to be wrong anytime
it works out for the best :)&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#808080" size="1"&gt;&lt;b&gt;Listening to: The Campfire Headphase, Boards of
Canada&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,7bb58319-de9d-42ed-94a4-9ab6a2a47af5.aspx</comments>
      <category>Geeking Out!</category>
      <category>Secutity</category>
      <category>That will be all (rant)</category>
      <category>Vista</category>
      <category>Who sucks at 64 bit</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=c407ee59-bb64-42d0-b1ae-fd79ccf795ea</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,c407ee59-bb64-42d0-b1ae-fd79ccf795ea.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,c407ee59-bb64-42d0-b1ae-fd79ccf795ea.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c407ee59-bb64-42d0-b1ae-fd79ccf795ea</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">It was great being able to have the opportunity
to elucidate my thoughts on this matter formally at <a href="http://www.sqldownunder.com/">SQL
Down Under Code Camp '07</a>.<br /><br />
For completeness, here are my slides: <a href="content/binary/The%20Zen%20of%20T-SQL%20SDU%20CC.ppt">The
Zen of T-SQL SDU CC.ppt (128.5 KB)</a><br /><br />
I really enjoyed meeting so many nice and very clever folks.  Thanks to Greg
and all involved in putting on the Code Camp, what a really great event!<br /><br />
For the record, the image is of Kasprowicz catching Pietersen at NatWest Challenge
Final, The Oval, 2005.<br /><br />
:-)<p></p></body>
      <title>The Zen of T-SQL - My SQL Down Under Code Camp slides</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,c407ee59-bb64-42d0-b1ae-fd79ccf795ea.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,c407ee59-bb64-42d0-b1ae-fd79ccf795ea.aspx</link>
      <pubDate>Sun, 14 Oct 2007 12:25:08 GMT</pubDate>
      <description>It was great being able to have the opportunity to elucidate my thoughts on this matter formally at &lt;a href="http://www.sqldownunder.com/"&gt;SQL
Down Under Code Camp '07&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
For completeness, here are my slides: &lt;a href="content/binary/The%20Zen%20of%20T-SQL%20SDU%20CC.ppt"&gt;The
Zen of T-SQL SDU CC.ppt (128.5 KB)&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
I really enjoyed meeting so many nice and very clever folks.&amp;nbsp; Thanks to Greg
and all involved in putting on the Code Camp, what a really great event!&lt;br&gt;
&lt;br&gt;
For the record, the image is of Kasprowicz catching Pietersen at NatWest Challenge
Final, The Oval, 2005.&lt;br&gt;
&lt;br&gt;
:-)&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,c407ee59-bb64-42d0-b1ae-fd79ccf795ea.aspx</comments>
      <category>Database</category>
      <category>Downloads</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=083a6268-9c11-49a0-a7d9-7ca57d4f5dab</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,083a6268-9c11-49a0-a7d9-7ca57d4f5dab.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,083a6268-9c11-49a0-a7d9-7ca57d4f5dab.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=083a6268-9c11-49a0-a7d9-7ca57d4f5dab</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I'm just catching up on my feeds and saw <a href="http://www.nickhodge.com/blog/archives/2315">Nick
Hodge's post with his slides from the Australian Blogging Conference</a>.  
<br /><br />
Without the benefit of the associated naration they are still worth a look on the
topic of business blogging.<br /><p></p></body>
      <title>Blogging for fun and proffit update - interesting linkage</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,083a6268-9c11-49a0-a7d9-7ca57d4f5dab.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,083a6268-9c11-49a0-a7d9-7ca57d4f5dab.aspx</link>
      <pubDate>Wed, 03 Oct 2007 10:54:39 GMT</pubDate>
      <description>I'm just catching up on my feeds and saw &lt;a href="http://www.nickhodge.com/blog/archives/2315"&gt;Nick
Hodge's post with his slides from the Australian Blogging Conference&lt;/a&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Without the benefit of the associated naration they are still worth a look on the
topic of business blogging.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,083a6268-9c11-49a0-a7d9-7ca57d4f5dab.aspx</comments>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=32e990b0-c8ce-4c03-affd-d1b0da30fddf</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,32e990b0-c8ce-4c03-affd-d1b0da30fddf.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,32e990b0-c8ce-4c03-affd-d1b0da30fddf.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=32e990b0-c8ce-4c03-affd-d1b0da30fddf</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have been looking at company blogs to satisfy a mixture of professional and after-5
curiosities. The example I keep coming back to is <a href="http://www.37signals.com/">37signals</a>. 
</p>
        <p>
The reasons they top my list are:
</p>
        <ul>
          <li>
They separate their affairs into a <a href="http://productblog.37signals.com/">product
blog</a> and the <a href="http://www.37signals.com/svn/">SvN blog "company" blog</a>. 
</li>
          <li>
They are current  
</li>
          <li>
They are well written (easy to read)  
</li>
          <li>
They are frank 
</li>
        </ul>
        <p>
The product blog is a great read for hearing how to get the most out of their products.
In their own words, <em>Signal vs. Noise, a weblog by 37signals about design, business,
experience, simplicity, the web, culture, and more.</em></p>
        <p>
For a tech R&amp;D shop, this is about as good as I have seen.  <strong>I'd also
welcome comments on other good examples that people like!</strong></p>
        <p>
An honourable mention goes to <a href="http://www.artlebedev.com/">Art. Levedev Studio’s</a><a href="http://community.livejournal.com/optimus_project/">Life
and Incredible Adventures of Optimus Keyboard blog</a> where you can keep up
with the hardware development in what may <a href="http://en.wikipedia.org/wiki/Optimus_keyboard">turn
out to be the last word in keyboards</a>! 
</p>
      </body>
      <title>Blogging for fun and proffit - Good taste in company blogs</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,32e990b0-c8ce-4c03-affd-d1b0da30fddf.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,32e990b0-c8ce-4c03-affd-d1b0da30fddf.aspx</link>
      <pubDate>Tue, 02 Oct 2007 07:24:55 GMT</pubDate>
      <description>&lt;p&gt;
I have been looking at company blogs to satisfy a mixture of professional and after-5
curiosities. The example I keep coming back to is &lt;a href="http://www.37signals.com/"&gt;37signals&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
The reasons they top my list are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
They separate their affairs into a &lt;a href="http://productblog.37signals.com/"&gt;product
blog&lt;/a&gt; and the &lt;a href="http://www.37signals.com/svn/"&gt;SvN blog&amp;nbsp;"company" blog&lt;/a&gt;. 
&lt;li&gt;
They are current&amp;nbsp; 
&lt;li&gt;
They are well written (easy to read)&amp;nbsp; 
&lt;li&gt;
They are frank 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The product blog is a great read for hearing how to get the most out of their products.
In their own words, &lt;em&gt;Signal vs. Noise, a weblog by 37signals about design, business,
experience, simplicity, the web, culture, and more.&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
For a tech R&amp;amp;D shop, this is about as good as I have seen.&amp;nbsp; &lt;strong&gt;I'd also
welcome comments on other good examples that people like!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
An honourable mention goes to &lt;a href="http://www.artlebedev.com/"&gt;Art. Levedev Studio’s&lt;/a&gt; &lt;a href="http://community.livejournal.com/optimus_project/"&gt;Life
and Incredible Adventures of Optimus Keyboard blog&lt;/a&gt;&amp;nbsp;where you can keep up
with the hardware development in what may &lt;a href="http://en.wikipedia.org/wiki/Optimus_keyboard"&gt;turn
out to be the last word in keyboards&lt;/a&gt;! 
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,32e990b0-c8ce-4c03-affd-d1b0da30fddf.aspx</comments>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=6fdb0363-938d-49ed-b876-52415faf9a6b</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,6fdb0363-938d-49ed-b876-52415faf9a6b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,6fdb0363-938d-49ed-b876-52415faf9a6b.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6fdb0363-938d-49ed-b876-52415faf9a6b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I came across the following example in <a href="http://www.microsoft.com/mspress/books/9615.aspx">Inside
T-SQL Programming</a>, which I am digesting at the moment.  Actually it
is credited to <a href="http://www.sql.co.il/books/insidetsql2005/#Steve_Kass">Steve
Kass (technical editor)</a>:
</p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SELECT</span> OrderId,
OrderDate<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">FROM</span> dbo.Orders<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">WHERE</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">DATEDIFF</span>(<span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">day</span>, <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'19000102'</span>,
OrderDate) % 7 = 0</span>
        </p>
        <p>
This query is to answer the question <em>"Which orders were placed on a Tuesday?"</em>. 
The query isn't particularly magic, but the idea behind it is as close to the zen
of T-SQL as I can remember seeing:
</p>
        <p>
          <em>There are 7 days between any two Tuesdays.  If we know one Tuesday (like
the 2nd Jan 1900) we have all the Tuesdays since.</em>
        </p>
        <p>
What a great mindset to take with querying.
</p>
        <p>
          <font color="#808080" size="1">
            <strong>Listening To:</strong>   Places like
this, Architecture In Helsinki</font>
        </p>
      </body>
      <title>The Zen of T-SQL, an example</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,6fdb0363-938d-49ed-b876-52415faf9a6b.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,6fdb0363-938d-49ed-b876-52415faf9a6b.aspx</link>
      <pubDate>Fri, 21 Sep 2007 13:44:04 GMT</pubDate>
      <description>&lt;p&gt;
I came across the following example in &lt;a href="http://www.microsoft.com/mspress/books/9615.aspx"&gt;Inside
T-SQL Programming&lt;/a&gt;, which&amp;nbsp;I am digesting at the moment.&amp;nbsp; Actually it
is credited to &lt;a href="http://www.sql.co.il/books/insidetsql2005/#Steve_Kass"&gt;Steve
Kass (technical editor)&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; OrderId,
OrderDate&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; dbo.Orders&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;WHERE&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;DATEDIFF&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;day&lt;/span&gt;, &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'19000102'&lt;/span&gt;,
OrderDate) % 7 = 0&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
This query is to answer the question &lt;em&gt;"Which orders were placed on a Tuesday?"&lt;/em&gt;.&amp;nbsp;
The query isn't particularly magic, but the idea behind it is as close to the zen
of T-SQL as I can remember seeing:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;There are 7 days between any two Tuesdays.&amp;nbsp; If we know one Tuesday (like
the 2nd Jan 1900) we have all the Tuesdays since.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
What a great mindset to take with querying.
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080 size=1&gt;&lt;strong&gt;Listening To:&lt;/strong&gt;&amp;nbsp;&amp;nbsp; Places like
this, Architecture In Helsinki&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,6fdb0363-938d-49ed-b876-52415faf9a6b.aspx</comments>
      <category>Database</category>
      <category>Geeking Out!</category>
      <category>T-SQL</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <strong>Problem</strong>:
</p>
        <p>
Sorry Adobe, parentheses <em>are</em> valid characters in a path.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/Adobe.gif" border="0" />
        </p>
        <p>
          <strong>Solution</strong>:
</p>
        <p>
Luckily the work around is quite easy...
</p>
        <p>
Check the 8.3 name of the x86 Program Files path in this listing:
</p>
        <p>
          <font face="Courier New" color="#000000">c:\&gt;dir /N /X<br />
 Volume in drive C has no label.<br />
 Volume Serial Number is BA64-04DE</font>
        </p>
        <p>
          <font face="Courier New" color="#000000"> Directory of c:\</font>
        </p>
        <p>
          <font face="Courier New" color="#000000">28/08/2007  01:04 PM           
30,469 DXCORE~1.LOG DxCoreInsaller.log<br />
27/08/2007  07:24 PM    &lt;DIR&gt;                      
inetpub<br />
28/08/2007  01:26 PM    &lt;DIR&gt;                      
NVIDIA<br />
28/08/2007  01:44 PM    &lt;DIR&gt;         
PROGRA~1     Program Files<br /><strong>28/08/2007  01:42 PM    &lt;DIR&gt;         
PROGRA~2     Program Files (x86)<br /></strong>27/08/2007  09:41 PM    &lt;DIR&gt;                      
Users<br />
28/08/2007  01:45 PM    &lt;DIR&gt;                      
Windows</font>
        </p>
        <p>
Creative Suite 2 <em>will</em> install and work if you actually type in the 8.3 name
for the x86 Program Files path, like:
</p>
        <p>
          <font face="Courier New" color="#000000">C:\Progra~2\Adobe</font>
        </p>
        <p>
I wonder who is next...
</p>
        <p>
          <font color="#808080">
            <strong>Listening to:</strong> Northern Substructures compilation</font>
        </p>
      </body>
      <title>Who sucks at 64 bit, #1:  Adobe CS2</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a.aspx</link>
      <pubDate>Thu, 13 Sep 2007 13:44:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Problem&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
Sorry Adobe, parentheses &lt;em&gt;are&lt;/em&gt; valid characters in a path.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/Adobe.gif" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Solution&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
Luckily the work around is quite easy...
&lt;/p&gt;
&lt;p&gt;
Check the 8.3 name of the x86 Program Files path in this listing:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;c:\&amp;gt;dir /N /X&lt;br&gt;
&amp;nbsp;Volume in drive C has no label.&lt;br&gt;
&amp;nbsp;Volume Serial Number is BA64-04DE&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;&amp;nbsp;Directory of c:\&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;28/08/2007&amp;nbsp; 01:04 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
30,469 DXCORE~1.LOG DxCoreInsaller.log&lt;br&gt;
27/08/2007&amp;nbsp; 07:24 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
inetpub&lt;br&gt;
28/08/2007&amp;nbsp; 01:26 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
NVIDIA&lt;br&gt;
28/08/2007&amp;nbsp; 01:44 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PROGRA~1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Program Files&lt;br&gt;
&lt;strong&gt;28/08/2007&amp;nbsp; 01:42 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PROGRA~2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Program Files (x86)&lt;br&gt;
&lt;/strong&gt;27/08/2007&amp;nbsp; 09:41 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Users&lt;br&gt;
28/08/2007&amp;nbsp; 01:45 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DIR&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Windows&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Creative Suite 2 &lt;em&gt;will&lt;/em&gt; install and work if you actually type in the 8.3 name
for the x86 Program Files path, like:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;C:\Progra~2\Adobe&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
I wonder who is next...
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080&gt;&lt;strong&gt;Listening to:&lt;/strong&gt; Northern Substructures compilation&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,ea65ddd6-fed8-497a-acd5-c1f5aa25eb0a.aspx</comments>
      <category>Geeking Out!</category>
      <category>Who sucks at 64 bit</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=a86f7111-1ff5-491d-b5b7-e03c63cc0919</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a86f7111-1ff5-491d-b5b7-e03c63cc0919</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
First, some breif background:  My motherboard went belly up, electronic burning
smell and all.  Power supply was suspect too.
</p>
        <p>
So time to go shopping!
</p>
        <p>
The new motherboard is the <a href="http://www.asus.com/products.aspx?l1=3&amp;l2=11&amp;l3=534&amp;l4=0&amp;model=1749&amp;modelmenu=1">ASUS
P5K Premium</a>.
</p>
        <p>
For the CPU I went with the <a href="http://compare.intel.com/pcc/showchart.aspx?mmID=885492&amp;familyID=1">Intel
Core 2 Quad Q6600</a>.
</p>
        <p>
An important goal for me was this build was Virutal PC performance, and I am pleased
to report it is doing just fine.
</p>
        <p>
The WEI score is up to <strong>5.3</strong>, broken down as follows:
</p>
        <table border="1">
          <tbody>
            <tr>
              <td>
Processor</td>
              <td>
Intel(R) Core(TM)2 Quad CPU @ 2.40GHz</td>
              <td>
                <font color="#008000">5.9</font>
              </td>
            </tr>
            <tr>
              <td>
Memory (RAM)</td>
              <td>
4.00 GB</td>
              <td>
5.5</td>
            </tr>
            <tr>
              <td>
Graphics</td>
              <td>
NVIDIA GeForce 6800 GS</td>
              <td>
                <font color="#008000">5.9</font>
              </td>
            </tr>
            <tr>
              <td>
Gaming</td>
              <td>
graphics 2303 MB Total available graphics memory</td>
              <td>
                <font color="#ff0000">5.3</font>
              </td>
            </tr>
            <tr>
              <td>
Primary hard disk</td>
              <td>
107GB Free (149GB Total)</td>
              <td>
5.6</td>
            </tr>
          </tbody>
        </table>
        <p>
The most important change for me was installing the <strong>64 bit edition of Windows
Vista Ultimate</strong>.  So far I've not had any dramas with drivers and only
the odd run-in with apps.  For this I have started a new category on my blog:  <strong><a href="http://deepdark.net/CategoryView,category,Who%2Bsucks%2Bat%2B64%2Bbit.aspx">Who
sucks at 64 bit</a></strong>.
</p>
        <p>
It would be remis of me to not mention the great help that <a href="http://www.knkprofessionals.com/">Kernel
at KNK Professionals</a> was.  He went to great lengths to make sure I had the
hardware that I needed.  All while his wife was giving birth to their first baby! 
Highly recommended.
</p>
      </body>
      <title>New dev workstation time!</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx</link>
      <pubDate>Thu, 13 Sep 2007 13:33:49 GMT</pubDate>
      <description>&lt;p&gt;
First, some breif background:&amp;nbsp; My motherboard went belly up, electronic burning
smell and all.&amp;nbsp; Power supply was suspect too.
&lt;/p&gt;
&lt;p&gt;
So time to go shopping!
&lt;/p&gt;
&lt;p&gt;
The new motherboard is the &lt;a href="http://www.asus.com/products.aspx?l1=3&amp;amp;l2=11&amp;amp;l3=534&amp;amp;l4=0&amp;amp;model=1749&amp;amp;modelmenu=1"&gt;ASUS
P5K Premium&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
For the CPU I went with the &lt;a href="http://compare.intel.com/pcc/showchart.aspx?mmID=885492&amp;amp;familyID=1"&gt;Intel
Core 2 Quad Q6600&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
An important goal for me was this build was Virutal PC performance, and I am pleased
to report it is doing just fine.
&lt;/p&gt;
&lt;p&gt;
The WEI score is up to &lt;strong&gt;5.3&lt;/strong&gt;, broken down as follows:
&lt;/p&gt;
&lt;table border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
Processor&lt;/td&gt;
&lt;td&gt;
Intel(R) Core(TM)2 Quad CPU @ 2.40GHz&lt;/td&gt;
&lt;td&gt;
&lt;font color=#008000&gt;5.9&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Memory (RAM)&lt;/td&gt;
&lt;td&gt;
4.00 GB&lt;/td&gt;
&lt;td&gt;
5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Graphics&lt;/td&gt;
&lt;td&gt;
NVIDIA GeForce 6800 GS&lt;/td&gt;
&lt;td&gt;
&lt;font color=#008000&gt;5.9&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Gaming&lt;/td&gt;
&lt;td&gt;
graphics 2303 MB Total available graphics memory&lt;/td&gt;
&lt;td&gt;
&lt;font color=#ff0000&gt;5.3&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Primary hard disk&lt;/td&gt;
&lt;td&gt;
107GB Free (149GB Total)&lt;/td&gt;
&lt;td&gt;
5.6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
The most important change for me was installing the &lt;strong&gt;64 bit edition of Windows
Vista Ultimate&lt;/strong&gt;.&amp;nbsp; So far I've not had any dramas with drivers and only
the odd run-in with apps.&amp;nbsp; For this I have started a new category on my blog:&amp;nbsp; &lt;strong&gt;&lt;a href="http://deepdark.net/CategoryView,category,Who%2Bsucks%2Bat%2B64%2Bbit.aspx"&gt;Who
sucks at 64 bit&lt;/a&gt;&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
It would be remis of me to not mention the great help that &lt;a href="http://www.knkprofessionals.com/"&gt;Kernel
at KNK Professionals&lt;/a&gt; was.&amp;nbsp; He went to great lengths to make sure I had the
hardware that I needed.&amp;nbsp; All while his wife was giving birth to their first baby!&amp;nbsp;
Highly recommended.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,a86f7111-1ff5-491d-b5b7-e03c63cc0919.aspx</comments>
      <category>Geeking Out!</category>
      <category>META</category>
      <category>Who sucks at 64 bit</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <b>Why?</b>  They are taking up space
and not the latest editions.<br /><br /><b>How?</b>  Just leave a comment on this blog post.  Include your email
address if I don't know you :-)<br /><br />
The books on offer are:<br /><br /><table border="1"><tbody><tr><td colspan="2"><b>Microsoft</b></td></tr><tr><td>
Professional SQL Server DTS, Chaffin, Knight &amp; Robinson 
<br />
[<a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764543687.html">link</a>]<br /></td><td><img src="http://deepdark.net/content/binary/prof_sql_server_dts.jpg" border="0" /></td></tr><tr><td><strike><font color="#808080">Introducing Microsoft.NET, by David Platt <font size="1">(famed
author of Why Software Sucks)</font></font></strike><br />
[<a href="http://www.amazon.com/Introducing-Microsoft-NET-David-Platt/dp/073561377X">link</a>] <strong><font color="#ff0000">Taken!</font></strong><a href="http://www.amazon.com/Introducing-Microsoft-NET-David-Platt/dp/073561377X%20"><br /></a></td><td><img src="http://deepdark.net/content/binary/microsoft_dornet_platt.jpg" border="0" /></td></tr><tr><td><strike><font color="#808080">Programming Microsoft SQL Server 2000 with XML </font></strike><br />
[<a href="http://www.microsoft.com/mspress/books/5178.aspx">link</a>] <font color="#ff0000"><b>Taken!</b></font><a href="http://www.microsoft.com/mspress/books/5178.aspx%20"><br /></a></td><td><img src="http://deepdark.net/content/binary/SQL_Server_Xml_Malcom.gif" border="0" /></td></tr><tr><td>
Microsoft SQL Server 7.0 Administrator's pocket consultant [<a href="http://www.amazon.com/Microsoft-Server-Administrators-Consultant-Administrator/dp/0735605963">link</a>]</td><td><img src="http://deepdark.net/content/binary/sql_7_pocket_consultant.jpg" border="0" /></td></tr><tr></tr><tr><td valign="top">
Microsft SQL Server 2000 Administration Readiness Review for MCSE Exam 70-228<br />
[<a href="http://www.microsoft.com/mspress/books/4893.aspx">link</a>]<br /></td><td valign="top"><a href="http://www.oreilly.com/catalog/jentnut/"><img src="http://deepdark.net/content/binary/70-228.gif" border="0" /></a></td></tr><tr><td valign="top">
Microsoft Visual Basic Design Patterns<br />
[<a href="http://www.microsoft.com/mspress/books/2322.aspx">link</a>]</td><td valign="top"><a href="http://www.oreilly.com/catalog/jentnut/"><img src="http://deepdark.net/content/binary/VB_deisgn_patterns_stamatakis.gif" border="0" /></a></td></tr><tr><td colspan="2"><b>Java</b></td></tr><tr><td>
Java Servlet Programming. Hunter, Crawford. 
<br />
[<a href="http://www.oreilly.com/catalog/jservlet/index.html">link</a>]<a href="http://www.oreilly.com/catalog/jservlet/index.html"><br /></a></td><td><img src="http://deepdark.net/content/binary/java_servlet_programming.gif" border="0" /></td></tr><tr><td>
XML, XSLT, Java, and JSP. A case study in developing a web application. 
<br />
[<a href="http://www.amazon.com/XML-XSLT-Java-JSP-Application/dp/0735710899">link</a>]<a href="http://www.amazon.com/XML-XSLT-Java-JSP-Application/dp/0735710899%20"><br /></a></td><td><img src="http://deepdark.net/content/binary/xml_xslt_java_jsp_rockwell.jpg" border="0" /></td></tr><tr><td>
Java Enterprise in a nutshell, a desktop quick reference 
<br />
[<a href="http://www.oreilly.com/catalog/jentnut/">link]</a></td><td><img src="http://deepdark.net/content/binary/java_enterprise_nutshell1.gif" border="0" /></td></tr><tr><td colspan="2"><b>Linux</b></td></tr><tr><td>
Linux Routers, a primer for network administrators, Tony Mancill 
<br />
[<a href="http://www.amazon.com/Linux-Routers-Primer-Network-Administrators/dp/0130861138">link</a>]<a href="http://www.amazon.com/Linux-Routers-Primer-Network-Administrators/dp/0130861138"><br /></a></td><td><img src="http://deepdark.net/content/binary/linux_routers_mancil.jpg" border="0" /></td></tr></tbody></table><br /><b>Caveats: </b>Some of these are a bit marked on the cover from normal wear and tear. 
Original CDs are still in the book where applicable.  Email me if postage is
required.<br /></body>
      <title>Free Technical Books!  First in best dressed.  </title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a.aspx</link>
      <pubDate>Tue, 28 Aug 2007 01:51:24 GMT</pubDate>
      <description>&lt;b&gt;Why?&lt;/b&gt;&amp;nbsp; They are taking up space and not the latest editions.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How?&lt;/b&gt;&amp;nbsp; Just leave a comment on this blog post.&amp;nbsp; Include your email
address if I don't know you :-)&lt;br&gt;
&lt;br&gt;
The books on offer are:&lt;br&gt;
&lt;br&gt;
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;b&gt;Microsoft&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Professional SQL Server DTS, Chaffin, Knight &amp;amp; Robinson 
&lt;br&gt;
[&lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764543687.html"&gt;link&lt;/a&gt;]&lt;br&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/prof_sql_server_dts.jpg" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strike&gt;&lt;font color="#808080"&gt;Introducing Microsoft.NET, by David Platt &lt;font size="1"&gt;(famed
author of Why Software Sucks)&lt;/font&gt;&lt;/font&gt;&lt;/strike&gt;
&lt;br&gt;
[&lt;a href="http://www.amazon.com/Introducing-Microsoft-NET-David-Platt/dp/073561377X"&gt;link&lt;/a&gt;] &lt;strong&gt;&lt;font color="#ff0000"&gt;Taken!&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://www.amazon.com/Introducing-Microsoft-NET-David-Platt/dp/073561377X%20"&gt;
&lt;br&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/microsoft_dornet_platt.jpg" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strike&gt;&lt;font color="#808080"&gt;Programming Microsoft SQL Server 2000 with XML &lt;/font&gt;&lt;/strike&gt;
&lt;br&gt;
[&lt;a href="http://www.microsoft.com/mspress/books/5178.aspx"&gt;link&lt;/a&gt;] &lt;font color="#ff0000"&gt;&lt;b&gt;Taken!&lt;/b&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/mspress/books/5178.aspx%20"&gt;
&lt;br&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/SQL_Server_Xml_Malcom.gif" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Microsoft SQL Server 7.0 Administrator's pocket consultant [&lt;a href="http://www.amazon.com/Microsoft-Server-Administrators-Consultant-Administrator/dp/0735605963"&gt;link&lt;/a&gt;]&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/sql_7_pocket_consultant.jpg" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
Microsft SQL Server 2000 Administration Readiness Review for MCSE Exam 70-228&lt;br&gt;
[&lt;a href="http://www.microsoft.com/mspress/books/4893.aspx"&gt;link&lt;/a&gt;]&lt;br&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;a href="http://www.oreilly.com/catalog/jentnut/"&gt;&lt;img src="http://deepdark.net/content/binary/70-228.gif" border="0"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
Microsoft Visual Basic Design Patterns&lt;br&gt;
[&lt;a href="http://www.microsoft.com/mspress/books/2322.aspx"&gt;link&lt;/a&gt;]&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;a href="http://www.oreilly.com/catalog/jentnut/"&gt;&lt;img src="http://deepdark.net/content/binary/VB_deisgn_patterns_stamatakis.gif" border="0"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;b&gt;Java&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Java Servlet Programming. Hunter, Crawford. 
&lt;br&gt;
[&lt;a href="http://www.oreilly.com/catalog/jservlet/index.html"&gt;link&lt;/a&gt;]&lt;a href="http://www.oreilly.com/catalog/jservlet/index.html"&gt;
&lt;br&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/java_servlet_programming.gif" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
XML, XSLT, Java, and JSP. A case study in developing a web application. 
&lt;br&gt;
[&lt;a href="http://www.amazon.com/XML-XSLT-Java-JSP-Application/dp/0735710899"&gt;link&lt;/a&gt;]&lt;a href="http://www.amazon.com/XML-XSLT-Java-JSP-Application/dp/0735710899%20"&gt;
&lt;br&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/xml_xslt_java_jsp_rockwell.jpg" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Java Enterprise in a nutshell, a desktop quick reference 
&lt;br&gt;
[&lt;a href="http://www.oreilly.com/catalog/jentnut/"&gt;link]&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/java_enterprise_nutshell1.gif" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;b&gt;Linux&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Linux Routers, a primer for network administrators, Tony Mancill 
&lt;br&gt;
[&lt;a href="http://www.amazon.com/Linux-Routers-Primer-Network-Administrators/dp/0130861138"&gt;link&lt;/a&gt;]&lt;a href="http://www.amazon.com/Linux-Routers-Primer-Network-Administrators/dp/0130861138"&gt;
&lt;br&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://deepdark.net/content/binary/linux_routers_mancil.jpg" border="0"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;b&gt;Caveats: &lt;/b&gt;Some of these are a bit marked on the cover from normal wear and tear.&amp;nbsp;
Original CDs are still in the book where applicable.&amp;nbsp; Email me if postage is
required.&lt;br&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,39bb95f1-fdf9-4fed-bcc9-e320d2af5e7a.aspx</comments>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=202ffe29-fbd8-4a67-bef0-6abc42a5626b</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,202ffe29-fbd8-4a67-bef0-6abc42a5626b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,202ffe29-fbd8-4a67-bef0-6abc42a5626b.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=202ffe29-fbd8-4a67-bef0-6abc42a5626b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Don’t underestimate the sly and insidious
lengths Personal Firewall products in general, and Norton Internet Security 2007 in
particular, will go to in fulfilling its goal of disrupting SQL Sever Management Studio.<br /><br />
That will be all.<br />
:-)<br /><p></p></body>
      <title>Today's Lesson</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,202ffe29-fbd8-4a67-bef0-6abc42a5626b.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,202ffe29-fbd8-4a67-bef0-6abc42a5626b.aspx</link>
      <pubDate>Mon, 27 Aug 2007 06:56:39 GMT</pubDate>
      <description>Don’t underestimate the sly and insidious lengths Personal Firewall products in general, and Norton Internet Security 2007 
in particular, will go to in fulfilling its goal of disrupting SQL Sever Management Studio.&lt;br&gt;
&lt;br&gt;
That will be all.&lt;br&gt;
:-)&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,202ffe29-fbd8-4a67-bef0-6abc42a5626b.aspx</comments>
      <category>Geeking Out!</category>
      <category>That will be all (rant)</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=ed371657-e6c0-4014-9611-4a71b54d00a3</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,ed371657-e6c0-4014-9611-4a71b54d00a3.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,ed371657-e6c0-4014-9611-4a71b54d00a3.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=ed371657-e6c0-4014-9611-4a71b54d00a3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
For a limited time, members of CSharpZealot.com have access to some free Silverlight
training content!  Here's how:<br /><ul><li>
You will need to grab the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=C72F125F-A6F6-4F4E-A11D-6942C9BA1834&amp;displaylang=en&amp;Hash=QzwnkymYiCieDfSWumQgSvEujdch544vwBZetAbr2ParNfc%2bQ6a6PpweeR8jaCs4PXD3u%2f8bNhDsuk5sYXdSjw%3d%3d">Silverlight
1.0 RC1 SDK</a></li><li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;displaylang=en">.NET
Framework, v1.1</a> (required by the InnerWorkings bits, regardless of the training
being in Visual Studio 2005)<br /></li><li>
Register at <a href="http://csharpzealot.com/">CSharpZealot.com</a> if you have not
already done so<a href="http://csharpzealot.com/"><br /></a></li><li>
Follow <a href="http://www.innerworkings.com/promotions/664b06ea-357c-4730-8cb0-44376cceb865/csharpzealot-silverlight-promotion">the
link on Brian's blog to InnerWorkings special promotion for CSharpZealots</a></li></ul>
Easy!<br /><br />
Also, I'm impressed at how well the InnerWorkings bits integrate with Visual Studio
during the training experience.  You should really check it out.<br /><br />
Now please keep in mind that Web 2.0 <i>(and it's previous incarnation, Web 0.9) </i><b>supports
bi-directional time travel</b>.  
<br /><ul><li>
Forward, at a pace of 1 second per second, same as daily life, really; and 
<br /></li><li>
Backwards at a rate of 20 yrs in, say, about 150 miliseconds.</li></ul>
That means that if you are reading this blog post some time in the future, <b>this
offer may be closed</b>.  It's only open for a limited time, so get to it! 
Don't be the last guy on the block to not know how to use the MediaElement and VideoBrush
in Silverlight!<br /><br />
Mad props <font color="#808080" size="2">(that's what the kids say these days, don't
ya know?)</font> to <a href="http://msmvps.com/blogs/brianmadsen/">Brian Madsen</a>,
btw, for keeping CSharpZealot the place to get your .NET love.<br /><p></p></body>
      <title>Quickest way to free Silverlight training?  InnerWorkings and CSharpZealot work together to make you cooler than your friends</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,ed371657-e6c0-4014-9611-4a71b54d00a3.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,ed371657-e6c0-4014-9611-4a71b54d00a3.aspx</link>
      <pubDate>Wed, 15 Aug 2007 08:01:21 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
For a limited time, members of CSharpZealot.com have access to some free Silverlight
training content!&amp;nbsp; Here's how:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
You will need to grab the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=C72F125F-A6F6-4F4E-A11D-6942C9BA1834&amp;amp;displaylang=en&amp;amp;Hash=QzwnkymYiCieDfSWumQgSvEujdch544vwBZetAbr2ParNfc%2bQ6a6PpweeR8jaCs4PXD3u%2f8bNhDsuk5sYXdSjw%3d%3d"&gt;Silverlight
1.0 RC1 SDK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en"&gt;.NET
Framework, v1.1&lt;/a&gt; (required by the InnerWorkings bits, regardless of the training
being in Visual Studio 2005)&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Register at &lt;a href="http://csharpzealot.com/"&gt;CSharpZealot.com&lt;/a&gt; if you have not
already done so&lt;a href="http://csharpzealot.com/"&gt;
&lt;br&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Follow &lt;a href="http://www.innerworkings.com/promotions/664b06ea-357c-4730-8cb0-44376cceb865/csharpzealot-silverlight-promotion"&gt;the
link on Brian's blog to InnerWorkings special promotion for CSharpZealots&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
Easy!&lt;br&gt;
&lt;br&gt;
Also, I'm impressed at how well the InnerWorkings bits integrate with Visual Studio
during the training experience.&amp;nbsp; You should really check it out.&lt;br&gt;
&lt;br&gt;
Now please keep in mind that Web 2.0 &lt;i&gt;(and it's previous incarnation, Web 0.9) &lt;/i&gt;&lt;b&gt;supports
bi-directional time travel&lt;/b&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Forward, at a pace of 1 second per second, same as daily life, really; and 
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Backwards at a rate of 20 yrs in, say, about 150 miliseconds.&lt;/li&gt;
&lt;/ul&gt;
That means that if you are reading this blog post some time in the future, &lt;b&gt;this
offer may be closed&lt;/b&gt;.&amp;nbsp; It's only open for a limited time, so get to it!&amp;nbsp;
Don't be the last guy on the block to not know how to use the MediaElement and VideoBrush
in Silverlight!&lt;br&gt;
&lt;br&gt;
Mad props &lt;font color="#808080" size="2"&gt;(that's what the kids say these days, don't
ya know?)&lt;/font&gt; to &lt;a href="http://msmvps.com/blogs/brianmadsen/"&gt;Brian Madsen&lt;/a&gt;,
btw, for keeping CSharpZealot the place to get your .NET love.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,ed371657-e6c0-4014-9611-4a71b54d00a3.aspx</comments>
      <category>C#</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=f9eee99a-9c7c-4417-8940-48c539cb8004</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,f9eee99a-9c7c-4417-8940-48c539cb8004.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,f9eee99a-9c7c-4417-8940-48c539cb8004.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f9eee99a-9c7c-4417-8940-48c539cb8004</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">A friend of mine dropped me an email that
asked the following:<br /><br /><font color="#0000ff"><i>So, I’ve been thinking more and more lately that I should
make some better use of my spare brain cycles and train time by learning some coding.
Do you have any recommendations for where a total coding newbie with no money and
no copy of VS should start?</i></font><br /><br />
So I thought I would answer in a series of blog posts.  <b>This is part 1</b>.<br /><br /><b>The first thing is no money does not mean that you can’t have a copy of Visual
Studio</b><br /><br />
The first thing to do is grab a copy of <a href="http://msdn2.microsoft.com/en-us/express/aa974184.aspx">Visual
Studio Express Edition</a>.  These are supprisingly capable cut down versions
of the real Visual Studio 2005.<br /><br />
Go for Visual Basic or C# - don’t think C++ or J# are particularly good places to
start learning code.  Either is fine.  Really.  
<br /><br />
Also, Visual Studio 2008 Express Edition is available in Beta 2 at the time of writing. 
Visual Studio 2008 is awesome, but again not the best place to start imho.<br /><br />
Then grab <a href="http://msdn2.microsoft.com/en-us/express/aa975050.aspx">Visual
Web Developer Express and SQL Server Express</a><br /><br />
Also, if you think MCP Certification is on the cards, each <a href="http://www.dymocks.com.au/ProductDetails/ProductDetail.aspx?R=9780735622777">MS
Press training kit comes with a 90-day copy of Visual Studio Professional</a>.<br /><br /><font color="#ff0000"><b>UPDATE</b></font>:  There are some additional downloads
to consider:<br /><ul><li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E&amp;displaylang=en">Visual
Studio 2005 Express Editions Service Pack 1</a></li><li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;displaylang=en">Visual
Studio 2005 Update for Windows Vista</a></li><li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=BE6A2C5D-00DF-4220-B133-29C1E0B6585F&amp;displaylang=en">SQL
Server Books Online Update (May 2007).</a>  <b>NB: </b>These are updated a couple
of times a year.<br /></li></ul><br /><b>The second thing is no Visual Studio does not mean no .NET programming</b><br /><br /><a href="http://www.icsharpcode.net/OpenSource/SD/">#develop, or SharpDevelop is a
free, open source development tool</a> for C#, VB.NET and Boo.<br /><br />
It has a couple of limitations, but can be had for a tiny 8.2Mb download and dosen't
carry some of the weight of Visual Studio while still keeping some of the look and
feel.<br /><br /><b>Still have some spare bandwidth?</b><br /><br /><a href="http://www.microsoft.com/downloads/details.aspx?familyid=C2B1E300-F358-4523-B479-F53D234CDCCF&amp;displaylang=en">Grab
the Windows SDK</a>.  It's probabbly a bit above the beginner level but it represents
an execllent reference to what is happening under the hood when you come to need to
know.<br /><br /><a href="http://www.gotdotnet.com/Team/FxCop/">Grab FxCop</a> (NB: you may have grabbed
this as part of the Windows SDK).  FxCop is a tool that looks at your programs
and compares them to a set of rules for programming on the .NET framework.  This
is a little bit of an advanced topic, but also is a really valuable learning tool
for avoiding bad coding habits.<br /><br />
FxCop 101:  <i>The default is to check your code against all the rules. 
As a beginner you probabbly don't want this.</i><br /><br /><b>Source code control is an important practice.  Even for a single guy on a
train.</b><br /><br />
For source code control I would <a href="http://sourcegear.com/vault/index.html">recommend
going with SourceGear Vault</a> which is <a href="http://sourcegear.com/faq.html">free
for a single named concurrent user</a>.  It's really easy to install and get
going.<br /><br />
Unlike SourceSafe, Vault is backed with a SQL Server database for better performance
and backup support, and also runs over SSL and can run over the internet.  Additionally
it supports an <i>Edit-Merge-Commit</i> usage pattern in addition to SourceSafe’s <i>Checkout-Change-Commit</i> usage
pattern – but that is a bit of an advanced topic so don’t get too distracted. 
Just know that it’s there for later.<br /><br /><b>What Else?</b>  I'd love to hear from anyone via comments here on this topic. 
What other bits should people go and get for programming on day one.<br /><br /><font color="#808080"><b>Listening To</b>:  DAT318 Applied ADO.NET Entities from
Tech.Ed '07.</font><br /><p></p></body>
      <title>Learning to program, part 1 - What you can use</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,f9eee99a-9c7c-4417-8940-48c539cb8004.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,f9eee99a-9c7c-4417-8940-48c539cb8004.aspx</link>
      <pubDate>Tue, 14 Aug 2007 03:26:16 GMT</pubDate>
      <description>A friend of mine dropped me an email that asked the following:&lt;br&gt;
&lt;br&gt;
&lt;font color="#0000ff"&gt;&lt;i&gt;So, I’ve been thinking more and more lately that I should
make some better use of my spare brain cycles and train time by learning some coding.
Do you have any recommendations for where a total coding newbie with no money and
no copy of VS should start?&lt;/i&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
So I thought I would answer in a series of blog posts.&amp;nbsp; &lt;b&gt;This is part 1&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;The first thing is no money does not mean that you can’t have a copy of Visual
Studio&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
The first thing to do is grab a copy of &lt;a href="http://msdn2.microsoft.com/en-us/express/aa974184.aspx"&gt;Visual
Studio Express Edition&lt;/a&gt;.&amp;nbsp; These are supprisingly capable cut down versions
of the real Visual Studio 2005.&lt;br&gt;
&lt;br&gt;
Go for Visual Basic or C# - don’t think C++ or J# are particularly good places to
start learning code.&amp;nbsp; Either is fine.&amp;nbsp; Really.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Also, Visual Studio 2008 Express Edition is available in Beta 2 at the time of writing.&amp;nbsp;
Visual Studio 2008 is awesome, but again not the best place to start imho.&lt;br&gt;
&lt;br&gt;
Then grab &lt;a href="http://msdn2.microsoft.com/en-us/express/aa975050.aspx"&gt;Visual
Web Developer Express and SQL Server Express&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Also, if you think MCP Certification is on the cards, each &lt;a href="http://www.dymocks.com.au/ProductDetails/ProductDetail.aspx?R=9780735622777"&gt;MS
Press training kit comes with a 90-day copy of Visual Studio Professional&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;font color="#ff0000"&gt;&lt;b&gt;UPDATE&lt;/b&gt;&lt;/font&gt;:&amp;nbsp; There are some additional downloads
to consider:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E&amp;amp;displaylang=en"&gt;Visual
Studio 2005 Express Editions Service Pack 1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;amp;displaylang=en"&gt;Visual
Studio 2005 Update for Windows Vista&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=BE6A2C5D-00DF-4220-B133-29C1E0B6585F&amp;amp;displaylang=en"&gt;SQL
Server Books Online Update (May 2007).&lt;/a&gt;&amp;nbsp; &lt;b&gt;NB: &lt;/b&gt;These are updated a couple
of times a year.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;b&gt;The second thing is no Visual Studio does not mean no .NET programming&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;#develop, or SharpDevelop is a
free, open source development tool&lt;/a&gt; for C#, VB.NET and Boo.&lt;br&gt;
&lt;br&gt;
It has a couple of limitations, but can be had for a tiny 8.2Mb download and dosen't
carry some of the weight of Visual Studio while still keeping some of the look and
feel.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Still have some spare bandwidth?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=C2B1E300-F358-4523-B479-F53D234CDCCF&amp;amp;displaylang=en"&gt;Grab
the Windows SDK&lt;/a&gt;.&amp;nbsp; It's probabbly a bit above the beginner level but it represents
an execllent reference to what is happening under the hood when you come to need to
know.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.gotdotnet.com/Team/FxCop/"&gt;Grab FxCop&lt;/a&gt; (NB: you may have grabbed
this as part of the Windows SDK).&amp;nbsp; FxCop is a tool that looks at your programs
and compares them to a set of rules for programming on the .NET framework.&amp;nbsp; This
is a little bit of an advanced topic, but also is a really valuable learning tool
for avoiding bad coding habits.&lt;br&gt;
&lt;br&gt;
FxCop 101:&amp;nbsp; &lt;i&gt;The default is to check your code against all the rules.&amp;nbsp;
As a beginner you probabbly don't want this.&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Source code control is an important practice.&amp;nbsp; Even for a single guy on a
train.&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
For source code control I would &lt;a href="http://sourcegear.com/vault/index.html"&gt;recommend
going with SourceGear Vault&lt;/a&gt; which is &lt;a href="http://sourcegear.com/faq.html"&gt;free
for a single named concurrent user&lt;/a&gt;.&amp;nbsp; It's really easy to install and get
going.&lt;br&gt;
&lt;br&gt;
Unlike SourceSafe, Vault is backed with a SQL Server database for better performance
and backup support, and also runs over SSL and can run over the internet.&amp;nbsp; Additionally
it supports an &lt;i&gt;Edit-Merge-Commit&lt;/i&gt; usage pattern in addition to SourceSafe’s &lt;i&gt;Checkout-Change-Commit&lt;/i&gt; usage
pattern – but that is a bit of an advanced topic so don’t get too distracted.&amp;nbsp;
Just know that it’s there for later.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What Else?&lt;/b&gt;&amp;nbsp; I'd love to hear from anyone via comments here on this topic.&amp;nbsp;
What other bits should people go and get for programming on day one.&lt;br&gt;
&lt;br&gt;
&lt;font color="#808080"&gt;&lt;b&gt;Listening To&lt;/b&gt;:&amp;nbsp; DAT318 Applied ADO.NET Entities from
Tech.Ed '07.&lt;/font&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,f9eee99a-9c7c-4417-8940-48c539cb8004.aspx</comments>
      <category>Geeking Out!</category>
      <category>Learn To Code</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=73c744e8-86ad-4aab-8a5a-b77809347a90</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,73c744e8-86ad-4aab-8a5a-b77809347a90.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,73c744e8-86ad-4aab-8a5a-b77809347a90.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=73c744e8-86ad-4aab-8a5a-b77809347a90</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
        <a href="http://www.microsoft.com/australia/teched07/">
          <img src="http://www.microsoft.com/australia/teched07/images/bgs/bg_content_footer_logo.gif" />
        </a>
        <br />
        <br />
If you are attending and wanna hang out, drop me a line via this blog.<br /><br />
Otherwise, see you next week* :)<br /><br /><font color="#808080">* by which time I will be significantly smarter... ;-)</font><br /><p></p></body>
      <title>Off to Tech.Ed!</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,73c744e8-86ad-4aab-8a5a-b77809347a90.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,73c744e8-86ad-4aab-8a5a-b77809347a90.aspx</link>
      <pubDate>Tue, 07 Aug 2007 02:34:22 GMT</pubDate>
      <description>&lt;br&gt;
&lt;a href="http://www.microsoft.com/australia/teched07/"&gt;&lt;img src="http://www.microsoft.com/australia/teched07/images/bgs/bg_content_footer_logo.gif"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;br&gt;
If you are attending and wanna hang out, drop me a line via this blog.&lt;br&gt;
&lt;br&gt;
Otherwise, see you next week* :)&lt;br&gt;
&lt;br&gt;
&lt;font color="#808080"&gt;* by which time I will be significantly smarter... ;-)&lt;/font&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,73c744e8-86ad-4aab-8a5a-b77809347a90.aspx</comments>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=731f801d-b78b-4e51-91b9-5f1878cde4ad</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,731f801d-b78b-4e51-91b9-5f1878cde4ad.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,731f801d-b78b-4e51-91b9-5f1878cde4ad.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=731f801d-b78b-4e51-91b9-5f1878cde4ad</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">The CLR Add-In Team Blog has just posted
a list of <a href="http://blogs.msdn.com/clraddins/archive/2007/07/27/by-popular-demand-jack-gudenkauf.aspx">the
7 new features that they have included in Visual Studio <font color="#a9a9a9"><strike>Orcas</strike></font>2008
Beta 2</a>.<br /><p></p></body>
      <title>Update to: Everything you need to know to get started with System.AddIn</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,731f801d-b78b-4e51-91b9-5f1878cde4ad.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,731f801d-b78b-4e51-91b9-5f1878cde4ad.aspx</link>
      <pubDate>Tue, 31 Jul 2007 01:49:06 GMT</pubDate>
      <description>The CLR Add-In Team Blog has just posted a list of &lt;a href="http://blogs.msdn.com/clraddins/archive/2007/07/27/by-popular-demand-jack-gudenkauf.aspx"&gt;the
7 new features that they have included in Visual Studio &lt;font color="#a9a9a9"&gt;&lt;strike&gt;Orcas&lt;/strike&gt;&lt;/font&gt;2008
Beta 2&lt;/a&gt;.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,731f801d-b78b-4e51-91b9-5f1878cde4ad.aspx</comments>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=79777c30-f39d-4a35-8379-79e43d467095</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,79777c30-f39d-4a35-8379-79e43d467095.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,79777c30-f39d-4a35-8379-79e43d467095.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=79777c30-f39d-4a35-8379-79e43d467095</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is the third of my posts about group policy for web developers [<a href="http://deepdark.net/PermaLink,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx">part
1</a>] [<a href="http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx">part
2</a>], and today's post is a from-the-trenches tail about how you can get 401.1 Access
Denied as a result of applying group policy.
</p>
        <p>
Mad props to <a href="http://blogs.msdn.com/jiruss/">Jimmie Russ</a> and his post <a href="http://blogs.msdn.com/jiruss/archive/2006/12/17/access-denied-401-1-goes-away-temporarily-after-iisreset.aspx">Access
Denied 401.1 goes away temporarily after IISRESET</a>, as it was his post that sorted
my problem today.
</p>
        <p>
As you will see in his post, it is possible to push out User Rights Assignment policies
via a GPO that can define the following rights:
</p>
        <ul>
          <li>
Log on as a service</li>
          <li>
Log on as a batch job</li>
          <li>
Allow log on locally</li>
          <li>
Access this computer from the network</li>
        </ul>
        <p>
The above list may not be complete, but it was these four that caused a problem in
my IIS environment.
</p>
        <p>
Two tell-tail signs that this is your problem:
</p>
        <ol>
          <li>
If you run <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e90fe777-4a21-4066-bd22-b931f7572e9a&amp;DisplayLang=en">the
always awesome AuthDiag utility</a> and it reports that certain <strong>local</strong> accounts
(like <font face="Courier New" color="#000000">IUSR_*</font>) have rights missing,
specifically the ones listed above.</li>
          <li>
When you view the <font face="Courier New" color="#000000">User Rights Assignment</font> in <font face="Courier New" color="#000000">Local
Security Settings</font></li>
        </ol>
        <ul>
          <li>
The above four rights are locked (have a little lock icon instead of the "blue 1s
and 0s icon") and are not able to be edited.</li>
          <li>
The above four rights are not granted to our local accounts (again <font face="Courier New" color="#000000">IUSR_*</font> et
al)</li>
        </ul>
        <p>
Again, it may not always be exactly those four - what you are looking for are <strong>policies
that will not allow your IIS accounts (as listed in the AuthDiag results) to log on</strong>.
</p>
        <p>
If I had my time again, I would have cranked up the failed security events and listed
them here, but my servers are working again and I like it that way so this can be
left as an exercise to the reader :-)
</p>
        <p>
As Jimmie said, the solution is to have these rights not pushed down to your web servers. 
This can be by not applying them in your Default Domain Policy, or by putting your
web servers in a seperate OU blocking policy inheritance.  If you're not sure,
consult an expert.
</p>
      </body>
      <title>Group Policy for Web Developers, Part 3:  IIS security accounts</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,79777c30-f39d-4a35-8379-79e43d467095.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,79777c30-f39d-4a35-8379-79e43d467095.aspx</link>
      <pubDate>Thu, 19 Jul 2007 06:39:09 GMT</pubDate>
      <description>&lt;p&gt;
This is the third of my posts about group policy for web developers [&lt;a href="http://deepdark.net/PermaLink,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx"&gt;part
1&lt;/a&gt;] [&lt;a href="http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx"&gt;part
2&lt;/a&gt;], and today's post is a from-the-trenches tail about how you can get 401.1 Access
Denied as a result of applying group policy.
&lt;/p&gt;
&lt;p&gt;
Mad props to &lt;a href="http://blogs.msdn.com/jiruss/"&gt;Jimmie Russ&lt;/a&gt; and his post &lt;a href="http://blogs.msdn.com/jiruss/archive/2006/12/17/access-denied-401-1-goes-away-temporarily-after-iisreset.aspx"&gt;Access
Denied 401.1 goes away temporarily after IISRESET&lt;/a&gt;, as it was his post that sorted
my problem today.
&lt;/p&gt;
&lt;p&gt;
As you will see in his post, it is possible to push out User Rights Assignment policies
via a GPO that can define the following rights:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Log on as&amp;nbsp;a service&lt;/li&gt;
&lt;li&gt;
Log on as&amp;nbsp;a batch job&lt;/li&gt;
&lt;li&gt;
Allow log on locally&lt;/li&gt;
&lt;li&gt;
Access this computer from the network&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The above list may not be complete, but it was these four that caused a problem in
my IIS environment.
&lt;/p&gt;
&lt;p&gt;
Two tell-tail signs that this is your problem:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
If you run &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e90fe777-4a21-4066-bd22-b931f7572e9a&amp;amp;DisplayLang=en"&gt;the
always awesome AuthDiag utility&lt;/a&gt; and it reports that certain &lt;strong&gt;local&lt;/strong&gt; accounts
(like &lt;font face="Courier New" color=#000000&gt;IUSR_*&lt;/font&gt;) have rights missing, specifically
the ones listed above.&lt;/li&gt;
&lt;li&gt;
When you view the &lt;font face="Courier New" color=#000000&gt;User Rights Assignment&lt;/font&gt; in &lt;font face="Courier New" color=#000000&gt;Local
Security Settings&lt;/font&gt; 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
The above four rights are locked (have a little lock icon instead of the "blue 1s
and 0s icon") and are not able to be edited.&lt;/li&gt;
&lt;li&gt;
The above four rights are not granted to our local accounts (again &lt;font face="Courier New" color=#000000&gt;IUSR_*&lt;/font&gt; et
al)&lt;/li&gt;
&lt;/ul&gt;
&gt;
&lt;p&gt;
Again, it may not always be exactly those four - what you are looking for are &lt;strong&gt;policies
that will not allow your IIS accounts (as listed in the AuthDiag results) to log on&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
If I had my time again, I would have cranked up the failed security events and listed
them here, but my servers are working again and I like it that way so this can be
left as an exercise to the reader :-)
&lt;/p&gt;
&lt;p&gt;
As Jimmie said, the solution is to have these rights not pushed down to your web servers.&amp;nbsp;
This can be by not applying them in your Default Domain Policy, or by putting your
web servers in a seperate OU blocking policy inheritance.&amp;nbsp; If you're not sure,
consult an expert.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,79777c30-f39d-4a35-8379-79e43d467095.aspx</comments>
      <category>Active Directory</category>
      <category>ASP.Net</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=27527f80-a50b-4588-b454-dfbe93a065d8</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,27527f80-a50b-4588-b454-dfbe93a065d8.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,27527f80-a50b-4588-b454-dfbe93a065d8.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=27527f80-a50b-4588-b454-dfbe93a065d8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Sorry to anyone who is waiting for an IM,
email, phone call or anything from me... there is a burning smell coming out of a
server :-(<br /><br />
If you need me, I'll be double-checking that I have valid backups...<br /><p><strong><em><font color="#0000ff">Update</font></em></strong>:  The acrid smell
I mentioned above was in fact the smell of fresh just-out-of-warranty power supply. 
I even had to wash my hair to get the smell out.  All is OK now.  :-)
</p></body>
      <title>Bad Day, one of my servers is on fire... :-(</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,27527f80-a50b-4588-b454-dfbe93a065d8.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,27527f80-a50b-4588-b454-dfbe93a065d8.aspx</link>
      <pubDate>Wed, 18 Jul 2007 07:08:36 GMT</pubDate>
      <description>Sorry to anyone who is waiting for an IM, email, phone call or anything from me... there is a burning smell coming out of a server :-(&lt;br&gt;
&lt;br&gt;
If you need me, I'll be double-checking that I have valid backups...&lt;br&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#0000ff&gt;Update&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;:&amp;nbsp; The acrid smell
I mentioned above was in fact the smell of fresh just-out-of-warranty power supply.&amp;nbsp;
I even had to wash my hair to get the smell out.&amp;nbsp; All is OK now.&amp;nbsp; :-)
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,27527f80-a50b-4588-b454-dfbe93a065d8.aspx</comments>
      <category>Geeking Out!</category>
      <category>META</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=e52bc16e-8863-4f99-97e8-9c1daa675a05</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,e52bc16e-8863-4f99-97e8-9c1daa675a05.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,e52bc16e-8863-4f99-97e8-9c1daa675a05.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e52bc16e-8863-4f99-97e8-9c1daa675a05</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>How to start?</strong>
          <br />
You will need several assemblies.  This is because to reach the level of decoupling
that is desired, the pipeline has a certain pattern of dependencies between projects. 
I’m not sure if I am subconsciously not objecting to it or actually actively like
this now, was not always the way.
</p>
        <p>
          <strong>A pipeline?</strong>
          <br />
Yes, you need one.  
</p>
        <p>
          <strong>What is a pipeline?</strong>
          <br />
It’s a series of folders that live somewhere (does not have to be under your
application's path) and each of the assemblies have their place in the structure. 
The folders will look like this:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/Add-InPipeLinePaths1.jpg" border="0" />
        </p>
        <p>
It’s probably a good idea to build one now in your project tree and set the build
output as you go.
</p>
        <p>
There is a <a href="http://blogs.msdn.com/clraddins/archive/2007/02/23/brief-introduction-to-our-architecture-for-managed-add-ins.aspx">graphic
explaining the pipeline on the CLR Add-In team blog</a> (with nice colours), it is
also in the Orcas MSDN under the title: "Pipeline Development Requirements". 
The MSDN one has the addition of lines to indicate the static dependancies. 
</p>
        <p>
I've chosen to show it differently in my graphics <font color="#a9a9a9" size="1">(don't
say a word!)</font> to indicate the order of it all coming together as well as the
references.  In the graphic the <strong><em>arrow lines illustrate the dependancies
between the projects</em></strong>.
</p>
        <p>
Also, I make reference to the sample code throughout this post.  Download link
is at the bottom.
</p>
        <p>
          <strong>Step 1: Define Contracts </strong>
        </p>
        <p>
The first step is to define the contracts in your contracts assembly and <a href="http://en.wikipedia.org/wiki/Data_Transfer_Object">DTOs
in your DTO’s assembly</a>.
</p>
        <p>
Your contract should be one interface per kind of add-in you will support.  These
interfaces need to inherit <font face="Courier New">System.AddIn.Contract.<font color="#0000ff">IContract</font></font> and
be decorated with <font face="Courier New">System.AddIn.Pipeline.<font color="#0000ff">AddInContractAttribute</font></font>.
</p>
        <p>
Types in the DTO that you wish to pass over the boundary will need to be serializable.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/AddInStep0.jpg" border="0" />
        </p>
        <p>
Jason He’s example of a Paint.NET Add-In (link below) takes a different path,
by adding the extra types in the Add-In View, adding more wrappers.  His approach
may have advantages that I have not discovered yet, but it reminds me of some of the
dancing you have to do when for example you have the same type in a Web Reference
and a binary reference in the same project.  
</p>
        <p>
My preference is then to make a behavior-free separate assembly that anyone can take
a dependency on safely.  This is the reason for including a DTO project. 
I also like having the DTO types there to do as a [DataContract] does in WCF. 
This will allow the Add-In contract to remain static if the host side changes it’s
implementations of the DTO equiv. types.
</p>
        <p>
Change the project properties of the Contracts project to build to: <font face="Courier New">..\Pipeline\Contracts\</font></p>
        <p>
Also note, for types that take a dependency on the DTO project, set the Copy Local
property of the reference to False.  This is to keep the pipleline path clean. 
i.e. we don’t actually want a copy of the DTO assembly in the <font face="Courier New">\pipeline\contracts\</font> path! 
This will slow our discovery and generate warnings as the Add-In infrastructure tries
to examine it for contracts. 
</p>
        <p>
          <strong>Step 2: Host View and Add-In View<br /></strong>
          <br />
Add two new assemblies:  host view and add-in view<br />
Each has a <strong>public abstract class that mirrors the contract interface but does
not reference it</strong>.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/AddInStep2.jpg" border="0" />
        </p>
        <p>
Host view does not even need a reference to <font face="Courier New">System.AddIn.</font></p>
        <p>
When building the Add-In View, be sure to:
</p>
        <ul>
          <li>
Apply <font face="Courier New">System.AddIn.Pipeline.<font color="#0000ff">AddInBaseAttribute</font></font></li>
          <li>
Set the project to build to <font face="Courier New">..\Pipeline\AddInViews\</font></li>
        </ul>
        <p>
          <strong>Step 3:  Host Adaptor and Add-In Adaptor</strong>
        </p>
        <p>
Add two more assemblies:  host adaptor and add-in adaptor
</p>
        <p>
          <img src="http://deepdark.net/content/binary/AddInStep3.jpg" border="0" />
        </p>
        <p>
Add-in adapter will have one <em>AddinToContractAdapter </em>class for each Add-In
type and the Host adapter has one <em>ContractToHostViewAdapter </em>class for
each Add-In type.
</p>
        <p>
The <em>AddinToContractAdapter</em> descends from <font face="Courier New">System.AddIn.<font color="#0000ff">ContractBase</font></font> and
implements the contract for the Add-In
</p>
        <p>
The <em>ContractToHostViewAdapter</em> descends from the Abstract class in the Host
View for the Add-In.
</p>
        <p>
Set the build output path of the Host Side adapter to:<font face="Courier New"> ..\Pipeline\HostSideAdapters\<br /></font>And set the build output path of the Add-In Side adapter to: <font face="Courier New">..\Pipeline\AddInSideAdapters\</font></p>
        <p>
The purpose of these adapters is too marshal calls between the instances of your <font face="Courier New">I<em>Contract</em></font>'s
and should just look like wrapper code.
</p>
        <p>
          <strong>Step 4: Build the Add-Ins</strong>
        </p>
        <p>
Every Add-In needs to take a dependency on the Add-In View project and the DTO project. 
Be sure to set their <font face="Courier New">Copy Local = False</font> in the reference
properties.
</p>
        <p>
Each Add-In also needs to descend from the abstract class in the Add-In View project,
implement overrides, and to be decorated with <font face="Courier New">System.AddIn.<font color="#0000ff">AddInAttribute</font></font>.
</p>
        <p>
The AddIn Attribute is the key to how the Add-In will be seen by the host so pay attention
to the parameters on the constructor.
</p>
        <p>
Set the build output path of each Add-In to: <font face="Courier New" color="#000000">..\Pipeline\AddIns\<em>&lt;addinName&gt;</em>\</font></p>
        <p>
I should mention that the Add-In's in the sample code below are just stubs to
show the complete loop.  The Book Library Add-In returns empty objects of the
prescribed types, the other two throw an Exception.  This is to show error handling.
</p>
        <p>
          <strong>Step 5:  The Add-In Host</strong>
        </p>
        <p>
Take a reference to the Host View and Dto projects, this time it is OK to have the
reference Copy Local.
</p>
        <p>
In the attached example the Book Library add-in returns empty objects of the designed
type, however the other two (DVD Library and CD Library) throw an Exception for each
operation.  
</p>
        <p>
By the end of the process, the project will look like this: 
</p>
        <p>
          <br />
          <img src="http://deepdark.net/content/binary/AddInStep4.jpg" border="0" />
        </p>
        <p>
          <strong>Trouble shooting &amp; Error Handling</strong>
        </p>
        <p>
Just skiming over this topic, but it is wise to wire up a handler to <font face="Courier New"><font color="#0000ff">AppDomain</font>.UnhandledException</font> for
the app domain that will run your Add-Ins, and <font face="Courier New"><font color="#0000ff">Application</font>.ThreadException</font> (Windows
Forms examples) as well as wrapping calls into the Add-In with a Try... Catch block.  
</p>
        <p>
If you are trying to work out why your AddIns are not being discovered, remember that:
</p>
        <ul>
          <li>
            <font face="Courier New">
              <font color="#0000ff">AddInStore</font>.Rebuild()</font>
          </li>
          <li>
            <font face="Courier New">
              <font color="#0000ff">AddInStore</font>.RebuildAddIns()</font>
          </li>
          <li>
            <font face="Courier New">
              <font color="#0000ff">AddInStore</font>.Update() </font>
          </li>
          <li>
            <font face="Courier New">
              <font color="#0000ff">AddInStore</font>.UpdateAddIns()</font>
          </li>
        </ul>
        <p>
...all return an array of strings that can be examined to determine how the AddIn
discovery went.
</p>
        <p>
          <strong>Source Code:</strong>
        </p>
        <p>
The source code for this example is available for download from the following link:
</p>
        <p>
          <a href="http://deepdark.net/content/binary/LibraryAddInDemoCode_deepdark.net.zip">LibraryAddInDemoCode_deepdark.net.zip
(152.81 KB)</a>
        </p>
        <p>
It requires Visual Studio Codename Orcas Beta 1.
</p>
        <p>
          <strong>Summary:</strong>
        </p>
        <p>
There are a couple of steps to implementing the new System.Addin stuff, but none of
it is hard!
</p>
        <p>
...and considering that it replaces a lot of very untidy and error-prone Reflection
code that we had to do in prior versions of the framework I think this is a great
addition to the toolbox.
</p>
        <p>
This post is not meant to be a hardcore reference, just the total of my experience
with this technology to date.  If you have any feedback please don't hesitate
to contact me by email or leaving a comment on this post.
</p>
        <p>
          <strong>Sources</strong>:
</p>
        <ul>
          <li>
            <a href="http://blogs.msdn.com/clraddins/">CLR Add-In Team's blog</a>
          </li>
          <li>
Jason He's <em>CLR AddIn Model in Paint.Net</em> series [<a href="http://blogs.msdn.com/zifengh/archive/2007/01/04/addin-model-in-paint-net-1-introduction.aspx">1</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/05/addin-model-in-paint-net-2-addin-discovery.aspx">2</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/08/addin-model-in-paint-net-3-host-side-view.aspx">3</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/09/addin-model-in-paint-net-4-contract-and-hostadapter.aspx">4</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/10/addin-model-in-paint-net-5-icontract-contractbase-and-addinadapter.aspx">5</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/12/addin-model-in-paint-net-6-addinbase-addin-and-deployment.aspx">6</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/15/addin-model-in-paint-net-7-addin-activation.aspx">7</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/16/addin-model-in-paint-net-7-addincontroller.aspx">8</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/18/addin-model-in-paint-net-9-lifetimetoken-and-lifetimetokenhandle.aspx">9</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/24/clr-addin-model-in-paint-net-10-data-type-contract.aspx">10</a>]
[<a href="http://blogs.msdn.com/zifengh/archive/2007/01/29/clr-addin-model-in-paint-net-11-addin-side-data-type-adapters.aspx">11</a>]</li>
        </ul>
        <p>
          <strong>
            <font color="#808080">Listening to: The Chillout Sessions 3</font>
          </strong>
        </p>
      </body>
      <title>Everything you need to know to get started with System.AddIn (...Plus sample code!)</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,e52bc16e-8863-4f99-97e8-9c1daa675a05.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,e52bc16e-8863-4f99-97e8-9c1daa675a05.aspx</link>
      <pubDate>Thu, 12 Jul 2007 07:18:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;How to start?&lt;/strong&gt;
&lt;br&gt;
You will need several assemblies.&amp;nbsp; This is because to reach the level of decoupling
that is desired, the pipeline has a certain pattern of dependencies between projects.&amp;nbsp;
I’m not sure if I am subconsciously not objecting to it or actually actively like
this now, was not always the way.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;A pipeline?&lt;/strong&gt;
&lt;br&gt;
Yes, you need one.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What is a pipeline?&lt;/strong&gt;
&lt;br&gt;
It’s a series of folders that live somewhere&amp;nbsp;(does not have to be under your
application's path)&amp;nbsp;and each of the assemblies have their place in the structure.&amp;nbsp;
The folders will look like this:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/Add-InPipeLinePaths1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
It’s probably a good idea to build one now in your project tree and set the build
output as you go.
&lt;/p&gt;
&lt;p&gt;
There is a &lt;a href="http://blogs.msdn.com/clraddins/archive/2007/02/23/brief-introduction-to-our-architecture-for-managed-add-ins.aspx"&gt;graphic
explaining the pipeline on the CLR Add-In team blog&lt;/a&gt; (with nice colours), it is
also in the Orcas MSDN under the title: "Pipeline Development Requirements".&amp;nbsp;
The MSDN one has the addition of lines to indicate the static dependancies. 
&lt;/p&gt;
&lt;p&gt;
I've chosen to show it differently in my graphics&amp;nbsp;&lt;font color=#a9a9a9 size=1&gt;(don't
say a word!)&lt;/font&gt; to indicate the order of it all coming together as well as the
references.&amp;nbsp; In the graphic the &lt;strong&gt;&lt;em&gt;arrow lines illustrate the dependancies
between the projects&lt;/em&gt;&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Also, I make reference to the sample code throughout this post.&amp;nbsp; Download link
is at the bottom.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Step 1: Define Contracts &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The first step is to define the contracts in your contracts assembly and &lt;a href="http://en.wikipedia.org/wiki/Data_Transfer_Object"&gt;DTOs
in your DTO’s assembly&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Your contract should be one interface per kind of add-in you will support.&amp;nbsp; These
interfaces need to inherit &lt;font face="Courier New"&gt;System.AddIn.Contract.&lt;font color=#0000ff&gt;IContract&lt;/font&gt;&lt;/font&gt; and
be decorated with &lt;font face="Courier New"&gt;System.AddIn.Pipeline.&lt;font color=#0000ff&gt;AddInContractAttribute&lt;/font&gt;&lt;/font&gt;.
&lt;/p&gt;
&lt;p&gt;
Types in the DTO that you wish to pass over the boundary will need to be serializable.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/AddInStep0.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Jason He’s example of a Paint.NET Add-In (link below)&amp;nbsp;takes a different path,
by adding the extra types in the Add-In View, adding more wrappers.&amp;nbsp; His approach
may have advantages that I have not discovered yet, but it reminds me of some of the
dancing you have to do when for example you have the same type in a Web Reference
and a binary reference in the same project.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
My preference is then to make a behavior-free separate assembly that anyone can take
a dependency on safely.&amp;nbsp; This is the reason for including a DTO project.&amp;nbsp;
I also like having the DTO types there to do as a [DataContract] does in WCF.&amp;nbsp;
This will allow the Add-In contract to remain static if the host side changes it’s
implementations of the DTO equiv. types.
&lt;/p&gt;
&lt;p&gt;
Change the project properties of the Contracts project to build to: &lt;font face="Courier New"&gt;..\Pipeline\Contracts\&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Also note, for types that take a dependency on the DTO project, set the Copy Local
property of the reference to False.&amp;nbsp; This is to keep the pipleline path clean.&amp;nbsp;
i.e. we don’t actually want a copy of the DTO assembly in the &lt;font face="Courier New"&gt;\pipeline\contracts\&lt;/font&gt; path!&amp;nbsp;
This will slow our discovery and generate warnings as the Add-In infrastructure tries
to examine it for contracts. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Step 2: Host View and Add-In View&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
Add two new assemblies:&amp;nbsp; host view and add-in view&lt;br&gt;
Each has a &lt;strong&gt;public abstract class that mirrors the contract interface but does
not reference it&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/AddInStep2.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Host view does not even need a reference to &lt;font face="Courier New"&gt;System.AddIn.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
When building the Add-In View, be sure to:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Apply &lt;font face="Courier New"&gt;System.AddIn.Pipeline.&lt;font color=#0000ff&gt;AddInBaseAttribute&lt;/font&gt;&lt;/font&gt; 
&lt;li&gt;
Set the project to build to &lt;font face="Courier New"&gt;..\Pipeline\AddInViews\&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Step 3:&amp;nbsp; Host Adaptor and Add-In Adaptor&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Add two more assemblies:&amp;nbsp; host adaptor and add-in adaptor
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/AddInStep3.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Add-in adapter will have&amp;nbsp;one &lt;em&gt;AddinToContractAdapter &lt;/em&gt;class for each Add-In
type and the Host adapter has&amp;nbsp;one &lt;em&gt;ContractToHostViewAdapter &lt;/em&gt;class for
each Add-In type.
&lt;/p&gt;
&lt;p&gt;
The &lt;em&gt;AddinToContractAdapter&lt;/em&gt; descends from &lt;font face="Courier New"&gt;System.AddIn.&lt;font color=#0000ff&gt;ContractBase&lt;/font&gt;&lt;/font&gt; and
implements the contract for the Add-In
&lt;/p&gt;
&lt;p&gt;
The &lt;em&gt;ContractToHostViewAdapter&lt;/em&gt; descends from the Abstract class in the Host
View for the Add-In.
&lt;/p&gt;
&lt;p&gt;
Set the build output path of the&amp;nbsp;Host Side adapter to:&lt;font face="Courier New"&gt; ..\Pipeline\HostSideAdapters\&lt;br&gt;
&lt;/font&gt;And set the build output path of the Add-In Side adapter to: &lt;font face="Courier New"&gt;..\Pipeline\AddInSideAdapters\&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The purpose of these adapters is too marshal calls between the instances of your &lt;font face="Courier New"&gt;I&lt;em&gt;Contract&lt;/em&gt;&lt;/font&gt;'s
and should just look like wrapper code.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Step 4: Build the Add-Ins&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Every Add-In needs to take a dependency on the Add-In View project and the DTO project.&amp;nbsp;
Be sure to set their &lt;font face="Courier New"&gt;Copy Local = False&lt;/font&gt; in the reference
properties.
&lt;/p&gt;
&lt;p&gt;
Each Add-In also needs to descend from the abstract class in the Add-In View project,
implement overrides, and to be decorated with &lt;font face="Courier New"&gt;System.AddIn.&lt;font color=#0000ff&gt;AddInAttribute&lt;/font&gt;&lt;/font&gt;.
&lt;/p&gt;
&lt;p&gt;
The AddIn Attribute is the key to how the Add-In will be seen by the host so pay attention
to the parameters on the constructor.
&lt;/p&gt;
&lt;p&gt;
Set the build output path of each Add-In to: &lt;font face="Courier New" color=#000000&gt;..\Pipeline\AddIns\&lt;em&gt;&amp;lt;addinName&amp;gt;&lt;/em&gt;\&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
I should mention that the Add-In's in the sample code below are just stubs&amp;nbsp;to
show the complete loop.&amp;nbsp; The Book Library Add-In returns empty objects of the
prescribed types, the other two throw an Exception.&amp;nbsp; This is to show error handling.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Step 5:&amp;nbsp; The Add-In Host&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Take a reference to the Host View and Dto projects, this time it is OK to have the
reference Copy Local.
&lt;/p&gt;
&lt;p&gt;
In the attached example the Book Library add-in returns empty objects of the designed
type, however the other two (DVD Library and CD Library) throw an Exception for each
operation.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
By the end of the process, the project will look like this: 
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;img src="http://deepdark.net/content/binary/AddInStep4.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Trouble shooting &amp;amp; Error Handling&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Just skiming over this topic, but it is wise to wire up a handler to&amp;nbsp;&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;AppDomain&lt;/font&gt;.UnhandledException&lt;/font&gt; for
the app domain that will run your Add-Ins, and &lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;Application&lt;/font&gt;.ThreadException&lt;/font&gt; (Windows
Forms examples) as well as wrapping calls into the Add-In with a Try... Catch block.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
If you are trying to work out why your AddIns are not being discovered, remember that:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;AddInStore&lt;/font&gt;.Rebuild()&lt;/font&gt; 
&lt;li&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;AddInStore&lt;/font&gt;.RebuildAddIns()&lt;/font&gt; 
&lt;li&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;AddInStore&lt;/font&gt;.Update() &lt;/font&gt; 
&lt;li&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;AddInStore&lt;/font&gt;.UpdateAddIns()&lt;/font&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
...all return an array of strings that can be examined to determine how the AddIn
discovery went.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The source code for this example is available for download from the following link:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://deepdark.net/content/binary/LibraryAddInDemoCode_deepdark.net.zip"&gt;LibraryAddInDemoCode_deepdark.net.zip
(152.81 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It requires Visual Studio Codename Orcas Beta 1.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Summary:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
There are a couple of steps to implementing the new System.Addin stuff, but none of
it is hard!
&lt;/p&gt;
&lt;p&gt;
...and considering that it replaces a lot of very untidy and error-prone Reflection
code that we had to do in prior versions of the framework I think this is a great
addition to the toolbox.
&lt;/p&gt;
&lt;p&gt;
This post is not meant&amp;nbsp;to be a hardcore reference, just the total of my experience
with this technology to date.&amp;nbsp; If you have any feedback please don't hesitate
to contact me by email or leaving a comment on this post.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Sources&lt;/strong&gt;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/clraddins/"&gt;CLR Add-In Team's blog&lt;/a&gt; 
&lt;li&gt;
Jason He's &lt;em&gt;CLR AddIn Model in Paint.Net&lt;/em&gt; series [&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/04/addin-model-in-paint-net-1-introduction.aspx"&gt;1&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/05/addin-model-in-paint-net-2-addin-discovery.aspx"&gt;2&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/08/addin-model-in-paint-net-3-host-side-view.aspx"&gt;3&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/09/addin-model-in-paint-net-4-contract-and-hostadapter.aspx"&gt;4&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/10/addin-model-in-paint-net-5-icontract-contractbase-and-addinadapter.aspx"&gt;5&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/12/addin-model-in-paint-net-6-addinbase-addin-and-deployment.aspx"&gt;6&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/15/addin-model-in-paint-net-7-addin-activation.aspx"&gt;7&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/16/addin-model-in-paint-net-7-addincontroller.aspx"&gt;8&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/18/addin-model-in-paint-net-9-lifetimetoken-and-lifetimetokenhandle.aspx"&gt;9&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/24/clr-addin-model-in-paint-net-10-data-type-contract.aspx"&gt;10&lt;/a&gt;]
[&lt;a href="http://blogs.msdn.com/zifengh/archive/2007/01/29/clr-addin-model-in-paint-net-11-addin-side-data-type-adapters.aspx"&gt;11&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080&gt;Listening to: The Chillout Sessions 3&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,e52bc16e-8863-4f99-97e8-9c1daa675a05.aspx</comments>
      <category>Downloads</category>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=2d940400-ffaa-4a86-996b-aa0c904dffbd</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,2d940400-ffaa-4a86-996b-aa0c904dffbd.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,2d940400-ffaa-4a86-996b-aa0c904dffbd.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2d940400-ffaa-4a86-996b-aa0c904dffbd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I think this question is really suited
to two kinds of people: 
<ol><li><strong>Criminally insane</strong>.  Reckless to a point considered, well, imprudent.
:-)  You lick the top of 9V batteries; you chew on tin-foil.  You cut your
toe nails with a <a href="http://www.leatherman.com/">Leatherman</a>.  You bank
the farm on a technology that is still moving because pain is your friend. 
</li><li><strong>People who may ship a product before .NET 3.5 ships</strong>.  .NET 3.5
has some new technologies that I am going to want to use.  Three that are immediately
relevant are: new Active Directory bits, System.AddIn, and the goldern haired child,
Linq.</li></ol><p>
These are bits that (esp. Linq) I want to bake in.  Right now I don’t want to
code up bits that I know I am going to have to rip out soon in order to replace with
the richer platform.
</p><p>
My ship dates are uncertain… if the product name is anything to go by Orcas is at
least 6 mths away.  <strong>The real question in this post is how to mitigate
the risk of being ready to ship before the platform is, and what to keep an eye on</strong>.
</p><p>
Please feel free to <strong><em>leave a comment or email me</em></strong> if you have
clues for the above question :-)
</p><p><a href="http://www.iis.net/default.aspx?tabid=7&amp;subtabid=79">IIS 7 &amp; Longhorn
Beta 3 already has a Go Live license</a>.  I believe them when they say it is
good quality, and I believe them when they say it may still change.  Is a similar
license something that we may see for .NET 3.5 as more betas or CTP’s become available?
</p><p><strong><font color="#ff0000">Update</font></strong>:  <a href="http://www.sqlservercentral.com/columnists/pressrelease/3096.asp">Feb
27 2008 is looking like the launch date for SQL Server 2008, Visual Studio 2008 &amp;
Windows 2008</a>.
</p></body>
      <title>What is the Go-Live story with .NET 3.5?</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,2d940400-ffaa-4a86-996b-aa0c904dffbd.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,2d940400-ffaa-4a86-996b-aa0c904dffbd.aspx</link>
      <pubDate>Wed, 11 Jul 2007 04:34:36 GMT</pubDate>
      <description>I think this question is really suited to two kinds of people: 
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Criminally insane&lt;/strong&gt;.&amp;nbsp; Reckless to a point considered, well, imprudent.
:-)&amp;nbsp; You lick the top of 9V batteries; you chew on tin-foil.&amp;nbsp; You cut your
toe nails with a &lt;a href="http://www.leatherman.com/"&gt;Leatherman&lt;/a&gt;.&amp;nbsp; You bank
the farm on a technology that is still moving because pain is your friend. 
&lt;li&gt;
&lt;strong&gt;People who may ship a product before .NET 3.5 ships&lt;/strong&gt;.&amp;nbsp; .NET 3.5
has some new technologies that I am going to want to use.&amp;nbsp; Three that are immediately
relevant are: new Active Directory bits, System.AddIn, and the goldern haired child,
Linq.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
These are bits that (esp. Linq) I want to bake in.&amp;nbsp; Right now I don’t want to
code up bits that I know I am going to have to rip out soon in order to replace with
the richer platform.
&lt;/p&gt;
&lt;p&gt;
My ship dates are uncertain… if the product name is anything to go by Orcas is at
least 6 mths away.&amp;nbsp; &lt;strong&gt;The real question in this post is how to mitigate
the risk of being ready to ship before the platform is, and what to keep an eye on&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Please feel free to &lt;strong&gt;&lt;em&gt;leave a comment or email me&lt;/em&gt;&lt;/strong&gt; if you have
clues for the above question :-)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.iis.net/default.aspx?tabid=7&amp;amp;subtabid=79"&gt;IIS 7 &amp;amp; Longhorn
Beta 3 already has a Go Live license&lt;/a&gt;.&amp;nbsp; I believe them when they say it is
good quality, and I believe them when they say it may still change.&amp;nbsp; Is a similar
license something that we may see for .NET 3.5 as more betas or CTP’s become available?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#ff0000&gt;Update&lt;/font&gt;&lt;/strong&gt;:&amp;nbsp; &lt;a href="http://www.sqlservercentral.com/columnists/pressrelease/3096.asp"&gt;Feb
27 2008 is looking like the launch date for SQL Server 2008, Visual Studio 2008 &amp;amp;
Windows 2008&lt;/a&gt;.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,2d940400-ffaa-4a86-996b-aa0c904dffbd.aspx</comments>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=cc2e2c5e-9550-4afa-8da2-cf6895e6f93e</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,cc2e2c5e-9550-4afa-8da2-cf6895e6f93e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,cc2e2c5e-9550-4afa-8da2-cf6895e6f93e.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=cc2e2c5e-9550-4afa-8da2-cf6895e6f93e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I have been noticing that <a href="http://www.devexpress.com/Products/NET/IDETools/CodeRush/">CodeRush</a> / <a href="http://www.devexpress.com/Products/NET/IDETools/Refactor/Index.xml">Refactor
Pro!</a> are playing up every so often my shiny (well, dusty) new Vista PC.
</p>
        <p>
The symptoms are minor, but annoying when you have your fingers trained :-) 
Basically Smart Cut / Intelligent Paste stop working.
</p>
        <p>
Turns out, the solution is on the Expert options:  <strong>Startup </strong>\ <strong>Re-register
CodeRush commands with Visual Studio on next startup</strong>.  Easy!
</p>
        <p>
          <img src="http://deepdark.net/content/binary/codeRushOptions.gif" border="0" />
        </p>
        <p>
...Then you can have all your pretty refactoring graphics back! 
</p>
        <p>
          <img src="http://deepdark.net/content/binary/ExtractMethod.gif" border="0" />
        </p>
      </body>
      <title>CodeRush Maintenance for Vista.  Smart Cut / Intelligent Paste</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,cc2e2c5e-9550-4afa-8da2-cf6895e6f93e.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,cc2e2c5e-9550-4afa-8da2-cf6895e6f93e.aspx</link>
      <pubDate>Tue, 03 Jul 2007 04:21:07 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I have been noticing that &lt;a href="http://www.devexpress.com/Products/NET/IDETools/CodeRush/"&gt;CodeRush&lt;/a&gt; / &lt;a href="http://www.devexpress.com/Products/NET/IDETools/Refactor/Index.xml"&gt;Refactor
Pro!&lt;/a&gt; are playing up every so often my shiny (well, dusty) new Vista PC.
&lt;/p&gt;
&lt;p&gt;
The symptoms are minor, but annoying when you have your fingers trained :-)&amp;nbsp;
Basically Smart Cut / Intelligent Paste stop working.
&lt;/p&gt;
&lt;p&gt;
Turns out, the solution is on the Expert options:&amp;nbsp; &lt;strong&gt;Startup &lt;/strong&gt;\ &lt;strong&gt;Re-register
CodeRush commands with Visual Studio on next startup&lt;/strong&gt;.&amp;nbsp; Easy!
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/codeRushOptions.gif" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
...Then you can have all your pretty refactoring graphics back! 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/ExtractMethod.gif" border=0&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,cc2e2c5e-9550-4afa-8da2-cf6895e6f93e.aspx</comments>
      <category>Geeking Out!</category>
      <category>Vista</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=926727ff-1b0e-4130-960f-179ac570bb0d</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,926727ff-1b0e-4130-960f-179ac570bb0d.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,926727ff-1b0e-4130-960f-179ac570bb0d.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=926727ff-1b0e-4130-960f-179ac570bb0d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">It became clear to me <a href="http://deepdark.net/PermaLink,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx">during
my last blog post on the .NET landscape</a> that it was going to grow into more than
one post.  
<br /><p></p><b>Framework Versions</b><br /><br />
One fact that is important to note about the graphic in that post, and it was the
catalyst for me making the drawing, is that <b>the .NET 3.0 and .NET 3.5 frameworks
do not supersede .NET 2.0 but augment it</b>.<br /><br />
What I mean by this is if you were to look into your <font face="Courier New">%WINDIR%\Microsoft.NET\Framework\v3.0</font> folder
you do not get a new <font face="Courier New">System.Data.Dll</font> or <font face="Courier New">System.Web.dll</font>. 
Instead you see the folders for:<br /><ul><li><a href="http://wcf.netfx3.com/">Windows Communication Foundation</a> (Including <a href="http://cardspace.netfx3.com/">Windows
CardSpace</a>) 
</li><li><a href="http://wf.netfx3.com/">Windows Workflow Foundation</a></li><li><a href="http://wpf.netfx3.com/">Windows Presentation Foundation</a><br /></li></ul>
If you look in your <font face="Courier New">%WINDIR%\Microsoft.NET\Framework\v3.5.xxx\</font><font color="#808080" size="1">(still
beta at time of writing)</font> the main thing to note here is a new <font face="Courier New">csc.exe</font> and <font face="Courier New">vbc.exe</font>.<br /><br /><b>So what do you get with .NET 3.5 &amp; Visual Studio 2008 (codename "Orcas")?</b><br /><br /><ul><li><a href="http://blogs.msdn.com/tq/archive/2005/09/15/467714.aspx">Managed AddIn Framework </a>(System.AddIn
&amp; System.AddIn.Contract) ...also the <a href="http://blogs.msdn.com/clraddins/">CLR
Add-In team blog</a>.<br /></li><li><a href="http://www.danielmoth.com/Blog/2007/05/accountmanagement.html">An AD/ADAM
wrapper </a>(System.DirectoryServices.AccountManagement) 
</li><li>
A <a href="http://msdn2.microsoft.com/en-us/library/aa394053.aspx">WMI 2.0 Managed
wrapper</a> (System.Management.Instrumentation) 
</li><li><a href="http://blogs.msdn.com/p2p/archive/2007/03/12/writing-peer-to-peer-applications-using-net-part-1-pnrp.aspx">Peer-to-Peer
API's </a>(System.Net.PeerToPeer &amp; System.Net.PeerToPeer.Collaboration) 
</li><li>
In ASP.NET there is <a href="http://ajax.asp.net/">ASP.NET AJAX</a>, <a href="http://weblogs.asp.net/wallym/archive/2007/05/23/asp-net-podcast-show-93-asp-net-listview-in-orcas-beta-1-video.aspx">asp:ListView</a>,
and the <a href="http://weblogs.asp.net/scottgu/archive/2007/01/28/video-using-linq-with-asp-net-in-vs-orcas-part-1.aspx">LinqDataSource</a>.
(System.Web.Extensions) 
</li><li><a href="http://blogs.msdn.com/mwinkle/archive/2007/02/28/wcf-and-wf-in-quot-orcas-quot.aspx">Improvements
to WCF and WF </a>(System.ServiceModel.Web &amp; System.WorkflowServices) 
</li><li><a href="http://blogs.msdn.com/adonet/archive/2007/04/20/ado-net-entity-framework-orcas-beta-1.aspx">ADO.NET
Entity Framework </a>(System.Data.Entity) 
</li><li><a href="http://blogs.msdn.com/shawnfa/archive/2007/01/17/new-crypto-algorithms-in-orcas.aspx">New
Crypto algorithms</a> and <a href="http://msdn2.microsoft.com/en-us/library/aa375276.aspx">support
for Vista's Next-Gen Crypto, which replaces CryptoAPI</a>. (System.Security)</li></ul><p><strong><font color="#808080">Update</font></strong>:  Please also <a href="http://www.danielmoth.com/Blog/labels/Orcas.html">check
out Daniel Moth's whole bunch Orcas posts</a>, and <a href="http://www.danielmoth.com/Blog/2007/06/net-framework-35.html">his
run-down of the new bits</a>.
</p>
...and last but not least, the golden haired child, <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">LINQ</a>...<br /><ul><li><a href="http://www.danielmoth.com/Blog/2007/05/systemxmllinq.html">LINQ to Xml </a>(System.Xml.Linq)
and <a href="http://weblogs.asp.net/scottgu/archive/2006/09/01/Understanding-LINQ-to-SQL-Query-Translations.aspx">LINQ
to SQL </a>(System.Data.Linq) ...also ScottGu's posts <a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx">here</a>, <a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx">here</a> and <a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx">here</a> are
some of the best you'll find)<br /></li></ul><p>
...and for everything that I have missed, or is not in the beta bits yet, <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=17319EB4-299C-43B8-A360-A1C2BD6A421B&amp;displaylang=en">grab
the Orcas overview whitepaper</a>.<br /><br /><b>What is .NET 3.5 going to do to 3.0?</b><br /><br />
It seems <a href="http://www.danielmoth.com/Blog/2007/06/net-framework-35.html">it
has to do with Green Bits and Red Bits</a><font size="1">(source: Daniel Moth)</font>. 
In other words, .NET 3.5 will <i>also include</i> SP1 for .NET 3.0 and SP1 for .NET
2.0.<br /><br /></p></body>
      <title>What is the .NET landscape to date and going into the next year - part 2:  Framework Versions</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,926727ff-1b0e-4130-960f-179ac570bb0d.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,926727ff-1b0e-4130-960f-179ac570bb0d.aspx</link>
      <pubDate>Mon, 02 Jul 2007 23:11:18 GMT</pubDate>
      <description>It became clear to me &lt;a href="http://deepdark.net/PermaLink,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx"&gt;during
my last blog post on the .NET landscape&lt;/a&gt; that it was going to grow into more than
one post.&amp;nbsp; 
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;b&gt;Framework Versions&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
One fact that is important to note about the graphic in that post, and it was the
catalyst for me making the drawing, is that &lt;b&gt;the .NET 3.0 and .NET 3.5 frameworks
do not supersede .NET 2.0 but augment it&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
What I mean by this is if you were to look into your &lt;font face="Courier New"&gt;%WINDIR%\Microsoft.NET\Framework\v3.0&lt;/font&gt; folder
you do not get a new &lt;font face="Courier New"&gt;System.Data.Dll&lt;/font&gt; or &lt;font face="Courier New"&gt;System.Web.dll&lt;/font&gt;.&amp;nbsp;
Instead you see the folders for:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://wcf.netfx3.com/"&gt;Windows Communication Foundation&lt;/a&gt; (Including &lt;a href="http://cardspace.netfx3.com/"&gt;Windows
CardSpace&lt;/a&gt;) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wf.netfx3.com/"&gt;Windows Workflow Foundation&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wpf.netfx3.com/"&gt;Windows Presentation Foundation&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
If you look in your &lt;font face="Courier New"&gt;%WINDIR%\Microsoft.NET\Framework\v3.5.xxx\&lt;/font&gt; &lt;font color="#808080" size="1"&gt;(still
beta at time of writing)&lt;/font&gt; the main thing to note here is a new &lt;font face="Courier New"&gt;csc.exe&lt;/font&gt; and &lt;font face="Courier New"&gt;vbc.exe&lt;/font&gt;.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;So what do you get with .NET 3.5 &amp;amp; Visual Studio 2008 (codename "Orcas")?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/tq/archive/2005/09/15/467714.aspx"&gt;Managed AddIn Framework &lt;/a&gt;(System.AddIn
&amp;amp; System.AddIn.Contract) ...also the &lt;a href="http://blogs.msdn.com/clraddins/"&gt;CLR
Add-In team blog&lt;/a&gt;.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.danielmoth.com/Blog/2007/05/accountmanagement.html"&gt;An AD/ADAM
wrapper &lt;/a&gt;(System.DirectoryServices.AccountManagement) 
&lt;/li&gt;
&lt;li&gt;
A &lt;a href="http://msdn2.microsoft.com/en-us/library/aa394053.aspx"&gt;WMI 2.0 Managed
wrapper&lt;/a&gt; (System.Management.Instrumentation) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/p2p/archive/2007/03/12/writing-peer-to-peer-applications-using-net-part-1-pnrp.aspx"&gt;Peer-to-Peer
API's &lt;/a&gt;(System.Net.PeerToPeer &amp;amp; System.Net.PeerToPeer.Collaboration) 
&lt;/li&gt;
&lt;li&gt;
In ASP.NET there is &lt;a href="http://ajax.asp.net/"&gt;ASP.NET AJAX&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/wallym/archive/2007/05/23/asp-net-podcast-show-93-asp-net-listview-in-orcas-beta-1-video.aspx"&gt;asp:ListView&lt;/a&gt;,
and the &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/01/28/video-using-linq-with-asp-net-in-vs-orcas-part-1.aspx"&gt;LinqDataSource&lt;/a&gt;.
(System.Web.Extensions) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/mwinkle/archive/2007/02/28/wcf-and-wf-in-quot-orcas-quot.aspx"&gt;Improvements
to WCF and WF &lt;/a&gt;(System.ServiceModel.Web &amp;amp; System.WorkflowServices) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/adonet/archive/2007/04/20/ado-net-entity-framework-orcas-beta-1.aspx"&gt;ADO.NET
Entity Framework &lt;/a&gt;(System.Data.Entity) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/shawnfa/archive/2007/01/17/new-crypto-algorithms-in-orcas.aspx"&gt;New
Crypto algorithms&lt;/a&gt; and &lt;a href="http://msdn2.microsoft.com/en-us/library/aa375276.aspx"&gt;support
for Vista's Next-Gen Crypto, which replaces CryptoAPI&lt;/a&gt;. (System.Security)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color="#808080"&gt;Update&lt;/font&gt;&lt;/strong&gt;:&amp;nbsp; Please also &lt;a href="http://www.danielmoth.com/Blog/labels/Orcas.html"&gt;check
out Daniel Moth's whole bunch Orcas posts&lt;/a&gt;, and &lt;a href="http://www.danielmoth.com/Blog/2007/06/net-framework-35.html"&gt;his
run-down of the new bits&lt;/a&gt;.
&lt;/p&gt;
...and last but not least, the golden haired child, &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt;...&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.danielmoth.com/Blog/2007/05/systemxmllinq.html"&gt;LINQ to Xml &lt;/a&gt;(System.Xml.Linq)
and &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/09/01/Understanding-LINQ-to-SQL-Query-Translations.aspx"&gt;LINQ
to SQL &lt;/a&gt;(System.Data.Linq) ...also ScottGu's posts &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx"&gt;here&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx"&gt;here&lt;/a&gt; are
some of the best you'll find)&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
...and for everything that I have missed, or is not in the beta bits yet, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=17319EB4-299C-43B8-A360-A1C2BD6A421B&amp;amp;displaylang=en"&gt;grab
the Orcas overview whitepaper&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What is .NET 3.5 going to do to 3.0?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
It seems &lt;a href="http://www.danielmoth.com/Blog/2007/06/net-framework-35.html"&gt;it
has to do with Green Bits and Red Bits&lt;/a&gt; &lt;font size="1"&gt;(source: Daniel Moth)&lt;/font&gt;.&amp;nbsp;
In other words, .NET 3.5 will &lt;i&gt;also include&lt;/i&gt; SP1 for .NET 3.0 and SP1 for .NET
2.0.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,926727ff-1b0e-4130-960f-179ac570bb0d.aspx</comments>
      <category>C#</category>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
      <category>Visual Basic</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=970418da-7cd9-4a02-8741-377a05a8f997</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=970418da-7cd9-4a02-8741-377a05a8f997</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">When I started playing with LINQ, I needed
to get some clarity <strike><font color="#d3d3d3">on this in my mind, so in the spirit
of </font></strike><a href="http://en.wikipedia.org/wiki/Carolus_Linnaeus"><strike><font color="#d3d3d3">Linnaeus</font></strike></a><strike><font color="#d3d3d3">, </font></strike><a href="http://en.wikipedia.org/wiki/Dmitri_Mendeleev"><strike><font color="#d3d3d3">Mendeleev</font></strike></a><strike><font color="#d3d3d3"> and </font></strike><a href="http://en.wikipedia.org/wiki/Murray_Gell-Mann"><strike><font color="#d3d3d3">Gell-Mann</font></strike></a><strike><font color="#d3d3d3">,
I put together a graphic that showed the generations of the various bits, and after
talking with friends thought it was worth sharing:</font></strike><br /><br /><strong><font color="#808080">Update</font></strong>:  <a href="http://www.danielmoth.com/Blog/2007/06/visual-studio-2008-stack.html">Daniel
Moth has a better graphic for the same data on his blog first</a>.  Shame, not
an image map. :-)<br /><br /><a href="http://blogs.msdn.com/mohammadakif/">Mohammad Adil Akif</a> also <a href="http://blogs.msdn.com/mohammadakif/archive/2006/12/03/net-3-0-different-versions-of-the-net-framework.aspx">has
a version in his blog</a>.<br /><br /><font color="#d3d3d3"><strike>...This is the blog version - the original form was
a Post-It note.<br />
...And in the spirit of Web 0.9 <i>(which came before Web 2.0 :-)</i> the graphic
is an image map :-)<br /></strike></font><br />
I know there is much more coming, like the Dynamic Language Runtime, <a href="http://msdn2.microsoft.com/en-us/vstudio/aa718368.aspx">Domain-Specific
Language tools</a>, <a href="http://www.microsoft.com/silverlight/default01.aspx">Silverlight</a>,
and so on.   I've also chosen not to call out the <a href="http://msdn2.microsoft.com/en-us/teamsystem/default.aspx">versions
of Team System</a>, both in the interest of clarity.</body>
      <title>What is the .NET landscape to date and going into the next year - part 1</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx</link>
      <pubDate>Sun, 01 Jul 2007 13:51:05 GMT</pubDate>
      <description>When I started playing with LINQ, I needed to get some clarity &lt;strike&gt;&lt;font color="#d3d3d3"&gt;on
this in my mind, so in the spirit of &lt;/font&gt;&lt;/strike&gt;&lt;a href="http://en.wikipedia.org/wiki/Carolus_Linnaeus"&gt;&lt;strike&gt;&lt;font color="#d3d3d3"&gt;Linnaeus&lt;/font&gt;&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;&lt;font color="#d3d3d3"&gt;, &lt;/font&gt;&lt;/strike&gt;&lt;a href="http://en.wikipedia.org/wiki/Dmitri_Mendeleev"&gt;&lt;strike&gt;&lt;font color="#d3d3d3"&gt;Mendeleev&lt;/font&gt;&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;&lt;font color="#d3d3d3"&gt; and &lt;/font&gt;&lt;/strike&gt;&lt;a href="http://en.wikipedia.org/wiki/Murray_Gell-Mann"&gt;&lt;strike&gt;&lt;font color="#d3d3d3"&gt;Gell-Mann&lt;/font&gt;&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;&lt;font color="#d3d3d3"&gt;,
I put together a graphic that showed the generations of the various bits, and after
talking with friends thought it was worth sharing:&lt;/font&gt;&lt;/strike&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;&lt;font color="#808080"&gt;Update&lt;/font&gt;&lt;/strong&gt;:&amp;nbsp; &lt;a href="http://www.danielmoth.com/Blog/2007/06/visual-studio-2008-stack.html"&gt;Daniel
Moth has a better graphic for the same data on his blog first&lt;/a&gt;.&amp;nbsp; Shame, not
an image map. :-)&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.msdn.com/mohammadakif/"&gt;Mohammad Adil Akif&lt;/a&gt; also &lt;a href="http://blogs.msdn.com/mohammadakif/archive/2006/12/03/net-3-0-different-versions-of-the-net-framework.aspx"&gt;has
a version in his blog&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;font color="#d3d3d3"&gt;&lt;strike&gt;...This is the blog version - the original form was
a Post-It note.&lt;br&gt;
...And in the spirit of Web 0.9 &lt;i&gt;(which came before Web 2.0 :-)&lt;/i&gt; the graphic
is an image map :-)&lt;br&gt;
&lt;/strike&gt;&lt;/font&gt;
&lt;br&gt;
I know there is much more coming, like the Dynamic Language Runtime, &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa718368.aspx"&gt;Domain-Specific
Language tools&lt;/a&gt;, &lt;a href="http://www.microsoft.com/silverlight/default01.aspx"&gt;Silverlight&lt;/a&gt;,
and so on.&amp;nbsp;&amp;nbsp; I've also chosen not to call out the &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/default.aspx"&gt;versions
of Team System&lt;/a&gt;, both in the interest of clarity.</description>
      <comments>http://deepdark.net/CommentView,guid,970418da-7cd9-4a02-8741-377a05a8f997.aspx</comments>
      <category>C#</category>
      <category>Geeking Out!</category>
      <category>Microsoft.NET</category>
      <category>Visual Basic</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=9058c631-130d-4ffc-861a-663989e41b0e</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,9058c631-130d-4ffc-861a-663989e41b0e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,9058c631-130d-4ffc-861a-663989e41b0e.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9058c631-130d-4ffc-861a-663989e41b0e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font size="2">
          <p>
Today's post is about a nifty little trick that I have seen done with search text
boxes on sites over the years and I decided that it had to be in my toolbox too. 
</p>
          <p>
What we are going for is a search box that looks like this when the page loads:
</p>
        </font>
        <p>
        </p>
        <p>
          <img src="http://deepdark.net/content/binary/inactive_search.png" border="0" />
        </p>
        <p>
...and looks like this when the user clicks into it:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/active_search.png" border="0" />
        </p>
        <p>
This technique seems to mostly be applied to search boxes, and I can see the benefit
in that.
</p>
        <p>
          <u>The post that follows is the amalgum of many VS-A's</u>
        </p>
        <p>
To get this done, it is a bit of CSS to style up the inactive and active state for
the text box, and a tiny bit of Javascript to tie it together.  I'm using the
term active and inactive not in any technical sense, just to describe the two styles
that are applied to our text box in response to the user activity.
</p>
        <p>
(assuming the rest of the page is a drab <font face="Courier New" color="#000000">#f0f0f0</font> in
colour...)  These are the two style rules that we are using in the images above:
</p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font color="#a52a2a">.</font>
            <font color="#a52a2a">inactiveSearchBox</font>
            <br />
{<br />
    <font color="#ff0000">background-color</font>: <font color="#000080">#f0f0f0</font>;<br />
    <font color="#ff0000">border</font>: <font color="#000080">solid
1px #ffffff</font>;<br />
}<br /><br /><font color="#a52a2a">.activeSearchBox</font><br />
{<br />
    <font color="#ff0000">border</font>: <font color="#000080">groove
1px #d9d9d9</font>;<br />
    <font color="#ff0000">background-color</font>: <font color="#000080">#ffffff</font>;<br />
}</span>
        </p>
        <p>
          <strong>
            <font size="1">
            </font>
          </strong>The markup for the input box is then as follows:
</p>
        <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
          <font color="#0000ff" size="2">
            <p>
              <font face="Courier New">&lt;</font>
            </p>
          </font>
          <font face="Courier New">
            <font color="#a31515" size="2">input</font>
            <font color="#000000" size="2">
            </font>
            <font color="#ff0000" size="2">type</font>
            <font color="#0000ff" size="2">="text"</font>
            <font color="#000000" size="2">
            </font>
            <font color="#ff0000" size="2">class</font>
            <font color="#0000ff" size="2">="inactiveSearchBox"</font>
            <font color="#000000" size="2">
            </font>
            <font color="#ff0000" size="2">id</font>
            <font color="#0000ff" size="2">="SearchStrng"</font>
            <font color="#000000" size="2"> </font>
          </font>
          <font face="Courier New">
            <br />
            <font color="#ff0000" size="2">   value</font>
            <font color="#0000ff" size="2">="
Search Here"</font>
          </font>
          <font size="2">
            <br />
          </font>
          <font face="Courier New">
            <font color="#ff0000" size="2">   onFocus</font>
            <font color="#0000ff" size="2">="this.className='activeSearchBox';
if(this.value==' Search Here')this.value='';"</font>
          </font>
          <font face="Courier New">
            <font size="2"> <br /></font>
            <font color="#ff0000" size="2">   onBlur</font>
            <font color="#0000ff" size="2">="if(this.value=='')this.value='
Search Here';this.className='inactiveSearchBox';"</font>
            <font size="2">
            </font>
          </font>
          <font color="#0000ff" size="2">
            <font face="Courier New">/&gt; </font>
          </font>
        </span>
        <p>
As you can see it all happens in the <font face="Courier New" color="#000000">onFocus</font> and <font face="Courier New" color="#000000">onBlur</font> events
of the textbox.  When the text box gets the focus it sets the class to be our <font face="Courier New" color="#000000">activeSearchBox </font>style and
clears our standard text.  The <font face="Courier New" color="#000000">onBlur</font> event
restores the default value if the user did not enter anything and sets our style back
to the <font face="Courier New"><font color="#000000">inactiveSearchBox</font></font>style.
</p>
        <p>
          <strong>
            <font size="1">Glossary:</font>
          </strong>
        </p>
        <p>
          <font size="1">VS-A, <em>n</em>. View Source, followd by an "Ah!".  
<br />
See also: VS-****.</font>
        </p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening to:  Former co-workers :-)</font>
          </strong>
        </p>
      </body>
      <title>Adding a pinch of spice to a search box with CSS</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,9058c631-130d-4ffc-861a-663989e41b0e.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,9058c631-130d-4ffc-861a-663989e41b0e.aspx</link>
      <pubDate>Wed, 27 Jun 2007 13:32:32 GMT</pubDate>
      <description>&lt;font size=2&gt; 
&lt;p&gt;
Today's post is about a nifty little trick that I have seen done with search text
boxes on sites over the years and I decided that it had to be in my toolbox too. 
&lt;/p&gt;
&lt;p&gt;
What we are going for is a search box that looks like this when the page loads:
&lt;/font&gt;&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/inactive_search.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
...and looks like this when the user clicks into it:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/active_search.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This technique seems to mostly be applied to search boxes, and I can see the benefit
in that.
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;The post that follows is the amalgum of many VS-A's&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
To get this done, it is a bit of CSS to style up the inactive and active state for
the text box, and a tiny bit of Javascript to tie it together.&amp;nbsp; I'm using the
term active and inactive not in any technical sense, just to describe the two styles
that are applied to our text box in response to the user activity.
&lt;/p&gt;
&lt;p&gt;
(assuming the rest of the page is a drab &lt;font face="Courier New" color=#000000&gt;#f0f0f0&lt;/font&gt; in
colour...)&amp;nbsp; These are the two style rules that we are using in the images above:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font color=#a52a2a&gt;.&lt;/font&gt;&lt;font color=#a52a2a&gt;inactiveSearchBox&lt;/font&gt;
&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=#ff0000&gt;background-color&lt;/font&gt;: &lt;font color=#000080&gt;#f0f0f0&lt;/font&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=#ff0000&gt;border&lt;/font&gt;: &lt;font color=#000080&gt;solid
1px #ffffff&lt;/font&gt;;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;font color=#a52a2a&gt;.activeSearchBox&lt;/font&gt;
&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=#ff0000&gt;border&lt;/font&gt;: &lt;font color=#000080&gt;groove
1px #d9d9d9&lt;/font&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=#ff0000&gt;background-color&lt;/font&gt;: &lt;font color=#000080&gt;#ffffff&lt;/font&gt;;&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size=1&gt;&lt;/font&gt;&lt;/strong&gt;The markup for the input box is then as follows:
&lt;/p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;&lt;/font&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#a31515 size=2&gt;input&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="text"&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;class&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="inactiveSearchBox"&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;id&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="SearchStrng"&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;
&lt;br&gt;
&lt;font color=#ff0000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;value&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="
Search Here"&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#ff0000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;onFocus&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="this.className='activeSearchBox';
if(this.value==' Search Here')this.value='';"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&amp;nbsp;&lt;br&gt;
&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;onBlur&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="if(this.value=='')this.value='
Search Here';this.className='inactiveSearchBox';"&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font face="Courier New"&gt;/&amp;gt; &lt;/font&gt;
&lt;/span&gt;&gt;
&lt;p&gt;
&gt;As you can see it all happens in the &lt;font face="Courier New" color=#000000&gt;onFocus&lt;/font&gt; and &lt;font face="Courier New" color=#000000&gt;onBlur&lt;/font&gt; events
of the textbox.&amp;nbsp; When the text box gets the focus it sets the class to be our &lt;font face="Courier New" color=#000000&gt;activeSearchBox &lt;/font&gt;style&amp;nbsp;and
clears our standard text.&amp;nbsp; The &lt;font face="Courier New" color=#000000&gt;onBlur&lt;/font&gt; event
restores the default value if the user did not enter anything and sets our style back
to the &lt;font face="Courier New"&gt;&lt;font color=#000000&gt;inactiveSearchBox&lt;/font&gt; &lt;/font&gt;style.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size=1&gt;Glossary:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=1&gt;VS-A, &lt;em&gt;n&lt;/em&gt;. View Source, followd by an "Ah!".&amp;nbsp; 
&lt;br&gt;
See also: VS-****.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening to:&amp;nbsp; Former co-workers :-)&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,9058c631-130d-4ffc-861a-663989e41b0e.aspx</comments>
      <category>ASP.Net</category>
      <category>CSS</category>
      <category>Geeking Out!</category>
      <category>UX</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=1e69a6aa-d772-411d-86cc-0de7898c1377</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,1e69a6aa-d772-411d-86cc-0de7898c1377.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,1e69a6aa-d772-411d-86cc-0de7898c1377.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1e69a6aa-d772-411d-86cc-0de7898c1377</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You can do this today, like in 10 minutes...
</p>
        <p>
OpenSearch is a format for describing how your site is searched, and optionally for
adding Search elements to other formats like RSS.  
</p>
        <p>
Auto-discovery of <a href="http://www.opensearch.org/">OpenSearch</a> description
documents is done via a link in your HTML head like so:
</p>
        <p>
          <font face="Courier New">
            <font color="#0000ff">&lt;</font>
            <font color="#a52a2a">link</font>
            <font color="#ff0000">rel</font>
            <font color="#000000">="</font>
            <font color="#0000ff">search"</font>
            <font color="#ff0000">type</font>="<font color="#0000ff">application/opensearchdescription+xml</font>" <font color="#ff0000">title</font>="<font color="#0000ff">My
Site</font>" <font color="#ff0000">href</font>="<font color="#0000ff"><u>http://www.mysite.com/open-search.xml</u></font>" <font color="#0000ff">/&gt;</font></font>
        </p>
        <p>
The OpenSearch xml document is interpreted in the browser to add extra search providers
in the integrated search function as so:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/deepdark.net_OpenSearch.jpg" border="0" />
        </p>
        <p>
The contents of the file can be short or it can be long.  A bare bones example
may be as simple as this:
</p>
        <p>
          <font face="Courier New">
            <font color="#0000ff">&lt;</font>
            <font color="#0000ff">?</font>
            <font color="#0000ff">xml</font>
            <font color="#ff0000">version</font>=”<font color="#0000ff">1.0</font>” <font color="#ff0000">encoding</font>=”<font color="#0000ff">UTF-8</font>”<font color="#0000ff">?</font><font color="#0000ff">&gt;</font><br /><font color="#0000ff">&lt;</font><font color="#a52a2a">OpenSearchDescription</font><font color="#0000ff">&gt;<br /></font>   <font color="#0000ff">&lt;</font><font color="#a52a2a">ShortName</font><font color="#0000ff">&gt;</font>My
Site<font color="#0000ff">&lt;/</font><font color="#a52a2a">ShortName</font><font color="#0000ff">&gt;</font><br />
   <font color="#0000ff">&lt;</font><font color="#a52a2a">Description</font><font color="#0000ff">&gt;</font>Search
My Site<font color="#0000ff">&lt;/</font><font color="#a52a2a">Description</font><font color="#0000ff">&gt;</font><br />
   <font color="#0000ff">&lt;</font><font color="#a52a2a">Url</font><font color="#ff0000">type</font>="<font color="#0000ff">text/html</font>" <font color="#ff0000">template</font>="</font>
          <font face="Courier New">
            <font color="#0000ff">http://www.mysite.com/search.aspx?terms={searchTerms}</font>"/</font>
          <font face="Courier New">&gt;<br /><font color="#0000ff">&lt;/</font><font color="#a52a2a">OpenSearchDescription</font><font color="#0000ff">&gt;</font></font>
        </p>
        <p>
The <a href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">spec
gives another simple, and one much more detailed example document</a>.  The IE
blog also goes into some detail... but in true internet fashion, View Source is the
quickest path to an example :-)
</p>
        <p>
          <strong>Security?</strong>
        </p>
        <p>
The bad news is, as of current browsers at time of writing (IE 7.0.6000.16473, Firefox
2.0.0.4) it seems controls are quite lax around what search template you can include,
I had no problems setting the URL in the search template as being a completely different
site!   
</p>
        <p>
While it would be completely hilarious to posion someone's search bar as a prank with
the following three facts...
</p>
        <ul>
          <li>
IE stores the search settings here: <font face="Courier New" color="#000000">HKEY_CURRENT_USER\Software\Microsoft\Internet
Explorer\SearchScopes</font></li>
          <li>
FireFox stores them in the filesystem: <font face="Courier New" color="#000000">C:\Documents
and Settings\<em>&lt;winprofile&gt;</em>\Application Data\Mozilla\Firefox\Profiles\<em>&lt;mozprofile&gt;</em>\searchplugins</font></li>
          <li>
(<a href="http://search.booble.com/search?q={searchTerms}">sounds like google</a>,
not work safe)</li>
        </ul>
I would ultimately like some control here.  I can't see anything in Group Policy
for enforcing/allowing/denying new search providers.  I'd like to add one to
all PCs for my internal Sharepoint site for example. 
<p><strong>DasBlog</strong></p><p>
Tangentally, If you are looking for the file to edit to add a new link url to
a dasBlog site it is:
</p><p><font face="Courier New" color="#000000">\dasblogce\themes\*\homeTemplate.blogtemplate</font></p><p><strong><font color="#808080" size="1">Listening To:  Sonic Youth, Daydream Nation</font></strong></p></body>
      <title>Supporting OpenSearch in your site, seriously... 10 minutes</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,1e69a6aa-d772-411d-86cc-0de7898c1377.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,1e69a6aa-d772-411d-86cc-0de7898c1377.aspx</link>
      <pubDate>Fri, 22 Jun 2007 07:11:55 GMT</pubDate>
      <description>&lt;p&gt;
You can do this today, like in 10 minutes...
&lt;/p&gt;
&lt;p&gt;
OpenSearch is a format for describing how your site is searched, and optionally for
adding Search elements to other formats like RSS.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Auto-discovery of &lt;a href="http://www.opensearch.org/"&gt;OpenSearch&lt;/a&gt; description
documents is done via a link in your HTML head like so:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a52a2a&gt;link&lt;/font&gt; &lt;font color=#ff0000&gt;rel&lt;/font&gt;&lt;font color=#000000&gt;="&lt;/font&gt;&lt;font color=#0000ff&gt;search"&lt;/font&gt; &lt;font color=#ff0000&gt;type&lt;/font&gt;="&lt;font color=#0000ff&gt;application/opensearchdescription+xml&lt;/font&gt;"&amp;nbsp;&lt;font color=#ff0000&gt;title&lt;/font&gt;="&lt;font color=#0000ff&gt;My
Site&lt;/font&gt;" &lt;font color=#ff0000&gt;href&lt;/font&gt;="&lt;font color=#0000ff&gt;&lt;u&gt;http://www.mysite.com/open-search.xml&lt;/u&gt;&lt;/font&gt;" &lt;font color=#0000ff&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The OpenSearch xml document is interpreted in the browser to add extra search providers
in the integrated search function as so:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/deepdark.net_OpenSearch.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The contents of the file can be short or it can be long.&amp;nbsp; A bare bones example
may be as simple as this:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff&gt;?&lt;/font&gt;&lt;font color=#0000ff&gt;xml&lt;/font&gt; &lt;font color=#ff0000&gt;version&lt;/font&gt;=”&lt;font color=#0000ff&gt;1.0&lt;/font&gt;” &lt;font color=#ff0000&gt;encoding&lt;/font&gt;=”&lt;font color=#0000ff&gt;UTF-8&lt;/font&gt;”&lt;font color=#0000ff&gt;?&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a52a2a&gt;OpenSearchDescription&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a52a2a&gt;ShortName&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;My
Site&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a52a2a&gt;ShortName&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a52a2a&gt;Description&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;Search
My Site&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a52a2a&gt;Description&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a52a2a&gt;Url&lt;/font&gt; &lt;font color=#ff0000&gt;type&lt;/font&gt;="&lt;font color=#0000ff&gt;text/html&lt;/font&gt;" &lt;font color=#ff0000&gt;template&lt;/font&gt;="&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;http://www.mysite.com/search.aspx?terms={searchTerms}&lt;/font&gt;"/&lt;/font&gt;&lt;font face="Courier New"&gt;&amp;gt;&lt;br&gt;
&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a52a2a&gt;OpenSearchDescription&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document"&gt;spec
gives another simple, and one much more detailed example document&lt;/a&gt;.&amp;nbsp; The IE
blog also goes into some detail... but in true internet fashion, View Source is the
quickest path to an example :-)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Security?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The bad news is, as of current browsers at time of writing (IE 7.0.6000.16473, Firefox
2.0.0.4) it seems controls are quite lax around what search template you can include,
I had no problems setting the URL in the search template as being a completely different
site!&amp;nbsp; &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
While it would be completely hilarious to posion someone's search bar as a prank with
the following three facts...
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
IE stores the search settings here: &lt;font face="Courier New" color=#000000&gt;HKEY_CURRENT_USER\Software\Microsoft\Internet
Explorer\SearchScopes&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
FireFox stores them in the filesystem: &lt;font face="Courier New" color=#000000&gt;C:\Documents
and Settings\&lt;em&gt;&amp;lt;winprofile&amp;gt;&lt;/em&gt;\Application Data\Mozilla\Firefox\Profiles\&lt;em&gt;&amp;lt;mozprofile&amp;gt;&lt;/em&gt;\searchplugins&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
(&lt;a href="http://search.booble.com/search?q={searchTerms}"&gt;sounds like google&lt;/a&gt;,
not work safe)&lt;/li&gt;
&lt;/ul&gt;
I would ultimately like some control here.&amp;nbsp; I can't see anything in Group Policy
for enforcing/allowing/denying new search providers.&amp;nbsp; I'd like to add one to
all PCs for my internal Sharepoint site for example. 
&lt;p&gt;
&lt;strong&gt;DasBlog&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Tangentally, If you are looking for the file to edit to add&amp;nbsp;a new link url to
a dasBlog site it is:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;\dasblogce\themes\*\homeTemplate.blogtemplate&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080 size=1&gt;Listening To:&amp;nbsp; Sonic Youth, Daydream Nation&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,1e69a6aa-d772-411d-86cc-0de7898c1377.aspx</comments>
      <category>Active Directory</category>
      <category>Geeking Out!</category>
      <category>MLP</category>
      <category>Secutity</category>
      <category>UX</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=44715121-96d2-41d2-b869-656a2ac12cf5</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,44715121-96d2-41d2-b869-656a2ac12cf5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,44715121-96d2-41d2-b869-656a2ac12cf5.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=44715121-96d2-41d2-b869-656a2ac12cf5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
OK, let me lay it out for you a la <a href="http://au.yahoo.com/lost/clue/clues317.html">the
Lost secret clues</a>...
</p>
        <ul>
          <li>
Frank was <a href="http://csharpzealot.com/content/FrankArrigoInterview062007.aspx">interviewed
on CSharpZealot.com</a>. <a href="http://csharpzealot.com/content/jamesgreencommunityspotlightmarch07.aspx">So
was I</a>.</li>
          <li>
Frank is going to <a href="http://blogs.msdn.com/frankarr/archive/2007/06/20/play-a-video-game-symphony.aspx">Play! 
A Video Game Symphony</a> tonight, as am I.</li>
        </ul>
        <p>
Thinkaboudit people, when have you seen us both in the same room?
</p>
        <p>
The similaraties <font color="#808080" size="1">(*caugh* both of them)</font> are
really just too numerious to ignore!
</p>
      </body>
      <title>If (Arrigo.Frank == Green.James) { // implementation omitted for clarity  }</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,44715121-96d2-41d2-b869-656a2ac12cf5.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,44715121-96d2-41d2-b869-656a2ac12cf5.aspx</link>
      <pubDate>Fri, 22 Jun 2007 05:30:39 GMT</pubDate>
      <description>&lt;p&gt;
OK, let me lay it out for you a la &lt;a href="http://au.yahoo.com/lost/clue/clues317.html"&gt;the
Lost secret clues&lt;/a&gt;...
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Frank was &lt;a href="http://csharpzealot.com/content/FrankArrigoInterview062007.aspx"&gt;interviewed
on CSharpZealot.com&lt;/a&gt;. &lt;a href="http://csharpzealot.com/content/jamesgreencommunityspotlightmarch07.aspx"&gt;So
was I&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
Frank is going to &lt;a href="http://blogs.msdn.com/frankarr/archive/2007/06/20/play-a-video-game-symphony.aspx"&gt;Play!&amp;nbsp;
A Video Game Symphony&lt;/a&gt;&amp;nbsp;tonight, as am I.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Thinkaboudit people, when have you seen us both in the same room?
&lt;/p&gt;
&lt;p&gt;
The similaraties &lt;font color=#808080 size=1&gt;(*caugh* both of them)&lt;/font&gt; are really
just too numerious to ignore!
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,44715121-96d2-41d2-b869-656a2ac12cf5.aspx</comments>
      <category>Geeking Out!</category>
      <category>META</category>
      <category>MLP</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=9df3b224-a083-4f96-a95f-a5611044f54e</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,9df3b224-a083-4f96-a95f-a5611044f54e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,9df3b224-a083-4f96-a95f-a5611044f54e.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9df3b224-a083-4f96-a95f-a5611044f54e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Yes I have better things to do but no I could not help <strong>making more LolCats</strong> -
this time no Tech.Ed
</p>
        <p>
          <img src="http://deepdark.net/content/binary/p0wned.jpg" border="0" />
        </p>
        <p>
          <img src="http://deepdark.net/content/binary/worstwasabi.jpg" border="0" />
        </p>
        <p>
          <img src="http://deepdark.net/content/binary/chicks.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Linkage: <a href="http://icanhascheezburger.com/">ICanHasCheezburger</a> &amp; <a href="http://tehcats.com/">Teh
Cats</a></p>
        <p>
I am going to be talking the Lolcat speek for the rest of the day and that is final.
</p>
      </body>
      <title>Lolcats - You're killing my productivity</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,9df3b224-a083-4f96-a95f-a5611044f54e.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,9df3b224-a083-4f96-a95f-a5611044f54e.aspx</link>
      <pubDate>Wed, 13 Jun 2007 04:06:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Yes I have better things to do but no I could not help &lt;strong&gt;making more LolCats&lt;/strong&gt; -
this time no Tech.Ed
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/p0wned.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/worstwasabi.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/chicks.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Linkage: &lt;a href="http://icanhascheezburger.com/"&gt;ICanHasCheezburger&lt;/a&gt; &amp;amp; &lt;a href="http://tehcats.com/"&gt;Teh
Cats&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I am going to be talking the Lolcat speek for the rest of the day and that is final.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,9df3b224-a083-4f96-a95f-a5611044f54e.aspx</comments>
      <category>Geeking Out!</category>
      <category>MLP</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=5c193950-c743-4a94-9fcf-2381fe5f3e37</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5c193950-c743-4a94-9fcf-2381fe5f3e37</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is the second post on Group Policy for web developers.  <a href="http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx">Part
1 was about managing the local Intranet Zone for your AD network</a>.  This post
will be based on a similar scenario.  Specifically, when issuing certificates
from a local Certification Authority, like Microsoft Certificate Services that ships
in Windows Server 2003.
</p>
        <p>
Modern browsers give you a <a href="http://deepdark.net/PermaLink,guid,fe6a6123-d36d-48a5-a531-b9a80419afa3.aspx">more
pretty warning system than they did last year</a> when you view a site that do not
chain back to a Trusted Root CA.  This is still an important warning and we don't
want to condition people into just clicking yes every time they see it.
</p>
        <p>
The first thing you will need to do (and like the last post, a certain degree of domain
administrative Godness is required...) is <strong>get the CA's certificate from the
CA</strong>.  Using Microsoft Certificate Services, you want to choose the option
highlighted below:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/GetTrustedCACert.jpg" border="0" />
        </p>
        <p>
This will prompt you to save the certificate file.  Do this, then delete it when
you are done.  
</p>
        <p>
Next we need to <strong>install the certificate into our client machines</strong>. 
We will need a GPO.  You may use the one from the previous example or make a
new one. Again the place in your AD to create this will vary.  For smaller sites
adding at the the top level is fine, but hands off the default policy.
</p>
        <p>
Navigate to Security Settings -&gt; PK policies -&gt;Trusted Root CA's as in the screen
below:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/TrustedCA.jpg" border="0" />
        </p>
        <p>
Right-click on the Trusted Root CA's container and choose Import.  Here, browse
for the cert file saved in step one and you are done!
</p>
        <p>
Finally, here is <a href="http://technet2.microsoft.com/windowsserver/en/library/32aacfe8-83af-4676-a45c-75483545a9781033.mspx?mfr=true">some
linkage to much more detail about Certificates in AD</a>.
</p>
      </body>
      <title>Group Policy for web developers, part 2</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx</link>
      <pubDate>Wed, 13 Jun 2007 03:15:54 GMT</pubDate>
      <description>&lt;p&gt;
This is the second post on Group Policy for web developers.&amp;nbsp; &lt;a href="http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx"&gt;Part
1 was about managing the local Intranet Zone for your AD network&lt;/a&gt;.&amp;nbsp; This post
will be based on a similar scenario.&amp;nbsp; Specifically, when issuing certificates
from a local Certification Authority, like Microsoft Certificate Services that ships
in Windows Server 2003.
&lt;/p&gt;
&lt;p&gt;
Modern browsers give you a &lt;a href="http://deepdark.net/PermaLink,guid,fe6a6123-d36d-48a5-a531-b9a80419afa3.aspx"&gt;more
pretty warning system than they did last year&lt;/a&gt; when you view a site that do not
chain back to a Trusted Root CA.&amp;nbsp; This is still an important warning and we don't
want to condition people into just clicking yes every time they see it.
&lt;/p&gt;
&lt;p&gt;
The first thing you will need to do (and like the last post, a certain degree of domain
administrative Godness is required...) is &lt;strong&gt;get the CA's certificate from the
CA&lt;/strong&gt;.&amp;nbsp; Using Microsoft Certificate Services, you want to choose the option
highlighted below:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/GetTrustedCACert.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This will prompt you to save the certificate file.&amp;nbsp; Do this, then delete it when
you are done.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Next we need to &lt;strong&gt;install the certificate into our client machines&lt;/strong&gt;.&amp;nbsp;
We will need a GPO.&amp;nbsp; You may use the one from the previous example or make a
new one. Again the place in your AD to create this will vary.&amp;nbsp; For smaller sites
adding at the the top level is fine, but hands off the default policy.
&lt;/p&gt;
&lt;p&gt;
Navigate to Security Settings -&amp;gt; PK policies -&amp;gt;Trusted Root CA's as in the screen
below:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/TrustedCA.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Right-click on the Trusted Root CA's container and choose Import.&amp;nbsp; Here, browse
for the cert file saved in step one and you are done!
&lt;/p&gt;
&lt;p&gt;
Finally, here is &lt;a href="http://technet2.microsoft.com/windowsserver/en/library/32aacfe8-83af-4676-a45c-75483545a9781033.mspx?mfr=true"&gt;some
linkage to much more detail about&amp;nbsp;Certificates in AD&lt;/a&gt;.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,5c193950-c743-4a94-9fcf-2381fe5f3e37.aspx</comments>
      <category>Active Directory</category>
      <category>ASP.Net</category>
      <category>Geeking Out!</category>
      <category>Secutity</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=9d3501d3-cabf-4a5c-8bb8-93536fea42dd</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,9d3501d3-cabf-4a5c-8bb8-93536fea42dd.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,9d3501d3-cabf-4a5c-8bb8-93536fea42dd.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9d3501d3-cabf-4a5c-8bb8-93536fea42dd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
OK, not a big cats person, but the <a href="http://en.wikipedia.org/wiki/Lolcat">lolcats</a> meme
has made it to <a href="http://www.microsoft.com/australia/teched07/index.aspx">Tech.Ed</a>.
</p>
        <p>
          <a href="http://blogs.msdn.com/frankarr/archive/2007/06/12/tech-ed-lolcats-i-m-in-ur-event-subvertin-yr-hierarchy.aspx">Frank
Arrigo's post</a> seems to be the epicenter, <a href="http://msmvps.com/blogs/brianmadsen/archive/2007/06/12/tech-ed-lolcats-roaming-free.aspx">Brian
has had a go too</a>,  Plus <a href="http://blogs.msdn.com/frankarr/archive/2007/06/12/o-hai-i-has-teched-lolcats.aspx#comments">more
linkage here</a>.
</p>
        <p>
May I offer my contribution:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/TechEd07LolCat_deepdark.net.jpg" border="0" />
        </p>
        <p>
          <small>(And mad props to <a href="http://mfrost.typepad.com/">Frostdesign blog</a> for
the wholy unauthorized boosted image)</small>
        </p>
      </body>
      <title>Tech.Ed LOL Cats - </title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,9d3501d3-cabf-4a5c-8bb8-93536fea42dd.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,9d3501d3-cabf-4a5c-8bb8-93536fea42dd.aspx</link>
      <pubDate>Wed, 13 Jun 2007 01:55:15 GMT</pubDate>
      <description>&lt;p&gt;
OK, not a big cats person, but the &lt;a href="http://en.wikipedia.org/wiki/Lolcat"&gt;lolcats&lt;/a&gt; meme
has made it to &lt;a href="http://www.microsoft.com/australia/teched07/index.aspx"&gt;Tech.Ed&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/frankarr/archive/2007/06/12/tech-ed-lolcats-i-m-in-ur-event-subvertin-yr-hierarchy.aspx"&gt;Frank
Arrigo's post&lt;/a&gt;&amp;nbsp;seems to be the epicenter, &lt;a href="http://msmvps.com/blogs/brianmadsen/archive/2007/06/12/tech-ed-lolcats-roaming-free.aspx"&gt;Brian
has had a&amp;nbsp;go too&lt;/a&gt;, &amp;nbsp;Plus &lt;a href="http://blogs.msdn.com/frankarr/archive/2007/06/12/o-hai-i-has-teched-lolcats.aspx#comments"&gt;more
linkage here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
May I offer my contribution:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/TechEd07LolCat_deepdark.net.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;small&gt;(And mad props to &lt;a href="http://mfrost.typepad.com/"&gt;Frostdesign&amp;nbsp;blog&lt;/a&gt; for
the wholy unauthorized boosted image)&lt;/small&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,9d3501d3-cabf-4a5c-8bb8-93536fea42dd.aspx</comments>
      <category>Geeking Out!</category>
      <category>MLP</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=f8f748db-a47e-4715-9d99-093ac21f3c4c</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f8f748db-a47e-4715-9d99-093ac21f3c4c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Some sites that you may have on your internal network, such as Virtual Server console,
Sharepoint, ASP.NET sites of your own creation, and so on, can require your AD credentials
to log you on.  Typically the browser will prompt you for them <a href="http://support.microsoft.com/kb/815141">unless
you add the site to the Local Intranet zone</a>.  
</p>
        <p>
          <img src="http://deepdark.net/content/binary/LocalIntranet.jpg" border="0" />
        </p>
        <p>
This quickly becomes cumbersome as the number of users grows.  Everyone will
have to add the URL to their Local Intranet zone manually and that spells work.
</p>
        <p>
          <strong>Internet Explorer</strong>
        </p>
        <p>
All the IE Zones, including Local Intranet, can be administered by Group
Policy.  Where in your AD you create your GPO will depend on the scale
of your operation, for smaller sites a GPO at the domain level is not a bad
choice.  I'd caution against editing your default domain policy, consider creating
a new GPO just under it.
</p>
        <p>
Edit the GPO and browse to the <font face="Courier New"><strong>Site To Zone Assignment
List</strong></font>, inside the <strong><font face="Courier New">Internet Control
Panel</font></strong> \ <strong><font face="Courier New">Security Page</font></strong> settings:
</p>
        <p>
  <img src="http://deepdark.net/content/binary/LocalIntranetGPO.jpg" border="0" /></p>
        <p>
The UI will let you add IP addresses, FQDN's or http/https addresses, and which zone
they will belong to.
</p>
        <p>
One nice side effect of this to watch for is the users can now not change their zones
via the IE settings.
</p>
        <p>
          <strong>FireFox</strong>
        </p>
        <p>
For FireFox, you are going to have to <a href="http://www.mozilla.org/catalog/end-user/customizing/briefprefs.html">create/maintain
an all.js in the %installdir%\defaults\pref\ </a>directory.
</p>
        <p>
This is just a plain text file that can contain settings in the FireFox Javascript
format.  <a href="http://www.mozilla.org/projects/netlib/integrated-auth.html">For
Integrated Authentication you will need to add the following line</a>:
</p>
        <p>
          <font face="Courier New">
            <strong>pref("network.negotiate-auth.trusted-uris", "comma
seperated site list");</strong>
          </font>
        </p>
        <p>
          <font color="#808080">
            <strong>Listening To: Kruder and Dorfmeister, the K&amp;D Sessions,
part 1</strong>
          </font>
        </p>
      </body>
      <title>Group Policy for web developers, part 1</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx</link>
      <pubDate>Fri, 08 Jun 2007 01:19:27 GMT</pubDate>
      <description>&lt;p&gt;
Some sites that you may have on your internal network, such as Virtual Server console,
Sharepoint, ASP.NET sites of your own creation, and so on, can require your AD credentials
to log you on.&amp;nbsp; Typically the browser will prompt you for them &lt;a href="http://support.microsoft.com/kb/815141"&gt;unless
you add the site to the Local Intranet zone&lt;/a&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/LocalIntranet.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This quickly becomes cumbersome as the number of users grows.&amp;nbsp; Everyone will
have to add the URL to their Local Intranet zone manually and that spells work.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Internet Explorer&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
All the IE Zones, including Local Intranet,&amp;nbsp;can be&amp;nbsp;administered by Group
Policy.&amp;nbsp;&amp;nbsp;Where in your AD you create your GPO will depend on&amp;nbsp;the scale
of your operation, for smaller sites a GPO at the domain level is not&amp;nbsp;a&amp;nbsp;bad
choice.&amp;nbsp; I'd caution against editing your default domain policy, consider creating
a new GPO&amp;nbsp;just under it.
&lt;/p&gt;
&lt;p&gt;
Edit the GPO and browse to the &lt;font face="Courier New"&gt;&lt;strong&gt;Site To Zone Assignment
List&lt;/strong&gt;&lt;/font&gt;, inside the &lt;strong&gt;&lt;font face="Courier New"&gt;Internet Control
Panel&lt;/font&gt;&lt;/strong&gt; \ &lt;strong&gt;&lt;font face="Courier New"&gt;Security&amp;nbsp;Page&lt;/font&gt;&lt;/strong&gt; settings:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&lt;img src="http://deepdark.net/content/binary/LocalIntranetGPO.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The UI will let you add IP addresses, FQDN's or http/https addresses, and which zone
they will belong to.
&lt;/p&gt;
&lt;p&gt;
One nice side effect of this to watch for is the users can now not change their zones
via the IE settings.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;FireFox&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For FireFox, you are going to have to &lt;a href="http://www.mozilla.org/catalog/end-user/customizing/briefprefs.html"&gt;create/maintain
an all.js in the %installdir%\defaults\pref\ &lt;/a&gt;directory.
&lt;/p&gt;
&lt;p&gt;
This is just a plain text file that can contain settings in the FireFox Javascript
format.&amp;nbsp; &lt;a href="http://www.mozilla.org/projects/netlib/integrated-auth.html"&gt;For
Integrated Authentication you will need to add the following line&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;strong&gt;pref("network.negotiate-auth.trusted-uris", "comma
seperated site list");&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080&gt;&lt;strong&gt;Listening To: Kruder and Dorfmeister, the K&amp;amp;D Sessions,
part 1&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,f8f748db-a47e-4715-9d99-093ac21f3c4c.aspx</comments>
      <category>ASP.Net</category>
      <category>Geeking Out!</category>
      <category>Secutity</category>
      <category>Active Directory</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=d01253b8-1291-4936-801c-2ec77effd9a5</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,d01253b8-1291-4936-801c-2ec77effd9a5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,d01253b8-1291-4936-801c-2ec77effd9a5.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d01253b8-1291-4936-801c-2ec77effd9a5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
c'mon, it's still the 5th in someone's timezone ;)
</p>
        <p>
With a tip of the hat to the fine people at <a href="http://www.makezine.com/">Make</a>,
I present you with...
</p>
        <p>
          <a href="http://www.makezine.com/blog/archive/2007/06/solar_prius_kit.html?CMP=OTC-0D6B48984890">A
solar powered Prius</a>.  Now that is environmental.  <a href="http://www.solarelectricalvehicles.com/articles/prius-white-paper.shtml">White
paper here</a>.  Shame it still looks like a Prius.
</p>
      </body>
      <title>World Environment Day... for geeks</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,d01253b8-1291-4936-801c-2ec77effd9a5.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,d01253b8-1291-4936-801c-2ec77effd9a5.aspx</link>
      <pubDate>Wed, 06 Jun 2007 01:08:17 GMT</pubDate>
      <description>&lt;p&gt;
c'mon, it's still the 5th in someone's timezone ;)
&lt;/p&gt;
&lt;p&gt;
With a tip of the hat to the fine people at &lt;a href="http://www.makezine.com/"&gt;Make&lt;/a&gt;,
I present you with...
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.makezine.com/blog/archive/2007/06/solar_prius_kit.html?CMP=OTC-0D6B48984890"&gt;A
solar powered Prius&lt;/a&gt;.&amp;nbsp; Now that is environmental.&amp;nbsp; &lt;a href="http://www.solarelectricalvehicles.com/articles/prius-white-paper.shtml"&gt;White
paper here&lt;/a&gt;.&amp;nbsp; Shame it still looks like a Prius.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,d01253b8-1291-4936-801c-2ec77effd9a5.aspx</comments>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=63feef59-944c-4878-b092-2a36d7fa14f4</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,63feef59-944c-4878-b092-2a36d7fa14f4.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,63feef59-944c-4878-b092-2a36d7fa14f4.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=63feef59-944c-4878-b092-2a36d7fa14f4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There are not too many things I hate in the world.  Popcorn is one (no joke)
another is the feeling you get when you discover something cool in the .NET Framework
or Visual Studio and think: <strong>Damn!  Why didn't I find this sooner</strong>.
I call it the <em>Last one to the party </em>Feeling.
</p>
        <p>
Today, I'm talking about the <font color="#2b91af" size="2">SuppressMessageAttribute</font> class
(<a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.codeanalysis.suppressmessageattribute.aspx">MSDN
Link</a>).
</p>
        <p>
This attribute can decorate a class where you would like explicitly exclude a module
matching a rule in FxCop due to a false positive.  Really it is no different
to excluding the message in the FxCop project, but I think this is better because
of how visible it is.  
</p>
        <p>
When you exclude a message in the FxCop project it gets sucked into a black hole and
you never see them again.  What if they are just a short term exclusion, like
the old fav <b><font color="#000080" size="2">Microsoft.Design.AvoidNamespacesWithFewTypes 
</font></b>- which may apply at the start of a project but not once it is off the
ground.  Who is going to go and un-Exclude it from the FxCop project?
</p>
        <p>
Also, this attribute takes named parameters, like Justification.  Again, FxCop
lets you put a note in when excluding in the FxCop project but it gets lost to all
but the most determined eyes.  Having the reason for the exclusion right there
in the code means it has a better chance of getting on-going attention as it may not
always be as valid as it is today through circumstance or refactoring.
</p>
        <p>
This attribute requires you to define a symbol - CODE_ANALYSIS.  In NAnt you
can add <font color="#ff0000" size="2">define</font><font color="#0000ff" size="2">=</font><font color="#000000" size="2">"</font><font color="#0000ff" size="2">CODE_ANALYSIS</font><font size="2"><font color="#000000">"</font> on
your CSC or VBC Task and/or define the symbol in your Project properties, depending
on how you build:</font></p>
        <p>
          <font size="2">
            <img src="http://deepdark.net/content/binary/DefineCodeAnalysis.jpg" border="0" />
          </font>
        </p>
      </body>
      <title>FxCop and the SuppressMessageAttribute class</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,63feef59-944c-4878-b092-2a36d7fa14f4.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,63feef59-944c-4878-b092-2a36d7fa14f4.aspx</link>
      <pubDate>Thu, 31 May 2007 08:04:38 GMT</pubDate>
      <description>&lt;p&gt;
There are not too many things I hate in the world.&amp;nbsp; Popcorn is one (no joke)
another is the feeling you get when you discover something cool in the .NET Framework
or Visual Studio and think: &lt;strong&gt;Damn!&amp;nbsp; Why didn't I find this sooner&lt;/strong&gt;.
I call it the &lt;em&gt;Last one to the party &lt;/em&gt;Feeling.
&lt;/p&gt;
&lt;p&gt;
Today, I'm talking about the &lt;font color=#2b91af size=2&gt;SuppressMessageAttribute&lt;/font&gt; class
(&lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.codeanalysis.suppressmessageattribute.aspx"&gt;MSDN
Link&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
This attribute can decorate a class where you would like explicitly exclude a module
matching a rule in FxCop due to a false positive.&amp;nbsp; Really it is no different
to excluding the message in the FxCop project, but I think this is better because
of how visible it is.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
When you exclude a message in the FxCop project it gets sucked into a black hole and
you never see them again.&amp;nbsp; What if they are just a short term exclusion, like
the old fav &lt;b&gt;&lt;font color=#000080 size=2&gt;Microsoft.Design.AvoidNamespacesWithFewTypes 
&lt;/b&gt;&gt;- which may apply at the start of a project but not once it is off the ground.&amp;nbsp;
Who is going to go and un-Exclude it from the FxCop project?
&lt;/p&gt;
&lt;p&gt;
Also, this attribute takes named parameters, like Justification.&amp;nbsp; Again, FxCop
lets you put a note in when excluding in the FxCop project but it gets lost to all
but the most determined eyes.&amp;nbsp; Having the reason for the exclusion right there
in the code means it has a better chance of getting on-going attention as it may not
always be as valid as it is today through&amp;nbsp;circumstance or refactoring.
&lt;/p&gt;
&lt;p&gt;
This attribute requires you to define a symbol - CODE_ANALYSIS.&amp;nbsp; In NAnt you
can add &lt;font color=#ff0000 size=2&gt;define&lt;/font&gt; &lt;font color=#0000ff size=2&gt;=&lt;/font&gt; &lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;CODE_ANALYSIS&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;"&lt;/font&gt; on
your CSC or VBC Task and/or define the symbol in your Project properties, depending
on how you build:&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;&lt;img src="http://deepdark.net/content/binary/DefineCodeAnalysis.jpg" border=0&gt;&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,63feef59-944c-4878-b092-2a36d7fa14f4.aspx</comments>
      <category>Continuous-Integration</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=b77aac01-fdec-4e60-984e-192722f69b41</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,b77aac01-fdec-4e60-984e-192722f69b41.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,b77aac01-fdec-4e60-984e-192722f69b41.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b77aac01-fdec-4e60-984e-192722f69b41</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've just got a couple of lessons from the last week to share around developing Office
2003 (and <span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-AU; mso-fareast-language: EN-AU; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">specifically </span>Visio
2003) Add-Ins
</p>
        <p>
I'm also trying to saturate this post with links because I have come up with a good
size folder in my bookmarks for what started out to be a simple task.
</p>
        <ul>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3c9a983a-ac14-4125-8ba0-d36d67e0f4ad&amp;DisplayLang=en">Grab
the PIA's</a>.  <a href="http://msdn2.microsoft.com/en-us/library/aa169585(office.11).aspx">Anyone
who wants to run the Add-In will need them</a>.  Alternatively they can be installed
from the Office Add/Remove/Repair under the guise of <strong>.NET <span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-AU; mso-fareast-language: EN-AU; mso-bidi-language: AR-SA">Programmability </span>Support</strong>,
but in reality the user may not have the media or security access to do this. 
Do <strong>NOT</strong> however <a href="http://blogs.msdn.com/artleo/archive/2005/04/19/409715.aspx">ship
the PIA's <em>in</em> your bits</a>.  Ship the PIA's <em>with</em> your bits: 
This means 2x MSI's. 
</li>
          <li>
Using <a href="http://blogs.msdn.com/artleo/archive/2005/09/19/471497.aspx">NAant
to automate the build with csc.exe &amp; vbc.exe is suboptimal</a>.  I'm keeping
my project to one small assembly that depends on the PIAs, and also depends on another
assembly that does the heavy lifting but has no ref to the PIA's. 
</li>
          <li>
Strong Name everything.  Well, strong name everything anyway, but when trying
to pass of managed code as COM it is essential. 
</li>
          <li>
You cannot load a .NET DLL, even one with the <font face="Courier New">ComVisibleAttribute</font> on
the Assembly or Classes, via the Office UI.  You just can't.  <a href="http://support.microsoft.com/kb/316723">KB316723
gives an explanation</a>.  This is because Office will try and register it the
old<font face="Courier New"> regsvr32</font> way, which of course won't work. 
To get a .NET DLL into the Macros -&gt; Add-Ins list, <strong>you must write
the registry entry</strong> under: <font face="Courier New" color="#000000">HKEY_CURRENT_USER\Software\Microsoft\<em>&lt;office
program name&gt;</em>\Addins\</font></li>
          <li>
This brings me to my next point.  <a href="http://support.microsoft.com/kb/316723">KB316723</a> hints
at it, but your setup must write a HKCU key not a HKLM key.  <strong>The
Shared Add-In Wizard</strong> in Studio is ambiguous when it shows you this choice:</li>
        </ul>
        <p>
          <img src="http://deepdark.net/content/binary/20070529_4of5.jpg" border="0" />
        </p>
        <ul>
          <li>
I know this may be contentious, but consider using VB.NET over C#.  This depends
of course, but some parts of the Office object model make heavy use of Optional Parameters
which <a href="http://msdn2.microsoft.com/en-us/library/aa192488(office.11).aspx">C#
does not support</a>.  It has been <a href="http://msmvps.com/blogs/bill/archive/2006/03/28/88259.aspx">noted
elsewhere what Type.Missing can do for readability</a>.  Having said that,
it does vary greatly depending on where in the Office Object Model you are. 
</li>
          <li>
Spend some time with the Setup project that the Shared Add-In Wizard makes and test
it.  Once you like it, reverse engineer it to a WiX script and feed that to your
automated build.  For the record, you do that with: 
</li>
        </ul>
        <p>
          <font face="Courier New" color="#000000">Dark.exe –x path Debug/msi My.wxs 
<br />
Candle My.wxs 
<br />
Light My.Wixobj </font>
        </p>
        <ul>
          <li>
To extra points when dealing with WiX-ified MSI's 
<ol><li>
It's useful to note that the extracted (<font face="Courier New">-x</font>) resources take
many forms. <font face="Courier New"> DefBannerBitmap.ibd</font> for example
is just a bitmap.  I think it is easier to rename it to .bmp &amp; tweak it in
Photoshop than to add a new banner in Visual Studio. 
</li><li>
The Add-in reg setting mentioned in point #4 above references an assembly version. 
Visual Studio tweeks this for you but your WiX script will be frozen at the time your <font face="Courier New">Dark.exe'd</font> it. 
So don't auto-increment your assembly version numbers, or tweak you WiX script. 
The choice is yours but your MSI must write the version of the Add-In DLL to the target
machine's registry.</li></ol></li>
        </ul>
        <p>
          <font color="#808080">
            <strong>Listening To: Leftfield, Leftism</strong>
          </font>
        </p>
      </body>
      <title>Office Add-Ins - gotcha's from the field </title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,b77aac01-fdec-4e60-984e-192722f69b41.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,b77aac01-fdec-4e60-984e-192722f69b41.aspx</link>
      <pubDate>Tue, 29 May 2007 02:53:56 GMT</pubDate>
      <description>&lt;p&gt;
I've just got a couple of lessons from the last week to share around developing Office
2003 (and &lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-AU; mso-fareast-language: EN-AU; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'"&gt;specifically &lt;/span&gt;Visio
2003) Add-Ins
&lt;/p&gt;
&lt;p&gt;
I'm also trying to saturate this post with links because I have come up with a good
size folder in my bookmarks for what started out to be a simple task.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3c9a983a-ac14-4125-8ba0-d36d67e0f4ad&amp;amp;DisplayLang=en"&gt;Grab
the PIA's&lt;/a&gt;.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/aa169585(office.11).aspx"&gt;Anyone
who wants to run the Add-In will need them&lt;/a&gt;.&amp;nbsp; Alternatively they can be installed
from the Office Add/Remove/Repair under the guise of &lt;strong&gt;.NET &lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-AU; mso-fareast-language: EN-AU; mso-bidi-language: AR-SA"&gt;Programmability &lt;/span&gt;Support&lt;/strong&gt;,
but in reality the user may not have the media or security access to do this.&amp;nbsp;
Do &lt;strong&gt;NOT&lt;/strong&gt; however &lt;a href="http://blogs.msdn.com/artleo/archive/2005/04/19/409715.aspx"&gt;ship
the PIA's &lt;em&gt;in&lt;/em&gt; your bits&lt;/a&gt;.&amp;nbsp; Ship the PIA's &lt;em&gt;with&lt;/em&gt; your bits:&amp;nbsp;
This means 2x MSI's. 
&lt;li&gt;
Using &lt;a href="http://blogs.msdn.com/artleo/archive/2005/09/19/471497.aspx"&gt;NAant
to automate the build with csc.exe &amp;amp; vbc.exe is suboptimal&lt;/a&gt;.&amp;nbsp; I'm keeping
my project to one small assembly that depends on the PIAs, and also depends on another
assembly that does the heavy lifting but has no ref to the PIA's. 
&lt;li&gt;
Strong Name everything.&amp;nbsp; Well, strong name everything anyway, but when trying
to pass of managed code as COM it is essential. 
&lt;li&gt;
You cannot load a .NET DLL, even one with the &lt;font face="Courier New"&gt;ComVisibleAttribute&lt;/font&gt; on
the Assembly or Classes, via the Office UI.&amp;nbsp; You just can't.&amp;nbsp; &lt;a href="http://support.microsoft.com/kb/316723"&gt;KB316723
gives an explanation&lt;/a&gt;.&amp;nbsp; This is because Office will try and register it the
old&lt;font face="Courier New"&gt; regsvr32&lt;/font&gt; way, which of course won't work.&amp;nbsp;
To get a .NET DLL into the Macros -&amp;gt; Add-Ins list,&amp;nbsp;&lt;strong&gt;you must write
the registry entry&lt;/strong&gt; under: &lt;font face="Courier New" color=#000000&gt;HKEY_CURRENT_USER\Software\Microsoft\&lt;em&gt;&amp;lt;office
program name&amp;gt;&lt;/em&gt;\Addins\&lt;/font&gt; 
&lt;li&gt;
This brings me to my next point.&amp;nbsp; &lt;a href="http://support.microsoft.com/kb/316723"&gt;KB316723&lt;/a&gt; hints
at it, but&amp;nbsp;your setup must write a HKCU key not a HKLM key.&amp;nbsp; &lt;strong&gt;The
Shared Add-In Wizard&lt;/strong&gt; in Studio is ambiguous when it shows you this choice:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/20070529_4of5.jpg" border=0&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
I know this may be contentious, but consider using VB.NET over C#.&amp;nbsp; This depends
of course, but some parts of the Office object model make heavy use of Optional Parameters
which &lt;a href="http://msdn2.microsoft.com/en-us/library/aa192488(office.11).aspx"&gt;C#
does not support&lt;/a&gt;.&amp;nbsp;&amp;nbsp;It has been &lt;a href="http://msmvps.com/blogs/bill/archive/2006/03/28/88259.aspx"&gt;noted
elsewhere what Type.Missing&amp;nbsp;can do for readability&lt;/a&gt;.&amp;nbsp; Having said that,
it does vary greatly depending on where in the Office Object Model you are. 
&lt;li&gt;
Spend some time with the Setup project that the Shared Add-In Wizard makes and test
it.&amp;nbsp; Once you like it, reverse engineer it to a WiX script and feed that to your
automated build.&amp;nbsp; For the record, you do that with: 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;Dark.exe –x path Debug/msi My.wxs 
&lt;br&gt;
Candle My.wxs 
&lt;br&gt;
Light My.Wixobj &lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
To extra points when dealing with WiX-ified MSI's 
&lt;ol&gt;
&lt;li&gt;
It's useful to note that the extracted (&lt;font face="Courier New"&gt;-x&lt;/font&gt;) resources&amp;nbsp;take
many forms.&amp;nbsp;&lt;font face="Courier New"&gt; DefBannerBitmap.ibd&lt;/font&gt; for example
is just a bitmap.&amp;nbsp; I think it is easier to rename it to .bmp &amp;amp; tweak it in
Photoshop than to add a new banner in Visual Studio. 
&lt;li&gt;
The Add-in reg setting mentioned in point #4 above references an assembly version.&amp;nbsp;
Visual Studio tweeks this for you but your WiX script will be frozen at the time your &lt;font face="Courier New"&gt;Dark.exe'd&lt;/font&gt; it.&amp;nbsp;
So don't auto-increment your assembly version numbers, or tweak you WiX script.&amp;nbsp;
The choice is yours but your MSI must write the version of the Add-In DLL to the target
machine's registry.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#808080&gt;&lt;strong&gt;Listening To: Leftfield, Leftism&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,b77aac01-fdec-4e60-984e-192722f69b41.aspx</comments>
      <category>C#</category>
      <category>Continuous-Integration</category>
      <category>Geeking Out!</category>
      <category>WiX</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=89ddc46b-28c5-49ec-8aca-33311e2a0ba9</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,89ddc46b-28c5-49ec-8aca-33311e2a0ba9.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,89ddc46b-28c5-49ec-8aca-33311e2a0ba9.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=89ddc46b-28c5-49ec-8aca-33311e2a0ba9</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I think it is fair to say <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.NET</a> has
become synonymous with Continuous Integration in the .NET space.  In <a href="http://www.dotnetrocks.com/default.aspx?showNum=238">the
recent DNR on CI* with Eric Sink and Martin Woodward</a> it was the defacto choice
for the discussion and with good reason.  CCNet is a great tool.
</p>
        <p>
I just wanted to give a quick shout-out to Draco.NET which is also a CI server for
.NET and while not having the broad featureset of CCNet I recommend it for smaller
shops getting their first Continuous/Automated build together.  <strong>My two
reasons are:</strong></p>
        <ul>
          <li>
Supports Visual Source Safe, which like it or not is the <em><a href="http://en.wikipedia.org/wiki/Gateway_drug">Gateway
Drug</a></em> for source code control.  <em><font color="#808080">(To hear what
I think of that go grab DNR #221 about 5min16sec in ;)</font></em>  It also supports
PVCS, Subversion and Vault.</li>
          <li>
It is so much easier to configure.  You have no options for reporting or postbuild
steps, or overriding the build ID or RSS add-ons for.  <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=ccnetconfig">CCNetConfig</a> is
essential for configuring CruiseControl.NET.  Draco.NET offers a <a href="http://blogs.msdn.com/brada/archive/2003/10/02/50420.aspx">pit
of success</a> for the folks new to CI.</li>
        </ul>
        <p>
The most compelling reason for CCNet over Draco.NET is <strong>Everyone else is using
CCNet </strong>:-)
</p>
        <p>
On the topic of DNR show #238 - Eric talks about <a href="http://www.sourcegear.com/vault/">Vault</a>,
but doesn't mention that <a href="http://www.sourcegear.com/vault/pricing.html">you
don't need to purchase a license when used for a single developer</a>.  It is
licensed by named accounts, so go get it and give it a go all you VSS folks!
</p>
        <p>
*the best bit of the show is 11min45sec in... ;-)
</p>
        <p>
          <strong>
            <font color="#808080">Listening To: Ani Difranco - Revelling and Reckoning</font>
          </strong>
        </p>
      </body>
      <title>CI:  The Happy Meal and the Buffet</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,89ddc46b-28c5-49ec-8aca-33311e2a0ba9.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,89ddc46b-28c5-49ec-8aca-33311e2a0ba9.aspx</link>
      <pubDate>Mon, 21 May 2007 10:06:12 GMT</pubDate>
      <description>&lt;p&gt;
I think it is fair to say &lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET"&gt;CruiseControl.NET&lt;/a&gt; has
become synonymous with Continuous Integration in the .NET space.&amp;nbsp; In &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=238"&gt;the
recent DNR on CI* with Eric Sink and Martin Woodward&lt;/a&gt; it was the defacto choice
for the discussion and with good reason.&amp;nbsp; CCNet is a great tool.
&lt;/p&gt;
&lt;p&gt;
I just wanted to give a quick shout-out to Draco.NET which is also a CI server for
.NET and while not having the broad featureset of CCNet I recommend it for smaller
shops getting their first Continuous/Automated build together.&amp;nbsp; &lt;strong&gt;My two
reasons are:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Supports Visual Source Safe, which like it or not is the &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Gateway_drug"&gt;Gateway
Drug&lt;/a&gt;&lt;/em&gt; for source code control.&amp;nbsp; &lt;em&gt;&lt;font color=#808080&gt;(To hear what
I think of that go grab DNR #221 about 5min16sec in ;)&lt;/font&gt;&lt;/em&gt;&amp;nbsp; It also supports
PVCS, Subversion and Vault.&lt;/li&gt;
&lt;li&gt;
It is so much easier to configure.&amp;nbsp; You have no options for reporting or postbuild
steps, or overriding the build ID or RSS add-ons for. &amp;nbsp;&lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=ccnetconfig"&gt;CCNetConfig&lt;/a&gt; is
essential for configuring CruiseControl.NET.&amp;nbsp; Draco.NET offers a &lt;a href="http://blogs.msdn.com/brada/archive/2003/10/02/50420.aspx"&gt;pit
of success&lt;/a&gt; for the folks new to CI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The most compelling reason for CCNet over Draco.NET is &lt;strong&gt;Everyone else is using
CCNet &lt;/strong&gt;:-)
&lt;/p&gt;
&lt;p&gt;
On the topic of DNR show #238 - Eric talks about &lt;a href="http://www.sourcegear.com/vault/"&gt;Vault&lt;/a&gt;,
but doesn't mention that &lt;a href="http://www.sourcegear.com/vault/pricing.html"&gt;you
don't need to purchase a license when used for a single developer&lt;/a&gt;.&amp;nbsp; It is
licensed by named accounts, so go get it and give it a go all you VSS folks!
&lt;/p&gt;
&lt;p&gt;
*the best bit of the show is 11min45sec in... ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#808080&gt;Listening To: Ani Difranco - Revelling and Reckoning&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,89ddc46b-28c5-49ec-8aca-33311e2a0ba9.aspx</comments>
      <category>Continuous-Integration</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=55ab833e-9f7e-41d3-822b-d9280ef057ac</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,55ab833e-9f7e-41d3-822b-d9280ef057ac.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,55ab833e-9f7e-41d3-822b-d9280ef057ac.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=55ab833e-9f7e-41d3-822b-d9280ef057ac</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was looking today at options for finishing a build with something other than an
MSI or folder full of files:  <strong>An ISO file</strong>.
</p>
        <p>
I am a fan of <a href="http://www.daemon-tools.cc/dtcc/download.php">DaemonTools</a> and
associated add-ons.  Even if you're not planning to burn to disc, an ISO file
can be a useful way of getting a bunch of files around the place.
</p>
        <p>
First step was to <a href="http://smithii.com/cdrtools">grab a Windows binary of mkisofs
from one of the various sources of cdrtools on the web</a>.  <strong>NB</strong>: 
It comes linked with <a href="http://cygwin.com/faq.html">Cygwin</a> binaries.
</p>
        <p>
This is a util that has its roots in the Linux/Unix world, so be prepared to scratch
your head a bit if you are not familiar with the world of Linux/Unix command line
tools.  Also if you are, don't be fooled by <font face="Courier New" color="#000000">mkisofs</font> following
the naming convention of the other <font face="Courier New" color="#000000">mk*fs</font> tools. 
It is really quite different.
</p>
        <p>
In the *nix world, the online help is by the man ("manual") page system.  Basically,
at your prompt you type <font face="Courier New" color="#000000">man mkisofs </font>for
help with <font face="Courier New" color="#000000">mkisofs</font>.   <a href="http://www.google.com/search?q=man+mkisofs">This
works in Google too</a>!  The man page will be a useful reference, as will the
less informative usage info you can get from <font face="Courier New" color="#000000">mkisofs.exe
-help</font></p>
        <p>
Having said all that, the following options are a really good place to start: 
</p>
        <table border="1">
          <tbody>
            <tr>
              <td>
                <font size="2">
                  <strong>
                    <em>Option</em>
                  </strong>
                </font>
              </td>
              <td>
                <font size="2">
                  <strong>
                    <em>Note</em>
                  </strong>
                </font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">-J</font>
              </td>
              <td>
                <font size="2">Enable <a href="http://en.wikipedia.org/wiki/Joliet_%28file_system%29">Joilet</a> (you
want this)</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">-R</font>
              </td>
              <td>
                <font size="2">Enable <a href="http://en.wikipedia.org/wiki/Rock_ridge">Rock Ridge</a> (you
want this)</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">-V <em>diskname</em></font>
              </td>
              <td>
                <font size="2">Set a volume label</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">-o <em>filename.iso</em></font>
              </td>
              <td>
                <font size="2">Set the output ISO file name</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">-graft-points </font>
              </td>
              <td>
                <font size="2">allows "=" syntax in <em>pathspec.</em>  More on this below...</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">-m "*.tmp"</font>
              </td>
              <td>
                <font size="2">Exclude files from the image by pattern</font>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
          <font face="Courier New" color="#000000">mkisofs</font> takes paths to add to the
ISO file as parameters, and by default all these are stacked under the root of the
disk image.  If this is not what you want then you should enable <em>graft points</em>. 
This option will allow you to make folders in your ISO image for each of the folders
you are adding to the disk.
</p>
        <p>
For example, the following <em>pathspec</em> will create two folders on the CD, one
called Windows for the contents of the bin folder, and one called Documentation for
the contents of the doco folder:
</p>
        <p>
          <font face="Courier New" color="#000000">Windows=D:\build\windows\bin\ Documentation=D:\build\doco\</font>
        </p>
        <p>
So the complete command line for <font face="Courier New" color="#000000">mkisofs</font> will
be something like: 
</p>
        <p>
          <font face="Courier New" color="#000000">"C:\Program Files\cdrtools-latest\mkisofs.exe"
-J -R -graft-points -quiet -o f:\backup.iso -V backup -m "*.tmp" Windows=D:\build\windows\bin\
Documentation=D:\build\doco\</font>
        </p>
        <p>
          <strong>For extra points,</strong> you can automatically burn the ISO to a disk using
the cdburn / dvdburn tool that <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;DisplayLang=en">ships
with the Windows Server 2003 Resource Kit Tools</a>.
</p>
        <p>
A couple of reasons I'll suggest using this over using <font face="Courier New" color="#000000">cdrecord.exe</font> that
comes with the cdrtools package:
</p>
        <ul>
          <li>
The cygwin-based tools don't work as well with later Win32 like Windows Server 2003,
they seem to not deal with the tighter security well. 
</li>
          <li>
The syntax of <font face="Courier New" color="#000000">cdburn</font>/<font face="Courier New" color="#000000">dvdburn</font> is
much much easier!</li>
        </ul>
        <p>
An example of the syntax to burn f:\backup.iso to the blank disc in the burner g:\
is:
</p>
        <div>
        </div>
        <p>
          <font face="Courier New" color="#000000">C:\Program Files\Windows Resource Kits\Tools&gt;cdburn.exe
g: f:\backup.iso -speed max</font>
        </p>
        <p>
Also note that the cdburn will eject the disk once it has been burnt!  Keep that
in mind if your CD drive is normally behind a door or cage or something!
</p>
        <p>
          <strong>
            <em>
              <font color="#0000ff">UPDATE</font>
            </em>
          </strong>:  This technique
is also has some utility for backup-to-disk scenarios.  For example a backup
batch file that made an ISO then burnt it to disk.
</p>
        <p>
          <font color="#808080">
            <strong>Listening to:</strong> Bend to Squares by Death
Cab for Cutie</font>
        </p>
      </body>
      <title>Build output as an ISO file</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,55ab833e-9f7e-41d3-822b-d9280ef057ac.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,55ab833e-9f7e-41d3-822b-d9280ef057ac.aspx</link>
      <pubDate>Tue, 08 May 2007 04:53:13 GMT</pubDate>
      <description>&lt;p&gt;
I was looking today at options for finishing a build with something other than an
MSI or folder full of files:&amp;nbsp; &lt;strong&gt;An ISO file&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
I am a fan of &lt;a href="http://www.daemon-tools.cc/dtcc/download.php"&gt;DaemonTools&lt;/a&gt; and
associated add-ons.&amp;nbsp; Even if you're not planning to burn to disc, an ISO file
can be a useful way of getting a bunch of files around the place.
&lt;/p&gt;
&lt;p&gt;
First step was to &lt;a href="http://smithii.com/cdrtools"&gt;grab a Windows binary of mkisofs
from one of the various sources of cdrtools on the web&lt;/a&gt;.&amp;nbsp; &lt;strong&gt;NB&lt;/strong&gt;:&amp;nbsp;
It comes linked with &lt;a href="http://cygwin.com/faq.html"&gt;Cygwin&lt;/a&gt;&amp;nbsp;binaries.
&lt;/p&gt;
&lt;p&gt;
This is a util that has its roots in the Linux/Unix world, so be prepared to scratch
your head a bit if you are not familiar with the world of Linux/Unix command line
tools.&amp;nbsp; Also if you are, don't be fooled by &lt;font face="Courier New" color=#000000&gt;mkisofs&lt;/font&gt; following
the naming convention of the other &lt;font face="Courier New" color=#000000&gt;mk*fs&lt;/font&gt; tools.&amp;nbsp;
It is really quite different.
&lt;/p&gt;
&lt;p&gt;
In the *nix world, the online help is by the man ("manual") page system.&amp;nbsp; Basically,
at your prompt you type &lt;font face="Courier New" color=#000000&gt;man mkisofs &lt;/font&gt;for
help with &lt;font face="Courier New" color=#000000&gt;mkisofs&lt;/font&gt;.&amp;nbsp;&amp;nbsp; &lt;a href="http://www.google.com/search?q=man+mkisofs"&gt;This
works in Google too&lt;/a&gt;!&amp;nbsp; The man page will be a useful reference, as will the
less informative usage info you can get from &lt;font face="Courier New" color=#000000&gt;mkisofs.exe
-help&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Having said all that, the following options&amp;nbsp;are a really good place to start:&amp;nbsp;
&lt;/p&gt;
&lt;table border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;&lt;strong&gt;&lt;em&gt;Option&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;&lt;strong&gt;&lt;em&gt;Note&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;-J&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;Enable &lt;a href="http://en.wikipedia.org/wiki/Joliet_%28file_system%29"&gt;Joilet&lt;/a&gt; (you
want this)&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;-R&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;Enable &lt;a href="http://en.wikipedia.org/wiki/Rock_ridge"&gt;Rock Ridge&lt;/a&gt; (you
want this)&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;-V &lt;em&gt;diskname&lt;/em&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;Set a volume label&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;-o &lt;em&gt;filename.iso&lt;/em&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;Set the output ISO file name&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;-graft-points &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;allows "=" syntax in &lt;em&gt;pathspec.&lt;/em&gt;&amp;nbsp; More on this below...&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font size=2&gt;-m "*.tmp"&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font size=2&gt;Exclude files from the image by pattern&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;mkisofs&lt;/font&gt; takes paths to add to the ISO
file as parameters, and by default all these are stacked under the root of the disk
image.&amp;nbsp; If this is not what you want then you should enable &lt;em&gt;graft points&lt;/em&gt;.&amp;nbsp;
This option will allow you to make folders in your ISO image for each of the folders
you are adding to the disk.
&lt;/p&gt;
&lt;p&gt;
For example, the following &lt;em&gt;pathspec&lt;/em&gt; will create two folders on the CD, one
called Windows for the contents of the bin folder, and one called Documentation for
the contents of the doco folder:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;Windows=D:\build\windows\bin\ Documentation=D:\build\doco\&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
So the complete command line for &lt;font face="Courier New" color=#000000&gt;mkisofs&lt;/font&gt; will
be something like: 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;"C:\Program Files\cdrtools-latest\mkisofs.exe"
-J -R -graft-points -quiet -o f:\backup.iso -V backup -m "*.tmp" Windows=D:\build\windows\bin\
Documentation=D:\build\doco\&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;For extra points,&lt;/strong&gt; you can automatically burn the ISO to a disk using
the cdburn / dvdburn tool that &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;amp;DisplayLang=en"&gt;ships
with the Windows Server 2003 Resource Kit Tools&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
A couple of reasons I'll suggest using this over using &lt;font face="Courier New" color=#000000&gt;cdrecord.exe&lt;/font&gt; that
comes with the cdrtools package:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The cygwin-based tools don't work as well with later Win32 like Windows Server 2003,
they seem to not deal with the tighter security well. 
&lt;li&gt;
The syntax of &lt;font face="Courier New" color=#000000&gt;cdburn&lt;/font&gt;/&lt;font face="Courier New" color=#000000&gt;dvdburn&lt;/font&gt; is
much much easier!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
An example of the syntax to burn f:\backup.iso to the blank disc&amp;nbsp;in the burner&amp;nbsp;g:\
is:
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;font face="Courier New" color=#000000&gt;C:\Program Files\Windows Resource Kits\Tools&amp;gt;cdburn.exe
g: f:\backup.iso -speed max&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Also note that the cdburn will eject the disk once it has been burnt!&amp;nbsp; Keep that
in mind if your CD drive is normally behind a door or cage or&amp;nbsp;something!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#0000ff&gt;UPDATE&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;:&amp;nbsp; This technique
is also has some utility for backup-to-disk scenarios.&amp;nbsp; For example a backup
batch file that made an ISO then burnt it to disk.
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080&gt;&lt;strong&gt;Listening to:&lt;/strong&gt; Bend to Squares&amp;nbsp;by&amp;nbsp;Death
Cab for Cutie&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,55ab833e-9f7e-41d3-822b-d9280ef057ac.aspx</comments>
      <category>Continuous-Integration</category>
      <category>Geeking Out!</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=33f06588-1363-4171-bf92-c6c9901dfaa1</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,33f06588-1363-4171-bf92-c6c9901dfaa1.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,33f06588-1363-4171-bf92-c6c9901dfaa1.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=33f06588-1363-4171-bf92-c6c9901dfaa1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Every so often I check that web service, just to see what it comes back with.... nothing
yet ;-)
</p>
        <p>
          <img src="http://deepdark.net/content/binary/20070420_deepdark.net.jpg" border="0" />
        </p>
        <p>
Nice to see it is still in Vista, my little magic 8-ball dialogue!  
</p>
        <p>
I just wish I could control the default.
</p>
      </body>
      <title>Has this ever worked for you?</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,33f06588-1363-4171-bf92-c6c9901dfaa1.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,33f06588-1363-4171-bf92-c6c9901dfaa1.aspx</link>
      <pubDate>Fri, 20 Apr 2007 07:04:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Every so often I check that web service, just to see what it comes back with.... nothing
yet ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://deepdark.net/content/binary/20070420_deepdark.net.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Nice to see it is still in Vista, my little magic 8-ball dialogue!&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
I just wish I could control the default.
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,33f06588-1363-4171-bf92-c6c9901dfaa1.aspx</comments>
      <category>Geeking Out!</category>
      <category>UX</category>
      <category>Vista</category>
    </item>
    <item>
      <trackback:ping>http://deepdark.net/Trackback.aspx?guid=3f677b93-64b6-4233-9458-cd2f34416f8b</trackback:ping>
      <pingback:server>http://deepdark.net/pingback.aspx</pingback:server>
      <pingback:target>http://deepdark.net/PermaLink,guid,3f677b93-64b6-4233-9458-cd2f34416f8b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://deepdark.net/CommentView,guid,3f677b93-64b6-4233-9458-cd2f34416f8b.aspx</wfw:comment>
      <wfw:commentRss>http://deepdark.net/SyndicationService.asmx/GetEntryCommentsRss?guid=3f677b93-64b6-4233-9458-cd2f34416f8b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana">This
script came out of a discussion here at the office around a product that isn't flexible
or location aware in how it writes datetime values into the database.</font>
          </span>
        </p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana">This
is also not paying attention to storing the date data in UTC or localtime or any of
those concerns, just the semantics of storing whatever the date value happens to be.</font>
          </span>
        </p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana">What
are your experiences with this?  Comments as always most welcome :-)</font>
          </span>
        </p>
        <p>
          <font face="Verdana">
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Example
s</span>
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">cript
follows:</span>
          </font>
        </p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana">
            </font>
          </span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <br />
            <span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">/* 
<br />
    You can use the following proc at the start of your app to
see<br />
    what the current date format SQL Server is expecting from
you<br />
    based on the default language selection set on your login.<br /><br />
    Look at the dateformat field in the resultset of this proc.<br /><br />
    Use this if you want to honour the regional selection that
has 
<br />
    been setup on a per-user basis on the SQL Server<br />
    (login properties of each user)<br />
*/</span>
            <br />
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">exec</span> sp_helplanguage <span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">@@language</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">/* 
<br />
    Otherwise, you may also override the language settings if
your 
<br />
    application code can only format dates one way.<br /><br />
    This will avoid message 241 at runtime:    <br />
        "The conversion of a char data type
to a datetime data type resulted in an out-of-range datetime value."<br /><br />
    The 15th of Feb is a good example because there is no 15th
month:<br />
*/</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> LANGUAGE
us_english<br />
go <span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--
dateformat is now = mdy</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">select</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">cast</span>(<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'2/15/2003'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">datetime</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span> US_1<br />
go<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">select</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">cast</span>(<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'15/2/2003'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">datetime</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span> US_2 <span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Expect
Msg 242</span><br />
go<br /><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">SET</span> LANGUAGE
british<br />
go <span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--
dateformat is now = dmy</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">select</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">cast</span>(<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'2/15/2003'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">datetime</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span> British_1 <span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">--Expect
Msg 242</span><br />
go<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">select</span><span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">cast</span>(<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'15/2/2003'</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">datetime</span>) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">as</span> British_2 
<br />
go<br /></span>
        </p>
        <p>
          <font face="Verdana">You can grab the script here: </font>
          <a href="http://deepdark.net/content/binary/20070412.deepdark.net_dmy_mdy.sql">20070412.deepdark.net_dmy_mdy.sql
(1.14 KB)</a>
        </p>
      </body>
      <title>T-SQL:  dmy, mdy, oh my!  dateformat confusion</title>
      <guid isPermaLink="false">http://deepdark.net/PermaLink,guid,3f677b93-64b6-4233-9458-cd2f34416f8b.aspx</guid>
      <link>http://deepdark.net/PermaLink,guid,3f677b93-64b6-4233-9458-cd2f34416f8b.aspx</link>
      <pubDate>Thu, 12 Apr 2007 00:52:12 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana&gt;This
script came out of a discussion here at the office around a product that isn't flexible
or location aware in how it writes datetime values into the database.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana&gt;This
is also not paying attention to storing the date data in UTC or localtime or any of
those concerns, just the semantics of storing whatever the date value happens to be.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana&gt;What
are your experiences with this?&amp;nbsp; Comments as always most welcome :-)&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Example
s&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;cript
follows:&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;/* 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;You can use the following proc at the start of your app to
see&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;what the current date format SQL Server is expecting from
you&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;based on the default language selection set on your login.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Look at the dateformat field in the resultset of this proc.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Use this if you want to honour the regional selection that
has 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;been setup on a per-user basis on the SQL Server&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(login properties of each user)&lt;br&gt;
*/&lt;/span&gt; 
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;exec&lt;/span&gt; sp_helplanguage &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;@@language&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;/* 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Otherwise, you may also override the language settings if
your 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;application code can only format dates one way.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;This will avoid message 241 at runtime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"The conversion of a char data type
to a datetime data type resulted&amp;nbsp;in an out-of-range datetime value."&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The 15th of Feb is a good example because there is no 15th
month:&lt;br&gt;
*/&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; LANGUAGE
us_english&lt;br&gt;
go &lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--
dateformat is now = mdy&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;select&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;cast&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'2/15/2003'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;datetime&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; US_1&lt;br&gt;
go&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;select&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;cast&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'15/2/2003'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;datetime&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; US_2 &lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Expect
Msg 242&lt;/span&gt;
&lt;br&gt;
go&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SET&lt;/span&gt; LANGUAGE
british&lt;br&gt;
go &lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--
dateformat is now = dmy&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;select&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;cast&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'2/15/2003'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;datetime&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; British_1 &lt;span style="FONT-SIZE: 11px; COLOR: teal; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;--Expect
Msg 242&lt;/span&gt;
&lt;br&gt;
go&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;select&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: fuchsia; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;cast&lt;/span&gt;(&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'15/2/2003'&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;datetime&lt;/span&gt;) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; British_2 
&lt;br&gt;
go&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;You can grab the script here: &lt;/font&gt;&gt;&lt;a href="http://deepdark.net/content/binary/20070412.deepdark.net_dmy_mdy.sql"&gt;20070412.deepdark.net_dmy_mdy.sql
(1.14 KB)&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://deepdark.net/CommentView,guid,3f677b93-64b6-4233-9458-cd2f34416f8b.aspx</comments>
      <category>Database</category>
      <category>Geeking Out!</category>
      <category>T-SQL</category>
    </item>
  </channel>
</rss>