<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>chris carter's web log</title><link>http://panteravb.com/</link><description>chris carter's thoughts on programming and anything else I feel like</description><copyright>chris carter</copyright><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ChrisCartersWebLog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Step 1: Balsamiq Mockup</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/B47q8eYZ7ZI/step-1-balsamiq-mockup.ashx</link><description>&lt;p&gt;Here's a quick stab at a hyperactive config editor using &lt;a href="http://www.balsamiq.com/" target="_blank"&gt;Balsamiq Mockups&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src="/blog/image/view/143.ashx" /&gt;&lt;/p&gt;
</description><pubDate>Thu, 22 Oct 2009 14:54:51 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/10/22/step-1-balsamiq-mockup.ashx</feedburner:origLink></item><item><title>Matt Lauer "Helps" Unveil Windows On The Today, Sort Of</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/SfrU2ipjAtA/matt-lauer-helps-unveil-windows-on-the-today-sort-of.ashx</link><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Matt_Lauer" target="&lt;em&gt;blank"&gt;Matt Lauer&lt;/a&gt; on the Today Show this morning had Steve Balmer on to &lt;a href="http://www.msnbc.msn.com/id/21134540/vp/33428419#33428419" target="&lt;/em&gt;blank"&gt;talk about today's unveiling of the consumer version of Windows 7&lt;/a&gt;.  Unfortunately, around minute 4:30 he starts talking about CEO salaries and bonus payouts.  WTF? Seriously Matt, CEO salaries have exactly what to do with the release of Windows 7? &lt;/p&gt;

&lt;p&gt;They also show the &lt;a href="http://www.sonystyle.com/webapp/wcs/stores/servlet/CategoryDisplay?catalogId=10551&amp;amp;storeId=10151&amp;amp;langId=-1&amp;amp;categoryId=8198552921644671994&amp;amp;N=4294954311" target="_blank"&gt;Sony VAIO L Series all-in-one touchscreen PC&lt;/a&gt; which looked pretty frickin cool, I'm diggin' those displays. &lt;/p&gt;
</description><pubDate>Thu, 22 Oct 2009 13:10:18 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/10/22/matt-lauer-helps-unveil-windows-on-the-today-sort-of.ashx</feedburner:origLink></item><item><title>Windows 7 House Party Already Started!</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/NgQojcJwkzs/windows-7-house-party-already-started.ashx</link><description>&lt;p&gt;I've been running Windows 7 full time since the &lt;a href="http://panteravb.com/blog/posts/2009/1/10/window-7-official-beta-installed.ashx" target="&lt;em&gt;blank"&gt;Beta was released&lt;/a&gt;.  I signed up to host a &lt;a href="http://www.houseparty.com/party/177791" target="&lt;/em&gt;blank"&gt;house party&lt;/a&gt; for the Microsoft promo kicking off the October 22 consumer release of Windows 7.  You receive a single license for Windows 7 Ultimate for hosting a house party so Friday night I decided to install the 64 bit edition on my Thinkpad.  Everything rocks, here's what I have installed:&lt;/p&gt;

&lt;h3&gt;Hardware&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/systemconfig.runtime.workflow:LoadRuntimeTree?sb=:00000025:00001CCE:&amp;amp;smid=EC3A24B73CCE493BB1C514421A9BB0B7"&gt;Thinkpad W500&lt;/a&gt; (&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819111006" target="_blank"&gt;Intel Core 2 Duo T9600&lt;/a&gt;, 4 gigs RAM, 512mb video)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820183208" target="_blank"&gt;64 gig SSD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Software&lt;/h3&gt;

&lt;p&gt;Windows 7 installed in about 12 minutes.  Once the OS was installed, I updated the video and bios drivers only from Lenovo's site and that was it; audio, networking, and any other drivers were left out.  The next steps involve getting the machine ready to develop .NET applications, so I start with Visual Studio 2008(and SP1), then SQL Server 2008(and SP1).&lt;/p&gt;

