<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: One Thing: Extract till you Drop.</title>
    <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>One Thing: Extract till you Drop.</title>
      <description>&lt;p&gt;For years authors and consultants (like me) have been telling us that functions should do &lt;em&gt;one thing&lt;/em&gt;.  They should do it well.  They should do it only.&lt;/p&gt;


	&lt;p&gt;The question is: What the hell does &amp;#8220;one thing&amp;#8221; mean?&lt;/p&gt;


	&lt;p&gt;After all, one man&amp;#8217;s &amp;#8220;one thing&amp;#8221; might be someone else&amp;#8217;s &amp;#8220;two things&amp;#8221;.&lt;/p&gt;


Consider this class:
&lt;pre&gt;
  class SymbolReplacer {
    protected String stringToReplace;
    protected List&amp;lt;String&amp;gt; alreadyReplaced = new ArrayList&amp;lt;String&amp;gt;();

    SymbolReplacer(String s) {
      this.stringToReplace = s;
    }

    String replace() {
      Pattern symbolPattern = Pattern.compile("\\$([a-zA-Z]\\w*)");
      Matcher symbolMatcher = symbolPattern.matcher(stringToReplace);
      while (symbolMatcher.find()) {
        String symbolName = symbolMatcher.group(1);
        if (getSymbol(symbolName) != null &amp;#38;&amp;#38; !alreadyReplaced.contains(symbolName)) {
          alreadyReplaced.add(symbolName);
          stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName));
        }
      }
      return stringToReplace;
    }

    protected String translate(String symbolName) {
      return getSymbol(symbolName);
    }
  }
&lt;/pre&gt;

	&lt;p&gt;It&amp;#8217;s not too hard to understand.  The &lt;span style="font-family:courier;"&gt;replace()&lt;/span&gt; function searches through a string looking for &lt;em&gt;$NAME&lt;/em&gt; and replaces each instance with the appropriate translation of &lt;em&gt;&lt;span class="caps"&gt;NAME&lt;/span&gt;&lt;/em&gt;.  It also makes sure that it doesn&amp;#8217;t replace a name more than once.  Simple.&lt;/p&gt;


	&lt;p&gt;Of course the words &amp;#8220;It also&amp;#8230;&amp;#8221; pretty much proves that this function does more than one thing.  So we can probably split the function up into two functions as follows:&lt;/p&gt;


&lt;pre&gt;
    String replace() {
      Pattern symbolPattern = Pattern.compile("\\$([a-zA-Z]\\w*)");
      Matcher symbolMatcher = symbolPattern.matcher(stringToReplace);
      while (symbolMatcher.find()) {
        String symbolName = symbolMatcher.group(1);
        replaceAllInstances(symbolName);
      }
      return stringToReplace;
    }

    private void replaceAllInstances(String symbolName) {
      if (getSymbol(symbolName) != null &amp;#38;&amp;#38; !alreadyReplaced.contains(symbolName)) {
        alreadyReplaced.add(symbolName);
        stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName));
      }
    }
&lt;/pre&gt;

	&lt;p&gt;OK, so now the &lt;span style="font-family:courier;"&gt;replace()&lt;/span&gt; function simply finds all the symbols that need replacing, and the &lt;span style="font-family:courier;"&gt;replaceAllInstances()&lt;/span&gt; function replaces them if they haven&amp;#8217;t already been replaced.  So do these function do one thing each?&lt;/p&gt;


	&lt;p&gt;Well, the &lt;span style="font-family:courier;"&gt;replace()&lt;/span&gt; compiles the pattern and build the &lt;span style="font-family:courier;"&gt;Matcher()&lt;/span&gt;  Maybe those actions should be moved into the constructor?&lt;/p&gt;


&lt;pre&gt;
  class SymbolReplacer {
    protected String stringToReplace;
    protected List&amp;lt;String&amp;gt; alreadyReplaced = new ArrayList&amp;lt;String&amp;gt;();
    private Matcher symbolMatcher;
    private final Pattern symbolPattern = Pattern.compile("\\$([a-zA-Z]\\w*)");

    SymbolReplacer(String s) {
      this.stringToReplace = s;
      symbolMatcher = symbolPattern.matcher(s);
    }

    String replace() {
      while (symbolMatcher.find()) {
        String symbolName = symbolMatcher.group(1);
        replaceAllInstances(symbolName);
      }
      return stringToReplace;
    }

    private void replaceAllInstances(String symbolName) {
      if (getSymbol(symbolName) != null &amp;#38;&amp;#38; !alreadyReplaced.contains(symbolName)) {
        alreadyReplaced.add(symbolName);
        stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName));
      }
    }

    protected String translate(String symbolName) {
      return getSymbol(symbolName);
    }
  }
