<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://cubeantics.com/wp-atom.php">
	<title type="text">Cube Antics</title>
	<subtitle type="text">Scatterthoughts on Programming, Technology, and Life in a Cubicle</subtitle>

	<updated>2010-02-21T16:17:02Z</updated>
	<generator uri="http://wordpress.org/" version="2.9.1">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://cubeantics.com" />
	<id>http://cubeantics.com/feed/atom/</id>
	

			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/cubeantics" /><feedburner:info uri="cubeantics" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/3.0/" /><feedburner:emailServiceId>cubeantics</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[I&#8217;m Moving!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/5v34eliO1Gs/" />
		<id>http://cubeantics.com/?p=571</id>
		<updated>2010-02-09T21:18:24Z</updated>
		<published>2010-02-09T21:18:24Z</published>
		<category scheme="http://cubeantics.com" term="Random" />		<summary type="html"><![CDATA[<p>After much thought, I&#8217;ve decided to move this blog to <a href="http://creatingcode.com">creatingcode.com</a>.</p>
<p>The new feed location is here &#8211; <a href="http://feeds.feedburner.com/CreatingCode">Creating Code</a></p>
<p>Here are the following changes I am going to make when switching over to <em>Creating Code</em></p>
<ul>
<li>Create more <strong>programming</strong> centric articles.</li>
<li>Focus on <strong>quality</strong> over quantity</li>
<li>Keep the same l<strong>ight-hearted attitude</strong> towards the delivery of the content, while taking the production of the content more <strong>seriously</strong>.</li>
</ul>
<p>There are a couple of articles I&#8217;ve written for <em>Cube Antics</em> that I think have some real promise, but are lacking in either depth&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/02/im-moving/">&lt;p&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2010/02/detour-signs-170x170.jpg" alt="" title="detour signs" width="170" height="170" class="alignleft size-medium wp-image-572" /&gt;After much thought, I&amp;#8217;ve decided to move this blog to &lt;a href="http://creatingcode.com"&gt;creatingcode.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The new feed location is here &amp;#8211; &lt;a href="http://feeds.feedburner.com/CreatingCode"&gt;Creating Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are the following changes I am going to make when switching over to &lt;em&gt;Creating Code&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create more &lt;strong&gt;programming&lt;/strong&gt; centric articles.&lt;/li&gt;
&lt;li&gt;Focus on &lt;strong&gt;quality&lt;/strong&gt; over quantity&lt;/li&gt;
&lt;li&gt;Keep the same l&lt;strong&gt;ight-hearted attitude&lt;/strong&gt; towards the delivery of the content, while taking the production of the content more &lt;strong&gt;seriously&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a couple of articles I&amp;#8217;ve written for &lt;em&gt;Cube Antics&lt;/em&gt; that I think have some real promise, but are lacking in either depth or overall writing quality.  I plan on taking a few of them and revamping them for &lt;em&gt;Creating Code&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Next time you visit cubeantics.com you should get redirected to creatingcode.com&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been fun, thanks for reading and I&amp;#8217;ll see you on the flip-side.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fim-moving%2F&amp;amp;title=I%27m+Moving%21"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fim-moving%2F&amp;amp;title=I%27m+Moving%21"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fim-moving%2F&amp;amp;title=I%27m+Moving%21"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=I%27m+Moving%21&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fim-moving%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fim-moving%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Random Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/nook-unboxing/" title="B&amp;#038;N Nook: Unboxing the World&amp;#8217;s Most Advanced eBook Reader"&gt;B&amp;#038;N Nook: Unboxing the World&amp;#8217;s Most Advanced eBook Reader&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/10/smu-seminar-series-vlsi-and-nanotechnology/" title="SMU Seminar Series: VLSI and Nanotechnology"&gt;SMU Seminar Series: VLSI and Nanotechnology&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/new-site-layout-launched/" title="New Site Layout Launched!"&gt;New Site Layout Launched!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/3-ways-to-suck-less-in-2010/" title="3 Ways to Suck Less in 2010"&gt;3 Ways to Suck Less in 2010&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/5v34eliO1Gs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/02/im-moving/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/02/im-moving/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/02/im-moving/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Starting a WordPress Theme From Scratch]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/ITF7WM1pTMA/" />
		<id>http://cubeantics.com/?p=569</id>
		<updated>2010-02-05T20:59:45Z</updated>
		<published>2010-02-05T20:58:34Z</published>
		<category scheme="http://cubeantics.com" term="Random" /><category scheme="http://cubeantics.com" term="Web Design" /><category scheme="http://cubeantics.com" term="blog" /><category scheme="http://cubeantics.com" term="wordpress" />		<summary type="html"><![CDATA[<p>So much of web design today is duplicating effort.  This is especially true for creating WordPress themes because of the extra blog code that needs to be hooked into each theme.</p>
<p>I started a new project on GitHub called <a href="http://github.com/robertgreiner/MinWP">MinWP</a> that will contain all of the source files necessary to get started with a new WordPress theme.  The goal is to create a fully functional 2-column theme with absolutely no additional design elements added to it.</p>
<p>Now, to create a new WordPress theme,&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/02/starting-a-wordpress-theme-from-scratch/">&lt;p&gt;So much of web design today is duplicating effort.  This is especially true for creating WordPress themes because of the extra blog code that needs to be hooked into each theme.&lt;/p&gt;
&lt;p&gt;I started a new project on GitHub called &lt;a href="http://github.com/robertgreiner/MinWP"&gt;MinWP&lt;/a&gt; that will contain all of the source files necessary to get started with a new WordPress theme.  The goal is to create a fully functional 2-column theme with absolutely no additional design elements added to it.&lt;/p&gt;
&lt;p&gt;Now, to create a new WordPress theme, you can simply download the files in MinWP, add CSS and blog specific code, and upload your new theme.&lt;/p&gt;
&lt;p&gt;This is a project that will continue to evolve over time, so if you want to contribute, feel free!&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fstarting-a-wordpress-theme-from-scratch%2F&amp;amp;title=Starting+a+WordPress+Theme+From+Scratch"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fstarting-a-wordpress-theme-from-scratch%2F&amp;amp;title=Starting+a+WordPress+Theme+From+Scratch"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fstarting-a-wordpress-theme-from-scratch%2F&amp;amp;title=Starting+a+WordPress+Theme+From+Scratch"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Starting+a+WordPress+Theme+From+Scratch&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fstarting-a-wordpress-theme-from-scratch%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F02%2Fstarting-a-wordpress-theme-from-scratch%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/turning-off-post-revisions-in-wordpress/" title="Turning Off Post Revisions in Wordpress"&gt;Turning Off Post Revisions in Wordpress&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/ITF7WM1pTMA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/02/starting-a-wordpress-theme-from-scratch/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/02/starting-a-wordpress-theme-from-scratch/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/02/starting-a-wordpress-theme-from-scratch/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Using .NET to Monitor a Directory for Changes]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/fiylY3ShSnQ/" />
		<id>http://cubeantics.com/?p=567</id>
		<updated>2010-02-02T02:35:57Z</updated>
		<published>2010-01-29T22:00:43Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term=".NET" /><category scheme="http://cubeantics.com" term="C#" /><category scheme="http://cubeantics.com" term="FileSystem" /><category scheme="http://cubeantics.com" term="monitoring" />		<summary type="html"><![CDATA[<p>.NET&#8217;s FileSystemWatcher class can soothe the paranoid control freak in all of us by monitoring a specified folder for different types of file system changes.</p>
<h2>The Code</h2>
<pre name="code" class="csharp">
using System;
using System.Text;
using System.IO;

namespace FolderWatcher {
  class Watcher {
    static void Main(string[] args) {
      FileSystemWatcher watcher = new FileSystemWatcher(@"D:\test");
      watcher.IncludeSubdirectories = true;
      watcher.Filter = "";
      watcher.Renamed += new RenamedEventHandler(renamed);
      watcher.Deleted += new FileSystemEventHandler(changed);
      watcher.Changed += new FileSystemEventHandler(changed);
      watcher.Created += new FileSystemEventHandler(changed);
      watcher.EnableRaisingEvents = true;

      Console.ReadKey();
   }

    private static void renamed(object sender, RenamedEventArgs&#8230;</pre>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/">&lt;p&gt;.NET&amp;#8217;s FileSystemWatcher class can soothe the paranoid control freak in all of us by monitoring a specified folder for different types of file system changes.&lt;/p&gt;
&lt;h2&gt;The Code&lt;/h2&gt;
&lt;pre name="code" class="csharp"&gt;
using System;
using System.Text;
using System.IO;

namespace FolderWatcher {
  class Watcher {
    static void Main(string[] args) {
      FileSystemWatcher watcher = new FileSystemWatcher(@"D:\test");
      watcher.IncludeSubdirectories = true;
      watcher.Filter = "";
      watcher.Renamed += new RenamedEventHandler(renamed);
      watcher.Deleted += new FileSystemEventHandler(changed);
      watcher.Changed += new FileSystemEventHandler(changed);
      watcher.Created += new FileSystemEventHandler(changed);
      watcher.EnableRaisingEvents = true;

      Console.ReadKey();
   }

    private static void renamed(object sender, RenamedEventArgs e) {
      Console.WriteLine(DateTime.Now + ": " +
          e.ChangeType + " " + e.FullPath);
    }

    private static void changed(object sender, FileSystemEventArgs e) {
      Console.WriteLine(DateTime.Now + ": " +
          e.ChangeType + " " + e.FullPath);
    }
  }
}
&lt;/pre&gt;
&lt;h2&gt;Explanation&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong style="color: #AAAAAA"&gt;FileSystemWatcher watcher = new FileSystemWatcher(@&amp;#8221;D:\test&amp;#8221;);&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The core of is application is .NET&amp;#8217;s &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx"&gt;FileSystemWatcher&lt;/a&gt; class which monitors directories for file system changes.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong style="color: #AAAAAA"&gt;watcher.IncludeSubdirectories = true;&lt;br /&gt;
watcher.Filter = &amp;#8220;&amp;#8221;;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Tells the FileSystemWatcher object to include changes in subdirectories and raise events on every type of file.&lt;/p&gt;
&lt;p&gt;An empty string for the filter will match every file and folder in the watched directory.  File types and names can also be added to the filter to create a more fine grained watch.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong style="color: #AAAAAA"&gt;watcher.Renamed += new RenamedEventHandler(renamed);&lt;br /&gt;
watcher.Deleted += new FileSystemEventHandler(changed);&lt;br /&gt;
watcher.Changed += new FileSystemEventHandler(changed);&lt;br /&gt;
watcher.Created += new FileSystemEventHandler(changed);&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sets the types of file system events the FileSystemWatcher object will respond to.  The four possible (and self-explanatory) events are: Renamed, Deleted, Changed, and Created.  Each EventHandler takes the method to be executed on that particular event as a paramater in its constructor.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong style="color: #AAAAAA"&gt;watcher.EnableRaisingEvents = true;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The final piece of the puzzle is to finally tell the FileSystemWatcher to start raising events on the specified directory.  Once this statement is executed, we will have a live directory watcher.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I wrote this code as a proof of concept for a &lt;a href="http://github.com/robertgreiner/LittleBrother"&gt;new project&lt;/a&gt; I am working on.  My goal is to create a simple/straightforward directory monitor that anyone can get and start using with very minimal effort.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-net-to-monitor-a-directory-for-changes%2F&amp;amp;title=Using+.NET+to+Monitor+a+Directory+for+Changes"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-net-to-monitor-a-directory-for-changes%2F&amp;amp;title=Using+.NET+to+Monitor+a+Directory+for+Changes"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-net-to-monitor-a-directory-for-changes%2F&amp;amp;title=Using+.NET+to+Monitor+a+Directory+for+Changes"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Using+.NET+to+Monitor+a+Directory+for+Changes&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-net-to-monitor-a-directory-for-changes%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-net-to-monitor-a-directory-for-changes%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/" title="Using #if and [Conditional()] to Keep Debug Code Under Control"&gt;Using #if and [Conditional()] to Keep Debug Code Under Control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/" title="Working With Custom Time Strings in C#"&gt;Working With Custom Time Strings in C#&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/10/devdays-austin-peter-mourfield-on-asp-net-mvc/" title="DevDays Austin: Peter Mourfield on ASP .NET MVC"&gt;DevDays Austin: Peter Mourfield on ASP .NET MVC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/using-nullable-with-csharp/" title="Write Better Code: Using Nullable With C#"&gt;Write Better Code: Using Nullable With C#&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/fiylY3ShSnQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[301 Redirect with ASP .NET]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/ZdVCwaOxClI/" />
		<id>http://cubeantics.com/?p=566</id>
		<updated>2010-01-25T18:47:37Z</updated>
		<published>2010-01-25T18:45:55Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="Web Design" /><category scheme="http://cubeantics.com" term="ASP .NET" /><category scheme="http://cubeantics.com" term="C#" /><category scheme="http://cubeantics.com" term="redirect" />		<summary type="html"><![CDATA[<p>When redirecting URL&#8217;s it is very important not to lose all of your <a href="http://en.wikipedia.org/wiki/Google_page_rank">search engine mojo</a>.  The best way to do this, is by using a <a href="http://en.wikipedia.org/wiki/301_redirect#HTTP_status_codes_3xx">301 redirect</a> which notifies the requester of a permanent URL move.</p>
<pre name="code" class="csharp">
&#60;script runat="server"&#62;
private void Page_Load(object sender, System.EventArgs e) {
  Response.Status = "301 Moved Permanently";
  Response.AddHeader("Location","http://www.newdomain.com");
}
&#60;/script&#62;
</pre>
<p>Should you have to redirect a URL to a new location, using a status 301 redirect is the safest way to do it.</p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F&#38;title=301+Redirect+with+ASP+.NET"></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F&#38;title=301+Redirect+with+ASP+.NET"></a></div><div class="lightsocial_element"><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F&#38;title=301+Redirect+with+ASP+.NET"></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=301+Redirect+with+ASP+.NET&#38;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F"></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F"></a></div></div><br /><h2 class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes">Using .NET to Monitor a&#8230;</a></li></ul>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/301-redirect-with-asp-net/">&lt;p&gt;When redirecting URL&amp;#8217;s it is very important not to lose all of your &lt;a href="http://en.wikipedia.org/wiki/Google_page_rank"&gt;search engine mojo&lt;/a&gt;.  The best way to do this, is by using a &lt;a href="http://en.wikipedia.org/wiki/301_redirect#HTTP_status_codes_3xx"&gt;301 redirect&lt;/a&gt; which notifies the requester of a permanent URL move.&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;
&amp;lt;script runat="server"&amp;gt;
private void Page_Load(object sender, System.EventArgs e) {
  Response.Status = "301 Moved Permanently";
  Response.AddHeader("Location","http://www.newdomain.com");
}
&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Should you have to redirect a URL to a new location, using a status 301 redirect is the safest way to do it.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F&amp;amp;title=301+Redirect+with+ASP+.NET"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F&amp;amp;title=301+Redirect+with+ASP+.NET"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F&amp;amp;title=301+Redirect+with+ASP+.NET"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=301+Redirect+with+ASP+.NET&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F301-redirect-with-asp-net%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes"&gt;Using .NET to Monitor a Directory for Changes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/" title="Using #if and [Conditional()] to Keep Debug Code Under Control"&gt;Using #if and [Conditional()] to Keep Debug Code Under Control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/" title="Honing Your Programming Skills with Project Euler"&gt;Honing Your Programming Skills with Project Euler&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/" title="Working With Custom Time Strings in C#"&gt;Working With Custom Time Strings in C#&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/ZdVCwaOxClI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/301-redirect-with-asp-net/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/301-redirect-with-asp-net/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/301-redirect-with-asp-net/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Creating a Fluid Two-Column Layout With a Single Fixed Width Column]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/An7owlnXr3w/" />
		<id>http://cubeantics.com/?p=565</id>
		<updated>2010-01-20T22:03:54Z</updated>
		<published>2010-01-20T22:03:54Z</published>
		<category scheme="http://cubeantics.com" term="Tips and Tricks" /><category scheme="http://cubeantics.com" term="Web Design" /><category scheme="http://cubeantics.com" term="CSS" /><category scheme="http://cubeantics.com" term="Fixed Width" /><category scheme="http://cubeantics.com" term="Fluid Layout" /><category scheme="http://cubeantics.com" term="Web Standards" /><category scheme="http://cubeantics.com" term="XHTML" />		<summary type="html"><![CDATA[<p>Ever wonder if you can create a fluid layout with a fixed witdh column?  Well, you can!</p>
<h2>layout.html</h2>
<pre name="code" class="html">
&#60;html&#62;
  &#60;head&#62;
    &#60;title&#62;Fixed Left Column&#60;/title&#62;
    &#60;link rel="stylesheet" href="test.css" type="text/css" /&#62;
  &#60;/head&#62;
  &#60;body&#62;
    &#60;div&#62;Left div&#60;/div&#62;
    &#60;div&#62;Right div&#60;/div&#62;
  &#60;/body&#62;
&#60;/html&#62;
</pre>
<h2>test.css</h2>
<pre name="code" class="css">
.left {
	width: 300px;
	float: left;
	background-color: #CCCCCC;
}
.right {
	margin-left: 300px;
}
</pre>
<p>There are very few times in life that you can have things both ways, this is one of them.</p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F&#38;title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column"></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F&#38;title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column"></a></div><div class="lightsocial_element"><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F&#38;title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column"></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column&#38;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F"></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F"></a></div></div><br /><h2 class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://cubeantics.com/2009/07/the-adventures-of-a-web-designer-part-4-finishing-with-style/" title="The Adventures of a Web Designer [Part 4 - Finishing With Style]">The Adventures of a Web Designer [Part 4 - Finishing With Style]</a></li><li><a href="http://cubeantics.com/2009/07/the-adventures-of-a-web-designer-part-2-%e2%80%93-the-mulligan/" title="The Adventures of a Web Designer [Part 3 – The Mulligan]">The Adventures&#8230;</a></li></ul>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/creating-a-fluid-two-column-layout-with-a-single-fixed-width-column/">&lt;p&gt;Ever wonder if you can create a fluid layout with a fixed witdh column?  Well, you can!&lt;/p&gt;
&lt;h2&gt;layout.html&lt;/h2&gt;
&lt;pre name="code" class="html"&gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Fixed Left Column&amp;lt;/title&amp;gt;
    &amp;lt;link rel="stylesheet" href="test.css" type="text/css" /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div&amp;gt;Left div&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;Right div&amp;lt;/div&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;h2&gt;test.css&lt;/h2&gt;
&lt;pre name="code" class="css"&gt;
.left {
	width: 300px;
	float: left;
	background-color: #CCCCCC;
}
.right {
	margin-left: 300px;
}
&lt;/pre&gt;
&lt;p&gt;There are very few times in life that you can have things both ways, this is one of them.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F&amp;amp;title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F&amp;amp;title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F&amp;amp;title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Creating+a+Fluid+Two-Column+Layout+With+a+Single+Fixed+Width+Column&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fcreating-a-fluid-two-column-layout-with-a-single-fixed-width-column%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/07/the-adventures-of-a-web-designer-part-4-finishing-with-style/" title="The Adventures of a Web Designer [Part 4 - Finishing With Style]"&gt;The Adventures of a Web Designer [Part 4 - Finishing With Style]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/07/the-adventures-of-a-web-designer-part-2-%e2%80%93-the-mulligan/" title="The Adventures of a Web Designer [Part 3 – The Mulligan]"&gt;The Adventures of a Web Designer [Part 3 – The Mulligan]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/07/the-adventures-of-a-web-designer-part-2-%e2%80%93-the-theme/" title="The Adventures of a Web Designer [Part 2 – The Theme]"&gt;The Adventures of a Web Designer [Part 2 – The Theme]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/07/the-adventures-of-a-web-designer-part-1/" title="The Adventures of a Web Designer [Part 1 - The Plan]"&gt;The Adventures of a Web Designer [Part 1 - The Plan]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/An7owlnXr3w" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/creating-a-fluid-two-column-layout-with-a-single-fixed-width-column/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/creating-a-fluid-two-column-layout-with-a-single-fixed-width-column/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/creating-a-fluid-two-column-layout-with-a-single-fixed-width-column/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Using #if and [Conditional()] to Keep Debug Code Under Control]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/nV9BfdToQYM/" />
		<id>http://cubeantics.com/?p=563</id>
		<updated>2010-01-20T19:36:59Z</updated>
		<published>2010-01-20T01:32:06Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="#if" /><category scheme="http://cubeantics.com" term=".NET" /><category scheme="http://cubeantics.com" term="C#" /><category scheme="http://cubeantics.com" term="debug" />		<summary type="html"><![CDATA[<p>The #if directive provides a perfect way to ensure your released executable doesn&#8217;t execute any code that was only intended for debug mode.</p>
<p><strong>#if (&#60;symbol&#62;)</strong> will return true whenever the symbol being checked has been defined by default, or manually using <strong>#define</strong>.</p>
<pre name="code" class="csharp">
#if DEBUG
	//Perform debug only code
#else
	//Release-level code
#endif
</pre>
<p>Remember, this is only one application of <strong>#if</strong>, you can use it any time you need to check to see if a symbol has been defined.</p>
<p>You can also use the <strong>[Conditional("&#60;symbol&#62;")]</strong> attribute&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/">&lt;p&gt;The #if directive provides a perfect way to ensure your released executable doesn&amp;#8217;t execute any code that was only intended for debug mode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#if (&amp;lt;symbol&amp;gt;)&lt;/strong&gt; will return true whenever the symbol being checked has been defined by default, or manually using &lt;strong&gt;#define&lt;/strong&gt;.&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;
#if DEBUG
	//Perform debug only code
#else
	//Release-level code
#endif
&lt;/pre&gt;
&lt;p&gt;Remember, this is only one application of &lt;strong&gt;#if&lt;/strong&gt;, you can use it any time you need to check to see if a symbol has been defined.&lt;/p&gt;
&lt;p&gt;You can also use the &lt;strong&gt;[Conditional("&amp;lt;symbol&amp;gt;")]&lt;/strong&gt; attribute on any method that has a return type of void.  This will cause the compiler to remove all calls to the given method if the specified symbol is not defined.&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;
/* using System.Diagnostics; */
[Conditional("DEBUG")]
public void printDebug() {
	Console.WriteLine("Debug Information");
}
&lt;/pre&gt;
&lt;p&gt;Now &lt;strong&gt;printDebug()&lt;/strong&gt; will not be executed unless the application is in debug mode.&lt;/p&gt;
&lt;p&gt;Either method will save you time and effort by allowing you to leave debug code in your application, as well as provide you a more standardized and safe way to include debug code.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-if-and-conditional-to-keep-debug-code-under-control%2F&amp;amp;title=Using+%23if+and+%5BConditional%28%29%5D+to+Keep+Debug+Code+Under+Control"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-if-and-conditional-to-keep-debug-code-under-control%2F&amp;amp;title=Using+%23if+and+%5BConditional%28%29%5D+to+Keep+Debug+Code+Under+Control"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-if-and-conditional-to-keep-debug-code-under-control%2F&amp;amp;title=Using+%23if+and+%5BConditional%28%29%5D+to+Keep+Debug+Code+Under+Control"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Using+%23if+and+%5BConditional%28%29%5D+to+Keep+Debug+Code+Under+Control&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-if-and-conditional-to-keep-debug-code-under-control%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fusing-if-and-conditional-to-keep-debug-code-under-control%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes"&gt;Using .NET to Monitor a Directory for Changes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/" title="Working With Custom Time Strings in C#"&gt;Working With Custom Time Strings in C#&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/10/devdays-austin-peter-mourfield-on-asp-net-mvc/" title="DevDays Austin: Peter Mourfield on ASP .NET MVC"&gt;DevDays Austin: Peter Mourfield on ASP .NET MVC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/using-nullable-with-csharp/" title="Write Better Code: Using Nullable With C#"&gt;Write Better Code: Using Nullable With C#&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/nV9BfdToQYM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Sending Email in ASP .NET]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/wRnh1lC_fIs/" />
		<id>http://cubeantics.com/?p=561</id>
		<updated>2010-01-17T17:15:26Z</updated>
		<published>2010-01-16T23:42:05Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="Tips and Tricks" /><category scheme="http://cubeantics.com" term="Web Design" /><category scheme="http://cubeantics.com" term=".NET" /><category scheme="http://cubeantics.com" term="ASP" /><category scheme="http://cubeantics.com" term="mail" /><category scheme="http://cubeantics.com" term="SMTP" />		<summary type="html"><![CDATA[<p>I can&#8217;t think of too many websites that don&#8217;t send automated email.  Unfortunately, for ASP .NET programmers, there are several incorrect code snippets online which try to explain how to send email.</p>
<p>Here&#8217;s the code I use on the contact form for my <a href="http://robertgreiner.com">personal website</a> which does the trick quite nicely.</p>
<pre name="code" class="csharp">
/* using System.Net.Mail; */
MailMessage newMail = new MailMessage();
newMail.To.Add(toAddress);
newMail.Subject = subject;
newMail.Body = body;
newMail.From = new MailAddress(fromAddress, name);
newMail.IsBodyHtml = true;

SmtpClient SmtpSender = new SmtpClient();
SmtpSender.Port = 25;&#8230;</pre>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/sending-email-in-asp-net/">&lt;p&gt;I can&amp;#8217;t think of too many websites that don&amp;#8217;t send automated email.  Unfortunately, for ASP .NET programmers, there are several incorrect code snippets online which try to explain how to send email.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code I use on the contact form for my &lt;a href="http://robertgreiner.com"&gt;personal website&lt;/a&gt; which does the trick quite nicely.&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;
/* using System.Net.Mail; */
MailMessage newMail = new MailMessage();
newMail.To.Add(toAddress);
newMail.Subject = subject;
newMail.Body = body;
newMail.From = new MailAddress(fromAddress, name);
newMail.IsBodyHtml = true;

SmtpClient SmtpSender = new SmtpClient();
SmtpSender.Port = 25; //or, whatever port your SMTP server operates on
SmtpSender.Host = "mail.yourdomain.com";
SmtpSender.Send(newMail);
&lt;/pre&gt;
&lt;p&gt;Here, I&amp;#8217;m using &lt;strong&gt;MailMessage&lt;/strong&gt; to build the actual email message to be sent and &lt;strong&gt;SmtpClient&lt;/strong&gt; to do the actual sending.&lt;/p&gt;
&lt;p&gt;Add this code to your Web.config file before the final &lt;strong&gt;&amp;lt;/configuration&amp;gt;&lt;/strong&gt; tag:&lt;/p&gt;
&lt;pre name="code" class="xml"&gt;
&amp;lt;system.net&amp;gt;
  &amp;lt;mailSettings&amp;gt;
    &amp;lt;smtp&amp;gt;
      &amp;lt;network defaultCredentials="false"
           host="mail.yourdomain.com" port="25"
           userName="name-to-send-email@yourdomain.com"
           password="*****"/&amp;gt;
     &amp;lt;/smtp&amp;gt;
   &amp;lt;/mailSettings&amp;gt;
&amp;lt;/system.net&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Now, you should be able to send automated email messages to your heart&amp;#8217;s content.  Enjoy.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fsending-email-in-asp-net%2F&amp;amp;title=Sending+Email+in+ASP+.NET"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fsending-email-in-asp-net%2F&amp;amp;title=Sending+Email+in+ASP+.NET"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fsending-email-in-asp-net%2F&amp;amp;title=Sending+Email+in+ASP+.NET"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Sending+Email+in+ASP+.NET&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fsending-email-in-asp-net%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fsending-email-in-asp-net%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/10/devdays-austin-peter-mourfield-on-asp-net-mvc/" title="DevDays Austin: Peter Mourfield on ASP .NET MVC"&gt;DevDays Austin: Peter Mourfield on ASP .NET MVC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes"&gt;Using .NET to Monitor a Directory for Changes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/" title="Using #if and [Conditional()] to Keep Debug Code Under Control"&gt;Using #if and [Conditional()] to Keep Debug Code Under Control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/" title="Working With Custom Time Strings in C#"&gt;Working With Custom Time Strings in C#&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/wRnh1lC_fIs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/sending-email-in-asp-net/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/sending-email-in-asp-net/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/sending-email-in-asp-net/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Worrying About Small Details Can Kill Your Project]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/_VoUHU6JZ_A/" />
		<id>http://cubeantics.com/?p=559</id>
		<updated>2010-01-14T17:18:17Z</updated>
		<published>2010-01-14T18:00:43Z</published>
		<category scheme="http://cubeantics.com" term="Random" /><category scheme="http://cubeantics.com" term="projects" />		<summary type="html"><![CDATA[<p><a href="http://cubeantics.com/wp-content/uploads/2010/01/road_painting.jpg"></a>It&#8217;s amazing how seemingly insignificant things can completely derail a software project.  I was working on my first project of the year -a simple online Regex tool- and abruptly stopped work when I realized that the name I had chosen wasn&#8217;t good enough.  I then proceeded to obsess off and on for days until I came around full-circle and decided to stick with what I originally came up with.</p>
<p>Not only was this a horrible waste of time, it completely killed&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/worrying-about-small-details-can-kill-your-project/">&lt;p&gt;&lt;a href="http://cubeantics.com/wp-content/uploads/2010/01/road_painting.jpg"&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2010/01/road_painting-170x170.jpg" alt="" title="road_painting" width="170" height="170" class="alignleft size-medium wp-image-560" /&gt;&lt;/a&gt;It&amp;#8217;s amazing how seemingly insignificant things can completely derail a software project.  I was working on my first project of the year -a simple online Regex tool- and abruptly stopped work when I realized that the name I had chosen wasn&amp;#8217;t good enough.  I then proceeded to obsess off and on for days until I came around full-circle and decided to stick with what I originally came up with.&lt;/p&gt;
&lt;p&gt;Not only was this a horrible waste of time, it completely killed any momentum that I had built up in the first place.  Now, here I am, at the exact same point in the project I was a week ago with nothing to show for it.&lt;/p&gt;
&lt;p&gt;So, I suppose that&amp;#8217;s my vice.  For some reason, I get this weird feeling in my brain that if some small detail of the project isn&amp;#8217;t perfect, then the it must doomed to failure.  I went through the same thing with this blog, and it actually caused me to delay getting started by a few months after I finally decided to take the plunge (not to mention, the wasted $50 or so from domain name purchases that I&amp;#8217;ll never see again.)  &lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t even want to think about how much time I&amp;#8217;ve wasted trying to make sure all of the dominoes are in place before a project begins, when my time would have been much better spent actually &lt;strong&gt;producing something useful&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, I&amp;#8217;ve heard that this problem is quite common among detail oriented people.  This is probably why so many programmers (those who are inherently detail oriented) so frequently abandon software projects with excellent potential.&lt;/p&gt;
&lt;p&gt;The only good thing to come of this whole realization, is that I am able to identify one of my biggest mistakes and (finally) move on.  It is important to realize that getting hung up in the little details can turn your product from good to great, but it can just as easily run it into the ground when it renders you unproductive.  Finding that balance between worrying about details and moving forward is absolutely vital to any project and can be the difference in the survival of a project.  After all, It&amp;#8217;s not the name, colors, or programming language selection of a product that gets people excited, it&amp;#8217;s what your product can do to make their lives easier or better that will get them interested.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fworrying-about-small-details-can-kill-your-project%2F&amp;amp;title=Worrying+About+Small+Details+Can+Kill+Your+Project"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fworrying-about-small-details-can-kill-your-project%2F&amp;amp;title=Worrying+About+Small+Details+Can+Kill+Your+Project"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fworrying-about-small-details-can-kill-your-project%2F&amp;amp;title=Worrying+About+Small+Details+Can+Kill+Your+Project"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Worrying+About+Small+Details+Can+Kill+Your+Project&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fworrying-about-small-details-can-kill-your-project%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fworrying-about-small-details-can-kill-your-project%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Random Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/the-proof-behind-the-cru-climategate-debacle-because-computers-do-lie-when-humans-tell-them-to/" title="The Proof Behind the CRU Climategate Debacle: Because Computers Do Lie When Humans Tell Them To"&gt;The Proof Behind the CRU Climategate Debacle: Because Computers Do Lie When Humans Tell Them To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/using-nullable-with-csharp/" title="Write Better Code: Using Nullable With C#"&gt;Write Better Code: Using Nullable With C#&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/11/creating-algorithmic-art-using-processing/" title="Creating Algorithmic Art Using Processing"&gt;Creating Algorithmic Art Using Processing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/new-site-layout-launched/" title="New Site Layout Launched!"&gt;New Site Layout Launched!&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/_VoUHU6JZ_A" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/worrying-about-small-details-can-kill-your-project/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/worrying-about-small-details-can-kill-your-project/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/worrying-about-small-details-can-kill-your-project/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[PDF Download: Why&#8217;s (poignant) Guide to Ruby]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/PbLYuU9cl5U/" />
		<id>http://cubeantics.com/?p=555</id>
		<updated>2010-01-13T22:01:03Z</updated>
		<published>2010-01-12T03:07:14Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="download" /><category scheme="http://cubeantics.com" term="Ruby" />		<summary type="html"><![CDATA[<p>This is one of the best (and most entertaining) introductions to a programming language that I have ever read.  If you are even remotely interested in learning Ruby, <a href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff">_why&#8217;s</a> guide is a great place to start.</p>
<p>And, wherever you are _why, thanks for such a fantastic read.</p>
<p>PDF download: <a href="http://cubeantics.com/wp-content/uploads/2010/01/whys-poignant-guide-to-ruby.pdf">Why&#8217;s (poignant) Guide to Ruby</a></p>
<p><a href="http://cubeantics.com/wp-content/uploads/2010/01/why.jpg"></a></p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F&#38;title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby"></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F&#38;title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby"></a></div><div class="lightsocial_element"><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F&#38;title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby"></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby&#38;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F"></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F"></a></div></div><br /><h2 class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/" title="Honing Your Programming Skills with Project Euler">Honing Your Programming Skills with Project Euler</a></li><li><a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-7-file-io/" title="An Introduction to Ruby [Part 7 - File I/O]">An Introduction to Ruby [Part 7 - File I/O]</a></li><li><a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-6-getting-closure/" title="An Introduction to Ruby [Part 6 - Getting Closure]">An Introduction to Ruby [Part 6 - Getting Closure]</a></li><li><a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-5-essential-classes/" title="An Introduction to Ruby [Part 5 - Essential Classes]">An Introduction to Ruby [Part 5 -&#8230;</a></li></ul>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/pdf-download-whys-poignant-guide-to-ruby/">&lt;p&gt;This is one of the best (and most entertaining) introductions to a programming language that I have ever read.  If you are even remotely interested in learning Ruby, &lt;a href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff"&gt;_why&amp;#8217;s&lt;/a&gt; guide is a great place to start.&lt;/p&gt;
&lt;p&gt;And, wherever you are _why, thanks for such a fantastic read.&lt;/p&gt;
&lt;p&gt;PDF download: &lt;a href="http://cubeantics.com/wp-content/uploads/2010/01/whys-poignant-guide-to-ruby.pdf"&gt;Why&amp;#8217;s (poignant) Guide to Ruby&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cubeantics.com/wp-content/uploads/2010/01/why.jpg"&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2010/01/why-440x385.jpg" alt="" title="why" width="440" height="385" class="aligncenter size-medium wp-image-556" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F&amp;amp;title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F&amp;amp;title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F&amp;amp;title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=PDF+Download%3A+Why%27s+%28poignant%29+Guide+to+Ruby&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fpdf-download-whys-poignant-guide-to-ruby%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/" title="Honing Your Programming Skills with Project Euler"&gt;Honing Your Programming Skills with Project Euler&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-7-file-io/" title="An Introduction to Ruby [Part 7 - File I/O]"&gt;An Introduction to Ruby [Part 7 - File I/O]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-6-getting-closure/" title="An Introduction to Ruby [Part 6 - Getting Closure]"&gt;An Introduction to Ruby [Part 6 - Getting Closure]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-5-essential-classes/" title="An Introduction to Ruby [Part 5 - Essential Classes]"&gt;An Introduction to Ruby [Part 5 - Essential Classes]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/PbLYuU9cl5U" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/pdf-download-whys-poignant-guide-to-ruby/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/pdf-download-whys-poignant-guide-to-ruby/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/pdf-download-whys-poignant-guide-to-ruby/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Honing Your Programming Skills with Project Euler]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/2kzcTpPM_KU/" />
		<id>http://cubeantics.com/?p=553</id>
		<updated>2010-01-10T18:24:21Z</updated>
		<published>2010-01-05T20:01:43Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="C#" /><category scheme="http://cubeantics.com" term="Programming Challenges" /><category scheme="http://cubeantics.com" term="Project Euler" /><category scheme="http://cubeantics.com" term="Ruby" /><category scheme="http://cubeantics.com" term="self-improvement" />		<summary type="html"><![CDATA[<p>There&#8217;s nothing quite like that feeling you get when you finally figure out the solution to a problem.  Whether it is solving a complex math equation, beating your friend at Tic-Tac-Toe, or even successfully programming the DVR for the first time.  As programmers, we are constantly looking for new problems to solve and interesting ways to improve our programming skills.  </p>
<p><a href="http://projecteuler.net">Project Euler</a> is a programming challenge site that hosts (currently) 272 programming problems of varying difficulty.  Users can log in, attempt&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/">&lt;p&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2010/01/euler.jpg" alt="" title="euler" width="290" height="367" class="alignleft size-medium wp-image-554" /&gt;There&amp;#8217;s nothing quite like that feeling you get when you finally figure out the solution to a problem.  Whether it is solving a complex math equation, beating your friend at Tic-Tac-Toe, or even successfully programming the DVR for the first time.  As programmers, we are constantly looking for new problems to solve and interesting ways to improve our programming skills.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://projecteuler.net"&gt;Project Euler&lt;/a&gt; is a programming challenge site that hosts (currently) 272 programming problems of varying difficulty.  Users can log in, attempt to solve each problem, and discuss each solution.&lt;/p&gt;
&lt;p&gt;Here is an example of one of the Project Euler problems.&lt;/p&gt;
&lt;h2&gt;Problem #1&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.&lt;/p&gt;
&lt;p&gt;Find the sum of all the multiples of 3 or 5 below 1000.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;This problem instantly reminds me of the &lt;a href="http://www.imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding"&gt;FizzBuzz&lt;/a&gt; problem, so I think I&amp;#8217;ll start with that for my solution.&lt;/p&gt;
&lt;p&gt;One of my goals for this year is to become more proficient in Ruby and C#, so I&amp;#8217;ll solve each problem using a mixture of both languages.&lt;/p&gt;
&lt;h3&gt;The Ruby Solution&lt;/h3&gt;
&lt;pre name="code" class="ruby"&gt;
max = 1000
sum = 0

(1..(max-1)).each do |i|
	 if ((i % 3 == 0) || (i % 5 == 0))
		sum += i
	 end
end

puts sum
&lt;/pre&gt;
&lt;h3&gt;The C# Solution&lt;/h3&gt;
&lt;pre name="code" class="csharp"&gt;
int max = 1000;
int sum = 0;

for (int x = 1; x &lt; max; x++) {
	if ((x % 3 == 0) || (x % 5 == 0)) {
		sum += x;
	}
}

Console.WriteLine(sum);
&lt;/pre&gt;
&lt;p&gt;Pretty straightforward, right?  Simply sum up all of the values that are evenly divisible by 3 or 5 and print the final sum.  This is probably the solution 99% of programmers would come up with on their first attempt.  But, what about other ways of solving the same problem?  For instance, can this problem be solved without looping through each number?&lt;/p&gt;
&lt;h2&gt;A better way to solve the problem&lt;/h2&gt;
&lt;p&gt;One of the best parts about Project Euler is the large community of smart developers all working on the same problem sets.  Once you submit a correct answer to a problem, you will gain access to a forum thread for that particular problem and will be allowed to discuss your solution with everyone else who has solved the same problem. &lt;/p&gt;
&lt;p&gt;This is one of the more interesting solutions I saw on the problem &lt;em&gt;(converted to Ruby)&lt;/em&gt;&lt;/p&gt;
&lt;pre name="code" class="ruby"&gt;
x = 1000;
puts 1.5*((x-1)/3)*((x+2)/3) + 2.5*((x-1)/5)*((x+4)/5) - 7.5*((x-1)/15)*((x+14)/15);
&lt;/pre&gt;
&lt;p&gt;This solutions utalizes &lt;a href="http://en.wikipedia.org/wiki/Arithmetic_progressions"&gt;arithmetic progression&lt;/a&gt; to create a more elegant solution to the original problem.&lt;/p&gt;
&lt;p&gt;Would you think of solving this problem using arithmetic progression?  Probably not (at least for the first attempt anyway), I sure didn't.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Project Euler is a great way to improve your programming and problem solving skills.  I hope this brief introduction was interesting enough to motivate you to check Project Euler out for yourself and try to solve some other problems on your own.  Practicing these types of problems will (at the very least) better prepare you for your next job interview, which is never a bad thing.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 10px;"&gt;Image From: &lt;a href="http://www.mathematicianspictures.com/math_images/EULER_G_-200_290w_q30.jpg"&gt;Mathematician Pictures&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fhoning-your-programming-skills-with-project-euler%2F&amp;amp;title=Honing+Your+Programming+Skills+with+Project+Euler"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fhoning-your-programming-skills-with-project-euler%2F&amp;amp;title=Honing+Your+Programming+Skills+with+Project+Euler"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fhoning-your-programming-skills-with-project-euler%2F&amp;amp;title=Honing+Your+Programming+Skills+with+Project+Euler"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Honing+Your+Programming+Skills+with+Project+Euler&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fhoning-your-programming-skills-with-project-euler%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2Fhoning-your-programming-skills-with-project-euler%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes"&gt;Using .NET to Monitor a Directory for Changes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/301-redirect-with-asp-net/" title="301 Redirect with ASP .NET"&gt;301 Redirect with ASP .NET&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/" title="Using #if and [Conditional()] to Keep Debug Code Under Control"&gt;Using #if and [Conditional()] to Keep Debug Code Under Control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/pdf-download-whys-poignant-guide-to-ruby/" title="PDF Download: Why&amp;#8217;s (poignant) Guide to Ruby"&gt;PDF Download: Why&amp;#8217;s (poignant) Guide to Ruby&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/2kzcTpPM_KU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[3 Ways to Suck Less in 2010]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/0ZzuGzdMgzk/" />
		<id>http://cubeantics.com/?p=552</id>
		<updated>2010-01-01T22:11:59Z</updated>
		<published>2010-01-01T22:10:57Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="goals" /><category scheme="http://cubeantics.com" term="self-improvement" />		<summary type="html"><![CDATA[<p>My favorite bit of advice on becoming a better programmer is to <a href="http://www.codinghorror.com/blog/archives/000530.html">suck less every year</a>.   Programming is a very complex field that is constantly changing and requires a great deal of dedication from developers.  Since 2010 officially started today, I thought it would be useful to share 3 goals which will help improve the programming skills of anyone who follows them.</p>
<h2>My 3 ways to suck less by 2011</h2>
<ol>
<li><strong>Read</strong> &#8211; stuffing your brain with great programming knowledge will be invaluable to&#8230;</li></ol>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2010/01/3-ways-to-suck-less-in-2010/">&lt;p&gt;My favorite bit of advice on becoming a better programmer is to &lt;a href="http://www.codinghorror.com/blog/archives/000530.html"&gt;suck less every year&lt;/a&gt;.   Programming is a very complex field that is constantly changing and requires a great deal of dedication from developers.  Since 2010 officially started today, I thought it would be useful to share 3 goals which will help improve the programming skills of anyone who follows them.&lt;/p&gt;
&lt;h2&gt;My 3 ways to suck less by 2011&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Read&lt;/strong&gt; &amp;#8211; stuffing your brain with great programming knowledge will be invaluable to us as developers.  Reading about programming will not only improve your programming skills but it will introduce you to different ways of thinking about programming.&lt;br /&gt;
&lt;br /&gt;
It&amp;#8217;s also important to read source code.  Writing code is one thing, but being able to read and understand source code that another programmer wrote is a great way to understand how other people solve similar problems.  Three books I highly recommend are: &lt;a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;#038;s=books&amp;#038;qid=1262383352&amp;#038;sr=1-1"&gt;&lt;em&gt;Code Complete&lt;/em&gt;&lt;/a&gt;, &lt;a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&amp;#038;s=books&amp;#038;qid=1262383369&amp;#038;sr=1-1"&gt;&lt;em&gt;The Pragmatic Programmer&lt;/em&gt;&lt;/a&gt;, and &lt;a href="http://www.amazon.com/Joel-Software-Occasionally-Developers-Designers/dp/1590593898/ref=sr_1_1?ie=UTF8&amp;#038;s=books&amp;#038;qid=1262383299&amp;#038;sr=8-1"&gt;&lt;em&gt;Joel on Software&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write&lt;/strong&gt; &amp;#8211; Practice, practice, practice.  The only way to truly get good at programming is to &lt;em&gt;write code&lt;/em&gt; and lots of it.  Reading or talking about programming is good up to a point, but nothing will improve your skill-set like actually going through the programming process.  One thing I really want to do this year, is contribute to open source projects.  My professional career has benefited so much from the hard work of programmers that make their software available for free, I feel like it&amp;#8217;s my turn to give back a little.  Contributing to open source is a great way to write code, work with other people, and improve the overall quality of software in the world.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teach&lt;/strong&gt; &amp;#8211; teaching is a way to help yourself by helping others.  You may think you know the way &lt;a href="http://www.regular-expressions.info/"&gt;regular expressions&lt;/a&gt; work until you have to explain them to someone.  Helping others not only allows you to give back to the development community, it will also help solidify your knowledge of technical subjects.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#8217;t know where to get started?  Create a &lt;a href="http://www.stackoverflow.com"&gt;StackOverflow&lt;/a&gt; account and start answering questions from other programmers just like you.  Stick with it, and you&amp;#8217;ll be surprised with how much knowledge you have gained over time.&lt;br /&gt;
&lt;br /&gt;
Already have a StackOverflow account?  Not a programmer?  Start a blog on your hobby/trade and write about topics that interest you.  You&amp;#8217;ll learn more by going through the process of writing about interesting things and, hopefully, other people will find your work useful and learn from it.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Remember, great programmers didn&amp;#8217;t become awesome in just a day.  They constantly worked on improving their skills year after year until they achieved programming mastery.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s to a great 2010 and I hope yours is full of awesome adventures in programming.&lt;/p&gt;
&lt;p&gt;Happy New Year,&lt;br /&gt;
-Robert&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F3-ways-to-suck-less-in-2010%2F&amp;amp;title=3+Ways+to+Suck+Less+in+2010"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F3-ways-to-suck-less-in-2010%2F&amp;amp;title=3+Ways+to+Suck+Less+in+2010"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F3-ways-to-suck-less-in-2010%2F&amp;amp;title=3+Ways+to+Suck+Less+in+2010"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=3+Ways+to+Suck+Less+in+2010&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F3-ways-to-suck-less-in-2010%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2010%2F01%2F3-ways-to-suck-less-in-2010%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/honing-your-programming-skills-with-project-euler/" title="Honing Your Programming Skills with Project Euler"&gt;Honing Your Programming Skills with Project Euler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/0ZzuGzdMgzk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2010/01/3-ways-to-suck-less-in-2010/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2010/01/3-ways-to-suck-less-in-2010/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2010/01/3-ways-to-suck-less-in-2010/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[B&amp;N Nook: Unboxing the World&#8217;s Most Advanced eBook Reader]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/mFT2eK4VooU/" />
		<id>http://cubeantics.com/?p=536</id>
		<updated>2009-12-09T00:30:01Z</updated>
		<published>2009-12-09T00:11:32Z</published>
		<category scheme="http://cubeantics.com" term="Random" /><category scheme="http://cubeantics.com" term="B&amp;N" /><category scheme="http://cubeantics.com" term="eBooks" /><category scheme="http://cubeantics.com" term="nook" />		<summary type="html"><![CDATA[<p>I got the Barnes &#038; Noble <a href="http://www.barnesandnoble.com/nook/index.asp">nook</a> as a late birthday present.  I&#8217;m one of the first people in the world to get one, so I thought I&#8217;d share my experience.  I will write a more detailed review once I get a chance to actually use the nook.  Enjoy.</p>
<h2>First Impressions</h2>
<ul>
<li>Sexy Packaging: B&#038;N took a page right out of the Apple playbook.</li>
<li>The tactile feeling on the back of the device is both tacky (feeling) and comfortable</li>
<li>The eInk screen is an absolute pleasure&#8230;</li></ul>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2009/12/nook-unboxing/">&lt;p&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2009/12/nook_product.jpg" alt="bn_nook" title="bn_nook" width="170" height="97" class="alignleft size-medium wp-image-546" /&gt;I got the Barnes &amp;#038; Noble &lt;a href="http://www.barnesandnoble.com/nook/index.asp"&gt;nook&lt;/a&gt; as a late birthday present.  I&amp;#8217;m one of the first people in the world to get one, so I thought I&amp;#8217;d share my experience.  I will write a more detailed review once I get a chance to actually use the nook.  Enjoy.&lt;/p&gt;
&lt;h2&gt;First Impressions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sexy Packaging: B&amp;#038;N took a page right out of the Apple playbook.&lt;/li&gt;
&lt;li&gt;The tactile feeling on the back of the device is both tacky (feeling) and comfortable&lt;/li&gt;
&lt;li&gt;The eInk screen is an absolute pleasure to look at&lt;/li&gt;
&lt;li&gt;Registration was a breeze&lt;/li&gt;
&lt;li&gt;The screen saver shows portraits of authors&lt;/li&gt;
&lt;li&gt;Easy connection to WiFi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are some pictures from the unboxing. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I tried subscribing to PC Magazine ($1.95) using my free $10.00 gift card from Barnes &amp;#038; Noble, but couldn&amp;#8217;t because of an error.  This isn&amp;#8217;t a huge deal (to me) by any means, but it would have been nice to have everything work out of the box.&lt;/p&gt;

&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_clear_box/' title='nook in a Clear Box'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_clear_box-170x170.jpg" class="attachment-thumbnail" alt="" title="nook in a Clear Box" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_in_box/' title='nook Outer Boxing'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_in_box-170x170.jpg" class="attachment-thumbnail" alt="" title="nook Outer Boxing" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_on_desk/' title='nook Just Unboxed'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_on_desk-170x170.jpg" class="attachment-thumbnail" alt="" title="nook Just Unboxed" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_puchase/' title='nook Purchase Screen'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_puchase-170x170.jpg" class="attachment-thumbnail" alt="" title="nook Purchase Screen" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_root_menu/' title='nook Root Menu'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_root_menu-170x170.jpg" class="attachment-thumbnail" alt="" title="nook Root Menu" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_screensaver/' title='nook Screensaver'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_screensaver-170x170.jpg" class="attachment-thumbnail" alt="" title="nook Screensaver" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_final/' title='Configured nook'&gt;&lt;img width="170" height="170" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_final-170x170.jpg" class="attachment-thumbnail" alt="" title="Configured nook" /&gt;&lt;/a&gt;
&lt;a href='http://cubeantics.com/2009/12/nook-unboxing/nook_product/' title='bn_nook'&gt;&lt;img width="170" height="97" src="http://cubeantics.com/wp-content/uploads/2009/12/nook_product.jpg" class="attachment-thumbnail" alt="" title="bn_nook" /&gt;&lt;/a&gt;

&lt;p&gt;That&amp;#8217;s it for now, I&amp;#8217;m going to go read.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fnook-unboxing%2F&amp;amp;title=B%26N+Nook%3A+Unboxing+the+World%27s+Most+Advanced+eBook+Reader"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fnook-unboxing%2F&amp;amp;title=B%26N+Nook%3A+Unboxing+the+World%27s+Most+Advanced+eBook+Reader"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fnook-unboxing%2F&amp;amp;title=B%26N+Nook%3A+Unboxing+the+World%27s+Most+Advanced+eBook+Reader"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=B%26N+Nook%3A+Unboxing+the+World%27s+Most+Advanced+eBook+Reader&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fnook-unboxing%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fnook-unboxing%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Random Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/worrying-about-small-details-can-kill-your-project/" title="Worrying About Small Details Can Kill Your Project"&gt;Worrying About Small Details Can Kill Your Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/an-introduction-to-ruby-part-2-language-basics/" title="An Introduction to Ruby [Part 2 - Back to Basics]"&gt;An Introduction to Ruby [Part 2 - Back to Basics]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/07/apple-iphone-3gs-vs-palm-pre-a-programmers-perspective/" title="Apple iPhone 3GS vs Palm Pre: A Programmer&amp;#8217;s Perspective"&gt;Apple iPhone 3GS vs Palm Pre: A Programmer&amp;#8217;s Perspective&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes"&gt;Using .NET to Monitor a Directory for Changes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/mFT2eK4VooU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2009/12/nook-unboxing/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2009/12/nook-unboxing/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2009/12/nook-unboxing/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Getting Started With Git and TortoiseGit on Windows]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/uRmZ3VBje0U/" />
		<id>http://cubeantics.com/?p=531</id>
		<updated>2009-12-10T22:18:07Z</updated>
		<published>2009-12-08T02:24:49Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="Tutorials" /><category scheme="http://cubeantics.com" term="Git" /><category scheme="http://cubeantics.com" term="Source Control" /><category scheme="http://cubeantics.com" term="TortoiseGit" /><category scheme="http://cubeantics.com" term="Windows" />		<summary type="html"><![CDATA[<p>Version control is essential to the success of any software project.  It provides the ability for multiple developers to work on the same codebase simultaneously and allows projects to be versioned for release.  However, a great deal of programmers fail to leverage the great benefits of version control for their personal projects, typically due to laziness or complacency (myself included).  </p>
<p>Luckily, for us lazy programmers, Git and TortoiseGit are extremely easy to install and configure on Windows.  Now, there&#8217;s no&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/">&lt;p&gt;Version control is essential to the success of any software project.  It provides the ability for multiple developers to work on the same codebase simultaneously and allows projects to be versioned for release.  However, a great deal of programmers fail to leverage the great benefits of version control for their personal projects, typically due to laziness or complacency (myself included).  &lt;/p&gt;
&lt;p&gt;Luckily, for us lazy programmers, Git and TortoiseGit are extremely easy to install and configure on Windows.  Now, there&amp;#8217;s no excuse not to version control your code!&lt;/p&gt;
&lt;h3&gt;Here are the topics we will cover today:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install Git&lt;/li&gt;
&lt;li&gt;Install Tortoise Git&lt;/li&gt;
&lt;li&gt;Create a new Git repository&lt;/li&gt;
&lt;li&gt;Add an initial codebase to the Git repository&lt;/li&gt;
&lt;li&gt;Change a file and commit&lt;/li&gt;
&lt;li&gt;Clone the repository&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Install Git&lt;/h2&gt;
&lt;p&gt;I installed the Git package available through Cygwin because I already had Cygwin installed.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/cygwin_git/" rel="attachment wp-att-532"&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2009/12/cygwin_git-440x342.jpg" alt="cygwin_git" title="cygwin_git" width="440" height="342" class="aligncenter size-medium wp-image-532" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Simply select the git packages and proceed with the normal Cygwin installation.  If you need help with this, visit the &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; site for more details.&lt;/p&gt;
&lt;p&gt;Another commonly used option is &lt;a href="http://code.google.com/p/msysgit/downloads/list"&gt;msysgit&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; msysgit and Cygwin conflict with each other, so if you already have one installed, I wouldn&amp;#8217;t recommend using the other.&lt;/p&gt;
&lt;p&gt;Lastly, be sure you point your system path to wherever the Git installation resides on your machine.&lt;/p&gt;
&lt;div style="margin-top: 20px;"&gt;&lt;/div&gt;
&lt;h2&gt;Install Tortoise Git&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/tortoisegit/downloads/list"&gt;Download&lt;/a&gt;, Install, and restart your machine.&lt;/p&gt;
&lt;div style="margin-top: 20px;"&gt;&lt;/div&gt;
&lt;h2&gt;Create a new Git repository&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Create a folder &amp;#8212; I&amp;#8217;m using D:\repo &amp;#8212; to be used for your Git repository.&lt;/li&gt;
&lt;li&gt;Right-click the folder and select &lt;em&gt;Git Create Repository Here&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should now be greeted with the following message&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/git_confirm/" rel="attachment wp-att-535"&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2009/12/git_confirm.jpg" alt="git_confirm" title="git_confirm" width="407" height="116" class="aligncenter size-medium wp-image-535" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="margin-top: 30px;"&gt;&lt;/div&gt;
&lt;h2&gt;Add an initial codebase to the Git repository&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Copy your source files to the git folder.&lt;/li&gt;
&lt;li&gt;Right click on the folder and select &lt;em&gt;Git Commit&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;In this case, I added two files.  I&amp;#8217;m going to check both of them&lt;/li&gt;
&lt;li&gt;click OK.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/first_commit/" rel="attachment wp-att-534"&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2009/12/first_commit-415x440.jpg" alt="first_commit" title="first_commit" width="415" height="440" class="aligncenter size-medium wp-image-534" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now we have a legitimate repository with actual files in it.&lt;/p&gt;
&lt;div style="margin-top: 20px;"&gt;&lt;/div&gt;
&lt;h2&gt;Change a file and commit&lt;/h2&gt;
&lt;p&gt;Now you can change, add, or delete files within the repository.&lt;br /&gt;
Once you are ready to commit back to the repository, right click and select &lt;em&gt;Git Commit&lt;/em&gt; just like above.&lt;/p&gt;
&lt;h2&gt;Clone the repository&lt;/h2&gt;
&lt;p&gt;Cloning is one of the great features of Git, and while it isn&amp;#8217;t necessarily important for solo projects, it is important enough to mention here.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tortoise allows you to clone projects by right clicking on the desired clone folder and selecting &lt;em&gt;Clone&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;In the dialog, select the parent repository.&lt;/li&gt;
&lt;li&gt;Click OK&lt;/li&gt;
&lt;li&gt;Now, the cloned repository will be synced up with the main repository.  This is useful for multi-person teams.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="margin-top: 20px;"&gt;&lt;/div&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Git and TortoiseGit make it extremely easy to get personal version control up and running on your machine.  Now you can develop your projects with the piece of mind that version control provides with little hassle and setup.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fgetting-started-with-git-and-tortoisegit-on-windows%2F&amp;amp;title=Getting+Started+With+Git+and+TortoiseGit+on+Windows"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fgetting-started-with-git-and-tortoisegit-on-windows%2F&amp;amp;title=Getting+Started+With+Git+and+TortoiseGit+on+Windows"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fgetting-started-with-git-and-tortoisegit-on-windows%2F&amp;amp;title=Getting+Started+With+Git+and+TortoiseGit+on+Windows"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Getting+Started+With+Git+and+TortoiseGit+on+Windows&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fgetting-started-with-git-and-tortoisegit-on-windows%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fgetting-started-with-git-and-tortoisegit-on-windows%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Random Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/09/new-business-card-design/" title="New Business Card Design"&gt;New Business Card Design&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/09/how-i-failed-google-code-jam-2009/" title="How I Failed Google Code Jam 2009"&gt;How I Failed Google Code Jam 2009&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/" title="Working With Custom Time Strings in C#"&gt;Working With Custom Time Strings in C#&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/turning-off-post-revisions-in-wordpress/" title="Turning Off Post Revisions in Wordpress"&gt;Turning Off Post Revisions in Wordpress&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/uRmZ3VBje0U" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2009/12/getting-started-with-git-and-tortoisegit-on-windows/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Working With Custom Time Strings in C#]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/NTTqqQDbIa8/" />
		<id>http://cubeantics.com/?p=529</id>
		<updated>2009-12-07T19:16:14Z</updated>
		<published>2009-12-07T06:32:22Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="Tips and Tricks" /><category scheme="http://cubeantics.com" term=".NET" /><category scheme="http://cubeantics.com" term="C#" /><category scheme="http://cubeantics.com" term="DateTime" />		<summary type="html"><![CDATA[<p>Let&#8217;s say we need to process some external data where the format and contents of the files are out of our control.  To make matters worse, what if those same external files store tiemstamps in a foreign format that DateTime.Parse() does not understand?</p>
<p>It would be ill-advised to keep the dates in string format due to the level of robust date processing capabilities present in .NET.</p>
<p>Luckily, .NET provides a nice way to create custom date formats so any date string can&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/">&lt;p&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2009/12/clockman-170x170.jpg" alt="clockman" title="clockman" width="170" height="170" class="alignleft size-medium wp-image-530" /&gt;Let&amp;#8217;s say we need to process some external data where the format and contents of the files are out of our control.  To make matters worse, what if those same external files store tiemstamps in a foreign format that DateTime.Parse() does not understand?&lt;/p&gt;
&lt;p&gt;It would be ill-advised to keep the dates in string format due to the level of robust date processing capabilities present in .NET.&lt;/p&gt;
&lt;p&gt;Luckily, .NET provides a nice way to create custom date formats so any date string can be easily converted into a DateTime object.&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;
//locale information
CultureInfo provider = CultureInfo.InvariantCulture;

//The timestamp from the external file
string dateString = "Dec 07 01:32:25 2009"; 

//the new format
string format = "MMM dd HH':'mm':'ss yyyy";

//Convert the time string into a legitimate DateTime object
DateTime result = DateTime.ParseExact(dateString, format, provider);
&lt;/pre&gt;
&lt;p&gt;Now, we have the benefit of leveraging both custom timestamp values and .NET&amp;#8217;s built in DateTime Functionality.&lt;/p&gt;
&lt;p&gt;Do you think this might be useful on your current project?  Learn more about DateTime.ParseExact() here &lt;a href="http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div style="font-size: 10px;"&gt;Image From: &lt;a href="http://kenyonreview.org/blog/wp-content/uploads/2008/12/daylight-savings-time.jpg"&gt;kenyonreview.org&lt;/a&gt;&lt;/div&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fworking-with-custom-time-strings-in-csharp%2F&amp;amp;title=Working+With+Custom+Time+Strings+in+C%23"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fworking-with-custom-time-strings-in-csharp%2F&amp;amp;title=Working+With+Custom+Time+Strings+in+C%23"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fworking-with-custom-time-strings-in-csharp%2F&amp;amp;title=Working+With+Custom+Time+Strings+in+C%23"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Working+With+Custom+Time+Strings+in+C%23&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fworking-with-custom-time-strings-in-csharp%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fworking-with-custom-time-strings-in-csharp%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-net-to-monitor-a-directory-for-changes/" title="Using .NET to Monitor a Directory for Changes"&gt;Using .NET to Monitor a Directory for Changes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2010/01/using-if-and-conditional-to-keep-debug-code-under-control/" title="Using #if and [Conditional()] to Keep Debug Code Under Control"&gt;Using #if and [Conditional()] to Keep Debug Code Under Control&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/10/devdays-austin-peter-mourfield-on-asp-net-mvc/" title="DevDays Austin: Peter Mourfield on ASP .NET MVC"&gt;DevDays Austin: Peter Mourfield on ASP .NET MVC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/08/using-nullable-with-csharp/" title="Write Better Code: Using Nullable With C#"&gt;Write Better Code: Using Nullable With C#&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/NTTqqQDbIa8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://cubeantics.com/2009/12/working-with-custom-time-strings-in-csharp/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Robert</name>
						<uri>http://cubeantics.com</uri>
					</author>
		<title type="html"><![CDATA[Climategate Code Analysis Part 2]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/cubeantics/~3/ro1XMzZFRG0/" />
		<id>http://cubeantics.com/?p=526</id>
		<updated>2009-12-05T22:55:53Z</updated>
		<published>2009-12-05T22:45:23Z</published>
		<category scheme="http://cubeantics.com" term="Programming" /><category scheme="http://cubeantics.com" term="climate" /><category scheme="http://cubeantics.com" term="climategate" /><category scheme="http://cubeantics.com" term="code" /><category scheme="http://cubeantics.com" term="CRU" /><category scheme="http://cubeantics.com" term="ethics" /><category scheme="http://cubeantics.com" term="Global Warming" /><category scheme="http://cubeantics.com" term="IDL" /><category scheme="http://cubeantics.com" term="science" />		<summary type="html"><![CDATA[<p>There are three common issues that have been raised in my <a href="http://cubeantics.com/2009/12/the-proof-behind-the-cru-climategate-debacle-because-computers-do-lie-when-humans-tell-them-to/">previous post</a> that I would like to officially address concerning the CRU&#8217;s source code.</p>
<p>If you only get one thing from this post, please get this. <strong>I am only making a statement about the research methods of the CRU and trying to show proof that they had the means and intent to falsify data.  And, until the CRU&#8217;s research results can be verified by a 3rd party, they cannot be trusted.</strong></p>
<p>Here&#8230;</p>]]></summary>
		<content type="html" xml:base="http://cubeantics.com/2009/12/climategate-code-analysis-part-2/">&lt;p&gt;&lt;img src="http://cubeantics.com/wp-content/uploads/2009/12/atom.jpg" alt="atom" title="atom" width="280" height="259" class="alignleft size-large wp-image-528" style="margin-right: 20px;" /&gt;There are three common issues that have been raised in my &lt;a href="http://cubeantics.com/2009/12/the-proof-behind-the-cru-climategate-debacle-because-computers-do-lie-when-humans-tell-them-to/"&gt;previous post&lt;/a&gt; that I would like to officially address concerning the CRU&amp;#8217;s source code.&lt;/p&gt;
&lt;p&gt;If you only get one thing from this post, please get this. &lt;strong&gt;I am only making a statement about the research methods of the CRU and trying to show proof that they had the means and intent to falsify data.  And, until the CRU&amp;#8217;s research results can be verified by a 3rd party, they cannot be trusted.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here are the four most frequent concerns dealing with the CRU&amp;#8217;s source code:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The source code that actually printed the graph was commented out and, therefore, is not valid proof.&lt;/li&gt;
&lt;li&gt;No proof exists that shows this code was used in publishing results.&lt;/li&gt;
&lt;li&gt;Interpolation is a normal part of dealing with large data sets, this is no different.&lt;/li&gt;
&lt;li&gt;You need the raw climate data to prove that foul play occurred.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If anyone can think of something I missed, please let me know.&lt;/p&gt;
&lt;h2&gt;The source code that actually printed the graph was commented out and, therefore, is not valid proof.&lt;/h2&gt;
&lt;p&gt;Had I done a better job with my source analysis, I would have found a later revision of the briffa_sep98_d.pro source file (linked to in my previous post) contained in a different working tree which shows the fudge-factor array playing a direct result in the (uncommented) plotting of the data.&lt;/p&gt;
&lt;p&gt;Snippit from: &lt;strong&gt;harris-tree/briffa_sep98_e.pro&lt;/strong&gt; (see the end of the post for the full source listing)&lt;/p&gt;
&lt;pre name="code" class="py"&gt;
;
; APPLY ARTIFICIAL CORRECTION
;
yearlyadj=interpol(valadj,yrloc,x)
densall=densall+yearlyadj
  ;
  ; Now plot them
  ;
  filter_cru,20,tsin=densall,tslow=tslow,/nan
  cpl_barts,x,densall,title='Age-banded MXD from all sites',$
    xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
    zeroline=tslow,yrange=[-7,3]
  oplot,x,tslow,thick=3
  oplot,!x.crange,[0.,0.],linestyle=1
  ;
&lt;/pre&gt;
&lt;p&gt;Now, we can finally put this concern to rest.&lt;/p&gt;
&lt;h2&gt;Interpolation is a normal part of dealing with large data sets, this is no different.&lt;/h2&gt;
&lt;p&gt;This is partially true, the issue doesn&amp;#8217;t lie in the fact that the CRU researchers used interpolation.  The issue is the weight of the valadj array with respect to the raw data.  valadj simply introduces &lt;strong&gt;too large&lt;/strong&gt; of an influence to the original data to do anything productive with it.&lt;/p&gt;
&lt;p&gt;Here is the graph I plotted of the valadj array.  When we&amp;#8217;re talking about trying to interpret temperature data that grows on the scale of one-tenths of a degree over a period of time, &amp;#8220;fudging&amp;#8221; a value by 2.5 is going to have a significant impact on the data set.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://cubeantics.com/wp-content/uploads/2009/12/graph.jpg" title="valadj Graph" class="aligncenter" width="456" height="292" /&gt;&lt;/p&gt;
&lt;h2&gt;No proof exists that shows this code was used in publishing results.&lt;/h2&gt;
&lt;p&gt;Correct! That&amp;#8217;s why I am (and always have) taken the following stand: &lt;strong&gt;Enough proof exists that the CRU had both the means and intent to intentionally falsify data.&lt;/strong&gt;  This means that all of their research results &lt;strong&gt;cannot be trusted until they are verified.&lt;/strong&gt; Period.&lt;/p&gt;
&lt;p&gt;The fact that the &amp;#8220;fudge-factor&amp;#8221; source code exists in the first place is reason enough for alarm.  Hopefully, they didn&amp;#8217;t use fudged results in the CRU research results, but the truth is, we just don&amp;#8217;t know.&lt;/p&gt;
&lt;h2&gt;You need the raw climate data to prove that foul play occurred.&lt;/h2&gt;
&lt;p&gt;This is assuming the raw data are valid, which I maintain that it probably is.  Several people question the validity of the climate data gathering methods used by the different climate research institutions, but I am not enough of a climate expert to have an opinion one way or the other.  Furthermore, It simply &lt;strong&gt;doesn&amp;#8217;t matter if the raw climate data are correct or not&lt;/strong&gt; to demonstrate the extreme bias the valadj array forces on the raw data.&lt;/p&gt;
&lt;p&gt;So, the raw data could actually be temperature data or corporate sales figures, the result is the same; a severe manipulation of data.&lt;/p&gt;
&lt;h2&gt;Full Source Listing&lt;/h2&gt;
&lt;p&gt;As promised, here is the entire source listing for: &lt;strong&gt;harris-tree/briffa_sep98_e.pro&lt;/strong&gt; &lt;/p&gt;
&lt;pre name="code" class="py"&gt;
;
; PLOTS 'ALL' REGION MXD timeseries from age banded and from hugershoff
; standardised datasets.
; Reads Harry's regional timeseries and outputs the 1600-1992 portion
; with missing values set appropriately.  Uses mxd, and just the
; "all band" timeseries
;****** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE*********
;
yrloc=[1400,findgen(19)*5.+1904]
valadj=[0.,0.,0.,0.,0.,-0.1,-0.25,-0.3,0.,-0.1,0.3,0.8,1.2,1.7,2.5,2.6,2.6,$
  2.6,2.6,2.6]*0.75         ; fudge factor
if n_elements(yrloc) ne n_elements(valadj) then message,'Oooops!'
;
loadct,39
def_1color,20,color='red'
plot,[0,1]
multi_plot,nrow=4,layout='large'
if !d.name eq 'X' then begin
  window, ysize=800
  !p.font=-1
endif else begin
  !p.font=0
  device,/helvetica,/bold,font_size=18
endelse
;
; Get regional tree lists and rbar
;
restore,filename='reglists.idlsave'
harryfn=['nwcan','wnam','cecan','nweur','sweur','nsib','csib','tib',$
  'esib','allsites']
;
rawdat=fltarr(4,2000)
for i = nreg-1 , nreg-1 do begin
  fn='mxd.'+harryfn(i)+'.pa.mean.dat'
  print,fn
  openr,1,fn
  readf,1,rawdat
  close,1
  ;
  densadj=reform(rawdat(2:3,*))
  ml=where(densadj eq -99.999,nmiss)
  densadj(ml)=!values.f_nan
  ;
  x=reform(rawdat(0,*))
  kl=where((x ge 1400) and (x le 1992))
  x=x(kl)
  densall=densadj(1,kl)     ; all bands
  densadj=densadj(0,kl)     ; 2-6 bands
  ;
  ; Now normalise w.r.t. 1881-1960
  ;
  mknormal,densadj,x,refperiod=[1881,1960],refmean=refmean,refsd=refsd
  mknormal,densall,x,refperiod=[1881,1960],refmean=refmean,refsd=refsd
;
; APPLY ARTIFICIAL CORRECTION
;
yearlyadj=interpol(valadj,yrloc,x)
densall=densall+yearlyadj
  ;
  ; Now plot them
  ;
  filter_cru,20,tsin=densall,tslow=tslow,/nan
  cpl_barts,x,densall,title='Age-banded MXD from all sites',$
    xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
    zeroline=tslow,yrange=[-7,3]
  oplot,x,tslow,thick=3
  oplot,!x.crange,[0.,0.],linestyle=1
  ;
endfor
;
; Restore the Hugershoff NHD1 (see Nature paper 2)
;
xband=x
restore,filename='../tree5/densadj_MEAN.idlsave'
; gets: x,densadj,n,neff
;
; Extract the post 1600 part
;
kl=where(x ge 1400)
x=x(kl)
densadj=densadj(kl)
;
; APPLY ARTIFICIAL CORRECTION
;
yearlyadj=interpol(valadj,yrloc,x)
densadj=densadj+yearlyadj
;
; Now plot it too
;
filter_cru,20,tsin=densadj,tslow=tshug,/nan
cpl_barts,x,densadj,title='Hugershoff-standardised MXD from all sites',$
  xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
  zeroline=tshug,yrange=[-7,3],bar_color=20
oplot,x,tshug,thick=3,color=20
oplot,!x.crange,[0.,0.],linestyle=1
;
; Now overplot their bidecadal components
;
plot,xband,tslow,$
  xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
  yrange=[-6,2],thick=3,title='Low-pass (20-yr) filtered comparison'
oplot,x,tshug,thick=3,color=20
oplot,!x.crange,[0.,0.],linestyle=1
;
; Now overplot their 50-yr components
;
filter_cru,50,tsin=densadj,tslow=tshug,/nan
filter_cru,50,tsin=densall,tslow=tslow,/nan
plot,xband,tslow,$
  xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
  yrange=[-6,2],thick=3,title='Low-pass (50-yr) filtered comparison'
oplot,x,tshug,thick=3,color=20
oplot,!x.crange,[0.,0.],linestyle=1
;
; Now compute the full, high and low pass correlations between the two
; series
;
perst=1400.
peren=1992.
;
openw,1,'corr_age2hug.out'
thalf=[10.,30.,50.,100.]
ntry=n_elements(thalf)
printf,1,'Correlations between timeseries'
printf,1,'Age-banded vs. Hugershoff-standardised'
printf,1,'     Region    Full   &lt;10   &gt;10   &gt;30   &gt;50  &gt;100'
;
kla=where((xband ge perst) and (xband le peren))
klh=where((x ge perst) and (x le peren))
ts1=densadj(klh)
ts2=densall(kla)
;
r1=correlate(ts1,ts2)
rall=fltarr(ntry)
for i = 0 , ntry-1 do begin
  filter_cru,thalf(i),tsin=ts1,tslow=tslow1,tshigh=tshi1,/nan
  filter_cru,thalf(i),tsin=ts2,tslow=tslow2,tshigh=tshi2,/nan
  if i eq 0 then r2=correlate(tshi1,tshi2)
  rall(i)=correlate(tslow1,tslow2)
endfor
;
printf,1,'ALL SITES',r1,r2,rall,$
  format='(A11,2X,6F6.2)'
;
printf,1,' '
printf,1,'Correlations carried out over the period ',perst,peren
;
close,1
;
end
&lt;/pre&gt;
&lt;h2&gt;What do you think?&lt;/h2&gt;
&lt;p&gt;Join the conversation!  Don&amp;#8217;t just accept what one person says, gather the evidence and make an informed decision.&lt;/p&gt;
&lt;div style="font-size: 10px;"&gt;Image From: &lt;a href="http://www.britsattheirbest.com/images/ii_atom.gif"&gt;britsattheirbest&lt;/a&gt;&lt;/div&gt;
&lt;div class="lightsocial_container"&gt;&lt;a href="http://digg.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fclimategate-code-analysis-part-2%2F&amp;amp;title=Climategate+Code+Analysis+Part+2"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.reddit.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fclimategate-code-analysis-part-2%2F&amp;amp;title=Climategate+Code+Analysis+Part+2"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fclimategate-code-analysis-part-2%2F&amp;amp;title=Climategate+Code+Analysis+Part+2"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://delicious.com/save?title=Climategate+Code+Analysis+Part+2&amp;amp;url=http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fclimategate-code-analysis-part-2%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fcubeantics.com%2F2009%2F12%2Fclimategate-code-analysis-part-2%2F"&gt;&lt;img src="http://cubeantics.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;h2  class="related_post_title"&gt;Related Posts&lt;/h2&gt;&lt;ul class="related_post"&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/12/the-proof-behind-the-cru-climategate-debacle-because-computers-do-lie-when-humans-tell-them-to/" title="The Proof Behind the CRU Climategate Debacle: Because Computers Do Lie When Humans Tell Them To"&gt;The Proof Behind the CRU Climategate Debacle: Because Computers Do Lie When Humans Tell Them To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/11/why-training-classes-suck-and-3-things-you-can-do-about-it/" title="Why Training Classes Suck and 3 Things You Can Do About It"&gt;Why Training Classes Suck and 3 Things You Can Do About It&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/11/google-go-my-take-on-issue-9/" title="Google Go: My Take on Issue 9"&gt;Google Go: My Take on Issue 9&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cubeantics.com/2009/10/bill-gates-open-letter-to-hobbyists-from-1976/" title="Bill Gates Open Letter to Hobbyists from 1976"&gt;Bill Gates Open Letter to Hobbyists from 1976&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cubeantics/~4/ro1XMzZFRG0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://cubeantics.com/2009/12/climategate-code-analysis-part-2/#comments" thr:count="85" />
		<link rel="replies" type="application/atom+xml" href="http://cubeantics.com/2009/12/climategate-code-analysis-part-2/feed/atom/" thr:count="85" />
		<thr:total>85</thr:total>
	<feedburner:origLink>http://cubeantics.com/2009/12/climategate-code-analysis-part-2/</feedburner:origLink></entry>
	</feed>
