<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Brian Schroer</title>
        <link>http://geekswithblogs.net/brians/Default.aspx</link>
        <description>Don't Call Me Mort!</description>
        <language>en-US</language>
        <copyright>Brian Schroer</copyright>
        <managingEditor>brianschroer@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Brian Schroer</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/brians/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Coders For Charities St. Louis</title>
            <link>http://geekswithblogs.net/brians/archive/2009/10/18/coders-for-charities-st.-louis.aspx</link>
            <description>&lt;p&gt;I had a great time this weekend at the first &lt;a href="http://www.c4c-stl.org" target="_blank"&gt;St. Louis Coders 4 Charities weekend&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Over 60 people showed up to create or revamp web sites, applications and networks for &lt;a href="http://www.c4c-stl.org/CharityOrganizations.aspx" target="_blank"&gt;nine local charities&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_C4C.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Our team ported three United Way web sites to DotNetNuke: &lt;a title="http://www.211missouri.org/" href="http://www.211missouri.org/"&gt;http://www.211missouri.org/&lt;/a&gt;, &lt;a title="http://www.211southwestillinois.org/" href="http://www.211southwestillinois.org/"&gt;http://www.211southwestillinois.org/&lt;/a&gt;, and &lt;a title="http://www.100neediestcases.org/" href="http://www.100neediestcases.org/"&gt;http://www.100neediestcases.org/&lt;/a&gt;. (Those are the “prevamp” sites – The revamp sites look about the same, but will be much easier for “normal people” to administer.)&lt;/p&gt;  &lt;div style="border-bottom: gray 2px solid; text-align: center; border-left: gray 1px solid; padding-bottom: 1em; margin: 0px 0px 1em 1em; padding-left: 1em; padding-right: 1em; float: right; border-top: gray 1px solid; border-right: gray 2px solid; padding-top: 1em"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_Pointersaurus.jpg" width="361" height="239" /&gt;     &lt;p style="font-style: italic"&gt;There was plenty of food - That's me holding      &lt;br /&gt;the world's largest pizza box.&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;My teammates were: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scott "DotNetNuke &lt;strong&gt;Kingpin&lt;/strong&gt;" Allender &lt;/li&gt;    &lt;li&gt;Shanti “&lt;strong&gt;Queen&lt;/strong&gt; of CSS” Nutheti &lt;/li&gt;    &lt;li&gt;Jack “&lt;strong&gt;Jack&lt;/strong&gt;” Menge &lt;/li&gt;    &lt;li&gt;Mark “&lt;strong&gt;Ace&lt;/strong&gt;” Cooper &lt;/li&gt;    &lt;li&gt;from the United Way, Jim “&lt;strong&gt;Full&lt;/strong&gt;” House &lt;/li&gt;    &lt;li&gt;and our team leader Scott um… “&lt;strong&gt;Ate&lt;/strong&gt; &lt;strong&gt;a&lt;/strong&gt; &lt;strong&gt;Club&lt;/strong&gt; &lt;strong&gt;S&lt;/strong&gt;andwich” Spradlin &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some of the teams worked late into the night last night on their projects. Ours managed fairly reasonable hours – I spent a total of about 22 hours at the site over the weekend. It was a lot of work, but a whole lot of fun. It was great to get to know some other local developers and it was an honor to be part of such a worthwhile event.&lt;/p&gt;  &lt;p&gt;Special thanks to: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;the &lt;a href="http://www.cait.wustl.edu/"&gt;Washington University Center for the Application of Information Technology&lt;/a&gt; for allowing us to use their classrooms and computers &lt;/li&gt; &lt;/ul&gt;  &lt;div style="margin: 0px 1em 1em 0px; float: left"&gt;   &lt;ul&gt;     &lt;li&gt;Kevin Grossnicklaus for organizing the event:        &lt;br /&gt;        &lt;br /&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_KevinG.jpg" /&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/div&gt;  &lt;div style="margin: 0px 1em 1em 0px; float: left"&gt;   &lt;ul&gt;     &lt;li&gt;Muljadi Budiman, for organizing, coordinating, and setting up the C4CSTL web site:        &lt;br /&gt;        &lt;br /&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_Mul.jpg" width="372" height="410" /&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/div&gt;  &lt;div style="clear: both"&gt;   &lt;ul&gt;     &lt;li&gt;the aforementioned Scott "Kingpin" Allender. There were three teams using DotNetNuke for their projects, and Scott, leader of the &lt;a href="http://stlouis.dnnug.com/" target="_blank"&gt;St. Louis DNN User Group&lt;/a&gt;, was in high demand:         &lt;br /&gt;        &lt;br /&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_ScottAllender.jpg" /&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/div&gt;  &lt;ul&gt;   &lt;li&gt;Clint Edmonson, our developer evangelist (I was a little disappointed that "the evangelist" didn't preach a sermon on Sunday morning - maybe a reading from the Book of Azure) for (I hope) not minding that I stole these pictures from his Flickr pool (&lt;a href="http://www.flickr.com/groups/c4cstl" target="_blank"&gt;more C4CSTL pictures here&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;While browsing Clint’s Flickr photos (he’s a great photographer), I was struck by the similarities between two of his recent pictures:&lt;/p&gt;  &lt;table border="0"&gt;&lt;tbody&gt;     &lt;tr valign="top"&gt;       &lt;td&gt;Give this guy a laptop and some dorky glasses:          &lt;br /&gt;          &lt;br /&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_Bear3.jpg" /&gt; &lt;/td&gt;        &lt;td&gt;...and he'd be a dead ringer for this guy:          &lt;br /&gt;          &lt;br /&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_Brian.jpg" /&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135537"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135537" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135537.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/10/18/coders-for-charities-st.-louis.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 01:49:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135537.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/10/18/coders-for-charities-st.-louis.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135537.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135537.aspx</trackback:ping>
        </item>
        <item>
            <title>No animals were harmed in the making of my notebook</title>
            <link>http://geekswithblogs.net/brians/archive/2009/10/16/no-animals-were-harmed-in-the-making-of-my-notebook.aspx</link>
            <description>&lt;p&gt;I get lambasted (which has nothing to do with cooking baby sheep, by the way)  every time I blog about spelling, grammar or pronunciation, but…&lt;/p&gt;
