<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17855063</id><updated>2011-11-27T16:54:33.715-07:00</updated><category term='Google Maps'/><category term='Windows Mobile'/><category term='Vista'/><category term='Visual Studio'/><category term='TV'/><category term='Hack'/><category term='Regular Expressions'/><category term='Web Services'/><category term='Music'/><category term='.Net'/><category term='XML'/><category term='Smoke and Mirrors'/><category term='BlackBerry'/><category term='Word'/><category term='Idea'/><category term='Favorites'/><category term='Shortcut'/><category term='Google'/><category term='ASP.NET'/><category term='IRS'/><category term='User-interface'/><category term='Politics'/><category term='C#'/><category term='Utility'/><category term='SCRUM'/><category term='Development'/><category term='Online Gaming'/><category term='LANDesk'/><category term='css'/><category term='UAC'/><category term='tips'/><category term='Beyond Compare'/><category term='Google Docs and Spreadsheets'/><category term='Hardware'/><category term='Rant'/><category term='Office 2007'/><category term='Blogs'/><category term='JavaScript'/><category term='GMail'/><category term='Handheld Manager'/><category term='Funny'/><title type='text'>Elegant Development</title><subtitle type='html'>Just my stuff..</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>87</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17855063.post-5612619033480411083</id><published>2011-06-24T10:51:00.001-07:00</published><updated>2011-06-24T10:51:18.488-07:00</updated><title type='text'>Visual Studio macro to hide/show the Output window after a build…</title><content type='html'>&lt;p&gt;I do not like the behaviors allowed in Visual Studio regarding showing the Errors List and Output window during a build. So, I finally created a macro to get the exact behavior I want.. And, I love it!&lt;/p&gt;  &lt;p&gt;Step #1:&lt;/p&gt;  &lt;p&gt;First off, you need to turn off two options in Visual Studio settings, under &lt;font face="Consolas"&gt;Projects and Solutions&lt;/font&gt; | &lt;font face="Consolas"&gt;General&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;Un-check the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Always show Error Lis&lt;u&gt;t&lt;/u&gt; if build finishes with errors&lt;/li&gt;    &lt;li&gt;Show &lt;u&gt;O&lt;/u&gt;utput window when build starts&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The script does the following:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;When a build starts it (optionally) shows the Output window (line #9).&lt;/li&gt;    &lt;li&gt;When an individual project is finished compiling, notify the user (line #22) and (optionally) stop building any further projects (line #25).&lt;/li&gt;    &lt;li&gt;When the entire build has finished and one or more projects failed, display the Output window (line #35). If there were no failures, show and then hide the Output window (line #38) and notify the user.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Note: When the build finishes successfully, the reason I show and then hide the Output window, is because it may already be open and I want to be sure I close it. So far, I haven’t found an easy way to close the Output window, when it may or may not have focus in the Visual Studio IDE. As it is, I only rarely see it flicker open then closed. If you have any ideas, please let me know at &lt;a href="mailto:kody@bricksoft.com"&gt;kody@bricksoft.com&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;Read the comments in the code below for details on how its done!&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; BuildFailed &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt; = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;' The build has started. Could be one or more projects or the whole solution.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; BuildEvents_OnBuildBegin() &lt;span class="kwrd"&gt;Handles&lt;/span&gt; BuildEvents.OnBuildBegin&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &lt;span class="rem"&gt;' Reset the global flag.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        BuildFailed = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="rem"&gt;' Optionally, show the Output window.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="rem"&gt;'DTE.ExecuteCommand(&amp;quot;View.Output&amp;quot;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="rem"&gt;' The current project has finished building.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; BuildEvents_OnBuildProjConfigDone(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Project &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; ProjectConfig &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Platform &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; SolutionConfig &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Success &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;) _&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;Handles&lt;/span&gt; BuildEvents.OnBuildProjConfigDone&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; (&lt;span class="kwrd"&gt;Not&lt;/span&gt; Success) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            &lt;span class="rem"&gt;' Set the global flag.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            BuildFailed = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="rem"&gt;' Notify the user the build failed.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            NotifySuccess(&lt;span class="kwrd"&gt;False&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            &lt;span class="rem"&gt;' Optionally, you can cancel any further project builds.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            &lt;span class="rem"&gt;'DTE.ExecuteCommand(&amp;quot;Build.Cancel&amp;quot;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    &lt;span class="rem"&gt;' The build is finished. Show or hide the Output window based on &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    &lt;span class="rem"&gt;' whether it was successful or not.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; BuildEvents_OnBuildDone(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Scope &lt;span class="kwrd"&gt;As&lt;/span&gt; EnvDTE.vsBuildScope, _&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Action &lt;span class="kwrd"&gt;As&lt;/span&gt; EnvDTE.vsBuildAction) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; BuildEvents.OnBuildDone&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; BuildFailed &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;            &lt;span class="rem"&gt;' Show the output window.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;            DTE.ExecuteCommand(&lt;span class="str"&gt;&amp;quot;View.Output&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;            &lt;span class="rem"&gt;' The build succeeded, so hide the Output window.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;            DTE.ExecuteCommand(&lt;span class="str"&gt;&amp;quot;View.Output&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;            DTE.ExecuteCommand(&lt;span class="str"&gt;&amp;quot;Window.CloseToolWindow&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;            &lt;span class="rem"&gt;' Notify the user the build finished successfully.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;            NotifySuccess(&lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; NotifySuccess(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Success &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; Success &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;            &lt;span class="rem"&gt;'Beep()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;            &lt;span class="rem"&gt;'Threading.Thread.Sleep(250)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;            &lt;span class="rem"&gt;'Beep()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;        &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            &lt;span class="rem"&gt;'Beep()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;            &lt;span class="rem"&gt;'Threading.Thread.Sleep(250)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;            &lt;span class="rem"&gt;'Beep()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;            &lt;span class="rem"&gt;'Threading.Thread.Sleep(250)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;            &lt;span class="rem"&gt;'Beep()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;            &lt;span class="rem"&gt;'Threading.Thread.Sleep(250)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;            &lt;span class="rem"&gt;'Beep()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-5612619033480411083?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/5612619033480411083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=5612619033480411083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/5612619033480411083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/5612619033480411083'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2011/06/visual-studio-macro-to-hideshow-output.html' title='Visual Studio macro to hide/show the Output window after a build…'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-965020620403040366</id><published>2010-10-07T12:17:00.000-07:00</published><updated>2010-10-07T12:17:31.179-07:00</updated><title type='text'>How to ensure Outlook is already running..</title><content type='html'>&lt;style type="text/css"&gt;span {font-family: 'Consolas';font-size: 10pt;color: #000000;}.sc0 {}.sc2 {color: #38b86b;}.sc4 {}.sc5 {color: #0080ff;}.sc11 {}.sc12 {color: #38b86b;}.sc13 {color: #38b86b;}&lt;/style&gt;  &lt;br /&gt;When I am working, I like to close applications that I am not currently using. This conserves memory (not important) and eliminates desktop clutter (very important). Too often however, Outlook gets closed down in the process. This generally only happens when I need to be reminded of a meeting or whenever I receive important/timely emails.&lt;br /&gt;&lt;br /&gt;Here is a simple AutoHotKey (AHK) script that will ensure that Outlook is always open and running.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;OutlookStayAlive.ahk&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="float: left; white-space: pre; line-height: 1; background: #FFFFFF; "&gt;&lt;span class="sc2"&gt;; &lt;/span&gt;&lt;br /&gt;&lt;span class="sc2"&gt;; Ensure Microsoft Outlook is running&lt;/span&gt;&lt;br /&gt;&lt;span class="sc2"&gt;; Author: Kody Brown (kody.brown@venafi.com)&lt;/span&gt;&lt;br /&gt;&lt;span class="sc2"&gt;; Created: Sept 2, 2010&lt;/span&gt;&lt;br /&gt;&lt;span class="sc2"&gt;; Copyright: Free&lt;/span&gt;&lt;br /&gt;&lt;span class="sc2"&gt;; &lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="sc5"&gt;#Persistent&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc11"&gt;SetTimer,&lt;/span&gt; &lt;span class="sc11"&gt;OutlookStayAlive,&lt;/span&gt; &lt;span class="sc4"&gt;5000&lt;/span&gt;&lt;br /&gt;&lt;span class="sc5"&gt;Return&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="sc11"&gt;OutlookStayAlive:&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc5"&gt;If&lt;/span&gt; &lt;span class="sc11"&gt;WinExist("ahk_class&lt;/span&gt; &lt;span class="sc11"&gt;rctrl_renwnd32")&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc12"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="sc2"&gt;;WinActivate&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc13"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc5"&gt;Else&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc12"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="sc11"&gt;IfExist,&lt;/span&gt; &lt;span class="sc11"&gt;C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office12\Outlook.exe&lt;/span&gt;&lt;br /&gt;         &lt;span class="sc11"&gt;Run,&lt;/span&gt; &lt;span class="sc11"&gt;"C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office12\Outlook.exe"&lt;/span&gt;&lt;br /&gt;      &lt;span class="sc5"&gt;Else&lt;/span&gt; &lt;span class="sc11"&gt;IfExist,&lt;/span&gt; &lt;span class="sc11"&gt;C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files&lt;/span&gt; &lt;span class="sc11"&gt;(x86)\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office12\Outlook.exe&lt;/span&gt;&lt;br /&gt;         &lt;span class="sc11"&gt;Run,&lt;/span&gt; &lt;span class="sc11"&gt;"C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files&lt;/span&gt; &lt;span class="sc11"&gt;(x86)\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office12\Outlook.exe"&lt;/span&gt;&lt;br /&gt;      &lt;span class="sc5"&gt;Else&lt;/span&gt; &lt;span class="sc11"&gt;IfExist,&lt;/span&gt; &lt;span class="sc11"&gt;C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office11\Outlook.exe&lt;/span&gt;&lt;br /&gt;         &lt;span class="sc11"&gt;Run,&lt;/span&gt; &lt;span class="sc11"&gt;"C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office11\Outlook.exe"&lt;/span&gt;&lt;br /&gt;      &lt;span class="sc5"&gt;Else&lt;/span&gt; &lt;span class="sc11"&gt;IfExist,&lt;/span&gt; &lt;span class="sc11"&gt;C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files&lt;/span&gt; &lt;span class="sc11"&gt;(x86)\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office11\Outlook.exe&lt;/span&gt;&lt;br /&gt;         &lt;span class="sc11"&gt;Run,&lt;/span&gt; &lt;span class="sc11"&gt;"C:\Program&lt;/span&gt; &lt;span class="sc11"&gt;Files&lt;/span&gt; &lt;span class="sc11"&gt;(x86)\Microsoft&lt;/span&gt; &lt;span class="sc11"&gt;Office\Office11\Outlook.exe"&lt;/span&gt;&lt;br /&gt;      &lt;span class="sc5"&gt;Return&lt;/span&gt;&lt;br /&gt;   &lt;span class="sc13"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="sc5"&gt;Return&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-965020620403040366?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/965020620403040366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=965020620403040366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/965020620403040366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/965020620403040366'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2010/10/how-to-ensure-outlook-is-already.html' title='How to ensure Outlook is already running..'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-777693948778938492</id><published>2009-09-23T07:59:00.000-07:00</published><updated>2009-09-23T13:15:57.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Customize how search results are displayed</title><content type='html'>&lt;p&gt;I created a simple utility that can customize the Visual Studio Find Results output. I think using it should be pretty self-explanatory..&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_RDJEOHTGP8U/SrqB9x1C1PI/AAAAAAAAAGU/G_ZkKM4Lw1M/s1600-h/VSFindResultsEditor8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VSFindResultsEditor" border="0" alt="VSFindResultsEditor" src="http://lh5.ggpht.com/_RDJEOHTGP8U/SrqB-zEvsmI/AAAAAAAAAGY/5mcrIdqv_sk/VSFindResultsEditor_thumb6.png?imgmax=800" width="509" height="210" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I wanted something new to do this morning, what can I say!? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://dl.getdropbox.com/u/123747/blog/VSFindResultsEditor.exe"&gt;Download it here!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can also check out Sara Ford’s blog for all the glorious details about customizing the Visual Studio Find Results output:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx" href="http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx"&gt;http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-777693948778938492?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/777693948778938492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=777693948778938492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/777693948778938492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/777693948778938492'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/09/customize-how-search-results-are.html' title='Customize how search results are displayed'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_RDJEOHTGP8U/SrqB-zEvsmI/AAAAAAAAAGY/5mcrIdqv_sk/s72-c/VSFindResultsEditor_thumb6.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-6424754533289098285</id><published>2009-09-23T07:09:00.001-07:00</published><updated>2009-09-23T07:09:56.857-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Excellent Visual Studio tips roundup by Sara Ford</title><content type='html'>&lt;p&gt;&lt;a title="http://blogs.msdn.com/saraford/archive/2009/09/09/teched-australia-25-visual-studio-2008-ide-tips.aspx" href="http://blogs.msdn.com/saraford/archive/2009/09/09/teched-australia-25-visual-studio-2008-ide-tips.aspx"&gt;http://blogs.msdn.com/saraford/archive/2009/09/09/teched-australia-25-visual-studio-2008-ide-tips.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The ones I found most useful (or didn’t already know) include:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Prevent copying blank lines with Ctrl+C&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Look in Tools - Options - Text Editor - All Languages - General. Unchecking 'Apply Cut or Copy commands to blank lines when there is no selection' prevents copying a blank line into the clipboard.&amp;#160; How did I ever miss this checkbox!?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Incremental Search&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This allows me to jump to the next match as I type it out. I LOVE it!!&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; 1. Press Ctrl+I   &lt;br /&gt;&amp;#160;&amp;#160; 2. Start typing the text you are searching for.&amp;#160; note: you'll see the cursor jump to the first match, highlighting the current search string.    &lt;br /&gt;&amp;#160;&amp;#160; 3. Press Ctrl+I again to jump to the next occurrence of the search string    &lt;br /&gt;&amp;#160;&amp;#160; 4. (advanced tip) Press Ctrl+Shift+I to search backwards    &lt;br /&gt;&amp;#160;&amp;#160; 5. To stop searching, press ESC&lt;/p&gt;  &lt;p&gt;You’ll note that it is case-sensitive, unfortunately. I’ll have to look for a way to change that..&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And, my total favorite is..&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Customize how search results are displayed&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is one of the most irritating things ever about Visual Studio. The Find Results window is almost always filled with only the paths of the found files, instead of the line details. I always have to scroll to the right to see the details. Here is the direct link to the article, bypassing the roundup.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx" href="http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx"&gt;http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-6424754533289098285?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/6424754533289098285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=6424754533289098285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6424754533289098285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6424754533289098285'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/09/excellent-visual-studio-tips-roundup-by.html' title='Excellent Visual Studio tips roundup by Sara Ford'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-4211038107678591060</id><published>2009-09-18T13:58:00.001-07:00</published><updated>2009-09-18T13:58:25.066-07:00</updated><title type='text'>Build macro for web projects</title><content type='html'>&lt;p&gt;Using this macro and batch file you can map a keyboard shortcut and/or a toolbar button in Visual Studio to restart IIS and build the selected project asynchronously.&lt;/p&gt;  &lt;p&gt;1. Create a batch file that includes the following:&lt;/p&gt;  &lt;pre&gt;@echo off &lt;br /&gt;net stop w3svc &lt;br /&gt;net start w3svc&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For projects that tend to get hung up more frequently in IIS, you can replace the 'net stop' line above with net 'stop &lt;strong&gt;iisadmin&lt;/strong&gt;' instead. (Don’t change the ‘net start’ line.)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2. Create a new macro project that includes events (or add a new module in existing macro project).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3. Paste the following code into the module, inserting the path to the new batch file:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; BuildSelectedWebProject() &lt;br /&gt;   &lt;span style="color: #008000"&gt;' restart iis &lt;/span&gt;&lt;br /&gt;   Shell(&amp;quot;&lt;span style="color: #8b0000"&gt;&amp;lt;your batch file path&amp;gt;&lt;/span&gt;&amp;quot;, AppWinStyle.MinimizedNoFocus, &lt;span style="color: #0000ff"&gt;False&lt;/span&gt;) &lt;br /&gt;   &lt;span style="color: #008000"&gt;' start the build &lt;/span&gt;&lt;br /&gt;   DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Build.BuildSelection&lt;/span&gt;&amp;quot;) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;4. Map a keyboard shortcut or toolbar button to the new macro: Macros.&amp;lt;Macro Project Name&amp;gt;.BuildSelectedWebProject&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Build Solution&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Optionally, you can also re-map Ctrl+Shift+B (Build Solution) to the following if desired:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; BuildSolution() &lt;br /&gt;   &lt;span style="color: #008000"&gt;' restart iis &lt;/span&gt;&lt;br /&gt;   Shell(&amp;quot;&lt;span style="color: #8b0000"&gt;&amp;lt;your batch file path&amp;gt;\iisrestart.bat&lt;/span&gt;&amp;quot;, AppWinStyle.MinimizedNoFocus, &lt;span style="color: #0000ff"&gt;False&lt;/span&gt;) &lt;br /&gt;   &lt;span style="color: #008000"&gt;' start the build &lt;/span&gt;&lt;br /&gt;   DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Build.&lt;strong&gt;BuildSolution&lt;/strong&gt;&lt;/span&gt;&amp;quot;) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-4211038107678591060?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/4211038107678591060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=4211038107678591060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4211038107678591060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4211038107678591060'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/09/build-macro-for-web-projects.html' title='Build macro for web projects'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-4523674407276598818</id><published>2009-09-18T12:37:00.001-07:00</published><updated>2009-09-18T14:22:14.872-07:00</updated><title type='text'>Visual Studio 2008 Macro Fun</title><content type='html'>&lt;p&gt;Here are a few macros that I use, that I thought might be of use to others. They should be fairly easy to set up in your environment. I’m always excited to hear about new macros and plugins and other time-saving functionality for Visual Studio, so if you have any – please let me know!!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Misc Built-in Macros&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Here are some basic macros that came with Visual Studio 2008 (and VS 2005) that are very useful and easily map to your favorite keyboard shortcut(s).&lt;/p&gt;  &lt;pre&gt;Macros.Samples.Accessibility.&lt;strong&gt;IncreaseTextEditorFontSize&lt;/strong&gt;&lt;br /&gt;Macros.Samples.Accessibility.&lt;strong&gt;DecreaseTextEditorFontSize&lt;/strong&gt; &lt;br /&gt;Macros.Samples.Accessibility.&lt;strong&gt;UpdateTextEditorFontSizeToMatchDisplayProperties&lt;/strong&gt; &lt;br /&gt;Macros.Samples.Utilities.&lt;strong&gt;TurnOnLineNumbers&lt;/strong&gt; &lt;br /&gt;Macros.Samples.Utilities.&lt;strong&gt;TurnOffLineNumbers&lt;/strong&gt; &lt;br /&gt;Macros.Samples.VSEditor.&lt;strong&gt;BeginningOfFunction&lt;/strong&gt; &lt;br /&gt;Macros.Samples.VSEditor.&lt;strong&gt;LineEmUp&lt;/strong&gt; (Good for aligning variable assignments) &lt;br /&gt;Macros.Samples.DevStudio6Editor.&lt;strong&gt;AutoCompleteFromFile&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Format Source Code&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I map F2 to the standard Edit.FormatDocument command and Ctrl+F2 to the FormatCSharp macro method.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; FormatCSharp()&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;' Remove and sort using statements if PowerCommands is installed.&lt;/span&gt;&lt;br /&gt;      DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Edit.RemoveAndSort&lt;/span&gt;&amp;quot;)&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Catch&lt;/span&gt; ex &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Exception&lt;br /&gt;      &lt;br /&gt;   &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt;&lt;br /&gt;      DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Macros.Samples.VSEditor.FixLineEnds&lt;/span&gt;&amp;quot;)&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Catch&lt;/span&gt; ex &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Exception&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Edit.FormatDocument&lt;/span&gt;&amp;quot;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Attach to IIS Worker Processes&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I map Ctrl+P to this macro, replacing the default Print Current Document shortcut.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; MacroAttachToAllWebProcesses() &lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt; &lt;br /&gt;      &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; dbg2 &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; EnvDTE80.Debugger2 = DTE.Debugger &lt;br /&gt;      &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; trans &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; EnvDTE80.Transport = dbg2.Transports.Item(&amp;quot;&lt;span style="color: #8b0000"&gt;Default&lt;/span&gt;&amp;quot;) &lt;br /&gt;      &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; dbgeng(3) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; EnvDTE80.Engine &lt;br /&gt;&lt;br /&gt;      dbgeng(0) = trans.Engines.Item(&amp;quot;&lt;span style="color: #8b0000"&gt;T-SQL&lt;/span&gt;&amp;quot;) &lt;br /&gt;      dbgeng(1) = trans.Engines.Item(&amp;quot;&lt;span style="color: #8b0000"&gt;T-SQL&lt;/span&gt;&amp;quot;) &lt;br /&gt;      dbgeng(2) = trans.Engines.Item(&amp;quot;&lt;span style="color: #8b0000"&gt;Managed&lt;/span&gt;&amp;quot;) &lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;' Use . for local machine or type machine name &lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; theProcess &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; EnvDTE80.Process2 &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; dbg2.GetProcesses(trans, &amp;quot;&lt;span style="color: #8b0000"&gt;.&lt;/span&gt;&amp;quot;) &lt;br /&gt;         &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; theProcess.Name.Contains(&amp;quot;&lt;span style="color: #8b0000"&gt;aspnet_wp.exe&lt;/span&gt;&amp;quot;) &lt;span style="color: #0000ff"&gt;Or&lt;/span&gt; theProcess.Name.Contains(&amp;quot;&lt;span style="color: #8b0000"&gt;w3wp.exe&lt;/span&gt;&amp;quot;) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; &lt;br /&gt;            theProcess.Attach2(dbgeng) &lt;br /&gt;         &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Catch&lt;/span&gt; ex &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.Exception &lt;br /&gt;      MsgBox(ex.Message) &lt;br /&gt;   &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Try&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Solution Events&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #008000"&gt;' Automatically close all documents when the solution is closed.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; SolutionEvents_BeforeClosing() &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; SolutionEvents.BeforeClosing&lt;br /&gt;   DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Window.CloseAllDocuments&lt;/span&gt;&amp;quot;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Build Events&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #008000"&gt;' A project failed to compile, so cancel remaining and beep&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; BuildEvents_OnBuildProjConfigDone(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; Project &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; ProjectConfig &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; Platform &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; SolutionConfig &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; Success &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Boolean&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; BuildEvents.OnBuildProjConfigDone&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Success = &lt;span style="color: #0000ff"&gt;False&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;      DTE.ExecuteCommand(&amp;quot;&lt;span style="color: #8b0000"&gt;Build.Cancel&lt;/span&gt;&amp;quot;)&lt;br /&gt;      &lt;span style="color: #008000"&gt;' System.Windows.Forms.MessageBox.Show(&amp;quot;Build failed!&amp;quot;)&lt;/span&gt;&lt;br /&gt;      Beep()&lt;br /&gt;      Threading.Thread.Sleep(500)&lt;br /&gt;      Beep()&lt;br /&gt;      Threading.Thread.Sleep(500)&lt;br /&gt;      Beep()&lt;br /&gt;      Threading.Thread.Sleep(500)&lt;br /&gt;      Beep()&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;' The build finished successfully&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; BuildEvents_OnBuildDone(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; Scope &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; EnvDTE.vsBuildScope, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; Action &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; EnvDTE.vsBuildAction) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; BuildEvents.OnBuildDone&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; failed) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;' System.Windows.Forms.MessageBox.Show(&amp;quot;Build is complete!&amp;quot;)&lt;/span&gt;&lt;br /&gt;      Beep()&lt;br /&gt;      Threading.Thread.Sleep(250)&lt;br /&gt;      Beep()&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-4523674407276598818?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/4523674407276598818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=4523674407276598818' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4523674407276598818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4523674407276598818'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/09/visual-studio-2008-macro-fun.html' title='Visual Studio 2008 Macro Fun'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-2308350240700206610</id><published>2009-07-21T22:02:00.000-07:00</published><updated>2009-07-21T22:02:00.466-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Simple Visual Studio 2005 regular expression to swap variable assignments</title><content type='html'>&lt;style&gt;&lt;br /&gt;&lt;br /&gt;table.findreplace { border-right: #ccc 1px solid; border-bottom: #ccc 1px solid; margin:10px; }&lt;br /&gt;table.findreplace td { border-left: #ccc 1px solid; border-top: #ccc 1px solid; font-family: consolas,courier new; padding: 3px 12px 3px 6px; }&lt;br /&gt;table.findreplace td.label { background-color: #eee; }&lt;/style&gt;Here is a simple regular expression to use in Visual Studio 2005 to swap the variable/object and assignment.   &lt;table class="findreplace" border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td class="label"&gt;Find What:&lt;/td&gt;        &lt;td&gt;mySettings.{.+} = {.+};&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="label"&gt;Replace With:&lt;/td&gt;        &lt;td&gt;\2 = mySettings.\1;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-2308350240700206610?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/2308350240700206610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=2308350240700206610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2308350240700206610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2308350240700206610'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/07/simple-visual-studio-2005-regular.html' title='Simple Visual Studio 2005 regular expression to swap variable assignments'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-1530961070604295072</id><published>2009-07-16T10:57:00.001-07:00</published><updated>2009-07-16T10:57:13.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Collapse folders and projects in Visual Studio</title><content type='html'>&lt;p&gt;I consider the &lt;a href="http://code.msdn.microsoft.com/PowerCommands"&gt;PowerCommands for Visual Studio 2008&lt;/a&gt; invaluable. And, the collapse all feature is certainly one of my most used features. However, if a solution folder is already collapsed, the projects underneath are skipped. &lt;/p&gt;  &lt;p&gt;So, I found a great macro for collapsing all solution folders and their projects, regardless of whether or not the parent solution folder(s) are open or closed. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/scottkuhl/archive/2007/04/09/111195.aspx"&gt;Visual Studio 2005 Collapse All Macro&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;(yes, it works for Visual Studio 2008, what I primarily use)&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For convenience, here is the macro source code:&lt;/p&gt;  &lt;pre&gt;    &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; CollapseAll()&lt;br /&gt;&lt;br /&gt;        ' &lt;span style="color: #0000ff"&gt;Get&lt;/span&gt; the the Solution Explorer tree&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; solutionExplorer As UIHierarchy&lt;br /&gt;        solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()&lt;br /&gt;&lt;br /&gt;        ' Check &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; there &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; any open solution&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; (solutionExplorer.UIHierarchyItems.Count = 0) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;            Return&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        ' &lt;span style="color: #0000ff"&gt;Get&lt;/span&gt; the top node (the name of the solution)&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; rootNode As UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1)&lt;br /&gt;        rootNode.DTE.SuppressUI = True&lt;br /&gt;&lt;br /&gt;        ' Collapse &lt;span style="color: #0000ff"&gt;each&lt;/span&gt; project node&lt;br /&gt;        Collapse(rootNode, solutionExplorer)&lt;br /&gt;&lt;br /&gt;        ' &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; the solution node, &lt;span style="color: #0000ff"&gt;or&lt;/span&gt; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; when you click &lt;br /&gt;        ' &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; the solution window&lt;br /&gt;        ' scrollbar, it will synchronize the open document &lt;br /&gt;        ' &lt;span style="color: #0000ff"&gt;with&lt;/span&gt; the tree &lt;span style="color: #0000ff"&gt;and&lt;/span&gt; pop&lt;br /&gt;        ' out the corresponding node which &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; probably &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; what you want.&lt;br /&gt;&lt;br /&gt;        rootNode.&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt;(vsUISelectionType.vsUISelectionTypeSelect)&lt;br /&gt;        rootNode.DTE.SuppressUI = False&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Collapse(ByVal item As UIHierarchyItem, ByRef solutionExplorer As UIHierarchy)&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; innerItem As UIHierarchyItem &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; item.UIHierarchyItems&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; innerItem.UIHierarchyItems.Count &amp;gt; 0 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                ' Re-cursive &lt;span style="color: #0000ff"&gt;call&lt;/span&gt;&lt;br /&gt;                Collapse(innerItem, solutionExplorer)&lt;br /&gt;&lt;br /&gt;                ' Collapse&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; innerItem.UIHierarchyItems.Expanded &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;                    innerItem.UIHierarchyItems.Expanded = False&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; innerItem.UIHierarchyItems.Expanded = True &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;                        ' Bug &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; VS 2005&lt;br /&gt;                        innerItem.&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt;(vsUISelectionType.vsUISelectionTypeSelect)&lt;br /&gt;                        solutionExplorer.DoDefaultAction()&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-1530961070604295072?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/1530961070604295072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=1530961070604295072' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/1530961070604295072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/1530961070604295072'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/07/collapse-folders-and-projects-in-visual.html' title='Collapse folders and projects in Visual Studio'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-101551136341028857</id><published>2009-01-13T07:46:00.000-07:00</published><updated>2009-01-13T10:53:35.377-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCRUM'/><title type='text'>SCRUM vs. Waterfall</title><content type='html'>&lt;p&gt;I didn’t realize how frustrating it would be to take a new job that doesn’t do SCRUM. I was told it was an iterative development process. But, honestly, it’s more like old-fashioned waterfall than anything else.&lt;/p&gt;  &lt;p&gt;I’ve had a few discussions revolving around development methodologies but there is nothing except anti-sentiment and near resentment for even bringing up any way to do things better! What’s the deal?&lt;/p&gt;  &lt;p&gt;Why is it so hard for people to even consider trying it or even spending a couple lunches doing some practice exercises?&lt;/p&gt;  &lt;p&gt;I guarantee it’s &lt;em&gt;what they want&lt;/em&gt;. They just don’t know it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-101551136341028857?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/101551136341028857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=101551136341028857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/101551136341028857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/101551136341028857'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2009/01/scrum-vs-waterfall.html' title='SCRUM vs. Waterfall'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-5007103512395655506</id><published>2008-10-30T14:24:00.002-07:00</published><updated>2008-10-30T14:26:22.890-07:00</updated><title type='text'>Obama vs. Christians</title><content type='html'>1.&amp;nbsp; Obama is undecided on whether life begins at conception - Saddleback Church Forum Aug 16th, 2008. Obama voted against born alive protections for abortion survivors four times, and voted against a ban on partial-birth abortion in the Illinois state senate&lt;br /&gt;&lt;br /&gt;SOURCES: &lt;a href="http://www.bornalivetruth.org/"&gt;http://www.bornalivetruth.org&lt;/a&gt;&lt;br /&gt;Audacity of Hope written by Barack Obama &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp; Obama has pledged to Planned Parenthood to sign The Freedom of Choice Act, a law which would cancel every state, federal, and local regulation of abortion, no matter how modest or reasonable.&amp;nbsp; It would even abolish all state restrictions on government funding for abortions.&amp;nbsp; Catholics that pay income tax will be paying an abortionist to perform an abortion. It would also abolish state laws that protect Catholic doctors and nurses from losing their jobs if they refuse to participate in abortions.&amp;nbsp; It would abolish requirements for parental notification and informed consent for mothers who consider the procedure. – Obama speech to Planned Parenthood, July 17, 2007&lt;br /&gt;He is endorsed by pro-Abortion industry leader Planned Parenthood and has a 100% NARAL voting record. - &lt;br /&gt;&lt;br /&gt;SOURCES: &lt;a href="http://www.plannedparenthoodaction.org/campaigns/barack-obama-endorsement-111.htm"&gt;http://www.plannedparenthoodaction.org/campaigns/barack-obama-endorsement-111.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.naral.org/elections/statements/obama.html"&gt;http://www.naral.org/elections/statements/obama.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp; Obama would repeal the Mexico City policy, which bars federal funding for international nongovernmental organizations involved in abortion-related services and would pit the US against the [Christians everywhere] on the international fight against abortion.&lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php"&gt;http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp; He strongly supports the 1973 Supreme Court decision on abortion rights and says he will oppose any constitutional measure to overturn it. - &lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php"&gt;http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.&amp;nbsp; Obama has pledged to choose Justices with a Pro Abortion agenda and he voted against Roberts and Alito.&lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php"&gt;http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.&amp;nbsp; Obama voted no on notifying parents of minors who get out-of-state abortions and prohibiting minors crossing state lines for abortion. &lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php%20"&gt;http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7.&amp;nbsp; Obama supports the destruction of embryos for experimentation and voted to expand research to more embryonic stem cell lines.&lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://obama.senate.gov/press/070411-obama_renews_su/"&gt;http://obama.senate.gov/press/070411-obama_renews_su/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8.&amp;nbsp; He voted yes on $100M to fund contraceptives for teens and sponsored bill providing contraceptives for low-income women.&lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php"&gt;http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9.&amp;nbsp; Voted no on defining unborn child as eligible for SCHIP a program that gives funds to states in order to provide health insurance to families with children.&lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.ncregister.com/site/article/15942"&gt;http://www.ncregister.com/site/article/15942&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10.&amp;nbsp; He opposed the federal marriage amendment in 2006 and also favors repealing the 1996 Defense of Marriage Act, which gives a state the right not to recognize same-sex marriages performed in another state.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php"&gt;http://www.nationaljournal.com/njmagazine/nj_20080719_6257.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;from: &lt;a href="http://catholicvote.com/"&gt;http://catholicvote.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-5007103512395655506?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/5007103512395655506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=5007103512395655506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/5007103512395655506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/5007103512395655506'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2008/10/obama-vs-christians.html' title='Obama vs. Christians'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-2905112575576240306</id><published>2008-10-03T10:21:00.000-07:00</published><updated>2008-10-03T10:23:39.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>PowerCommands for Visual Studio 2008</title><content type='html'>&lt;div style="font-family: inherit;"&gt;PowerCommands for Visual Studio 2008 is definitely one of the best plug-ins available for Visual Studio..&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;a href="http://draft.blogger.com/goog_1223054466359"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;a href="http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PowerCommands&amp;amp;ReleaseId=559"&gt;http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PowerCommands&amp;amp;ReleaseId=559&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;Includes things like: &lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Undo closed window&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Collapse all projects &lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Copy path&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Email CodeSnippet&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Insert GUID from right-click menu&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Copy and paste project references!&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Open containing folder&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Open command prompt&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Unload project&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;Sort using statements / also removes un-used ones&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;li style="font-family: inherit;"&gt;And more..&lt;/li&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-2905112575576240306?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/2905112575576240306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=2905112575576240306' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2905112575576240306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2905112575576240306'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2008/10/powercommands-for-visual-studio-2008.html' title='PowerCommands for Visual Studio 2008'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-2762620762072319168</id><published>2008-09-11T07:20:00.000-07:00</published><updated>2008-09-11T10:29:16.557-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Integrating TortoiseSVN with Visual Studio</title><content type='html'>Going back to using a file explorer separately for managing RCS, after using TFS built into Visual Studio has been a little irritating. That's not because I prefer TFS, because I don't. In fact, I hope I never have to go back to TFS again - at least until it doesn't crash continually and take minutes to perform actions that should take only seconds. And, of course TFS would have to actually perform the actions I request of it too. (But that's another post.)&lt;br /&gt;&lt;br /&gt;Nonetheless I've quickly become tired of switching between &lt;a href="http://www.ghisler.com/" title="My preference for a Windows file explorer"&gt;Total Commander&lt;/a&gt; and Visual Studio just to do updates and commits. I was about to resurrect my old CVS batch files again when I found an excellent set of scripts to enable TortoiseSVN from within Visual Studio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://garrys-brain.blogspot.com/2007/07/tortoisesvn-and-visual-studio.html"&gt;http://garrys-brain.blogspot.com/2007/07/tortoisesvn-and-visual-studio.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have not tried all of the features yet, only the basics. But those have worked without any problems at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-2762620762072319168?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/2762620762072319168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=2762620762072319168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2762620762072319168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2762620762072319168'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2008/09/integrating-tortoisesvn-with-visual.html' title='Integrating TortoiseSVN with Visual Studio'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-3603366983260406491</id><published>2008-02-07T08:15:00.000-07:00</published><updated>2008-04-22T20:18:39.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>My IRAM drive finally running!</title><content type='html'>&lt;p&gt;I finally got my IRAM drive running on my new work machine. I use it exclusively for my TFS local folders in Visual Studio 2005 and 2008 Team Editions. It literally cut my compile time in half. From about 3 minutes 10 seconds to 1 minute 30 seconds. Wow is all I can think to say. Oh, except it's about time. I've only had four IRAM drives for about 5-6 months now and no machine to use them on.&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:18483055-3a2a-490f-b54d-083d54a0e159" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Hardware" rel="tag"&gt;Hardware&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IRAM" rel="tag"&gt;IRAM&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-3603366983260406491?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/3603366983260406491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=3603366983260406491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/3603366983260406491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/3603366983260406491'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2008/02/my-iram-drive-finally-running.html' title='My IRAM drive finally running!'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-8888307879714833374</id><published>2007-09-12T22:15:00.001-07:00</published><updated>2008-07-01T02:32:07.350-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GMail'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Letter to Google</title><content type='html'>First off, let me just say how fantastic the GMail web interface is. For my style and usage patterns, it can't be beat. I have used a two folder system in Outlook for four to five years now, since I gave up on trying to keep things organized into folders (and Google Desktop provided a search mechanism that worked for my emails). And, the conversation view is wonderful! I also think the Google Apps for Domains suite of functionality and tools is superb.&lt;br /&gt;&lt;br /&gt;So, naturally, I have all of my domains running on Google Apps for Domains and all email pointed to my one standard GMail account.&lt;br /&gt;&lt;br /&gt;But, there's a problem. I have missed several important emails during the last month, two of which has caused some missed deadlines with my own MicroISV. Not good.&lt;br /&gt;&lt;br /&gt;To be honest, I didn't think much about it until tonight when on the phone, my partner and I, were discussing some tasks that had to be done this morning and tonight, when I hadn't received either sets of emails. Very not good.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, I logged in to the Apps account directly and found that the only emails stopped in the SPAM filter are 12 emails from my business partner spanning the last 30 days.. (Out of all emails I receive from him, the twelve trapped in the last month were probably the most important ones he sent, but that's a different story.) That also explained several disconnects we've had. &lt;br /&gt;&lt;br /&gt;What is also really strange about this, is that I've gotten emails from the Apps account, forwarded to my standard account, then trapped as SPAM (rightfully so) in my standard account. So, what gives.. Gmail is forwarding SPAM, but trapping  &lt;br /&gt;&lt;br /&gt;Anyway, I'm hoping to find a way to completely turn off SPAM filtering on my forwarded Gmail account so I won't have this problem again. Is that possible? Or at least a whitelist protection?&lt;br /&gt;&lt;br /&gt;My business partner is ready to go back to hosting our own email server again, including purchasing Exchange 2007. I'm hoping to stay with the great Gmail web interface, but... only if I can ensure this type of thing won't happen again.&lt;br /&gt;&lt;br /&gt;Please help?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-8888307879714833374?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/8888307879714833374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=8888307879714833374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8888307879714833374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8888307879714833374'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/09/letter-to-google.html' title='Letter to Google'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-6851687621442456621</id><published>2007-08-17T21:43:00.000-07:00</published><updated>2007-08-17T20:33:06.007-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Just had a funny thought...</title><content type='html'>I was just thinking how much I love JavaScript and how it has been my favorite language/platform for years. People who consider themselves 'real' developers have always given me a hard time because of it. That and "you can use it just like an OOP language, but it's not &lt;span style="font-style:italic;"&gt;really&lt;/span&gt; one"! Haha! Who cares if it only &lt;span style="font-style:italic;"&gt;acts&lt;/span&gt; like it!?&lt;br /&gt;&lt;br /&gt;How could you not love it? It's so dynamic - you can do anything you want with it!&lt;br /&gt;&lt;br /&gt;It's funny that everyone is getting excited about the DLR in upcoming .Net releases. And, "it's so cool, because it supports dynamic language extensions to C#." Hehehe.. Well, at least the rest of the world is finally starting to catch up to me.. 8^)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-6851687621442456621?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/6851687621442456621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=6851687621442456621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6851687621442456621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6851687621442456621'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/08/just-had-funny-thought.html' title='Just had a funny thought...'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-2676852773623078584</id><published>2007-08-17T21:27:00.000-07:00</published><updated>2007-08-17T20:27:44.167-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Important differences between the JavaScript null and undefined</title><content type='html'>I'm cleaning up some old code today primarily consisting of JavaScript and a bit of C# (ASP.net). I'm &lt;span style="font-style:italic;"&gt;trying&lt;/span&gt; to make the code faster and more easily understood. &lt;br /&gt;&lt;br /&gt;I thought I'd clean up the code used when working with elements on the page. Generally, this consists of an assignment from the DOM to a local JS variable and then an if statement to verify the object was found.&lt;br /&gt;&lt;br /&gt;Now, some people will claim that it isn't necessary to perform the check (assuming you are checking during onload or after) because it is highly unlikely that only part of the web page will be downloaded. I agree that it is unlikely and quite frankly if only a portion of the page gets downloaded you're going much more important problems to worry about than a few JavaScript error dialogs. But, nevertheless, I still feel it is a good practice to check for null objects.&lt;br /&gt;&lt;br /&gt;I have always done a simple check as follows:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var obj = document.getElementById("myobject");&lt;br /&gt;if (obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp; obj.style.display = "block";&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;However, I know many web developers who go a little further:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var obj = document.getElementById("myobject");&lt;br /&gt;if (null != obj &amp;&amp; "undefined" != typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp; obj.style.display = "block";&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I generally only check for &lt;cod&gt;undefined&lt;/code&gt; when checking if a method parameter exists or not.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;function myFunc(id, e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var obj = document.getElementById(id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ("undefined" != e &amp;&amp; null != e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj.innerHTML = "An error occurred: " + e;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Does it matter? What do you do? What's the difference between null and undefined?&lt;br /&gt;&lt;br /&gt;Well, so the difference between null and undefined are very simple, yet very important. null is actually an object in JavaScript. undefined is a value for objects that don't exist or variables that have not yet been assigned to.&lt;br /&gt;&lt;br /&gt;Checking for null is simple:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;if (obj) // the object exists&lt;br /&gt;if (null != obj) // the object exists&lt;br /&gt;if (!obj) // the object is null&lt;br /&gt;if (null == obj) // the object is null&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Checking for undefined is just as simple*:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;// test as an object&lt;br /&gt;if (undefined != obj) // the object is defined&lt;br /&gt;if (undefined == obj) // the object is undefined&lt;br /&gt;// test as a string&lt;br /&gt;if ("undefined" != typeof(obj)) // the object is defined&lt;br /&gt;if ("undefined" == typeof(obj)) // the object is undefined&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;*Please note&lt;/span&gt;, however that a lot of people make the simple mistake of testing the wrong thing with regards to undefined. There are two ways to test it, as a string or as an object. Look closely at the two different types of examples above, so you don't accidentally mix them up! (Which I've only done about a bajillion times!)&lt;br /&gt;&lt;br /&gt;And, don't forget that just because an object is &lt;span style="font-style:italic;"&gt;not&lt;/span&gt; undefined, does not mean that it is non-null as well. In other words a null object is still an object therefore it is defined. That make sense?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, in my cleaning up I decided to revisit the whole thing and noticed like all maturing web applications there are many variations and uses of these throughout our code. I needed to know for sure, however, what is returned by getElementById (and getElementsByName) when the object or objects are not found. And, also what is the best, cleanest way to test those objects.&lt;br /&gt;&lt;br /&gt;So, I wrote a few tests:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var obj = document&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.getElementById("this-elem-doesnt-exist");&lt;br /&gt;if (!obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("!obj");&lt;br /&gt;if (obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("obj");&lt;br /&gt;if (null == obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("null == obj");&lt;br /&gt;if (null != obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("null != obj");&lt;br /&gt;if (undefined == obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined == obj");&lt;br /&gt;if (undefined != obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined != obj");&lt;br /&gt;if ("undefined" == typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("\"undefined\" == typeof(obj)");&lt;br /&gt;if ("undefined" != typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("\"undefined\" != typeof(obj)");&lt;br /&gt;if (undefined == typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined == typeof(obj)");&lt;br /&gt;if (undefined != typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined != typeof(obj)");&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;input type="button" value="click to test" onclick="return test1()"/&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;function test1()&lt;br /&gt;{&lt;br /&gt;var obj = document.getElementById("this-elem-doesnt-exist");&lt;br /&gt;if (!obj)&lt;br /&gt; alert("!obj");&lt;br /&gt;if (obj)&lt;br /&gt; alert("obj");&lt;br /&gt;if (null == obj)&lt;br /&gt; alert("null == obj");&lt;br /&gt;if (null != obj)&lt;br /&gt; alert("null != obj");&lt;br /&gt;if (undefined == obj)&lt;br /&gt; alert("undefined == obj");&lt;br /&gt;if (undefined != obj)&lt;br /&gt; alert("undefined != obj");&lt;br /&gt;if ("undefined" == typeof(obj))&lt;br /&gt; alert("\"undefined\" == typeof(obj)");&lt;br /&gt;if ("undefined" != typeof(obj))&lt;br /&gt; alert("\"undefined\" != typeof(obj)");&lt;br /&gt;if (undefined == typeof(obj))&lt;br /&gt; alert("undefined == typeof(obj)");&lt;br /&gt;if (undefined != typeof(obj))&lt;br /&gt; alert("undefined != typeof(obj)");&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Now, let's run the same tests against an object that we know exists:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var obj = document&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.getElementById("this-elem-exists");&lt;br /&gt;if (!obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("!obj");&lt;br /&gt;if (obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("obj");&lt;br /&gt;if (null == obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("null == obj");&lt;br /&gt;if (null != obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("null != obj");&lt;br /&gt;if (undefined == obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined == obj");&lt;br /&gt;if (undefined != obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined != obj");&lt;br /&gt;if ("undefined" == typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("\"undefined\" == typeof(obj)");&lt;br /&gt;if ("undefined" != typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("\"undefined\" != typeof(obj)");&lt;br /&gt;if (undefined == typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined == typeof(obj)");&lt;br /&gt;if (undefined != typeof(obj))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("undefined != typeof(obj)");&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;input type="button" value="click to test" onclick="return test2()"/&gt;&lt;br /&gt;&lt;input type="hidden" id="this-elem-exists" value=""/&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;function test2()&lt;br /&gt;{&lt;br /&gt;var obj = document.getElementById("this-elem-exists");&lt;br /&gt;if (!obj)&lt;br /&gt; alert("!obj");&lt;br /&gt;if (obj)&lt;br /&gt; alert("obj");&lt;br /&gt;if (null == obj)&lt;br /&gt; alert("null == obj");&lt;br /&gt;if (null != obj)&lt;br /&gt; alert("null != obj");&lt;br /&gt;if (undefined == obj)&lt;br /&gt; alert("undefined == obj");&lt;br /&gt;if (undefined != obj)&lt;br /&gt; alert("undefined != obj");&lt;br /&gt;if ("undefined" == typeof(obj))&lt;br /&gt; alert("\"undefined\" == typeof(obj)");&lt;br /&gt;if ("undefined" != typeof(obj))&lt;br /&gt; alert("\"undefined\" != typeof(obj)");&lt;br /&gt;if (undefined == typeof(obj))&lt;br /&gt; alert("undefined == typeof(obj)");&lt;br /&gt;if (undefined != typeof(obj))&lt;br /&gt; alert("undefined != typeof(obj)");&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Based on the results, I really think that all you should have to do is a simple check as in the first example. So, I'm changing our code to look nice and clean using just a simple if (obj), unless there is a need to check if it's undefined.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-2676852773623078584?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/2676852773623078584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=2676852773623078584' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2676852773623078584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2676852773623078584'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/08/important-differences-between.html' title='Important differences between the JavaScript null and undefined'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-6113928170507109505</id><published>2007-08-16T17:49:00.000-07:00</published><updated>2007-08-16T17:00:16.343-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Targeting Firefox, IE 7, and IE 6 (and older) browsers via CSS</title><content type='html'>&lt;style type="text/css"&gt;.source-code { font-family: courier new, mono; padding:16px 3px 28px 3px; } .source-code .iden { color: #00d; } .source-code .keyw { color: #f00; } .source-code .comment { color: #0a0; }&lt;br /&gt;&lt;/style&gt;  &lt;p&gt;The tip for today's post&amp;nbsp;is applying different styles to IE 7, IE 6 and older, and all the other browsers out there without having custom script or changing out style sheets. It’s simple too! &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="4" border="0" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;1)&lt;/td&gt; &lt;td&gt;First, create your normal style, which of course applies to all browsers:&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td class="source-code"&gt;&lt;span class="keyw"&gt;padding&lt;/span&gt;: 2&lt;span class="iden"&gt;px&lt;/span&gt; 6&lt;span class="iden"&gt;px&lt;/span&gt; 2&lt;span class="iden"&gt;px&lt;/span&gt; 6&lt;span class="iden"&gt;px&lt;/span&gt;;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;2)&lt;/td&gt; &lt;td&gt;Then, create the style you’d like to apply only to Internet Explorer 7:&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td class="source-code"&gt;#&lt;span class="keyw"&gt;padding&lt;/span&gt;: 1&lt;span class="iden"&gt;px&lt;/span&gt; 6&lt;span class="iden"&gt;px&lt;/span&gt; 1&lt;span class="iden"&gt;px&lt;/span&gt; 6&lt;span class="iden"&gt;px&lt;/span&gt;; &lt;/td&gt; &lt;tr&gt; &lt;td&gt;3)&lt;/td&gt; &lt;td&gt;Now, create the style to apply only to Internet Explorer 6 and older:&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td class="source-code"&gt;&lt;span class="comment"&gt;/* _padding: 3px 4px 3px 4px; */&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;   &lt;p&gt;There you have it! Now you can target the three main browsers: IE 6, IE 7, and everyone else.  &lt;p&gt;Technically, step 2 doesn’t only apply to IE 7, but really applies to all Internet Explorer browsers. In other words, if you wanted to target &lt;i&gt;all&lt;/i&gt; IE browsers only steps 1 and 2 are needed.  &lt;p&gt;I don’t remember where I found this. I believe parts came from a couple of different sources, but anyway, it’s a great hack – especially when used together.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-6113928170507109505?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/6113928170507109505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=6113928170507109505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6113928170507109505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6113928170507109505'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/08/targeting-firefox-ie-7-and-ie-6-and.html' title='Targeting Firefox, IE 7, and IE 6 (and older) browsers via CSS'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-6651535756161337381</id><published>2007-08-04T11:50:00.000-07:00</published><updated>2007-08-06T11:51:44.623-07:00</updated><title type='text'>How many blogs are you subscribed to?</title><content type='html'>&lt;p&gt;Reading blogs take too much time. There have always only been a few that I actually read, frequently. But, most of them, even long time favorites (such as &lt;a href="http://scobleizer.wordpress.com/feed"&gt;Scobleizer&lt;/a&gt;) just seem to take too much time to read.&lt;/p&gt; &lt;p&gt;I have found myself unsubscribing from blogs more and more. Not that I ever had a whole lot to begin with. At the highest point I maybe had 60 subscribed to in my reader. I just don't want to spend the time reading blogs, where most of it is what I consider fluff. Currently, I have about 35 subscriptions, but only about 15 are really active with at least 2 or more posts a week. Of course, some like MAKE and Engadget have dozens and more each day.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Being an IT and Dev Generalist, I am involved in so many different technologies. I would like to get the synopsis of each area without having to slowly go through all of the (seemingly) countless posts about the things I'm not interested in. I want to go to a web site and be able to read in 10 minutes or less each day the current buzz about the subjects I'm interested in. It would of course keep track of what I last looked at. If I wanted more detail (and had time for such a thing) I could follow links for more, etc.&lt;/p&gt; &lt;p&gt;I would also like it to remind me, say, once a month to look at certain topics. Things like check out the latest health-related articles on MSN Health or check up on what my local politicians are currently going on about.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;I'm thinking the user interface should be similar to this:&lt;/p&gt; &lt;hr size="1"&gt;  &lt;h3&gt;Information Technology&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Windows Home Server&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color:#c0c0c0;"&gt;No news to report | Saved for later (2)&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Windows Scripting&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;New blog posts&lt;/u&gt; (3) | &lt;u&gt;New articles&lt;/u&gt; (6) | Saved for later (2)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Windows Mobile&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;New blog posts&lt;/u&gt; (4) | No new articles&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;Development&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;Blog posts&lt;/u&gt; (11) | &lt;u&gt;New articles&lt;/u&gt; (4)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;C# / .Net&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;Blog posts&lt;/u&gt; (11) | &lt;u&gt;New articles&lt;/u&gt; (4)&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;Hardware &amp; Hobbies Engineering&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Robotics&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;New blogs posts (3) | No new articles&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;HAM Radio&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;No new blogs | No new articles&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Commodore 64&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;No new blogs | No new articles&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;Politics&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Ann Coulter / Human Events&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;New blogs posts (3) | New articles (1)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-6651535756161337381?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/6651535756161337381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=6651535756161337381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6651535756161337381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6651535756161337381'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/08/how-many-blogs-are-you-subscribed-to.html' title='How many blogs are you subscribed to?'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-6003024793962535211</id><published>2007-07-17T17:32:00.000-07:00</published><updated>2007-08-06T12:00:53.980-07:00</updated><title type='text'>Getting things done!?</title><content type='html'>&lt;p&gt;I recently purchased the book Getting Things Done, by David Allen. I've just started reading it and I'm surprised how similar my own personal method is to GTD. I have done some things for many years because they worked. This book is sure helping me to understand why. &lt;/p&gt; &lt;p&gt;There are some major differences however. Some things I like better in GTD, but some of the things are tailored just for me -&amp;nbsp;that I have proven in use over and over again. Again, that may just be for myself, though.&lt;/p&gt; &lt;p&gt;I'll post the differences between my system and GTD once I've finished the book..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-6003024793962535211?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/6003024793962535211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=6003024793962535211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6003024793962535211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/6003024793962535211'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/07/getting-things-done.html' title='Getting things done!?'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-2090390527870430454</id><published>2007-07-13T10:41:00.001-07:00</published><updated>2007-07-13T11:33:28.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps stopped working a few days ago</title><content type='html'>&lt;p&gt;We ran into a problem this last Monday (7/9/07) where the Google Maps stopped working on some of our page. After figuring out why some pages were working and some weren't it turns out that Google made a change to their API.&lt;/p&gt; &lt;p&gt;Basically, you must now call &lt;strong&gt;&lt;span style="font-family:Consolas;"&gt;map.setCenter()&lt;/span&gt;&lt;/strong&gt; to initialize the map before calling any of the other methods that set preferences to it such as &lt;strong&gt;&lt;span style="font-family:Consolas;"&gt;map.enableDragging()&lt;/span&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;span style="font-family:Consolas;"&gt;map.enableDoubleClickZoom()&lt;/span&gt;&lt;/strong&gt;. &lt;/p&gt; &lt;p&gt;Actually, the only one that I noticed that caused the map to not display &lt;span style="font-style: italic;"&gt;at all &lt;/span&gt;was &lt;span style="font-family:Consolas;"&gt;&lt;strong&gt;&lt;span style="font-family:Courier New;"&gt;map.enableDragging()&lt;/span&gt;&lt;span style="font-family:Georgia;"&gt;.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-2090390527870430454?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/2090390527870430454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=2090390527870430454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2090390527870430454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2090390527870430454'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/07/google-maps-stopped-working-few-days.html' title='Google Maps stopped working a few days ago'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-449399569130947479</id><published>2007-07-07T21:56:00.000-07:00</published><updated>2007-08-06T11:57:52.024-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><title type='text'>Great quote from Ann Coulter</title><content type='html'>&lt;p&gt;Although, I'm always irritated by good bloggers posting their own feelings regarding politics, because they are usually wrong, I just couldn't resist posting one myself. This is from Ann Coulter at &lt;a title="http://www.humanevents.com/article.php?id=21404" href="http://www.humanevents.com/article.php?id=21404"&gt;http://www.humanevents.com/article.php?id=21404&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;"With so many felons being Democrats, the party might want to think about changing its mascot from a donkey to a jailbird." - Ann Coulter (&lt;a href="http://www.humanevents.com/article.php?id=21404"&gt;link&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;Interesting article too.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-449399569130947479?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/449399569130947479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=449399569130947479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/449399569130947479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/449399569130947479'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/07/great-quote-from-ann-coulter.html' title='Great quote from Ann Coulter'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-8876647043414254908</id><published>2007-03-28T10:21:00.000-07:00</published><updated>2007-04-17T10:45:04.850-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Output name/values of an Enum</title><content type='html'>&lt;style&gt; span.source { color: #023; font-family: Consolas, Courier New, San-Serif; font-size: 10pt; } span.source .keyword { color: #0000ff; } span.source .stringLiteral { color: rgb(163, 21, 21); } span.source .userType { color: rgb(43, 145, 175); } span.source .operator { color: #0000aa; } span.source .indent1 { padding-left:22px; } &lt;/style&gt;&lt;br /&gt;I took the time a while ago to figure out the best way to output each name and value in an Enum. I just keep using the code and have been looking in recent projects looking for the code to re-use in a new project. So, I thought I’d share the love..&lt;br /&gt;&lt;br /&gt;This code will output the name and value of each element in the MyEnum object.&lt;br /&gt;&lt;br /&gt;&lt;span class="source"&gt;&lt;br /&gt;&lt;span class="keyword"&gt;string&lt;/span&gt;[] names = &lt;span class="userType"&gt;Enum&lt;/span&gt;.GetNames(&lt;span class="keyword"&gt;typeof&lt;/span&gt;(MyEnum));&lt;br /&gt;&lt;span class="userType"&gt;Array&lt;/span&gt; values = &lt;span class="userType"&gt;Enum&lt;/span&gt;.GetValues(&lt;span class="keyword"&gt;typeof&lt;/span&gt;(MyEnum));&lt;br /&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; (&lt;span class="keyword"&gt;int&lt;/span&gt; i &lt;span class="operator"&gt;=&lt;/span&gt; 0; i &lt;span class="operator"&gt;&amp;lt;&lt;/span&gt; names.Length; i++)&lt;br /&gt;{&lt;br /&gt;&lt;span class="indent1 userType"&gt;Console&lt;/span&gt;.WriteLine(&lt;span class="keyword"&gt;string&lt;/span&gt;.Format(&lt;span class="stringLiteral"&gt;"{0} = {1}"&lt;/span&gt;, names[i], values.GetValue(i)));&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think Reflection is probably the most overlooked and under-appreciated assembly in the whole .Net framework.  Don’t you just love it?  8^)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-8876647043414254908?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/8876647043414254908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=8876647043414254908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8876647043414254908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8876647043414254908'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/output-namevalues-of-enum.html' title='Output name/values of an Enum'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-4835997505173012762</id><published>2007-03-19T14:13:00.000-07:00</published><updated>2007-03-19T14:41:00.298-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>The Windows Vista UAC</title><content type='html'>Everyone has probably already turned off the UAC, but I hadn't until today. I left those annoying popup dialogs, because I actually like the features it provides; not for me, but for when my kids are using my computer. And, let's be honest, once you had everything installed that you normally use, the popup dialog isn't really that annoying anymore.&lt;br /&gt;&lt;br /&gt;Today I found a way to disable the UAC dialogs for only Administrators. That is cool! I haven't seen that done yet, so I tried it out and it works good! You can &lt;a href="http://www.howtogeek.com/howto/windows-vista/disable-user-account-controluac-for-administrators-only/"&gt;look here&lt;/a&gt; for the instructions to perform this tip, courtesy of &lt;a href="http://www.howtogeek.com/"&gt;HowToGeek.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alternatively, you can create a plain-text file on your computer, name it with a .REG extension and put the following into it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;   Windows Registry Editor Version 5.00&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;"ConsentPromptBehaviorAdmin"=dword:00000000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then, run that file. This registry key location was also courtesy of HowToGeek.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-4835997505173012762?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/4835997505173012762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=4835997505173012762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4835997505173012762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4835997505173012762'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/windows-vista-uac.html' title='The Windows Vista UAC'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-8065018071773351441</id><published>2007-03-16T09:10:00.000-07:00</published><updated>2007-03-16T09:11:20.970-07:00</updated><title type='text'>Saving as Drafts instead of Posts</title><content type='html'>I keep saving my blogs as Drafts on accident instead of Posting them. Sorry about that. I've got about a dozen recently that I'll go through and post them. Some of them are pretty cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-8065018071773351441?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/8065018071773351441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=8065018071773351441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8065018071773351441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8065018071773351441'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/saving-as-drafts-instead-of-posts.html' title='Saving as Drafts instead of Posts'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-8092578772018818136</id><published>2007-03-09T15:32:00.000-07:00</published><updated>2007-03-26T21:32:20.569-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Shortcut'/><title type='text'>Windows Vista Command-Prompt from Here</title><content type='html'>I stumbled upon a nice feature of Windows Vista Explorer. If you right-click on a folder in Explorer, it will provide you with a different set of options. One of them is "Open Command Window Here," that opens a DOS prompt with the selected folder as the default path. That is cool, since the Windows XP Command-Prompt Here PowerToy was invaluable.&lt;br /&gt;&lt;br /&gt;UPDATED: After looking at it again, I noticed that there is one other additional item that is present when holding the Shift key down: "Copy As Path," which simply copies that folder's complete path into the Clipboard. Cool!&lt;br /&gt;&lt;br /&gt;Here's a screen shot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_RDJEOHTGP8U/RgidW68y7eI/AAAAAAAAAAw/vgIqUXtzpYM/s1600-h/right-click-dos-prompt.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_RDJEOHTGP8U/RgidW68y7eI/AAAAAAAAAAw/vgIqUXtzpYM/s400/right-click-dos-prompt.jpg" alt="" id="BLOGGER_PHOTO_ID_5046456399575576034" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-8092578772018818136?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/8092578772018818136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=8092578772018818136' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8092578772018818136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8092578772018818136'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/windows-vista-command-prompt-from-here.html' title='Windows Vista Command-Prompt from Here'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_RDJEOHTGP8U/RgidW68y7eI/AAAAAAAAAAw/vgIqUXtzpYM/s72-c/right-click-dos-prompt.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-7306438696327049896</id><published>2007-03-07T15:56:00.000-07:00</published><updated>2007-03-16T10:19:38.103-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Beyond Compare'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio File Comparison Settings</title><content type='html'>.. In other words, how to set Beyond Compare as your file comparison tool in VSTS.&lt;br /&gt;&lt;br /&gt;I finally got tired of the default comparison tool in Visual Studio 2005 Team Edition and went poking around to find out how to set &lt;a href="http://www.scootersoftware.com/"&gt;Beyond Compare&lt;/a&gt; to the default instead. The default utility (WinDiff, I think?) is extremely irritating after having used BC for so many years now.&lt;br /&gt;&lt;br /&gt;So, on the Tools | Options dialog, click on Source Control, then Visual Studio Team Foundation Server. Now, click on the "Configure User Tools..." button. Take a look at this screen shot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_RDJEOHTGP8U/RfrPMNEHp-I/AAAAAAAAAAo/r_aAVRULBEI/s1600-h/config-user-tools.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_RDJEOHTGP8U/RfrPMNEHp-I/AAAAAAAAAAo/r_aAVRULBEI/s400/config-user-tools.jpg" alt="" id="BLOGGER_PHOTO_ID_5042570541367011298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The important things to notice are the Extension and Arguments settings. The Extension specifies which files this viewer configuration will be applied to. While the Arguments are specific to the viewer application itself, in this case Beyond Compare. You can change the extension (for instance, to .cs) to apply that configuration to only those file types.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare settings&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Extension: .*&lt;br /&gt;Operation: Compare&lt;br /&gt;Command: C:\Program Files\Beyond Compare 2\BC2.exe&lt;br /&gt;Arguments: %1 %2 /title1=%6 /title2=%7&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Merge settings:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Extension: .*&lt;br /&gt;Operation: Merge&lt;br /&gt;Command: C:\Program Files\Beyond Compare 2\BC2.exe&lt;br /&gt;Arguments: %1 %2 /savetarget=%4 /title1=%6 /title2=%7&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Disclaimer: I have no ties &lt;/span&gt;&lt;span style="font-style: italic;"&gt;whatsoever &lt;/span&gt;&lt;span style="font-style: italic;"&gt;to Scooter Software, the makers of Beyond Compare.)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-7306438696327049896?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/7306438696327049896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=7306438696327049896' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/7306438696327049896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/7306438696327049896'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/visual-studio-file-comparison-settings.html' title='Visual Studio File Comparison Settings'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_RDJEOHTGP8U/RfrPMNEHp-I/AAAAAAAAAAo/r_aAVRULBEI/s72-c/config-user-tools.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-5437270979488306060</id><published>2007-03-06T20:58:00.000-07:00</published><updated>2007-04-17T11:35:07.803-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Use Reflection to compare Class properties with Enum element names</title><content type='html'>&lt;style&gt; span.source { color:#023; font-family: Consolas, Courier New, San-Serif; font-size: 10pt; } span.source .keyword { color: #0000ff; } span.source .stringLiteral { color: rgb(163, 21, 21); } span.source .userType { color: rgb(43, 145, 175); } span.source .operator { color: #0000aa; } span.source .comment { color: #00ff00; } span.source .indentation { padding-left: 22px; }&lt;/style&gt;&lt;br /&gt;The following code demonstrates how to use Reflection to simply your code; making it easier to read and understand, and remove code for potential bugs.&lt;br /&gt;&lt;br /&gt;The "normal" way of assigning/comparing Enum elements with class properties. In this example, the code must be changed every time you change the user class or the DataField enum. That's a major pain in the neck!&lt;br /&gt;&lt;span class="source"&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;class&lt;/span&gt; &lt;span class="userType"&gt;User&lt;/span&gt;&lt;br /&gt;{&lt;div class="indentation"&gt; &lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; FirstName;&lt;br /&gt; &lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; LastName;&lt;br /&gt; &lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; EmailAddress;&lt;br /&gt; &lt;span class="keyword"&gt;public&lt;/span&gt; User() { }&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;enum&lt;/span&gt; &lt;span class="userType"&gt;DataField&lt;/span&gt;&lt;br /&gt;{&lt;div class="indentation"&gt; FirstName,&lt;br /&gt; LastName,&lt;br /&gt; EmailAddress,&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;string&lt;/span&gt; value = &lt;span class="stringLiteral"&gt;""&lt;/span&gt;;&lt;br /&gt;&lt;span class="keyword"&gt;switch&lt;/span&gt; (field.DataField)&lt;br /&gt;{&lt;div class="indentation"&gt; &lt;span class="keyword"&gt;case&lt;/span&gt; &lt;span class="userType"&gt;DataField&lt;/span&gt;.FirstName: value = currentUser.FirstName;&lt;br /&gt; &lt;span class="indentation keyword"&gt;break&lt;/span&gt;;&lt;br /&gt; &lt;span class="keyword"&gt;case&lt;/span&gt; &lt;span class="userType"&gt;DataField&lt;/span&gt;.LastName: value = currentUser.LastName;&lt;br /&gt; &lt;span class="indentation keyword"&gt;break&lt;/span&gt;;&lt;br /&gt; &lt;span class="keyword"&gt;case&lt;/span&gt; &lt;span class="userType"&gt;DataField&lt;/span&gt;.EmailAddress: value = currentUser.EmailAddress;&lt;br /&gt; &lt;span class="indentation keyword"&gt;break&lt;/span&gt;;&lt;br /&gt; &lt;span class="keyword"&gt;default&lt;/span&gt;: value = &lt;span class="stringLiteral"&gt;""&lt;/span&gt;;&lt;br /&gt; &lt;span class="indentation keyword"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Using the switch statement above, you'd have to modify it whenever you add more properties of your User class..&lt;br /&gt;&lt;br /&gt;But, by using the following code, you won't ever have to modify the switch statement because it isn't even needed anymore.&lt;br /&gt;&lt;span class="source"&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;class&lt;/span&gt; &lt;span class="userType"&gt;User&lt;/span&gt;&lt;br /&gt;{&lt;div class="indentation"&gt; &lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;int&lt;/span&gt; PlanType;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; FirstName;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; LastName;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; EmailAddress;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; Address;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; City;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; State;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; PostalCode;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; Country;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; PhoneNumber;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; CreditCardName;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; CreditCardType;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; CreditCardNumber;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; CreditCardExpirationMonth;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;string&lt;/span&gt; CreditCardExpirationYear;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; User() { }&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;enum&lt;/span&gt; &lt;span class="userType"&gt;DataField&lt;/span&gt;&lt;br /&gt;{&lt;div class="indentation"&gt;Unknown,&lt;br /&gt;PlanType,&lt;br /&gt;FirstName,&lt;br /&gt;LastName,&lt;br /&gt;EmailAddress,&lt;br /&gt;Address,&lt;br /&gt;City,&lt;br /&gt;State,&lt;br /&gt;PostalCode,&lt;br /&gt;Country,&lt;br /&gt;PhoneNumber,&lt;br /&gt;CreditCardName,&lt;br /&gt;CreditCardType,&lt;br /&gt;CreditCardNumber,&lt;br /&gt;CreditCardExpirationMonth,&lt;br /&gt;CreditCardExpirationYear&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;string&lt;/span&gt; value = &lt;span class="stringLiteral"&gt;""&lt;/span&gt;;&lt;br /&gt;&lt;span class="userType"&gt;FieldInfo&lt;/span&gt;&lt;span class="operator"&gt;[]&lt;/span&gt; properties = currentUser.GetType().GetFields();&lt;br /&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; (&lt;span class="keyword"&gt;int&lt;/span&gt; i &lt;span class="operator"&gt;=&lt;/span&gt; 0; i &lt;span class="operator"&gt;&amp;lt;&lt;/span&gt; properties.Length; i&lt;span class="operator"&gt;++&lt;/span&gt;)&lt;br /&gt;{&lt;div class="indentation"&gt; &lt;span class="keyword"&gt;if&lt;/span&gt; (properties[i].Name &lt;span class="operator"&gt;==&lt;/span&gt; field.DataField.ToString())&lt;br /&gt;{&lt;div class="indentation"&gt; &lt;span class="userType"&gt;Object&lt;/span&gt; obj = properties[i].GetValue(currentUser);&lt;br /&gt;&lt;span class="keyword"&gt;if&lt;/span&gt; (&lt;span class="keyword"&gt;null&lt;/span&gt; != obj)&lt;br /&gt;&lt;div class="indentation"&gt; value = (&lt;span class="keyword"&gt;string&lt;/span&gt;)obj;&lt;/div&gt;&lt;span class="keyword"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Of course, you'll still have to ensure that the &lt;code&gt;DataField&lt;/code&gt; enum and the &lt;code&gt;User&lt;/code&gt; class properties are kept in sync, but you don't ever have to modify your &lt;code&gt;for&lt;/code&gt; loop. That's cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-5437270979488306060?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/5437270979488306060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=5437270979488306060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/5437270979488306060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/5437270979488306060'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/use-reflection-to-compare-class.html' title='Use Reflection to compare Class properties with Enum element names'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-8001441388174923051</id><published>2007-03-03T21:46:00.000-07:00</published><updated>2007-03-19T14:54:04.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Idea'/><title type='text'>Universal Charging Pad</title><content type='html'>I was thinking how nice it would be to get rid of all of my power cables and USB cables that are being used to charge up all of my devices. That would be very cool, indeed!&lt;br /&gt;&lt;br /&gt;So, I was thinking why not make a "Universal Charging Pad" that you can simply set your device onto and it would charge up. It works simply enough. Some products have already done similar things, such as my Sonicare toothbrush. But, think how nice it would be to set all of your many devices of various sizes (and voltages) onto a single, think mouse-pad-looking-thing to get charged up. No cables, no mess. That'd be cool!&lt;br /&gt;&lt;br /&gt;By the way, the Universal Charging Pad copyright is now for sale.. 8^)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-8001441388174923051?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/8001441388174923051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=8001441388174923051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8001441388174923051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8001441388174923051'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/03/universal-charging-pad.html' title='Universal Charging Pad'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-4595457524508839179</id><published>2007-02-26T10:11:00.000-07:00</published><updated>2007-03-19T14:56:11.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Docs and Spreadsheets'/><title type='text'>Wish list for Google Docs &amp; Spreadsheets</title><content type='html'>To build upon my previous post about why &lt;a href="http://elegantdevelopment.blogspot.com/2007/02/why-google-docs-spreadsheets-doesnt.html"&gt;Google Docs &amp; Spreadsheets doesn't work&lt;/a&gt;, here is a short list of features I would like to see implemented.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Custom Font Selection&lt;/span&gt;: I just gotta be able to change the look and feel of my documents or I won't use it. Fix it, okay!?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desktop Docs &amp; Spreadsheets Sync&lt;/span&gt;: There must be a way to have these files automatically backed up to my local hard disk. I would prefer a mirroring solution, though. I'd like to be able to edit the same files locally or online via GD&amp;amp;S. Just add functionality to Google Desktop Search that will manage the synchronization process. Even better, why not add the functionality as a Backup Solution for desktop users, where those files just happen to be "backed up" (mirrored) to the same location that GD&amp;S uses.&lt;br /&gt;&lt;br /&gt;Added Bonus: A Windows shell extension to allow dropping all of my files into a single GD&amp;amp;S folder. The files would be kept locally (in that folder), but those files would also be mirrored with GD&amp;S online. I'm thinking something similar to how &lt;a href="http://www.viksoe.dk/code/gmail.htm"&gt;Gmail Drive&lt;/a&gt; works (&lt;a href="http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html"&gt;Linux&lt;/a&gt; version, &lt;a href="http://gdisk.sourceforge.net/"&gt;Mac OSX&lt;/a&gt; version).&lt;br /&gt;&lt;br /&gt;Super-duper Added Bonus: Even more cool than that would be to have the (same) shell extension render the file view to look like GD&amp;amp;S online. That would be way cool and super usable!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note to Google: I volunteer to beta test these for you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-4595457524508839179?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/4595457524508839179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=4595457524508839179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4595457524508839179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/4595457524508839179'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/02/wish-list-for-google-docs-spreadsheets.html' title='Wish list for Google Docs &amp; Spreadsheets'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-1605973119375727920</id><published>2007-02-23T11:02:00.000-07:00</published><updated>2007-03-16T09:09:50.232-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Docs and Spreadsheets'/><title type='text'>Why Google Docs &amp; Spreadsheets doesn't work</title><content type='html'>After playing with it in the past and over the last couple of days I have become very familiar with its features and capabilities. However, I've become even more aware of what it doesn't do.&lt;br /&gt;&lt;br /&gt;First off, I can't change the fonts and styles (like Heading 1, Heading 2, etc) to the way I like them. And, I can't select my own font from my system, period. I only have a list of 6-7 fonts to choose from. (I use "Calibri, Tahoma, Arial" as my default font for just about everything..)&lt;br /&gt;&lt;br /&gt;Second, There is no way to upload nor work on files other than basic RTF/HTM documents and spreadsheets. For instance, if I'm going to use this system exclusively, how do I create posters, flyers, business cards, forms, etc, as I would with Microsoft Publisher? How about OneNote?&lt;br /&gt;&lt;br /&gt;Only supporting basic documents and spreadsheets goes further to cause more problems. I generally keep all kinds of files mixed in with my documents. I keep (other people's) PDF files, images, links to websites in .url files, raw .html files, XML, source code files, and many more. Where would I put these files if I started using Google's web-based services?&lt;br /&gt;&lt;br /&gt;I love (and live by) the "drop everything into one bin and use search to find it" mentality, but what use it is if I can't drop &lt;span style="font-style: italic;"&gt;everything &lt;/span&gt;into it? Google Desktop Search allows me to do just that right now, without having to be connected to the Internet.&lt;br /&gt;&lt;br /&gt;Which brings me to the biggest reason why I won't use it. There isn't any way (that I can see) to backup my files to my desktop for when I'm disconnected. Is there? What about when I'm traveling? How about when I purposely disconnect from the Web so I can get some writing done or when I go to the park to work while the kids are playing? (And, no, getting Internet access via Cingular isn't an option for me!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-1605973119375727920?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/1605973119375727920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=1605973119375727920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/1605973119375727920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/1605973119375727920'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/02/why-google-docs-spreadsheets-doesnt.html' title='Why Google Docs &amp; Spreadsheets doesn&apos;t work'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-122007716677388690</id><published>2007-02-13T10:22:00.001-07:00</published><updated>2007-02-23T10:26:56.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Shortcut'/><title type='text'>Visual Studio clipboard ring and other keyboard shortcuts</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Visualstudiohacks.com is always my first choice for getting the low-down on Visual Studio. On their site I found a great shortcut key to cycle through the VS clipboard ring. In doing so, I remembered that VS actually &lt;em&gt;had&lt;/em&gt; a clipboard ring, too. I remember being excited that they were adding one, but I must've forgotten about it. It's excellent. I found it here: &lt;a href="http://www.visualstudiohacks.com/navtricks"&gt;http://www.visualstudiohacks.com/navtricks&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;CLIPBOARD RING&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 133px"&gt;&lt;/col&gt;&lt;col style="WIDTH: 217px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: black 1.5pt solid; PADDING-RIGHT: 1px; BORDER-TOP: medium none; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: medium none; PADDING-TOP: 1px; BORDER-BOTTOM: medium none" valign="center"&gt;&lt;p&gt;Ctrl + Shift + V&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: medium none; PADDING-RIGHT: 1px; BORDER-TOP: medium none; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: medium none; PADDING-TOP: 1px; BORDER-BOTTOM: black 1.5pt solid" valign="center"&gt;&lt;p&gt;Cycle through items copied to clipboard&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;The clipboard ring's a terrific tool for doing mass edits. Move a number of items into the clipboard ring via any Copy or Cut command, then cycle through those items as you're pasting away.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-122007716677388690?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/122007716677388690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=122007716677388690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/122007716677388690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/122007716677388690'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/02/visual-studio-clipboard-ring-and-other.html' title='Visual Studio clipboard ring and other keyboard shortcuts'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-2633463652034231914</id><published>2007-02-08T14:09:00.001-07:00</published><updated>2007-02-23T10:31:23.669-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TV'/><title type='text'>Top TV Shows</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;I found a list of the most popular TV shows of any era &lt;a href="http://www.tv.com/shows/topshows.html?l=&amp;amp;pop=1&amp;tag=gen_subtabs;era;0"&gt;here&lt;/a&gt;. I was looking at it to find out how Smallville is doing in the ratings and realized that I haven't seen even a few minutes of most of the shows listed. So, I thought I'd have some fun and actually list them here. &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;div&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 63px"&gt;&lt;/col&gt;&lt;col style="WIDTH: 232px"&gt;&lt;/col&gt;&lt;col style="WIDTH: 438px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;* 1&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/lost/show/24313/summary.html?tag=show_table;title;0"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;&lt;strong&gt;Lost&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Season 1 phenomenal, 2 great, I'm not sure about 3.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;2&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/prison-break/show/31635/summary.html?tag=show_table;title;1"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Prison Break&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;* 3&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/heroes/show/17552/summary.html?tag=show_table;title;2"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;&lt;strong&gt;Heroes&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Heroes rocks!&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;4&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/one-tree-hill/show/16942/summary.html?tag=show_table;title;3"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;One Tree Hill&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;5&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/house/show/22374/summary.html?tag=show_table;title;4"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;House&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;House is way cool!&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;6&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/gilmore-girls/show/44/summary.html?tag=show_table;title;5"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Gilmore Girls&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;* 7&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/smallville/show/1718/summary.html?tag=show_table;title;6"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;&lt;strong&gt;Smallville&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Smallville is my favorite – Battlestar is closely tied.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;8&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/greys-anatomy/show/24440/summary.html?tag=show_table;title;7"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Grey's Anatomy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;9&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/24/show/3866/summary.html?tag=show_table;title;8"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;24&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've seen about 10 episodes of last season. I like it, but don't watch it.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;10&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/beauty-and-the-geek/show/32037/summary.html?tag=show_table;title;9"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Beauty and the Geek&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I watched a few episodes of season 1.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;11&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/desperate-housewives/show/24641/summary.html?tag=show_table;title;10"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Desperate Housewives&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;12&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-o.c./show/16960/summary.html?tag=show_table;title;11"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The O.C.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;13&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/naruto/show/18558/summary.html?tag=show_table;title;12"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Naruto&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;14&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/criminal-minds/show/33484/summary.html?tag=show_table;title;13"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Criminal Minds&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;15&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/family-guy/show/348/summary.html?tag=show_table;title;14"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Family Guy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;16&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/avatar-the-last-airbender/show/28841/summary.html?tag=show_table;title;15"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Avatar: The Last Airbender&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;17&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/scrubs/show/3613/summary.html?tag=show_table;title;16"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Scrubs&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;18&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/veronica-mars/show/24272/summary.html?tag=show_table;title;17"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Veronica Mars&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;19&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/bones/show/33332/summary.html?tag=show_table;title;18"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Bones&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;20&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/supernatural/show/30144/summary.html?tag=show_table;title;19"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Supernatural&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;21&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/csi-miami/show/8460/summary.html?tag=show_table;title;20"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;CSI: Miami&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;* 22&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/battlestar-galactica-2003/show/23557/summary.html?tag=show_table;title;21"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;&lt;strong&gt;Battlestar Galactica (2003)&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Battlestar is one of the all-time greatest shows.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;23&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/ncis/show/16772/summary.html?tag=show_table;title;22"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;NCIS&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;24&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/stargate-atlantis/show/11415/summary.html?tag=show_table;title;23"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Stargate Atlantis&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;25&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/south-park/show/344/summary.html?tag=show_table;title;24"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;South Park&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;26&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/american-idol/show/11307/summary.html?tag=show_table;title;25"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;American Idol&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've watched a few with Carol who is an avid watcher.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;27&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/charmed/show/106/summary.html?tag=show_table;title;26"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Charmed&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;28&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/stargate-sg-1/show/185/summary.html?tag=show_table;title;27"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Stargate SG-1&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;29&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/csi/show/19/summary.html?tag=show_table;title;28"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;CSI&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;30&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-simpsons/show/146/summary.html?tag=show_table;title;29"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Simpsons&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I used to love it, regrettably, I grew out of 14-yr-old humor.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;31&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-office/show/22343/summary.html?tag=show_table;title;30"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Office&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;32&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-unit/show/33480/summary.html?tag=show_table;title;31"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Unit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;33&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/americas-next-top-model/show/14888/summary.html?tag=show_table;title;32"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;America's Next Top Model&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;34&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/jericho/show/58068/summary.html?tag=show_table;title;33"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Jericho&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;35&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/er/show/111/summary.html?tag=show_table;title;34"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;ER&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I occasionally watched during season 1 &amp; 2.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;36&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/ugly-betty/show/58486/summary.html?tag=show_table;title;35"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Ugly Betty&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;37&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/nip-tuck/show/17095/summary.html?tag=show_table;title;36"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Nip/Tuck&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;38&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/boston-legal/show/25525/summary.html?tag=show_table;title;37"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Boston Legal&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;39&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/judging-amy/show/159/summary.html?tag=show_table;title;38"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Judging Amy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;40&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/7th-heaven/show/251/summary.html?tag=show_table;title;39"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;7th Heaven&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've only seen the series finale. It sucked bad.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;41&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/law-and-order-special-victims-unit/show/334/summary.html?tag=show_table;title;40"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Law &amp; Order: Special Victims Unit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I tried watching a couple shows. They were gross.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;42&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/friends/show/71/summary.html?tag=show_table;title;41"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Friends&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've watched more with Carol than I care to admit.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;43&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/csi-ny/show/24125/summary.html?tag=show_table;title;42"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;CSI: NY&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;44&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/friday-night-lights/show/58137/summary.html?tag=show_table;title;43"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Friday Night Lights&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;45&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/everwood/show/9008/summary.html?tag=show_table;title;44"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Everwood&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;46&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/dirt/show/60202/summary.html?tag=show_table;title;45"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Dirt&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;47&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/day-break/show/58017/summary.html?tag=show_table;title;46"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Day Break&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;48&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/survivor/show/4742/summary.html?tag=show_table;title;47"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Survivor&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;49&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/home-and-away/show/1580/summary.html?tag=show_table;title;48"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Home and Away&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;50&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/yu-gi-oh!-gx/show/35554/summary.html?tag=show_table;title;49"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Yu-Gi-Oh! GX&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;51&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/reba/show/1409/summary.html?tag=show_table;title;50"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Reba&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;52&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/rome/show/23351/summary.html?tag=show_table;title;51"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Rome&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;53&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/bleach/show/28625/summary.html?tag=show_table;title;52"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Bleach&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;54&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/hannah-montana/show/48004/summary.html?tag=show_table;title;53"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Hannah Montana&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 22px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;55&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/saturday-night-live/show/365/summary.html?tag=show_table;title;54"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Saturday Night Live&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've suffered through too many of these shows in the past trying to see something funny.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;56&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/studio-60-on-the-sunset-strip/show/58214/summary.html?tag=show_table;title;55"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Studio 60 on the Sunset Strip&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I tried watching a couple of the first episodes. Lame.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;57&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/my-name-is-earl/show/31988/summary.html?tag=show_table;title;56"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;My Name Is Earl&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;58&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/sex-and-the-city/show/456/summary.html?tag=show_table;title;57"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Sex and the City&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;59&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/dexter/show/62683/summary.html?tag=show_table;title;58"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Dexter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;60&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/medium/show/22414/summary.html?tag=show_table;title;59"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Medium&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;61&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/mythbusters/show/22839/summary.html?tag=show_table;title;60"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;MythBusters&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've seen a few of these. They're cool.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;62&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/weeds/show/28829/summary.html?tag=show_table;title;61"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Weeds&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;63&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-l-word/show/18662/summary.html?tag=show_table;title;62"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The L Word&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;64&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/seinfeld/show/112/summary.html?tag=show_table;title;63"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Seinfeld&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;65&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-sopranos/show/314/summary.html?tag=show_table;title;64"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Sopranos&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;* 66&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/las-vegas/show/17210/summary.html?tag=show_table;title;65"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;&lt;strong&gt;Las Vegas&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I enjoy watching Las Vegas.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;67&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/how-i-met-your-mother/show/33700/summary.html?tag=show_table;title;66"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;How I Met Your Mother&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;68&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/angel/show/12/summary.html?tag=show_table;title;67"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Angel&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;69&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/laguna-beach/show/29836/summary.html?tag=show_table;title;68"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Laguna Beach&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;70&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/deal-or-no-deal/show/48861/summary.html?tag=show_table;title;69"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Deal or No Deal&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Cool show. Howie is cool. I'll watch it occasionally.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;71&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/power-rangers/show/1905/summary.html?tag=show_table;title;70"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Power Rangers&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;72&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-super-bowl/show/51466/summary.html?tag=show_table;title;71"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Super Bowl&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Haven't watched the SuperBowl in about 9 years.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;73&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/inuyasha/show/13309/summary.html?tag=show_table;title;72"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Inuyasha&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;74&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-shield/show/8261/summary.html?tag=show_table;title;73"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Shield&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;75&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/shameless/show/22545/summary.html?tag=show_table;title;74"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Shameless&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;76&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/degrassi-the-next-generation/show/6810/summary.html?tag=show_table;title;75"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Degrassi: The Next Generation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;77&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/buffy-the-vampire-slayer/show/10/summary.html?tag=show_table;title;76"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Buffy the Vampire Slayer&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;78&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/rules-of-engagement/show/58087/summary.html?tag=show_table;title;77"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Rules of Engagement&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;79&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/law-and-order-criminal-intent/show/1381/summary.html?tag=show_table;title;78"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Law &amp; Order: Criminal Intent&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;80&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/aqua-teen-hunger-force/show/5485/summary.html?tag=show_table;title;79"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Aqua Teen Hunger Force&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;81&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-hills/show/48806/summary.html?tag=show_table;title;80"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Hills&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;82&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/ben-10/show/50455/summary.html?tag=show_table;title;81"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Ben 10&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;83&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/without-a-trace/show/7449/summary.html?tag=show_table;title;82"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Without a Trace&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;84&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/two-and-a-half-men/show/17206/summary.html?tag=show_table;title;83"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Two and a Half Men&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;85&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/live-with-regis-and-kelly/show/1689/summary.html?tag=show_table;title;84"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Live with Regis and Kelly&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;86&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/miami-ink/show/37627/summary.html?tag=show_table;title;85"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Miami Ink&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;87&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-dresden-files/show/50381/summary.html?tag=show_table;title;86"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Dresden Files&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;88&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-suite-life-of-zack-and-cody/show/28842/summary.html?tag=show_table;title;87"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Suite Life of Zack and Cody&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;89&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-4400/show/23350/summary.html?tag=show_table;title;88"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The 4400&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;90&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-x-files/show/61/summary.html?tag=show_table;title;89"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The X-Files&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;91&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/danny-phantom/show/8938/summary.html?tag=show_table;title;90"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Danny Phantom&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;92&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/spongebob-squarepants/show/3428/summary.html?tag=show_table;title;91"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;SpongeBob SquarePants&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;93&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-king-of-queens/show/239/summary.html?tag=show_table;title;92"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The King of Queens&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;I've watched some re-runs of this. Carol likes it.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;94&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-amazing-race/show/6686/summary.html?tag=show_table;title;93"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Amazing Race&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;95&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/entourage/show/27346/summary.html?tag=show_table;title;94"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Entourage&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;96&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/numb3rs/show/25043/summary.html?tag=show_table;title;95"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Numb3rs&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;97&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/pokémon/show/467/summary.html?tag=show_table;title;96"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;Pokémon&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;98&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/what-about-brian/show/32765/summary.html?tag=show_table;title;97"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;What About Brian&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;99&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/the-class/show/58057/summary.html?tag=show_table;title;98"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;The Class&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="BACKGROUND: #e9e9e9; HEIGHT: 20px"&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: white 1.5pt solid; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;100&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;a href="http://www.tv.com/high-school-musical/show/60221/summary.html?tag=show_table;title;99"&gt;&lt;span style="TEXT-DECORATION: underline;color:blue;" &gt;High School Musical&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: white 1.5pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" valign="bottom"&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;I thought it was interesting. I haven't seen any part of 79 of the most popular TV shows. And, there are only 4 or 5 that I watch regularly. Other than those 4 or 5 shows, I don't watch any TV.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I personally, would love to see this list by people like Robert Scoble, Scott Hanselman, and Scott Guthrie. I always hear other bloggers talking about their favorite shows, but honestly, where do they find/make the time for them!? What does your list look like?&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-2633463652034231914?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/2633463652034231914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=2633463652034231914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2633463652034231914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/2633463652034231914'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/02/top-tv-shows.html' title='Top TV Shows'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-7991476774637055401</id><published>2007-02-08T10:56:00.001-07:00</published><updated>2007-02-08T11:00:48.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Word 2007 Blogging</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;I really liked the possibilities presented in Microsoft's Live Writer, but it just wasn't all there. While reading Eric Nelson's recent entry about his &lt;a href="http://blogs.msdn.com/ericnel/archive/2007/02/06/my-first-blog-post-from-word-2007.aspx"&gt;first post from Word 2007&lt;/a&gt;, I just had to give it a go. It is working so far. I'm hopeful that this will make it quick enough to post more often and regularly. I guess we'll see.. Here is the url for more details from Microsoft: &lt;a href="http://office.microsoft.com/en-us/word/HA101640211033.aspx?pid=CH100626141033"&gt;http://office.microsoft.com/en-us/word/HA101640211033.aspx?pid=CH100626141033&lt;/a&gt;. Thanks Eric!&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-7991476774637055401?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/7991476774637055401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=7991476774637055401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/7991476774637055401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/7991476774637055401'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/02/word-2007-blogging.html' title='Word 2007 Blogging'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-1978544385345844971</id><published>2007-01-31T10:50:00.000-07:00</published><updated>2007-02-08T10:59:59.114-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='UAC'/><title type='text'>Disable those annoying UAC popups in Vista</title><content type='html'>Life Hacker has great articles. &lt;a href="http://www.lifehacker.com/software/vista/windows-vista-tip--disable-annoying-need-your-permission-to-continue-prompts-230866.php"&gt;Nuff said.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-1978544385345844971?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/1978544385345844971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=1978544385345844971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/1978544385345844971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/1978544385345844971'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/01/disable-those-annoying-uac-popups-in.html' title='Disable those annoying UAC popups in Vista'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-8804777988969999631</id><published>2007-01-22T19:42:00.001-07:00</published><updated>2007-02-08T11:02:12.411-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User-interface'/><title type='text'>New UI formulating..</title><content type='html'>&lt;p&gt;I think it's time to create a new UI for &lt;a href="http://www.wasatchwizard.com/"&gt;wasatchwizard.com&lt;/a&gt;, what do you think? I've had the current version the longest, by far, of any others. I'm pretty sure it has lasted so long because it is so plain. Any ideas?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-8804777988969999631?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/8804777988969999631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=8804777988969999631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8804777988969999631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/8804777988969999631'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/01/new-ui-formulaiting.html' title='New UI formulating..'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-116951717151729610</id><published>2007-01-22T18:52:00.000-07:00</published><updated>2007-02-08T11:03:16.986-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>The url CSS property and other frequent CSS pitfalls</title><content type='html'>I noticed that I have been using the url CSS property incorrectly in a lot of our pages. The correct syntax includes single quotes around the image path. For instance:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;td style="background:url(/Controls/images/rel_calc_chooser_b.gif) repeat-x;"&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;should be:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;td style="background:url('/Controls/images/rel_calc_chooser_b.gif') repeat-x;"&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Although, it usually doesn’t cause a problem with Internet Explorer and Firefox 2.0, it can cause some real mischief in older versions of Firefox and current versions of Opera and Safari. I am probably the worst at this, because I simply forget to type them or am usually copying and pasting paths and images into the editor.&lt;br /&gt;&lt;br /&gt;I’ve also noticed several other common mistakes as well.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Url paths in CSS files are relative to the stylesheet, not the calling document&lt;/li&gt;&lt;li&gt;Missing pound sign before hex colors&lt;/li&gt;&lt;li&gt;Hex colors that aren’t 3 or 6 characters long&lt;/li&gt;&lt;li&gt;Not including a generic font in font-family attributes (i.e.: font-family: Tahoma, Arial, sans-serif)&lt;/li&gt;&lt;/ul&gt;I'm horrible about putting in a generic font in my styles.&lt;br /&gt;&lt;br /&gt;Tracking down CSS-caused issues is usually a head-ache and quite often a nightmare. The Firefox console provides detailed CSS errors along with the JavaScript errors. It is a good habit to review the console watching for these errors when making changes.&lt;br /&gt;&lt;br /&gt;By the way, I found a great utility to clean up and streamline CSS code at &lt;a href="http://www.cleancss.com/"&gt;http://www.cleancss.com/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-116951717151729610?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/116951717151729610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=116951717151729610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116951717151729610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116951717151729610'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2007/01/url-css-property-and-other-frequent.html' title='The url CSS property and other frequent CSS pitfalls'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-116534162562993596</id><published>2006-12-05T10:59:00.000-07:00</published><updated>2007-02-08T11:03:54.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>The search for the Kim family and Google Maps!</title><content type='html'>I would like to help find the Kim family, but being about 800 miles away makes that almost impossible. Why not allow me to help on my lunch hour and during breaks at work and when I get home? Why not provide a way to help, for the thousands of others like me who want to volunteer their time? But how can I help?&lt;br /&gt;&lt;br /&gt;I can zoom into the suspected areas using Google Maps and help with the search, can’t I? Well, I could, if Google Maps was updated with current satellite imagery for the suspected locations!&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Google Maps Search and Rescue&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Without much effort, a network of thousands of people could be created to scour different maps looking for key targets. With regards to the Kim family, those targets would include their car on suspected routes and James himself walking towards the main road, etc. This would be possible if Google was given current satellite imagery from the government (or NAVTEQ or whoever) for the suspected locations and made them available on their site.&lt;br /&gt;&lt;br /&gt;Better yet, Google could create a special web-site specifically for Search and Rescue operations. The web-site would provide access to the date-time-specific satellite imagery. Volunteer searchers could be automatically linked in to help search different date-time-specific imagery (if available) for specific targets and provided links for instructions and images showing what the targets look like from the air and other tips.&lt;br /&gt;&lt;br /&gt;Google could even be allowed temporary access to the government’s high-resolution imagery satellites, for even more thorough coverage. The high-resolution images can get close enough to pinpoint and clearly read license plates!&lt;br /&gt;&lt;br /&gt;In my own community, it seems like there are at least a few kids who get lost each year camping somewhere along the Wasatch Mountains. We have a fantastic turnout of hundreds and sometimes thousands of people to help search for them. But, imagine getting additional thousands and maybe even tens of thousands of volunteers combing the same areas over and over! What a major benefit to finding missing people. This would significantly help during Amber alerts as well – something else worth volunteering for.&lt;br /&gt;&lt;br /&gt;My thoughts and prayers go out to the Kim family. What can I do to help?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-116534162562993596?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/116534162562993596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=116534162562993596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116534162562993596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116534162562993596'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/12/search-for-kim-family-and-google-maps.html' title='The search for the Kim family and Google Maps!'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-116525644788627595</id><published>2006-12-04T22:51:00.000-07:00</published><updated>2007-02-08T11:07:16.551-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Online Gaming'/><category scheme='http://www.blogger.com/atom/ns#' term='IRS'/><title type='text'>IRS wants to tax online gaming virtual assets</title><content type='html'>I was reading cnet news when I saw this.&lt;br /&gt;&lt;br /&gt;http://news.com.com/2100-1043_3-6140298.html?part=rss&amp;tag=2547-1_3-0-5&amp;amp;subj=news&lt;br /&gt;&lt;br /&gt;It is an article about the IRS and taxing online games such as Ultima Online, EverQuest, and undoubtedly World of Warcraft (although not specifically mentioned in the article).&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;"The question is when, not if, Congress and IRS start paying attention [...]"&lt;/span&gt; -- Dan Miller, senior economist&lt;br /&gt;&lt;br /&gt;That is completely asinine! Although people may purchase items in online worlds with real money, it isn't anything more than extensions or add-ons to their game. Let's face it, if the power goes off there is absolutely ZERO value associated with the items purchased. That's why they're called "virtual assets."&lt;br /&gt;&lt;br /&gt;Legally, citizens of the United States are already required to pay taxes on any and all income, including from the sale of virtual assets. I think they're seeing it in a similar way as they see taxation on real property (real estate). But, at least originally, property taxes are to pay for services such as emergency services, schools, etc. We don't need to be taxed on virtual assets when they don't provide ANYTHING whatsoever for it, nor are they even claiming a reason except a so called "estimated value."&lt;br /&gt;&lt;br /&gt;Let's role-play for a moment. Say, I have a castle and a massive army and weapons, etc. Now, let's say you, the ultimate barbaric druid witch king, comes in and slaughters everyone there and take possession of all of my assets. Cool, good job! Now, you owe real money in estate taxes.&lt;br /&gt;&lt;br /&gt;They, the retards who are actually considering virtual asset taxation, haven't even considered what to do if you (the real person behind the ultimate barbaric druid witch king) aren't a US citizen?&lt;br /&gt;&lt;br /&gt;What's next? Siege taxation? Employee taxes for your army? Worker's compensation and disability insurance? Where's OSHA to make sure you are providing a "safe" working environment on the battlefield? Where's the EPA ensuring you aren't polluting your virtual environment? It's ridiculous.&lt;br /&gt;&lt;br /&gt;This is just another attempt by the greedy bastards in Congress at (especially at) the IRS to collect tax for no reason and further justify the overall expense of the government and (especially the) IRS itself. In my mind, it's equivalent to when the US Postal Service was lobbying to charge a fee for everyone to send emails, EVEN THOUGH they had absolutely nothing to do with any part of it (i.e.: no stamps, not their software, servers, nor pipeline).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-116525644788627595?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/116525644788627595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=116525644788627595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116525644788627595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116525644788627595'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/12/irs-wants-to-tax-online-gaming-virtual.html' title='IRS wants to tax online gaming virtual assets'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-116525791447992841</id><published>2006-12-02T21:43:00.000-07:00</published><updated>2007-02-08T11:09:03.455-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smoke and Mirrors'/><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry'/><title type='text'>The $100 crack for BlackBerry is Crap</title><content type='html'>I have subscriptions to several technology magazines, mostly digital of course. I’ve always considered eWeek and InfoWorld a little different than the rest of the technology magazines and therefore those two were the ones I’d almost always read. I still only read other magazines/articles once I’ve already read everything that interests me from the other two. But, more and more, I’m reading eWeek less and less.&lt;br /&gt;&lt;br /&gt;I was disappointed when I read this article at eWeek. http://securitywatch.eweek.com/exploits_and_attacks/cracking_the_blackberry_with_a_100_key.html&lt;br /&gt;&lt;br /&gt;I still enjoy reading articles from my favorite eWeek authors, like Peter Coffee. But, the rest of it reminds me of tabloid newspapers. This is one of those cases. They made such a big deal about the $100 security crack for the BlackBerry. But, they completely failed to mention that it isn’t really a software security hole at all.&lt;br /&gt;&lt;br /&gt;They are claiming that by purchasing a $100 BlackBerry developer license you can create all kinds of security holes and in the real world, the only security hole on the BlackBerry (regarding this issue) is the user.. JUST like on a desktop PC or Pocket PC or PALM or any other device and/or operating system.&lt;br /&gt;&lt;br /&gt;They are trying to create a story about a security hole caused by the $100 license, when it is absolutely no different that any Joe downloading and running a Trojan application or game for any other operating system. This kind of journalism is too much like local TV news stations with their twelve second sound bytes. It’s downright irritating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-116525791447992841?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/116525791447992841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=116525791447992841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116525791447992841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116525791447992841'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/12/100-crack-for-blackberry-is-crap.html' title='The $100 crack for BlackBerry is Crap'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-116421781773845968</id><published>2006-11-22T10:43:00.000-07:00</published><updated>2007-02-08T11:08:40.264-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Idea'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Stars!</title><content type='html'>I was working with the Google Maps API again today and was thinking what other things could be done with the same technology. And, I came up with a great idea for it.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Presenting Google Stars&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It would be totally cool to be able to navigate the stars using the Google Maps interface. I bet it wouldn't take much to get something like that up and running provided they can get the images without much hassle. You could have all sorts of overlays for constellations and regions of outer space.&lt;br /&gt;&lt;br /&gt;It would be enjoyable time spent for many more millions of Googlians.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-116421781773845968?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/116421781773845968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=116421781773845968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116421781773845968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/116421781773845968'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/11/google-stars.html' title='Google Stars!'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115894179597560913</id><published>2006-09-22T09:16:00.000-07:00</published><updated>2007-02-08T11:10:03.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>Rory Really Rocks</title><content type='html'>That's about all I wanted to say. Rory Blyth is an totally funny.&lt;br /&gt;&lt;br /&gt;I've enjoyed his blog for about a while now and his excellent development info for Windows Mobile devices, but his podcast is totally freaking hilarious! Check it out here: &lt;a href="http://thesmartestman.com/default.aspx"&gt;http://thesmartestman.com/default.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first post is completely off the wall funny! I had a hard time not busting up at work. Good luck finding a job, by the way. If only we had a helipad... I'm sure you would've been welcomed here..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115894179597560913?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115894179597560913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115894179597560913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115894179597560913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115894179597560913'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/09/rory-really-rocks.html' title='Rory Really Rocks'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115876944156151995</id><published>2006-09-20T09:24:00.000-07:00</published><updated>2007-02-08T11:09:26.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='Idea'/><title type='text'>Online phonebooks</title><content type='html'>I would really like an online phone book that didn't suck. It is sometimes impossible to find local companies online. Why is that? I would really like to be able to use the local phone book company's website, since the books themselves are very useful. But their site really sucks. Have you seen &lt;a href="http://www.dexonline.com/"&gt;http://www.dexonline.com/&lt;/a&gt;? It's horrible to browse for businesses.&lt;br /&gt;&lt;br /&gt;The only good thing about it is that I can store a list of places I frequently look for in a personal online address book.&lt;br /&gt;&lt;br /&gt;For instance, I'm looking for a local bookkeeper. I can find the section online, but the site doesn't provide anything but the business name and contact information (usually). I can't see their advertisements or any features that each company offers over the other. And, there aren't any links to the business's websites either. That's lame!&lt;br /&gt;&lt;br /&gt;What is really annoying too is that the site shows the "featured results" that are probably the people who spent the money to advertise in the book, but there still isn't anything provided that would help people decide them over anyone else. I bet that is even more annoying to the businesses who paid a LOT of money to do advertisements in the book and aren't given anything on the web for it.&lt;br /&gt;&lt;br /&gt;Eventually, the local phone book companies are going to go out of business I think. They just aren't going to have enough business to make it cost effective or worthwhile for even the phone company.&lt;br /&gt;&lt;br /&gt;And, it's sad just how easy it would be to create a website that would mimic how the pages of the book look and behave. Then you'd have an extremely useful web application that people would actually use. It would only take me a few hours to create the UI. Maybe the phone book companies should take notes!? Or, at least give me a call for some consulting work.. &lt;img height="22" alt="8^)" src="http://www.wasatchwizard.com/personal/blog/images/Smiley.png" width="19" align="absMiddle" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115876944156151995?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115876944156151995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115876944156151995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115876944156151995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115876944156151995'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/09/online-phonebooks.html' title='Online phonebooks'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115809516359311459</id><published>2006-09-10T20:59:00.000-07:00</published><updated>2007-02-08T11:10:35.486-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>JavaScript-based XML parser</title><content type='html'>I've been doing a lot JavaScript lately for my new job. We're creating a dashboard for our web-site that is totally cool! One of several things that I have licensed to my new employer is my JavaScript-based XML parser. We're using this on the user-agent to load the widgets without having to talk to our server. Eventually, we will even allow using other companies widgets or gadgets or whatever they are called at the time.&lt;br /&gt;&lt;br /&gt;I think that'd be a great feature for one of the big boys (i.e.: Google, MSN, Yahoo, PageFlakes, etc.) to support the others' widgets as well.&lt;br /&gt;&lt;br /&gt;But, in the real world there is a problem with that though. Just like when an operating system supports applications from another, there comes a time when the developers wonder why they should create anything for OS A when all of OS B's applications will work on A.. (Just refer to OS/2 for more details..)&lt;br /&gt;&lt;br /&gt;Anyway.. I put a basic page up recently for my parser at &lt;a href="http://www.wasatchwizard.com/dev/JavaScript/XmlParser/Default.aspx"&gt;http://www.wasatchwizard.com/dev/JavaScript/XmlParser/Default.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll add some examples and basically a bunch of test-cases for it soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115809516359311459?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115809516359311459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115809516359311459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115809516359311459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115809516359311459'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/09/javascript-based-xml-parser.html' title='JavaScript-based XML parser'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115591472851983632</id><published>2006-08-18T05:58:00.000-07:00</published><updated>2007-02-08T11:11:24.144-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Favorites'/><title type='text'>Media players?</title><content type='html'>My wife, Carol, asked me recently what media player I use and what I suggested for her to start using. That got me thinking about what I use myself and I was curious what others did, as well. I think I might be a bit different from most people on this though. I have almost every player installed on every machine, but I have a dominant favorite and use only that one on different machines. I’ll explain why later.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Listening to music&lt;/span&gt;&lt;br /&gt;At home I use MusicMatch.&lt;br /&gt;At work I use WinAmp.&lt;br /&gt;On my laptop I use WinAmp or MusicMatch.&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Watching videos&lt;/span&gt;&lt;br /&gt;I use Windows Media Player (and QuickTime when needed) on all computers.&lt;br /&gt;&lt;br /&gt;I predominantly use WinAmp over the others because it is the most light-weight. For instance, it doesn’t take 15 seconds to update the UI (like iTunes) and doesn’t lock up (like MusicMatch). But, I don’t like watching videos in WinAmp, because it clears out the play list and I lose my current song. I consider it the “old faithful” of the players. It is fast, stable, and reliable. But, it’s for music only.&lt;br /&gt;&lt;br /&gt;MusicMatch is overall my favorite player, but it hangs occasionally. It does this enough that I’m hesitant to put it on my laptop because it gets really annoying. MusicMatch also requires more processor than WinAmp to play music. MusicMatch is also my favorite for ripping music from audio CD’s. I don’t rip with anything else.&lt;br /&gt;&lt;br /&gt;iTunes has a nice UI to look at, but it’s so slow it irritates me too much to use it. It also uses way too much of my CPU to play music (and I have a fast machine). It has some stability issues as well. Since, I don’t own an iPod, I really only have it installed at all because I use it to purchase and download music, then burn it or convert it to MP3 format so I can play it in MusicMatch or WinAmp.&lt;br /&gt;&lt;br /&gt;I always use Windows Media Player for videos, unless it is in QuickTime format. I like the UI for videos, but not so much for music. The WMP 10 beta looks really promising, though. The new album layout is great, although the more single tracks I have and continue to purchase, the more dead space is generated. They might consider shrinking the album art when there aren’t enough songs to take up the space.&lt;br /&gt;&lt;br /&gt;So, overall all, my favorite player is MusicMatch. The player I use most, however, is WinAmp. The most important thing to me is still that it is light-weight and fast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115591472851983632?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115591472851983632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115591472851983632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115591472851983632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115591472851983632'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/08/media-players.html' title='Media players?'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115576702485742961</id><published>2006-08-16T15:21:00.000-07:00</published><updated>2007-02-08T11:12:03.846-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Found this list of good interview questions..</title><content type='html'>&lt;a href="http://forums.asp.net/thread/1213945.aspx"&gt;http://forums.asp.net/thread/1213945.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115576702485742961?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115576702485742961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115576702485742961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115576702485742961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115576702485742961'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/08/found-this-list-of-good-interview.html' title='Found this list of good interview questions..'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115514206277075568</id><published>2006-08-09T09:45:00.000-07:00</published><updated>2007-02-08T11:12:38.900-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>Time breakdown of modern web development</title><content type='html'>My little brother sent me this.. it's funny until you realize how true it is..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3901/50/1600/6a00c2251d2492f21900c225207881f219.gif"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3901/50/400/6a00c2251d2492f21900c225207881f219.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He found it here: &lt;a href="http://a1.vox.com/6a00c2251d2492f21900c225207881f219-pi"&gt;http://a1.vox.com/6a00c2251d2492f21900c225207881f219-pi&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115514206277075568?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115514206277075568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115514206277075568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115514206277075568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115514206277075568'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/08/time-breakdown-of-modern-web.html' title='Time breakdown of modern web development'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115460792384141990</id><published>2006-08-01T18:17:00.000-07:00</published><updated>2007-02-08T11:13:02.701-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Returning dynamic Xml from C# web services</title><content type='html'>A co-worker and I spent a while trying to figure out how to return custom XML content from a C# web service. We were trying to figure out how to get our content assigned into a struct (that was being returned) without it encoding our XML tags. It wasn't going to happen. Then he thought of a great idea. He set an XmlNode as the return object. So, we built our XML content in memory as before and simply returned that object. Doing this we able to return any XML data without having to know what it will be before hand.&lt;code&gt;&lt;pre&gt;[WebMethod]&lt;br /&gt;public XmlNode GetDynamicXml()&lt;br /&gt;{&lt;br /&gt;   XmlDocument myXmlDocument = new XmlDocument();&lt;br /&gt;   // load xml content or build it up dynamically, etc&lt;br /&gt;   return myXmlDocument.DocumentElement;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;I thought it was a clever use of the technology considering the limited alternatives..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115460792384141990?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115460792384141990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115460792384141990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460792384141990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460792384141990'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/08/returning-dynamic-xml-from-c-web.html' title='Returning dynamic Xml from C# web services'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115460924935289850</id><published>2006-07-31T22:18:00.000-07:00</published><updated>2006-08-03T05:50:01.113-07:00</updated><title type='text'>From casual looker to new employee</title><content type='html'>Well.. what can I say. I started as a casual job looker - just to see what was out there. Within the flood of dozens of job openings I received from Monster, most of which would have been a fairly good match, I found three in particular that really whet my appetite. Two Windows CE-based development positions - which is what I originally sought after - and one ASP.net/C# senior-level engineer. &lt;br /&gt;&lt;br /&gt;I discounted one of the Windows CE jobs due to its location, but the other one was sounding better and better. My wife said she would enjoy moving to Spokane Washington for this job. But, after a couple of days talking to both companies, I actually wanted the ASP.net job more! What an odd turn of events.&lt;br /&gt;&lt;br /&gt;As much as I wanted a Windows CE engineer position, it wasn't as good as this. Let just say also that the Windows CE position was &lt;span style="font-style:italic;"&gt;everything&lt;/span&gt;, literally, that I was originally looking for. When it came down to it, I chose to stay with ASP.net. I think perhaps that was really what I wanted all along. Because I've been so bored with what I do now, I attributed this to the technology and not to where I was and what I was doing there.. I couldn't see that I had become so annoyed and frustrated in my position that I wanted out. Now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115460924935289850?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115460924935289850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115460924935289850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460924935289850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460924935289850'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/07/from-casual-looker-to-new-employee.html' title='From casual looker to new employee'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115460850078126953</id><published>2006-07-27T10:33:00.000-07:00</published><updated>2006-08-03T06:03:16.656-07:00</updated><title type='text'>Monster response</title><content type='html'>Honestly, I’m shocked at how many responses I’ve had from monster.com! Wow!! I had to make my resume no longer searchable. For real! I have had over 30 companies and recruiters contact me talking about jobs. It was difficult for the first few, so I had to resort to measures that I hope didn’t offend anyone. I didn’t want to waste anyone’s time, especially being a casual browser, so I sent everyone who contacted me the following cover letter. Was it too much? I don’t know, but most of the people I sent it to were very appreciative and thanked me for not puttering around talking about some job I knew I wasn’t going to be interested in. (I think it’s called being honest or integrity or something like that..)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I appreciate your email, but I want to be sure I don't waste your time. So..&lt;br /&gt;&lt;br /&gt;I won't consider leaving my current position for less than $&amp;lt;insanely large yearly salary&amp;gt; per year for permanent or about $&amp;lt;insanely large hourly wage&amp;gt;/hr for contracting. That is consistent with other offers I've recently received.&lt;br /&gt;&lt;br /&gt;I have very high requirements for the jobs I look at, such as compensation, the company itself, and what I would be working on. I sometimes come across, especially during the interview process, as a puffy, arrogant person. I'm not. I know what I'm doing and I am confident in my existing knowledge and my abilities to learn new things exceptionally quick. But, I'm actually a quite nice, friendly and supportive person. I share my knowledge freely with others and hope that I can learn from others (and usually do).&lt;br /&gt;&lt;br /&gt;Anyway, I am looking specifically for a Windows CE development position including Pocket PC, Windows Mobile, and CE.net thin clients (Wyse, Neoware, etc). If you have any jobs with Pocket PC, Windows Mobile, Windows CE.net, or BlackBerry positions, please let me know!&lt;br /&gt;&lt;br /&gt;Again, please don't mistake my being picky about jobs and being upfront with arrogance or showmanship.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;What do you think? Are you doing or have you done anything similar in the past with good or bad results?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115460850078126953?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115460850078126953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115460850078126953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460850078126953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460850078126953'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/07/monster-response.html' title='Monster response'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115460743469267859</id><published>2006-07-18T17:09:00.000-07:00</published><updated>2006-08-03T05:17:14.773-07:00</updated><title type='text'>Looking for a new job..</title><content type='html'>I'm now officially on the market for a new job. I'm only casually looking to see what is out there. If you know of any good senior-level positions in the Salt Lake valley or a Windows CE engineer position please let me know. Windows CE has become my passion and I don’t get to do enough of it where I’m at, so...&lt;br /&gt;&lt;br /&gt;I'm still working full-time and I haven't given notice, yet. I guess I’m just curious about what I’m missing. There's probably not enough reason to leave, I suppose. I have a good job at a stable company. I make good money. There are a few things however that I don’t agree with going on at my current employer. There are a lot of broken promises. There are too many plain old-fashioned lies going around. It seems that no one in the industry (I’m including most industries by this shameful blanket statement) can be honest. It’s all about me, me, me... well, them, them, them…&lt;br /&gt;&lt;br /&gt;Anyway, I won’t bore you with the specifics at this time. If you do know of a cool job, please let me know at &lt;a href="mailto:kody@bricksoft.com"&gt;kody@bricksoft.com&lt;/a&gt;. Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115460743469267859?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115460743469267859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115460743469267859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460743469267859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460743469267859'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/07/looking-for-new-job.html' title='Looking for a new job..'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115213208269922465</id><published>2006-07-05T13:41:00.000-07:00</published><updated>2007-02-08T11:13:23.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utility'/><category scheme='http://www.blogger.com/atom/ns#' term='LANDesk'/><category scheme='http://www.blogger.com/atom/ns#' term='Handheld Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Windows CE file scanner</title><content type='html'>I created a utility a while back for getting specific file details that LDHM doesn't already get. Someone asked for it on the LANDesk forums, so I took my lunch hour today and made it available on my web-site.&lt;br /&gt;&lt;br /&gt;When run on a Windows CE-based device, it will scan specified folders and/or files and output the information to an LDMS-based BNF file (plain-text). It contains no user-interface, but works very nicely. Check it out&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wasatchwizard.com/downloads/ScanFiles.aspx"&gt;http://www.wasatchwizard.com/downloads/ScanFiles.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keywords: LANDesk, LDMS, LDHM, Handheld Manager, ldscnhlp.ini, ldappl&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115213208269922465?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115213208269922465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115213208269922465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115213208269922465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115213208269922465'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/07/windows-ce-file-scanner.html' title='Windows CE file scanner'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115144204986941453</id><published>2006-06-27T14:00:00.000-07:00</published><updated>2006-06-27T14:03:17.396-07:00</updated><title type='text'>Dealing with the System.Windows.Forms.NumericUpDown</title><content type='html'>I ran into quite an annoying little .Net framework bug today. At least, I'm assuming it's a bug since I didn't notice any documentation explaining.&lt;br /&gt;&lt;br /&gt;When I set the Minimum and Maximum values, you'd think that you wouldn't be able to enter a value outside that range, right? So would I. Unfortunately, it doesn't work out that way.. at least not at first.&lt;br /&gt;&lt;br /&gt;Apparently, there is a bug in the events of the NumericUpDown control that prevent limiting or restricting the user input when done via the keyboard. The only way I could get the control to not allow letters into the field was by implementing two of its events. Implementing more than these two seems fine, but these two must be there together or it doesn't work.&lt;br /&gt;&lt;br /&gt;What you do in the events does not matter if you at least access the e.KeyValue and numericUpDown.Value values within each event. That's all it took to get my code working.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;private void numericUpDown_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)&lt;br /&gt;{&lt;br /&gt;   string fixdotnet = string.Format("numericUpDown_KeyDown {0}, {1}", e.KeyValue, numericUpDown.Value);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void numericUpDown_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)&lt;br /&gt;{&lt;br /&gt;   string fixdotnet= string.Format("numericUpDown_KeyUp {0}, {1}", e.KeyValue, numericUpDown.Value);&lt;br /&gt;}&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Another interesting tidbit is that the &lt;code&gt;Validating&lt;/code&gt; event would not fire AT ALL, unless I accessed the numericUpDown.Value field. Now, that's annoying.&lt;br /&gt;&lt;br /&gt;I've cleaned the source up, created sample projects, removed/added/re-added controls, and closed Visual Studio .Net 2003 and tried again. Nothing seems to fix it.. Anyone have any ideas other than this workaround?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115144204986941453?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115144204986941453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115144204986941453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115144204986941453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115144204986941453'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/dealing-with-systemwindowsformsnumeric.html' title='Dealing with the System.Windows.Forms.NumericUpDown'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115142078293637956</id><published>2006-06-27T06:36:00.000-07:00</published><updated>2006-06-27T08:06:55.896-07:00</updated><title type='text'>CVS commands</title><content type='html'>I usually just use TortoiseCVS when working by hand and csbatch files for automation. I generally don't use the command-line anymore. But, when I'm configuring a new module, setting up new files that I need to get often I always seem to forget the little details about CVS commands.&lt;br /&gt;&lt;br /&gt;So, I go looking for a quick reference. I should create my own, maybe I will. For now, I found this great reference here: &lt;a href="http://www.cs.ucsb.edu/~acha/courses/99/fall/cvs.html"&gt;http://www.cs.ucsb.edu/~acha/courses/99/fall/cvs.html&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115142078293637956?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115142078293637956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115142078293637956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115142078293637956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115142078293637956'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/cvs-commands.html' title='CVS commands'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115460688419204397</id><published>2006-06-27T04:57:00.000-07:00</published><updated>2006-08-03T05:08:04.573-07:00</updated><title type='text'>CSBatch, a C#-based Windows Batch file preprocessor</title><content type='html'>It seems that I use batch files for everything these days. Whether I'm copying executables and dll's to a test server or creating efficient builds, batch files are a main stable that won’t go away anytime soon. Yes, even after spending over a year creating new and updating existing NAnt scripts I still prefer using batch files for anything other than very large build scripts. And to be honest it still probably isn’t worth it. Especially since I created csbatch.&lt;br /&gt;&lt;br /&gt;CSBatch is a batch file preprocessor of sorts. It allows me to create a .csbat file, associate it with my csbatch.exe, and add new commands to the standard set of batch file commands. For instance, I can create functions and if else statements that include more than one line of code.&lt;br /&gt;&lt;br /&gt;Probably one of the best things is that the .csbat file is parsed (on the fly) into a standard .bat file that will run on any Windows machine, without the need for the csbatch.exe executable. That’s cool!&lt;br /&gt;&lt;br /&gt;Anyway, for more information check out my website at: &lt;a href="http://www.wasatchwizard.com/downloads/CSBatch.aspx"&gt;http://www.wasatchwizard.com/downloads/CSBatch.aspx&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115460688419204397?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115460688419204397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115460688419204397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460688419204397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115460688419204397'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/csbatch-c-based-windows-batch-file.html' title='CSBatch, a C#-based Windows Batch file preprocessor'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115135875742392187</id><published>2006-06-26T14:49:00.000-07:00</published><updated>2006-06-26T14:52:37.696-07:00</updated><title type='text'>FolderExists()</title><content type='html'>I haven't found a good method to check if a folder exists in non-managed C++, so I thought I'd post what I came up with. This also works with Windows CE, too.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;bool FolderExists(TCHAR *szPath)&lt;br /&gt;{&lt;br /&gt;   DWORD dwAttr = GetFileAttributes(szPath);&lt;br /&gt;   if (dwAttr &amp; FILE_ATTRIBUTE_DIRECTORY)&lt;br /&gt;   {&lt;br /&gt;      return TRUE;&lt;br /&gt;   }&lt;br /&gt;   return FALSE;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Bear in mind, however, that this could also return false if there was a permissions error. I'll let you expand upon it as like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115135875742392187?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115135875742392187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115135875742392187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115135875742392187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115135875742392187'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/folderexists.html' title='FolderExists()'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115030548407732171</id><published>2006-06-14T10:17:00.000-07:00</published><updated>2006-06-14T10:18:05.730-07:00</updated><title type='text'>Show Tasks in Windows CE</title><content type='html'>I created a new utility for Windows CE users and/or developers. It is a simple application that lists running processes and allows you to terminate them. It has been very useful in my development and support of CE.net-based thin clients.&lt;br /&gt;&lt;br /&gt;Check it out here: &lt;a href="http://www.wasatchwizard.com/downloads/ShowTasks.aspx"&gt;http://www.wasatchwizard.com/downloads/ShowTasks.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115030548407732171?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115030548407732171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115030548407732171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115030548407732171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115030548407732171'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/show-tasks-in-windows-ce.html' title='Show Tasks in Windows CE'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115031130509375413</id><published>2006-06-12T11:26:00.000-07:00</published><updated>2006-06-14T11:55:05.386-07:00</updated><title type='text'>Blog websites: Only show me unread posts</title><content type='html'>It would be very cool to have a blogger website that provides user accounts (for free of course, or maybe not) that allow you to read through their posts and mark each one as read when finished. This is very similar if not identical to how WebGator Online works - only I want to see the author’s colors, theme, etc.&lt;br /&gt;&lt;br /&gt;There are several benefits to this being part of the blog website itself, not to detract from WGO.&lt;br /&gt;&lt;br /&gt;My biggest reason for wanting this is that when I go to Scobleizer’s blog, for instance, I would only see the posts that I haven’t read yet. That’d be cool. I could still view his homepage/blog site from within my choice of aggregator such as NewsGator Online. But, now it would have his theme, his environment.&lt;br /&gt;&lt;br /&gt;Why bother? Well, for me I feel like I get more from the blogs I read when they are surrounded by the author’s design choices, including font, colors, images, style, etc. I think the real difference is this: instead of having the news read to me by a monotonous reporter, the person making the news gives it to me directly in all of their flare. When I read blogs in a plain’ol viewer like Outlook (including 2007) and other plain-vanilla readers each blog is presented in black and white, same for each, with less expression. When viewed on the author’s site it is presented in full color in the way the author wants you to see it.&lt;br /&gt;&lt;br /&gt;This could be as simple as setting a cookie on my browser to show only newer items or as detailed as creating a free user account with the blog site. A way to re-use your existing account(s) on blogger and the like would be very nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115031130509375413?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115031130509375413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115031130509375413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115031130509375413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115031130509375413'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/blog-websites-only-show-me-unread.html' title='Blog websites: Only show me unread posts'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-115030891674777640</id><published>2006-06-07T11:10:00.000-07:00</published><updated>2006-06-14T11:15:17.006-07:00</updated><title type='text'>DevReadiness.org</title><content type='html'>I found this great resource for Windows Presentation Foundation (Avalon) development. I don't know how I missed this over the last couple of months..&lt;br /&gt;&lt;br /&gt;"Welcome to DevReadiness.org - the community site dedicated to helping you, the developer, get your application ready for new the Microsoft platform.  Here you will find the technical information needed to help get your applications to interoperate with Windows Vista today.  Get ahead of the building customer demand for the next generation of Windows platform."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devreadiness.org/default.aspx"&gt;http://devreadiness.org/default.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-115030891674777640?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/115030891674777640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=115030891674777640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115030891674777640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/115030891674777640'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/devreadinessorg.html' title='DevReadiness.org'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114952002996153793</id><published>2006-06-04T16:17:00.000-07:00</published><updated>2006-06-05T08:07:10.483-07:00</updated><title type='text'>BeOS still ranked in seventh place?</title><content type='html'>I thought it was pretty interesting that BeOS was ranked seventh place in operating systems Overall Usability and Quality ranking by Scot Finnie. Considering that it is over six years old, that's saying quite a lot! &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.computerworld.com/html/collateral/msvistatour/02introchart.html"&gt;http://www.computerworld.com/html/collateral/msvistatour/02introchart.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course, those that used BeOS (and some still do) know that it would be more appropriately ranked third in this list. Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114952002996153793?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114952002996153793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114952002996153793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114952002996153793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114952002996153793'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/beos-still-ranked-in-seventh-place.html' title='BeOS still ranked in seventh place?'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114955398733321833</id><published>2006-06-01T12:21:00.000-07:00</published><updated>2006-06-05T17:35:39.273-07:00</updated><title type='text'>C# desktop programming assessment</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3901/50/1600/cs-assessment.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3901/50/320/cs-assessment.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I took the free Microsoft® Windows®-based Client Development with Microsoft Visual Studio® 2005 and Microsoft Visual C#® assessment exam online today during lunch. There were a couple of areas that I wasn't familar with so I guestimated. I got highest score, too, which was surprising!? I think 73% is a passing grade for the MCSD exams. Maybe I should go get certified?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://assessment.learning.microsoft.com/test/home.asp#15"&gt;http://assessment.learning.microsoft.com/test/home.asp#15&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114955398733321833?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114955398733321833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114955398733321833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114955398733321833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114955398733321833'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/06/c-desktop-programming-assessment.html' title='C# desktop programming assessment'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114862319699848715</id><published>2006-05-25T22:53:00.000-07:00</published><updated>2006-05-25T23:01:58.956-07:00</updated><title type='text'>Excellent sidebar content for web developers!</title><content type='html'>A friend showed me a great resource for web developers using the Opera web browser. There are several panels that provide instant links to technical references, such as CSS 2.1 attribute specification. As soon as I saw them working in Opera I fell in love them. Once I was sure they were web-pages, I knew I could use them in Firefox as well.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://people.opera.com/rijk/panels/css2.1-online/prop-visual.html"&gt;http://people.opera.com/rijk/panels/css2.1-online/prop-visual.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Open the link above in Firefox, create a bookmark out of it. Open the properties of the bookmark you've just created and select "Load this bookmark in the sidebar". Click on the bookmark to load the page in the sidebar..&lt;br /&gt;&lt;br /&gt;Now, that great resource is available in Firefox, too. I don't really care about IE, sorry. 8^)&lt;br /&gt;&lt;br /&gt;There are several additional, really good pages here: &lt;a href="http://people.opera.com/rijk/panels/"&gt;http://people.opera.com/rijk/panels/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114862319699848715?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114862319699848715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114862319699848715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114862319699848715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114862319699848715'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/05/excellent-sidebar-content-for-web.html' title='Excellent sidebar content for web developers!'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114848414755164211</id><published>2006-05-24T08:21:00.000-07:00</published><updated>2006-05-24T08:39:12.016-07:00</updated><title type='text'>File permissions for normal users vs. locked-down users</title><content type='html'>This table details the permissions and ability to write files in the specified folders per user.&lt;br /&gt;&lt;table border="0" cellpadding="3" cellspacing="1"&gt;&lt;tr&gt;&lt;td style="background-color:#bbb;"&gt;All versions of Windows&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;SYSTEM account&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;Locked-down user&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;Normal user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Windows\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;unknown&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Windows\System32&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;unknown&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Program Files\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="7"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#bbb;"&gt;Windows 9x specific&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;SYSTEM account&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;Locked-down user&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;Normal user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Windows\Profiles\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Windows\Profiles\&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Windows\Profiles\&amp;lt;user&amp;gt;\Application Data&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Windows\Application Data\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="7"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#bbb;"&gt;Windows NT/2000/XP specific&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;SYSTEM account&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;Locked-down user&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#bbb;"&gt;Normal user&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Documents and Settings\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Documents and Settings\All Users\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;&lt;nobr&gt;C:\Documents and Settings\All Users\Application Data&lt;/nobr&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Documents and Settings\&amp;lt;user&amp;gt;\&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color:#f0f0f0;"&gt;C:\Documents and Settings\&amp;lt;user&amp;gt;\Application Data&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;No&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="background-color:#f0f0f0;"&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114848414755164211?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114848414755164211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114848414755164211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114848414755164211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114848414755164211'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/05/file-permissions-for-normal-users-vs.html' title='File permissions for normal users vs. locked-down users'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114773008396722047</id><published>2006-05-15T14:50:00.000-07:00</published><updated>2006-05-15T14:54:44.390-07:00</updated><title type='text'>Using shared C# source files between multiple Visual Studio.Net 2003 projects</title><content type='html'>I have tried hacking this many times and no one seems to think it was possible. But, alas.. someone was paying attention to the details.&lt;br /&gt;&lt;br /&gt;The following article describes how to include an existing "common" .cs file in your Visual Studio.Net 2003 projects. "... right-click your project in Solutions Explorer, and select Add Existing Item.  Browse to your shared C# source file, then click the unnoticeable little dropdown arrow next to the Open button.  See the ctxmenu item entitled "Link File"?  That's your man."&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/savanness/archive/2003/07/22/10417.aspx"&gt;http://weblogs.asp.net/savanness/archive/2003/07/22/10417.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114773008396722047?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114773008396722047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114773008396722047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773008396722047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773008396722047'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/05/using-shared-c-source-files-between.html' title='Using shared C# source files between multiple Visual Studio.Net 2003 projects'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114773137555348024</id><published>2006-05-11T15:55:00.000-07:00</published><updated>2006-05-15T15:17:00.146-07:00</updated><title type='text'>Disable built-in support for zip files in Windows</title><content type='html'>I am tired of waiting for Windows Explorer to load and cache every zip file in the folder I am trying to display. So, John sent this to me:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/RegistryTips/Disable-Hide/DisableWindowsXPsbuiltinzipsupport.html"&gt;http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/RegistryTips/Disable-Hide/DisableWindowsXPsbuiltinzipsupport.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In short, run the following command to disable it:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:courier new;"&gt;regsvr32 /u %windir%\system32\zipfldr.dll&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But, you'll need to rename or delete the&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; zipfldr.dll file to make it permanent, see Chris' comments at the end of the article.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Maybe I'll go searching for a setting to disable checking if every network share is connected when I haven't clicked on them.. ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114773137555348024?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114773137555348024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114773137555348024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773137555348024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773137555348024'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/05/disable-built-in-support-for-zip-files.html' title='Disable built-in support for zip files in Windows'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114773176493288221</id><published>2006-04-17T17:22:00.000-07:00</published><updated>2006-05-15T15:23:17.493-07:00</updated><title type='text'>Atlas tasks project walk-through</title><content type='html'>The previous releases of Atlass weren't even worth looking at, let alone installing it. The latest release, however, look fantastic! I was especially impressed by how easy it is to extend your current datagrid and lists to use AJAX. Very nice. Here's the tasks walk-through video:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/8/5/8/85803fdd-fe9a-4783-ab37-e0c565172ffd/asp_net_atlas.wmv"&gt;http://download.microsoft.com/download/8/5/8/85803fdd-fe9a-4783-ab37-e0c565172ffd/asp_net_atlas.wmv&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114773176493288221?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114773176493288221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114773176493288221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773176493288221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773176493288221'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/04/atlas-tasks-project-walk-through.html' title='Atlas tasks project walk-through'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-114773067439156028</id><published>2006-03-19T02:17:00.000-07:00</published><updated>2006-05-15T15:05:20.706-07:00</updated><title type='text'>Updated my personal site UI</title><content type='html'>I spent some time this evening (and morning) updating my site to a new layout I've been thinking of lately. It is much more clean and easy to navigate and uses less bandwidth, so the page comes off my cable modem much quicker!&lt;br /&gt;&lt;br /&gt;Check it out at &lt;a href="http://www.wasatchwizard.com/"&gt;http://www.wasatchwizard.com/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-114773067439156028?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/114773067439156028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=114773067439156028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773067439156028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/114773067439156028'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2006/03/updated-my-personal-site-ui.html' title='Updated my personal site UI'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113514571105346361</id><published>2005-12-20T23:15:00.000-07:00</published><updated>2005-12-20T23:28:36.626-07:00</updated><title type='text'>Create virtual directories in IIS using VBScript</title><content type='html'>I created a cool little utility recently that creates or removes a virtual directory in IIS by passing in the folder and name. It has saved me a lot of time already, just in the last few days by allowing me to drag a folder onto it. When I drop a folder onto the script it will ask for the name of the virtual directory to create.&lt;br /&gt;&lt;br /&gt;What I thought was kind of cool is the LaunchItInCScript() method. You see, when you run a script file from within WScript.exe (which is default for Windows XP) you don’t have access to the WScript.StdOut, WScript.StdIn, and WScript.StdErr objects. Since, this is a build utility and I don’t want any message boxes during a build I only want to output the status to the console.&lt;br /&gt;&lt;br /&gt;The LaunchItInCScript() method will run the same script file via cscript.exe then close itself. This way I can double-click the script in Windows Explorer and it will automatically run it within cscript.exe, instead of WScript. (I know that I can change the Windows script host default from WScript.exe to cscript.exe, but for most utilities I prefer them to run in WScript.exe with a user-interface.)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Lucida Console;"&gt;&lt;br /&gt;Sub CreateVDir(folderPath, virtualDirName)&lt;br /&gt;  On Error Resume Next&lt;br /&gt;  Dim objIIS&lt;br /&gt;  Set objIIS = GetObject("IIS://localhost/W3SVC/1/Root")&lt;br /&gt;&lt;br /&gt;  If Err.Number &lt;&gt; 0 Then&lt;br /&gt;     WScript.StdOut.WriteLine "Could not connect to IIS. Is IIS installed?"&lt;br /&gt;     Exit Sub&lt;br /&gt;  End If&lt;br /&gt;  On Error Goto 0&lt;br /&gt;&lt;br /&gt;  On Error Resume Next&lt;br /&gt;  Set oVirDir = objIIS.Create("IIsWebVirtualDir", virtualDirName)&lt;br /&gt;  If Err.Number &lt;&gt; 0 Then&lt;br /&gt;     ' most likely the vdir already exists.&lt;br /&gt;     WScript.StdOut.WriteLine "Could not create the '" &amp; virtualDirName &amp;amp; "' virtual directory. Does it already exist?"&lt;br /&gt;     Exit Sub&lt;br /&gt;  End If&lt;br /&gt;  On Error Goto 0&lt;br /&gt;&lt;br /&gt;  oVirDir.Path = folderPath&lt;br /&gt;  oVirDir.SetInfo&lt;br /&gt;  oVirDir.AuthAnonymous = True&lt;br /&gt;  oVirDir.AccessWrite = False&lt;br /&gt;  oVirDir.AccessRead = True&lt;br /&gt;  oVirDir.AccessExecute = True&lt;br /&gt;  oVirDir.AccessScript = True&lt;br /&gt;  oVirDir.AppCreate True&lt;br /&gt;  oVirDir.SetInfo&lt;br /&gt;&lt;br /&gt;  WScript.StdOut.WriteLine "The '" &amp; virtualDirName &amp;amp; "' virtual directory was created at '" &amp; folderPath &amp;amp; "'."&lt;br /&gt;&lt;br /&gt;  Set oVirDir = Nothing&lt;br /&gt;  Set objIIS = Nothing&lt;br /&gt;End Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I actually had one script file, but decided to simplify the code by making two separate files; &lt;span style="font-family:Courier New;"&gt;CreateVDir.vbs &lt;/span&gt;and &lt;span style="font-family:Courier New;"&gt;DeleteVDir.vbs&lt;/span&gt;. This script creates a virtual directory from the folder and name passed into it.&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;Sub CreateVDir(folderPath, virtualDirName)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     On Error Resume Next&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim objIIS&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Set objIIS = GetObject("IIS://localhost/W3SVC/1/Root")&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     If Err.Number &amp;lt;&amp;gt; 0 Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          WScript.StdOut.WriteLine "Could not connect to IIS. Is IIS installed?"&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          Exit Sub&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     On Error Goto 0&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     On Error Resume Next&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Set oVirDir = objIIS.Create("IIsWebVirtualDir", virtualDirName)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     If Err.Number &amp;lt;&amp;gt; 0 Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          ' most likely the vdir already exists.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt; WScript.StdOut.WriteLine "Could not create the '" &amp; virtualDirName &amp;amp; "' virtual directory. Does it already exist?"&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          Exit Sub&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     On Error Goto 0&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.Path = folderPath&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.SetInfo&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.AuthAnonymous = True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.AccessWrite = False&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.AccessRead = True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.AccessExecute = True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.AccessScript = True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.AppCreate True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     oVirDir.SetInfo&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     WScript.StdOut.WriteLine "The '" &amp; virtualDirName &lt;/span&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;&amp;amp; "' virtual directory was created at '" &amp; folderPath &amp;amp; "'."&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Set oVirDir = Nothing&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Set objIIS = Nothing&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-family:Courier New;"&gt;DeleteVDir.vbs &lt;/span&gt;calls either of the two following methods based on whether or not the argument passed in is recognized as a folder. If it is recognized as a folder it calls &lt;span style="font-family:Courier New;"&gt;DeleteVDirPath()&lt;/span&gt;, otherwise it calls &lt;span style="font-family:Courier New;"&gt;DeleteVDir()&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;Function DeleteVDirPath(parent, virtualDirPath)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim bRet : bRet = False&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim ChildObject&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim ChildObjectName&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim subName&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim obj&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     On Error Resume Next&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Dim objIIS&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Set objIIS = GetObject(parent) ' "IIS://localhost/W3SVC/1/Root"&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     If Err.Number &amp;lt;&amp;gt; 0 Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          WScript.StdOut.WriteLine parent &amp; vbCrLf &amp;amp; "Could not connect to IIS. Is IIS installed?"&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          WScript.Quit&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     On Error Goto 0&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     For Each ChildObject In objIIS&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          If Err.number &amp;lt;&amp;gt; 0 Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               Err.Clear&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          If ChildObject.Class = "IIsWebVirtualDir" Then ' Or ChildObject.Class = "IIsWebDirectory"&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt; ChildObjectName = Right(ChildObject.AdsPath, Len(ChildObject.AdsPath) - InStrRev(ChildObject.AdsPath, "Root") - 4)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               subName = Right(ChildObjectName, Len(ChildObjectName) - InStrRev(ChildObjectName, "/"))&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               If CStr(ChildObject.Path) = virtualDirPath Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    On Error Resume Next&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    objIIS.Delete "IIsWebVirtualDir", subName&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    If Err.Number &amp;lt;&amp;gt; 0 Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                         WScript.StdOut.WriteLine "Could not delete '" &amp; virtualDirName &amp;amp; "'"&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                         bRet = False&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                         Exit For&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    Else&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                         WScript.StdOut.WriteLine "The '" &amp; virtualDirPath &amp;amp; "' virtual directory has been removed."&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                         bRet = True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                         Exit For&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    On Error Goto 0&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               If DeleteVDirPath(parent &amp; "/" &amp;amp; subName, virtualDirPath) Then&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    bRet = True&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;                    Exit For&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;               End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;          End If&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Next&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     DeleteVDirPath = bRet&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;     Set objIIS = Nothing&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Lucida Console;font-size:85%;"  &gt;End Function&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113514571105346361?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113514571105346361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113514571105346361' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113514571105346361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113514571105346361'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/12/create-virtual-directories-in-iis.html' title='Create virtual directories in IIS using VBScript'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113457814756937881</id><published>2005-12-12T11:35:00.000-07:00</published><updated>2005-12-14T09:35:50.033-07:00</updated><title type='text'>LANDesk Handheld Manager</title><content type='html'>LANDesk got some good publicity yesterday. Federal Computer Week reviewed our &lt;a href="http://www.landesk.com/Products/Handheld/"&gt;Handheld Manager&lt;/a&gt; product. The article is located at &lt;a href="http://www.fcw.com/article91688-12-12-05-Print"&gt;http://www.fcw.com/article91688-12-12-05-Print&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some highlights are:&lt;br /&gt;&lt;br /&gt;“The Novell and LANDesk products successfully discovered both the PDAs on my network, one of which was a Treo Smartphone, but Altiris didn't detect the Treo.”&lt;br /&gt;&lt;br /&gt;“Pros: LANDesk Handheld Manager is easy to install and has excellent wizard support, a thorough inventory database and strong reporting features.”&lt;br /&gt;&lt;br /&gt;“LANDesk, for example, incorporates help-desk organization such as work requests, trouble ticket assignments and job tracking, and communication in the form of remote control. All of the features are native to the LANDesk Management Suite, which is recommended as a baseline for LANDesk Handheld Manager. Administrators can manage assets and help-desk tasks from one central console.”&lt;br /&gt;&lt;br /&gt;“LANDesk allows an administrator to receive a phone call from a user, immediately see what the user is seeing on the machine and take control of the machine to help resolve what's going on, but ZENworks only sends detailed information to the administrator. To remotely control a target machine, you'd need a third-party program.”&lt;br /&gt;&lt;br /&gt;“Clients are accessed via a variety of protocols, depending on the product. Altiris' and LANDesk's handheld managers can run as stand-alone applications or integrate into the larger desktop management framework each company sells. This approach allows administrators to manage handhelds, notebooks and desktops from a single management console.”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113457814756937881?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113457814756937881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113457814756937881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113457814756937881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113457814756937881'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/12/landesk-handheld-manager.html' title='LANDesk Handheld Manager'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113458253212817323</id><published>2005-11-23T14:48:00.000-07:00</published><updated>2005-12-14T10:54:12.216-07:00</updated><title type='text'>Customizing the Tools menu in LDMS</title><content type='html'>Here are instructions on how to add LDDiscover.exe to the Tools menu in the LDMS Win32 console. It is designed to be easily customized by LDMS users.&lt;br /&gt;&lt;br /&gt;First, create a new folder named Tools under the ManagementSuite folder. The default ManagementSuite folder (also referred to as Ldmain) is &lt;span style="font-family: courier new;"&gt;C:\Program Files\LANDesk\ManagementSuite&lt;/span&gt;. So, for a default installation your new folder will be at: &lt;span style="font-family: courier new;"&gt;C:\Program Files\LANDesk\ManagementSuite\Tools&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Now, create a new file in that folder called LDDiscover.xml with the following contents:&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;pre&gt;&lt;span style="font-size:100%;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;br /&gt;&amp;lt;ToolInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;&lt;br /&gt; &amp;lt;_toolBoxText&gt;LDDiscovery&amp;lt;/_toolBoxText&gt;&lt;br /&gt; &amp;lt;_className&gt;Standalone Process&amp;lt;/_className&gt;&lt;br /&gt; &amp;lt;_assemblyPath&gt;C:\Program Files\LANDesk\ManagementSuite\Utilities\LdDiscover\LDDiscover.exe&amp;lt;/_assemblyPath&gt;&lt;br /&gt; &amp;lt;_bitmapPath&gt;resources\TVTS\bmps\ImageUltra16.bmp&amp;lt;/_bitmapPath&gt;&lt;br /&gt; &amp;lt;_showInToolsMenu&gt;true&amp;lt;/_showInToolsMenu&gt;&lt;br /&gt; &amp;lt;_showInToolBox&gt;true&amp;lt;/_showInToolBox&gt;&lt;br /&gt; &amp;lt;_extendComputerContextMenu&gt;false&amp;lt;/_extendComputerContextMenu&gt;&lt;br /&gt; &amp;lt;_group&gt;Configuration&amp;lt;/_group&gt;&lt;br /&gt;&amp;lt;/ToolInfo&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Start (or restart) the LDMS console to see your changes. (Note: You'll have to change the path in the file that points to the LDDiscover.exe file, if you did not install LDMS into the default directory.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113458253212817323?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113458253212817323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113458253212817323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113458253212817323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113458253212817323'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/customizing-tools-menu-in-ldms.html' title='Customizing the Tools menu in LDMS'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113114685864819152</id><published>2005-11-20T16:27:00.000-07:00</published><updated>2005-12-13T12:38:09.133-07:00</updated><title type='text'>Agent-less LDMS inventory using LDDiscover.exe</title><content type='html'>I was playing around with some of the components that come with LANDesk Management Suite (LDMS). I work for &lt;a href="http://www.landesk.com/Products/LDMS/"&gt;LANDesk Software, Inc.&lt;/a&gt; on the ISV team. My team comes up with solutions to integrate LANDesk and our partners’ products.&lt;br /&gt;&lt;br /&gt;Anyway, I figured out a very cool use of LDDiscover.exe, one of the components available to LDMS users. Using LDDiscover.exe I automated the deployment of our agent to all of the machines on my (private) network. That’s cool, but nothing that the LDMS console doesn’t already do (although, personally I prefer the simple UI of LDDiscover.exe for some quick tasks). What is cool about this is that using nearly the same steps I was able to perform an agent-less inventory of all of those machines, without installing our agent onto those machines inventoried.&lt;br /&gt;&lt;br /&gt;Here are the steps to run LDDiscover.exe:&lt;br /&gt;&lt;br /&gt;1. Run LDDiscover.exe (installed with LDMS under ManagementSuite\Utilities)&lt;br /&gt;2. Configure it&lt;br /&gt;3. Enter in IP ranges (or machine names)&lt;br /&gt;4. Enter account credentials. (You can pre-append the user with the domain name if needed.)&lt;br /&gt;5. Enter the commands to run (see below).&lt;br /&gt;6. Click Run!&lt;br /&gt;&lt;br /&gt;If you want to install the LDMS agent, use the following commands where merlin-ldms is my Core server:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;net use \\merlin-ldms\ldlogon /user:Username "password"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;\\merlin-ldms\ldlogon\wscfg32.exe /install&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;net use /d \\merlin-ldms\ldlogon&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to perform an agent-less inventory of all of those machines, use these commands instead:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;net use \\merlin-ldms\ldlogon /user:Username "password"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;\\merlin-ldms\ldlogon\ldiscn32.exe /s=merlin-ldms /ntt=merlin-ldms /sync /V&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;net use /d \\merlin-ldms\ldlogon&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can also create an ldform.dat file in the \ldlogon folder that the scanner will pick up, which will provide custom data for querying (such as ‘Automated Scan = True’).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113114685864819152?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113114685864819152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113114685864819152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114685864819152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114685864819152'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/agent-less-ldms-inventory-using.html' title='Agent-less LDMS inventory using LDDiscover.exe'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113143856401199991</id><published>2005-11-08T01:29:00.000-07:00</published><updated>2005-11-08T01:32:16.546-07:00</updated><title type='text'>Cross-platform development</title><content type='html'>A friend and I are creating a new software application. It has some new ideas, not revolutionary, but good solid features. What it does have, however, is a fantastic development paradigm. In creating and using my own developer toolkit for this application, I can now code for the web and desktop applications using exactly the same code for both. No conversion or runtime or parsing of the source or binaries is required.&lt;br/&gt;&lt;br/&gt;It’s a truly wonderful thing, let me tell you. The only visible difference is that when it is run from the web it has the “Application title – Browser Name” in it. Other than that, we’ve got it working so good in both environments that you can’t tell the difference by looking at it (unless you’re fastidious like me). It’s even cross-browser, too! Steve is currently implementing functionality in the back-end to automatically synchronize the local content with a web server for secure, off-site storage of the user’s data. I’m busy adding support for new controls, user-defined controls, and additional themes.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;So, what’s the benefit? What’s the big deal? Well, take the company I work for, for instance. We have dozens of developers creating a Windows-based “core-console” that provides the majority of our core products’ functionality. We also have several developers providing a sub-set of that functionality for the “web-console.” The benefit of this toolkit and paradigm in general, is in focusing everyone’s time and effort into “one-console” that will look and behave exactly the same whether it’s launched from the local machine or a web address. Forms, screens, and functionality wouldn’t be created twice. More code is re-usable. We haven’t even touched the value of testers re-grouping to test only one product instead of having two teams testing (by all rights) different products; one desktop application and one web application.&lt;br/&gt;&lt;br/&gt;On the other side of things, now we could say we have a client for every major operating system, where before we had a Windows desktop console and an IE-only web console. Using this toolkit, we’d have a full-featured console that behaved the same whether it’s run on Windows, Linux, MacOS, or an operating system that has a Firefox browser.&lt;br/&gt;&lt;br/&gt;The user can install it and it will run faster than via a web address. Or, you can run it from the web. All of the user’s settings are shared and available between both versions of the application. The product is better designed, built better, more fully tested, and has more features. The user is happier. Heck, even management would be happy! Now, that’s value!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113143856401199991?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113143856401199991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113143856401199991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113143856401199991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113143856401199991'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/cross-platform-development.html' title='Cross-platform development'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113142591494503559</id><published>2005-11-07T21:58:00.000-07:00</published><updated>2005-11-07T21:59:53.066-07:00</updated><title type='text'>Google Classifieds</title><content type='html'>This evening I was thinking about the other areas that Google could receive advertising dollars from. One of things I thought of was personal classified advertisements. I, personally, would love to be able to properly sort and filter local classified ads on items such as guitars, tools, and anything else normally advertised in the paper.&lt;br/&gt;&lt;br/&gt;I have never had a newspaper subscription, but I have purchased them in the past when looking for a good deal on something and searched the newspaper’s website for classifieds. Both are equally terrible. No, I take that back. The online classified is much worse, because of its potential; you’d expect it to be at least usable. &lt;br/&gt;&lt;br/&gt;Google Billboards&lt;br/&gt;&lt;br/&gt;Why don’t they offer some graphical advertisements on some sites? The images (or SWF files) could vary in size and shapes, of course. I know that I notice graphical advertisements immediately on a page, before I notice the ad words. If the graphical ads were contextual; then you’d have another great product. I wouldn’t mind them and sometimes might prefer them. Of course, I’m not talking about the stupid, annoying shoot the target ads.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113142591494503559?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113142591494503559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113142591494503559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113142591494503559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113142591494503559'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/google-classifieds.html' title='Google Classifieds'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113143854629071997</id><published>2005-11-07T06:13:00.000-07:00</published><updated>2005-11-08T01:34:29.060-07:00</updated><title type='text'>Computers of the Future</title><content type='html'>My vision of the Computers of the Future&lt;br /&gt;&lt;br /&gt;There has been a lot of talk about the future of the World Wide Web lately. Most of it is the normal fluff and excitement about the latest technology that is “new,” even though it’s been around forever. (In web standards, forever is about three years!) I think Google, Microsoft, and Sun are getting closer, but they’re not quite there.&lt;br /&gt;&lt;br /&gt;As much as I hate to say it, I believe that the future embodiment of the computer is a terminal connected to a remote server somewhere on the web. Much like the mainframe paradigm, we will log into a thin client desktop machine. I don’t think it will be the thin client of today, though. I think we’ll see our desktop computers converge, similar to Scott McNealy’s grid computing vision, with the servers on the web.&lt;br /&gt;&lt;br /&gt;We &lt;em&gt;will &lt;/em&gt;have a complete computer, with a printer attached, CDROM drives, USB/Fire wire ports, and petabytes of hard drive space. The difference will be in how the machine is used and where our data is stored. I will have one user account. That’s all, just one. I log into my machine at home or work and get exactly the same desktop. My applications will be attached to me, not my machines. If I log into a computer at the local cyber-café I get the same desktop, with my applications.&lt;br /&gt;&lt;br /&gt;I, for one, will never give up my local copy of data. Period. It won’t happen. So, my data would have to be stored securely at home and on my server account. Any changes I make to it at work will be replicated to my home machine and made available for access from everywhere else, etc.&lt;br /&gt;&lt;br /&gt;Processing power will be shared, but engineered in a way that you’ll never have less power than your machine by itself. Storage could even be shared, if for instance me and another 3,000,000 users told our dvr device to record the same Smallville episode, we could all be accessing one copy of the file, sharing the storage space.&lt;br /&gt;&lt;br /&gt;My file system would be a mixture of local folders and files, as well as web-links to my digital wares stored on the web. But, from my File Explorer it all looks the same. My music files for instance, would be stored on a server and shared like my Smallville and Lost episodes. I can get local copies for my disconnected devices such as my MP3 players, but those will probably be streaming my music from wifi connection points wherever I’m at in town anyway, so maybe I wouldn’t need a local copy at all.&lt;br /&gt;&lt;br /&gt;My address book contacts would really be a reference to my contacts’ own personal virtual cards. Anytime, he or she updates their information, it is visible to me, because I’m really just looking at their data whenever I open my address book. I will specify who can see my contact information, using my global control panel, which is provided by my host.&lt;br /&gt;&lt;br /&gt;Of course you wouldn’t have to have a computer desktop machine. Using a different account type you could use a (dumb) thin client like the ones of today to get to all of your applications and data stored on the web. This would be useful for those who simply want to use it for email, news, TV, phone, etc. These devices would probably be what the cyber-café’s will use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113143854629071997?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113143854629071997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113143854629071997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113143854629071997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113143854629071997'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/computers-of-future.html' title='Computers of the Future'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113114133539322451</id><published>2005-11-04T14:55:00.000-07:00</published><updated>2005-11-04T14:57:46.256-07:00</updated><title type='text'>Bookmarks application and search</title><content type='html'>With all of that being said (see previous &lt;a href="http://elegantdevelopment.blogspot.com/2005/11/online-favorites-and-bookmarks.html"&gt;Blog&lt;/a&gt;), I find it is usually easier (and faster) to perform a Google search for most things I’m looking for than trying to remember where I put the link and finding it in a menu.&lt;br /&gt;&lt;br /&gt;Since, this is more and more the case with continual increases of information overload, the application would probably still only be used for links that are used frequently – the ones you know and remember right where they are. Links like my credit union login, current development projects, frequently read blogs, news sites etc., would all be stored here and shared between my computers. I call these the standard set. There are about seven of them and they are always visible on my browsers’ toolbar.&lt;br /&gt;&lt;br /&gt;The real value of a bookmarks application would be not needing one at all. Instead, having my bookmarks integrated into my Google search results. Yeah, it looks like I just lost my business plan. Why not add a link next to each search result that will allow me to bookmark this item? Then, the next time I search for the site it would show up in its own section, first atop the list of results. I would like to be able to label each bookmark too, like giving the link a new name or description to make it easier for me to remember which link this is the next time I search.&lt;br /&gt;&lt;br /&gt;Now, that provides value to my default search engine as well. (Are you listening Google?) That would provide so much value that I would probably never bookmark another page outside of the standard set again.&lt;br /&gt;&lt;br /&gt;I suppose I could use the Google search API to create my own interface to their search results?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113114133539322451?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113114133539322451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113114133539322451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114133539322451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114133539322451'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/bookmarks-application-and-search.html' title='Bookmarks application and search'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113113154065037085</id><published>2005-11-04T12:12:00.000-07:00</published><updated>2005-11-04T12:12:20.660-07:00</updated><title type='text'>Online favorites and bookmarks</title><content type='html'>I’ve seen so many sites offering online favorites and bookmarks over the years and now Microsoft is making yet another version available. (I think this must be their fifth or sixth time re-creating that project.)&lt;br/&gt;&lt;br/&gt;I still don’t think it’ll be used. I think that Microsoft and the other companies trying to do this are still going about it all wrong. This is what I think &lt;em&gt;will &lt;/em&gt;get used.&lt;br/&gt;&lt;br/&gt;Favorite Bookmarks&lt;br/&gt;&lt;br/&gt;I would like an application that I install onto my machine. It runs all the time in the background. It will mirror my local Favorites folder with the web site via web services. It &lt;em&gt;should also &lt;/em&gt;mirror my Favorites folder with my Firefox bookmarks.html file. Let’s not forgot that I want to be able to install this application on my development machines and laptop at work and my development machines at home.&lt;br/&gt;&lt;br/&gt;The sign of good application design is that you won’t notice it is there running. It “just works” is the motto here. This application would be no different. I want to be able enter a user name and password and it will do the rest. It can find my favorites folder and bookmarks.htm file from the registry. &lt;br/&gt;&lt;br/&gt;There is a business case here, too, I think. I could get one (maybe two) computers for free, and then I have to pay $5 per year for unlimited additional computers. That’s a great idea. I like it. But…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113113154065037085?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113113154065037085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113113154065037085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113154065037085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113154065037085'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/online-favorites-and-bookmarks.html' title='Online favorites and bookmarks'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113095253122577418</id><published>2005-11-03T11:28:00.000-07:00</published><updated>2005-11-04T11:53:44.110-07:00</updated><title type='text'>Handheld devices</title><content type='html'>Wifi handheld devices.&lt;br /&gt;&lt;br /&gt;What about wi-fi on my MP3 player? I’d like to be able to update my music files and lists from my computer automatically, without having to plug it in.&lt;br /&gt;&lt;br /&gt;I’d like to be able to share music wirelessly with my friends, perhaps a low quality format or perhaps just a wifi stream that they can only listen to while standing next to me? (Sony, RIAA won’t like this one!)&lt;br /&gt;&lt;br /&gt;Reading blogs on those tiny screens.&lt;br /&gt;&lt;br /&gt;I’d like to see my blog subscriptions on my handheld device, too. I’d like to be able to synchronize my current un-read blogs to my device either when its connected to my desktop or wirelessly. Whenever my feeds change on my desktop machine, whether I read it on my desktop or new articles arrive, my device should be updated with the latest articles and read articles should be removed from the device.&lt;br /&gt;&lt;br /&gt;I suppose I could write my own application for Pocket PC and RIM (BlackBerry) devices?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113095253122577418?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113095253122577418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113095253122577418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113095253122577418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113095253122577418'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/handheld-devices.html' title='Handheld devices'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113095179740003102</id><published>2005-11-02T10:16:00.000-07:00</published><updated>2005-11-02T10:16:37.410-07:00</updated><title type='text'>Sony DRM, part II</title><content type='html'>I’ve been thinking about Sony’s new DRM a bit this morning. I think it’s unfortunate that Sony’s leadership has given up on new ideas and instead they are crying foul for those who are still innovating. Why do I say that, you might ask?&lt;br/&gt;&lt;br/&gt;Instead of creating a music player that looks better, plays longer, holds more songs, provides more features than the iPod (whichever model), and instead of creating their own music player (or working with, updating an existing company’s product), they are spending resources annoying users and losing customers. &lt;br/&gt;&lt;br/&gt;I’m not saying that I have a design for “a better iPod.” And, I’m definitely not saying that it would be easy! That’s hardly the case. What I am saying that instead of pissing off (and losing) customers by introducing garbage like this DRM solution, they should be doing everything they can to add value to their existing products and come up with new features that everyone “just has to have.”&lt;br/&gt;&lt;br/&gt;Who knows; if Sony had focused their efforts on beating Apple we may have seen the recent release of the Sony Nano, instead of the iPod Nano. The potential is limitless!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113095179740003102?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113095179740003102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113095179740003102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113095179740003102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113095179740003102'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/sony-drm-part-ii.html' title='Sony DRM, part II'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113095049369584461</id><published>2005-11-02T07:54:00.000-07:00</published><updated>2005-11-02T10:18:22.073-07:00</updated><title type='text'>Sony DRM</title><content type='html'>I read some interesting articles this morning about DRM. It seems that Sony has surpassed Microsoft as provider of the most invasive technology pundit.&lt;br/&gt;&lt;br/&gt;Here’s the article I found on &lt;a href="http://www.engadget.com/entry/1234000420066115/"&gt;engadget.com&lt;/a&gt;. A couple other links are &lt;a href="http://bigpicture.typepad.com/comments/2005/10/drm_crippled_cd.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.eastbayexpress.com/issues/2005-10-19/music/music.html"&gt;here&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;What I got out of it is that Sony has created this horrible, overbearing DRM on new music CD’s for the sole purpose of coercing Apple to allow other programs to connect to the iPod. And, while doing so, Sony hopes to make Apple look like the “bad guy,” by their ploy to get users to contact Apple about the problem (the problem that iTunes and the iPod are proprietary).&lt;br/&gt;&lt;br/&gt;But, this doesn’t really make sense to me. What does Sony have to gain from it? Perhaps they are really trying to get &lt;em&gt;iTunes &lt;/em&gt;to connect to other devices, for instance the Sony NW-HD3? I’m not really sure of their intent, but I am sure that I won’t be ordering any CD’s with DRM on it.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113095049369584461?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113095049369584461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113095049369584461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113095049369584461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113095049369584461'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/11/sony-drm.html' title='Sony DRM'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113043293178941901</id><published>2005-10-27T10:08:00.000-07:00</published><updated>2006-05-15T15:01:54.853-07:00</updated><title type='text'>The difference between VarChar and NVarChar</title><content type='html'>I was asked recently by a solid developer (one of the best I know, in fact) about the difference between the TSQL varchar and nvarchar data types. I was surprised he didn't know this. So, I thought it might be helpful to post it on my Blog, as well.&lt;br /&gt;&lt;br /&gt;In Microsoft SQL Server, the only difference between varchar and nvarchar is that nvarchar is UNICODE (also called double-byte). If you declare columns as:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;Myvarchar nvarchar(255)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;MyNvarchar nvarchar(255)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Myvarchar column will use 255 bytes in your table, where the MyNvarchar column will use 510 bytes in your table.&lt;br /&gt;&lt;br /&gt;Basically, if you need to support other languages in your product you should use nvarchar data type. If you are sure you will never localize the product, then you can use varchar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113043293178941901?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113043293178941901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113043293178941901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113043293178941901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113043293178941901'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/10/difference-between-varchar-and.html' title='The difference between VarChar and NVarChar'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-112930431341618262</id><published>2005-10-14T08:29:00.000-07:00</published><updated>2005-10-14T08:42:26.646-07:00</updated><title type='text'>The future of the Web</title><content type='html'>&lt;p class="MsoNormal"&gt;Podcasts are becoming more and more popular, aren't they!? I was just thinking about where I would be right now had me and a few friends actually continued doing 4guystech recording sessions. We would have been about four years ahead of everyone else.. Oh well.. The geographic restrictions pretty much killed any chance of success with regular meetings..&lt;br /&gt;&lt;br /&gt;Anyway.. If any of you listen to any podcasts regularly, drop a link, I'd like to hear some good ones?&lt;br /&gt;&lt;br /&gt;One of the best things that came from the Web 2.0 conferences held recently was the survey of your average teenage Internet user. These are the people who will shortly overpower (in numbers) any other group of people.. obviously..&lt;br /&gt;&lt;br /&gt;I can't help but wonder how this will affect the "rest of us (developers, geeks, etc.)!" That session was an eye opener for a lot of people and a reminder to me as a developer (and technology enthusiast) that no matter how hard I try, my view of the Internet gets skewed from the "normal" persons perspective about the Internet and technology in general.&lt;br /&gt;&lt;br /&gt;For instance, none of the teenagers in the survey want to watch video on IM clients nor do anything else with them, but chat. None of them had even heard of Skype! It seemed clear that were likely to just wait to IM someone if they aren't available, instead of resorting to email. Basically, they use IM, LiveJournal (or another blogging site), and Google. That's it. Oh, wait.. they still pirate music too..&lt;br /&gt;&lt;br /&gt;So, what else do they need on the Web? What do they &lt;i&gt;want&lt;/i&gt; on the Web? What is the next killer app? And, more importantly that we mustn’t forget.. why?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-112930431341618262?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/112930431341618262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=112930431341618262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/112930431341618262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/112930431341618262'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/10/future-of-web.html' title='The future of the Web'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113114584081774511</id><published>2005-09-08T11:10:00.000-07:00</published><updated>2005-11-04T16:13:51.126-07:00</updated><title type='text'>Build wish list</title><content type='html'>After my little rant I went to Google to find alternative &lt;a href="http://www.google.com/search?sourceid=navclient&amp;ie=UTF-8&amp;amp;q=build+tools"&gt;build tools&lt;/a&gt;. The first page brings up the usual stuff. I redid my search as &lt;a href="http://www.google.com/search?sourceid=navclient&amp;ie=UTF-8&amp;amp;rls=GGLD,GGLD:2005-16,GGLD:en&amp;q=%2Enet+build+tool"&gt;.net build tools&lt;/a&gt;. That was much better (&lt;a href="http://weblogs.asp.net/jan/archive/2003/11/27/40038.aspx"&gt;Hippo.net&lt;/a&gt; looks cool) but there are still things that I can’t find.&lt;br /&gt;&lt;br /&gt;Here’s my wish-list for a good build tool.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Stop and Continue&lt;/strong&gt;. When an error occurs it should display the error and ask what it should do; Ignore, Pause, Restart entire build, Restart section that failed, Skip project, and Cancel. I want to be able to update my code and start the build process from where it failed. I know that wouldn’t be acceptable to make changes on the fly to the build process of a release, but is perfect for a development, testing build.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Windows GUI&lt;/strong&gt;. Provide a freaking Windows user interface! Why is almost everything out there run in a DOS box? Do I develop in a DOS box or create DOS applications? No! I want to see every thing as it runs. Don’t worry, a Windows GUI will run fine automated, even if nobody is looking at it or it’s run under the SYSTEM account.&lt;br /&gt;&lt;br /&gt;The UI could be as simple as a full size form displaying a tree view. Each parent node in the tree represents a section and each leaf under those nodes would represent individual tasks. For instance, I would have a node labeled “Update source code.” Under that node would be several items similar to: “get source from cvs branch X” and “get source from cvs branch Y.”&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Beowulf build&lt;/strong&gt;. The build process should include multiple additional machines setup similarly or mirrored from the main machine. When the build is started on the main machine it should spawn build processes on slave machines, based on build order and project/solution dependencies.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Smart file copy&lt;/strong&gt;. When the build is moving and copying files around I would like to be able to copy to the same folder and only copy newer or different files. This is done easily now using a simple WScript file.&lt;br /&gt;&lt;br /&gt;What do you think? What else would be cool to have for builds?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113114584081774511?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113114584081774511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113114584081774511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114584081774511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114584081774511'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/09/build-wish-list.html' title='Build wish list'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113114567208420519</id><published>2005-09-08T10:56:00.000-07:00</published><updated>2005-11-04T16:12:50.026-07:00</updated><title type='text'>The State of Builds</title><content type='html'>I don’t care for NAnt. In this modern world of object oriented development, it feels like I’m being forced back into the Stone Age, editing Batch files. No, actually, I would prefer editing Batch files than NAnt XML files. At least with Batch files I can clearly see what is going on and what will happen next. Batch files look like a lot less typing, too. NAnt seems to be using XML just because it can, without any of its benefits. I could be wrong; I’m not that familiar with it yet.&lt;br /&gt;&lt;br /&gt;Aside from that, why can’t I create a simple application per project that uses specific interfaces that will perform the build? What unwritten law is it that prevents some teams from doing it themselves? The build script could be in the language of my project. Make it a part of my unit-tests class. Make both into an executable that can build the project and run test-units (usually part of my dev projects) and execute additional run-time unit-tests once it’s done.&lt;br /&gt;&lt;br /&gt;I could use a library that provides build functionality to open files, move, delete, rename, update, etc., (not that much would be needed over the development language I’m using to create it). In a C# project I can’t think of anything that wouldn’t be easier to do in C# than NAnt or a Batch file or … Hmm. What else is there?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113114567208420519?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113114567208420519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113114567208420519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114567208420519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114567208420519'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/09/state-of-builds.html' title='The State of Builds'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113113601733274811</id><published>2005-08-25T12:26:00.000-07:00</published><updated>2005-11-04T13:50:41.216-07:00</updated><title type='text'>Google Desktop Search 2 (beta 2) and Sidebar</title><content type='html'>&lt;strong&gt;&lt;/strong&gt;I haven’t seen or noticed anything new about the file indexer, although there are a lot of new filters and plug-ins available. I did notice that it was apparently necessary to re-index my entire drives all over again. I would have thought it could re-use the old metadata or at least update it to a new format, instead of bringing my system to a crawl for a couple of hours.&lt;br /&gt;&lt;br /&gt;The SDK looks a little light in my opinion. I'm hoping they'll add some functions that will provide more interactivity between the panels.&lt;br /&gt;&lt;br /&gt;The sidebar is pretty nice looking.  It does have several nifty panels like all of the rest of these types of applications; stocks, instant-overload news feeds, and of course... the weather. I think most of these are useless, just like any other sidebar-type of application. Do I really need to use of screen real estate for the weather or thumbnails of my images or the first three words of email messages?&lt;br /&gt;&lt;br /&gt;I think they could have come up with a better name for RSS feeds, though. I mean, if Google wanted to rename RSS feeds as theirs, like so many other companies have attempted recently, they could have at least picked something other than Web Clips. It doesn't seem to fit the definition, to me.&lt;br /&gt;&lt;br /&gt;I really like how the Sidebar displays the Web Clips, though. Only showing the title and where it was from is a nice change from the normal aggregator, viewer. When you double click it you get to read their Blog on their site. A problem I have with other aggregators is that it all feels like I’m reading a summary from some unknown Internet narrator. When I visit the sites themselves to read their Blog it feels like they’re speaking directly to me with all of their colors, types, and personal flair.&lt;br /&gt;&lt;br /&gt;Overall it is certainly the best I’ve seen, but I probably won’t use it for more than the time it takes me to check it out. After that it’ll be back to the system tray icon for GDS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113113601733274811?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113113601733274811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113113601733274811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113601733274811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113601733274811'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/08/google-desktop-search-2-beta-2-and.html' title='Google Desktop Search 2 (beta 2) and Sidebar'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113113577201705879</id><published>2005-08-25T09:20:00.000-07:00</published><updated>2005-11-04T13:43:59.120-07:00</updated><title type='text'>Google Talk</title><content type='html'>Here it is, the day after my little rant about wasting time and I find Google has come out with a couple of nifty little applications. Google Talk and Google Desktop Search 2 (with Sidebar) Beta 2. They look both look great.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Google Talk&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3901/50/1600/GoogleTalk.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/3901/50/320/GoogleTalk.gif" alt="" border="0" /&gt;&lt;/a&gt;Wow, what a cool thing! Talk looks sweet; it’s very simple, even elegant!&lt;br /&gt;&lt;br /&gt;It is built on open standards. Maybe that will force the other IM makers (namely MSN, Yahoo, and AOL) to quit fighting like children. The open standard means that it will work with other clients such as Trillian, Jabber, and iChat.&lt;br /&gt;&lt;br /&gt;I absolutely love the fact that I can control how my contacts show up in the list! That is the best feature to be added to an IM in years! Seriously!&lt;br /&gt;&lt;br /&gt;I truly dislike how I am always searching for contacts in MSN, because they change their display names. It is such a pain! And, then there are those that add additional verbiage to their name so that it reaches the allowable limits that in no identifiable way reflect who this contact really is.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3901/50/1600/GoogleTalk2.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3901/50/320/GoogleTalk2.gif" alt="" border="0" /&gt;&lt;/a&gt;It has several nice windowing features including window roll-up or shading as some call it. It also provides keyboard access to each open IM window and the main window via the TAB key. The auto open and collapse feature is really nice when you are talking to multiple contacts at the same time, too. Very nice!&lt;br /&gt;&lt;br /&gt;I haven’t tried making a call, yet. But, I’m sure I will very soon.&lt;br /&gt;&lt;br /&gt;I do have a couple of complaints, though. Why can’t I right-click somewhere within Talk (or the Sidebar, for that matter) and get a compose email window? Also, why can’t I delete a message in the window that pops up? That’s really annoying and makes using the mail panel not worth using at all. I know, I know, Google wants people to save all of their email. Well, aside from the inherent issues with that (such as eventually running out of space then having to sort through thirty thousand emails to find ones to delete; I’ll leave that for another discussion), I don’t really want to save newsletter subscriptions.&lt;br /&gt;&lt;br /&gt;But, honestly, I don’t know if I want to go through switching to a new IM client. It’s usually a major ordeal and not everyone else wants to switch. Now, if it allowed me to use my hotmail account with my existing hundred or so contacts, it would be an easy sell.&lt;br /&gt;&lt;br /&gt;This is the best looking IM client for sure. It has excellent features. I’ll use it for a while and see what happens.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113113577201705879?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113113577201705879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113113577201705879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113577201705879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113577201705879'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/08/google-talk.html' title='Google Talk'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113113948686168848</id><published>2005-08-24T19:52:00.000-07:00</published><updated>2005-11-04T14:47:14.820-07:00</updated><title type='text'>Productivity Lost</title><content type='html'>&lt;em&gt;Where has all the time gone?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I finally started using a Blog aggregator. Yup, I looked at a few and decided upon NewsGator.com’s free web interface to try out. I have successfully added some of the Blog sites that I like to read. Sites like engadget.com, wilwheaton.net, and of course scobleizer to name a few…&lt;br /&gt;&lt;br /&gt;I am totally amazed at the amount of content produced by some of these people. Being a casual read of a few sites and a steady Googler for solutions I had no idea how much stuff is out there! Wow!&lt;br /&gt;&lt;br /&gt;That makes me think about a business article I read years ago about executives that were pleased to get four or five good, productive hours from their employees each day (out of an eight hour work day). The causes listed were almost entirely tasks that should be done at home. Things like online banking, talking on the phone with friends, planning personal vacations and traveling arrangements, chatting at the "water cooler" about non-work related topics, the list goes on and on (and gets worse). At the time I was outraged at the thought! But, compared to today’s average hours...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Productivity lost&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Look, I don’t like working long hours, but a lot of people I have worked with apparently don’t mind or don’t realize their conundrum. People whine and complain about the long hours but everyone seems content to continue to perform personal tasks while at work. What’s the difference? If you manage your checking account at work, you should expect to put in more time later to make up the difference.&lt;br /&gt;&lt;br /&gt;Do I need another productivity booster for things that don’t matter? I’m talking, in particular, about the Sidebar in Microsoft’s Longhorn operating system and other applications like it. The majority of current dashboards fall into this trend as well.&lt;br /&gt;&lt;br /&gt;Sure, monitoring the weather outside all day is important if you’re the weatherman. Sidebars, instant messengers, widget tools are all cool and provide nice eye candy, but providing me more information about more things doesn’t help me accomplish my tasks. In my opinion, this trend of providing sidebars and dashboards to show me constant (useless) information is only making things worse. Don’t get me started on how the Dashboard concept has been bastardized into meaningless eye candy.&lt;br /&gt;&lt;br /&gt;If it doesn’t provide meaningful, relevant data then I’m not interested in using it. I think that is Microsoft’s real challenge for the future. That’s any information company’s challenge, be it Microsoft, Google, Yahoo, Amazon... Provide useful, relevant information when I want it; don’t shove it down my throat.&lt;br /&gt;&lt;br /&gt;For those that use these utilities; close them and get your tasks done so you can go home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113113948686168848?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113113948686168848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113113948686168848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113948686168848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113113948686168848'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/08/productivity-lost.html' title='Productivity Lost'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113114434814718432</id><published>2005-08-18T08:45:00.000-07:00</published><updated>2005-11-04T15:50:16.633-07:00</updated><title type='text'>WScript.Shell ExpandEnvironmentStrings</title><content type='html'>Many of you out there who’ve been developing for more than a few years might appreciate the value of Batch files. I still use them. I feel the same way about VBScript files (or JScript files if you prefer). More so, actually, because I can do so much more right out of the box.&lt;br /&gt;&lt;br /&gt;Anyway, I was using the WScript.Shell object to automate some tasks and found an interesting thing I haven’t run into or perhaps just never noticed. When I get an environment variable using the ExpandEnvironmentStrings method, if the variable doesn’t exist it will return what you passed in to it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Dim &lt;/span&gt;objShell : &lt;span style="color: rgb(51, 51, 255);"&gt;Set &lt;/span&gt;objShell = &lt;span style="color: rgb(255, 102, 0);"&gt;CreateObject&lt;/span&gt;("WScript.Shell")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;MsgBox&lt;/span&gt; &lt;/span&gt;objShell.ExpandEnvironmentStrings("%MyPath%")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Set &lt;/span&gt;objShell = &lt;span style="color: rgb(0, 153, 0);"&gt;Nothing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the &lt;span style="font-family: courier new;"&gt;%MyPath%&lt;/span&gt; environment variable exists on your machine it will show the value stored in the variable. (I ran into this running the same script on all versions of Windows.) If it doesn’t exist it will show &lt;span style="font-family: courier new;"&gt;%MyPath%&lt;/span&gt;. That was wreaking havoc on my little script.&lt;br /&gt;&lt;br /&gt;So, I just perform a simple check afterwards to verify the value exists.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Dim &lt;/span&gt;objShell : &lt;span style="color: rgb(51, 51, 255);"&gt;Set &lt;/span&gt;objShell = &lt;span style="color: rgb(255, 102, 0);"&gt;CreateObject&lt;/span&gt;("WScript.Shell")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Dim &lt;/span&gt;sValue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Dim &lt;/span&gt;sVarName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;sVarName = "%MyPath%"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;sValue = objShell.ExpandEnvironmentStrings(sVarName)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;If &lt;/span&gt;sValue &amp;lt;&amp;gt; sVarName &lt;span style="color: rgb(51, 51, 255);"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;   MsgBox sVarName &amp; " = " &amp;amp; sValue&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:Courier New;" &gt;Else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;   MsgBox sVarName &amp; " does not exist"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:Courier New;" &gt;End If&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Set &lt;/span&gt;objShell = &lt;span style="color: rgb(0, 153, 0);"&gt;Nothing&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113114434814718432?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113114434814718432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113114434814718432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114434814718432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113114434814718432'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/08/wscriptshell-expandenvironmentstrings.html' title='WScript.Shell ExpandEnvironmentStrings'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17855063.post-113088631274258727</id><published>2005-07-12T04:55:00.000-07:00</published><updated>2005-11-02T05:26:19.856-07:00</updated><title type='text'>Problems with Pocket PC event notifications using CeRunAppAtEvent, CeRunAppAtTime and CeSetUserNotificationEx</title><content type='html'>I had a serious bug in an application recently that I found was being caused by the Pocket PC API; the CeRunAppAtEvent and CeRunAppAtTime methods to be precise. These methods are supposed to run an application based on a system event (such as power on, network availability, etc.) or a time, respectively. But, after releasing a product, I found that it works only for a short while; after the application schedules itself a few times, it stops scheduling completely and it returns no errors or indication that scheduling has ceased.&lt;br /&gt;&lt;br /&gt;Enter CeSetUserNotificationEx. This is another API-level method that allows me to create notifications. But, it has its own share of bugs too. For instance, when my application is already scheduled to run and I attempt to schedule it again, only for a different time, it doesn’t get scheduled (and never runs again without scheduling it manually). Despite what the documentation (and Microsoft tech support says) you can not schedule the same event (using the handle – so you don’t get duplicates) if it’s already scheduled.&lt;br /&gt;&lt;br /&gt;I finally found the solution I needed after several days of trial and error and research into other alternatives. I was about ten minutes from starting to create my own application that would always be running that launched the events itself, when I thought of the solution I needed.&lt;br /&gt;&lt;br /&gt;The work-around is to save your handle to the scheduled event and always clear that notification before scheduling it. I felt kind of funny for not thinking of it earlier actually, but at least after three days with Microsoft support, at least I thought of it and not them…&lt;br /&gt;&lt;br /&gt;Here’s the code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;long timeHandle = 0;&lt;br /&gt;// get timeHandle from registry if it has been scheduled before, otherwise it stays set to 0&lt;br /&gt;&lt;br /&gt;SYSTEMTIME st;&lt;br /&gt;::GetLocalTime(&amp;st);&lt;br /&gt;// manipulate your st variable to get the time you want (add 2 hours, add one day, etc.)&lt;br /&gt;&lt;br /&gt;UserNotificationTrigger nt;&lt;br /&gt;memset(&amp;nt, 0, sizeof(CE_NOTIFICATION_TRIGGER));&lt;br /&gt;nt.dwSize = sizeof(UserNotificationTrigger);&lt;br /&gt;nt.dwType = CNT_TIME;&lt;br /&gt;nt.lpszApplication = L"\\application\\to run.exe";&lt;br /&gt;nt.lpszArguments = L"application arguments";&lt;br /&gt;nt.stStartTime = st;&lt;br /&gt;&lt;br /&gt;UserNotificationType untype;&lt;br /&gt;memset(&amp;untype, '\0', sizeof(untype));&lt;br /&gt;&lt;br /&gt;// Clear any existing event notification&lt;br /&gt;if (!CeClearUserNotification(timeHandle))&lt;br /&gt;   WriteLog(L"Could not clear existing notification.\r\n");&lt;br /&gt;&lt;br /&gt;timeHandle = CeSetUserNotificationEx(0, &amp;nt, &amp;amp;untype);&lt;br /&gt;if (NULL != timeHandle)&lt;br /&gt;   WriteLog(L"Application scheduled to run again.\r\n");&lt;br /&gt;else&lt;br /&gt;   WriteLog(L"Failed to schedule application\r\n");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CeRunAppAtEvent information is located here: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcerunappatevent.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcerunappatevent.asp&lt;/a&gt;&lt;br /&gt;CeRunAppAtTime information is located here: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcerunappattime.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcerunappattime.asp&lt;/a&gt;&lt;br /&gt;CeSetUserNotificationEx information is located here: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcesetusernotificationex.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcesetusernotificationex.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17855063-113088631274258727?l=elegantdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elegantdevelopment.blogspot.com/feeds/113088631274258727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17855063&amp;postID=113088631274258727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113088631274258727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17855063/posts/default/113088631274258727'/><link rel='alternate' type='text/html' href='http://elegantdevelopment.blogspot.com/2005/07/problems-with-pocket-pc-event.html' title='Problems with Pocket PC event notifications using CeRunAppAtEvent, CeRunAppAtTime and CeSetUserNotificationEx'/><author><name>Wasatch Wizard</name><uri>http://www.blogger.com/profile/07858015938543437007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_RDJEOHTGP8U/TJjVOQj2aEI/AAAAAAAAAH4/MgHURbBK4K4/S220/kody_2010.jpg'/></author><thr:total>0</thr:total></entry></feed>