&lt;/pre&gt;

	&lt;p&gt;OK, so &lt;em&gt;now&lt;/em&gt; certainly the &lt;span style="font-family:courier;"&gt;replace()&lt;/span&gt; function is doing &lt;em&gt;one thing&lt;/em&gt;?  Ah, but I see at least two.  It loops, extracts the &lt;span style="font-family:courier;"&gt;symbolName&lt;/span&gt; and then does the replace.  OK, so how about this?&lt;/p&gt;


&lt;pre&gt;
    String replace() {
      for (String symbolName = nextSymbol(); symbolName != null; symbolName = nextSymbol())
        replaceAllInstances(symbolName);

      return stringToReplace;
    }

    private String nextSymbol() {
      return symbolMatcher.find() ? symbolMatcher.group(1) : null;
    }
&lt;/pre&gt;

	&lt;p&gt;I had to restructure things a little bit.  The loop is a bit ugly.  I wish I could have said &lt;span style="font-family:courier;"&gt;for (String symbolName : symbolMatcher)&lt;/span&gt; but I guess &lt;span style="font-family:courier;"&gt;Matchers&lt;/span&gt; don&amp;#8217;t work that way.&lt;/p&gt;


	&lt;p&gt;I kind of like the &lt;span style="font-family:courier;"&gt;nextSymbol()&lt;/span&gt; function.  It gets the &lt;span style="font-family:courier;"&gt;Matcher&lt;/span&gt; nicely out of the way.&lt;/p&gt;


	&lt;p&gt;So now the &lt;span style="font-family:courier;"&gt;replace()&lt;/span&gt; and &lt;span style="font-family:courier;"&gt;nextSymbol()&lt;/span&gt; functions are &lt;em&gt;certainly&lt;/em&gt; doing one thing.  Aren&amp;#8217;t they?&lt;/p&gt;


	&lt;p&gt;Well, I suppose I could separate the loop from the return in &lt;span style="font-family:courier;"&gt;replace()&lt;/span&gt;.&lt;/p&gt;


&lt;pre&gt;
    String replace() {
      replaceAllSymbols();
      return stringToReplace;
    }

    private void replaceAllSymbols() {
      for (String symbolName = nextSymbol(); symbolName != null; symbolName = nextSymbol())
        replaceAllInstances(symbolName);
    }
&lt;/pre&gt;

	&lt;p&gt;I don&amp;#8217;t see how I could make these functions smaller.  They &lt;em&gt;must&lt;/em&gt; be doing &lt;em&gt;one thing&lt;/em&gt;.  There&amp;#8217;s no way to extract any other functions from them!&lt;/p&gt;


	&lt;p&gt;Uh&amp;#8230;  Wait.  Is &lt;em&gt;that&lt;/em&gt; the definition of &lt;em&gt;one thing&lt;/em&gt;?  Is a function doing &lt;em&gt;one thing&lt;/em&gt; if, and only if, you simply cannot extract any other functions from it?  What else &lt;em&gt;could&lt;/em&gt; &amp;#8220;one thing&amp;#8221; mean?  After all, If I can extract one function out of another, the original function must have been doing more than one thing.&lt;/p&gt;


	&lt;p&gt;So does that mean that for all these years the authors and consultants (like me) have been telling us to extract until you can&amp;#8217;t extract anymore?&lt;/p&gt;


