<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>{ Code: Impossible } &#187; Programming</title>
	<atom:link href="http://codeimpossible.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeimpossible.com</link>
	<description>this = HowI.Roll();</description>
	<lastBuildDate>Thu, 29 Jul 2010 02:58:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comments stink!</title>
		<link>http://codeimpossible.com/2010/07/16/comments-stink/</link>
		<comments>http://codeimpossible.com/2010/07/16/comments-stink/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 05:28:26 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[code-style]]></category>
		<category><![CDATA[opinionated]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=619</guid>
		<description><![CDATA[I&#8217;ve been thinking about the whole Comments-as-a-code-smell argument for a very long time. When I first heard this idea, I was in the comments are definitely needed side of the argument.
&#8220;Who could hate comments so much that they would label them as a code smell?&#8221; I thought.
Well, I had an epiphany the other day.
I&#8217;ve never [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about the whole <a href="http://memeagora.blogspot.com/2008/11/comments-code-smell.html" target="_blank">Comments-as-a-code-smell argument</a> for a very long time. When I first heard this idea, I was in the comments are definitely needed side of the argument.</p>
<p><em>&#8220;Who could hate comments so much that they would label them as a code smell?&#8221;</em> I thought.</p>
<p>Well, I had an epiphany the other day.</p>
<p><strong>I&#8217;ve never seen a block of code that actually needed a comment. Ever.</strong></p>
<p>If you have a section of code that feels too complex, instead of adding a comment do any/all of the following and you can, in almost every case, reduce the need for comments by 100%:</p>
<ol>
<li>add a sourcecontrol commit comment</li>
<li>do a simple refactor (<a href="http://www.industriallogic.com/xp/refactoring/composeMethod.html" target="_blank">Compose Method</a> ftw people),</li>
<li>use more descriptive variable/function/class/whatever names.</li>
</ol>
<p>If you do all of these things and the code you are working on still seems too complex, you may have bigger problems with your overall architecture/design and adding a comment isn&#8217;t going to help. In this case it&#8217;s time to go back to the drawing board.</p>
<p>Also, everytime you commit a changeset into sourcecontrol that contains a section of code commented out god kills a kitten. Please think of the kittens.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2010/07/16/comments-stink/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Microsoft .Net Framework Public Classes Data Dump</title>
		<link>http://codeimpossible.com/2009/12/08/microsoft-net-framework-public-classes-data-dump/</link>
		<comments>http://codeimpossible.com/2009/12/08/microsoft-net-framework-public-classes-data-dump/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 06:24:27 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=748</guid>
		<description><![CDATA[I&#8217;ve wrapped up work on v0.4 of the Jsoq Console, and the insanely strenuous release cycle for v0.1 of WhatDidIJustEat.com so I&#8217;m starting another side project tonight.
Ever been working with a programming language you&#8217;re not 100% familiar with and find yourself wondering:
Is this function a built-in function or in some included library?
What assembly is this [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wrapped up work on <a href="http://codeimpossible.com/jsoq">v0.4 of the Jsoq Console</a>, and the insanely strenuous release cycle for v0.1 of <a href="http://whatdidijusteat.com">WhatDidIJustEat.com</a> so I&#8217;m starting another side project tonight.</p>
<p>Ever been working with a programming language you&#8217;re not 100% familiar with and find yourself wondering:</p>
<blockquote><p><em>Is this function a built-in function or in some included library?<br />
What assembly is this class in again?<br />
Can I name my class XXXX without conflicting with another class?<br /></em></p></blockquote>
<p>I&#8217;ve had these questions recently and found myself annoyed and frustrated to no end (PHP, I&#8217;m looking at you) so I&#8217;ve decided to build a system to keep track of this stuff for me :D. </p>
<p>The first thing on my list (because it was the easiest) was to do a data dump of all the public classes in the .Net Framework, including the ones in my GAC, and store some metadata for each one in a database table. I&#8217;ve just finished this step and thought that this data might be useful, so I&#8217;m posting it here. </p>
<p>Currently the fields included in the data dump are:</p>
<p><code><br />
[namespace] = The namespace that the class exists in (ex: System.Collections.Generic)<br />
[class_name] = The name of the class (ex: StringBuilder)<br />
[assembly_fullname] = The display name of the assembly (ex: mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)<br />
[assembly_file] = The full file path to the assembly (ex: C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll)<br />
[framework_name] = The framework that uses this class, for this dump they will all be 'Microsoft .Net'<br />
[framework_version] = The framework version that uses this class (ex: v.2.0.50727)<br />
</code></p>
<p>The .sql file takes about 18 seconds to run to completion on my AMD Athlon X2 2.53ghz machine with 4gb of RAM.</p>
<p>If you&#8217;re curious about how I generated the .sql file, below is the code I used to find all the classes. It&#8217;s not pretty but then again it was just meant to get the data into the database. Just paste the code into a new console app and run it in a command window like so:</p>
<p><code> [application_name].exe &gt; c:\classes.sql</code></p>
<p>Or, you can <a href="http://www.box.net/shared/u8vsuy9lz1">download the .sql file I&#8217;ve generated</a> (it will also create the table you need to store the data).</p>
<pre class="prettyprint"><code>
static void Main(string[] args)
{
	var dictionary = new Dictionary<string, string>(){
		{ "v2.0.50727", @"C:\Windows\Microsoft.NET\Framework\v2.0.50727" },
		{ "v3.0", @"C:\Windows\Microsoft.NET\Framework\v3.0" },
		{ "v3.5", @"C:\Windows\Microsoft.NET\Framework\v3.5" },
		{ "v???", @"c:\windows\assembly\gac" }
	};

	var types = new List<Type>();

	foreach (var pair in dictionary)
	{
		var path = pair.Value;

		var assemblies = Directory.GetFiles(path, "*.dll", SearchOption.AllDirectories);

		foreach (string file in assemblies)
		{
			try
			{
				Assembly asm = Assembly.LoadFile(file);

				foreach (Type t in asm.GetTypes())
				{
					if (t.IsPublic)
					{
						Console.WriteLine(String.Format(
							"INSERT INTO Classes (" +
								"[namespace], " +
								"class_name, " +
								"assembly_fullname, " +
								"assembly_file, " +
								"framework_name, " +
								"framework_version" +
							") " +
							"VALUES (" +
								"'{0}', " +
								"'{1}', " +
								"'{2}', " +
								"'{3}', " +
								"'Microsoft .Net', " +
								"'{4}'" +
							")",
							String.IsNullOrEmpty(t.Namespace) ?
								"GLOBAL" :
								t.Namespace,
							t.Name
								.Replace("`1", "<T>")
								.Replace("`2", "<T1,T2>")
								.Replace("`3", "<T1,T2,T3>"),
							t.Assembly.FullName,
							t.Assembly.Location,
							pair.Key == "v???" ?
								t.Assembly.GetName().Version.ToString() :
								pair.Key
						));
					}
				}
			}
			catch { }
		}
	}
}
</code></pre>
<p>If you found this useful, let me know in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2009/12/08/microsoft-net-framework-public-classes-data-dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Jsoq Console</title>
		<link>http://codeimpossible.com/2009/11/14/jsoqie/</link>
		<comments>http://codeimpossible.com/2009/11/14/jsoqie/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 06:38:28 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jsoq]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=668</guid>
		<description><![CDATA[During the first round of development for JSOQ I needed a faster way to test than unit-tests alone could provide. What I needed was a dirt-simple page that I could run in a browser, enter some JavaScript code, click a button and see it execute. 
I built the initial JSOQ Console (which is still included [...]]]></description>
			<content:encoded><![CDATA[<p>During <a href="http://codeimpossible.com/2009/02/10/introducing-the-javascript-object-query-library">the first round of development for JSOQ</a> I needed a faster way to test than unit-tests alone could provide. What I needed was a dirt-simple page that I could run in a browser, enter some JavaScript code, click a button and see it execute. </p>
<p>I built the initial JSOQ Console (which is still included with the JSOQ source code) in about 20 minutes and it increased my productivity by 10x.</p>
<p>It was much faster to test JSOQ functions with the JSOQ Console than it had been with unit-tests. As a result I was able to prototype new functionality in about 1/2 the time.</p>
<p>I&#8217;ve finally moved <a href="http://codeimpossible.com/jsoq">v0.2 of the Jsoq Console</a> to my blog here so you can use it to quickly test out your own JavaScript code!</p>
<p>How it works is pretty straight forward. If you&#8217;ve got a snippet of JavaScript, be it jQuery (for the moment jQuery is the only external library that is supported but that will change soon), JSOQ or any other javascript code, you can run it with the JSOQ Console.</p>
<p>Just navigate to <a href="http://tinyurl.com/jsoqconsole">http://tinyurl.com/jsoqconsole</a> or <a href="http://codeimpossible.com/jsoq">http://codeimpossible.com/jsoq</a> for those of you that like to type, paste your code into the textarea at the top of the page, press &#8220;Run&#8221; and your code will run!</p>
<p>So enjoy! If you get confused there are also samples that will show you how to use the more &#8220;advanced&#8221; features. Also, drop a comment or share the console with others if you thought it was useful!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2009/11/14/jsoqie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracking .Net Service Requests in Fiddler</title>
		<link>http://codeimpossible.com/2009/08/17/tracking-net-service-requests-in-fiddler/</link>
		<comments>http://codeimpossible.com/2009/08/17/tracking-net-service-requests-in-fiddler/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:52:59 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asp.]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=620</guid>
		<description><![CDATA[Earlier today I had to debug a function in our code that was calling an external webservice at a clients&#8217; site. The webservice returns a list of items and the code on our end is supposed to place them in ascending order based on each items Order property.
The client pointed that the our order wasn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I had to debug a function in our code that was calling an external webservice at a clients&#8217; site. The webservice returns a list of items and the code on our end is supposed to place them in ascending order based on each items Order property.</p>
<p>The client pointed that the our order wasn&#8217;t matching up with what they were seeing internally so I spoke with their developer who suggested that we make sure that the request wasn&#8217;t being cached on my machine.</p>
<p>I opened up Fiddler locally and was surprised to see that the none of the request/response data for the connection to the webservice was showing up. </p>
<p>Fiddler, for those that don&#8217;t know is a really excellent Http tracing application that allows you to see what kind of http traffic is going in and out over your network connection. You can <a href="http://www.fiddler2.com/fiddler2/">download fiddler here</a>.</p>
<p>Thankfully, Fiddler runs a simple proxy service which you can point your service requests to in .net using:</p>
<pre class="prettyprint"><code>
if (System.Environment.MachineName.ToLower().Equals("MyMachineName"))
{
    service.Proxy = new System.Net.WebProxy("http://localhost:8888");
}
</code></pre>
<p>After adding that code we were off and debugging our .Net service requests in Fiddler!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2009/08/17/tracking-net-service-requests-in-fiddler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging &quot;Syntax Error&quot; from a bad WebResource.axd request</title>
		<link>http://codeimpossible.com/2009/04/24/debugging-syntax-error-from-a-bad-webresourceaxd-request/</link>
		<comments>http://codeimpossible.com/2009/04/24/debugging-syntax-error-from-a-bad-webresourceaxd-request/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 02:05:48 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=427</guid>
		<description><![CDATA[&#8220;Syntax Error, Line: 2, Char: 0&#8243;. How many of you out there have seen this error while working on a web project?
Usually it&#8217;s because of a forgotten semi-colon or parenthesis in some external javascript file. But sometimes it&#8217;s something more sinister&#8230; Something darker, dirtier and just a little bit more evil.
After seeing the error message, [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Syntax Error, Line: 2, Char: 0&#8243;. How many of you out there have seen this error while working on a web project?</p>
<p>Usually it&#8217;s because of a forgotten semi-colon or parenthesis in some external javascript file. But sometimes it&#8217;s something more sinister&#8230; Something darker, dirtier and just a little bit more evil.</p>
<p>After seeing the error message, I opened up Internet Explorer&#8217;s options dialog and unchecked the following options:</p>
<ul>
<li>Disable script debugging (Internet Explorer)</li>
<li>Disable script debugging (Other)</li>
</ul>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-456" title="Internet Explorer Options Dialog" src="http://wpup.codeimpossible.com/2009/04/internet_explorer_options_2.jpg" alt="Internet Explorer Options Dialog" width="415" height="521" /></p>
<p>I then closed IE, returned to Visual Studio, stopped and re-started debugging (ctrl+shift+F5), and watched Solution Explorer as my page began to load.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-442" title="Solution Explorer Debugging Internet Explorer" src="http://wpup.codeimpossible.com/2009/04/solution_explorer.png" alt="Solution Explorer Debugging Internet Explorer" width="309" height="265" /></p>
<p>Oh! That&#8217;s not good. See the WebResource.axd request that has the same icon as the Default.aspx file? That means that a bad request was sent for an embedded resource and &#8211; most likely recieved a 404 page back instead of the javascript file, which caused our syntax error.</p>
<p>Ok, so how do we figure out which WebResource reference caused the problem? Well, the only way that I have come up with so far, is to manually copy and paste each WebResource.axd url from the html source of the page to the address bar and navigate there. The pages that give return a file download are ok and the ones that don&#8217;t will return a 404 page in the browser.</p>
<p>After finishing this long process of elimination, I found the resource request that was causing my headache:</p>
<pre class="brush:html">/WebResource.axd?d=MaCiPhUUtdXNj16OOucV5e5lHCBZO...SNIP...</pre>
<p>So how do we figure out which resource has embedded this troublesome URL into our html source? I found the solution to that in <a href="http://blogs.msdn.com/irenak/archive/2006/11/03/sysk-233-how-to-decrypt-an-asp-net-encrypted-data.aspx">Irena Kennedy&#8217;s blog post on &#8220;How to Decrypt an ASP.NET Encrypted Data&#8221;</a>:</p>
<blockquote><p>Please note, that the code below should not be used in production code!  It’s only meant for debugging and troubleshooting, and it may break in future versions of the .NET framework if DecryptString private method changes.</p>
<ol>
<li>Add a web page (e.g. DecryptData.aspx) to your web application.  For the code to work, it must run in the same appdomain as the web application that created your encrypted string.</li>
<li>Add a text box where you will type in the encrypted string.</li>
<li>Add a label where you’ll display decrypted results.</li>
<li>Add a button.</li>
<li>In code-behind on button click event, add the following code:</li>
</ol>
</blockquote>
<pre class="prettyprint"><code>
System.Reflection.BindingFlags bf =
    System.Reflection.BindingFlags.NonPublic |
    System.Reflection.BindingFlags.Static;

System.Reflection.MethodInfo DecryptString =
    typeof(System.Web.UI.Page).GetMethod("DecryptString", bf);

DecryptedData.Text = DecryptString.Invoke(
    null,
    new object[] { EncryptedData.Text } ) as string;

</code></pre>
<p>After I created this page, I pasted the WebResource.axd URL (everything up to the &amp;t=) into the DecryptedData textbox on my DecryptData.aspx page, clicked the Decrypt button, and saw that one of my custom aspx controls was responsible. I then corrected the resource path and the page loaded as it should.</p>
<p>See the screenshot below for an example of the DecryptData page, or <a href="http://www.box.net/shared/uc9aea3999" target="_blank">download the DecryptData .ASPX and Codebehind from my box.net folder</a>.</p>
<p style="text-align: center;"><a href="http://wpup.codeimpossible.com/2009/04/decryption_page.png" target="_blank"><img class="aligncenter size-medium wp-image-445" title="DecryptData page" src="http://wpup.codeimpossible.com/2009/04/decryption_page.png?w=300" alt="DecryptData page" width="300" height="219" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2009/04/24/debugging-syntax-error-from-a-bad-webresourceaxd-request/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Build Inno Setup Script When In Release Mode</title>
		<link>http://codeimpossible.com/2008/12/15/build-inno-setup-script-when-in-release-mode/</link>
		<comments>http://codeimpossible.com/2008/12/15/build-inno-setup-script-when-in-release-mode/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 18:44:18 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[batch files]]></category>
		<category><![CDATA[inno-setup]]></category>
		<category><![CDATA[post-build]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=286</guid>
		<description><![CDATA[I use Inno Setup as an installer for all my windows-based projects. Often-times I want to build the installer when I build the project from within Visual Studio but only when I build the &#8220;Release&#8221; configuration.
Here is the post-build script that will accomplish this:
c:
cd\
IF Release==$(ConfigurationName) "C:\Program Files\Inno Setup 5\Compil32.exe" /cc &#60;PATH_TO_ISS_FILE&#62;

]]></description>
			<content:encoded><![CDATA[<p>I use Inno Setup as an installer for all my windows-based projects. Often-times I want to build the installer when I build the project from within Visual Studio but only when I build the &#8220;Release&#8221; configuration.</p>
<p>Here is the post-build script that will accomplish this:</p>
<p><code>c:<br />
cd\<br />
IF Release==$(ConfigurationName) "C:\Program Files\Inno Setup 5\Compil32.exe" /cc &lt;PATH_TO_ISS_FILE&gt;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2008/12/15/build-inno-setup-script-when-in-release-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2000 &#8211; 2008 What I&#039;ve Learned</title>
		<link>http://codeimpossible.com/2008/12/08/2000-2008-what-ive-learned/</link>
		<comments>http://codeimpossible.com/2008/12/08/2000-2008-what-ive-learned/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:40:25 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[be-a-better-programmer]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codeimpossible.com/?p=283</guid>
		<description><![CDATA[I&#8217;ve always wanted to write an end-of-the-year summary post that would explain some of the lessons I learned during that year. For one reason or another I&#8217;ve never done this and I figured that it was time to start. So to make up for my slacking I assembled a list of some of the lessons [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always wanted to write an end-of-the-year summary post that would explain some of the lessons I learned during that year. For one reason or another I&#8217;ve never done this and I figured that it was time to start. So to make up for my slacking I assembled a list of some of the lessons I&#8217;ve learned over the last 8 years.</p>
<ul>
<li>Never under any circumstances store a password in plain-text.</li>
<li>Do not insert unfiltered strings into a query. Ever.</li>
<li>Users aren&#8217;t stupid. They are clever. Like foxes. Like foxes with augmented AI Skynet brains. They will do things you would never think of in 1 x 10^1000 years.</li>
<li>Develop and test on the same platform / permissions level that your app will run under. Trust me, this will save you serious future debugging time.</li>
<li>And on that note: Test, test, test, test.</li>
<li>Regular expressions work 90% of the time but you only really need them 10% of the time.</li>
<li>If something doesn&#8217;t feel right it probably isn&#8217;t. If you can fix it fast do it, otherwise root out code smell and refactor in your down-time.</li>
<li>XXXX technology isn&#8217;t always the answer. Be pragmatic. Solve problems as easily as possible. We exist to reduce and handle complexity in non-complex ways.</li>
<li>Open source is a good thing.</li>
<li>Contribute to or start an open source project. Extra XP and a good resume bullet.</li>
<li>Did I mention test, test, test, test.</li>
<li>Only re-invent what you absolutely have to. Would you rather spend a week implementing and testing your own GridView or install a commercial control in a day?</li>
<li>It&#8217;s not the hours you put in, it&#8217;s what you do with them. Refactor your own development process. If you spend 1/2 a day doing something, odds are you can improve that time.</li>
<li>&#8220;It works on my machine&#8221; is ok if, and only if, you are coding for your machine.</li>
<li>Nobody makes bug-free software. Learn from the bugs you make now and you&#8217;ll make newer more interesting ones.</li>
<li>Oh, and Test, test, test, test.</li>
</ul>
<p>The items on the list above are definitely not things I knew coming into software development. They are all things I&#8217;ve had to learn the hard way, usually by falling completely on my face. The first two especially.</p>
<p>We all make mistakes, it&#8217;s part of learning. All I hope is that this list prevents someone from making the same mistakes I made so they can go on and make their own, newer, more complicated, and more interesting mistakes.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2008/12/08/2000-2008-what-ive-learned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I got into programming</title>
		<link>http://codeimpossible.com/2008/12/05/how-i-got-into-programming/</link>
		<comments>http://codeimpossible.com/2008/12/05/how-i-got-into-programming/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 03:54:52 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pistalwhipped.wordpress.com/?p=255</guid>
		<description><![CDATA[I know exactly why I got into programming. I&#8217;m not so sure when it happened but I do know why.
I was always obsessed with understanding how things worked. I had to know. Everything had to be taken apart and then put back together, whenever my dad or mom would throw out some piece of computer hardware or [...]]]></description>
			<content:encoded><![CDATA[<p>I know exactly why I got into programming. I&#8217;m not so sure when it happened but I do know why.</p>
<p>I was always obsessed with understanding how things worked. I <strong>had</strong> to know. Everything had to be taken apart and then put back together, whenever my dad or mom would throw out some piece of computer hardware or other machinery I would ask to see it before they did.</p>
<p>Then I would retreat to my room and take whatever it was apart and see how it did what it did. Even if I didn&#8217;t really understand what was going on with whatever I was taking apart in the end it was still fun and exciting. Transformers were, of course, my favorite toys.</p>
<p>I think it was late 1995 / early 1996 when my dad bought me a copy of Visual Basic 4.0 at one of our local computer shows. I remember being really excited because I would finally figure out how programs like WordPerfect, xTree, Windows, and Commander Keen really worked.</p>
<p>Unfortunately my copy of Visual Basic never really showed me how Windows or Commander Keen worked but it kept me occupied for that whole summer and opened me up to a whole world of new things to figure out.</p>
<p>I know exactly why I got into programming. I&#8217;m not so sure when it happened but at least I know why.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2008/12/05/how-i-got-into-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeff Johnson: Grandfather of the Tree View</title>
		<link>http://codeimpossible.com/2008/10/05/jeff-johnson-grandfather-of-the-tree-view/</link>
		<comments>http://codeimpossible.com/2008/10/05/jeff-johnson-grandfather-of-the-tree-view/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 06:55:31 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tree-view-control]]></category>
		<category><![CDATA[xtree]]></category>

		<guid isPermaLink="false">http://pistalwhipped.wordpress.com/?p=222</guid>
		<description><![CDATA[Think of it as a hi-tech version of Woody Allen&#8217;s statement that life is what happens to you while you&#8217;re out doing something else. 
The above excerpt was written by Jeff Johson, the creator of the Xtree file management software in his quasi-blog post title &#8220;An Unapologetic History of XTree&#8221; written in 1991, six years after Xtree [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><span>Think of it as a hi-tech version of Woody Allen&#8217;s statement that life is what happens to you while you&#8217;re out doing something else. </span></p></blockquote>
<p>The above excerpt was written by Jeff Johson, the creator of the Xtree file management software in his quasi-blog post title &#8220;<a href="http://www.jeffreycjohnson.com/xtreehistory.html" target="_blank">An Unapologetic History of XTree</a>&#8221; written in 1991, six years after Xtree 1.0 was released.</p>
<p>Jeff was the lead developer on the Xtree software project that originally started out as an in-house tool but would soon become one of the most popular applications ever released for the DOS operating system.</p>
<p>What set Xtree apart from every other application was how it showed you where your files were located.</p>
<blockquote><p><span>Among the subjects discussed were how the program would represent the DOS directory structure on-screen, and what the screen might look like. I drew a picture of this outline on a white board. It looked like a tree that needed water. It was a swell picture but no one thought it could be done. Impossible, they said.</span></p>
<p>Famous last words.  </p></blockquote>
<p>Xtree was the first application to use what we now call the Tree View it was created and shipped a full ten years before <a href="http://www.patentstorm.us/patents/5689662/claims.html" target="_blank">Microsoft would patent the idea and claim it as theirs</a>. Although never officially credited, Jeff Johnson created of one of the most widely used UI components since the button.</p>
<p>Sadly, Executive Systems, the makers of Xtree, were aquired by Central Point Software in 1993. Symantec bought Central Point Software in 1994 and stopped all production of Xtree in 1995.</p>
<p>Jeff never recieved any compensation from Microsoft when they added file manager to Windows and, in 1992 he contracted the flu and his health began to decline. Although he has not gotten any better he does plan to work on another file manager when his health improves.</p>
<p>His article is a must-read for anyone that used Xtree and a strongly suggested read for anyone that develops software professionaly. Next time you open folder view in Windows Explorer, think of Jeff Johnson and all the talented people at Executive Systems.</p>
<p>I know I will.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2008/10/05/jeff-johnson-grandfather-of-the-tree-view/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jquery + MVC = Web Dev Heaven</title>
		<link>http://codeimpossible.com/2008/10/02/jquery_plus_mvc_equals_web_dev_heaven/</link>
		<comments>http://codeimpossible.com/2008/10/02/jquery_plus_mvc_equals_web_dev_heaven/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 02:43:35 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pistalwhipped.wordpress.com/?p=216</guid>
		<description><![CDATA[So Jquery is going to become part of Asp.net MVC. First off, congrats to the Jquery team. They&#8217;ve put out a really awesome product. Second, congrats to Microsoft for catching every .Net developer completely by surprise, proving, again, that they are listening to the community.
I never really got into the microsoft javascript libraries that shipped [...]]]></description>
			<content:encoded><![CDATA[<p>So <a href="http://www.hanselman.com/blog/jQueryToShipWithASPNETMVCAndVisualStudio.aspx" target="_blank">Jquery is going to become part of Asp.net MVC</a>. First off, congrats to <a href="http://jquery.com/" target="_blank">the Jquery team</a>. They&#8217;ve put out a really awesome product. Second, congrats to Microsoft for catching every .Net developer completely by surprise, proving, again, that they are listening to the community.</p>
<p>I never really got into the microsoft javascript libraries that shipped with the ajax control toolkit because I found that I could do things much faster using external javascript libraries .</p>
<p>It will be interesting to see what Microsoft contributes back to the Jquery community in later updates to the ASP MVC product.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeimpossible.com/2008/10/02/jquery_plus_mvc_equals_web_dev_heaven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