&lt;p&gt;It’s pronounced “mol-a-skeen'-a”. Those trendy Moleskine notebooks are  &lt;em&gt;not&lt;/em&gt; made from mole skin.&lt;/p&gt;
&lt;p&gt;(Although, for all I know, Moleskine might be Italian for “mole skin” – The  company’s “legendary” claims seem to be a bit hyperbolic. The brand wasn’t  registered until 1996: &lt;a href="http://en.wikipedia.org/wiki/Moleskine" title="http://en.wikipedia.org/wiki/Moleskine"&gt;http://en.wikipedia.org/wiki/Moleskine&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135506"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135506" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135506.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/10/16/no-animals-were-harmed-in-the-making-of-my-notebook.aspx</guid>
            <pubDate>Fri, 16 Oct 2009 19:12:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135506.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/10/16/no-animals-were-harmed-in-the-making-of-my-notebook.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135506.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135506.aspx</trackback:ping>
        </item>
        <item>
            <title>Sweet TweetDeck Upgrade</title>
            <link>http://geekswithblogs.net/brians/archive/2009/10/16/sweet-tweetdeck-upgrade.aspx</link>
            <description>&lt;p&gt;I installed TweetDeck v.0.31.1 last night, and it has all of the features on my wish list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;keyboard shortcuts&lt;/li&gt;    &lt;li&gt;control over the positioning of notifications (I moved them down to the lower-right corner – They used to be in the upper-right, and always popped up covering up the Firefox search box just as I was about to use it)&lt;/li&gt;    &lt;li&gt;notifications now show the contents of new tweets, not just a count of how many there are&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="http://www.tweetdeck.com/beta/download/" href="http://www.tweetdeck.com/beta/download/"&gt;http://www.tweetdeck.com/beta/download/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135505"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135505" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135505.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/10/16/sweet-tweetdeck-upgrade.aspx</guid>
            <pubDate>Fri, 16 Oct 2009 18:58:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135505.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/10/16/sweet-tweetdeck-upgrade.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135505.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135505.aspx</trackback:ping>
        </item>
        <item>
            <title>&amp;ldquo;Classic ASP&amp;rdquo; Debug Include File</title>
            <link>http://geekswithblogs.net/brians/archive/2009/10/06/ldquoclassic-asprdquo-debugger-tool.aspx</link>
            <description>&lt;p&gt;Last month, I had the “opportunity” (as we’ve been trained to say) to do some maintenance on a “Classic ASP” site.&lt;/p&gt;
&lt;p&gt;I’d forgotten how painful that can be, but it was made a bit easier by dusting off an old tool from the dark ages.&lt;/p&gt;
&lt;p&gt;It’s an “include” file for debugging based on a Visual Basic Programmer’s Journal article by Jonathan Goodyear from way back in February, 2001: &lt;a href="http://support.microsoft.com/kb/288965"&gt;&lt;u&gt;http://support.microsoft.com/kb/288965&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It automatically dumps out cookie, form, query string, session and application variable values at the bottom of the page, and adds the ability to insert “Debug.Print” or “Debug.PrintKeyAndValue” statements in your VBScript, as seen in this sample page:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;Option Explicit &lt;/pre&gt;
&lt;pre class="alt"&gt;Response.Buffer = True &lt;/pre&gt;
&lt;pre&gt;&lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;&lt;em&gt;&lt;strong&gt;&amp;lt;!--#INCLUDE VIRTUAL="Include_Debug.asp"--&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        Welcome to my beautiful "Classic ASP" page!&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="images/ObligatoryUnderConstructionImage.jpg"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="images/SuperfluousDancingHamster.gif"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;marquee&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;font&lt;/span&gt; &lt;span class="attr"&gt;color&lt;/span&gt;&lt;span class="kwrd"&gt;="purple"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Remember when people thought marquee tags were cool!?&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;font&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;marquee&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;font&lt;/span&gt; &lt;span class="attr"&gt;color&lt;/span&gt;&lt;span class="kwrd"&gt;="fuchsia"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;...and font tags!?&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;font&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;Dim intSpaceIndex &lt;/pre&gt;
&lt;pre&gt;Dim strTime &lt;/pre&gt;
&lt;pre class="alt"&gt;Dim strDateAndTime &lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;strDateAndTime = Now&lt;/pre&gt;
&lt;pre&gt;&lt;em&gt;&lt;strong&gt;Debug.Print &lt;span class="str"&gt;"Instead of using the VB Format command, I'm going to do unnecessary string manipulation..."&lt;/span&gt;&lt;/strong&gt; &lt;/em&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;em&gt;&lt;strong&gt;Debug.PrintKeyAndValue &lt;span class="str"&gt;"strDateAndTime"&lt;/span&gt;, strDateAndTime&lt;/strong&gt; &lt;/em&gt;&lt;/pre&gt;
&lt;pre&gt;intSpaceIndex = InStr(strDateAndTime, &lt;span class="str"&gt;" "&lt;/span&gt;) &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;em&gt;&lt;strong&gt;Debug.PrintKeyAndValue &lt;span class="str"&gt;"intSpaceIndex"&lt;/span&gt;, intSpaceIndex&lt;/strong&gt;&lt;/em&gt; &lt;/pre&gt;
&lt;pre&gt;strTime = Mid(strDateAndTime, intSpaceIndex + 1)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;em&gt;&lt;strong&gt;Debug.PrintKeyAndValue &lt;span class="str"&gt;"strTime"&lt;/span&gt;, strTime&lt;/strong&gt;&lt;/em&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;The current time, in case you're too lazy to look down at your Windows taskbar, is &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt; =strTime &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The “classic” code above results in this thrilling display:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div style="border-style: solid; border-color: silver black black silver; border-width: 1px 2px 2px 1px; padding: 1em;"&gt;
&lt;h1&gt;Welcome to my beautiful "Classic ASP" page!&lt;/h1&gt;
&lt;br /&gt;
&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_ObligatoryUnderConstructionImage.jpg" /&gt;     &lt;br /&gt;
&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/o_SuperfluousDancingHamster.gif" /&gt;     &lt;br /&gt;
&lt;marquee width="500"&gt;&lt;font color="#800080"&gt;Remember when people thought marquee tags were cool!?&lt;/font&gt;&lt;/marquee&gt;
&lt;p&gt;&lt;font color="#ff00ff"&gt;...and font tags!?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;The current time, in case you're too lazy to look down at your Windows taskbar, is 12:45:38 PM&lt;/p&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Request Details&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Session ID:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;465736891&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Request Type:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;GET&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Time of Request:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;10/6/2009 12:45:38 PM&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Status Code:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;200 OK&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Session Timeout:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;20 minutes&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Total Bytes:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;0&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Elapsed Time:&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&amp;lt; 1 second&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Debug.Print Entries&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr style="background-color: gray;"&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td colspan="2"&gt;&lt;small&gt;Instead of using the VB Format command, I'm going to do unnecessary string manipulation...&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;strDateAndTime&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;10/6/2009 12:45:38 PM&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;intSpaceIndex&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;10&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;strTime&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'12:45:38 PM'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Request.QueryString Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Request.Form Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Request.Cookies Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr style="background-color: gray;"&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;MyCookie&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'AccessLevel=4&amp;amp;CompanyCode=1234&amp;amp;UserID=303409&amp;amp;FirstName=BRIAN&amp;amp;LastName=SCHROER' &lt;/small&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;MyCookie("AccessLevel")&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'4'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;MyCookie("CompanyCode")&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'1234'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;MyCookie("UserID")&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'303409'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;MyCookie("FirstName")&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'BRIAN'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;MyCookie("LastName")&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'SCHROER'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Request.ServerVariables Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr style="background-color: gray;"&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;ALL_HTTP&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'HTTP_ACCEPT:*/* HTTP_ACCEPT_LANGUAGE:en-us HTTP_CONNECTION:Keep-Alive HTTP_HOST:localhost HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; MS-RTC EA 2) HTTP_COOKIE:MyCookie=LastName=SCHROER&amp;amp;FirstName=BRIAN&amp;amp;UserID=303409&amp;amp;CompanyCode=1234&amp;amp;AccessLevel=4; ASPSESSIONIDCQBSCBTC=DLEJCMLBCILFLEJHLJONJDIO HTTP_UA_CPU:x86 HTTP_ACCEPT_ENCODING:gzip, deflate '&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;ALL_RAW&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: localhost User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; MS-RTC EA 2) Cookie: MyCookie=LastName=SCHROER&amp;amp;FirstName=BRIAN&amp;amp;UserID=303409&amp;amp;CompanyCode=1234&amp;amp;AccessLevel=4; ASPSESSIONIDCQBSCBTC=DLEJCMLBCILFLEJHLJONJDIO UA-CPU: x86 Accept-Encoding: gzip, deflate '&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;APPL_MD_PATH&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'/LM/w3svc/1/ROOT/FakeProject'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;APPL_PHYSICAL_PATH&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'C:\data\projects\Current\FakeProject\'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;AUTH_PASSWORD&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;AUTH_TYPE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'Negotiate'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;AUTH_USER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'MyDomain\BSCHROER'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;CERT_COOKIE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;CERT_FLAGS&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;CERT_ISSUER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;CERT_KEYSIZE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;CERT_SECRETKEYSIZE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;CERT_SERIALNUMBER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;CERT_SERVER_ISSUER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;CERT_SERVER_SUBJECT&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;CERT_SUBJECT&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;CONTENT_LENGTH&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'0'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;CONTENT_TYPE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;GATEWAY_INTERFACE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'CGI/1.1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTPS&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'off'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;HTTPS_KEYSIZE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTPS_SECRETKEYSIZE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;HTTPS_SERVER_ISSUER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTPS_SERVER_SUBJECT&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_ACCEPT&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'*/*'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_ACCEPT_ENCODING&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'gzip, deflate'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_ACCEPT_LANGUAGE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'en-us'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_CONNECTION&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'Keep-Alive'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_COOKIE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'MyCookie=LastName=SCHROER&amp;amp;FirstName=BRIAN&amp;amp;UserID=303409&amp;amp;CompanyCode=1234&amp;amp;AccessLevel=4; ASPSESSIONIDCQBSCBTC=DLEJCMLBCILFLEJHLJONJDIO'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_HOST&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'localhost'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_UA_CPU&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'x86'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;HTTP_USER_AGENT&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; MS-RTC EA 2)'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;INSTANCE_ID&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;INSTANCE_META_PATH&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'/LM/W3SVC/1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;LOCAL_ADDR&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'127.0.0.1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;LOGON_USER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'MyDomain\BSCHROER'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;PATH_INFO&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'/FakeProject/classic.asp'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;PATH_TRANSLATED&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'C:\data\projects\Current\FakeProject\classic.asp'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;QUERY_STRING&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;''&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;REMOTE_ADDR&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'127.0.0.1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;REMOTE_HOST&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'127.0.0.1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;REMOTE_USER&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'MyDomain\BSCHROER'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;REQUEST_METHOD&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'GET'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;SCRIPT_NAME&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'/FakeProject/classic.asp'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;SERVER_NAME&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'localhost'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;SERVER_PORT&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'80'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;SERVER_PORT_SECURE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'0'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;SERVER_PROTOCOL&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'HTTP/1.1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top"&gt;
            &lt;td&gt;&lt;small&gt;SERVER_SOFTWARE&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'Microsoft-IIS/5.1'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr valign="top" style="background-color: silver;"&gt;
            &lt;td&gt;&lt;small&gt;URL&lt;/small&gt; &lt;/td&gt;
            &lt;td&gt;&lt;small&gt;'/FakeProject/classic.asp'&lt;/small&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Session.Contents Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Session.StaticObjects Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Application.Contents Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;table width="100%" border="0" style="background: black none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: white; font-size: x-small;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;
            &lt;p&gt;&lt;small&gt;Application.StaticObjects Collection&lt;/small&gt;&lt;/p&gt;
            &lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;table width="100%" cellspacing="0" cellpadding="0" border="0" style="background: white none repeat scroll 0% 0%; font-family: verdana,arial,helvetica,sans serif; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: black; font-size: x-small;"&gt;
    &lt;tbody&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I know a lot of developers are stuck supporting old ASP sites. If you’re one of them, here’s the source code for my include file. I hope it helps to dull the pain:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&amp;lt;%&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; Debug    &lt;span class="rem"&gt;' As clsDebug&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; Debug = &lt;span class="kwrd"&gt;New&lt;/span&gt; clsDebug&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;With&lt;/span&gt; Debug&lt;/pre&gt;