Let&amp;#8217;s try that with the rest of this class and see what it looks like&amp;#8230;
&lt;pre&gt;
  class SymbolReplacer {
    protected String stringToReplace;
    protected List&amp;lt;String&amp;gt; alreadyReplaced = new ArrayList&amp;lt;String&amp;gt;();
    private Matcher symbolMatcher;
    private final Pattern symbolPattern = Pattern.compile("\\$([a-zA-Z]\\w*)");

    SymbolReplacer(String s) {
      this.stringToReplace = s;
      symbolMatcher = symbolPattern.matcher(s);
    }

    String replace() {
      replaceAllSymbols();
      return stringToReplace;
    }

    private void replaceAllSymbols() {
      for (String symbolName = nextSymbol(); symbolName != null; symbolName = nextSymbol())
        replaceAllInstances(symbolName);
    }

    private String nextSymbol() {
      return symbolMatcher.find() ? symbolMatcher.group(1) : null;
    }

    private void replaceAllInstances(String symbolName) {
      if (shouldReplaceSymbol(symbolName))
        replaceSymbol(symbolName);
    }

    private boolean shouldReplaceSymbol(String symbolName) {
      return getSymbol(symbolName) != null &amp;#38;&amp;#38; !alreadyReplaced.contains(symbolName);
    }

    private void replaceSymbol(String symbolName) {
      alreadyReplaced.add(symbolName);
      stringToReplace = stringToReplace.replace(
        symbolExpression(symbolName), 
        translate(symbolName));
    }

    private String symbolExpression(String symbolName) {
      return "$" + symbolName;
    }

    protected String translate(String symbolName) {
      return getSymbol(symbolName);
    }
  }
&lt;/pre&gt;

	&lt;p&gt;Well, I think it&amp;#8217;s pretty clear that each of these functions is doing &lt;em&gt;one thing&lt;/em&gt;.  I&amp;#8217;m not sure how I&amp;#8217;d extract anything further from any of them.&lt;/p&gt;


	&lt;p&gt;Perhaps you think this is taking things too far.  I used to think so too.  But after programming for over 40+ years, I&amp;#8217;m beginning to come to the conclusion that this level of extraction is not taking things too far at all.  In fact, to me, it looks just about right.&lt;/p&gt;


	&lt;p&gt;So, my advice: Extract till you just can&amp;#8217;t extract any more.  Extract till you drop.&lt;/p&gt;


	&lt;p&gt;After all, with modern tools it takes &lt;em&gt;very&lt;/em&gt; little time.  It makes each function almost trivial.  The code reads very nicely.  It forces you to put little snippets of code into nicely named functions.  And, well gosh, extracting till you drop is kind of fun!&lt;/p&gt;</description>
      <pubDate>Fri, 11 Sep 2009 13:33:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fa921995-cdc4-4867-8541-9bfa9a2834e4</guid>
      <author>Uncle Bob</author>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop</link>
      <category>Uncle Bob's Blatherings</category>
      <category>Software Craftsmanship</category>
      <category>Design Principles</category>
      <category>Clean Code</category>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by I really love reading your comments guys.I learn a lot from you.&lt;br&gt;&lt;br&gt;Thank you so much &lt;br&gt;&lt;br&gt;Regard,&lt;br&gt;&lt;br&gt;Day Traders</title>
      <description>&lt;p&gt;I really love reading your comments guys.I learn a lot from you.&lt;/p&gt;


	&lt;p&gt;Thank you so much&lt;/p&gt;


	&lt;p&gt;Regard,&lt;/p&gt;


	&lt;p&gt;Day Traders&lt;/p&gt;</description>
      <pubDate>Thu, 09 Feb 2012 05:43:51 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:1584562e-2653-4914-9055-da3f071c8804</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-202644</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Microsoft Office 2010</title>
      <description>&lt;p&gt;This article is GREAT it can be EXCELLENT JOB and what a great tool!&lt;/p&gt;</description>
      <pubDate>Fri, 13 Jan 2012 20:04:12 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:5b5fe801-d3a2-4131-ae36-db132d94b0b3</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-197742</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Muffazal Lakdawala</title>
      <description>&lt;p&gt;Nice post. I will be back to read more of such post keep going.&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jan 2012 04:20:08 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6ab01323-be45-46b0-93dc-e7295d2233ad</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-196732</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by iPhone contacts backup</title>
      <description>&lt;p&gt;Hi, all. It is a better idea to backup iPhone content such as contacts, sms and other media files to computer in case they lost by accidently.&lt;/p&gt;</description>
      <pubDate>Wed, 04 Jan 2012 06:20:29 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:83e6b2dd-2484-4823-8681-c6427101a2eb</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-194720</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Weight Loss Surgeon</title>
      <description>&lt;p&gt;This is really great i was expecting something like this form you great post keep going.&lt;/p&gt;</description>
      <pubDate>Thu, 22 Dec 2011 03:54:03 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:de6b2e13-cdae-4488-9ae6-81e2082ca024</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-190382</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by FLOWERS</title>
      <description>&lt;p&gt;The blog is very much interesting with the subject.&lt;a href="http://dorchanthingsflowers.blogspot.com/" rel="nofollow"&gt;FLOWERS&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 19 Dec 2011 01:54:18 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:7d62148a-559d-41cb-97a3-44560aa34bd7</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-189071</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Agree with Angry Man</title>
      <description>&lt;p&gt;The refactored code is absolutely retarded. The first is the best. The second try is acceptable. The rest: fucking garbage.&lt;/p&gt;</description>
      <pubDate>Thu, 08 Dec 2011 17:30:25 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:5494d583-6024-4e45-a358-f2572b58f94a</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-184653</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by mowing lawns</title>
      <description>&lt;p&gt;The blog is very much interesting with the subject.&lt;/p&gt;</description>
      <pubDate>Fri, 02 Dec 2011 01:20:02 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:0e5f0c61-2a3d-46e8-b770-3e7c3773ae36</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-180927</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by I really love reading your comments guys.I learn a lot from you.&lt;br&gt;&lt;br&gt;Thank you so much &lt;br&gt;&lt;br&gt;Regard,&lt;br&gt;&lt;br&gt;Epoyjun</title>
      <description>&lt;p&gt;I really love reading your comments guys.I learn a lot from you.&lt;/p&gt;


	&lt;p&gt;Thank you so much&lt;/p&gt;


	&lt;p&gt;Regard,&lt;/p&gt;


	&lt;p&gt;Epoyjun&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 07:26:16 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:de75b46c-9a65-4ced-866e-266aeaada337</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-180730</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by most efficient space heater</title>
      <description>&lt;p&gt;I really enjoyed reading this. 
