<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>using (IMHO)</title>
	<atom:link href="http://andreadallera.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://andreadallera.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 29 Sep 2009 17:12:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='andreadallera.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>using (IMHO)</title>
		<link>http://andreadallera.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://andreadallera.wordpress.com/osd.xml" title="using (IMHO)" />
	<atom:link rel='hub' href='http://andreadallera.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Domain name change</title>
		<link>http://andreadallera.wordpress.com/2009/09/29/domain-name-change/</link>
		<comments>http://andreadallera.wordpress.com/2009/09/29/domain-name-change/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:12:12 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/2009/09/29/domain-name-change/</guid>
		<description><![CDATA[From now on, new posts will be published on usingimho.wordpress.com Bye!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=76&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From now on, new posts will be published on <a href="http://usingimho.wordpress.com">usingimho.wordpress.com </a></p>
<p>Bye!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=76&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/09/29/domain-name-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>
	</item>
		<item>
		<title>Unit testing with Ruby (part 2)</title>
		<link>http://andreadallera.wordpress.com/2009/09/28/unit-testing-with-ruby-part-2/</link>
		<comments>http://andreadallera.wordpress.com/2009/09/28/unit-testing-with-ruby-part-2/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 08:45:48 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Unit testing]]></category>
		<category><![CDATA[Mocha]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=52</guid>
		<description><![CDATA[In ruby, you can do this: Hum. Static&#8217;s bad, don&#8217;t do static, mkay? Well, not necessarily. The fact that you can test class methods like this makes them much more usable than they are in C#, where using static all over the place brings your design to the dumpster pretty quickly. Still, the use of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=52&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In ruby, you can do this:</p>
<div id="attachment_68" class="wp-caption aligncenter" style="width: 368px"><img class="size-full wp-image-68" title="class_methods_mocking" src="http://andreadallera.files.wordpress.com/2009/09/class_methods_mocking.jpg?w=655" alt="Class methods mocking"   /><p class="wp-caption-text">Class methods mocking</p></div>
<p>Hum. Static&#8217;s bad, don&#8217;t do static, mkay? Well, not necessarily. The fact that you can test class methods like this makes them much more usable than they are in C#, where using static all over the place brings your design to the dumpster pretty quickly. Still, the use of class methods usually covers for underlying design flaws, so it&#8217;s a technical debt and you should evaulate what is convenient to do case by case.</p>
<p>The above snippet is powered by <a href="http://mocha.rubyforge.org/">mocha</a>, a mocking framework for ruby. It has a JMock-like syntax and it provides you all the usual tools.</p>
<pre>mock()</pre>
<p>creates a mock object. You can set expectations on a mock object with</p>
<pre>mock_object.expects(:method_name)</pre>
<p>and stubs with</p>
<pre>mock_object.stubs(:method_name)</pre>
<p style="text-align:left;">Expectations are verified at the end of the test: if you&#8217;ve set an expectation for <code>:method_name</code> and that method isn&#8217;t called on the mock object before the end of the test, that test will fail (no need to <code>VerifyAllExpectations</code> or such). Instead, stubs do not fail the test if not called.<br />
So, in the following example:<br />
<img class="size-full wp-image-69 aligncenter" title="mock_example" src="http://andreadallera.files.wordpress.com/2009/09/mock_example.jpg?w=655" alt="mock_example"   /></p>
<p style="text-align:left;">
<p>if we remove the <code>object.second</code> call from the method run only the second test fill fail.</p>
<p>As seen before, you can set expectations and stubs not just on mocks but on <em>any</em> object, even class objects. Abusing of this feature, as to say in <code>object = Object.new; object.expects(:method)</code> ,  is probably not wise but as shown in the first snippet this allows testing of usually not testable situations.</p>
<p>You can force constraints on expectations using <code>with(param_value)</code> and you can return values with <code>returns(value)</code>. For example, the following code:</p>
<pre>mock_object = mock()
mock_object.expects(:get_capital).with('sweden').returns('stockholm')</pre>
<p>Sets an expectation on <code>mock_object</code> for the method <code>get_capital</code>, the expectation is satisfied only if <code>get_capital</code> is called with the string <code>'sweden'</code> and, if called that way, returns the string <code>'stockholm'</code>. Of course you don&#8217;t need both clauses to be present togheter, <code>mock_object.expects(:get_capital).with('sweden')</code> and <code>mock_object.expects(:get_capital).returns('stockholm')</code> work just as expected. If you don&#8217;t set a return value for any given expectation/stub it will return <code>nil</code>.</p>
<p><code>stub_everything()</code> returns a mock object that stubs every possible method call. The return value will always be <code>nil</code>.</p>
<p>More on mocha will be found on its <a href="http://mocha.rubyforge.org/">documentation page</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=52&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/09/28/unit-testing-with-ruby-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/09/class_methods_mocking.jpg" medium="image">
			<media:title type="html">class_methods_mocking</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/09/mock_example.jpg" medium="image">
			<media:title type="html">mock_example</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s the difference between LinqToSQL and NHibernate?</title>
		<link>http://andreadallera.wordpress.com/2009/07/03/whats-the-difference-between-linqtosql-and-nhibernate/</link>
		<comments>http://andreadallera.wordpress.com/2009/07/03/whats-the-difference-between-linqtosql-and-nhibernate/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 17:21:03 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[LinqToSql]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[ORM]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=61</guid>
		<description><![CDATA[LinqToSql tries to do what you want. NHibernate tries to do what you tell it to do. BIG difference, as you can see from the following snippet: what I do expect to happen here is userToPersist alone being saved in database after SubmitChanges. What happens instead is userToPersist AND user being saved. Hundreds and hundreds [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=61&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>LinqToSql tries to do what you <em>want</em>. NHibernate tries to do what you <em>tell </em>it to do. BIG difference, as you can see from the following snippet:</p>
<p style="text-align:center;"><img class="size-full wp-image-62 aligncenter" title="linqtosql" src="http://andreadallera.files.wordpress.com/2009/07/linqtosql.jpg?w=655" alt="linqtosql"   /></p>
<p style="text-align:left;">what I do expect to happen here is<em> </em>userToPersist <span style="text-decoration:underline;">alone</span> being saved in database after SubmitChanges. What happens instead is userToPersist <span style="text-decoration:underline;">AND</span> user being saved.</p>
<p>Hundreds and hundreds of future mapping files to write aren&#8217;t gonna move me away a single step from NH until THIS is what i get from competitors&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=61&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/07/03/whats-the-difference-between-linqtosql-and-nhibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/07/linqtosql.jpg" medium="image">
			<media:title type="html">linqtosql</media:title>
		</media:content>
	</item>
		<item>
		<title>Is C better than Ruby?</title>
		<link>http://andreadallera.wordpress.com/2009/06/02/is-c-better-than-ruby/</link>
		<comments>http://andreadallera.wordpress.com/2009/06/02/is-c-better-than-ruby/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 13:51:16 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=57</guid>
		<description><![CDATA[Yesterday I stumbled into this through hacker news and well, maybe the guy hasn&#8217;t really grasped the whole client-server paradigm thing but here he really made a point : We’re engineers, and we make machines work. You use the best tool for the job to do that. You don’t choose some pretty language [Ruby] that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=57&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I stumbled into <a title="This" href="http://ediblepet.net/2009/05/23/web-applications-should-be-compile/">this</a> through <a title="hacker news" href="http://news.ycombinator.com/">hacker news</a> and well, maybe the guy hasn&#8217;t really grasped the whole client-server paradigm thing but here he really made a point :</p>
<p><em>We’re engineers, and we make machines work. You use the best tool for the job to do that. You don’t choose some pretty language [Ruby] that “brings back the joy of coding” or equivalent hippy shit.</em></p>
<p>And more:</p>
<p><em>C is the dominant language right now and probably for the distant future. It’s the lingua franca of computing. Nearly every server application worth a damn is written in C.</em></p>
<p>Well, the guy here maybe needs to chill out a bit but I think he&#8217;s right: C is here to stay. Planning to use anything else for a large project where performance is crucial is insane (Java and C#, you heard me <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). C is a really powerful and valuable tool, and every developer should have at least some knowledge of it: I started out with C64 Basic, then Assembly for a long, long time, then lots of C, after that Java, VB, C# and then Ruby. I know people like <a title="Why" href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff">Why</a> are promoting Ruby as a learning language but honestly, I can&#8217;t really imagine someone with no knowledge of C writing good Ruby.</p>
<p>But probably in the 70&#8242;s somebody made similar statements, just replacing C with FORTRAN. Right now, C is the language. What about it in 10 years? I&#8217;m really, really surprised every time I read such statements: they make me feel like story never happened. No wonder Berlusconi is gonna win the elections with 70% of the votes next week.</p>
<p>And even if C is the best all-purpose tool we have now, what&#8217;s the point in using it even if the situation would allow a not-so performant but much more pleasant to use tool instead? Is there some kind of pride to gain in being miserable doing your job that I&#8217;m not seeing? Ruby performs like crap, but it&#8217;s a pleasure to work with. And 99% of the times nobody cares about performance.</p>
<p>All these things have been said countless times by people way more authoritative than I will ever be but it seems there&#8217;s still need to state them clear&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=57&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/06/02/is-c-better-than-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>
	</item>
		<item>
		<title>Will win7 be the last widescale OS by Microsoft?</title>
		<link>http://andreadallera.wordpress.com/2009/05/31/will-win7-be-the-last-widescale-os-by-microsoft/</link>
		<comments>http://andreadallera.wordpress.com/2009/05/31/will-win7-be-the-last-widescale-os-by-microsoft/#comments</comments>
		<pubDate>Sun, 31 May 2009 10:32:50 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=54</guid>
		<description><![CDATA[I was watching this yesterday and the first thing that came into my mind was (of course) whoa, this is SO awesome . And the obvious follow through was that&#8217;s not gonna be just this. Google is making up something REAL big. Will it be an OS? What if google releases a full fledged OS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=54&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was watching <a title="this" href="http://wave.google.com/">this</a> yesterday and the first thing that came into my mind was (of course) <em>whoa, this is SO awesome </em>. And the obvious follow through was <em>that&#8217;s not gonna be just this. Google is making up something REAL big</em>. Will it be an OS?</p>
<p>What if google releases a full fledged OS in a couple of years? Something that&#8217;s going to change the way we think about OS , the same way Wave will change our standards about messaging? What will Microsoft do then? Is it ready for the challenge?</p>
<p>I don&#8217;t really think so: there&#8217;s not been any real user experience innovation in OS since <a title="Xerox" href="http://en.wikipedia.org/wiki/Xerox_PARC">Xerox</a> and Microsoft had all the time and resources in the world to think about something new and clever. It&#8217;s out there to see that they didn&#8217;t, and if Google really comes out with an OS i think it will be something Microsoft&#8217;s products can&#8217;t even compare to.</p>
<p>The only reason Microsoft is still alive and well is its privileged position in the OS market. Better for them if they start thinking about what to do next right now, or Google is gonna wipe them out.</p>
<p>I&#8217;m not really sure if that&#8217;s good or bad though.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=54&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/05/31/will-win7-be-the-last-widescale-os-by-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>
	</item>
		<item>
		<title>Castle windsor oddities</title>
		<link>http://andreadallera.wordpress.com/2009/04/10/castle-windsor-oddities/</link>
		<comments>http://andreadallera.wordpress.com/2009/04/10/castle-windsor-oddities/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 16:42:17 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Castle]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Windsor]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=48</guid>
		<description><![CDATA[I was at a customer today and they had a quite interesting situation to show me, and here it is. Let&#8217;s create these dummy entities: And now let&#8217;s register them the same way they did and see what happens when trying to resolve a Person: As you can see Windsor actually &#8220;resolves&#8221; both Address and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=48&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was at a customer today and they had a quite interesting situation to show me, and here it is.</p>
<p>Let&#8217;s create these dummy entities:</p>
<div id="attachment_49" class="wp-caption aligncenter" style="width: 331px"><img class="size-full wp-image-49" title="entities" src="http://andreadallera.files.wordpress.com/2009/04/entities.jpg?w=655" alt="Entities"   /><p class="wp-caption-text">Entities</p></div>
<p>And now let&#8217;s register them the same way they did and see what happens when trying to resolve a Person:</p>
<p style="text-align:center;"><img class="size-full wp-image-50 aligncenter" title="result" src="http://andreadallera.files.wordpress.com/2009/04/result.jpg?w=655" alt="result"   /></p>
<p style="text-align:left;">As you can see Windsor actually &#8220;resolves&#8221; both Address and Job as if they were a dependency, setting both of them as <em>a new instance</em>! I don&#8217;t really think this is a bug but it&#8217;s totally not what I expected&#8230;</p>
<p style="text-align:left;">Having interfaces in between (so IPerson, IAddress and IJob) and then trying to resolve IPerson solves the &#8220;problem&#8221; (so I get a person with null Address and Job).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=48&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/04/10/castle-windsor-oddities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/04/entities.jpg" medium="image">
			<media:title type="html">entities</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/04/result.jpg" medium="image">
			<media:title type="html">result</media:title>
		</media:content>
	</item>
		<item>
		<title>Unit testing with Ruby (part 1)</title>
		<link>http://andreadallera.wordpress.com/2009/04/05/unit-testing-with-ruby-part-1/</link>
		<comments>http://andreadallera.wordpress.com/2009/04/05/unit-testing-with-ruby-part-1/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 10:50:07 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Unit testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Mocha]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=43</guid>
		<description><![CDATA[Not having the compiler on your side makes life difficult. Example: C# public int Multiply(int firstFactor,int secondFactor) { return firstFactor*secondFactor; } Ruby def multiply(first_factor, second_factor) return first_factor*second_factor end What these methods are supposed to do is pretty straightforward. What they actually do, maybe not so.  What if you were to test both methods? What\how many [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=43&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Not having the compiler on your side makes life difficult. Example:</p>
<p>C#</p>
<pre>public int Multiply(int firstFactor,int secondFactor)
{
      return firstFactor*secondFactor;
}</pre>
<p>Ruby</p>
<pre>def multiply(first_factor, second_factor)
   return first_factor*second_factor
end</pre>
<p>What these methods are supposed to do is pretty straightforward. What they actually do, maybe not so.  What if you were to test both methods? What\how many tests would you write to make sure these methods behave as you expect?</p>
<p>Let&#8217;s take a look at the C# method. It takes two parameters (both int, so value types) and returns an integer. Relying on <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity">cyclomatic complexity</a> to determine, for a given method, how many tests must be written is often uncorrect but let&#8217;s assume that it&#8217;s okay for this case, so one test that verifies the result for a given input might be enough.</p>
<p>What about the Ruby method? It takes two parameters and returns <em>something</em>. And the two parameters might be pretty much <em>anything</em>. How about testing this one? There&#8217;s no IFs so we might say that <a href="http://en.wikipedia.org/wiki/Wtf">one test is still fine</a>, or you might want to <a href="http://en.wikipedia.org/wiki/Defensive_programming">check parameters for correctness</a>, or maybe make sure that who calls your method do it <a href="http://en.wikipedia.org/wiki/Design_by_Contract">the way it&#8217;s supposed to</a>. Either options (except the first but seriously, you&#8217;re not going for that one) requires extra effort in comparison to the C# approach.</p>
<p>About mocking:</p>
<p>C#</p>
<pre>public Controller(IView view, IModel model)
{
      //some stuff happening here
}</pre>
<p>And Ruby</p>
<pre>def initialize(view, model)
      #some stuff happening here
end</pre>
<p>Mocking view and model in C# requires some degree of <em>IView = repo.CreateMock&lt;IView&gt;()</em>. This relies on the <em>IView</em> interface, and you&#8217;ve got nothing like that in Ruby. You just mock <em>methods</em> instead. <a href="http://mocha.rubyforge.org/">Mocha</a> syntax:</p>
<pre>def test_refresh_always_callRefreshOnView
   view = Mock()
   view.expects(:refresh)
   controller = Controller.new(view,Stub())
   controller.refresh
end</pre>
<p>No need of VerifyAllExpectations() or such: this fails automatically if <em>refresh</em> is not invoked on the <em>view</em> object.</p>
<p>A similar problem arises when using IoC containers: you&#8217;ve got no interface to resolve. More about this later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=43&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/04/05/unit-testing-with-ruby-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>
	</item>
		<item>
		<title>Color scheme designer</title>
		<link>http://andreadallera.wordpress.com/2009/03/10/color-scheme-designer/</link>
		<comments>http://andreadallera.wordpress.com/2009/03/10/color-scheme-designer/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 17:09:47 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[User Interface]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[GUI]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=41</guid>
		<description><![CDATA[I&#8217;m an engineer: I can see up to 16 colors and I normally use 4 plus black and white, I&#8217;ve got a shortcut for terminal, I use that often and come on, what the f*ck is MistyRose supposed to be.  Still, or maybe especially for those reasons, I found this to be very interesting and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=41&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m an engineer: I can see up to 16 colors and I normally use 4 plus black and white, I&#8217;ve got a shortcut for terminal, I use that often and come on, what the f*ck is <a href="http://www.w3schools.com/tags/ref_color_tryit.asp?color=MistyRose">MistyRose</a> supposed to be.  Still, or maybe especially for those reasons, I found <a href="http://colorschemedesigner.com/">this</a> to be very interesting and i suggest you to give it a look: it is for me what VBA macros are to the average programming noob <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=41&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/03/10/color-scheme-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>
	</item>
		<item>
		<title>Interface designing with Ruby and GTK+</title>
		<link>http://andreadallera.wordpress.com/2009/03/06/interface-designing-with-ruby-and-gtk/</link>
		<comments>http://andreadallera.wordpress.com/2009/03/06/interface-designing-with-ruby-and-gtk/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 09:09:06 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Glade]]></category>
		<category><![CDATA[GUI]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=29</guid>
		<description><![CDATA[As I said some posts ago, there is no support for GUI building with Ruby inside NetBeans or any other Ruby IDE (with the exception of Komodo). That means you&#8217;ll have to rely on external tools, namely the Qt Designer or the Glade interface designer (for GTK+): they are plentiful in features, really easy to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=29&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I said some posts ago, there is no support for GUI building with Ruby inside NetBeans or any other Ruby IDE (with the exception of Komodo). That means you&#8217;ll have to rely on external tools, namely the <a href="http://doc.trolltech.com/4.3/designer-manual.html">Qt Designer</a> or the <a href="http://glade.gnome.org/">Glade interface designer</a> (for GTK+): they are plentiful in features, really easy to use and documentation is widely available so it will be not a problem for you to create good GUIs with them in no time. The only problem about using one of these tools instead of building your GUI with your favourite IDE is that you&#8217;ll have to integrate your interface (externally built) with the code you&#8217;re writing. Let&#8217;s see how, using Glade and GTK+.</p>
<p>After creating a new Glade project some windows will pop up. Among them will be the<strong> palette</strong> window and the <strong>properties</strong> window<strong> </strong>: the first one allows you to create new widget, so click on the upper left button to create a window widget, then add a button to the newly created window by selecting the button widget and then left-click on the window body.</p>
<div id="attachment_31" class="wp-caption aligncenter" style="width: 201px"><img class="size-full wp-image-31" title="Palette window" src="http://andreadallera.files.wordpress.com/2009/03/palette.png?w=655" alt="Palette window"   /><p class="wp-caption-text">Palette window</p></div>
<p>Now it&#8217;s time to look at the property window. By selecting the button that you craeted the property window will show all its properties. Select the signals tab and then click on the ellipse on the lower left of the window: that will show a dialog containing all the button&#8217;s available signals. Double click on <em>clicked</em>, then click <em>add</em> on the signals window.</p>
<div id="attachment_32" class="wp-caption aligncenter" style="width: 326px"><img class="size-full wp-image-32" title="Signals window" src="http://andreadallera.files.wordpress.com/2009/03/signals.png?w=655" alt="Signals window"   /><p class="wp-caption-text">Signals window</p></div>
<p>Now save the project and close the Glade designer. You will see that Glade created two files in the folder you chose: the one that cares to us it the <em>yourprojectname.</em>glade file. Now open a terminal at the folder location and type in:</p>
<p style="text-align:center;">ruby-glade-create-template <em>yourprojectname</em>.glade &gt; <em>yourrubyfile</em>.rb</p>
<p>Where yourrubyfile is a filename of your choice. This will create a new yourrubyfile.rb that looks like:</p>
<pre>#!/usr/bin/env ruby
#
# This file is gererated by ruby-glade-create-template 1.1.4.
#
require 'libglade2'

class yourrubyfileGlade
  include GetText

  attr :glade

  def initialize(path_or_data, root = nil, domain = nil, localedir = nil, flag = GladeXML::FILE)
    bindtextdomain(domain, localedir, nil, "UTF-8")
    @glade = GladeXML.new(path_or_data, root, domain, localedir, flag) {|handler| method(handler)}

  end

  def on_button1_clicked(widget)
    puts "on_button1_clicked() is not implemented yet."
  end
end

# Main program
if __FILE__ == $0
  # Set values as your own application.
  PROG_PATH = "yourprojectname.glade"
  PROG_NAME = "YOUR_APPLICATION_NAME"
  Project1Glade.new(PROG_PATH, nil, PROG_NAME)
  Gtk.main
end</pre>
<p>Running the file will display the window you created and clicking on the button will execute whatever logic you&#8217;ve put inside the <em>on_button1_clicked </em>method.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=29&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/03/06/interface-designing-with-ruby-and-gtk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/03/palette.png" medium="image">
			<media:title type="html">Palette window</media:title>
		</media:content>

		<media:content url="http://andreadallera.files.wordpress.com/2009/03/signals.png" medium="image">
			<media:title type="html">Signals window</media:title>
		</media:content>
	</item>
		<item>
		<title>My 2c about the SOLID debate</title>
		<link>http://andreadallera.wordpress.com/2009/02/19/my-2c-about-the-solid-debate/</link>
		<comments>http://andreadallera.wordpress.com/2009/02/19/my-2c-about-the-solid-debate/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 22:18:16 +0000</pubDate>
		<dc:creator>andreadallera</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[SOLID]]></category>

		<guid isPermaLink="false">http://andreadallera.wordpress.com/?p=26</guid>
		<description><![CDATA[As you might know Jeff Atwood and Joel Spolsky, during one of their podcast at stackoverflow, argued against the SOLID principles (defining them &#8220;idiotic&#8221;) going as far as saying &#8220;quality does not matter that much&#8221;. This triggered a blog reaction from Uncle Bob himself, which then led to another podcast and well, you can keep [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=26&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As you might know <a href="http://www.codinghorror.com/">Jeff Atwood</a> and <a href="http://www.joelonsoftware.com/">Joel Spolsky</a>, during <a href="http://blog.stackoverflow.com/2009/01/podcast-38/">one of their podcast</a> at <a href="http://stackoverflow.com/">stackoverflow</a>, argued against the <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">SOLID principles</a> (defining them &#8220;idiotic&#8221;) going as far as saying &#8220;quality does not matter that much&#8221;. This triggered <a href="http://blog.objectmentor.com/articles/2009/01/31/quality-doesnt-matter-that-much-jeff-and-joel">a blog reaction</a> from <a href="http://en.wikipedia.org/wiki/Robert_Cecil_Martin">Uncle Bob</a> himself, which then led to <a href="http://blog.stackoverflow.com/2009/02/podcast-40">another podcast</a> and well, you can keep up with the story yourself from this point.<br />
Of course I&#8217;m no match for these giants: i&#8217;ve got neither right nor intention to criticize their points of view. Still, I couldn&#8217;t really understand: why are they (both sides) so mad at <strong>methodology? </strong></p>
<p>Let me explain.<a href="http://www.codinghorror.com/blog/archives/000781.html"> It seems</a> that just a little share of the so-called programmers can <em>actually</em> program. But there&#8217;s more : even among this elite the <a href="http://www.codinghorror.com/blog/archives/000072.html">difference between the best and the worst </a>are of orders of magnitude. And worse : <a href="http://www.codinghorror.com/blog/archives/001054.html">you can&#8217;t really learn it</a>.</p>
<p>So, what the hell? There&#8217;s a huge amount of software that needs to be written out there, who&#8217;s gonna do that? Just the elites from the elite? Wait, here&#8217;s the solution: <strong>Methodology!</strong> You don&#8217;t need the gift, just blindly and faithfully follow the Instructions and everything&#8217;s fine! What a breakthrough!</p>
<p>And I&#8217;m <em>serious</em> about that. I&#8217;ve seen that in action, it costs &#8211; a LOT &#8211; in terms of productivity but you can actually make people that have no clue about programming building quality software. Take a Methodology and <strong>enforce it brutally</strong>: there&#8217;s no &#8220;maybe i&#8217;m doing this my way&#8221; or &#8220;let&#8217;s just patch it up for the next release&#8221;. Everything<em> must </em>be done by the book. It works. And i think it&#8217;s not a bad thing, of course unless Jeff and Joel are right and quality really doesn&#8217;t matter : but i like to think that&#8217;s not true &#8211; even knowing that i&#8217;m probably wrong.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreadallera.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreadallera.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andreadallera.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andreadallera.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreadallera.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreadallera.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreadallera.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreadallera.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreadallera.wordpress.com&amp;blog=4313104&amp;post=26&amp;subd=andreadallera&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andreadallera.wordpress.com/2009/02/19/my-2c-about-the-solid-debate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b55d9706b57e8d286a4f198daf2ac69c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andreadallera</media:title>
		</media:content>
	</item>
	</channel>
</rss>