&lt;pre class="alt"&gt;        .Enabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        .AutoDisplayOnTerminate = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Class&lt;/span&gt; clsDebug&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'============================================================&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Class Name:  clsDebug&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:  VBScript ASP debug class&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'                Based on article by Jonathan Goodyear &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'               in Visual Basic Programmer's Journal &lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'               (February 2001, Vol. 11, No. 2, p. 68) &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'    09/12/2001    Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'                Added Silent logic&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'============================================================&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbAutoDisplayOnTerminate    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mDictionary                    &lt;span class="rem"&gt;' As Scripting.Dictionary&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispRequestDetailsEnabled    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispDebugPrintsEnabled    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispQueryStringsEnabled    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispFormDataEnabled        &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispCookiesEnabled        &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispServerVariablesEnabled _&lt;/pre&gt;
&lt;pre&gt;                                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispSessionContentsEnabled _&lt;/pre&gt;
&lt;pre&gt;                                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispSessionStaticObjectsEnabled _&lt;/pre&gt;
&lt;pre&gt;                                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispAppContentsEnabled    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbDispAppStaticObjectsEnabled _&lt;/pre&gt;
&lt;pre class="alt"&gt;                                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbEnabled                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mdtRequestTime                &lt;span class="rem"&gt;' As Date&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mdtFinishTime                &lt;span class="rem"&gt;' As Date&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbShadeRow                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbSilent                    &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mbSilentInitialized            &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; msTD                        &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; msTD_Close                    &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; msTR                        &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; msTR_Close                    &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Class_Initialize()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    Class_Initialize&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    When class is initialized, initialize variables&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'                and create dictionary object&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------   &lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    AutoDisplayOnTerminate = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispRequestDetailsEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispDebugPrintsEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispQueryStringsEnabled    = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; mDictionary = Server.CreateObject(&lt;span class="str"&gt;"Scripting.Dictionary"&lt;/span&gt;)&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispFormDataEnabled    = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispCookiesEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispServerVariablesEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispSessionContentsEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispSessionStaticObjectsEnabled    = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispAppContentsEnabled    = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispAppStaticObjectsEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    Enabled = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    mdtRequestTime = Now&lt;/pre&gt;
&lt;pre&gt;    mbSilent = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    msTR = vbCrLf &amp;amp; &lt;span class="str"&gt;"    &amp;lt;tr "&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msTR_Close = vbCrLf &amp;amp; &lt;span class="str"&gt;"    &amp;lt;/tr&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    msTD = vbCrLf &amp;amp; &lt;span class="str"&gt;"        &amp;lt;td"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msTD_Close = vbCrLf &amp;amp; &lt;span class="str"&gt;"        &amp;lt;/td&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Class_Terminate()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    Class_Terminate&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Before class is terminated, release objects&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'    03/08/2001    Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'                Added AutoDisplayOnTerminate logic&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; mbAutoDisplayOnTerminate &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; Display()&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; mDictionary = &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; AutoDisplayOnTerminate() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'    Property:    AutoDisplayOnTerminate&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Automatically invoke Display method when&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'                class terminates?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    AutoDisplayOnTerminate = mbAutoDisplayOnTerminate&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; AutoDisplayOnTerminate(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbAutoDisplayOnTerminate = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; Enabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'    Property:    Enabled&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Enables/disabled debugging.&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    Enabled = mbEnabled&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; Enabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbEnabled = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Print(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Output)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    Print&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Add input to collection to be "Printed"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'                via Display method&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; mbEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="rem"&gt;' save output to internal dictionary&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; mDictionary.Add(&lt;span class="str"&gt;"Debug.Print#"&lt;/span&gt; &amp;amp; &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(mDictionary.Count), Output)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; PrintKeyAndValue(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sKey, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sValue)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    PrintEx&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Add inputs to collection to be "Printed"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'                via Display method&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; mbEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="rem"&gt;' save output to internal dictionary&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; mDictionary.Add(sKey, sValue)&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Display()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    Display&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Display debug information&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    mdtFinishTime = Now&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; Enabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispRequestDetailsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayRequestDetails()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispDebugPrintsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; mDictionary.Count &amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayPrints()&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispQueryStringsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayQueryStrings()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispFormDataEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayFormData()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispCookiesEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayCookies()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispServerVariablesEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayServerVariables()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispSessionContentsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplaySessionContents() &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;     &lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispSessionStaticObjectsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplaySessionStaticObjects() &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;    &lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispAppContentsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayAppContents()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; DispAppStaticObjectsEnabled &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; DisplayAppStaticObjects()&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayRequestDetails()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayRequestDetails&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Display request details&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'    03/14/2001    Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'                Added "no Session" logic&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llSeconds            &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsSeconds            &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsSessionID            &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsSessionTimeout    &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    lsSessionId = &lt;span class="str"&gt;"(no session)"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    lsSessionTimeout = &lt;span class="str"&gt;"(no session)"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; IsEmpty(Session) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        lsSessionID = Session.SessionID&lt;/pre&gt;
&lt;pre class="alt"&gt;        lsSessionTimeout = &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(Session.Timeout) &amp;amp; &lt;span class="str"&gt;" minutes"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; 0&lt;/pre&gt;
&lt;pre class="alt"&gt;    Err.Clear&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    llSeconds = DateDiff(&lt;span class="str"&gt;"s"&lt;/span&gt;, mdtRequestTime, mdtFinishTime)&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;span class="kwrd"&gt;Case&lt;/span&gt; llSeconds&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Case&lt;/span&gt; 0&lt;/pre&gt;
&lt;pre class="alt"&gt;            lsSeconds = &lt;span class="str"&gt;"&amp;lt; 1 second"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Case&lt;/span&gt; 1&lt;/pre&gt;
&lt;pre class="alt"&gt;            lsSeconds = &lt;span class="str"&gt;"1 second"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            lsSeconds = &lt;span class="kwrd"&gt;Cstr&lt;/span&gt;(llSeconds) &amp;amp; &lt;span class="str"&gt;" seconds"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Select&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_GroupInitialize(&lt;span class="str"&gt;"Request Details"&lt;/span&gt;)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;With&lt;/span&gt; Response&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Session ID"&lt;/span&gt;, lsSessionID)&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Request Type"&lt;/span&gt;, Request.ServerVariables(&lt;span class="str"&gt;"REQUEST_METHOD"&lt;/span&gt;))&lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Time of Request"&lt;/span&gt;, FormatDateTime(mdtRequestTime))&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Status Code"&lt;/span&gt;, .Status)&lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Session Timeout"&lt;/span&gt;, lsSessionTimeout)&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Total Bytes"&lt;/span&gt;, &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(Request.TotalBytes))&lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Elapsed Time"&lt;/span&gt;, lsSeconds)&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; IsNull(.Expires) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_ReqDtlShow(&lt;span class="str"&gt;"Expires"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(.Expires) &amp;amp; &lt;span class="str"&gt;" minutes&amp;lt;BR&amp;gt;"&lt;/span&gt; _&lt;/pre&gt;
&lt;pre&gt;                    &amp;amp; FormatDateTime(.ExpiresAbsolute))&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_GroupTerminate&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_ReqDtlShow(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; asLabel, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; asValue)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    msb_ReqDtlShow&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/14/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display request detail data&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Inputs:    asLabel    = label&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'                asValue    = value&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_MemberPrint asLabel, asValue&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite msTD &amp;amp; &lt;span class="str"&gt;"&amp;gt;&amp;lt;small&amp;gt;&amp;lt;b&amp;gt;"&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite asLabel &lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite &lt;span class="str"&gt;":&amp;lt;/b&amp;gt;&amp;lt;/small&amp;gt;"&lt;/span&gt; &amp;amp; msTD_Close&lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite msTD &amp;amp; &lt;span class="str"&gt;"&amp;gt;&amp;lt;small&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite asValue &lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/small&amp;gt;"&lt;/span&gt; &amp;amp; msTD_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayPrints()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayPrints&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Debug.Print collect&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Debug.Print Entries"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        mDictionary, _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;False&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayQueryStrings()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayQueryStrings&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Request.QueryString collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Request.QueryString Collection"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        Request.QueryString(), _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayFormData()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayFormData&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Request.Form collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Request.Form Collection"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        Request.Form(), _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayCookies()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayCookies&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Request.Cookies collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Request.Cookies Collection"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        Request.Cookies(), _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayServerVariables()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayServerVariables&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Request.ServerVariables collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Request.ServerVariables Collection"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        Request.ServerVariables(), _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplaySessionContents()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplaySessionContents&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Session.Contents collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; Session &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint(&lt;span class="str"&gt;"Session.Contents Collection"&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint(&lt;span class="str"&gt;"Session.Contents Collection"&lt;/span&gt;, Session.Contents(), &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplaySessionStaticObjects()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplaySessionStaticObjects&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Display Session.StaticObjects collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; Session &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint(&lt;span class="str"&gt;"Session.StaticObjects Collection"&lt;/span&gt;, Session.StaticObjects(), &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint(&lt;span class="str"&gt;"Session.StaticObjects Collection"&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayAppContents()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayAppContents&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Application.Contents collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Application.Contents Collection"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        Application.Contents(), _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;True&lt;/span&gt;)    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayAppStaticObjects()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    DisplayAppStaticObjects&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/08/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Display Application.StaticObjects collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_CollectionPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="str"&gt;"Application.StaticObjects Collection"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;        Application.StaticObjects(), _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;True&lt;/span&gt;)   &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_CollectionPrint(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; CollectionName, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Collection, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; abSorted)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    msb_CollectionPrint&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Print contents of collection&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'    09/12/2001    Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'                Added abSorted logic&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lvItem        &lt;span class="rem"&gt;' As Variant&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_GroupInitialize(CollectionName)&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; Collection &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; Collection.Count &amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;" style="&lt;/span&gt;&lt;span class="str"&gt;"BACKGROUND-COLOR: gray"&lt;/span&gt;&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                    msb_DebugWrite msTD&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite &lt;span class="str"&gt;"&amp;gt;&amp;lt;small&amp;gt;&amp;lt;b&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                    msb_DebugWrite &lt;span class="str"&gt;"Name"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/b&amp;gt;&amp;lt;/small&amp;gt;"&lt;/span&gt; &amp;amp; msTD_Close&lt;/pre&gt;
&lt;pre&gt;                    msb_DebugWrite msTD&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite &lt;span class="str"&gt;"&amp;gt;&amp;lt;small&amp;gt;&amp;lt;b&amp;gt;&amp;amp;nbsp;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                    msb_DebugWrite &lt;span class="str"&gt;"Value"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/b&amp;gt;&amp;lt;/small&amp;gt;"&lt;/span&gt; &amp;amp; msTD_Close&lt;/pre&gt;
&lt;pre&gt;                msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;        mbShadeRow = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; abSorted &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; Collection.Count &amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; lvItem &lt;span class="kwrd"&gt;In&lt;/span&gt; mfn_v_Debug_SortedDictKeys(Collection)&lt;/pre&gt;
&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_MemberPrint(lvItem, Collection(lvItem))&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; lvItem &lt;span class="kwrd"&gt;In&lt;/span&gt; Collection&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_MemberPrint(lvItem, Collection(lvItem))&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_GroupTerminate&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_GroupInitialize(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; asTitle)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    msb_GroupInitialize&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Initialize display group&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Inputs:    asTitle = group title&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------    &lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; mbSilentInitialized &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        mbSilentInitialized = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            Response.Write vbCrLf &amp;amp; &lt;span class="str"&gt;"&amp;lt;!-- "&lt;/span&gt; _&lt;/pre&gt;
&lt;pre class="alt"&gt;                &amp;amp; vbCrLf &amp;amp; &lt;span class="kwrd"&gt;String&lt;/span&gt;(60, &lt;span class="str"&gt;"="&lt;/span&gt;) _&lt;/pre&gt;
&lt;pre&gt;                &amp;amp; vbCrLf &amp;amp; asTitle _&lt;/pre&gt;
&lt;pre class="alt"&gt;                &amp;amp; vbCrLf &amp;amp; &lt;span class="kwrd"&gt;String&lt;/span&gt;(60, &lt;span class="str"&gt;"="&lt;/span&gt;) &amp;amp; vbCrLf&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite vbCrLf &amp;amp; vbCrLf&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;BR&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite vbCrLf&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;table style="&lt;/span&gt;&lt;span class="str"&gt;"background: black; color: white;"&lt;/span&gt; _&lt;/pre&gt;
&lt;pre&gt;        &amp;amp; &lt;span class="str"&gt;" font-family: Verdana, Arial, Helvetica, "&lt;/span&gt;&lt;span class="str"&gt;"Sans Serif"&lt;/span&gt;&lt;span class="str"&gt;";"&lt;/span&gt; _&lt;/pre&gt;
&lt;pre class="alt"&gt;        &amp;amp; &lt;span class="str"&gt;" font-size: x-small"&lt;/span&gt;&lt;span class="str"&gt;" border=0 width="&lt;/span&gt;&lt;span class="str"&gt;"100%"&lt;/span&gt;&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite msTD &amp;amp; &lt;span class="str"&gt;"&amp;gt;&amp;lt;b&amp;gt;&amp;lt;p&amp;gt;&amp;lt;small&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite asTitle&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/b&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite msTD_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite vbCrLf&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/table&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite vbCrlf&lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;table style="&lt;/span&gt;&lt;span class="str"&gt;"background: white; color: black;"&lt;/span&gt; _&lt;/pre&gt;
&lt;pre&gt;        &amp;amp; &lt;span class="str"&gt;" font-family: Verdana, Arial, Helvetica, "&lt;/span&gt;&lt;span class="str"&gt;"Sans Serif"&lt;/span&gt;&lt;span class="str"&gt;";"&lt;/span&gt; _ &lt;/pre&gt;
&lt;pre class="alt"&gt;        &amp;amp; &lt;span class="str"&gt;" font-size: x-small"&lt;/span&gt;&lt;span class="str"&gt;" border=0 cellPadding=0 cellSpacing=0 width="&lt;/span&gt;&lt;span class="str"&gt;"100%"&lt;/span&gt;&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    mbShadeRow = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_MemberPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; asName, _&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; avValue)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'  Subroutine:    msb_MemberPrint&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:    Print collection/array member&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llBlank        &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsDelim        &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llIndex        &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lvItem        &lt;span class="rem"&gt;' As Variant&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Const&lt;/span&gt; llMax = 30&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsName        &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsTypeName    &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lsValue        &lt;span class="rem"&gt;' As String&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;/pre&gt;
&lt;pre class="alt"&gt;    lsTypeName = TypeName(avValue)&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;    lsValue = &lt;span class="str"&gt;"("&lt;/span&gt; &amp;amp; lsTypeName &amp;amp; &lt;span class="str"&gt;" object)"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;span class="kwrd"&gt;Case&lt;/span&gt; lsTypeName&lt;/pre&gt;
&lt;pre&gt;            &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="str"&gt;"Variant()"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;/pre&gt;
&lt;pre class="alt"&gt;            llIndex = LBound(avValue)&lt;/pre&gt;
&lt;pre&gt;            lsName = asName&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; Right(lsName, 1) = &lt;span class="str"&gt;")"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                lsName = Left(lsName, (Len(lsName) -1)) &amp;amp; &lt;span class="str"&gt;","&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                lsName = lsName &amp;amp; &lt;span class="str"&gt;"("&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; lvItem &lt;span class="kwrd"&gt;In&lt;/span&gt; avValue&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_MemberPrint( _&lt;/pre&gt;
&lt;pre&gt;                    lsName &amp;amp; &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(llIndex) &amp;amp; &lt;span class="str"&gt;")"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre class="alt"&gt;                    lvItem)&lt;/pre&gt;
&lt;pre&gt;                llIndex = llIndex + 1&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;/pre&gt;
&lt;pre class="alt"&gt;            mbShadeRow = &lt;span class="kwrd"&gt;Not&lt;/span&gt; mbShadeRow&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; mbShadeRow &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;" valign=top style="&lt;/span&gt;&lt;span class="str"&gt;"BACKGROUND-COLOR: silver"&lt;/span&gt;&lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                msb_DebugWrite msTR &amp;amp; &lt;span class="str"&gt;" valign=top&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;            lsName = asName&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; Len(lsName) &amp;gt; llMax &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                llBlank = Instr(1, lsName, &lt;span class="str"&gt;" "&lt;/span&gt;)&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; llBlank &amp;lt; 1 &lt;span class="kwrd"&gt;Or&lt;/span&gt; llBlank &amp;gt; llMax &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                    lsName = Left(lsName, llMax) &amp;amp; &lt;span class="str"&gt;"&amp;lt;BR&amp;gt;"&lt;/span&gt; &amp;amp; Mid(lsName, llMax + 1)&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; Left(asName, 12) = &lt;span class="str"&gt;"Debug.Print#"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                msb_DebugWrite msTD &amp;amp; &lt;span class="str"&gt;" colspan=2"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                lsDelim = &lt;span class="str"&gt;""&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite lsName &amp;amp; &lt;span class="str"&gt;":"&lt;/span&gt; &amp;amp; vbCrLf&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite msTD &lt;/pre&gt;
&lt;pre&gt;                    msb_DebugWrite &lt;span class="str"&gt;"&amp;gt;&amp;lt;small&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite lsName&lt;/pre&gt;
&lt;pre&gt;                    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/small&amp;gt;"&lt;/span&gt; &amp;amp; msTD_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;                    msb_DebugWrite msTD&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;                lsDelim = &lt;span class="str"&gt;"'"&lt;/span&gt;    &lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;            msb_DebugWrite &lt;span class="str"&gt;"&amp;gt;&amp;lt;small&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            lsValue = &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(avValue)&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Goto&lt;/span&gt; 0&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;span class="kwrd"&gt;Case&lt;/span&gt; lsTypeName&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="str"&gt;"String"&lt;/span&gt;, &lt;span class="str"&gt;"IStringList"&lt;/span&gt;, &lt;span class="str"&gt;"IReadCookie"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                    lsValue = lsDelim &amp;amp; lsValue &amp;amp; lsDelim&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="str"&gt;"Empty"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                    lsValue = &lt;span class="str"&gt;"(Empty)"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Select&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                msb_DebugWrite lsValue &amp;amp; vbCrLf &amp;amp; vbCrLf&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                msb_DebugWrite &lt;span class="str"&gt;"&amp;amp;nbsp;"&lt;/span&gt; &amp;amp; lsValue &lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; lsTypeName = &lt;span class="str"&gt;"IReadCookie"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; avValue.HasKeys &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; lvItem &lt;span class="kwrd"&gt;In&lt;/span&gt; avValue&lt;/pre&gt;
&lt;pre&gt;                        &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_MemberPrint( _&lt;/pre&gt;
&lt;pre class="alt"&gt;                            lsName &amp;amp; &lt;span class="str"&gt;"("&lt;/span&gt;&lt;span class="str"&gt;""&lt;/span&gt; &amp;amp; lvItem &amp;amp; &lt;span class="str"&gt;""&lt;/span&gt;&lt;span class="str"&gt;")"&lt;/span&gt;, _&lt;/pre&gt;
&lt;pre&gt;                            avValue.Item(lvItem))&lt;/pre&gt;
&lt;pre class="alt"&gt;                        llIndex = llIndex + 1&lt;/pre&gt;
&lt;pre&gt;                    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Select&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;    msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/small&amp;gt;"&lt;/span&gt; &amp;amp; msTD_Close&lt;/pre&gt;
&lt;pre&gt;    msb_DebugWrite msTR_Close&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_GroupTerminate()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:    msb_GroupTerminate&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'        Date:  03/06/2001&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;' Description:    Terminate display group&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        Response.Write vbCrLf &amp;amp; &lt;span class="str"&gt;"--&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        mbSilentInitialized = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        msb_DebugWrite vbCrLf&lt;/pre&gt;
&lt;pre&gt;        msb_DebugWrite &lt;span class="str"&gt;"&amp;lt;/table&amp;gt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispRequestDetailsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispRequestDetailsEnabled = mbDispRequestDetailsEnabled&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispRequestDetailsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbDispRequestDetailsEnabled = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispDebugPrintsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispDebugPrintsEnabled = mbDispDebugPrintsEnabled&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispDebugPrintsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre class="alt"&gt;    mbDispDebugPrintsEnabled = Value&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; Silent() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    Silent = mbSilent&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; Silent(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; Value &amp;lt;&amp;gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        mbSilent = Value&lt;/pre&gt;
&lt;pre&gt;        mbSilentInitialized = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispQueryStringsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispQueryStringsEnabled = mbDispQueryStringsEnabled&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispQueryStringsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbDispQueryStringsEnabled = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispFormDataEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispFormDataEnabled = mbDispFormDataEnabled&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispFormDataEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre class="alt"&gt;    mbDispFormDataEnabled = Value&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispCookiesEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispCookiesEnabled = mbDispCookiesEnabled&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispCookiesEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbDispCookiesEnabled = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispServerVariablesEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispServerVariablesEnabled = mbDispServerVariablesEnabled&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispServerVariablesEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre class="alt"&gt;    mbDispServerVariablesEnabled = Value&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispSessionContentsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispSessionContentsEnabled = mbDispSessionContentsEnabled&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispSessionContentsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbDispSessionContentsEnabled = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispSessionStaticObjectsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispSessionStaticObjectsEnabled = mbDispSessionStaticObjectsEnabled&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispSessionStaticObjectsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre class="alt"&gt;    mbDispSessionStaticObjectsEnabled = Value&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispAppContentsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    DispAppContentsEnabled = mbDispAppContentsEnabled&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispAppContentsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre&gt;    mbDispAppContentsEnabled = Value&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; DispAppStaticObjectsEnabled() &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    DispAppStaticObjectsEnabled = mbDispAppStaticObjectsEnabled&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Let&lt;/span&gt; DispAppStaticObjectsEnabled(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Value)&lt;/pre&gt;
&lt;pre class="alt"&gt;    mbDispAppStaticObjectsEnabled = Value&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_DebugWrite(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; asString)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llIndex    &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; mbSilent &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; Right(asString, 1) = &lt;span class="str"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;For&lt;/span&gt; llIndex = 1 &lt;span class="kwrd"&gt;TO&lt;/span&gt; Len(asString)&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;span class="kwrd"&gt;Case&lt;/span&gt; Mid(asString, llIndex, 1)&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;Case&lt;/span&gt; vbCr, vbLf, vbTab, &lt;span class="str"&gt;" "&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="str"&gt;"&amp;lt;"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;For&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Select&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    Response.Write asString&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; mfn_v_Debug_SortedDictKeys(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; aDictionary)&lt;span class="rem"&gt;' As Scripting.Dictionary) As Variant)&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:  mfn_v_Debug_SortedDictKeys&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:  Build array of sorted Dictionary keys&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Inputs:  aDictionary = Scripting.Dictionary&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'     Returns:  Array of sorted Dictionary Keys&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llIndex        &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lvKey        &lt;span class="rem"&gt;' As Variant&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    Execute (&lt;span class="str"&gt;"Dim lvArray("&lt;/span&gt; &amp;amp; aDictionary.Count - 1 &amp;amp; &lt;span class="str"&gt;")"&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;        &lt;/pre&gt;
&lt;pre class="alt"&gt;    llIndex = LBound(lvArray) - 1&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; lvKey &lt;span class="kwrd"&gt;In&lt;/span&gt; aDictionary&lt;/pre&gt;
&lt;pre&gt;        llIndex = llIndex + 1&lt;/pre&gt;
&lt;pre class="alt"&gt;        lvArray(llIndex) = lvKey&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Call&lt;/span&gt; msb_Debug_ShakeSort(lvArray)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    mfn_v_Debug_SortedDictKeys = lvArray&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; msb_Debug_ShakeSort(&lt;span class="kwrd"&gt;ByRef&lt;/span&gt; avArray)&lt;span class="rem"&gt;'As Variant&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'  Subroutine:  msb_Debug_ShakeSort&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Author:  Brian Schroer - based on VBPJ tip by Tan Shing Ho&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;' Description:  perform "shaker" sort on array&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'      Inputs:  avArray = array (of any data type)&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'     Returns:  (sorted avArray)&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="rem"&gt;'   Revisions:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lbSwap  &lt;span class="rem"&gt;' As Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lvTemp  &lt;span class="rem"&gt;' As Variant&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llX     &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llMin   &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; llMax   &lt;span class="rem"&gt;' As Long&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;/pre&gt;
&lt;pre&gt;    llMin = LBound(avArray) + 1&lt;/pre&gt;
&lt;pre class="alt"&gt;    llMax = UBound(avArray)&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Do&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        lbSwap = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;For&lt;/span&gt; llX = llMax &lt;span class="kwrd"&gt;To&lt;/span&gt; llMin &lt;span class="kwrd"&gt;Step&lt;/span&gt; -1&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; avArray(llX - 1) &amp;gt; avArray(llX) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                lvTemp = avArray(llX - 1)&lt;/pre&gt;
&lt;pre&gt;                avArray(llX - 1) = avArray(llX)&lt;/pre&gt;
&lt;pre class="alt"&gt;                avArray(llX) = lvTemp&lt;/pre&gt;
&lt;pre&gt;                lbSwap = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;For&lt;/span&gt; llX = llMin &lt;span class="kwrd"&gt;To&lt;/span&gt; llMax&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; avArray(llX - 1) &amp;gt; avArray(llX) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;                lvTemp = avArray(llX - 1)&lt;/pre&gt;
&lt;pre&gt;                avArray(llX - 1) = avArray(llX)&lt;/pre&gt;
&lt;pre class="alt"&gt;                avArray(llX) = lvTemp&lt;/pre&gt;
&lt;pre&gt;                lbSwap = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Loop&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; lbSwap&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;%&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135336"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135336" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135336.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/10/06/ldquoclassic-asprdquo-debugger-tool.aspx</guid>
            <pubDate>Wed, 07 Oct 2009 00:25:52 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135336.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/10/06/ldquoclassic-asprdquo-debugger-tool.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135336.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135336.aspx</trackback:ping>
        </item>
        <item>
            <title>Woohoo! I won something stupid!</title>
            <link>http://geekswithblogs.net/brians/archive/2009/10/01/woohoo-i-won-something-stupid.aspx</link>
            <description>&lt;div style="FLOAT: left; MARGIN: 0px 1em 1em 0px"&gt;&lt;img alt="Community Credit WInner" border="0" src="http://www.community-credit.com/images/Logos/winner.jpg" /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Beware of geeks bearing gifts...&lt;/p&gt;