&lt;a href="http://www.bestspaceheater.org" rel="nofollow"&gt;most efficient space heater&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 03:56:24 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c02672d2-2e41-45c9-b779-faf79e34bf1a</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-180667</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by most efficient space heater</title>
      <description>&lt;p&gt;I really enjoyed reading this. 
&lt;a href="http://www.bestspaceheater.org" rel="nofollow"&gt;most efficient space heater&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 03:52:44 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:2fb3f9ed-8541-4dca-96e0-746e46401002</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-180666</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by crest printable coupons</title>
      <description>&lt;p&gt;I wanted to thanks for your time for this wonderful read!!
&lt;a href="http://crestcouponsv.com/" rel="nofollow"&gt;crest printable coupons&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 03:49:56 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:8378f28a-a57e-4ea4-8e54-9f77f68f44c7</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-180664</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by tv show</title>
      <description>&lt;p&gt;great post!
thanks a lot! keep it up;)&lt;/p&gt;</description>
      <pubDate>Sat, 26 Nov 2011 09:54:38 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b827b294-05cb-4af0-bed7-a8b47aa2a40f</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-178748</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by web design Hertfordshire</title>
      <description>&lt;p&gt;Function description seem really good and reliable.&lt;/p&gt;</description>
      <pubDate>Thu, 24 Nov 2011 00:37:39 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:05a9b944-ff1b-4353-900f-371014577c5c</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-177347</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by cheap soccer jerseys</title>
      <description>&lt;p&gt;You make it entertaining and you still manage to keep it smart.&lt;/p&gt;


	&lt;p&gt;This is truly a great blog thanks for sharing&#8230;&lt;/p&gt;


	&lt;p&gt;In most cases I don&#8217;t make comments on blogs, but I want to mention that this post really forced me to do so. Really nice post!&lt;/p&gt;


	&lt;p&gt;Your posts are extremely helpful and informative.&lt;/p&gt;</description>
      <pubDate>Thu, 17 Nov 2011 21:49:12 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:50a0b1aa-585c-49fe-866d-773178b56486</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-175004</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Dr Dre beats Headphones Canada</title>
      <description>&lt;p&gt;The new DR-BT140QStereoBluetooth head set with comfortable ear hook design and introduction regarding black,&lt;/p&gt;</description>
      <pubDate>Sat, 12 Nov 2011 02:04:36 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:19a6235d-e9ce-4c2f-86b0-bbfbadbcdcb9</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-171791</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by chiropractor virginia beach</title>
      <description>&lt;p&gt;I would like to say that this blog really convinced me, you give me best information! Thanks, very good post.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Nov 2011 01:46:15 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e3f7581d-e0f9-42f0-99b1-ba21cfb212ef</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-171281</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Cheap Beats By Dr.Dre</title>
      <description>&lt;p&gt;Today the market is flooded with greater variety and headphones&lt;/p&gt;</description>
      <pubDate>Tue, 08 Nov 2011 04:47:37 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a7a3b901-d441-4802-a2f1-845671cb9044</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-169896</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Custom Backpack</title>
      <description>&lt;p&gt;very nice post, good job&lt;/p&gt;</description>
      <pubDate>Tue, 01 Nov 2011 08:03:39 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:531750f7-2f37-46bf-9fb1-963b2677db7d</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-166717</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by ysbearing/yisong@1stbearing.com</title>
      <description>&lt;p&gt;Slewing bearing called slewing ring bearings, is a comprehensive load to bear a large bearing, can bear large axial, radial load and overturning moment. &lt;a href="http://www.1stbearing.com" rel="nofollow"&gt;http://www.1stbearing.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 01:46:45 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:db82ee02-b8bb-4b87-989d-37e3bce81614</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-159341</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by DC Hats</title>
      <description>&lt;p&gt;mastering a terrific deal much more on this matter. If feasible, as you obtain knowledge, would you thoughts updating your web site with a wonderful deal more information? Its very helpful personally.&lt;/p&gt;</description>
      <pubDate>Fri, 14 Oct 2011 03:43:19 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b4be4108-26d2-4684-b7e8-6fc850874eff</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-156407</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by topwowgogo@gmail.com</title>
      <description>&lt;p&gt;WOW!!!!The first impression your blog give to me is so distinctive,very honored to you can share with us your blog.