&lt;p&gt;After the big pieces of software are installed, I continue with all of this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.mozilla.com/en-US/firefox/personal.html" target="_blank"&gt;Firefox&lt;/a&gt;, and set it as the default browser&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mozillamessaging.com/en-US/thunderbird/" target="_blank"&gt;Thunderbird&lt;/a&gt;, yep, I lost Outlook almost 2 years ago and haven't looked back&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tortoisesvn.net/downloads" target="_blank"&gt;Tortoise SVN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.open.collab.net/downloads/subversion/" target="_blank"&gt;Subversion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://filezilla-project.org/download.php" target="_blank"&gt;Filezilla&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.panteravb.com/downloads/ccarter-vs-fonts-and-colors-2009-01-09.zip" target="_blank"&gt;My Dark Theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.7-zip.org/download.html" target="_blank"&gt;7-zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/index.xml" target="_blank"&gt;CodeRush with Refactor!Pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://testdriven.net/default.aspx" target="_blank"&gt;TestDriven.NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://submain.com/download/ghostdoc/" target="_blank"&gt;Ghostdoc&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.nunit.org/index.php?p=download"&gt;NUnit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nant.sourceforge.net/" target="_blank"&gt;NAnt&lt;/a&gt;, the latest nightly build on their site&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sliver.com/dotnet/SnippetCompiler/" target="_blank"&gt;SnippetCompiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ntwind.com/software/winsnap/download.html" target="_blank"&gt;WinSnap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.scootersoftware.com/index.php" target="_blank"&gt;Beyond Compare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx" target="_blank"&gt;Delete SVN Folders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000368.html" target="&lt;em&gt;blank"&gt;Clean Sources&lt;/a&gt;, here's &lt;a href="http://panteravb.com/downloads/clean sources.zip" target="&lt;/em&gt;blank"&gt;my VS2008 source&lt;/a&gt; and &lt;a href="http://panteravb.com/downloads/CleanSourcesInstaller.zip" target="_blank"&gt;installer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.red-gate.com/products/SQL_Compare/index.htm" target="_blank"&gt;Sql Compare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117" target="_blank"&gt;WPF Tookit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://aspnet.codeplex.com/wikipage?title=MVC&amp;amp;referringTitle=Home" target="_blank"&gt;ASP.NET MVC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm" target="_blank"&gt;Notepad++&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MS Office, only because my work requires it&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dotpdn.com/downloads/pdn.html" target="_blank"&gt;Paint.NET&lt;/a&gt;, I installed the 3.5 beta 3&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/talk/" target="_blank"&gt;GTalk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.live.com/?sku=messenger" target="_blank"&gt;Live Messenger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I spent from Friday night until Saturday afternoon installing.  I'm pleased to say, that given the above list of software, I have experienced zero issues.  Windows 7. GET IT.&lt;/p&gt;
</description><pubDate>Mon, 19 Oct 2009 01:25:54 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/10/18/windows-7-house-party-already-started.ashx</feedburner:origLink></item><item><title>Pair&amp;lt;TFirst, TSecond&amp;gt;</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/WeCmBzrC09I/pairlttfirst-tsecondgt.ashx</link><description>&lt;p&gt;I first used the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.pair.aspx"&gt;Pair&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.triplet.aspx"&gt;Triplet&lt;/a&gt; classes while figuring out how to recreate dynamic ASP.NET WebForms controls.  They came in pretty handy.  Since then, generics came out and I created this(I'm sure I'm not alone):&lt;/p&gt;

