<?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 &#187; programming</title>
	<atom:link href="http://www.dotcodedump.com/tag/programming/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>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>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>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>Poor Quality Software is Incomplete Software</title>
		<link>http://www.dotcodedump.com/2009/07/poor-quality-software-is-incomplete-software/</link>
		<comments>http://www.dotcodedump.com/2009/07/poor-quality-software-is-incomplete-software/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 06:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[quality]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=63</guid>
		<description><![CDATA[Software quality is term that is frequently misunderstood. A major flaw when defining software quality is that it specifies composition or aesthetic. Quality instead is more abstract.  The best definition I could find was from the ISO 9000:
the degree to which a set of inherent characteristics fulfills requirements &#8212; ISO 9000 : 2000
The definition [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oJ89RnXa3zM/SmUE_OuVEkI/AAAAAAAAAWg/M0-Wh9iO29E/s1600-h/quality.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 223px; height: 320px;" src="http://1.bp.blogspot.com/_oJ89RnXa3zM/SmUE_OuVEkI/AAAAAAAAAWg/M0-Wh9iO29E/s320/quality.jpg" alt="" id="BLOGGER_PHOTO_ID_5360696415785128514" border="0" /></a>Software quality is term that is frequently misunderstood. A major flaw when defining software quality is that it specifies composition or aesthetic. Quality instead is more abstract.  The best definition I could find was from the ISO 9000:<br />
<blockquote>the degree to which a set of inherent characteristics fulfills requirements &#8212; ISO 9000 : 2000</p></blockquote>
<p>The definition is interesting, because it makes no statements about composition or any other property. The only statement it makes is about the fulfillment of requirements.</p>
<p>Software exists because it fulfills a need. These needs are translated into requirements. Secondly software is expected to have certain qualities by it&#8217;s users. These are requirements which are many times unwritten. If software does not fulfill most or all the requirements it will be interpreted as poor quality.</p>
<p><span style="font-weight: bold;">Here are some examples of unwritten requirements:</span></p>
<p><span style="font-style: italic;">Bugs should be kept to a minimum</span><span style="font-style: italic;">.</span><br /><span style="font-style: italic;">Software should perform well.</span><br /><span style="font-style: italic;">Software should be very usable.</span></p>
<p>Unwritten requirements are not easy to fulfill, and they are ambiguous and subjective. Clearly defining these requirements and expectations. This process is integral to developing software that fulfills users needs and expectations.</p>
<p>Misunderstanding quality is dangerous, and leads to false beliefs. These beliefs cause developers to ignore parts of the software development picture. The only way to consistently build quality software is to define not only the functional requirements, but also the unwritten requirements and expectations.</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/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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=Poor+Quality+Software+is+Incomplete+Software&amp;url=http://www.dotcodedump.com/2009/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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/07/poor-quality-software-is-incomplete-software/" 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/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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/07/poor-quality-software-is-incomplete-software/&amp;title=Poor+Quality+Software+is+Incomplete+Software" 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/07/poor-quality-software-is-incomplete-software/" 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+Poor+Quality+Software+is+Incomplete+Software+@+http://www.dotcodedump.com/2009/07/poor-quality-software-is-incomplete-software/" 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/07/poor-quality-software-is-incomplete-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding Local Twitter Trends</title>
		<link>http://www.dotcodedump.com/2009/07/finding-local-twitter-trends/</link>
		<comments>http://www.dotcodedump.com/2009/07/finding-local-twitter-trends/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 11:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[des moines]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[data mining]]></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=61</guid>
		<description><![CDATA[Mining Twitter for Trends in a Geographic Area
Local or Targeted trends on Twitter is not something that Twitter provides. So I decided to create my own solution. For this project I used Perl, Twitter API via Net::Twitter, Yahoo Term Extraction Service, and SQLite3 to store data.  This technique is a quick and dirty way [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://1.bp.blogspot.com/_oJ89RnXa3zM/Slx9lHTmTfI/AAAAAAAAAWY/_dc64X9z54c/s1600-h/Empire_mine_shaft.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5358295733233929714" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 213px;" src="http://1.bp.blogspot.com/_oJ89RnXa3zM/Slx9lHTmTfI/AAAAAAAAAWY/_dc64X9z54c/s320/Empire_mine_shaft.jpg" border="0" alt="" /></a><span style="font-weight: bold; font-family: verdana; font-size: 100%;">Mining Twitter for Trends in a Geographic Area</span></p>
<p><span style="font-family: verdana;">Local or Targeted trends on Twitter is not something that Twitter provides. So I decided to create my own solution. For this project I used </span><a style="font-family: verdana;" href="http://www.perl.org/">Perl</a><span style="font-family: verdana;">, </span><a style="font-family: verdana;" href="http://apiwiki.twitter.com/">Twitter</a><a style="font-family: verdana;" href="http://apiwiki.twitter.com/"> API</a><span style="font-family: verdana;"> via </span><a style="font-family: verdana;" href="http://search.cpan.org/dist/Net-Twitter/lib/Net/Twitter.pod">Net::Twitter</a><span style="font-family: verdana;">, </span><a style="font-family: verdana;" href="http://developer.yahoo.com/search/content/V1/termExtraction.html">Yahoo Term Extraction Service</a><span style="font-family: verdana;">, and </span><a style="font-family: verdana;" href="http://www.sqlite.org/">SQLite3</a><span style="font-family: verdana;"> to store data.  This technique is a quick and dirty way to perform a simple data analysis on Twitter posts, and extract current conversation trends.</span></p>
<p><span style="font-family: verdana;">To view the most recent output from the process please go to my site: </span><a href="http://dsmtrends.com"><span style="font-family: verdana;">Des Moines Twitter Trends.</span></a> (Updated for V2)</p>
<p><span style="font-family: verdana; font-size: 130%;"><span style="font-weight: bold;">Process Overview:</span></span></p>
<ol style="font-family: verdana;">
<li>Get New Local Twitter Posts</li>
<li>Clean and Filter Data</li>
<li>Extract Significant Terms</li>
<li>Rank Term Occurrence</li>
<li>Record Term and Tweet Data</li>
<li>Consume Historical Data</li>
</ol>
<p><span style="font-family: verdana; font-size: 130%;"><span style="font-weight: bold;"><br />
Process Details:</span></span></p>
<p><span style="font-weight: bold; font-family: verdana;">Get New Local Twitter Posts</span></p>
<p><span style="font-family: verdana;">I used the Perl Net::Twitter API interface to download new Twitter posts.  This was freely available via CPAN. This provided an easy way to interface with the Twitter API. I created a new account, and registered my application with Twitter.  I used this account information, and Net::Twitter to download Twitter Posts via the Twitter API.</span></p>
<p><span style="font-style: italic; font-family: verdana;">Code for Defining Net::Twitter, and downloading tweets:</span></p>
<blockquote style="font-family: verdana;"><p>#$user: Twitter Account Username<br />
#$password: Twitter Account Password<br />
#$consumer_key: Twitter Application Consumer Key<br />
#$consumer_key: Twitter Application Consumer Secret</p>
<p>my $nt = Net::Twitter-&gt;new(<br />
traits   =&gt; [qw/API::REST API::Search OAuth/],<br />
username =&gt; $user,<br />
password =&gt; $password,<br />
consumer_key =&gt; $consumer_key,<br />
consumer_secret =&gt; $consumer_secret<br />
);</p>
<p>#q: Search Query. I am using none<br />
#geocode: geographical coordinates for search<br />
#rpp: results per page</p>
<p>my $statuses = $nt-&gt;search({ q=&gt; $search, geocode=&gt; $geocode, rpp=&gt;$rpp});<br />
$results = $statuses-&gt;{results};</p></blockquote>
<p><span style="font-family: verdana;">The Net::Twitter object constructor requires the account, and application information. Then a search request is made. The response will be similar to the JSON object that is returned via the search api. To access the posts, we have to call &#8220;result&#8221; property which contains all the Twitter posts.</span></p>
<p><span style="font-weight: bold; font-family: verdana;">Clean and Filter Twitter Posts</span></p>
<p><span style="font-family: verdana;">This step is pretty straightforward. We take the results from our previous step, and we loop through each post, and run a set of search and replace regular expressions against the post data. We are specifically looking to remove things such as URLs, HTML characters, and other data specific to Twitter such as the abbreviation RT.</span></p>
<p><span style="font-weight: bold; font-family: verdana;">Extract Significant Terms </span></p>
<p><span style="font-family: verdana;">For this step we will need to compile the cleaned data into a large string. Once the data is compiled we can post it to the Yahoo Term Extraction Service (YTES).  Again there is a free CPAN module for the YTES.  Before using the YTES I had to sign up for a </span><a style="font-family: verdana;" href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fdeveloper.yahoo.com%2Fwsregapp%2F&amp;ei=dfNbSvfTLIvelAeu69zuDA&amp;usg=AFQjCNGQc0voZfuyHF1npTd23HvVCcGIRg&amp;sig2=7XCVi0Br5CuQd2S42vflRw">Yahoo Developer API Key</a><span style="font-family: verdana;">. The provided module is very programmer friendly, just plug and play.</span></p>
<p><span style="font-style: italic; font-family: verdana;">Accessing the Yahoo Term Extraction Service:</span></p>
<blockquote style="font-family: verdana;"><p>#appid: Yahoo Application/API key<br />
#context: content to extract from<br />
my $yte = WebService::Yahoo::TermExtractor-&gt;new( appid =&gt; $appid, context =&gt; $text);</p>
<p>my $terms = $yte-&gt;get_terms;</p></blockquote>
<p><span style="font-family: verdana;">Define a yahoo term extractor object with You API key and a context.  Then call the get_terms function, and it returns an array extracted terms.</span></p>
<p><span style="font-weight: bold; font-family: verdana;">Rank Term Occurrence</span></p>
<p><span style="font-family: verdana;">Next we rank the output from the last step. For each term we loop through every tweet, and check to see if it occurs. If it does we add a point to the term.</span></p>
<p><span style="font-weight: bold; font-family: verdana;">Record Term and Tweet Data</span></p>
<p><span style="font-family: verdana;">Next we save the list of terms and their counts to a historical data store. We also save the Twitter posts. These are saved so we can filter out already sampled posts.</span></p>
<p><span style="font-weight: bold; font-family: verdana;">Consume Historical Data</span></p>
<p><span style="font-family: verdana;">Finally we pull a list of the top trends, and output it as a Twitter Post. We use a simple SQL query to pull a list of trends by their occurrence in descending order. Then using Net::Twitter to post it to an account.</span></p>
<p><span style="font-style: italic; font-family: verdana;">Net::Twitter Update Code</span></p>
<blockquote style="font-family: verdana;"><p>my $result = $nt-&gt;update(&#8220;$text&#8221;);</p></blockquote>
<p><span style="font-weight: bold; font-family: verdana;">Sample Output: </span></p>
<p><span style="font-family: verdana;">Using the data store from June 25th, it produced this data from Des Moines, IA the scripts determined the following terms were ranked highly:</span></p>
<blockquote style="font-style: italic; font-family: verdana;"><p><span class="status-body"><span class="entry-content">michael jackson, farrah fawcett, iphone, risingstars, king of pop</span></span></p></blockquote>
<p><span style="font-family: verdana;">This was pretty easy to validate, because news of Micheal Jackson and Farrah Fawcett dominated news coverage. Also there was the a Republican event called Rising Stars in Iowa that week.</span></p>
<p><span style="font-family: verdana;">This is not &#8220;true&#8221; data mining it is a bastardized process. It does have some bugs, but it tends to be very accurate when definite trends appear.</span></p>
<p><a style="font-family: verdana;" href="http://desmoinestrends.homelinux.com/">Des Moines Twitter Trends.</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/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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=Finding+Local+Twitter+Trends&amp;url=http://www.dotcodedump.com/2009/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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/07/finding-local-twitter-trends/" 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/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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/07/finding-local-twitter-trends/&amp;title=Finding+Local+Twitter+Trends" 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/07/finding-local-twitter-trends/" 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+Finding+Local+Twitter+Trends+@+http://www.dotcodedump.com/2009/07/finding-local-twitter-trends/" 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/07/finding-local-twitter-trends/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You Don&#8217;t Need Tools</title>
		<link>http://www.dotcodedump.com/2009/07/you-dont-need-tools/</link>
		<comments>http://www.dotcodedump.com/2009/07/you-dont-need-tools/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 16:57:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=59</guid>
		<description><![CDATA[High quality software can be created without, advanced tools, automation, and even design patterns. Professionals in many fields besides software development are looking for latest tools, and trends to stay ahead of the competition. Allocating, learning, and implementing new tools can soon become a dangerous cycle, where an emphasis is placed on specific technologies and [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"  ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oJ89RnXa3zM/SlIgfTwD8gI/AAAAAAAAAWQ/sCNuOBEWIFw/s1600-h/homehammer.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 227px; height: 170px;" src="http://1.bp.blogspot.com/_oJ89RnXa3zM/SlIgfTwD8gI/AAAAAAAAAWQ/sCNuOBEWIFw/s320/homehammer.jpg" alt="" id="BLOGGER_PHOTO_ID_5355378629146833410" border="0" /></a></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"  >High quality software can be created without, advanced tools, automation, and even design patterns. Professionals in many fields besides software development are looking for latest tools, and trends to stay ahead of the competition. Allocating, learning, and implementing new tools can soon become a dangerous cycle, where an emphasis is placed on specific technologies and trends, rather than the product being created. One of the many side effects of using an ever changing tool set is adding entropy and complexity to a development ecosystem.<br /></span>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;">There are thousands of blogs on software development.</span><span style="font-size:100%;">  </span><span style="font-size:100%;">Many of these blogs demonstrate, promote, or even proselytize tools or methodologies. The large amount of information provides developers with a large choice of tools and ideas. Searching for proper ideas and tools is very time consuming.</span></p>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;">Software developers put knowledge in high regard. Learning is even more valuable. A good software developer should find a balance, between learning and doing. Programming is not philosophy. Making and creating is far more valuable to good programmers. Good is what works, and works well, not what is academically perfect.</span></p>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;">Finding tools and even using tools can become a distraction.</span><span style="font-size:100%;">  </span><span style="font-size:100%;">Learning when your tools are getting in the way is skill, which is underdeveloped, in many programmers. A perfect example is how programmers can get into holy flame wars over a TEXT EDITOR! This is just one example of where the meta-product, becomes more important than the product, but there are many others.</span></p>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;">Ironically I am advocating learning how to ignore programming noise, in a blog. </span></p>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;"><span style="font-weight: bold;">The Lintner Code Complexity Analysis Test</span>: </span><span style="font-size:100%;"> </span><span style="font-size:100%;">Next time you start incorporating, tools, methodologies, and other ideas into your code base. Ask yourself could an average developer jump in and get the basic flow, and meaning of the code? If no, you may want to rethink your approach.</span></p>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;">Personally I advocate simplicity, and minimalism when it makes sense, and some level of complexity is necessary. Tools create complexity. Tools require knowledge to operate, and they will change how your process works. When choosing tools, you must be aware of how they will effect your software development ecosystem over time.<br /></span></p>
<p  style="color: rgb(0, 0, 0);font-family:arial;" class="MsoNormal"><span style="font-size:100%;">Technologies, tools, ideas, or just plain noise can get in the way of creating, and making. Many times a small project or tasks can be finished the without tools, in the time it would take to set up, and use complex tool. There are many examples of high quality software that was created without code analysis tools, unit tests, and even a structured development methodologies. Next time you start working on a new project, you may want too evaluate your tools too see if they are truly valuable or just wasteful. </span></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/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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=You+Don%26%238217%3Bt+Need+Tools&amp;url=http://www.dotcodedump.com/2009/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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/07/you-dont-need-tools/" 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/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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/07/you-dont-need-tools/&amp;title=You+Don%26%238217%3Bt+Need+Tools" 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/07/you-dont-need-tools/" 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+You+Don%26%238217%3Bt+Need+Tools+@+http://www.dotcodedump.com/2009/07/you-dont-need-tools/" 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/07/you-dont-need-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Whack A Mole Development</title>
		<link>http://www.dotcodedump.com/2009/04/whack-a-mole-development/</link>
		<comments>http://www.dotcodedump.com/2009/04/whack-a-mole-development/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=56</guid>
		<description><![CDATA[Whack a Mole Development:
When making changes to a section of code, causes other bugs, sometimes recurring, to pop up.  I.E. You fix one bug, and three other bugs pop up after you release.
Have you ever worked on code where troubleshooting bugs was like playing a game whack a mole. I have worked on a [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold;">Whack a Mole Development</span>:<br />
<blockquote style="font-style: italic;">When making changes to a section of code, causes other bugs, sometimes recurring, to pop up.  I.E. You fix one bug, and three other bugs pop up after you release.</p></blockquote>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oJ89RnXa3zM/Se_a42xkDZI/AAAAAAAAAUY/2LFuwCAJI-o/s1600-h/800px-Whackamole.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 272px; height: 320px;" src="http://1.bp.blogspot.com/_oJ89RnXa3zM/Se_a42xkDZI/AAAAAAAAAUY/2LFuwCAJI-o/s320/800px-Whackamole.jpg" alt="" id="BLOGGER_PHOTO_ID_5327717554513513874" border="0" /></a>Have you ever worked on code where troubleshooting bugs was like playing a game whack a mole. I have worked on a few applications that seem to have taken this idea to heart. </p>
<p>If you encounter an application that not very stable, many time your options for dealing with it are limited. You just have to work within the constraints of the system.  Previously I have mentioned, defensive development as a technique to cope with difficult system.  This is an example of controlling what you can, the new code, and fixes you introduce into the system.</p>
<p>When dealing with difficult systems your best weapon is going to be communication.  Make everything as clear as possible.  Make your new code readable, understandable, and most importantly comment what you changed, and why you needed to change it.  Keep documentation on the system.  Document critical, and time consuming tasks.  If a process took you a week to update, document it, and it will take the next guy half as long.</p>
<p>The most important technique for dealing with difficult systems is asking questions, and making sure you understand what people are asking.  Many times &#8220;whack a mole&#8221; conditions are caused by mis-communication, and lack of knowledge.</p>
<p>Maintaining difficult systems is a reality for many developers.  This is as important, or more important of a development skill as creating new applications.  Many time maintenance programming is far more difficult than new development,  because you have to work outside of your code &#8220;comfort zone&#8221;.</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/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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=Whack+A+Mole+Development&amp;url=http://www.dotcodedump.com/2009/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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/04/whack-a-mole-development/" 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/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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/04/whack-a-mole-development/&amp;title=Whack+A+Mole+Development" 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/04/whack-a-mole-development/" 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+Whack+A+Mole+Development+@+http://www.dotcodedump.com/2009/04/whack-a-mole-development/" 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/04/whack-a-mole-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Yield Signs</title>
		<link>http://www.dotcodedump.com/2009/03/programming-yield-signs/</link>
		<comments>http://www.dotcodedump.com/2009/03/programming-yield-signs/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 14:30:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=50</guid>
		<description><![CDATA[I don&#8217;t advocate holding any one to any specific sort of rules, but I do have a general set of guidelines that I work with.  Here is a simple set of helpful coding warning signs that can save you major coding accidents, and nasty refactorings down the road if you pay attention when you [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oJ89RnXa3zM/SatTw22BajI/AAAAAAAAATw/B4rdWJ8aXPU/s1600-h/med_yield.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 233px;" src="http://2.bp.blogspot.com/_oJ89RnXa3zM/SatTw22BajI/AAAAAAAAATw/B4rdWJ8aXPU/s320/med_yield.jpg" alt="" id="BLOGGER_PHOTO_ID_5308428684607187506" border="0" /></a>I don&#8217;t advocate holding any one to any specific sort of rules, but I do have a general set of guidelines that I work with.  Here is a simple set of helpful coding warning signs that can save you major coding accidents, and nasty refactorings down the road if you pay attention when you see them.  Most of these apply generally to object oriented language, but could apply elsewhere.  Without further ado, my programming yield signs.</p>
<p><b>Recursion</b></p>
<p>If you are using recursion there may be a better way, or I like to say just because it fits into recursive paradigm, it doesn&#8217;t mean it HAS to.  There are many times I have found myself ending up doing something recursively, and regretting.  My word of warning: &#8220;It starts with a couple of recursive functions, and then you wake up 3 days later in the middle of New Mexico in playing Russian roulette with Bill Richardson.  Recursion has it&#8217;s uses, but with it you probably are going to incur a performance cost that may not be worth it.</p>
<p><b>Nesting Logic</b></p>
<p>Any time you start nesting logic beyond 1 or 2 levels this should be a warning sign that something could be a miss.  This is where debugging is generally going to start getting difficult.  If you are having difficulty coding a section, and it involves nesting of logic this a point where you need to step back and get a second opinion on how to do it.  I am by no means saying don&#8217;t do it, but watch</p>
<p><b>Really Long Functions</b></p>
<p>Writing really long functions is generally a sign of two things, either there is a lot of logic to parse through, or you may be doing something poorly.  This may also be an indicator that something else outside of your current scope is amiss.  This is generally a point to ask questions, and thoughts on how to program a specific section.</p>
<p><span style="font-weight: bold;">Maze Like Program Flow</span></p>
<p>If you are constantly searching for functions, and logic, and your program looks like a maze this is probably a point where you should take a step back.  This means that either there is some really sloppy code, or there is very high level of systematic complexity.  If the complexity does not match the task you are trying to achieve this may a point to step back and take a look at the big picture, and possibly get a different perspective on the situation.</p>
<p>There are many other sets of guidelines, many other people have created.  This a small list of warning or &#8220;yield&#8221; signs that I use regularly.  This reflects my general bias for trying to make things as simple as possible, and reducing complexity where ever possible.</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/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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=Programming+Yield+Signs&amp;url=http://www.dotcodedump.com/2009/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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/03/programming-yield-signs/" 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/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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/03/programming-yield-signs/&amp;title=Programming+Yield+Signs" 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/03/programming-yield-signs/" 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+Programming+Yield+Signs+@+http://www.dotcodedump.com/2009/03/programming-yield-signs/" 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/03/programming-yield-signs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a simple Twitter AJAX widget using Google Feeds API</title>
		<link>http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/</link>
		<comments>http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 05:32:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=47</guid>
		<description><![CDATA[I was doing some research into making API calls to Twitter using JavaScript.  The one problem I ran into was calling remote domains.  One quick solution I found was to use the Google Feed API. Google provides a really easy and simple interface for accessing feeds via JavaScript.
A quick how to:
To start out [...]]]></description>
			<content:encoded><![CDATA[<p>I was doing some research into making API calls to <a href="http://twitter.com/ianlintner">Twitter</a> using JavaScript.  The one problem I ran into was calling remote domains.  One quick solution I found was to use the Google Feed API. Google provides a really easy and simple interface for accessing feeds via JavaScript.</p>
<p><span style="font-weight: bold;">A quick how to</span>:</p>
<p>To start out you must import the api using your <a href="http://code.google.com/apis/maps/signup.html">Google API key</a>.
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>&lt;script src="http://www.google.com/jsapi?key=[Your Google API Key]"&gt;&lt;/script&gt;</code></pre>
<p>This is script was taking from the <a href="http://code.google.com/apis/ajax/playground/#load_feed">Google AJAX API Playground</a>, I just added in the call for Twitter, the full script is below.</p>
<p>First the Google feed object is instantiated with the call to the <a href="http://apiwiki.twitter.com/REST+API+Documentation">Twitter API</a> via RSS.
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>var feed = new google.feeds.Feed("http://twitter.com/statuses/user_timeline/ianlintner.rss");</code></pre>
<p>The Google feed API is great way to access and work with remote feeds, and APIs using just JavaScript.  This also an asynchronous call, so it should play well with other AJAX solutions.</p>
<p>The full listing, with my changes.
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>&lt;!--Copyright (c) 2008 Google Inc.

You are free to copy and use this sample.License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license--&gt;

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;&lt;title&gt;Google AJAX Search API Sample&lt;/title&gt;&lt;script src="http://www.google.com/jsapi?key=[Google Key]"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;/**  How to load a feed via the Feeds API.*/

google.load("feeds", "1");

// Our callback function, for when a feed is loaded.function feedLoaded(result) {  if (!result.error) {    // Grab the container we will put the results into    var container = document.getElementById("content");    container.innerHTML = '';

    // Loop through the feeds, putting the titles onto the page.    // Check out the result object for a list of properties returned in each entry.    // http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON    for (var i = 0; i &lt; result.feed.entries.length; i++) {      var entry = result.feed.entries[i];      var div = document.createElement("div");      div.appendChild(document.createTextNode(entry.title));      container.appendChild(div);    }  }}

function OnLoad() {  // Create a feed instance that will grab twitter  var feed = new google.feeds.Feed("http://twitter.com/statuses/user_timeline/ianlintner.rss");

  // Calling load sends the request off.  It requires a callback function.  feed.load(feedLoaded);}

google.setOnLoadCallback(OnLoad);&lt;/script&gt;&lt;/head&gt;&lt;body style="font-family: Arial;border: 0 none;"&gt;&lt;div id="content"&gt;Loading...&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</code></pre>
<!-- 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API&amp;url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/" 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+Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API+@+http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/" 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/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