Have a lot of harvest,your masterpiece,thank you very much.
In order to thank,I will also give you the way to share a resource &lt;a href="http://www.wholesaleoutletnfljerseys.com" rel="nofollow"&gt;Cheap Replica NFL Jerseys&lt;/a&gt;.
I had visited this &lt;a href="http://www.wholesaleoutletnfljerseys.com" rel="nofollow"&gt;Wholesale NFL Jerseys China&lt;/a&gt; already,and have gained.Guarantee you will like &lt;a href="http://www.wholesaleoutletnfljerseys.com" rel="nofollow"&gt;Womens NFL Jerseys&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 13 Oct 2011 03:15:06 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c4ef722a-2d37-4adb-8a82-009baf2fc4cf</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-155890</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Longchamp outlet</title>
      <description>&lt;p&gt;You are perfectly correct on that!&lt;/p&gt;


	&lt;p&gt;It was quite a good read. Good efforts from the webmaster.&lt;/p&gt;</description>
      <pubDate>Sun, 09 Oct 2011 22:04:28 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:789029b6-e42c-4553-8b7f-2eb33d191ac0</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-153208</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by juicy couture tracksuits</title>
      <description>&lt;p&gt;I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!&lt;/p&gt;


	&lt;p&gt;Resources like the one you mentioned here will be very useful to me!&lt;/p&gt;


	&lt;p&gt;I am glad you have posted information on this topic.I hope you will keep this blog up to date with more informatio&lt;/p&gt;</description>
      <pubDate>Sun, 09 Oct 2011 22:03:18 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c11fcdab-e127-4a3f-9437-11ed8025f205</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-153207</link>
    </item>
    <item>
      <title>"One Thing: Extract till you Drop." by Cheap Soccer Jerseys</title>
      <description>&lt;p&gt;This is exactly what i was looking for. thank you for the informative post and keep up the good work! Big thanks for the useful info i found on&lt;/p&gt;


	&lt;p&gt;I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!&lt;/p&gt;</description>
      <pubDate>Sun, 09 Oct 2011 22:01:42 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:024a0936-ff7b-4210-9620-ffea1deb0154</guid>
      <link>http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-153205</link>
    </item>
  </channel>
</rss>