&lt;p&gt;I just got notification that I won one of the monthly "stupid prizes for smart people" from &lt;a href="http://www.community-credit.com"&gt;Community Credit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; Thanks to David Silverlight for founding this great program.&lt;/p&gt;
&lt;p&gt;I'm sure productivity in my office will soar once I install my new Desktop Swing Ball:&lt;/p&gt;
&lt;p&gt; &lt;img alt="Desktop Swing Ball" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_SWNG-1261.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;I've only started blogging regularly recently, and am working on overcoming my natural shyness to try to volunteer to help out more with the St. Louis .NET community. I hope that sometime in the near future, I'll actually do something worthy of this prestigious, silly award.&lt;/p&gt;
&lt;/div&gt;
&lt;div style="FLOAT: right; MARGIN: 0px 0px 1em 1em"&gt;&lt;img alt="community - credit: My Community Gets Credit" border="0" src="http://www.community-credit.com/images/Logos/myComGetsCredit.gif" /&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135219"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135219" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135219.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/10/01/woohoo-i-won-something-stupid.aspx</guid>
            <pubDate>Thu, 01 Oct 2009 18:29:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135219.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/10/01/woohoo-i-won-something-stupid.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135219.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135219.aspx</trackback:ping>
        </item>
        <item>
            <title>&amp;ldquo;The Visual Studio Documentary&amp;rdquo;</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/29/ldquothe-visual-studio-documentaryrdquo.aspx</link>
            <description>&lt;p&gt;I just watched/enjoyed “&lt;a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/" target="_blank"&gt;The Visual Studio Documentary&lt;/a&gt;” on Channel 9. It brought a tear to my eye as it rekindled memories of installing VB5 from a giant stack o’ floppies.&lt;/p&gt;  &lt;p&gt;(Did you know that Alan Cooper’s original name for (what became) Visual Basic was “Ruby”?)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Edit: I posted before I actually finished the thing. It’s a bit self-congratulatory at times, but then goes turns into a full-blown commercial toward the end. Up to that point, though, it’s a fun watch.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135169"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135169" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135169.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/29/ldquothe-visual-studio-documentaryrdquo.aspx</guid>
            <pubDate>Wed, 30 Sep 2009 00:21:50 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135169.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/29/ldquothe-visual-studio-documentaryrdquo.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135169.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135169.aspx</trackback:ping>
        </item>
        <item>
            <title>St. Louis .NET User Group &amp;ndash; Muljadi Budiman: &amp;ldquo;What's new in Visual Studio 2010 and .NET 4.0 Framework&amp;rdquo;</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/28/135149.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://geekswithblogs.net/NewThingsILearned" target="_blank"&gt;Muljadi Budiman&lt;/a&gt; was the top-rated speaker at the recent St. Louis Day of .NET event, and it’s easy to see why. His presentations are energetic, humorous, and packed with useful information.&lt;/p&gt;  &lt;p&gt;At tonight’s St. Louis .NET User Group meeting, he zipped through an overview of Visual Studio 2010 and 4.0 features of C#, VB, WPF, the CLR and the DLR in a little over 90 minutes.&lt;/p&gt;  &lt;p&gt;Highlights included:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;VS2010:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;multi-monitor support&lt;/li&gt;      &lt;li&gt;Call Hierarchy visualizer&lt;/li&gt;      &lt;li&gt;“Navigate To” improvements&lt;/li&gt;      &lt;li&gt;“Consume-First Development” (greate for TDD)&lt;/li&gt;      &lt;li&gt;Code Snippets for HTML, ASP.NET and JavaScript&lt;/li&gt;      &lt;li&gt;Parallel Tasks&lt;/li&gt;      &lt;li&gt;a WPF designer that doesn’t suck&lt;/li&gt;      &lt;li&gt;“Embed Interop Types” compiler feature to avoid having to distribute big Interop DLL files&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;VB.NET&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Auto-implemented properties (catching up to C#) with initial values (C#’s turn to catch up now)&lt;/li&gt;      &lt;li&gt;Collection initializers (catching up to C#)&lt;/li&gt;      &lt;li&gt;multi-line lambdas (catching up to C#)&lt;/li&gt;      &lt;li&gt;getting rid of the underscore line continuation character! (catching up to every language created since 1982 or so)&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;CLR&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Lazy&amp;lt;T&amp;gt;&lt;/li&gt;      &lt;li&gt;Generic Set collections&lt;/li&gt;      &lt;li&gt;Tuples&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;I don’t know if Mul has had an opportunity to present outside of the St. Louis area, but if you’re organizing a regional code camp or .NET event, I would highly recommend him.&lt;/p&gt;  &lt;p&gt;Thanks to &lt;a href="http://www.quilogy.com/" target="_blank"&gt;Quilogy&lt;/a&gt; for providing the geek fuel (pizza &amp;amp; soda) for tonight’s meeting.  &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135149"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135149" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135149.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/28/135149.aspx</guid>
            <pubDate>Tue, 29 Sep 2009 01:40:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135149.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/28/135149.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135149.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135149.aspx</trackback:ping>
        </item>
        <item>
            <title>Phil Japikse &amp;amp; Hope Mongers: Giving the Gift of Technology</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/27/135130.aspx</link>
            <description>&lt;p&gt;I just finished listening to a great &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=484" target="_blank"&gt;.NET Rocks interview&lt;/a&gt; with &lt;a href="http://www.skimedic.com" target="_blank"&gt;Phil Japikse,&lt;/a&gt; where he talked about his experiences working on &lt;a href="http://www.hopemongers.org/" target="_blank"&gt;Hope Mongers&lt;/a&gt;, a volunteer-run asp.net-based website that brings charity projects together with donators. “Chief Monger” Sam Henry says:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Whether helping orphans on the other side of the planet or families just around the corner, so much authentic living, learning and feeling flows from the intense human connection that happens when you know you are changing someone’s life. Our goal at HopeMongers is to connect you directly with people and help you find tangible opportunities to make a lasting difference in their lives. Our unique community-centered approach focuses on the holistic, long-term needs of communities so that each project is a step toward achieving self-sufficiency, economic independence, and redemption.&lt;/p&gt;    &lt;p&gt;As you connect with people and projects on HopeMongers, we hope to ignite a fire that will inspire you to keep giving – not just from your wallet but from your time, talent, money, gifts, your life. Our vision is to redeem the world’s poorest communities and reclaim the art of personal stewardship through microgiving. This ambitious vision is not one any of us can achieve alone but together we can be the generation that helps humanity to its feet and ends extreme poverty.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It looks like a good way to donate to worthwhile causes and know exactly what’s being done with your contribution.&lt;/p&gt;  &lt;p&gt;You can also donate your geek skills, because Hope Mongers is an ASP.NET site, and volunteers are always welcome. To find out how you can help, email &lt;a href="mailto:phil@skimedic.com"&gt;phil@skimedic.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;P.S. If you’re in the St. Louis area and looking to make a difference in your community, don’t forget about the Coders 4 Charities event October 16-18: &lt;a title="http://geekswithblogs.net/brians/archive/2009/09/19/134927.aspx" href="http://geekswithblogs.net/brians/archive/2009/09/19/134927.aspx"&gt;http://geekswithblogs.net/brians/archive/2009/09/19/134927.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135130"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135130" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135130.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/27/135130.aspx</guid>
            <pubDate>Sun, 27 Sep 2009 22:14:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135130.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/27/135130.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135130.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135130.aspx</trackback:ping>
        </item>
        <item>
            <title>Book Review: C# in Depth by Jon Skeet</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/26/135118.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.amazon.com/Depth-What-you-need-master/dp/1933988363/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1253992205&amp;amp;sr=8-1" target="_blank"&gt;C# in Depth&lt;/a&gt; is not for beginners. It assumes a working knowledge of C# 1.0, and is not so much a tutorial of C# 2 and 3 features as an in-depth examination of how and why they work.&lt;/p&gt;  &lt;p&gt;I don’t think I learned anything I didn’t know about using generics, extension methods, delegates, anonymous methods and lambdas, but Skeet does a great job of zooming in on the inner workings of each of these features, building up to the big picture of how they all snap together to make the game-changing programming paradigm that is LINQ. It’s like a DVD of your favorite movie with behind-the-scenes features that show how the cool special effects were created.&lt;/p&gt;  &lt;p&gt;When he says “in depth”, he’s not kidding. After re-emerging from the Marianas Trench level examination of expression trees to the C# surface level discussion of LINQ, I got a case of “the bends”.&lt;/p&gt;  &lt;p&gt;The book reminds me of Silverlight “Deep Zoom”. As we zoom in and out between high-level syntax descriptions to low-level minutiae, everything is always kept in sharp focus, thanks to the considerable skills of the author.&lt;/p&gt;  &lt;p&gt;I understand Jon Skeet is hard at work on updates to the book for C#4. When that comes out, I wish there would be a free upgrade to the book that I could download (I don’t think that’s going to happen ;) ), but that’s one book that I’m sure will be well worth the price.&lt;/p&gt;  &lt;p&gt;If you’re serious about C#, “C# in Depth” is a must-read.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135118"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135118" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/135118.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/26/135118.aspx</guid>
            <pubDate>Sun, 27 Sep 2009 01:43:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/135118.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/26/135118.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/135118.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/135118.aspx</trackback:ping>
        </item>
        <item>
            <title>Getting Serious About JavaScript</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/21/134994.aspx</link>
            <description>&lt;p&gt;Like many ASP.NET developers, I’ve gotten by for years knowing just enough JavaScript to get by. I’ve spent many frustrating hours cursing the language, when the problem was not really JavaScript (although it has more than its share of weirdness), but my assumption that I knew how it worked, just because it &lt;em&gt;looks like&lt;/em&gt; C#.&lt;/p&gt;  &lt;p&gt;Now, thanks in large part to jQuery, I actually enjoy client-side programming.&lt;/p&gt;  &lt;p&gt;jQuery makes things so much easier (replacing dozens of lines of code that I painstakingly figured out in the past, “Rhino book” at my side), that it almost seems like magic. I don’t trust magic though, so I’ve been making an effort to learn how JavaScript really works, and the best practices for working with it.&lt;/p&gt;  &lt;p&gt;Douglas Crockford’s &lt;a href="http://oreilly.com/catalog/9780596517748/"&gt;“JavaScript: The Good Parts”&lt;/a&gt; should be required reading for any web developer. It’s a short book, and &lt;a href="http://www.videosurf.com/video/javascript-the-good-parts-61213764?vlt=ffext"&gt;this video&lt;/a&gt; is a great summary of the main points.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devlicio.us/blogs/sergio_pereira/archive/2009/07/17/video-wi-ineta-javascript-presentation.aspx"&gt;This presentation by Sergio Pereira&lt;/a&gt; is also a very good overview of JavaScript programming.&lt;/p&gt;  &lt;p&gt;Another very interesting video is &lt;a href="http://www.youtube.com/watch?v=JB6MIV_lHI0"&gt;Learn jQuery with FireBug, jQuerify and SelectorGadget&lt;/a&gt; by Dave Ward, with Craig Shoemaker.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134994"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134994" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/134994.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/21/134994.aspx</guid>
            <pubDate>Tue, 22 Sep 2009 02:32:23 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/134994.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/21/134994.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/134994.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/134994.aspx</trackback:ping>
        </item>
        <item>
            <title>How do you pronounce &amp;ldquo;WPF&amp;rdquo;?</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/19/134931.aspx</link>
            <description>&lt;p&gt;Someone asked this on Stack Overflow: &lt;a title="http://stackoverflow.com/questions/1448995/how-do-you-pronounce-wpf" href="http://stackoverflow.com/questions/1448995/how-do-you-pronounce-wpf"&gt;http://stackoverflow.com/questions/1448995/how-do-you-pronounce-wpf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I pronounce the “W” as in the word “two”, the “P” as in “pneumonia”, and the “F” like the last letter of “off”.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134931"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134931" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/134931.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/19/134931.aspx</guid>
            <pubDate>Sun, 20 Sep 2009 00:04:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/134931.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/19/134931.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/134931.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/134931.aspx</trackback:ping>
        </item>
        <item>
            <title>St. Louis Coders-4-Charities: October 16-18</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/19/134927.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;I’ve heard good things about last year’s Kansas City event, and am excited that we’re doing it in St. Louis. Thanks to the organizers for this great opportunity to help out some good organizations…&lt;/em&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Are you interested in volunteering your time and technical talent to help our community?&lt;/p&gt;
