<?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>[Dot] Code Dump</title>
	<atom:link href="http://www.dotcodedump.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotcodedump.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 06 Jan 2010 12:27:53 +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>Shoveling Snow and Fixing Bugs</title>
		<link>http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/</link>
		<comments>http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 18:09:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[QA]]></category>
		<category><![CDATA[bugs]]></category>

		<guid isPermaLink="false">http://www.dotcodedump.com/?p=248</guid>
		<description><![CDATA[Shoveling snow is best done early, you may have to do it again, but it is a far easier affair. The same is true of buggy or troublesome code in a project, the sooner you fix the code the easier it will be.
The longer you wait to shovel the worse it gets, besides the additional [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dotcodedump.com/wp-content/uploads/2009/12/Uklizení_snehu.jpg"><img class="alignleft size-medium wp-image-251" style="border: 1px solid black; margin: 0px 5px;" title="Shoveling Snow" src="http://www.dotcodedump.com/wp-content/uploads/2009/12/Uklizení_snehu-300x225.jpg" alt="" width="300" height="225" /></a>Shoveling snow is best done early, you may have to do it again, but it is a far easier affair. The same is true of buggy or troublesome code in a project, the sooner you fix the code the easier it will be.</p>
<p>The longer you wait to shovel the worse it gets, besides the additional snow you have to move. The snow may get compacted, or freeze into ice.  So you will end up breaking ice, salting, besides shoveling. The same is true when maintaining a project, and you wait to fix a troublesome section of code. The problems will start to pile up and dependency may be built on top of the code. Then when you actually get to fixing it you have to fix not only the initial problem, but any dependent code.</p>
<p>Sometimes our hands as developers are tied, the budget maybe tight, but we should understand the business case for fixing something earlier, and try to estimate the cost of not fixing it if there is resistance. That being said we should also be cognizant of balance between our need as programmers for quality, and the bare minimum which will provide our customers, internal or external, the value they expect.</p>
<p>&#8220;Fix early, fix often&#8221; is my philosophy for dealing with bugs. When you delay fixing a problematic section of code, you will pay for it with  interest.  Having a clean code base is even more satisfying then having driveway and walkway clear of snow.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Shoveling+Snow+and+Fixing+Bugs&amp;url=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/&amp;title=Shoveling+Snow+and+Fixing+Bugs" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Shoveling+Snow+and+Fixing+Bugs+@+http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/12/shoveling-snow-and-fixing-bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pass Time &#8220;Estimating a Feature&#8221;</title>
		<link>http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/</link>
		<comments>http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 19:45:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://www.dotcodedump.com/?p=224</guid>
		<description><![CDATA[So as I am channel surfing, and I come across the show Pass Time. I watched two episodes straight through last night. For those of you who have never seen it, the show is a drag race crossed with a game show. Three contestants must guess the pass time of a hot rod in the [...]]]></description>
			<content:encoded><![CDATA[<p>So as I am channel surfing, and I come across the show <a href="http://www.speedtv.com/index.php/programs/pass-time/">Pass Time</a>. I watched two episodes straight through last night. For those of you who have never seen it, the show is a drag race crossed with a game show. Three contestants must guess the pass time of a hot rod in the quarter mile. If they are the closest they win. The process they go through is exactly the same process we as developers go through when estimating a feature.</p>
<p>The process of the show is fairly straightforward. First the driver may introduce their car, and the contestants may ask them three questions.  Usually something about estimated horse power, if the car has nitrous, or other types of modifications or parts. The contestants make their guesses, and the driver runs down the track, and the person who is the closest gets $100. Repeat until the end of the show, whoever has the most wins. The video below explains it.</p>
<div style="text-align: center; width: 100%;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="296" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.hulu.com/embed/sOPD82zBDmNRMQY-yosH-A" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="512" height="296" src="http://www.hulu.com/embed/sOPD82zBDmNRMQY-yosH-A" allowfullscreen="true"></embed></object></div>
<p>To tie this back into software development, and how this is like estimating a feature request. Usually when some one requests a feature, you as the software developer has to come up with an estimate on how long it will take. The requester or an intermediary will come to you and explain the feature, you will have to ask them questions, these questions will help you figure out the basic details about the request.</p>
<p>You like the contestants you must rely on your knowledge and experience to put up a guess on how long it will take.  It is an educated guess. Maybe there will be a driver or mechanical error which could drastically alter actual time. The same is true implementing any feature, maybe their will be programmer error, or an unforeseen complication with the underlying system. Our best estimates will not usually take this into account.</p>
<p>Some people are better at estimation, but a lot of estimation is experience. Usually the first question or thought you have is: &#8220;Have you seen something like this, or at least something with similar components.&#8221; The more projects you work on, the more you can observe and learn about what slows down or speeds up a project, and use this as a base for estimates. Most quick estimates we make a calculation of a positive and negative factors on some base which is familiar. This is exactly what the contestants are doing.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B&amp;url=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/&amp;title=Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Pass+Time+%26%238220%3BEstimating+a+Feature%26%238221%3B+@+http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/12/pass-time-estimating-a-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Repeat Anyone&#8217;s Work (DRAW)</title>
		<link>http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/</link>
		<comments>http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 22:14:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[DRAW]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Re-Use]]></category>
		<category><![CDATA[Repeat]]></category>

		<guid isPermaLink="false">http://www.dotcodedump.com/?p=170</guid>
		<description><![CDATA[
As programmers we forget the fact that many of the problems we encounter every day have already been solved. We don&#8217;t need to write a sort algorithm, create a new type of data structure, or write an encryption library from scratch.  We try not to repeat ourselves, but we have no problem repeating every one [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-171 alignleft" style="margin: 5px;" title="Draw" src="http://www.dotcodedump.com/wp-content/uploads/2009/11/Draw.png" alt="Draw" width="233" height="200" /></p>
<p>As programmers we forget the fact that many of the problems we encounter every day have already been solved. We don&#8217;t need to write a sort algorithm, create a new type of data structure, or write an encryption library from scratch.  We try not to repeat ourselves, but we have no problem repeating every one else.</p>
<p>I know that programmers love acronyms, play on words, and guidelines. Therefore, I am proposing the DRAW principal. <strong>D</strong>on&#8217;t <strong>R</strong>epeat <strong>A</strong>nyone&#8217;s <strong>W</strong>ork.</p>
<p>This is defined as: Not solving generic and common problems that have already been solved. This may take many forms, it could be as simple as using a common library, or it may be more in depth such as reading the code of an open source application, or even looking up a general form of an algorithm.</p>
<p>This is a problem that many programmers have faced for a long time, and we have complained about it for a long time <a href="http://www.codinghorror.com/blog/archives/001311.html">here</a>, <a href="http://www.secretgeek.net/csv_trouble.asp">here</a>, and <a href="http://codemines.blogspot.com/2006/08/now-they-have-two-problems.html">here</a>. Sometimes we think we can solve a problem very quickly, sometimes we don&#8217;t know some one has already solved it, we may even think we can do a better job, or just maybe we are doing it for hack value. Whatever the reason we have all, took the time to solve a problem that has been solved before, that could have been handled with a quick Google search.</p>
<p style="text-align: left;">Many times Google will return an answer you are looking for. Last week I had to parse a comma delimited list, passed as a string from from a web service I was integrating into a .NET application. Below is the Google search I used, which return a number of results. Parsing CSV data is something that has been solved thousands of times before. It was that straightforward.</p>
<p style="text-align: center;"><img class="size-full wp-image-174 aligncenter" title="parsecsv" src="http://www.dotcodedump.com/wp-content/uploads/2009/11/parsecsv.png" alt="parsecsv" width="455" height="500" /></p>
<p>Part of being a good software developer is knowing when to be lazy, and find an already existing solution and when you have to hand code something. The basics of this principal is being knowledgeable about the language you are using, and being able to research problems, and leverage the resources of the developer community at large.</p>
<h5 style="text-align: center;">Footnote this is play on the <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY Principle </a></h5>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29&amp;url=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/&amp;title=Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Don%26%238217%3Bt+Repeat+Anyone%26%238217%3Bs+Work+%28DRAW%29+@+http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/11/dont-repeat-anyones-work-draw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computer Econ 101</title>
		<link>http://www.dotcodedump.com/2009/11/computer-economics-101/</link>
		<comments>http://www.dotcodedump.com/2009/11/computer-economics-101/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 23:02:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[optimization]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[trade-off]]></category>

		<guid isPermaLink="false">http://www.dotcodedump.com/?p=159</guid>
		<description><![CDATA[Economics at it&#8217;s very heart is the study of production, distribution, and consumption. Computer economics follow the same principals. The computer does very similar things it reads data, writes data, and calculates data. These activities are almost analogous, calculation is production, writing data is distribution, and reading data is consumption. Like real world economies we [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; padding-right: 10px; padding-bottom: 10px;" src="http://mrg.bz/xODbzo" border="0" alt="" width="311" height="302" />Economics at it&#8217;s very heart is the study of production, distribution, and consumption. Computer economics follow the same principals. The computer does very similar things it reads data, writes data, and calculates data. These activities are almost analogous, calculation is production, writing data is distribution, and reading data is consumption. Like real world economies we have fixed resources. We can view our computers as factories, and our programs as work-flows and logistical plans.</p>
<p>Factories in the real world have limits. They only have so many square feet, in which they can fit workers, machines, and resources. Our computers operate under the same principal that we are limited in our resources such as processor speed, RAM, network speed, etc. Part of programming is understanding how to work within these limitations.</p>
<p>Designing and programming applications that operate within the limits requires us to first to know, and then to understand a machines limitations. To know how fast an application will be processed we have to know how much time it will spend reading, writing, and processing.</p>
<p>Moore&#8217;s law has greatly alleviated this problem. We now have bigger, faster, and more efficient computers than we could have ever dreamed of, but that doesn&#8217;t mean we can ignore the bounds. We still need to understand which operations are expensive, reading data from a network location, compared to relatively cheap operations, such as incrementing an integer.</p>
<p>Even though modern computer hardware has greatly increased the resources we use, there are still areas where we must be vigilant. On example is, a web applications running on a server can easily be brought to their knees by a high user load. When developing web applications with a high usage these principals are not just helpful, they are required.</p>
<p>Once you understand the economics of the machine you can start to make intelligent trade offs for resources. One example is caching, a common strategy for reducing processing and data access by keeping a copy of commonly produced data in memory. These trade offs can have impacts, and create issues. Truly understanding the principals behind machine economies is very important.</p>
<p>Even though we should be aware of these principals, it is important to understand the real world trade off of time spent programming, and the need for software to ship. Many times we will release software that not terribly efficient on purpose. Maybe the time to develop was more pressing than performance, may be it is small web application that has a low usage. Whatever the reason we must accept that sometimes we must release software that is just good enough. That doesn&#8217;t mean we can be lazy as programmers, but it means that we should apply the principals of machine economics as we program, and know when we must hand tune our code.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Computer+Econ+101&amp;url=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/11/computer-economics-101/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/11/computer-economics-101/&amp;title=Computer+Econ+101" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/11/computer-economics-101/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Computer+Econ+101+@+http://www.dotcodedump.com/2009/11/computer-economics-101/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/11/computer-economics-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diminishing Returns on Software Quality</title>
		<link>http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/</link>
		<comments>http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 19:24:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://www.dotcodedump.com/?p=151</guid>
		<description><![CDATA[Software production, like any other production, obeys the law of diminishing returns. Reducing flaws is part of the software production process so it also falls under this umbrella of diminishing returns. The law of diminishing returns states that when we add additional input into a production process we will see diminished output relative to the [...]]]></description>
			<content:encoded><![CDATA[<p>Software production, like any other production, obeys the law of diminishing returns. Reducing flaws is part of the software production process so it also falls under this umbrella of diminishing returns. The law of diminishing returns states that when we add additional input into a production process we will see diminished output relative to the inputs at a some point. We can restate this in reference to quality analysis, the amount of time spent QA testing, writing unit tests, or other quality control measures will become less and less effective at reducing bugs and errors the more time is spent after a threshold of time spent.</p>
<p>An example of this would be a QA team is testing a section and they work 4 hours. They spent the 1st hour working and they found 8 bugs, they spend another hour working and only find 4 bugs, after the third hour of testing they found 2 bugs, and in the fourth hour they only find one more bug. We could say that the output diminished each hour they worked.</p>
<p>In the graph below you can see how the number of bugs starts to trail off. This would be an example of how after a certain time the output is decreasing even though more time is spent testing. In this example over 50% of the total bugs found would have been the first hour 80% by the second hour.</p>
<img class="size-full wp-image-154" src="http://www.dotcodedump.com/wp-content/uploads/2009/11/bugshour.png" alt="Bugs Per Hour Chart" width="450" height="320" />
<p>Most often the initial QA testing is the most valuable, and then less and less bugs are found the more testing is done. This shapes the way we approach QA, and why many times QA is cut short, because reduction of flaws becomes more and more expensive, especially with larger products. This information also can shape how a testing process is developed, and how deep or shallow we choose to test each section.</p>
<p>Putting this altogether helps us as developers understand that flawless software is very difficult, and expensive to produce, because QA time becomes less and less effective after a certain threshold. The difficult part is figuring out when QA returns are diminished, and is there a point where it starts to drop off drastically? Every project, and every organization are different, and so this could very greatly depending on a number of factors, QA testers ability, software complexity, domain complexity, organizational factors, etc.</p>
<p>The law of diminishing returns as relates to quality and QA ties into the bigger picture of the project triangle (Scope/Quality, Cost, and Time). If we understand how much time it will take to reasonably test our software we can better balance the quality with deadlines and costs. We know that we may be able to shave 20% of a QA testing budget and not cut into the most valuable QA testing time and can more accurately forecast the risk associated with such a decision.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Diminishing+Returns+on+Software+Quality&amp;url=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/&amp;title=Diminishing+Returns+on+Software+Quality" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Diminishing+Returns+on+Software+Quality+@+http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/11/diminishing-returns-on-software-quality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Web Developers Can Learn from Assembly</title>
		<link>http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/</link>
		<comments>http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 03:31:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.dotcodedump.com/?p=140</guid>
		<description><![CDATA[Learning assembly can provide a significant benefit for web developers. I recently began learning and programming assembly for the x86 processors. This is more of a refresher, since I had learned some assembly on the university VAX.  I consider learning to program in assembly some of the most important knowledge I have learned. Assembly programming [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-143" style="padding: 0px 10px 10px 0px;" title="300px-Half-adder.svg" src="http://www.dotcodedump.com/wp-content/uploads/2009/10/300px-Half-adder.svg.png" alt="300px-Half-adder.svg" width="300" height="194" />Learning assembly can provide a significant benefit for web developers. I recently began learning and programming assembly for the x86 processors. This is more of a refresher, since I had learned some assembly on the university VAX.  I consider learning to program in assembly some of the most important knowledge I have learned. Assembly programming taught me about how programs are processed, how memory allocated and used, and better understanding of modern computer architecture. These skills may not be directly applicable in high level languages, but it does allow us to understand the big picture.</p>
<p>Programming in assembly requires you to think in bits and bytes. You must allocate your own memory. You have to move data into registers and directly perform arithmetic and logical operations on bits and bytes of data, rather than just defining a for each loop and iterating through objects. Using assembly is in effect directly telling the processor which instructions to execute on which data. You learn how to do the heavy lifting rather than having a high level language do it for you.</p>
<p>Assembly programming can help shore up your knowledge of existing languages. One area where assembly is very effective is understanding memory management. Even though memory management is now handled by modern language with garbage collectors. In assembly we have to explicitly define how much memory we need. We may define 64 bytes for an array, rather than just defining a variable for a list and initializing the object without ever knowing how big that list is. Understanding how memory is allocated can help us minimize the overall foot print of all of our applications and be more efficient.</p>
<p>Beyond this experience with assembly allows you to experience how processing happens. How expensive it is to move things to and from memory and processor. How expensive and slow accessing non memory data such as disk or network resources. It gives you a better feel for bottlenecks in applications. This knowledge becomes extremely valuable when optimizing applications, and understanding how and when to make time and space trade offs.</p>
<p>Overall assembly programming showed me the whole picture of programming from typing in code, compiling the code, and finally running an executable.  This solidified many of the concepts I had learned, how algorithms work and why some are orders of magnitude more efficient, and how data structures are allocated and processed.  These higher level concepts directly improved my knowledge of programming in high level languages, and allowed me to make wiser technical decisions because of it.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=What+Web+Developers+Can+Learn+from+Assembly&amp;url=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/&amp;title=What+Web+Developers+Can+Learn+from+Assembly" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+What+Web+Developers+Can+Learn+from+Assembly+@+http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/10/what-web-developers-can-learn-from-assembly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips for Effective Documentation</title>
		<link>http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/</link>
		<comments>http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:45:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=102</guid>
		<description><![CDATA[Writing technical documentation is required task for many developers.  Once you start producing documentation you quickly learn good documentation is more than just screen shots. You will be required to write and express complex concepts. Documentation can be very challenging. Especially if you are not comfortable writing for non-technical users. It is a skill like [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-120" style="padding: 0px 10px 10px 0px; margin: 0px;" title="notebooks-072504-1" src="http://blog.lintnernet.com/wp-content/uploads/2009/10/notebooks-072504-1-300x200.jpg" alt="notebooks-072504-1" width="300" height="200" />Writing technical documentation is required task for many developers.  Once you start producing documentation you quickly learn good documentation is more than just screen shots. You will be required to write and express complex concepts. Documentation can be very challenging. Especially if you are not comfortable writing for non-technical users. It is a skill like any other. It can only developed through practice and experience. Here are a list of tips and ideas which I have used for writing effective documentation.</p>
<h2>Practice Writing</h2>
<p>Above all else, the more you practice writing the better you will be. When I left college my writing was not up to par. It did not improve until I started practicing. My writing may not be perfect, but it has shown vast improvement, because I practiced writing.  Many ways exist for you to practicing writing documentation. Here are just a few that I used.</p>
<ul>
<li>Start writing in a blog about technical material you interested in.</li>
<li>Document your own work. You can use a personal wiki. <a href="http://www.tiddlywiki.com/">TiddlyWiki</a> is one example.</li>
<li>Just sit down and write anything. Just write.</li>
</ul>
<h2>Read Other Documentation</h2>
<p>Reading documentation is a way to broaden your knowledge of documentation.  The more you read the better writer you will become. Reading other documentation can help you learn a learn from other&#8217;s successes and mistakes. Here are some ideas for reading other documentation.</p>
<ul>
<li>The O&#8217;Reilly Books great example of technical documentation for Programmers and Administrators.</li>
<li>Documentation of technical tasks for non-technical users.</li>
<li>Find similar documentation to the technical item you want to document.</li>
</ul>
<h2>Know Your Audience</h2>
<p>Before you ever start writing, ask yourself who is my audience? This sets the stage for the tone of the document and how the information should be presented. Here are a set of questions to clarify who your audience is.</p>
<ul>
<li>What technical skills do my users posses?</li>
<li>What terms will make your users comfortable or feel uneasy?</li>
<li>What reading level are your users?</li>
<li>Are they comfortable with technical writing?</li>
<li>Do they understand the non-technical aspects of the task?</li>
</ul>
<h2>Be Consistent</h2>
<p>Keep your documentation consistent. Consistency reduces the barriers to following a complex idea. It increases readers comprehension of the document. Here are some tips on consistency.</p>
<ul>
<li>Use consistent jargon ex: If you call a link by the term <em>hyperlink</em>, do not use the term <em>link</em> later.</li>
<li>If you are adding to a document try to follow the existing writing style.</li>
<li>Use a consistent writing style.</li>
<li>Use consistent and proper spelling.</li>
<li>Use the same font styles consistently.</li>
</ul>
<h2>Write Clearly</h2>
<p>There are many ways we can clarify documentation. Technical language is sometimes a necessity, but that does not have to effect the clarity of our writing. Here are some tips for making your documentation slightly more clear.</p>
<ul>
<li>Define jargon and acronyms when they are introduced.</li>
<li>Do not skip steps when documenting tasks.</li>
<li>Highlight problem areas, potential pitfalls, and common mistakes.</li>
<li>Provide concrete examples.</li>
<li>Use the simplest words that work.</li>
<li>Avoid complex and run on sentences.</li>
<li>Use paragraphs to isolate larger concepts.</li>
</ul>
<h2>Efficient For the Reader</h2>
<p>The only thing worse than incomplete documentation, is inefficient documentation. Writing an efficient document goes hand and hand with clear documentation. Do not make your users search through loads of documentation. Make the important points stick out.</p>
<ul>
<li>Good headlines and Sub-Headlines will allow your users to effectively scan content.</li>
<li>Good section grouping will allow users to find similar concepts quickly.</li>
<li>A search function for online documentation is extremely effective. I recommend using a Wiki.</li>
</ul>
<h2>Conclusion</h2>
<p>These tips will not make you a better writer over night, but they can help you become more cognizant about what you are writing. Below are a list of tips and resources to help with writing documentation.</p>
<ul>
<li><a href="http://www.crockford.com/wrrrld/style.html">The Elements of Style</a></li>
<li><a href="http://www.perlmonks.org/?node_id=130249">Introduction to Technical Writing/Documentation</a></li>
<li><a href="http://owl.english.purdue.edu/owl/">OWL (Online Writing Lab at Purdue)</a></li>
<li><a href="http://en.wikipedia.org/wiki/Software_documentation">Software Documentation via Wikipedia</a></li>
<li><a href="http://www.stcsig.org/usability/newsletter/0505-effectivedocs.html">Key for Effective Documentation</a></li>
</ul>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Tips+for+Effective+Documentation&amp;url=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/&amp;title=Tips+for+Effective+Documentation" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Tips+for+Effective+Documentation+@+http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/10/tips-for-effective-documentation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dining Programmers</title>
		<link>http://www.dotcodedump.com/2009/09/dining-programmers/</link>
		<comments>http://www.dotcodedump.com/2009/09/dining-programmers/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 13:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dining]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sweedish chef]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming languages]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=68</guid>
		<description><![CDATA[We as programmers dine upon a plethora of languages. Some of us choose to dine on rich and decadent languages such as Java, and .NET. Others choose the traditional elegance of languages such as C and Assembly. Some choose quick and light scripting languages such as PHP, Python, and Ruby.
The programming languages you dine on [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oJ89RnXa3zM/Sr_CyvYp-YI/AAAAAAAAAXQ/q3OjyJPcSNY/s1600-h/swedish010509.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 280px; height: 220px;" src="http://1.bp.blogspot.com/_oJ89RnXa3zM/Sr_CyvYp-YI/AAAAAAAAAXQ/q3OjyJPcSNY/s320/swedish010509.jpg" alt="" id="BLOGGER_PHOTO_ID_5386237856327530882" border="0" /></a>We as programmers dine upon a plethora of languages. Some of us choose to dine on rich and decadent languages such as Java, and .NET. Others choose the traditional elegance of languages such as C and Assembly. Some choose quick and light scripting languages such as PHP, Python, and Ruby.</p>
<p>The programming languages you dine on is based in the same principals as your culinary choices. These decisions are based in your culture. Many factors which contribute to your technical culture: where you learn, where you work, and where you play.  Reading these cultural factors can help us understand why a person or an organization picks the languages they do.</p>
<p>Some of us choose us prefer a buffet of languages, and like to sample a little bit of every language. Some choose to stick with a couple core choices and savor every little piece of a language. On the other hand you have your diet specific programmers, such as you free software-gens, and the script-arians.</p>
<p>Sometimes our jobs require us to use a specific language, or the technology requires it. Utility is largest factor in choosing languages. Secondly what you learned and perfected you programming is a close second to choosing which language to use. Tertiary factors are general community factors, such as what are the current trends, what would you like to learn.  All of these factors relate to how we choose food, what&#8217;s available to us to buy, what our families have eaten, and what we are recommended.</p>
<p>On a side note. The programming languages you choose to dine are signals to other programmers. Just as you culinary choices are signals to other people. These signs, and signals many times are more rooted in stereo type. So many programmers may learn a specific language  to affect their appearance to others, just as some people make dining choices to impress other people.</p>
<p>Finally as I discussed earlier the biggest factor in choosing a programming language is the utility, and what we cut our teeth on. Just as many times primary food choices are based on utility, and then what we learned from our families. Understanding these factors can help us grow as programmer, and understand what programming languages we consume.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Dining+Programmers&amp;url=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/09/dining-programmers/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/09/dining-programmers/&amp;title=Dining+Programmers" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/09/dining-programmers/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Dining+Programmers+@+http://www.dotcodedump.com/2009/09/dining-programmers/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/09/dining-programmers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Des Moines Twitter Trends V.2</title>
		<link>http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/</link>
		<comments>http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 14:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySql]]></category>
		<category><![CDATA[des moines]]></category>
		<category><![CDATA[des moines twitter trends]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[data mining]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[geo-encoding]]></category>
		<category><![CDATA[iowa]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=66</guid>
		<description><![CDATA[I just published version two of Des Moines twitter trends. The biggest change is the database was moved to MySql instead of SQLite3. Upgrading to MySql database allowed the data to be easily shared with a WordPress site.
Des Moines Twitter Trends

The web view of the data has been upgraded to provide more information. The Des [...]]]></description>
			<content:encoded><![CDATA[<p>I just published version two of Des Moines twitter trends. The biggest change is the database was moved to MySql instead of SQLite3. Upgrading to MySql database allowed the data to be easily shared with a WordPress site.</p>
<div style="text-align: center;"><a href="http://www.dsmtrends.com/">Des Moines Twitter Trends</a></p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oJ89RnXa3zM/SrajFqUEsWI/AAAAAAAAAXI/yB7fc547LSI/s1600-h/dsmtrends.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 255px;" src="http://3.bp.blogspot.com/_oJ89RnXa3zM/SrajFqUEsWI/AAAAAAAAAXI/yB7fc547LSI/s320/dsmtrends.png" alt="" id="BLOGGER_PHOTO_ID_5383669722221162850" border="0" /></a></div>
<p>The web view of the data has been upgraded to provide more information. The Des Moines Twitter Trends website now provides a clearer view of the data collected. It provides current trends for the past few hours, the past day, and the past week. All of the terms are now links to Twitter Searches.</p>
<p>I added some new information, such as recent links, and current view of the latest Twitter user&#8217;s avatars in a grid.</p>
<p>I also created my own theme, and display instead of using a third party Wordpress Theme.</p>
<p>P.S.<br />Here was the write up for the first version: <a href="http://www.dotcodedump.com/2009/07/finding-local-twitter-trends.html">http://www.dotcodedump.com/2009/07/finding-local-twitter-trends.html</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Des+Moines+Twitter+Trends+V.2&amp;url=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/&amp;title=Des+Moines+Twitter+Trends+V.2" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Des+Moines+Twitter+Trends+V.2+@+http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/09/des-moines-twitter-trends-v-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web Deployment Primer</title>
		<link>http://www.dotcodedump.com/2009/08/web-deployment-primer/</link>
		<comments>http://www.dotcodedump.com/2009/08/web-deployment-primer/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 01:55:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ant]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[MAKE]]></category>
		<category><![CDATA[Phing]]></category>
		<category><![CDATA[Rake]]></category>
		<category><![CDATA[WGet]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[nant]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=64</guid>
		<description><![CDATA[A good deployment strategy is central to the care and feeding of any web application. There are a variety of different types of deployment strategies that are available, and many applications that can be used to automate web applications deployments.
This primer is broken up into major sections below.
Moving Files
If you are like me your web [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oJ89RnXa3zM/Spc5lmmkWtI/AAAAAAAAAXA/fTMmUvY_7hQ/s1600-h/Camels+in+car.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_oJ89RnXa3zM/Spc5lmmkWtI/AAAAAAAAAXA/fTMmUvY_7hQ/s320/Camels+in+car.jpg" alt="" id="BLOGGER_PHOTO_ID_5374827998470232786" border="0" /></a>A good deployment strategy is central to the care and feeding of any web application. There are a variety of different types of deployment strategies that are available, and many applications that can be used to automate web applications deployments.</p>
<p>This primer is broken up into major sections below.</p>
<p><span style="font-weight: bold;font-size:130%;" >Moving Files</span></p>
<p>If you are like me your web server isn&#8217;t the same machine as your development PC at least I hope not! You will need a way to get files to your web servers.<span style="font-weight: bold;"></p>
<p>Push: </span>Push deployments are when files are transferred from the client to the server. An example of this would FTP, or many other file transfer protocol.  This involves opening up a client, and manually or automatically transferring the files from your PC to another computer. This could also involve transferring them using a network file system. FTP clients are included with most major operating systems.</p>
<p><span style="font-weight: bold;">Pull:</span> Triggering the server to download files from another location. An example of this would be using a third party program to download the files from web or ftp directory. WGet, SVN, or another similar program could be used.</p>
<p><a style="font-weight: bold;" href="http://www.gnu.org/software/wget/">WGet</a><span style="font-weight: bold;">:</span> Gnu WGet is free software for retrieving files over HTTP</p>
<p><a style="font-weight: bold;" href="http://filezilla-project.org/">FileZilla</a><span style="font-weight: bold;">:</span> Open source FTP client and server.</p>
<p><span style="font-weight: bold;font-size:130%;" >Source (Revision) Control</span></p>
<p>Source control is critical for being able to control releases, and code. Source control allows you to version your applications, and download a particular version from your source control repository. There are many flavors of source control. Personally I prefer Subversion (SVN). <a href="http://en.wikipedia.org/wiki/Revision_control">For information on source control.</a></p>
<p><a style="font-weight: bold;" href="http://subversion.tigris.org/">SVN</a><span style="font-weight: bold;">:</span> Open source, source control client and server.</p>
<p><a style="font-weight: bold;" href="http://www.nongnu.org/cvs/">CVS:</a> Open Source, been around since the 80&#8217;s, Concurrent Versioning System</p>
<p><a style="font-weight: bold;" href="http://mercurial.selenic.com/wiki/">Mercurial:</a> Open Source, Distributed Version Control in Python.</p>
<p><a style="font-weight: bold;" href="http://git-scm.com/">GIT:</a> Open Source, Distributed Version Control<br /><a href="http://bazaar-vcs.org/"><br /><span style="font-weight: bold;">Bazaar:</span></a> Open Source, Distributed Version Control<br /><a href="http://en.wikipedia.org/wiki/Microsoft_Visual_SourceSafe"><br /><span style="font-weight: bold;">Visual Source Safe:</span></a> Microsoft&#8217;s Legacy Version Control<br /><a href="http://en.wikipedia.org/wiki/Team_Foundation_Server"><br /><span style="font-weight: bold;">Team Foundation Server:</span></a> Microsoft&#8217;s Prefered Version Control, as well as project tracking</p>
<p><span style="font-weight: bold;font-size:130%;" >Automation</span></p>
<p>When I first started building websites. All my deployments were done manually over FTP, and it sucked! Then I started using a better FTP client, and guess what it still sucked! I dreaded deploying, it was error prone, and I looked like an idiot because I forgot a file here or there. It all changed when I started automating my deployments, and I haven&#8217;t looked back since.</p>
<p>Depending on what language, or platform you are developing on or for. It is very likely there is an automation application for you system. There is a large class of open source build automation applications based in some way off ANT for Java, which is java version of MAKE.</p>
<p>ANT and it&#8217;s derivatives are build scripts which are programmed using XML. Using the ANT XML files you can control file copying, running builds, unit tests, and a number of other deployment and build related tasks. Most of these applications support building custom tasks in their native language, so if it doesn&#8217;t support what you need it is very easy to build on top of these platforms.<br /><a href="http://www.gnu.org/software/make/"><br /></a><span style="font-weight: bold;"><a href="http://www.gnu.org/software/make/">Make</a>:</span> GNU Build Tool, best suited for compiling applications, custom file configuration.</p>
<p><a href="http://ant.apache.org/"><span style="font-weight: bold;">Ant:</span></a> Java Build Tool, best suited for building and deploying Java applications.<br /><a href="http://nant.sourceforge.net/"><br /><span style="font-weight: bold;">NAnt</span>:</a> .NET port of Ant, best suited for building and deploying .NET applications.</p>
<p><strong><a href="http://phing.info/trac/">Phing</a>: </strong>PHing <strong style="font-weight: normal;">I</strong>s <strong style="font-weight: normal;">N</strong>ot <strong style="font-weight: normal;">G</strong>NU make, best suited for deploying PHP applications.</p>
<p><a href="http://maven.apache.org/"><span style="font-weight: bold;">Maven:</span></a> Similar to Ant, but different application, it is network ready, and uses a system know as the Project Object Model.</p>
<p><a href="http://rake.rubyforge.org/"><span style="font-weight: bold;">Rake</span>:</a> Similar to Make for Ruby, and the config files use a Ruby syntax.</p>
<p><span style="font-size:130%;"><br /><span style="font-weight: bold;">Other Techniques and Tools</span></span></p>
<p><span style="font-weight: bold;">Divide and Conqueror </span></p>
<p>Divide applications deployments up into different sections, so it is very easy to pin point major errors. One example of this is dividing a compiled web applications into binary, and non binary changes, and then deploy one after the other.</p>
<p><span style="font-weight: bold;">Differential </span></p>
<p>Create a deployment of only the files that have changed since the last release. An example would be using source control to download files that have changed, and only deploying those. The advantages are it will reduce time during deployment. It may also have the issue of missing files, or other items.</p>
<p><span style="font-weight: bold;font-size:130%;" >Putting it all together</span></p>
<p>These are just some of the building blocks for deployment strategies. Building a consistent deployment structure will depend on the number of production, and QA environments that host an application. Sometimes you may not even have access to the production servers. These techniques, and tools are very flexible to support even the most rigorous of deployment structures.</p>
<p>The deployment process should never be a source of stress, and deployment processes should never be the source of errors. Using a consistent, and stable deployment process will reduce both stress and errors.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Web+Deployment+Primer&amp;url=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/08/web-deployment-primer/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/08/web-deployment-primer/&amp;title=Web+Deployment+Primer" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/08/web-deployment-primer/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Web+Deployment+Primer+@+http://www.dotcodedump.com/2009/08/web-deployment-primer/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/08/web-deployment-primer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
