Object Mentor Blog: One Thing: Extract till you Drop. http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop en-us 40 One Thing: Extract till you Drop. <p>For years authors and consultants (like me) have been telling us that functions should do <em>one thing</em>. They should do it well. They should do it only.</p> <p>The question is: What the hell does &#8220;one thing&#8221; mean?</p> <p>After all, one man&#8217;s &#8220;one thing&#8221; might be someone else&#8217;s &#8220;two things&#8221;.</p> Consider this class: <pre> class SymbolReplacer { protected String stringToReplace; protected List&lt;String&gt; alreadyReplaced = new ArrayList&lt;String&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 &#38;&#38; !alreadyReplaced.contains(symbolName)) { alreadyReplaced.add(symbolName); stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName)); } } return stringToReplace; } protected String translate(String symbolName) { return getSymbol(symbolName); } } </pre> <p>It&#8217;s not too hard to understand. The <span style="font-family:courier;">replace()</span> function searches through a string looking for <em>$NAME</em> and replaces each instance with the appropriate translation of <em><span class="caps">NAME</span></em>. It also makes sure that it doesn&#8217;t replace a name more than once. Simple.</p> <p>Of course the words &#8220;It also&#8230;&#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:</p> <pre> 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 &#38;&#38; !alreadyReplaced.contains(symbolName)) { alreadyReplaced.add(symbolName); stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName)); } } </pre> <p>OK, so now the <span style="font-family:courier;">replace()</span> function simply finds all the symbols that need replacing, and the <span style="font-family:courier;">replaceAllInstances()</span> function replaces them if they haven&#8217;t already been replaced. So do these function do one thing each?</p> <p>Well, the <span style="font-family:courier;">replace()</span> compiles the pattern and build the <span style="font-family:courier;">Matcher()</span> Maybe those actions should be moved into the constructor?</p> <pre> class SymbolReplacer { protected String stringToReplace; protected List&lt;String&gt; alreadyReplaced = new ArrayList&lt;String&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 &#38;&#38; !alreadyReplaced.contains(symbolName)) { alreadyReplaced.add(symbolName); stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName)); } } protected String translate(String symbolName) { return getSymbol(symbolName); } } </pre> <p>OK, so <em>now</em> certainly the <span style="font-family:courier;">replace()</span> function is doing <em>one thing</em>? Ah, but I see at least two. It loops, extracts the <span style="font-family:courier;">symbolName</span> and then does the replace. OK, so how about this?</p> <pre> String replace() { for (String symbolName = nextSymbol(); symbolName != null; symbolName = nextSymbol()) replaceAllInstances(symbolName); return stringToReplace; } private String nextSymbol() { return symbolMatcher.find() ? symbolMatcher.group(1) : null; } </pre> <p>I had to restructure things a little bit. The loop is a bit ugly. I wish I could have said <span style="font-family:courier;">for (String symbolName : symbolMatcher)</span> but I guess <span style="font-family:courier;">Matchers</span> don&#8217;t work that way.</p> <p>I kind of like the <span style="font-family:courier;">nextSymbol()</span> function. It gets the <span style="font-family:courier;">Matcher</span> nicely out of the way.</p> <p>So now the <span style="font-family:courier;">replace()</span> and <span style="font-family:courier;">nextSymbol()</span> functions are <em>certainly</em> doing one thing. Aren&#8217;t they?</p> <p>Well, I suppose I could separate the loop from the return in <span style="font-family:courier;">replace()</span>.</p> <pre> String replace() { replaceAllSymbols(); return stringToReplace; } private void replaceAllSymbols() { for (String symbolName = nextSymbol(); symbolName != null; symbolName = nextSymbol()) replaceAllInstances(symbolName); } </pre> <p>I don&#8217;t see how I could make these functions smaller. They <em>must</em> be doing <em>one thing</em>. There&#8217;s no way to extract any other functions from them!</p> <p>Uh&#8230; Wait. Is <em>that</em> the definition of <em>one thing</em>? Is a function doing <em>one thing</em> if, and only if, you simply cannot extract any other functions from it? What else <em>could</em> &#8220;one thing&#8221; mean? After all, If I can extract one function out of another, the original function must have been doing more than one thing.</p> <p>So does that mean that for all these years the authors and consultants (like me) have been telling us to extract until you can&#8217;t extract anymore?</p> Let&#8217;s try that with the rest of this class and see what it looks like&#8230; <pre> class SymbolReplacer { protected String stringToReplace; protected List&lt;String&gt; alreadyReplaced = new ArrayList&lt;String&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 &#38;&#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); } } </pre> <p>Well, I think it&#8217;s pretty clear that each of these functions is doing <em>one thing</em>. I&#8217;m not sure how I&#8217;d extract anything further from any of them.</p> <p>Perhaps you think this is taking things too far. I used to think so too. But after programming for over 40+ years, I&#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.</p> <p>So, my advice: Extract till you just can&#8217;t extract any more. Extract till you drop.</p> <p>After all, with modern tools it takes <em>very</em> 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!</p> Fri, 11 Sep 2009 13:33:00 -0500 urn:uuid:fa921995-cdc4-4867-8541-9bfa9a2834e4 Uncle Bob http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop Uncle Bob's Blatherings Software Craftsmanship Design Principles Clean Code "One Thing: Extract till you Drop." by ebay swarovski <p>Everybody wants to smell lovely and <a href="http://www.swarovski-onlineoutlets.com/" rel="nofollow">ebay swarovski</a> the sales of perfume and related <a href="http://www.swarovski-onsales.com/birthday-gifts_v55/bracelets_c4" rel="nofollow">birthstone bangle bracelets</a> products are on the increase. The <a href="http://www.swarovski-onlineoutlets.com/swarovski-crystal-1097198-hello-kitty-bangle-outlet_p3040239.html" rel="nofollow">swarovski hello kitty</a> brands can be extremely expensive <a href="http://www.swarovski-onlineoutlets.com/charm-bracelets_v9/swarovski-bracelets_c2" rel="nofollow">picture charm bracelets</a> and you will learn how to choose the right perfume here.</p> Thu, 05 Jul 2012 22:40:51 -0500 urn:uuid:467cd146-122b-4dcf-ac69-518989518cec http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-232949 "One Thing: Extract till you Drop." by li wo <p>beats by dre headphone vivienne westwood Melissa chirstian louboutin sale michael kors outlet store vivienne westwood handbags</p> <p><a href="http://www.cheapmichaelkorsale.com/" rel="nofollow"><strong>michael kors outlet store</strong></a>The newly elected President of Egypt Morsy muhammad published the first speech since his victory over ahmed ShaFei g announced on Sunday night, vowed to &#8220;protect the international agreement and obligations&#8221;, this seems to be a reference of the peace treaty with Israel..<a href="http://www.cheapchristianLouboutinpumpssaLe.com" rel="nofollow"><strong>chirstian louboutin outlet </strong></a></p> <p><a href="http://viviennewestwood.cc" rel="nofollow"><strong> vivienne westwood melissa </strong></a> Morsy tried to appease those worried that he will take immediate action to change the whole Egypt, is expected to become the President all the egyptians, &#8220;muslims, christians, old people, children, women and men, farmers, teachers, workers, those engaged in the private and public sectors, the businessmen.&#8221;<a href="http://www.cheapbeatsbydrestudioheadphone.com" rel="nofollow"><strong>beats by dre headphone</strong></a></p> <p><a href="http://www.cheapmichaelkorsshoesoutlet.com/" rel="nofollow"><strong> michael kors clearance bags</strong></a> Morsy welcome Obama&#8217;s support, the two leaders reaffirm their dedicated to advancing US-Egypt partnership, agreed to maintain close contact with the future of a few weeks, months, according to the statement.<a href="http://www.cheapchristianLouboutinpumpssaLe.com" rel="nofollow"><strong> Christian Louboutin Daffodile 160mm Pumps</strong></a></p> Tue, 26 Jun 2012 07:41:44 -0500 urn:uuid:cf4d382f-865e-4d82-8bc2-ac0d29c39912 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-231660 "One Thing: Extract till you Drop." by Silicone Molding <p>With more than 20 years of experience, Intertech provides an extensive integrated operational ability from design to production of molds 100% made in Taiwan. Additional to our own mold making factory, we also cooperate with our team vendors to form a very strong working force in Taiwan.</p> <p>For the overseas market, we work very closely with local representatives in order to take care of the technical communication and after-sales service to our customers. We also participate in the EUROMOLD &#38; FAKUMA exhibitions and meet our customers every year in Europe. By concentrating on mold &#8220;niche markets&#8221;, we play a very useful mold maker role from the Far East whenever customers want to develop their new projects. We provide services from A to Z to our customers on a very economic cost and effect basis.</p> Wed, 20 Jun 2012 00:56:35 -0500 urn:uuid:18f0d505-e4e1-48fc-949e-0c1b0d8b815e http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-230183 "One Thing: Extract till you Drop." by michael kors sale <p><a href="http://www.newmichaelkorshandbags.com/michael-kors-classic-tote/161-michael-kors-handbags-mk-medium-black-hardware.html" rel="nofollow">michael kors black bag</a> The best way to learn about this would be to visit <a href="http://www.newmichaelkorshandbags.com/12-michael-kors-classic-tote" rel="nofollow">michael kors tote sale</a>SellBeatsNow.com or click the links in the <a href="http://www.newmichaelkorshandbags.com/" rel="nofollow">michael kors bags sale</a>Author/Resource Box, otherwise known as the paragraph below&#8230; <a href="http://www.newmichaelkorshandbags.com/12-michael-kors-classic-tote" rel="nofollow">michael kors tote bag</a> Be sure to join the mailing list and if you want to become an expert of Soundclick fast, then be sure to download <a href="http://www.newmichaelkorshandbags.com/11-michael-kors-satchel" rel="nofollow">michael kors satchel handbag</a>the eBook package as well. Seville is the intoxicating capital of southern Spain, a place of rich <a href="http://www.newmichaelkorshandbags.com/9-michael-kors-shoulder-bags" rel="nofollow">michael kors shoulder bag</a>historic and cultural heritage, where contrasting Roman, Moorish and Christian influences combine to create a <a href="http://www.newmichaelkorshandbags.com/6-michael-kors-hamilton-tote" rel="nofollow">michael kors hamilton handbag</a>unique, unforgettable experience for the curious visitor. If you are planning a holiday or weekend break <a href="http://www.newmichaelkorshandbags.com/michael-kors-hamilton-tote/11-michael-kors-hamilton-large-tote-black-leather.html" rel="nofollow">michael kors hamilton large tote</a>in the city, be sure to seek out some of the sights below. Barrio Santa Cruz Whitewashed buildings <a href="http://www.newmichaelkorshandbags.com/6-michael-kors-hamilton-tote" rel="nofollow">michael kors hamilton bag</a></p> Fri, 08 Jun 2012 01:18:12 -0500 urn:uuid:953556fc-3506-4827-b3b2-84281b42104a http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-228625 "One Thing: Extract till you Drop." by Guess <p>Lorsque the début du printemps de l&#8217;automne et l&#8217;hiver de 2011, &#8220;les animaux féroces&#8221; remplacé avec des fleurs hawaïennes durante pleine floraison au début du printemps 2012, l&#8217;ensemble des pulls de repent de pattern enfants, boîte de category chemise à manches courtes aussi aux concepteurs Guess l&#8217;ensemble des mains reculent Emotional et aléatoire, durante Guess 2012 série femmes de vacances strenght, l&#8217;atmosphère, et l&#8217;ensemble des qualités no conventionnelles: pulls tricotés et l&#8217;ensemble des robes ze regrouper, &#8220;longe l . a . clé dans the collier, fleurs rouge vif à vert olive, l . a . lumière bleue fleur gratuite de affectionate towards&#8230;<br /><br /></p> <pre><code>Côté du corps de veste-cravate supérieure serrée, de l'autre côté s'avère être positif sur the dos sont the creusement de l . a . grande spot, du côté jupe Jinzhai s'avère être naturellement attiré de montrer l'ensemble des jambes grêles, Guess l . a . apprehension d'un wonderful nombre de collision telles contradictions, quand vous pensez que chaque l'ensemble des satellites boutons Département méticuleuse d'une chemise n't peu trop bon conservateur, il b feeling l . a . catharsis bathrobe sexxy transparente dans l . a . décoration pourpre de modèle paillettes; Quand vous sentez que quelques pulls larges col rond, gilets de motards durante cuir, sur the landscapes de gaz neutre s'avère être trop fortification, auront bathrobe soutien-gorge bien ajusté durante trois length and width de pliage d'une grande zoom storage containers . montrer aux femmes n't charme propre.<br /><br /></code></pre> <p>Durante and de l&#8217;impression pattern hawaïen belle Guess série 2012 début vacances de printemps de l . a . femme durante black and white blanc, vert olive, bathrobe encre bleue sera and d&#8217;encre consacré dans l . a . mountainous the profil-type robes coupées emprunté depuis l&#8217;ensemble des années 1950 pattern de maillot de bain, et donc une combinaison and harmonieuse des sportifs pulls tricotés, durante vrac blanc, veste de fancy dress costume d&#8217;olive verte, avec neuf a short time de Bell-fonds, avec n&#8217;t spartiates corde durante forme, emotion de détente s&#8217;avère être indispensable dans l . a . série de vacances.<a href="http://www.guess-fr.com/" rel="nofollow">http://www.guess-fr.com/</a></p> Fri, 01 Jun 2012 21:41:16 -0500 urn:uuid:b4f192cc-bb5d-4124-b1df-3a35aec25f29 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-227226 "One Thing: Extract till you Drop." by cheap mlb hats <p>Wonderlic, Incorporated.implemented <a href="http://www.fashionmlbhats.com" rel="nofollow">ball hats</a> it has the initially audit around 1937. Since then around 130 million possible workers took this kind of examination around just about every marketplace in existence. The exam <a href="http://www.fashionmlbhats.com" rel="nofollow">cheap mlb hats</a> is utilized by employers like a typical assess for considering learning ability and also problem-solving characteristics seen in possible people their offered labourforce.</p> Wed, 30 May 2012 21:36:05 -0500 urn:uuid:a092352a-01b1-4ea5-bce1-d650f3b84cb2 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-226920 "One Thing: Extract till you Drop." by longchamp outlet online <p>sadsadsadsa</p> Tue, 22 May 2012 20:17:16 -0500 urn:uuid:c5cd953b-925a-4ab3-a47c-d9e860d9ce4e http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-225874 "One Thing: Extract till you Drop." by Injection mold <p>Intertech Machinery Inc. provides the most precise Plastic Injection Mold and Rubber Molds from Taiwan. With applying excellent unscrewing device in molds,</p> <p>Intertech is also very professional for making flip top Cap Molds in the world. Mold making is the core business of Intertech (Taiwan). With world level technology, Intertech enjoys a very good reputation for making Injection Mold and Plastic Molds for their worldwide customers.</p> Wed, 16 May 2012 03:03:16 -0500 urn:uuid:121d8454-7bb6-44f3-8eb2-b539cabc66ef http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-224885 "One Thing: Extract till you Drop." by Injection mold <p>Intertech Machinery Inc. provides the most precise Plastic Injection Mold and Rubber Molds from Taiwan. With applying excellent unscrewing device in molds,</p> <p>Intertech is also very professional for making flip top Cap Molds in the world. Mold making is the core business of Intertech (Taiwan). With world level technology, Intertech enjoys a very good reputation for making Injection Mold and Plastic Molds for their worldwide customers.</p> Wed, 16 May 2012 03:01:27 -0500 urn:uuid:f9dba934-f1d7-4b95-b454-586daaf6ae41 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-224883 "One Thing: Extract till you Drop." by bistra <p>Yap Great post! Nice and informative, I really enjoyed reading it and will certainly share this post with my friends . Read everything you ever wanted to know about . <a href="http://24addictinggames.com" rel="nofollow">http://24addictinggames.com</a></p> Sat, 14 Apr 2012 08:47:51 -0500 urn:uuid:d207b029-4745-4380-a2dc-e09c569cdfa1 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-217185 "One Thing: Extract till you Drop." by Lemo <p>Cool, I have not seen one specifically just for navigation to pages alone. Most are for comments or categories. One that uses the new menus feature in 3.0+ so I can make a navigation menu would be exactly what I am looking for. I can not find one and am surprised nobody has created one.</p> <p><a href="http://www.audubonsupply.com/browse.cfm/plumbing-accessories/2,291.html" rel="nofollow">Plumbing accessories</a> | <a href="http://www.audubonsupply.com/browse.cfm/plumbing-accessories/2,291.html" rel="nofollow">Plumbing parts</a> | <a href="http://www.audubonsupply.com/browse.cfm/plumbing-fittings/2,26.html" rel="nofollow">Plumbing fittings</a></p> Thu, 12 Apr 2012 03:49:02 -0500 urn:uuid:222d3c08-f018-4812-9910-c23f7b7dd80e http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-216650 "One Thing: Extract till you Drop." by Jacks <p>This really is an awesome post, I&#8217;m happy I came across this. I have been trying to find guest writers for my blog so if you ever decide that&#8217;s something you are interested in please feel free to contact me.</p> <p><a href="http://www.mecatruckchrome.com/browse.cfm/2,84.html" rel="nofollow">semi led lights</a> | <a href="http://www.mecatruckchrome.com/browse.cfm/2,245.html" rel="nofollow">semi rims</a> | <a href="http://www.mecatruckchrome.com/browse.cfm/2,697.html" rel="nofollow">semi chrome accessories</a> | <a href="http://www.mecatruckchrome.com/browse.cfm/2,752.html" rel="nofollow">National Seating</a></p> Wed, 11 Apr 2012 06:23:37 -0500 urn:uuid:d7f4f068-5736-4b00-ab1e-7b1e4b43dba8 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-216461 "One Thing: Extract till you Drop." by Nathanael <p>Thanks!</p> Thu, 05 Apr 2012 15:57:57 -0500 urn:uuid:c6e3bc03-8a82-4ee7-b63b-801922eda863 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-215397 "One Thing: Extract till you Drop." by Lemo <p>I must say, i totally agree. This does pose a problem in many circumstances and it is good that something can be done. Unfortunately, it might be a case of too little too late :/ Oh wel..</p> <p><a href="http://www.fourseasonsdirect.com/browse.cfm/tribal/2,74.html" rel="nofollow">tribal pants</a> | <a href="http://www.fourseasonsdirect.com/browse.cfm/tribal/2,74.html" rel="nofollow">tribal womens pants</a> | <a href="http://www.fourseasonsdirect.com/browse.cfm/tribal/2,74.html" rel="nofollow">tribal brand clothing</a> | <a href="http://www.fourseasonsdirect.com/browse.cfm/tribal/2,74.html" rel="nofollow">tribal ladies clothing</a></p> Fri, 30 Mar 2012 03:41:56 -0500 urn:uuid:9049f8d9-e451-4016-9ac2-1968fbb2ce0b http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-213903 "One Thing: Extract till you Drop." by clarkreed <p>Thanks for the information, I&#8217;ll visit the site again to get update information <a href="http://toys.shop.ebay.in/" rel="nofollow">Toys</a></p> Mon, 26 Mar 2012 07:59:30 -0500 urn:uuid:6ae439a5-680f-46a6-89c4-5a101a7b550c http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-213045 "One Thing: Extract till you Drop." by mbtshoe <p>Australia Beats By Dre Studio dr dre beats headphones beats studio beats pro beats solo hd pro headphones music Official store Monster Beats By Dre Pro</p> Tue, 06 Mar 2012 06:00:41 -0600 urn:uuid:80a8f3d9-1dae-411f-8c9b-8344c31af5cb http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-208323 "One Thing: Extract till you Drop." by lipozene <p>thanks for the share, this is useful links</p> Thu, 01 Mar 2012 09:57:57 -0600 urn:uuid:acefa782-aee6-4e83-b4c0-47560895d4bd http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-207130 "One Thing: Extract till you Drop." by San Antonio Dental <p>One mans &#8220;one thing&#8221; could mean another man&#8217;s fifty things. It is a matter of perspective, but keep in mind perspectives are always changing.</p> Fri, 24 Feb 2012 11:44:20 -0600 urn:uuid:5e3ccc1f-eb06-4fca-b28d-5034d732d705 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-205872 "One Thing: Extract till you Drop." by chatten met vreemden <p>how to extract this? will it really work for most of us?!</p> Thu, 23 Feb 2012 19:03:15 -0600 urn:uuid:f6027e8d-6c2b-4da3-8447-749fc78d548c http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-205619 "One Thing: Extract till you Drop." by DRM removal software <p>how to extract this? will it really work for most of us?</p> Wed, 22 Feb 2012 02:02:00 -0600 urn:uuid:a1c40141-d7d0-4375-b7bf-1fef5d55d15a http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-205150 "One Thing: Extract till you Drop." by I really love reading your comments guys.I learn a lot from you.<br><br>Thank you so much <br><br>Regard,<br><br>Day Traders <p>I really love reading your comments guys.I learn a lot from you.</p> <p>Thank you so much</p> <p>Regard,</p> <p>Day Traders</p> Thu, 09 Feb 2012 05:43:51 -0600 urn:uuid:1584562e-2653-4914-9055-da3f071c8804 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-202644 "One Thing: Extract till you Drop." by Microsoft Office 2010 <p>This article is GREAT it can be EXCELLENT JOB and what a great tool!</p> Fri, 13 Jan 2012 20:04:12 -0600 urn:uuid:5b5fe801-d3a2-4131-ae36-db132d94b0b3 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-197742 "One Thing: Extract till you Drop." by Muffazal Lakdawala <p>Nice post. I will be back to read more of such post keep going.</p> Tue, 10 Jan 2012 04:20:08 -0600 urn:uuid:6ab01323-be45-46b0-93dc-e7295d2233ad http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-196732 "One Thing: Extract till you Drop." by iPhone contacts backup <p>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.</p> Wed, 04 Jan 2012 06:20:29 -0600 urn:uuid:83e6b2dd-2484-4823-8681-c6427101a2eb http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-194720 "One Thing: Extract till you Drop." by Weight Loss Surgeon <p>This is really great i was expecting something like this form you great post keep going.</p> Thu, 22 Dec 2011 03:54:03 -0600 urn:uuid:de6b2e13-cdae-4488-9ae6-81e2082ca024 http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop#comment-190382