&lt;p&gt;On October 16&lt;sup&gt;th&lt;/sup&gt; through the 18&lt;sup&gt;th&lt;/sup&gt; we have organized a local charity event called Coders 4 Charities.  This event will benefit many St. Louis-area non-profit organizations by providing them IT solutions that would traditionally be outside of their budget or that they might not know are even possible.  We are accomplishing this through the volunteer efforts of talented people like yourself.  We have identified 9 charities in need of support and worked with each of them to identify a tangible project which can be completed over the course of a weekend.  These projects include such things as website redesigns and extensions, internal applications to streamline record-keeping, network configuration and maintenance, automated invoicing, and the online acceptance of donations. &lt;/p&gt;
&lt;p&gt;For us to accomplish our goal of helping our community by helping these organizations, we need your help.  Washington Universities CAIT center has donated the use of their classrooms around the clock from Friday evening October 16&lt;sup&gt;th&lt;/sup&gt; to Sunday evening October 18&lt;sup&gt;th&lt;/sup&gt;.  During this time we will have full access to their computers and internet connections (including wireless).  Each of their classroom computers is already loaded with many of the design and development tools and technologies we use regularly as part of our "day jobs".  Our goal is to gather volunteers who will be organized into teams that will work throughout this weekend to provide these solutions to these organizations. &lt;/p&gt;
&lt;p&gt;We have some generous sponsors who are providing refreshments and meals throughout the whole weekend (i.e. breakfast, lunch and dinner) and we have other sponsors providing some great prizes to be awarded at an awards ceremony on Sunday evening.&lt;/p&gt;
&lt;p&gt;What types of people are we looking for? &lt;/p&gt;
&lt;p&gt;We need many different types of skill sets with expertise in many disparate technologies.  From developers to designers and network engineers to project managers.  It takes a lot of people to implement great solutions and we are open to many people helping out for a good cause.  Most importantly we need enthusiastic people willing to work together with others on a team towards a common goal.  We need people who are willing to wear a lot of hats over short period of time and take the initiative to do what is necessary for your team to successfully help your assigned organization.  &lt;/p&gt;
&lt;p&gt;How can you volunteer?  Please go to our website at &lt;a href="http://www.c4c-stl.org/"&gt;http://www.c4c-stl.org&lt;/a&gt; and read the FAQ for answers to many of the commonly asked questions.   Then, if this sounds like something you are interested in, provide us with some basic information about yourself on our Volunteers page.  If you have any questions about this event that are not answered on our site, please do not hesitate to drop us an email at &lt;a href="mailto:volunteer@c4c-stl.org"&gt;volunteer@c4c-stl.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If your organization is interested in sponsoring our event with food or prizes, please have them contact us at &lt;a href="mailto:sponsors@c4c-stl.org"&gt;sponsors@c4c-stl.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thank you for your support,&lt;/p&gt;
&lt;p&gt;Coders 4 Charities St. Louis Organizers&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="mailto:organizers@c4c-stl.org"&gt;organizers@c4c-stl.org&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134927"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134927" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/134927.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/19/134927.aspx</guid>
            <pubDate>Sat, 19 Sep 2009 12:39:24 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/134927.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/19/134927.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/134927.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/134927.aspx</trackback:ping>
        </item>
        <item>
            <title>Scott Hanselman's 2009 Ultimate Developer and Power Users Tool List for Windows</title>
            <link>http://geekswithblogs.net/brians/archive/2009/09/02/134449.aspx</link>
            <description>&lt;p&gt;Scott has updated his insanely useful list of insanely useful tools.&lt;/p&gt;  &lt;p&gt;If you find something useful there (and it would be hard not to), please consider Scott’s request to make a tax-deductible contribution to the American Diabetes Association.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/tools"&gt;http://www.hanselman.com/tools&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134449"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134449" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/134449.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2009/09/02/134449.aspx</guid>
            <pubDate>Wed, 02 Sep 2009 10:50:52 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/134449.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2009/09/02/134449.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/134449.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/134449.aspx</trackback:ping>
        </item>
        <item>
            <title>The origin of the names &amp;quot;IronPython&amp;quot; and &amp;quot;IronRuby&amp;quot;</title>
            <link>http://geekswithblogs.net/brians/archive/2008/06/14/122861.aspx</link>
            <description>&lt;p&gt;I &lt;a href="http://geekswithblogs.net/brians/archive/2007/08/04/114397.aspx" target="_blank"&gt;wondered a while ago&lt;/a&gt; where the "Iron" names came from.&lt;/p&gt;  &lt;p&gt;According to a &lt;a href="http://www.nxtgenug.net/Interview.aspx?InterviewID=253" target="_blank"&gt;NxtGenUG interview with Michael Foord&lt;/a&gt;, John Lam says that IRON can be reverse-engineered to stand for "It Runs On .Net", which is cool, but I finally found the real story in an &lt;a href="http://port25.technet.com/archive/2006/06/01/2565.aspx" target="_blank"&gt;interview on the "Port 25: The Open Source Community at Microsoft" site&lt;/a&gt;, in which IronPython creator Jim Hugunin says:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;I'll give you the story, but I'll give you the short version 'cause it's not very good. &lt;/p&gt;    &lt;p&gt;At the time, I had a consulting company called "Want of a Nail Software". "Want of a Nail" is based on a children's poem. It's about the importance of small things. I've always kind of believed in the importance of small things. Part of the story of IronPython's actual performance is it wasn't one big thing - Everybody wants to know "What was the one big thing?" There were some big things, but most of it was all the small things - paying attention to performance in every place. &lt;/p&gt;    &lt;p&gt;So, that was the consulting company and "Iron" seemed to match. &lt;/p&gt;    &lt;p&gt;There were some obvious names: Python.Net, Python#, nPython - All of those were taken. All of the URLs for those were registered. &lt;/p&gt;    &lt;p&gt;I didn't want to reuse any of those names, so "Iron" was just kind of a name that appealed to me at a visceral level - I like the feeling of "IronPython". &lt;/p&gt;    &lt;p&gt;There's a little bit of "Iron Chef" in it, although I'm always reluctant to admit that.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;About the "Python" part: According to &lt;a href="http://en.wikipedia.org/wiki/Python_(programming_language)" target="_blank"&gt;the Wikipedia article on Python&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;An important goal of the Python developers is making Python fun to use. This is reflected in the origin of the name (based on the television series Monty Python's Flying Circus), in the common practice of using Monty Python references in example code, and in an occasionally playful approach to tutorials and reference materials. For example, the metasyntactic variables often used in Python literature are "spam" and "eggs", instead of the traditional "foo" and "bar".&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;...and &lt;a href="http://en.wikipedia.org/wiki/Ruby_(programming_language)" target="_blank"&gt;Wikipedia says this about the name "Ruby"&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;"Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl programming language.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;...which led me to the &lt;a href="http://en.wikipedia.org/wiki/Perl" target="_blank"&gt;Perl article&lt;/a&gt;, where I discovered that it was originally named "Pearl".&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I think I'll stop now before I digress into a rant about how "C#" is a cool name but J# and X# were doomed to failure not for technical reasons, but for musical ones (unless Microsoft has a much larger piano keyboard than I do).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122861"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122861" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/122861.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/06/14/122861.aspx</guid>
            <pubDate>Sat, 14 Jun 2008 14:08:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122861.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/06/14/122861.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122861.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122861.aspx</trackback:ping>
        </item>
        <item>
            <title>.NET Rocks! - 423 hours and counting...</title>
            <category>.NET</category>
            <link>http://geekswithblogs.net/brians/archive/2008/06/12/122827.aspx</link>
            <description>&lt;p&gt;Congratulations to Carl Franklin and Richard Campbell on the upcoming 350th episode of .NET Rocks!&lt;/p&gt;
&lt;p&gt; I can't tell you how many hours of education &amp;amp; enjoyment DNR has provided me over the years.&lt;/p&gt;
&lt;p&gt; ...Well, actually, I can...&lt;/p&gt;
&lt;p&gt; I discovered the show around episode 10 or so, quickly caught up with the previous shows, and haven't missed one since.&lt;/p&gt;
&lt;p&gt; I added up the show runtimes, and the total is approximately 423 hours, or almost 18 days! &lt;/p&gt;
&lt;p&gt; A lot of people listen to DNR on their commute, and there's enough DNR that you could listen to it the entire time on a 27,000 mile road trip from Vancouver BC to New London CT and back by way of San Diego, Miami, New York City, Bangor, Yakima, Reno, Vegas, and St. Louis. &lt;/p&gt;
&lt;p&gt;(Here's the map, if anyone would like to make that trip - Good luck paying for the gas: &lt;a style="FONT-WEIGHT: bold" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://shrinkster.com/z6h"&gt;http://shrinkster.com/z6h&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt; &lt;img height="383" width="640" alt="" src="/images/geekswithblogs_net/brians/3864/r_DNRTrip.jpg" /&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122827"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122827" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/122827.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2008/06/12/122827.aspx</guid>
            <pubDate>Thu, 12 Jun 2008 18:16:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/122827.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2008/06/12/122827.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/122827.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/122827.aspx</trackback:ping>
        </item>
    </channel>
</rss>