<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns: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/" version="2.0">

<channel>
	<title>Lazycoder</title>
	
	<link>http://www.lazycoder.com/weblog</link>
	<description />
	<lastBuildDate>Wed, 04 Nov 2009 00:14:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Lazycoder" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Dependency Injection and Inversion of Control are not rocket surgery</title>
		<link>http://www.lazycoder.com/weblog/2009/11/03/dependency-injection-and-inversion-of-control-are-not-rocket-surgery/</link>
		<comments>http://www.lazycoder.com/weblog/2009/11/03/dependency-injection-and-inversion-of-control-are-not-rocket-surgery/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 18:46:19 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[DependencyInjection]]></category>
		<category><![CDATA[DI]]></category>
		<category><![CDATA[InversionOfControl]]></category>
		<category><![CDATA[IoC]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/?p=1204</guid>
		<description><![CDATA[I see a lot of people talking about how “advanced” techniques like dependency injection and inversion of control are and how their team won’t understand either technique.
&#160;
Folks, this isn’t hard. In fact, both of these things are so simple I simply call it “using the programming language”.
&#160;
Let’s look at dependency injection.
PLAIN TEXT
C#:




public class MyClass


&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>I see a lot of people talking about how “advanced” techniques like dependency injection and inversion of control are and how their team won’t understand either technique.</p>
<p>&#160;</p>
<p>Folks, this isn’t hard. In fact, both of these things are so simple I simply call it “using the programming language”.</p>
<p>&#160;</p>
<p>Let’s look at dependency injection.</p>
<div class="igBar"><span id="lcsharp-5"><a href="#" onclick="javascript:showCodeTxt('csharp-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-5">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> MyClass</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">private</span> DataTableReader _reader;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">public</span> MyClass<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _reader = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DataTableReader<span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DataTable<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> DoStuffWithTheReader<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span>_reader.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//do fun stuff with the reader.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>See the reader variable? That's a dependency. You have to have it in there to do fun things later on. But we have to create it ourselves, which is one more thing that we have to do in our class constructor. In reality we also have to populate the DataTable. So what if we make the reader variable constructor parameter so that another class can do the work of creating the DataTable and the reader?</p>
<div class="igBar"><span id="lcsharp-6"><a href="#" onclick="javascript:showCodeTxt('csharp-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-6">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> MyClass</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">private</span> DataTableReader _reader;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">public</span> MyClass<span style="color: #000000;">&#40;</span>DataTableReader dataTableReader<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _reader = dataTableReader;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> DoStuffWithTheReader<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span>_reader.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//do fun stuff with the reader.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
There, that's better. Now our class doesn't have to worry about creating the reader and the DataTable. This, in a nutshell, is dependency injection. It's not very complicated is it? We've made our class construction a little simpler and if we want to unit test this, we don't have to do any complicated mocking, we can just new up our own DataTableReader instance and populate it with whatever test data we want. If you run into any funny looking data in the DoStuffWithTheReader method, you know that you don't have to look in this class at all to see where the funny data is coming from, only in whatever method is creating this class and passing in the DataTableReader.</p>
<p>Now is there anyone who thinks that developers on their team would have trouble understanding passing in a parameter? Should they really be a developer if they do?<br />
<img align="right" src="http://www.lazycoder.com/weblog/wp-content/uploads/2009/11/2250160502_21df89d710_m.jpg" alt="Honestly, it's not that hard." /></p>
<p>Ok, so let's look at inversion of control. The original <a href="http://martinfowler.com/bliki/InversionOfControl.html">definition of inversion of control</a> I read was by Martin Fowler:</p>
<blockquote><p>There's a big difference now in the flow of control between these programs - in particular the control of when the process_name and process_quest methods are called. In the command line form I control when these methods are called, but in the window example I don't. Instead I hand control over to the windowing system (with the Tk.mainloop command). It then decides when to call my methods, based on the bindings I made when creating the form. The control is inverted - it calls me rather me calling the framework. This phenomenon is Inversion of Control (also known as the Hollywood Principle - "Don't call us, we'll call you").</p></blockquote>
<p>If you look at the previous example, you'll see that we have already inverted the control a bit just by using dependency injection. But the class still has a degree of control over WHAT concrete object is created, in this case a DataTableReader. What if we need to switch over to a SqlDataReader or an OleDbDataReader? Well, we could create three other classes that all take the specific type of data reader we might want to use. But that's a bad idea, you end up with the same logic spread all over the place. Instead we can use the IDataReader interface that all three classes implement.</p>
<div class="igBar"><span id="lcsharp-7"><a href="#" onclick="javascript:showCodeTxt('csharp-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-7">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> MyClass</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">private</span> IDataReader _reader;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">public</span> MyClass<span style="color: #000000;">&#40;</span>IDataReader dataTableReader<span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _reader = dataTableReader;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> DoStuffWithTheReader<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span>_reader.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//do fun stuff with the reader.</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Now our class not only doesn't have to worry about creating the DataTableReader, it doesn't even really care if it gets a DataTableReader at all. All it cares about is that the reader is referencing something that implements the IDataReader interface. This is a <a href="http://www.martinfowler.com/articles/injection.html#InversionOfControl">type of inversion of control</a>. Most of the time people get confused between inversion of control and a container that enables inversion of control and dependency injection (like <a href="http://ninject.org/">Ninject</a>, <a href="http://structuremap.sourceforge.net/">StructureMap</a> or <a href="http://www.codeplex.com/unity/">Unity</a>). You don't have to use a container to utilize these two techniques, it just makes it a little easier.</p>
<p>update:Also check out this great post "<a href="http://hadihariri.com/blogengine/post/2009/10/29/Ite28099s-all-about-the-delivery.aspx">It’s all about the delivery</a>" </p>
<p>update: I mistakingly thought it was hard to do D.I. in Python due to the <a href="http://www.network-theory.co.uk/docs/pytut/Inheritance.html">inheritance mechanism in Python</a>. Turns out, it's just as easy.</p>
<div class="igBar"><span id="lpython-8"><a href="#" onclick="javascript:showCodeTxt('python-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PYTHON:</span>
<div id="python-8">
<div class="python">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff7700;font-weight:bold;">class</span> MyClass<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, dataTableReader<span style="color: black;">&#41;</span>:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>._reader = dataTableReader</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> DoStuffWithTheReader<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">while</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>._reader.<span style="color: black;">Read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">#Do Fun Stuff with the reader.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>._reader.<span style="color: black;">item</span><span style="color: black;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;notes=I%20see%20a%20lot%20of%20people%20talking%20about%20how%20%E2%80%9Cadvanced%E2%80%9D%20techniques%20like%20dependency%20injection%20and%20inversion%20of%20control%20are%20and%20how%20their%20team%20won%E2%80%99t%20understand%20either%20technique.%20%20%26%23160%3B%20%20Folks%2C%20this%20isn%E2%80%99t%20hard.%20In%20fact%2C%20both%20of%20these%20things%20are%20so%20s" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;bodytext=I%20see%20a%20lot%20of%20people%20talking%20about%20how%20%E2%80%9Cadvanced%E2%80%9D%20techniques%20like%20dependency%20injection%20and%20inversion%20of%20control%20are%20and%20how%20their%20team%20won%E2%80%99t%20understand%20either%20technique.%20%20%26%23160%3B%20%20Folks%2C%20this%20isn%E2%80%99t%20hard.%20In%20fact%2C%20both%20of%20these%20things%20are%20so%20s" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;source=Lazycoder+&amp;summary=I%20see%20a%20lot%20of%20people%20talking%20about%20how%20%E2%80%9Cadvanced%E2%80%9D%20techniques%20like%20dependency%20injection%20and%20inversion%20of%20control%20are%20and%20how%20their%20team%20won%E2%80%99t%20understand%20either%20technique.%20%20%26%23160%3B%20%20Folks%2C%20this%20isn%E2%80%99t%20hard.%20In%20fact%2C%20both%20of%20these%20things%20are%20so%20s" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;t=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;t=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;title=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;selection=I%20see%20a%20lot%20of%20people%20talking%20about%20how%20%E2%80%9Cadvanced%E2%80%9D%20techniques%20like%20dependency%20injection%20and%20inversion%20of%20control%20are%20and%20how%20their%20team%20won%E2%80%99t%20understand%20either%20technique.%20%20%26%23160%3B%20%20Folks%2C%20this%20isn%E2%80%99t%20hard.%20In%20fact%2C%20both%20of%20these%20things%20are%20so%20s" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F&amp;t=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery&amp;s=I%20see%20a%20lot%20of%20people%20talking%20about%20how%20%E2%80%9Cadvanced%E2%80%9D%20techniques%20like%20dependency%20injection%20and%20inversion%20of%20control%20are%20and%20how%20their%20team%20won%E2%80%99t%20understand%20either%20technique.%20%20%26%23160%3B%20%20Folks%2C%20this%20isn%E2%80%99t%20hard.%20In%20fact%2C%20both%20of%20these%20things%20are%20so%20s" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Dependency%20Injection%20and%20Inversion%20of%20Control%20are%20not%20rocket%20surgery%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F11%2F03%2Fdependency-injection-and-inversion-of-control-are-not-rocket-surgery%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=-Fdq7-9V8a8:y0SDTnwggPU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=-Fdq7-9V8a8:y0SDTnwggPU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=-Fdq7-9V8a8:y0SDTnwggPU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=-Fdq7-9V8a8:y0SDTnwggPU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=-Fdq7-9V8a8:y0SDTnwggPU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=-Fdq7-9V8a8:y0SDTnwggPU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=-Fdq7-9V8a8:y0SDTnwggPU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=-Fdq7-9V8a8:y0SDTnwggPU:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/11/03/dependency-injection-and-inversion-of-control-are-not-rocket-surgery/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Agile practices do not address technical complexity</title>
		<link>http://www.lazycoder.com/weblog/2009/10/29/agile-practices-do-not-address-technical-complexity/</link>
		<comments>http://www.lazycoder.com/weblog/2009/10/29/agile-practices-do-not-address-technical-complexity/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 14:24:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/?p=1192</guid>
		<description><![CDATA[So, first go read Ted Neward “Agile is treating the symptoms, not the disease.” and Phill Haack “Software Externalities” then read the Agile Manifesto
At some point that very simple manifesto turned into a set of “must have” tools, technologies, methodologies, and processes. Which I think defeats the purpose. You have to look at each tool [...]]]></description>
			<content:encoded><![CDATA[<p>So, first go read Ted Neward “<a href="http://blogs.tedneward.com/CommentView,guid,53f9b658-3b27-4f1a-b93e-14d3a57a8ec1.aspx" target="_blank">Agile is treating the symptoms, not the disease.</a>” and Phill Haack “<a href="http://haacked.com/archive/2009/10/13/software-externalities.aspx" target="_blank">Software Externalities</a>” then read the <a href="http://agilemanifesto.org/" target="_blank">Agile Manifesto</a></p>
<p>At some point that very simple manifesto turned into a set of “must have” tools, technologies, methodologies, and processes. Which I think defeats the purpose. You have to look at each tool and methodology and think “how does this help me build better software for my user?”</p>
<p>There is a very important paragraph at the bottom.</p>
<blockquote><p>That is, while there is value in the items on the right, we value the items on the left more.</p>
<p>&#160;</p>
</blockquote>
<p>So let’s go through each line.</p>
<p>&#160;</p>
<blockquote><p><strong>Individuals and interactions</strong> over processes and tools</p>
</blockquote>
<p>These “story cards” are one way to increase the communication between individuals during their interactions. Gigantic requirement specifications don’t do anyone except other software engineers any good. The daily standup meeting that a lot of agile practioners adopt is one way to keep the team up to date and find out about possible problems as soon as possible.</p>
<p>&#160;</p>
<blockquote><p><strong>Working software</strong> over comprehensive documentation</p>
</blockquote>
<p>No matter what, you’d rather have an application that meets the users needs and helps them get stuff done easier than they could before you wrote their application. Chances are, if you need to write a lot of documentation, you’ll have to maintain it also. Most of the time documentation is only for other developers that will have to come along behind you and change the software to meet new user needs. What better way to communicate what the software is supposed to do than a bunch of executable code, e.g. unit/scenario/integration tests, that ensures the application does what it says it can do?</p>
<blockquote><p><strong>Customer collaboration</strong> over contract negotiation</p>
</blockquote>
<p> By adopting techniques and tools that allow you to change direction quickly and confidently, you don’t need to “lock down requirements” before you start developing. If the requirements change, you’re code base and tools are flexible enough to handle the change. That’s where principles like <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod" target="_blank">S.O.L.I.D.</a> come into play, they make your code base more flexible and responsive to change.</p>
<blockquote><p><strong>Responding to change</strong> over following a plan</p>
</blockquote>
<p>How can you ensure that, as you change your software to respond to changes in the business or requirements, your software doesn’t break? Automated testing is one method. Continuous integration builds are another. These tools aren’t used by agile practitioners&#160; because they want to feel cool, they are used to help them better respond to change. The story cards and backlog also help. You can re-prioritize your backlog to meet the businesses current needs. Since your iterations are short, and your stories are small, the overall impact to changing direction is minimized.</p>
<p>&#160;</p>
<p>The fact that software development is complex, and that there is a lot of new things to learn. That there is ALWAYS something new to learn about software development, has <strong>NOTHING</strong> to do with agile practices. You’d have exactly the same problem keeping up if you practice agile or not. You might have an internal process where you work that allows you to respond to change quickly, it may even involve Microsoft Access!</p>
<p>There was a great post that <a href="http://tirania.org/blog/" target="_blank">Miguel De Icaza</a> linked to on Twitter. “<a href="http://www.tinyrevolution.com/mt/archives/003097.html" target="_blank">Every Ideology is Right</a>”</p>
<blockquote><p>What I mean by &quot;right&quot; is that is each one is responding to a genuine problem within human existence. And their prescriptions for how to deal with that problem &quot;work,&quot; at least in the short term in limited circumstances.</p>
<p>Obviously, there are unforeseen consequences because each ideology looks at a limited aspect of reality, and then tries to apply its solution for that part of reality to ALL of reality. The important thing is to try to have your ideology &quot;look&quot; at as much of reality as possible.</p>
</blockquote>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;notes=So%2C%20first%20go%20read%20Ted%20Neward%20%E2%80%9CAgile%20is%20treating%20the%20symptoms%2C%20not%20the%20disease.%E2%80%9D%20and%20Phill%20Haack%20%E2%80%9CSoftware%20Externalities%E2%80%9D%20then%20read%20the%20Agile%20Manifesto%20%20At%20some%20point%20that%20very%20simple%20manifesto%20turned%20into%20a%20set%20of%20%E2%80%9Cmust%20have%E2%80%9D%20tools%2C%20techn" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;bodytext=So%2C%20first%20go%20read%20Ted%20Neward%20%E2%80%9CAgile%20is%20treating%20the%20symptoms%2C%20not%20the%20disease.%E2%80%9D%20and%20Phill%20Haack%20%E2%80%9CSoftware%20Externalities%E2%80%9D%20then%20read%20the%20Agile%20Manifesto%20%20At%20some%20point%20that%20very%20simple%20manifesto%20turned%20into%20a%20set%20of%20%E2%80%9Cmust%20have%E2%80%9D%20tools%2C%20techn" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;source=Lazycoder+&amp;summary=So%2C%20first%20go%20read%20Ted%20Neward%20%E2%80%9CAgile%20is%20treating%20the%20symptoms%2C%20not%20the%20disease.%E2%80%9D%20and%20Phill%20Haack%20%E2%80%9CSoftware%20Externalities%E2%80%9D%20then%20read%20the%20Agile%20Manifesto%20%20At%20some%20point%20that%20very%20simple%20manifesto%20turned%20into%20a%20set%20of%20%E2%80%9Cmust%20have%E2%80%9D%20tools%2C%20techn" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;t=Agile%20practices%20do%20not%20address%20technical%20complexity" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;t=Agile%20practices%20do%20not%20address%20technical%20complexity" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;title=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;selection=So%2C%20first%20go%20read%20Ted%20Neward%20%E2%80%9CAgile%20is%20treating%20the%20symptoms%2C%20not%20the%20disease.%E2%80%9D%20and%20Phill%20Haack%20%E2%80%9CSoftware%20Externalities%E2%80%9D%20then%20read%20the%20Agile%20Manifesto%20%20At%20some%20point%20that%20very%20simple%20manifesto%20turned%20into%20a%20set%20of%20%E2%80%9Cmust%20have%E2%80%9D%20tools%2C%20techn" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F&amp;t=Agile%20practices%20do%20not%20address%20technical%20complexity&amp;s=So%2C%20first%20go%20read%20Ted%20Neward%20%E2%80%9CAgile%20is%20treating%20the%20symptoms%2C%20not%20the%20disease.%E2%80%9D%20and%20Phill%20Haack%20%E2%80%9CSoftware%20Externalities%E2%80%9D%20then%20read%20the%20Agile%20Manifesto%20%20At%20some%20point%20that%20very%20simple%20manifesto%20turned%20into%20a%20set%20of%20%E2%80%9Cmust%20have%E2%80%9D%20tools%2C%20techn" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Agile%20practices%20do%20not%20address%20technical%20complexity%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F29%2Fagile-practices-do-not-address-technical-complexity%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=zn729wFDEEE:jruqMfab9z0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=zn729wFDEEE:jruqMfab9z0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=zn729wFDEEE:jruqMfab9z0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=zn729wFDEEE:jruqMfab9z0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=zn729wFDEEE:jruqMfab9z0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=zn729wFDEEE:jruqMfab9z0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=zn729wFDEEE:jruqMfab9z0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=zn729wFDEEE:jruqMfab9z0:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/10/29/agile-practices-do-not-address-technical-complexity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A theory about the  iPhone app store</title>
		<link>http://www.lazycoder.com/weblog/2009/10/28/a-theory-about-the-iphone-app-store/</link>
		<comments>http://www.lazycoder.com/weblog/2009/10/28/a-theory-about-the-iphone-app-store/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 17:35:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[AppStore]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/2009/10/28/a-theory-about-the-iphone-app-store/</guid>
		<description><![CDATA[My theory is that in 2 years there will be so many applications in the iPhone app store that it will be impossible to achieve success. That only the early developers will find any measure of success. 
&#160;
I say this because it seems to be the way the Apple software ecosystem works. There are a [...]]]></description>
			<content:encoded><![CDATA[<p>My theory is that in 2 years there will be so many applications in the iPhone app store that it will be impossible to achieve success. That only the early developers will find any measure of success. </p>
<p>&#160;</p>
<p>I say this because it seems to be the way the Apple software ecosystem works. There are a few applications, written by developers who have been working on the Apple platform for a great number of years, that are constantly recommended and very successful.</p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;notes=My%20theory%20is%20that%20in%202%20years%20there%20will%20be%20so%20many%20applications%20in%20the%20iPhone%20app%20store%20that%20it%20will%20be%20impossible%20to%20achieve%20success.%20That%20only%20the%20early%20developers%20will%20find%20any%20measure%20of%20success.%20%20%20%26%23160%3B%20%20I%20say%20this%20because%20it%20seems%20to%20be%20the%20wa" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;bodytext=My%20theory%20is%20that%20in%202%20years%20there%20will%20be%20so%20many%20applications%20in%20the%20iPhone%20app%20store%20that%20it%20will%20be%20impossible%20to%20achieve%20success.%20That%20only%20the%20early%20developers%20will%20find%20any%20measure%20of%20success.%20%20%20%26%23160%3B%20%20I%20say%20this%20because%20it%20seems%20to%20be%20the%20wa" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;source=Lazycoder+&amp;summary=My%20theory%20is%20that%20in%202%20years%20there%20will%20be%20so%20many%20applications%20in%20the%20iPhone%20app%20store%20that%20it%20will%20be%20impossible%20to%20achieve%20success.%20That%20only%20the%20early%20developers%20will%20find%20any%20measure%20of%20success.%20%20%20%26%23160%3B%20%20I%20say%20this%20because%20it%20seems%20to%20be%20the%20wa" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;t=A%20theory%20about%20the%20%20iPhone%20app%20store" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;t=A%20theory%20about%20the%20%20iPhone%20app%20store" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;title=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;selection=My%20theory%20is%20that%20in%202%20years%20there%20will%20be%20so%20many%20applications%20in%20the%20iPhone%20app%20store%20that%20it%20will%20be%20impossible%20to%20achieve%20success.%20That%20only%20the%20early%20developers%20will%20find%20any%20measure%20of%20success.%20%20%20%26%23160%3B%20%20I%20say%20this%20because%20it%20seems%20to%20be%20the%20wa" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F&amp;t=A%20theory%20about%20the%20%20iPhone%20app%20store&amp;s=My%20theory%20is%20that%20in%202%20years%20there%20will%20be%20so%20many%20applications%20in%20the%20iPhone%20app%20store%20that%20it%20will%20be%20impossible%20to%20achieve%20success.%20That%20only%20the%20early%20developers%20will%20find%20any%20measure%20of%20success.%20%20%20%26%23160%3B%20%20I%20say%20this%20because%20it%20seems%20to%20be%20the%20wa" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=A%20theory%20about%20the%20%20iPhone%20app%20store%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F28%2Fa-theory-about-the-iphone-app-store%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gn4zVUW0GeY:Da9gyg_SUfw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gn4zVUW0GeY:Da9gyg_SUfw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=gn4zVUW0GeY:Da9gyg_SUfw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gn4zVUW0GeY:Da9gyg_SUfw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=gn4zVUW0GeY:Da9gyg_SUfw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gn4zVUW0GeY:Da9gyg_SUfw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gn4zVUW0GeY:Da9gyg_SUfw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=gn4zVUW0GeY:Da9gyg_SUfw:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/10/28/a-theory-about-the-iphone-app-store/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Great Presentaton about software development</title>
		<link>http://www.lazycoder.com/weblog/2009/10/26/great-presentaton-about-software-development/</link>
		<comments>http://www.lazycoder.com/weblog/2009/10/26/great-presentaton-about-software-development/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 23:19:23 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/?p=1195</guid>
		<description><![CDATA[Hopefully someone will post video of the presenter giving the presentation to fill in the gaps.
Bits of Evidence
View more presentations from Greg Wilson.




Share and Enjoy:


	
	
	
	
	
	
	
	
	
	
	
	
	
	


]]></description>
			<content:encoded><![CDATA[<p>Hopefully someone will post video of the presenter giving the presentation to fill in the gaps.</p>
<div style="width:425px;text-align:left" id="__ss_2338367"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/gvwilson/bits-of-evidence-2338367" title="Bits of Evidence">Bits of Evidence</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=devdays-2009-091024190903-phpapp01&#038;rel=0&#038;stripped_title=bits-of-evidence-2338367" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=devdays-2009-091024190903-phpapp01&#038;rel=0&#038;stripped_title=bits-of-evidence-2338367" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/gvwilson">Greg Wilson</a>.</div>
</div>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development&amp;notes=Hopefully%20someone%20will%20post%20video%20of%20the%20presenter%20giving%20the%20presentation%20to%20fill%20in%20the%20gaps.%0D%0A%0D%0ABits%20of%20EvidenceView%20more%20presentations%20from%20Greg%20Wilson." title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development&amp;bodytext=Hopefully%20someone%20will%20post%20video%20of%20the%20presenter%20giving%20the%20presentation%20to%20fill%20in%20the%20gaps.%0D%0A%0D%0ABits%20of%20EvidenceView%20more%20presentations%20from%20Greg%20Wilson." title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development&amp;source=Lazycoder+&amp;summary=Hopefully%20someone%20will%20post%20video%20of%20the%20presenter%20giving%20the%20presentation%20to%20fill%20in%20the%20gaps.%0D%0A%0D%0ABits%20of%20EvidenceView%20more%20presentations%20from%20Greg%20Wilson." title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;t=Great%20Presentaton%20about%20software%20development" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Great%20Presentaton%20about%20software%20development&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;t=Great%20Presentaton%20about%20software%20development" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Great%20Presentaton%20about%20software%20development&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;title=Great%20Presentaton%20about%20software%20development&amp;selection=Hopefully%20someone%20will%20post%20video%20of%20the%20presenter%20giving%20the%20presentation%20to%20fill%20in%20the%20gaps.%0D%0A%0D%0ABits%20of%20EvidenceView%20more%20presentations%20from%20Greg%20Wilson." title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F&amp;t=Great%20Presentaton%20about%20software%20development&amp;s=Hopefully%20someone%20will%20post%20video%20of%20the%20presenter%20giving%20the%20presentation%20to%20fill%20in%20the%20gaps.%0D%0A%0D%0ABits%20of%20EvidenceView%20more%20presentations%20from%20Greg%20Wilson." title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Great%20Presentaton%20about%20software%20development%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F26%2Fgreat-presentaton-about-software-development%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=OXvMWYcOYrw:wosNvoBkAHY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=OXvMWYcOYrw:wosNvoBkAHY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=OXvMWYcOYrw:wosNvoBkAHY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=OXvMWYcOYrw:wosNvoBkAHY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=OXvMWYcOYrw:wosNvoBkAHY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=OXvMWYcOYrw:wosNvoBkAHY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=OXvMWYcOYrw:wosNvoBkAHY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=OXvMWYcOYrw:wosNvoBkAHY:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/10/26/great-presentaton-about-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How far behind are Microsoft developer frameworks in terms of design?</title>
		<link>http://www.lazycoder.com/weblog/2009/10/23/how-far-behind-are-microsoft-developer-frameworks-in-terms-of-design/</link>
		<comments>http://www.lazycoder.com/weblog/2009/10/23/how-far-behind-are-microsoft-developer-frameworks-in-terms-of-design/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 16:54:04 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[GoF]]></category>
		<category><![CDATA[patterns]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/2009/10/23/how-far-behind-are-microsoft-developer-frameworks-in-terms-of-design/</guid>
		<description><![CDATA[From the article “Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson”
&#160;
Erich Gamma: Yes, and it is funny that you mention the iPhone. The iPhone SDK is based on the NeXTStep object-oriented frameworks like the AppKit. It already existed when we wrote Design Patterns 15 years ago and was [...]]]></description>
			<content:encoded><![CDATA[<p>From the article “<a href="http://www.informit.com/articles/article.aspx?p=1404056" target="_blank">Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson</a>”</p>
<p>&#160;</p>
<blockquote><p><strong>Erich Gamma:</strong> Yes, and it is funny that you mention the iPhone. <strong>The iPhone SDK is based on the NeXTStep object-oriented frameworks like the AppKit</strong>. It already existed when we wrote <em>Design Patterns</em> <strong>15 years ago</strong> and was one source of inspiration.<strong> We actually refer to this framework in several of our patterns</strong>: Adapter, Bridge, Proxy, and Chain of Responsibility.</p>
<p><strong>Richard:</strong> <strong>Which is a great example of the enduring nature of good design, and how it survives different technical manifestations.</strong></p>
</blockquote>
<p>&#160;</p>
<p>Emphasis mine.</p>
<p>In the Microsoft developer community, we are just now getting around to implementing patterns like MVC, Adapter, and Observer. People still argue over whether or not the MVC pattern is “necessary” to build a “working application”.</p>
<p>&#160;</p>
<p>I guess it depends on whether or not you like good design?</p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;notes=From%20the%20article%20%E2%80%9CDesign%20Patterns%2015%20Years%20Later%3A%20An%20Interview%20with%20Erich%20Gamma%2C%20Richard%20Helm%2C%20and%20Ralph%20Johnson%E2%80%9D%20%20%26%23160%3B%20%20%20%20%20Erich%20Gamma%3A%20Yes%2C%20and%20it%20is%20funny%20that%20you%20mention%20the%20iPhone.%20The%20iPhone%20SDK%20is%20based%20on%20the%20NeXTStep%20object-oriented%20f" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;bodytext=From%20the%20article%20%E2%80%9CDesign%20Patterns%2015%20Years%20Later%3A%20An%20Interview%20with%20Erich%20Gamma%2C%20Richard%20Helm%2C%20and%20Ralph%20Johnson%E2%80%9D%20%20%26%23160%3B%20%20%20%20%20Erich%20Gamma%3A%20Yes%2C%20and%20it%20is%20funny%20that%20you%20mention%20the%20iPhone.%20The%20iPhone%20SDK%20is%20based%20on%20the%20NeXTStep%20object-oriented%20f" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;source=Lazycoder+&amp;summary=From%20the%20article%20%E2%80%9CDesign%20Patterns%2015%20Years%20Later%3A%20An%20Interview%20with%20Erich%20Gamma%2C%20Richard%20Helm%2C%20and%20Ralph%20Johnson%E2%80%9D%20%20%26%23160%3B%20%20%20%20%20Erich%20Gamma%3A%20Yes%2C%20and%20it%20is%20funny%20that%20you%20mention%20the%20iPhone.%20The%20iPhone%20SDK%20is%20based%20on%20the%20NeXTStep%20object-oriented%20f" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;t=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;t=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;title=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;selection=From%20the%20article%20%E2%80%9CDesign%20Patterns%2015%20Years%20Later%3A%20An%20Interview%20with%20Erich%20Gamma%2C%20Richard%20Helm%2C%20and%20Ralph%20Johnson%E2%80%9D%20%20%26%23160%3B%20%20%20%20%20Erich%20Gamma%3A%20Yes%2C%20and%20it%20is%20funny%20that%20you%20mention%20the%20iPhone.%20The%20iPhone%20SDK%20is%20based%20on%20the%20NeXTStep%20object-oriented%20f" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F&amp;t=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F&amp;s=From%20the%20article%20%E2%80%9CDesign%20Patterns%2015%20Years%20Later%3A%20An%20Interview%20with%20Erich%20Gamma%2C%20Richard%20Helm%2C%20and%20Ralph%20Johnson%E2%80%9D%20%20%26%23160%3B%20%20%20%20%20Erich%20Gamma%3A%20Yes%2C%20and%20it%20is%20funny%20that%20you%20mention%20the%20iPhone.%20The%20iPhone%20SDK%20is%20based%20on%20the%20NeXTStep%20object-oriented%20f" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=How%20far%20behind%20are%20Microsoft%20developer%20frameworks%20in%20terms%20of%20design%3F%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F23%2Fhow-far-behind-are-microsoft-developer-frameworks-in-terms-of-design%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=ChOO-PjEYLk:aGCNA_t2fTA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=ChOO-PjEYLk:aGCNA_t2fTA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=ChOO-PjEYLk:aGCNA_t2fTA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=ChOO-PjEYLk:aGCNA_t2fTA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=ChOO-PjEYLk:aGCNA_t2fTA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=ChOO-PjEYLk:aGCNA_t2fTA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=ChOO-PjEYLk:aGCNA_t2fTA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=ChOO-PjEYLk:aGCNA_t2fTA:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/10/23/how-far-behind-are-microsoft-developer-frameworks-in-terms-of-design/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Mocks versus stubs and fakes</title>
		<link>http://www.lazycoder.com/weblog/2009/10/12/mocks-versus-stubs-and-fakes/</link>
		<comments>http://www.lazycoder.com/weblog/2009/10/12/mocks-versus-stubs-and-fakes/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 16:59:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[testing mocking]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/2009/10/12/mocks-versus-stubs-and-fakes/</guid>
		<description><![CDATA[I dislike using mocks  I dislike using dynamic mocking/stubbing frameworks. because it means my tests have an extra dependency beyond just the SUT (System Under Test). I often find myself spending more time getting the mock to work correctly rather than my app code. The lambada + generics based Mock suites (Moq, RhinoMocks, etc), [...]]]></description>
			<content:encoded><![CDATA[<p><del datetime="2009-10-13T20:43:30+00:00">I dislike using mocks </del> I dislike using dynamic mocking/stubbing frameworks. because it means my tests have an extra dependency beyond just the SUT (System Under Test). I often find myself spending more time getting the mock to work correctly rather than my app code. The lambada + generics based Mock suites (Moq, RhinoMocks, etc), IMO, complicate the test and make them unreadable in some situations. </p>
<p>&#160;</p>
<p>Compare the two examples in this post. One uses RhinoMocks to create a stub of IDataReader and the other uses the DataTableReader to create a stub for the test. Which example is simpler and has less chance to fail due to the stub?</p>
<p>&#160;</p>
<p>&#160;<a href="http://www.lazycoder.com/weblog/2008/12/12/mocking-idatareader-using-rhinomocks-35/">http://www.lazycoder.com/weblog/2008/12/12/mocking-idatareader-using-rhinomocks-35/</a> </p>
<p>Using RhinoMocks </p>
<div class="igBar"><span id="lcsharp-11"><a href="#" onclick="javascript:showCodeTxt('csharp-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-11">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">IDataReader reader = MockRepository.<span style="color: #0000FF;">GenerateStub</span>&lt;IDataReader&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reader.<span style="color: #0000FF;">Stub</span><span style="color: #000000;">&#40;</span>x =&gt; x.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0600FF;">Return</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Repeat</span>.<span style="color: #0000FF;">Times</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;color:#800000;">1</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reader.<span style="color: #0000FF;">Stub</span><span style="color: #000000;">&#40;</span>x =&gt; x.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0600FF;">Return</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">false</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reader.<span style="color: #0000FF;">Stub</span><span style="color: #000000;">&#40;</span>x =&gt; x<span style="color: #000000;">&#91;</span><span style="color: #808080;">"ID"</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0600FF;">Return</span><span style="color: #000000;">&#40;</span>Guid.<span style="color: #0000FF;">Empty</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reader.<span style="color: #0000FF;">Stub</span><span style="color: #000000;">&#40;</span>x =&gt; x<span style="color: #000000;">&#91;</span><span style="color: #808080;">"FullName"</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0600FF;">Return</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"Test User"</span><span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Using DataTableReader</p>
<div class="igBar"><span id="lcsharp-12"><a href="#" onclick="javascript:showCodeTxt('csharp-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">C#:</span>
<div id="csharp-12">
<div class="csharp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">DataTable table = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DataTable<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DataRow row = table.<span style="color: #0000FF;">NewRow</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DataColumn<span style="color: #000000;">&#40;</span><span style="color: #808080;">"ID"</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DataColumn<span style="color: #000000;">&#40;</span><span style="color: #808080;">"FullName"</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row<span style="color: #000000;">&#91;</span><span style="color: #808080;">"DirectoryUserID"</span><span style="color: #000000;">&#93;</span> = Guid.<span style="color: #0000FF;">Empty</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row<span style="color: #000000;">&#91;</span><span style="color: #808080;">"FullName"</span><span style="color: #000000;">&#93;</span> = <span style="color: #808080;">"Test User"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table.<span style="color: #0000FF;">Rows</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>row<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DataTableReader reader = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DataTableReader<span style="color: #000000;">&#40;</span>table<span style="color: #000000;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Stubs/Fakes allow me more control over HOW the test fails and results in a test/fixture that is easier to read. I'm not saying that mocks aren't useful in certain situations, but I would favor a stub over a mock IMO, your test should only fail because of the code it is testing, not because of a mock. </p>
<p>&#160;</p>
<p>Although it is fun to say &quot;Mock ME? No mock YOU!&quot;.</p>
<p>update: I forgot to link to Rob's post that inspired this post. "<a href="http://blog.wekeroad.com/cool-kids/using-dependency-injection-and-mocking-for-testability/">Using Dependency Injection and Mocking For Testability</a>"</p>
<p>update to the update: <a href="http://codebetter.com/blogs/jeremy.miller/default.aspx">Jeremy Miller</a> and <a href="http://blog.vuscode.com/">Nikola Malovic</a> both pointed out that I'm using the terminology incorrectly. It turns out I don't specifically hate mocks themselves, I dislike use dynamic mocking/stubbing frameworks due to the extra dependency they introduce into my tests. Thanks for the corrections. Back to reading Fowler for me!</p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes&amp;notes=I%20dislike%20using%20mocks%20%20I%20dislike%20using%20dynamic%20mocking%2Fstubbing%20frameworks.%20because%20it%20means%20my%20tests%20have%20an%20extra%20dependency%20beyond%20just%20the%20SUT%20%28System%20Under%20Test%29.%20I%20often%20find%20myself%20spending%20more%20time%20getting%20the%20mock%20to%20work%20correctly%20rather%20t" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes&amp;bodytext=I%20dislike%20using%20mocks%20%20I%20dislike%20using%20dynamic%20mocking%2Fstubbing%20frameworks.%20because%20it%20means%20my%20tests%20have%20an%20extra%20dependency%20beyond%20just%20the%20SUT%20%28System%20Under%20Test%29.%20I%20often%20find%20myself%20spending%20more%20time%20getting%20the%20mock%20to%20work%20correctly%20rather%20t" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes&amp;source=Lazycoder+&amp;summary=I%20dislike%20using%20mocks%20%20I%20dislike%20using%20dynamic%20mocking%2Fstubbing%20frameworks.%20because%20it%20means%20my%20tests%20have%20an%20extra%20dependency%20beyond%20just%20the%20SUT%20%28System%20Under%20Test%29.%20I%20often%20find%20myself%20spending%20more%20time%20getting%20the%20mock%20to%20work%20correctly%20rather%20t" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;t=Mocks%20versus%20stubs%20and%20fakes" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Mocks%20versus%20stubs%20and%20fakes&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;t=Mocks%20versus%20stubs%20and%20fakes" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Mocks%20versus%20stubs%20and%20fakes&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;title=Mocks%20versus%20stubs%20and%20fakes&amp;selection=I%20dislike%20using%20mocks%20%20I%20dislike%20using%20dynamic%20mocking%2Fstubbing%20frameworks.%20because%20it%20means%20my%20tests%20have%20an%20extra%20dependency%20beyond%20just%20the%20SUT%20%28System%20Under%20Test%29.%20I%20often%20find%20myself%20spending%20more%20time%20getting%20the%20mock%20to%20work%20correctly%20rather%20t" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F&amp;t=Mocks%20versus%20stubs%20and%20fakes&amp;s=I%20dislike%20using%20mocks%20%20I%20dislike%20using%20dynamic%20mocking%2Fstubbing%20frameworks.%20because%20it%20means%20my%20tests%20have%20an%20extra%20dependency%20beyond%20just%20the%20SUT%20%28System%20Under%20Test%29.%20I%20often%20find%20myself%20spending%20more%20time%20getting%20the%20mock%20to%20work%20correctly%20rather%20t" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Mocks%20versus%20stubs%20and%20fakes%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F12%2Fmocks-versus-stubs-and-fakes%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gb2sEw6ppJc:yfhllxHWlqo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gb2sEw6ppJc:yfhllxHWlqo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=gb2sEw6ppJc:yfhllxHWlqo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gb2sEw6ppJc:yfhllxHWlqo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=gb2sEw6ppJc:yfhllxHWlqo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gb2sEw6ppJc:yfhllxHWlqo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=gb2sEw6ppJc:yfhllxHWlqo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=gb2sEw6ppJc:yfhllxHWlqo:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/10/12/mocks-versus-stubs-and-fakes/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Monotouch Has an Uphill battle ahead</title>
		<link>http://www.lazycoder.com/weblog/2009/10/05/monotouch-is-d-o-a/</link>
		<comments>http://www.lazycoder.com/weblog/2009/10/05/monotouch-is-d-o-a/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 17:53:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[MonoTouch]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/2009/10/05/monotouch-is-d-o-a/</guid>
		<description><![CDATA[I love me some Mono and love the Mono team, but Novell really screwed the pooch with the release of MonoTouch. It had such promise, write iPhone apps using C# instead of Objective-C. But it has some problems.

It requires XCode.&#160; - I’m not sure if they can get around this one. It seems like they [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lazycoder.com/weblog/2009/02/23/declaration-of-awesomeness-for-the-mono-compiler/" target="_blank">I love me some Mono and love the Mono team</a>, but Novell really screwed the pooch with the release of MonoTouch. It had such promise, write iPhone apps using C# instead of Objective-C. But it has some problems.</p>
<ol>
<li>I<del datetime="2009-10-05T20:55:06+00:00">t requires XCode.&#160; - I’m not sure if they can get around this one. It seems like they should be able to. All XCode does is call GCC and compile the code. My guess is that it has to do with the licensing of the iPhone SDK and/or the iPhone libraries that you can’t distribute. If you could bundle the iPhone headers, it seems to me that you could compile an iPhone app on any platform that supports GCC.</del> DOH! As Miguel reminds me in the comments, it doesn't use XCode but the iPhone simulator is only available on Intel Macs. (1)</li>
<li><a href="http://monotouch.net/Store" target="_blank">It costs 400 frickin’ dollars</a>. – So now, not only do you have to buy a Mac, pay Apple $99 per year to get in the App store (which is no guarantee) but if you want to use MonoTouch you have to pay $399 U.S. </li>
</ol>
<p>So what you have to ask your self is: Is learning Objective-C something that I really can’t/won’t do to become an iPhone developer?</p>
<p>There are a lot of benefits to developing for the iPhone using MonoTouch. Access to most of the .NET library. LINQ is available, WCF. Miguel DeIcaza has a good explanation for why Monotouch costs $400, which he'll talk about in an upcoming episode of <a href="http:\\herdingcode.com">Herding Code</a>. But I think that the price is going to really slow MonoTouch adoption.</p>
<p>(1) That's what I get for writing a blog post ahead of time and not reviewing it before it's scheduled to post.</p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;notes=I%20love%20me%20some%20Mono%20and%20love%20the%20Mono%20team%2C%20but%20Novell%20really%20screwed%20the%20pooch%20with%20the%20release%20of%20MonoTouch.%20It%20had%20such%20promise%2C%20write%20iPhone%20apps%20using%20C%23%20instead%20of%20Objective-C.%20But%20it%20has%20some%20problems.%20%20%20%20%20It%20requires%20XCode.%26%23160%3B%20-%20I%E2%80%99m%20not%20" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;bodytext=I%20love%20me%20some%20Mono%20and%20love%20the%20Mono%20team%2C%20but%20Novell%20really%20screwed%20the%20pooch%20with%20the%20release%20of%20MonoTouch.%20It%20had%20such%20promise%2C%20write%20iPhone%20apps%20using%20C%23%20instead%20of%20Objective-C.%20But%20it%20has%20some%20problems.%20%20%20%20%20It%20requires%20XCode.%26%23160%3B%20-%20I%E2%80%99m%20not%20" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;source=Lazycoder+&amp;summary=I%20love%20me%20some%20Mono%20and%20love%20the%20Mono%20team%2C%20but%20Novell%20really%20screwed%20the%20pooch%20with%20the%20release%20of%20MonoTouch.%20It%20had%20such%20promise%2C%20write%20iPhone%20apps%20using%20C%23%20instead%20of%20Objective-C.%20But%20it%20has%20some%20problems.%20%20%20%20%20It%20requires%20XCode.%26%23160%3B%20-%20I%E2%80%99m%20not%20" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;t=Monotouch%20Has%20an%20Uphill%20battle%20ahead" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;t=Monotouch%20Has%20an%20Uphill%20battle%20ahead" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;title=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;selection=I%20love%20me%20some%20Mono%20and%20love%20the%20Mono%20team%2C%20but%20Novell%20really%20screwed%20the%20pooch%20with%20the%20release%20of%20MonoTouch.%20It%20had%20such%20promise%2C%20write%20iPhone%20apps%20using%20C%23%20instead%20of%20Objective-C.%20But%20it%20has%20some%20problems.%20%20%20%20%20It%20requires%20XCode.%26%23160%3B%20-%20I%E2%80%99m%20not%20" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F&amp;t=Monotouch%20Has%20an%20Uphill%20battle%20ahead&amp;s=I%20love%20me%20some%20Mono%20and%20love%20the%20Mono%20team%2C%20but%20Novell%20really%20screwed%20the%20pooch%20with%20the%20release%20of%20MonoTouch.%20It%20had%20such%20promise%2C%20write%20iPhone%20apps%20using%20C%23%20instead%20of%20Objective-C.%20But%20it%20has%20some%20problems.%20%20%20%20%20It%20requires%20XCode.%26%23160%3B%20-%20I%E2%80%99m%20not%20" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Monotouch%20Has%20an%20Uphill%20battle%20ahead%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F10%2F05%2Fmonotouch-is-d-o-a%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=3KwMli77WuI:bGYmR6NsSdE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=3KwMli77WuI:bGYmR6NsSdE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=3KwMli77WuI:bGYmR6NsSdE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=3KwMli77WuI:bGYmR6NsSdE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=3KwMli77WuI:bGYmR6NsSdE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=3KwMli77WuI:bGYmR6NsSdE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=3KwMli77WuI:bGYmR6NsSdE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=3KwMli77WuI:bGYmR6NsSdE:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/10/05/monotouch-is-d-o-a/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Sure you’re agile, what about your QA department?</title>
		<link>http://www.lazycoder.com/weblog/2009/09/30/sure-youre-agile-what-about-your-qa-department/</link>
		<comments>http://www.lazycoder.com/weblog/2009/09/30/sure-youre-agile-what-about-your-qa-department/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 14:29:51 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/?p=1140</guid>
		<description><![CDATA[For the past 14 years I've been a software developer for money, I've noticed a trend. The QA department finds the most bugs towards the end of the release cycle. Even when I've worked in departments that are supposedly following an iterative development process.
A lot of the "bugs" revolve around "fit and polish" issues. Making [...]]]></description>
			<content:encoded><![CDATA[<p>For the past 14 years I've been a software developer for money, I've noticed a trend. The QA department finds the most bugs towards the end of the release cycle. Even when I've worked in departments that are supposedly following an iterative development process.</p>
<p>A lot of the "bugs" revolve around "fit and polish" issues. Making sure the font and wording is correct in all locations. Making sure the application looks and behaves the same across all platforms,browsers in the case of web applications. Most all requirements documents or stories include a note for the QA department to perform these checks well in advance of the final launch, yet these bugs always seem to come up and they usually are not regression bugs. </p>
<p>The places that follow an iterative cycle I've found don't really deploy after each iteration to any meaningful customers. They are all still tied to the "big launch". I think that getting the product into the hands of people who ACTUALLY care about it, rather than the ones that are just concerned about the launch, is crucial to delivering a high-quality product.</p>
<p>I'm wondering if the traditional QA department is a relic that we need to get rid of? If we move all of the testing/bug finding to the interation and fix them immediately, isn't QA relegated to mainly verifying bugs reported by customers/users?</p>
<p>So the question is: How do we get QA more involved in the process?</p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;notes=For%20the%20past%2014%20years%20I%27ve%20been%20a%20software%20developer%20for%20money%2C%20I%27ve%20noticed%20a%20trend.%20The%20QA%20department%20finds%20the%20most%20bugs%20towards%20the%20end%20of%20the%20release%20cycle.%20Even%20when%20I%27ve%20worked%20in%20departments%20that%20are%20supposedly%20following%20an%20iterative%20developm" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;bodytext=For%20the%20past%2014%20years%20I%27ve%20been%20a%20software%20developer%20for%20money%2C%20I%27ve%20noticed%20a%20trend.%20The%20QA%20department%20finds%20the%20most%20bugs%20towards%20the%20end%20of%20the%20release%20cycle.%20Even%20when%20I%27ve%20worked%20in%20departments%20that%20are%20supposedly%20following%20an%20iterative%20developm" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;source=Lazycoder+&amp;summary=For%20the%20past%2014%20years%20I%27ve%20been%20a%20software%20developer%20for%20money%2C%20I%27ve%20noticed%20a%20trend.%20The%20QA%20department%20finds%20the%20most%20bugs%20towards%20the%20end%20of%20the%20release%20cycle.%20Even%20when%20I%27ve%20worked%20in%20departments%20that%20are%20supposedly%20following%20an%20iterative%20developm" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;t=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;t=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;title=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;selection=For%20the%20past%2014%20years%20I%27ve%20been%20a%20software%20developer%20for%20money%2C%20I%27ve%20noticed%20a%20trend.%20The%20QA%20department%20finds%20the%20most%20bugs%20towards%20the%20end%20of%20the%20release%20cycle.%20Even%20when%20I%27ve%20worked%20in%20departments%20that%20are%20supposedly%20following%20an%20iterative%20developm" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F&amp;t=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F&amp;s=For%20the%20past%2014%20years%20I%27ve%20been%20a%20software%20developer%20for%20money%2C%20I%27ve%20noticed%20a%20trend.%20The%20QA%20department%20finds%20the%20most%20bugs%20towards%20the%20end%20of%20the%20release%20cycle.%20Even%20when%20I%27ve%20worked%20in%20departments%20that%20are%20supposedly%20following%20an%20iterative%20developm" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Sure%20you%27re%20agile%2C%20what%20about%20your%20QA%20department%3F%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F30%2Fsure-youre-agile-what-about-your-qa-department%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=HhKlgi2zY84:NxzcCc7L0uE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=HhKlgi2zY84:NxzcCc7L0uE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=HhKlgi2zY84:NxzcCc7L0uE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=HhKlgi2zY84:NxzcCc7L0uE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=HhKlgi2zY84:NxzcCc7L0uE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=HhKlgi2zY84:NxzcCc7L0uE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=HhKlgi2zY84:NxzcCc7L0uE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=HhKlgi2zY84:NxzcCc7L0uE:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/09/30/sure-youre-agile-what-about-your-qa-department/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>A new JavaScript CDN from Microsoft</title>
		<link>http://www.lazycoder.com/weblog/2009/09/29/a-new-javascript-cdn-from-microsoft/</link>
		<comments>http://www.lazycoder.com/weblog/2009/09/29/a-new-javascript-cdn-from-microsoft/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 23:36:55 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/?p=1173</guid>
		<description><![CDATA[Microsoft announced a new Content Delivery Network for their ASP.NET AJAX JavaScript libraries and jQuery. This means that instead of hosting those libraries on your server, you can just link to the versions on Microsofts server. I made a simple page that takes a querystring parameter (q=) and uses the ASP.NET AJAX dynamic templates to [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft announced a new Content Delivery Network for their ASP.NET <acronym title='Asynchronous Javascript and XML'><span class='caps'>AJAX</span></acronym> JavaScript libraries and jQuery. This means that instead of hosting those libraries on your server, you can just link to the versions on Microsofts server. I made a <a href="http://lazycoder.com/letmebingthatforyou/?q=jQuery">simple page</a> that takes a querystring parameter (q=) and uses the ASP.NET <acronym title='Asynchronous Javascript and XML'><span class='caps'>AJAX</span></acronym> dynamic templates to bind search results from a call to the Bing <acronym title='Application Interface'><span class='caps'>API</span></acronym>.</p>
<p>The money lines in the source are the following:</p>
<div class="igBar"><span id="lcode-16"><a href="#" onclick="javascript:showCodeTxt('code-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-16">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script type=<span style="color:#CC0000;">"text/javascript"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">src=<span style="color:#CC0000;">"http://ajax.microsoft.com/ajax/beta/0909/MicrosoftAjax.debug.js"</span>&gt;&lt;/script&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script type=<span style="color:#CC0000;">"text/javascript"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">src=<span style="color:#CC0000;">"http://ajax.microsoft.com/ajax/beta/0909/MicrosoftAjaxTemplates.js"</span>&gt;&lt;/script&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
These two lines tell the browser to load the MS <acronym title='Asynchronous Javascript and XML'><span class='caps'>AJAX</span></acronym> scripts from the CDN. There are some <a href="http://idunno.org/archive/2009/09/16/quick-thoughts-on-the-microsoft-ajax-cdn.aspx">security concerns</a> around the fact that the files are served from the microsoft.com domain. Both Google and Yahoo serve there files from a separate, non-cookied domain (googleapis.com and yahooapis.com respectively). Hopefully, these fears will be unfounded.</p>
<p>On a side note, it is surprisingly easy to use the Bing <acronym title='Application Interface'><span class='caps'>API</span></acronym> if you are familiar with script tag injection. The easiest way is to put an empty script tag in your page.</p>
<div class="igBar"><span id="lcode-17"><a href="#" onclick="javascript:showCodeTxt('code-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-17">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script id=<span style="color:#CC0000;">"jsonResults"</span> type=<span style="color:#CC0000;">"text/javascript"</span>&gt;&lt;/script&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>And then just create your Bing <acronym title='Uniform Resource Locator'><span class='caps'>URL</span></acronym> and set the script elements src attribute to the <acronym title='Uniform Resource Locator'><span class='caps'>URL</span></acronym> you created.</p>
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showCodeTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">function MakeSearchRequest<span style="color:#006600; font-weight:bold;">&#40;</span>searchPhrase<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var req = <span style="color:#CC0000;">"http://api.bing.net/json.aspx?"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+ <span style="color:#CC0000;">"AppId="</span> + YOUR <acronym title='Application Interface'><span class='caps'>API</span></acronym> KEY GOES HERE</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+ <span style="color:#CC0000;">"&amp;Query="</span> + searchPhrase</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+ <span style="color:#CC0000;">"&amp;Sources=Web"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+ <span style="color:#CC0000;">"&amp;JsonType=callback"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+ <span style="color:#CC0000;">"&amp;JsonCallback=BuildResults"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $get<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"jsonResults"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">src</span> = req;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;notes=Microsoft%20announced%20a%20new%20Content%20Delivery%20Network%20for%20their%20ASP.NET%20AJAX%20JavaScript%20libraries%20and%20jQuery.%20This%20means%20that%20instead%20of%20hosting%20those%20libraries%20on%20your%20server%2C%20you%20can%20just%20link%20to%20the%20versions%20on%20Microsofts%20server.%20I%20made%20a%20simple%20page" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;bodytext=Microsoft%20announced%20a%20new%20Content%20Delivery%20Network%20for%20their%20ASP.NET%20AJAX%20JavaScript%20libraries%20and%20jQuery.%20This%20means%20that%20instead%20of%20hosting%20those%20libraries%20on%20your%20server%2C%20you%20can%20just%20link%20to%20the%20versions%20on%20Microsofts%20server.%20I%20made%20a%20simple%20page" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;source=Lazycoder+&amp;summary=Microsoft%20announced%20a%20new%20Content%20Delivery%20Network%20for%20their%20ASP.NET%20AJAX%20JavaScript%20libraries%20and%20jQuery.%20This%20means%20that%20instead%20of%20hosting%20those%20libraries%20on%20your%20server%2C%20you%20can%20just%20link%20to%20the%20versions%20on%20Microsofts%20server.%20I%20made%20a%20simple%20page" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;t=A%20new%20JavaScript%20CDN%20from%20Microsoft" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;t=A%20new%20JavaScript%20CDN%20from%20Microsoft" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;title=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;selection=Microsoft%20announced%20a%20new%20Content%20Delivery%20Network%20for%20their%20ASP.NET%20AJAX%20JavaScript%20libraries%20and%20jQuery.%20This%20means%20that%20instead%20of%20hosting%20those%20libraries%20on%20your%20server%2C%20you%20can%20just%20link%20to%20the%20versions%20on%20Microsofts%20server.%20I%20made%20a%20simple%20page" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F&amp;t=A%20new%20JavaScript%20CDN%20from%20Microsoft&amp;s=Microsoft%20announced%20a%20new%20Content%20Delivery%20Network%20for%20their%20ASP.NET%20AJAX%20JavaScript%20libraries%20and%20jQuery.%20This%20means%20that%20instead%20of%20hosting%20those%20libraries%20on%20your%20server%2C%20you%20can%20just%20link%20to%20the%20versions%20on%20Microsofts%20server.%20I%20made%20a%20simple%20page" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=A%20new%20JavaScript%20CDN%20from%20Microsoft%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F29%2Fa-new-javascript-cdn-from-microsoft%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=5BUwIG56ZXo:DM_1z6w_Pd8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=5BUwIG56ZXo:DM_1z6w_Pd8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=5BUwIG56ZXo:DM_1z6w_Pd8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=5BUwIG56ZXo:DM_1z6w_Pd8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=5BUwIG56ZXo:DM_1z6w_Pd8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=5BUwIG56ZXo:DM_1z6w_Pd8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=5BUwIG56ZXo:DM_1z6w_Pd8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=5BUwIG56ZXo:DM_1z6w_Pd8:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/09/29/a-new-javascript-cdn-from-microsoft/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Announcing WebOSSFlame</title>
		<link>http://www.lazycoder.com/weblog/2009/09/24/announcing-webossflame/</link>
		<comments>http://www.lazycoder.com/weblog/2009/09/24/announcing-webossflame/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 23:19:56 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[noReallyItsAJoke]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/2009/09/24/announcing-webossflame/</guid>
		<description><![CDATA[&#160;
The free world is proud to announce an old program for startups looking to do web development. When you sign up for the WebOSSFlame program, you get the following:

Free, unlimited licenses to the Debian or SuSE server platform
Free, unlimited licenses to the MySQL AND PostgreSQL database servers
Free, unlimited usage of either the Ruby, Python, or [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>The free world is proud to announce an old program for startups looking to do web development. When you sign up for the WebOSSFlame program, you get the following:</p>
<ol>
<li>Free, unlimited licenses to the <a href="http://www.debian.org/" target="_blank">Debian</a> or SuSE server platform</li>
<li>Free, unlimited licenses to the <a href="http://www.mysql.com/?bydis_dis_index=1" target="_blank">MySQL</a> AND <a href="http://www.postgresql.org/" target="_blank">PostgreSQL</a> database servers</li>
<li>Free, unlimited usage of either the <a href="http://www.ruby-lang.org/en/" target="_blank">Ruby</a>, <a href="http://python.org/" target="_blank">Python</a>, or <a href="http://php.org/" target="_blank"><acronym title='PHP Hypertext Processor'><span class='caps'>PHP</span></acronym></a> languages.</li>
<li>Free, unlimited licenses to ALL of the following IDEs: <a href="http://eclipse.org/" target="_blank">Eclipse</a>, <a href="http://www.vim.org/" target="_blank">Vim</a>, <a href="http://aptana.com/" target="_blank">Aptana</a> (1)</li>
<li>Free, unlimited licenses to ALL of the following graphics programs: <a href="http://www.gimp.org/" target="_blank">Gimp</a>, <a href="http://www.inkscape.org/" target="_blank">InkScape</a></li>
<li>Free, unlimited licenses to the <a href="http://filezilla-project.org/" target="_blank">FileZilla</a> FTP program for deploying your Web application.</li>
</ol>
<p>Aw heck, you know what? We’ll just throw in <a href="http://directory.fsf.org/" target="_blank">free, unlimited licenses to any piece of software listed here</a>.</p>
<p>Why start with a spark when you can start your fire with a flame?(3)</p>
<p>&#160;</p>
<p>(1) – EMACS not included, why do that to yourself? Really?(2)</p>
<p>(2) – Just kidding EMACS users.</p>
<p>(3) Ok, that’s a stretch.</p>



Share and Enjoy:


	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame&amp;notes=%26%23160%3B%20%20The%20free%20world%20is%20proud%20to%20announce%20an%20old%20program%20for%20startups%20looking%20to%20do%20web%20development.%20When%20you%20sign%20up%20for%20the%20WebOSSFlame%20program%2C%20you%20get%20the%20following%3A%20%20%20%20%20Free%2C%20unlimited%20licenses%20to%20the%20Debian%20or%20SuSE%20server%20platform%20%20%20%20Free%2C%20un" title="del.icio.us"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame" title="DotNetKicks"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame" title="DZone"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame" title="Reddit"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame&amp;bodytext=%26%23160%3B%20%20The%20free%20world%20is%20proud%20to%20announce%20an%20old%20program%20for%20startups%20looking%20to%20do%20web%20development.%20When%20you%20sign%20up%20for%20the%20WebOSSFlame%20program%2C%20you%20get%20the%20following%3A%20%20%20%20%20Free%2C%20unlimited%20licenses%20to%20the%20Debian%20or%20SuSE%20server%20platform%20%20%20%20Free%2C%20un" title="Digg"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame" title="StumbleUpon"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame&amp;source=Lazycoder+&amp;summary=%26%23160%3B%20%20The%20free%20world%20is%20proud%20to%20announce%20an%20old%20program%20for%20startups%20looking%20to%20do%20web%20development.%20When%20you%20sign%20up%20for%20the%20WebOSSFlame%20program%2C%20you%20get%20the%20following%3A%20%20%20%20%20Free%2C%20unlimited%20licenses%20to%20the%20Debian%20or%20SuSE%20server%20platform%20%20%20%20Free%2C%20un" title="LinkedIn"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;t=Announcing%20WebOSSFlame" title="Facebook"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Announcing%20WebOSSFlame&amp;link=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F" title="FriendFeed"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;t=Announcing%20WebOSSFlame" title="HackerNews"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.netvibes.com/share?title=Announcing%20WebOSSFlame&amp;url=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F" title="Netvibes"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;title=Announcing%20WebOSSFlame&amp;selection=%26%23160%3B%20%20The%20free%20world%20is%20proud%20to%20announce%20an%20old%20program%20for%20startups%20looking%20to%20do%20web%20development.%20When%20you%20sign%20up%20for%20the%20WebOSSFlame%20program%2C%20you%20get%20the%20following%3A%20%20%20%20%20Free%2C%20unlimited%20licenses%20to%20the%20Debian%20or%20SuSE%20server%20platform%20%20%20%20Free%2C%20un" title="Posterous"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F&amp;t=Announcing%20WebOSSFlame&amp;s=%26%23160%3B%20%20The%20free%20world%20is%20proud%20to%20announce%20an%20old%20program%20for%20startups%20looking%20to%20do%20web%20development.%20When%20you%20sign%20up%20for%20the%20WebOSSFlame%20program%2C%20you%20get%20the%20following%3A%20%20%20%20%20Free%2C%20unlimited%20licenses%20to%20the%20Debian%20or%20SuSE%20server%20platform%20%20%20%20Free%2C%20un" title="Tumblr"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Announcing%20WebOSSFlame%20-%20http%3A%2F%2Fwww.lazycoder.com%2Fweblog%2F2009%2F09%2F24%2Fannouncing-webossflame%2F" title="Twitter"><img src="http://www.lazycoder.com/weblog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lazycoder?a=wRYcUZ1I4-g:V8bdo-4qAqY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=wRYcUZ1I4-g:V8bdo-4qAqY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=wRYcUZ1I4-g:V8bdo-4qAqY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=wRYcUZ1I4-g:V8bdo-4qAqY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=wRYcUZ1I4-g:V8bdo-4qAqY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=wRYcUZ1I4-g:V8bdo-4qAqY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Lazycoder?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lazycoder?a=wRYcUZ1I4-g:V8bdo-4qAqY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lazycoder?i=wRYcUZ1I4-g:V8bdo-4qAqY:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/09/24/announcing-webossflame/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