&lt;table cellpadding='0' cellspacing='0' class='irisContainer' style='border-collapse: collapse; border-spacing:0'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='margin: 0; padding:0'&gt;&lt;/td&gt;
&lt;td rowspan='2' class='highlighted output'&gt;&lt;pre class="cs highlighted"&gt;&lt;span class="normal"&gt;&lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="comment"&gt;/// Responsible for representing two values of any type.&lt;/span&gt;
&lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;typeparam &lt;/span&gt;&lt;span class="type"&gt;name&lt;/span&gt;=&lt;span class="string"&gt;"TFirst"&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;The type of the first.&lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
&lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;typeparam &lt;/span&gt;&lt;span class="type"&gt;name&lt;/span&gt;=&lt;span class="string"&gt;"TSecond"&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;The type of the second.&lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
&lt;span class="storageClass"&gt;public&lt;/span&gt; &lt;span class="storageClass"&gt;class&lt;/span&gt; Pair&amp;lt;TFirst, TSecond&amp;gt;{
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// Gets or sets the first.&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;value&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;The first.&lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;value&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="storageClass"&gt;public&lt;/span&gt; TFirst First { get; set; }

    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// Gets or sets the second.&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;value&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;The second.&lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;value&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="storageClass"&gt;public&lt;/span&gt; TSecond Second { get; set; }

    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// Initializes a new instance of the &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;see&lt;/span&gt;&lt;span class="function"&gt; &lt;/span&gt;&lt;span class="type"&gt;cref&lt;/span&gt;=&lt;span class="string"&gt;"Pair&lt;/span&gt;&lt;span class="type"&gt;&amp;amp;&lt;/span&gt;&lt;span class="statement"&gt;lt&lt;/span&gt;&lt;span class="type"&gt;;&lt;/span&gt;&lt;span class="string"&gt;TFirst, TSecond&lt;/span&gt;&lt;span class="type"&gt;&amp;amp;&lt;/span&gt;&lt;span class="statement"&gt;gt&lt;/span&gt;&lt;span class="type"&gt;;&lt;/span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span class="function"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt; class.&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="storageClass"&gt;public&lt;/span&gt; Pair() : &lt;span class="statement"&gt;this&lt;/span&gt;(&lt;span class="label"&gt;default&lt;/span&gt;(TFirst), &lt;span class="label"&gt;default&lt;/span&gt;(TSecond)) { }

    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// Initializes a new instance of the &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;see&lt;/span&gt;&lt;span class="function"&gt; &lt;/span&gt;&lt;span class="type"&gt;cref&lt;/span&gt;=&lt;span class="string"&gt;"Pair&lt;/span&gt;&lt;span class="type"&gt;&amp;amp;&lt;/span&gt;&lt;span class="statement"&gt;lt&lt;/span&gt;&lt;span class="type"&gt;;&lt;/span&gt;&lt;span class="string"&gt;TFirst, TSecond&lt;/span&gt;&lt;span class="type"&gt;&amp;amp;&lt;/span&gt;&lt;span class="statement"&gt;gt&lt;/span&gt;&lt;span class="type"&gt;;&lt;/span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span class="function"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt; class.&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;summary&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;param&lt;/span&gt;&lt;span class="function"&gt; &lt;/span&gt;&lt;span class="type"&gt;name&lt;/span&gt;=&lt;span class="string"&gt;"first"&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;The first.&lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;param&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="function"&gt;&amp;lt;&lt;/span&gt;&lt;span class="statement"&gt;param&lt;/span&gt;&lt;span class="function"&gt; &lt;/span&gt;&lt;span class="type"&gt;name&lt;/span&gt;=&lt;span class="string"&gt;"second"&lt;/span&gt;&lt;span class="function"&gt;&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;The second.&lt;/span&gt;&lt;span class="identifier"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="statement"&gt;param&lt;/span&gt;&lt;span class="identifier"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="storageClass"&gt;public&lt;/span&gt; Pair(TFirst first, TSecond second){
        &lt;span class="statement"&gt;this&lt;/span&gt;.First = first;
        &lt;span class="statement"&gt;this&lt;/span&gt;.Second = second;
    }
}
&lt;/span&gt;&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class='output lineNumbers'&gt;
&lt;pre class='lineNumbers'&gt;&lt;span class='lineNumbers'&gt;1
2
3
4
5
6
7
8
9
&lt;span class='nthLineNumber'&gt;10&lt;/span&gt;
11
12
13
14
15
16
17
18
19
&lt;span class='nthLineNumber'&gt;20&lt;/span&gt;
21
22
23
24
25
26
27
28
29
&lt;span class='nthLineNumber'&gt;30&lt;/span&gt;
31
32
33
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Usage includes those times when you have the need for a structure to hold two simple values but you don't want to create a new class just for that.  Say you want a dictionary where the key is an int and the value is that structure, you can do this with the Pair&amp;lt;TFirst, TSecond&amp;gt; class:&lt;/p&gt;

