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

<channel>
	<title>devgrind &#187; ruby</title>
	<atom:link href="http://devgrind.com/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://devgrind.com</link>
	<description>thinking outside the { }</description>
	<lastBuildDate>Fri, 04 Nov 2011 10:42:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ruby Version Reminder</title>
		<link>http://devgrind.com/2010/02/22/ruby-version-reminder/</link>
		<comments>http://devgrind.com/2010/02/22/ruby-version-reminder/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 18:40:16 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=113</guid>
		<description><![CDATA[rvm is great, but I still sometimes lose track of which Ruby version I&#8217;m currently using. As a little reminder, I put the Ruby version in my shell prompt, like this: PS1="\u `ruby -v &#124; grep -e "[0-9]\.[0-9]\.[0-9]" -o` \w" Works nicely.]]></description>
			<content:encoded><![CDATA[<p><a href="http://rvm.beginrescueend.com/">rvm</a> is great, but I still sometimes lose track of which Ruby version I&#8217;m currently using. As a little reminder, I put the Ruby version in my shell prompt, like this:</p>
<p><code>PS1="\u `ruby -v | grep -e "[0-9]\.[0-9]\.[0-9]" -o` \w"</code></p>
<p>Works nicely.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2010/02/22/ruby-version-reminder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;gem install mysql&#8221; on Debian</title>
		<link>http://devgrind.com/2009/02/07/gem-install-mysql-on-debian/</link>
		<comments>http://devgrind.com/2009/02/07/gem-install-mysql-on-debian/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 21:55:03 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[admin]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=66</guid>
		<description><![CDATA[Short note to myself and whom it my concern. If you try to sudo gem install mysql on a Debian system and it responds, after some working, with: Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. (...) *** extconf.rb failed *** Could not create [...]]]></description>
			<content:encoded><![CDATA[<p>Short note to myself and whom it my concern. If you try to <code>sudo gem install mysql</code> on a Debian system and it responds, after some working, with:<br />
<code><br />
Building native extensions.  This could take a while...<br />
ERROR:  Error installing mysql:<br />
	ERROR: Failed to build gem native extension.<br />
(...)<br />
*** extconf.rb failed ***<br />
Could not create Makefile due to some reason, probably lack of<br />
necessary libraries and/or headers.  Check the mkmf.log file for more<br />
details.  You may need configuration options.<br />
(...)<br />
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.<br />
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out<br />
</code></p>
<p>then <a href="http://pemberthy.blogspot.com/2008/12/mysql-gem-on-debian.html">this</a> should be the solution for you: First you install libmysqlclient15-dev, which generates a <code>mysql_config</code> file, and the install the gem using the config.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2009/02/07/gem-install-mysql-on-debian/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Keeping Up with Rails</title>
		<link>http://devgrind.com/2009/02/07/keeping-up-with-rails/</link>
		<comments>http://devgrind.com/2009/02/07/keeping-up-with-rails/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 19:04:02 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=63</guid>
		<description><![CDATA[I&#8217;m currently updating a not-so-small application from Rails 2.0.2 to 2.2.2 and it seems that about every other plugin is not compatible with the new version, because one or the other method was removed,  and I have to update them as well. Not such a big problem, if a compatible version exists, but takes quite [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently updating a not-so-small application from Rails 2.0.2 to 2.2.2 and it seems that about every other plugin is not compatible with the new version, because one or the other method was removed,  and I have to update them as well. Not such a big problem, if a compatible version exists, but takes quite some time, and I don&#8217;t understand that I have to go through this hassle (and <a href="devgrind.com/2008/04/03/use-quote_value-in-rails-2/">other hassles</a>) about everytime I update to a new Rails version. I don&#8217;t remember having this kind of trouble when I was working in Java Land. Can somebody explain?</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2009/02/07/keeping-up-with-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Rethrow, Please</title>
		<link>http://devgrind.com/2008/09/08/dont-rethrow-please/</link>
		<comments>http://devgrind.com/2008/09/08/dont-rethrow-please/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 13:36:26 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=51</guid>
		<description><![CDATA[Dear fellow Ruby developers, please kick the habit of catching  and rethrowing exceptions, thus ridding your users of the expeptions&#8217; stack traces. Recently I had to patch the source code of an ActiveRecord adapter as well as the underlying DBI implementation in order to find out where one particular exception was originating from. This makes [...]]]></description>
			<content:encoded><![CDATA[<p>Dear fellow Ruby developers, please kick the habit of catching  and rethrowing exceptions, thus ridding your users of the expeptions&#8217; stack traces. Recently I had to patch the source code of an ActiveRecord adapter as well as the underlying DBI implementation in order to find out where <em>one</em> particular exception was originating from. This makes debugging code really a hassle. I haven&#8217;t had this kind of problem in Java since nested exceptions.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/09/08/dont-rethrow-please/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scripting The Night Away</title>
		<link>http://devgrind.com/2008/08/01/scripting-the-night-away/</link>
		<comments>http://devgrind.com/2008/08/01/scripting-the-night-away/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 14:20:20 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=47</guid>
		<description><![CDATA[One of the very nice features of Mac OS X ist the ability of almost every reasonable application to receive AppleEvents, which makes the whole OS-app-bundle highly scriptable. Normally, Apple recommends that the scripting is done using a malevolent, programmer-unfirndly language named &#8220;AppleScript&#8221;. But there are alternatives, e.g. using Ruby together with the rb-appscript library. [...]]]></description>
			<content:encoded><![CDATA[<p>One of the very nice features of Mac OS X ist the ability of almost every reasonable application to receive AppleEvents, which makes the whole OS-app-bundle highly scriptable. Normally, Apple recommends that the scripting is done using a malevolent, programmer-unfirndly language named &#8220;AppleScript&#8221;. But there are alternatives, e.g. using Ruby together with the rb-appscript library.</p>
<p>As a first try, I wrote a small hack solving the following problem:</p>
<blockquote><p>In Aperture, I normally sort photos in folders named YYYY_MM_DD, so when I sort them by alphabet (or Aperture sorts them and I cannot change the sort order), the oldest ones show up first. Unfortunately, iPhoto imported photos from my camera in the German format DD.MM.YYYY, so the alphabetical sorting is useless.</p></blockquote>
<p>The ruby script goes like this:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw3">require</span> <span class="st0">&quot;rubygems&quot;</span><br />
<span class="kw3">require</span> <span class="st0">&quot;appscript&quot;</span><br />
<span class="kw1">include</span> Appscript</p>
<p>app = app<span class="br0">&#40;</span><span class="st0">&#8216;Aperture&#8217;</span><span class="br0">&#41;</span><br />
<span class="kw3">puts</span> app.<span class="me1">projects</span><br />
app.<span class="me1">get</span><span class="br0">&#40;</span>app.<span class="me1">projects</span><span class="br0">&#41;</span>.<span class="me1">each</span> <span class="br0">&#123;</span> |project|<br />
&nbsp; name = app.<span class="me1">get</span><span class="br0">&#40;</span>project.<span class="me1">name</span><span class="br0">&#41;</span><br />
&nbsp; <span class="kw1">if</span> name =~ /^\d\d\.\d\d.\d\d\d\d$/<br />
&nbsp; &nbsp; day = name<span class="br0">&#91;</span><span class="nu0">0</span>, <span class="nu0">2</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; month = name<span class="br0">&#91;</span><span class="nu0">3</span>, <span class="nu0">2</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; year = name<span class="br0">&#91;</span><span class="nu0">6</span>, <span class="nu0">4</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; app.<span class="me1">projects</span><span class="br0">&#91;</span>name<span class="br0">&#93;</span>.<span class="me1">name</span>.<span class="me1">set</span><span class="br0">&#40;</span>year+<span class="st0">&quot;_&quot;</span>+month+<span class="st0">&quot;_&quot;</span>+day<span class="br0">&#41;</span><br />
&nbsp; <span class="kw1">end</span><br />
<span class="br0">&#125;</span></div>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/08/01/scripting-the-night-away/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use quote_value in Rails 2</title>
		<link>http://devgrind.com/2008/04/03/use-quote_value-in-rails-2/</link>
		<comments>http://devgrind.com/2008/04/03/use-quote_value-in-rails-2/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 19:28:33 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[api]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=42</guid>
		<description><![CDATA[This is just a note to all who, like me, wonder why the heck ActiveRecord&#8217;s quote method in model classes doesn&#8217;t work anymore in Rails 2.x: quote seemingly has been replaced by quote_value, though this is not listed on the deprecation page. So if you get an error that says undefined method `quote&#8217; for your [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a note to all who, like me, wonder why the heck ActiveRecord&#8217;s <tt>quote</tt> method in model classes doesn&#8217;t work anymore in Rails 2.x: <tt>quote</tt> seemingly has been replaced by <tt>quote_value</tt>, though this is not listed on the deprecation page. So if you get an error that says <i>undefined method `quote&#8217;</i> for your model class, replace the calls to <tt>quote</tt> by <tt>quote_value</tt>.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/04/03/use-quote_value-in-rails-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ActiveRecord and Hibernate &#8211; Friends or Foes?</title>
		<link>http://devgrind.com/2008/01/25/activerecord-and-hibernate-friends-or-foes/</link>
		<comments>http://devgrind.com/2008/01/25/activerecord-and-hibernate-friends-or-foes/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 11:00:33 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://devgrind.com/2008/01/25/activerecord-and-hibernate-friends-or-foes/</guid>
		<description><![CDATA[Currently, I am in the nice situation to decide for myself with which framework I will build a demonstration portal. So, as I want to profit from the fast-paced development processes (at least the Ruby aficionados say so) and the lightweightiness of Rails, I decided to go the Rail(s)Way. Problem is, that I have to [...]]]></description>
			<content:encoded><![CDATA[<p>Currently, I am in the nice situation to decide for myself with which framework I will build a demonstration portal. So, as I want to profit from the fast-paced development processes (at least the Ruby aficionados say so) and the lightweightiness of Rails, I decided to go the Rail(s)Way.</p>
<p>Problem is, that I have to use a legacy database in PostgreSQL where I am not allowed to tinker with the structure, but I am forced to insert data into the tables. The database was created using Hibernate, which means an overall database sequence is used to generate the unique IDs. Unfortunately my new pal ActiveRecord does not know anything about global Postgres sequences, so I had to figure out a way to use the hibernate sequence in a hack to get my unique IDs.</p>
<p>What I did was to use the hook  <code>before_validation_on_create </code> in the ActiveRecord table model to create an ID. This looks like this:</p>
<p>[ruby]<br />
class Term < ActiveRecord::Base<br />
  before_validation_on_create :generate_id</p>
<p>  private<br />
    # use the hibernate sequence to generate the next id<br />
    def generate_id<br />
      self.id = Term.connection,execute(&#8220;select nextval(&#8216;hibernate_sequence&#8217;)&#8221;).result[0][0]<br />
    end<br />
end<br />
[/ruby]</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/01/25/activerecord-and-hibernate-friends-or-foes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripting Happiness With Ruby&#8217;s ActiveRecord</title>
		<link>http://devgrind.com/2007/10/24/scripting-happiness-with-rubys-activerecord/</link>
		<comments>http://devgrind.com/2007/10/24/scripting-happiness-with-rubys-activerecord/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 15:48:04 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/10/24/scripting-happiness-with-rubys-activerecord/</guid>
		<description><![CDATA[I am currently enjoying the discovery of Ruby as a language for blazingly fast scripting database tasks. Like e.g. converting database records on the fly. The ActiveRecord module is a great help in that.]]></description>
			<content:encoded><![CDATA[<p>I am currently enjoying the discovery of Ruby as a language for blazingly fast scripting database tasks. Like e.g. converting database records on the fly. The <a href="http://ar.rubyonrails.org/">ActiveRecord</a> module is a <a href="http://schf.uc.org/articles/2005/08/09/using-activerecord-for-simple-maintenance-scripting">great</a> <a href="http://www.oreilly.com/pub/a/ruby/2007/06/21/how-to-build-simple-console-apps-with-ruby-and-activerecord.html?page=1">help</a> in that.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/10/24/scripting-happiness-with-rubys-activerecord/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quite Groovy</title>
		<link>http://devgrind.com/2007/07/07/quite-groovy/</link>
		<comments>http://devgrind.com/2007/07/07/quite-groovy/#comments</comments>
		<pubDate>Sat, 07 Jul 2007 11:51:54 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/07/07/quite-groovy/</guid>
		<description><![CDATA[In the recent weeks, both of my co-bloggers told me independently of each other about Groovy, the new hipster language which brings the scripting goodness of dynamic languages like Ruby and Smalltalk to the JVM Sweet JVM, so I finally couldn&#8217;t resist but take a look at it. To be honest, I didn&#8217;t like its [...]]]></description>
			<content:encoded><![CDATA[<p>In the recent weeks, both of my co-bloggers told me independently of each other about <a href="http://groovy.codehaus.org/">Groovy</a>, the new hipster language which brings the scripting goodness of dynamic languages like Ruby and Smalltalk to the <em>JVM Sweet JVM</em>, so I finally couldn&#8217;t resist but take a look at it. To be honest, I didn&#8217;t like its Java-like syntax from the beginning, with all the parentheses, lowerCamelCaseIdentifiers and such, but that was just because I prefer Ruby&#8217;s very lean syntax. Its concepts are very close to Ruby (modification of objects and classes at runtime, blocks/closures, etc.) and of course it integrates well with the Java platform and its rich libraries, since this is the purpose for which it was created, to add a scripting facility to the Java platform. Groovy scripts are compiled into bytecode before execution and thus run on a normal JVM.</p>
<p>A crucial part for dynamic languages today (at least in my eyes) is the creation of domain-specific language, which Groovy also supports. <a href="http://groovy.codehaus.org/Gant">Gant</a>, for example, is a Groovy DSL for Ant scripts. Another example (take from the Tutorial <a href="glaforge.free.fr/groovy/QCon-Tutorial-Groovy-DSL-2-colour.pdf">Domain-Specific Languages in Groovy</a>, PDF) I find very practical is a DSL for creating query criteria for Hibernate in the <a href="http://grails.codehaus.org/">Grails</a> framework (formerly known as Groovy on Rails, so its purpose should be clear):</p>
<pre>
def c = Account.createCriteria()
def results = c {
  like("holderFirstName", "Fred%")
  and {
    between("balance", 500, 1000)
    eq("branch", "London")
  }
  maxResults(10)
  order("holderLastName", "desc")
}</pre>
<p>A good thing, but looks too java-y for my taste, I miss the feeling I get when using a Ruby DSL, such as <a href="http://sqldsl.rubyforge.org/">SQL-DSL</a>, for example:</p>
<pre>
statement = Select[:column1, 'book', 10].from[:table1, :table2].where do
  equal :column1, 99
  not_equal :column1, 100
  less_than :column2, 'foo'
  less_than_or_equal :column3, :column4
  greater_than :column1, 0
  greater_than_or_equal :column2, 'bar'
  like :column1, 'any'
  is_not_null :column1
  is_in :column1, [1,2]
  is_not_in :column2, [3, 4]
  exists 0
  not_exists 0
end</pre>
<p>But maybe that&#8217;s just personal preference.</p>
<p>From a few first glance I get the impression, that Groovy is quite successful as a scripting sidekick to Java and I&#8217;m curious to learn more about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/07/07/quite-groovy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning by Testing</title>
		<link>http://devgrind.com/2007/05/22/learning-by-testing/</link>
		<comments>http://devgrind.com/2007/05/22/learning-by-testing/#comments</comments>
		<pubDate>Tue, 22 May 2007 12:57:26 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[languages]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/05/22/learning-by-testing/</guid>
		<description><![CDATA[A while ago, Mike Clark wrote two blog postings on how to learn Ruby by writing tests (#1, #2). He explains that he wrote a test for each bit he learned about the language, over the years collecting a set of more than 200 tests which act as his personal knowledge base on the Ruby [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago, Mike Clark wrote two blog postings on how to learn Ruby by writing tests (<a href="http://www.clarkware.com/cgi/blosxom/2005/03/18#RLT1">#1</a>, <a href="http://www.clarkware.com/cgi/blosxom/2005/04/08#RLT2">#2</a>). He explains that he wrote a test for each bit he learned about the language, over the years collecting a set of more than 200 tests which act as his personal knowledge base on the Ruby language:</p>
<blockquote><p>Through trial and error they taught me how Ruby and its rich set of libraries really work.  Not surprisingly, typing in code and running it makes you remember.  Indeed, writing learning tests is a fun way to poke and prod <em>any</em> new language or API. And with every test you write you&#8217;re investing in an executable knowledge base.</p></blockquote>
<p>Unfortunately I never tried this myself, but I like the idea. According to him, the benefit is twofold: The tests assist in acquiring and checking knowledge (by what he calls &#8220;asking Ruby&#8221;) and act as a knowledge base that manifests itself in code (and some documentation, where needed, I&#8217;d like to add).</p>
<p>Yet I am a little bit skeptical about &#8220;asking Ruby&#8221;. In his second posting, he suggests to &#8220;make a guess&#8221; in a particular case where he doesn&#8217;t know the result of a method invocation (<tt>"Rick".index('t')</tt>). Maybe I&#8217;m a bit hypersensitive here, but I have some reservations when it gets to <a href="http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/">using tests to find out how things (could or should) work</a>. I&#8217;d think it would it be better to just look it up in a reference and write the test afterwards. The main reason is that using one test case (or a few) will give you one (or few) results, from which you will have to draw conclusions and generalize&#8212;the semantics of the <tt>index</tt> method in this case. What if your conclusions are wrong for some exceptional cases? Is it possible/feasible/desirable to write tests for each and every combination of parameters for a method? Why not trying a &#8220;read first&#8221; approach?</p>
<p>Nevertheless, the basic idea of using test cases for playing around with a language and collecting them as a reference is a nice idea. I&#8217;ll almost certainly try this the next time want to learn something about Ruby or a different language.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/05/22/learning-by-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