&lt;table cellpadding='0' cellspacing='0' class='irisContainer' style='border-collapse: collapse; border-spacing:0'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='margin: 0; padding:0'&gt;&lt;/td&gt;
&lt;td rowspan='2' class='highlighted output'&gt;&lt;pre class="cs highlighted"&gt;&lt;span class="normal"&gt;var dict = &lt;span class="statement"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="type"&gt;int&lt;/span&gt;, Pair&amp;lt;&lt;span class="type"&gt;string&lt;/span&gt;, &lt;span class="type"&gt;string&lt;/span&gt;&amp;gt;&amp;gt;();
dict.Add(&lt;span class="number"&gt;1&lt;/span&gt;, &lt;span class="statement"&gt;new&lt;/span&gt; Pair&amp;lt;&lt;span class="type"&gt;string&lt;/span&gt;, &lt;span class="type"&gt;string&lt;/span&gt;&amp;gt;(&lt;span class="string"&gt;"Carter"&lt;/span&gt;, &lt;span class="string"&gt;"Chris"&lt;/span&gt;));
dict.Add(&lt;span class="number"&gt;2&lt;/span&gt;, &lt;span class="statement"&gt;new&lt;/span&gt; Pair&amp;lt;&lt;span class="type"&gt;string&lt;/span&gt;, &lt;span class="type"&gt;string&lt;/span&gt;&amp;gt;(&lt;span class="string"&gt;"Carter"&lt;/span&gt;, &lt;span class="string"&gt;"Emmitt"&lt;/span&gt;));
&lt;span class="repeat"&gt;foreach&lt;/span&gt;(var kvp &lt;span class="statement"&gt;in&lt;/span&gt; dict){
    Console.WriteLine(kvp.Value.First + &lt;span class="string"&gt;", "&lt;/span&gt; + kvp.Value.Second);
}
&lt;/span&gt;&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class='output lineNumbers'&gt;
&lt;pre class='lineNumbers'&gt;&lt;span class='lineNumbers'&gt;1
2
3
4
5
6
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;and the output would be this:&lt;/p&gt;

&lt;p&gt;&lt;img src="/blog/image/view/141.ashx" /&gt;&lt;/p&gt;

&lt;p&gt;Kind of a lame example but you get the idea.  I had made a similar one for the Triplet class but that started looking a little messy so I put that on the back burner.&lt;/p&gt;
</description><pubDate>Tue, 06 Oct 2009 12:00:57 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/10/6/pairlttfirst-tsecondgt.ashx</feedburner:origLink></item><item><title>"No Task" Is Way Easier</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/8rfB5wweXTU/no-task-is-way-easier.ashx</link><description>&lt;p&gt;So the other day I was getting caught up with &lt;a href="http://zenhabits.net/" target="&lt;em&gt;blank"&gt;zenhabits.com&lt;/a&gt; and came across &lt;a href="http://zenhabits.net/2009/10/theres-no-task-easier-than-no-task/" target="&lt;/em&gt;blank"&gt;this post&lt;/a&gt;.  It totally made me stop in my tracks.  Why? Because I started rewriting the blog again and kept running into motivational road blocks.  I just didn't feel like rewriting it.  So there it sat, the beginning of a rewrite and it never moved.&lt;/p&gt;

&lt;p&gt;Then I read that article and it hit me like a brick.  &lt;strong&gt;Stop rewriting this shit, go back to the version(that I'm posting with now) and get on with other stuff!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I feel like a huge weight has been lifted.  Note to self: &lt;em&gt;If you really don't need to do it, cross it off that list!&lt;/em&gt;&lt;/p&gt;
</description><pubDate>Tue, 06 Oct 2009 00:31:28 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/10/5/no-task-is-way-easier.ashx</feedburner:origLink></item><item><title>Broken Windows</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/9dr70ChXTgo/broken-windows.ashx</link><description>&lt;p&gt;From &lt;a href="http://www.pragprog.com/the-pragmatic-programmer"&gt;The Pragmatic Programmer&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;"One broken window, left unrepaired for any substantial length of time, instills in the inhabitants of the building a sense of abandonment - a sense that the powers that be don't care about the building.  So another window gets broken.  People start littering.  Graffiti appears.  Serious structural damage begins.  In a relatively short space of time, the building becomes damaged beyond the owner's desire to fix it, and the sense of abandonment becomes reality."&lt;/p&gt;

&lt;p&gt;I keep getting the feeling in my current project that all of the &lt;strong&gt;// HACK&lt;/strong&gt; comments are like broken windows.  Near all of those &lt;strong&gt;// HACK&lt;/strong&gt; comments, but not part of the described HACK, is some really shitty code.  &lt;/p&gt;

&lt;p&gt;Here's my feature request for future versions of Visual Studio: time sensitive &lt;strong&gt;// HACK&lt;/strong&gt; comments.  Meaning, after a customizable amount of time, those comments actually cause the project to start failing to build.  Stop the broken windows!&lt;/p&gt;
</description><pubDate>Sun, 02 Aug 2009 20:03:35 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/8/2/broken-windows.ashx</feedburner:origLink></item><item><title>Recursion Deep Dive</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/t2dlrraeT_Q/recursion-deep-dive.ashx</link><description>&lt;p&gt;Giles has the easiest way to understanding recursion posted &lt;a href="http://gilesbowkett.blogspot.com/2009/05/recursion-is-easy-to-understand.html"&gt;here&lt;/a&gt;.  perfect.&lt;/p&gt;
</description><pubDate>Fri, 29 May 2009 11:27:28 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/5/29/recursion-deep-dive.ashx</feedburner:origLink></item><item><title>Online Software vs Desktop Software</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/iY72roVO1ZU/online-software-vs-desktop-software.ashx</link><description>&lt;p&gt;I just started writing on a blog I've had for awhile, &lt;a href="http://chrisjcarter.wordpress.com"&gt;http://chrisjcarter.wordpress.com&lt;/a&gt;.  I've decided that's where I'm going to put non-geek related stuff.  &lt;/p&gt;

&lt;p&gt;The wordpress tools for blogging online are cool.  But there's one thing that never changes with online tools like this:&lt;strong&gt;latency&lt;/strong&gt;.  After clicking a save button, I have to wait....and wait.....and wait.  I frickin HATE waiting. &lt;/p&gt;

&lt;h3&gt;Waiting Sucks&lt;/h3&gt;

&lt;p&gt;That's why I like &lt;a href="http://panteravb.com/blog/posts/2008/4/26/my-new-rig-deathangel-20.ashx"&gt;fast hardware&lt;/a&gt;.  People have laughed at me for worrying about compiling taking 5 seconds versus 10 seconds.  It's only 5 seconds, right? This means that every 12 compiles costs me one minute of time.  Every 120 compiles costs me 10 minutes...see where I'm going.  I'd bet that I compile somewhere closer to 250 times a day or more.  That's 20+ minutes I end up waiting per day, I prolly average 6 days a week of that.  That's now over 2 hours per week that I'm waiting for my software to compile.  50 weeks a year, that's 100 hours now spent waiting.  Say you charge 50 bucks an hour.  Do the math.  That's $5,000 you just lost in possible revenue OR worse, that's &lt;strong&gt;$5,000 dollars that was billed to a client who, unbeknownst to them, paid for you to wait&lt;/strong&gt;. F**k that.&lt;/p&gt;

&lt;p&gt;OK.  That was a sort of rant but c'mon, waiting sucks no matter what picture you paint.  Is there a blogger client that allows you to very simply input content offline, and if you "happen" to be connected will publish it?  That sounds simple, but my requirement for the tool is that it works like I do.&lt;/p&gt;

&lt;h3&gt;WYSIWYG? Nope&lt;/h3&gt;

&lt;p&gt;Oh, and I don't care about WYSIWYG editors.  My content is simple, by design.  Paragraphs, links, emphasized text occasionally, and some embedded images and/or videos.  That's all.  I don't need much. I'm using &lt;a href="http://daringfireball.net/projects/markdown/"&gt;markdown&lt;/a&gt; in my online editor for this blog right now and it's just OK.  It's better than &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt; &lt;strong&gt;for me&lt;/strong&gt; because the WYSIWYG thing isn't needed for me, but that editor kicks ass and it's free(so if you want wicked awesome editor check it out).&lt;/p&gt;

&lt;h3&gt;Latency&lt;/h3&gt;

&lt;p&gt;I hate clicking the save button on this blog or the other one and waiting longer than a nano-second.  I want the confidence that I can click save and keep working, and know that my shit was saved and I can continue working.&lt;/p&gt;

&lt;h3&gt;Random Post&lt;/h3&gt;

&lt;p&gt;Yes, this was a little rant-ish.  I'm mostly setting up the requirements for what I want to build in terms of an offline blogging client, in wpf.  I start my &lt;a href="http://chrisjcarter.wordpress.com/2009/05/23/21-days/"&gt;21 days&lt;/a&gt; in two days.  During that time, there will be some crazy software being built.&lt;/p&gt;
</description><pubDate>Mon, 25 May 2009 02:00:54 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/5/24/online-software-vs-desktop-software.ashx</feedburner:origLink></item><item><title>nVidia Windows 7 Drivers</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/ula8GVhTuCE/nvidia-windows-7-drivers.ashx</link><description>&lt;p&gt;huh, looks like nVidia is ready for windows 7.  &lt;/p&gt;

&lt;p&gt;&lt;img src="/blog/image/view/140.ashx" /&gt;&lt;/p&gt;

&lt;p&gt;It's a good thing, the machine running Windows 7 has an nVidia card and it keeps randomly rebooting, i'm taking a stab that all i need are nVidia's driver versus whatever Win 7 installed(hopefully they are different or this is a waste of time).&lt;/p&gt;
</description><pubDate>Tue, 19 May 2009 13:22:04 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/5/19/nvidia-windows-7-drivers.ashx</feedburner:origLink></item><item><title>My First SSD Is In The Mail!</title><link>http://feedproxy.google.com/~r/ChrisCartersWebLog/~3/cqIkjbQvryU/my-first-ssd-is-in-the-mail.ashx</link><description>&lt;p&gt;Woo hoo! So my laptop hard drive is VERY unstable, so I decided today that instead of waiting until it goes bye bye I'd better replace it.  But since solid state drives are all the rage I decided to &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820183208"&gt;get one&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then I saw &lt;a href="http://www.amazon.com/OCZ-TECHNOLOGY-OCZSSDPCIE-1ZDRV1T-Z-Drive-PCI-Express/dp/B00284ABEQ/ref=sr_1_2?ie=UTF8&amp;amp;s=electronics&amp;amp;qid=1242702131&amp;amp;sr=8-2"&gt;this&lt;/a&gt; crazy ass drive via &lt;a href="http://www.engadget.com/2009/05/18/prototype-ocz-z-drive-pci-express-ssd-splayed-scoped-out/"&gt;engadget&lt;/a&gt;.  It's only about &lt;strong&gt;3200 bucks more&lt;/strong&gt; than the drive I bought today, but man it's wicked awesome.  And get this, "item ships for &lt;strong&gt;FREE with Super Saver Shipping&lt;/strong&gt;" ... ya think?&lt;/p&gt;
</description><pubDate>Tue, 19 May 2009 02:22:34 GMT</pubDate><feedburner:origLink>http://panteravb.com/blog/posts/2009/5/18/my-first-ssd-is-in-the-mail.ashx</feedburner:origLink></item></channel></rss>
