<?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: Fudge anyone?</title>
    <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Fudge anyone?</title>
      <description>&lt;p&gt;Back in September, when I was just staring the &lt;a href="http://fitnesse.org/FitNesse.TestSystems"&gt;Slim&lt;/a&gt; project, I made a crucial architectural decision.  I made it dead wrong.  And then life turned to fudge&amp;#8230;&lt;/p&gt;


	&lt;p&gt;The issue was simple.  Slim tables are, well, tables just like Fit tables are.  How should I parse these tables?  Fit parses &lt;span class="caps"&gt;HTML&lt;/span&gt;.  FitNesse parses wiki text &lt;em&gt;into&lt;/em&gt; HTML and delivers it to Fit.  Where should Slim fit in all of this?&lt;/p&gt;


	&lt;p&gt;Keep in mind that Fit &lt;em&gt;must&lt;/em&gt; parse &lt;span class="caps"&gt;HTML&lt;/span&gt; since it lives on the far side of the FitNesse/SUT boundary.  Fit doesn&amp;#8217;t have access to wiki text.  Slim tables, on the other hand, live on the &lt;em&gt;near&lt;/em&gt; side of the FitNesse/SUT boundary, and so have full access to wiki text, and the built in parsers that parse that text.&lt;/p&gt;


	&lt;p&gt;So it seemed to me that I had two options.&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Follow the example of Fit and parse wiki text into &lt;span class="caps"&gt;HTML&lt;/span&gt;, and then have the Slim Tables parse the &lt;span class="caps"&gt;HTML&lt;/span&gt; in order to process the tables.  &lt;/li&gt;
		&lt;li&gt;Take advantage of the built in wiki text parser inside of FitNesse and bypass &lt;span class="caps"&gt;HTML&lt;/span&gt; altogether.&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;I chose the latter of the two because the Parsing system of FitNesse is &lt;em&gt;trivial&lt;/em&gt; to use.  You just hand it a string of wiki text, and it hands you a nice little parse tree of wiki widgets.  All I had to do was walk that parse three and process my tables.  Voila!&lt;/p&gt;


	&lt;p&gt;This worked great!  In a matter of hours I was making significant progress on processing Slim decision tables.  Instead of worrying about parsing &lt;span class="caps"&gt;HTML&lt;/span&gt; and building my own parse tree, I could focus on the problems of translating tables into Slim directives and then using the return values from Slim to colorize the table.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Generating&lt;/em&gt; html was no problem since that&amp;#8217;s what FitNesse does anyway.  All I had to do was modify the elements of the parse tree and then simply tell the tree to convert itself to &lt;span class="caps"&gt;HTML&lt;/span&gt;.  What a dream.&lt;/p&gt;


	&lt;p&gt;Or so it seemed.  Although things started well, progress started to slow before the week was out.  The problem was that the FitNesse parser is &lt;em&gt;tuned&lt;/em&gt; to the esoteric needs of FitNesse.  The parser makes choices that are perfectly fine if your goal is to generate &lt;span class="caps"&gt;HTML&lt;/span&gt; and pass it to Fit, but that aren&amp;#8217;t quite so nice when you&amp;#8217;re goal is to use the parse tree to process Slim tables.  As a simple example, consider the problem of literals.&lt;/p&gt;


	&lt;p&gt;In FitNesse, any camel case phrase fits the pattern of a wiki word and will be turned into a wiki link.  Sometimes, though, you want to use a camel case phrase and you &lt;em&gt;don&amp;#8217;t&lt;/em&gt; want it converted to a link.  In that case you surround the phrase with literal marks as follows: &lt;code&gt;!- FitNesse-!&lt;/code&gt;.  Anything between literal marks is simply ignored by the parser and passed through to the end.&lt;/p&gt;


	&lt;p&gt;Indeed, things inside of literals are not even escaped for html!  If you put &lt;code&gt;&amp;lt;b&amp;gt;hi&amp;lt;/b&amp;gt;&lt;/code&gt; into a wiki page, it will escape the text you&amp;#8217;ll see &lt;code&gt;&amp;lt;b&amp;gt;hi&amp;lt;/b&amp;gt;&lt;/code&gt; on the screen instead of a bold &amp;#8220;hi&amp;#8221;.  On the other hand, if you put &lt;code&gt;!- &amp;lt;b&amp;gt;hi&amp;lt;/b&amp;gt;-!&lt;/code&gt; on a page, then the &lt;span class="caps"&gt;HTML&lt;/span&gt; is left unescaped and a boldfaced &amp;#8220;hi&amp;#8221; &lt;em&gt;will&lt;/em&gt; appear on the screen.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m telling you all of this because the devil is in the details&amp;#8212;so bear with me a bit longer.&lt;/p&gt;


	&lt;p&gt;You know how the C and C++ languages have a preprocessor?  This preprocessor handles all the &lt;code&gt;#include&lt;/code&gt; and &lt;code&gt;#define&lt;/code&gt; statements and then hands the resulting text off to the true compiler.  Well, the wiki parser works the same way!  Literals and &lt;code&gt;!define&lt;/code&gt; variables are processed first, by a different pass of the parser.  Then all the rest of the wiki widgets are parsed by the true parser.  The reason that we had to do this is even more devilishly detailed; so I&amp;#8217;ll spare you.  Suffice it to say that the reasons we need that preprocessor are similar to the reasons that C and C++ need it.&lt;/p&gt;


	&lt;p&gt;What does the preprocessor do with a literal?  It converts it into a special widget.  That widget looks like this: &lt;code&gt;!lit?23?&lt;/code&gt;  What does that mean?  It means replace me with the contents of literal #23.  You see, when FitNesse sees &lt;code&gt;!- FitNesse-!&lt;/code&gt; it replaces it with &lt;code&gt;!lit?nn?&lt;/code&gt; and squirrels &lt;code&gt;FitNesse&lt;/code&gt; away in literal slot &lt;em&gt;nn&lt;/em&gt;.  During the second pass, that &lt;code&gt;!lit?nn?&lt;/code&gt; is replaced with the contents of literal slot &lt;em&gt;nn&lt;/em&gt;.  Simple, right?&lt;/p&gt;


	&lt;p&gt;OK, now back to &lt;span class="caps"&gt;SLIM&lt;/span&gt; table processing.  There I was, in Norway, teaching a class during the day and coding Slim at night, and everything was going just great.  And then, during one of my tests, I happened to put a literal into one of the test tables.  This is perfectly normal, I didn&amp;#8217;t want some camel case phrase turned into a link.  But this perfectly normal gesture made a unit test fail for a very strange reason.  I got this wonderful message from junit: &lt;code&gt;expected MyPage but was !lit?3?&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;I knew exactly what this meant.  It meant that the value &lt;code&gt;MyPage&lt;/code&gt; had been squirreled away by the first pass of the parser.  I also knew that I had utterly no reasonable way of getting at it.  So I did the only thing any sane programmer would do.  I wrote my own preprocessor and used it instead of the standard one.  This was &amp;#8220;safe&amp;#8221; since in the end I simply reconvert all the colorized tables back into wiki text and let the normal parser render it into &lt;span class="caps"&gt;HTML&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;It was a bit of work, but I got it done at one am on a cold Norwegian night.  Tests passing, everything great!&lt;/p&gt;


	&lt;p&gt;Ah, but no.  By writing my own preprocessor, I broke the &lt;code&gt;!define&lt;/code&gt; variable processing &amp;#8211; subtly.  And when I found and fixed that I had re-broken literal processing &amp;#8211; subtly.&lt;/p&gt;


	&lt;p&gt;If you were following my tweets at the time you saw me twitter ever more frantically about literals.  It was the proverbial ball of Mercury.  Every time I put my thumb on it&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt; it would squirt away and take some new form.&lt;/p&gt;


	&lt;p&gt;I fell into a trap.  I call it the &lt;em&gt;fudge trap&lt;/em&gt;.  It goes like this:&lt;/p&gt;


	&lt;p style="text-align:center;"&gt;&lt;span style="color:chocolate;"&gt;&lt;code&gt;forever do {&lt;/code&gt;&amp;#8220;I can make this work!  Just one more little fudge right &lt;em&gt;here&lt;/em&gt;!&amp;#8221;&lt;code&gt;}&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;


	&lt;p&gt;I was in this trap for two months!  I was making progress, and getting lots of new features to work, but I was also running into strange little quirks and unexpected bizarre behaviors caused by the fudging I was doing.  So I&amp;#8217;d fudge a little more and then keep working.  But each little fudge added to the next until, eventually, I had a really nasty house of cards (or rather: pile of fudge) ready to topple every time I touched anything else.  I started to fear my own code&lt;sup&gt;&lt;a href="#fn2"&gt;2&lt;/a&gt;&lt;/sup&gt;.  It was time to stop!&lt;/p&gt;


	&lt;p&gt;I knew what I had to do.  I had to go back to my original architectural decision and make it the other way.  There was no escape from this.  The FitNesse parser was too coupled to the wiki-ness, and there was no sane way to repurpose it for test table processing.&lt;/p&gt;


	&lt;p&gt;I dreaded this.  It was such a big change.  I had built so much code in my house of fudge.  All of it would have to be changed or deleted.  And, worse, I needed to write an &lt;span class="caps"&gt;HTML&lt;/span&gt; parser.&lt;/p&gt;


	&lt;p&gt;I was lamenting to &lt;a href="http://www.8thlight.com/main"&gt;Micah&lt;/a&gt; about this one day in late November, and he said: &amp;#8220;Dad, there are &lt;span class="caps"&gt;HTML&lt;/span&gt; parsers out there you know.&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;Uh&amp;#8230;&lt;/p&gt;


	&lt;p&gt;So I went to google and typed &lt;code&gt;Html Parser&lt;/code&gt;.  Duh.  There they were.  Lots and lots of shiny &lt;span class="caps"&gt;HTML&lt;/span&gt; parsers free for the using.&lt;/p&gt;


	&lt;p&gt;I picked &lt;a href="http://htmlparser.sourceforge.net"&gt;one&lt;/a&gt; and started to fiddle with it.  It was &lt;em&gt;easy&lt;/em&gt; to use.&lt;/p&gt;


	&lt;p&gt;Now comes the good part.  I had not been a complete dolt.  Even when I was using the FitNesse parse tree, I ate my own dogfood and &lt;em&gt;wrapped&lt;/em&gt; it in an abstract interface.  No part of the Slim Table processing code actually &lt;em&gt;knew&lt;/em&gt; that it was dealing with a FitNesse parse tree.  It simply used the abstract interface to get its work done.&lt;/p&gt;


	&lt;p&gt;That meant that pulling out the wiki parser and putting in the &lt;span class="caps"&gt;HTML&lt;/span&gt; parser was a matter of re-implementing the abstract interface with the output of the new parser (which happened to be another parse tree!).  This took me about a day.&lt;/p&gt;


	&lt;p&gt;There came a magic moment when I had &lt;em&gt;both&lt;/em&gt; the wiki text version of the parser, and the &lt;span class="caps"&gt;HTML&lt;/span&gt; version of the parser working.  I could switch back and forth between the two by changing one word in one module.  When I got &lt;em&gt;all&lt;/em&gt; my tests passing with &lt;em&gt;both&lt;/em&gt; parsers, I knew I was done.  And then the fun &lt;em&gt;really&lt;/em&gt; began!&lt;/p&gt;


	&lt;p&gt;I &lt;span style="color:red;"&gt;&lt;em&gt;deleted&lt;/em&gt;&lt;/span&gt; ever stitch of that wiki parse tree pile of fudge.  I tore it loose and rent it asunder.  It was gone, never to darken my door with it&amp;#8217;s fudge again.&lt;/p&gt;


	&lt;p&gt;It took me a day.  A day.  And the result is 400 fewer lines of code, and a set of Slim tables that actually work the way they are supposed to.&lt;/p&gt;


	&lt;p&gt;Moral #1: &amp;#8220;Fudge tastes good while you are eating it, but it makes you fat, slow, and dumb.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Moral #2: &amp;#8220;Eat the damned dog food. It&amp;#8217;ll save your posterior from your own maladroit decisions.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; I do not recommend that you actually put your thumb on any Mercury.  Never mind that I used to play with liquid Mercury as a child, sloshing it around from hand to hand and endlessly stirring it with my finger.  Wiser heads than I have determined that merely being in the same room with liquid Mercury can cause severe brain damage, genetic corruption, and birth defects in your children, grandchildren, and pets.&lt;/p&gt;


	&lt;p id="fn2"&gt;&lt;sup&gt;2&lt;/sup&gt; Fearing your own code is an indicator that you are headed for ruin.  This fear is followed by self-loathing, project-loathing, career-loathing, divorce, infanticide, and finally chicken farming.&lt;/p&gt;</description>
      <pubDate>Wed, 31 Dec 2008 16:01:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:36578e35-eb79-4c39-bb15-e36e3acf4548</guid>
      <author>Uncle Bob</author>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone</link>
      <category>Uncle Bob's Blatherings</category>
      <category>Clean Code</category>
    </item>
    <item>
      <title>"Fudge anyone?" by http://www.cheaphatscaps.org</title>
      <description>&lt;p&gt;Thousands &lt;a href="http://www.cheaphatscaps.org" rel="nofollow"&gt;wholesale  snapback hats&lt;/a&gt;wholesale, &lt;a href="http://www.cheaphatscaps.org" rel="nofollow"&gt;wholesale cheap hats &lt;/a&gt;,Monster  Energy &lt;strong&gt;Hats&lt;/strong&gt;,NewYork Yankees &lt;strong&gt;Hats&lt;/strong&gt;,cheap &lt;a href="http://www.cheaphatscaps.org" rel="nofollow"&gt;wholesale snapbacks &lt;/a&gt;on  sale,Dc &lt;strong&gt;Hats&lt;/strong&gt; at &lt;strong&gt;discount&lt;/strong&gt; price for &lt;strong&gt;you&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 05 Dec 2011 00:56:46 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4c272c8c-11ee-406c-ba61-e3ccc42d2df7</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-181917</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Bandages</title>
      <description>&lt;p&gt;This blog is very nice and informative. it is pretty hard task but your post and experience serve and teach me how to handle and make it more simple and manageable.&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 07:14:27 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6a0dd602-da79-453c-8d55-eea222840802</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-180727</link>
    </item>
    <item>
      <title>"Fudge anyone?" by christian louboutin</title>
      <description>&lt;p&gt;Christian Louboutin Rolando Hidden-Platform Pumps Golden is a fashion statement &amp;#8211; that&amp;#8217;s sexy, it makes you look longer highlight, and it highlights the curves in the woman body and makes the body look more elegant and thinner without any diet.&lt;/p&gt;


	&lt;p&gt;?Brand: Christian Louboutin
?Material: Golden leather
?Specialty: Signature red sole
?Color: Golden
?Heel height: Approximately 130mm/ 5.2 inches high and a concealed 20mm/ 1 inch platform
?Condition: Brand New in box with dust bags &amp;#38; Original Box&lt;/p&gt;


	&lt;p&gt;Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Rolando Pumps, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.&lt;/p&gt;</description>
      <pubDate>Fri, 04 Nov 2011 22:23:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c24d98d4-df82-4f1e-b22c-5befa51196e5</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-168463</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Tips For Bowling</title>
      <description>&lt;p&gt;I worked in the media from the late 30&amp;#8217;s through the early 70&amp;#8217;s. Politics in general became more liberal both nationally and within the state as the years passed.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Oct 2011 15:38:34 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5e097134-1880-49e9-bd46-dbbdc17ddb8d</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-160273</link>
    </item>
    <item>
      <title>"Fudge anyone?" by shanewatson404@gmail.com</title>
      <description>&lt;p&gt;Wonderful  posts are display is visible in &lt;a href="http://directorofoperationsjobdescription.com/" rel="nofollow"&gt;Director of Operations Job Description&lt;/a&gt; this blog that to using the great technology &lt;a href="http://jobdescriptionforaccounting.com/" rel="nofollow"&gt;Accounting Job Description&lt;/a&gt; is visible in this blog &lt;a href="http://jobdescriptionforgraphicdesigner.com/" rel="nofollow"&gt;Graphic Designer Job Description&lt;/a&gt; I am glad to see this info and providing the amazing info is display in this blog that to utilize the different &lt;a href="http://jobdescriptionforlegalassistant.com/" rel="nofollow"&gt;Legal Assistant Job Description&lt;/a&gt; services in this blog&lt;/p&gt;</description>
      <pubDate>Sat, 01 Oct 2011 01:00:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5f6dd1a4-9d63-4052-a279-6f0a2663b39a</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-148830</link>
    </item>
    <item>
      <title>"Fudge anyone?" by best sleep aid</title>
      <description>&lt;p&gt;Cloudsourcing combines on-demand business process outsourcing (BPO) with crowdsourcing technologies to enable companies to purchase quality BPO services on-demand through a pay-per-use model.&lt;/p&gt;</description>
      <pubDate>Fri, 30 Sep 2011 13:34:31 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e9b3dac7-9993-4010-b87a-618036d64f1e</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-148651</link>
    </item>
    <item>
      <title>"Fudge anyone?" by canada goose coat</title>
      <description>&lt;p&gt;&lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-expedition-parka-c-2.html" rel="nofollow"&gt;Canada Goose Outlet&lt;/a&gt;
is Marmot 8000M Parka. The Marmot 8000M Parka is really a waterproof, breathable jacket with 800 fill &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-youth-parka-c-7.html" rel="nofollow"&gt;canada goose jacket&lt;/a&gt; feathers. It truly is design and light colored shell is produced for trendy, but uncomplicated, protection from cold temperatures. Reinforced shoulders, elbows and adjustable waist and hem make the Marmot a perfect alternate for skiing and other outdoor sports that want fairly a bit of arm motion. The 8000M Parka weighs three lbs., comes in bonfire and black colours and might be stuffed and stored like a sleeping bag to your convenience.This is one of well-know and prime down jacket brands.Hope our friends like its!Like &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-womens-c-8.html" rel="nofollow"&gt;canada goose womens&lt;/a&gt; and &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-expedition-parka-c-2.html" rel="nofollow"&gt;Canada Goose Expedition Parka&lt;/a&gt;.There are &lt;a href="http://www.shopcanadagoosejackets.com/" rel="nofollow"&gt;wholesale canada goose&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 28 Sep 2011 20:23:09 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e9720861-6524-43d5-8abc-154ef3b1ae78</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-146893</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Puma espera shoes</title>
      <description>&lt;p&gt;During the World War Rudi joined the German army while Adi continued making shoes for the soldiers and this brought a rift between the brothers. Ever since, neither the families nor the business have been united. Rudi floated his own shoe company Puma and the same year he introduced the first football boot named Atom. Herbert Burdenski from the West German team scored the first goal for his team wearing the Atom. Adi too formed his own company Adidas which had its fair share of recognition in the world of sports.&lt;/p&gt;</description>
      <pubDate>Tue, 27 Sep 2011 02:29:42 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:03c653ce-bc8d-4374-bf8a-6f3592d29a7b</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-145911</link>
    </item>
    <item>
      <title>"Fudge anyone?" by beats by dre store</title>
      <description>&lt;p&gt;nice technology in this blog. I am very much satisfied by the info in this blog. Thanks a lot for sharing the nice info in this blog.&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;high quality headphones&lt;/a&gt;
&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;new design headphones&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 23 Aug 2011 03:13:50 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2c99cd16-be76-49fb-9d6c-d3ec64a5d845</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-131665</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Jewellery Xy</title>
      <description>&lt;p&gt;Nice update uncle Bob
Your guide to the&lt;a href="http://www.jewelleryxy.com/amber-gemstone.html" rel="nofollow"&gt; amber gemstone &lt;/a&gt;, its history and origins&lt;/p&gt;</description>
      <pubDate>Sun, 21 Aug 2011 15:31:17 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d4d6caf1-a75f-4a18-bc24-7ae318e41e51</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-130337</link>
    </item>
    <item>
      <title>"Fudge anyone?" by nizagara tablets</title>
      <description>&lt;p&gt;Defiantly this is really enjoyed for visiting the nice technology in this blog. I am very much satisfied by the info in this blog. Thanks a lot for sharing the nice info in this blog.&lt;/p&gt;</description>
      <pubDate>Mon, 15 Aug 2011 08:04:37 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4068e91b-c554-47aa-aeb4-3860e9cc2f3e</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-128795</link>
    </item>
    <item>
      <title>"Fudge anyone?" by ppc</title>
      <description>&lt;p&gt;Thanks for such a wonderful Blog. I really get useful information about software support and various related aspects. Keep posting such good writings.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Jul 2011 07:41:07 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0fced69a-6412-4805-a9fe-cdd2f6a46921</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-121981</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Mens Running Shoes</title>
      <description>&lt;p&gt;The article give me many useful information.thanks.I will come here frequently.&lt;/p&gt;</description>
      <pubDate>Tue, 12 Jul 2011 22:10:59 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:33e92629-dae2-487e-82c8-7053cb053809</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-118277</link>
    </item>
    <item>
      <title>"Fudge anyone?" by car accident injury claims</title>
      <description>&lt;p&gt;I learned about the new blog entry by viewing your Twitter content. Thanks for your updates there.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Jun 2011 04:08:53 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:12cc24cc-0fb0-4f81-996c-e016321c6079</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-110553</link>
    </item>
    <item>
      <title>"Fudge anyone?" by cairns fire helmets</title>
      <description>&lt;p&gt;have access to wiki text. Slim tables, on the other hand,
&lt;a href="http://www.chiefsupply.com/search/brand/Cairns" rel="nofollow"&gt;cairns fire helmets&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 09 Jun 2011 03:03:02 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e78882d4-5f10-452a-baae-be5c7643eb40</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-109359</link>
    </item>
    <item>
      <title>"Fudge anyone?" by beats by dr dre headphones</title>
      <description>&lt;p&gt;&lt;a href="http://www.drebeatsstudio.com/beats-by-dr-dre-studio-c-3.html" rel="nofollow"&gt;Beats by dr dre studio&lt;/a&gt; with look after talk in white. extra attributes on &lt;a href="http://www.drebeatsstudio.com/monster-beats-by-dr-dre-pro-headphones-black-p-15.html" rel="nofollow"&gt;Monster Beats By Dr. Dre Pro Headphones Black&lt;/a&gt; a specific tri-fold design and design and carrying circumstance which make for compact and uncomplicated safe-keeping when not in use. &lt;a href="http://www.drebeatsstudio.com/beats-by-dr-dre-solo-c-5.html" rel="nofollow"&gt;Beats by dr dre solo&lt;/a&gt; .&lt;/p&gt;</description>
      <pubDate>Wed, 08 Jun 2011 21:53:45 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:105250ca-9287-45b7-be32-4814edb89658</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-109211</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Hancy</title>
      <description>&lt;p&gt;Hello Friend,Whichever style of Fashion Shoes you&amp;#8217;re looking for, classical, fashionable, lovely or the latest design, you can find your favorite designer shoes in &lt;a href="http://www.dunkpage.com" rel="nofollow"&gt;www.dunkpage.com&lt;/a&gt; ,several days ago I bought one pair of shoes from there,It&amp;#8217;s beautiful and very comfortable!&lt;/p&gt;</description>
      <pubDate>Tue, 07 Jun 2011 13:18:57 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:626d2b0c-e67e-4a97-9bec-87186d2fd6c9</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-108834</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Jewellery</title>
      <description>&lt;p&gt;Online UK costume and fashion jewellery shop with,
sry5try&lt;/p&gt;</description>
      <pubDate>Mon, 06 Jun 2011 00:55:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:afc4b9ad-480f-4a9f-9bdb-5f2c81827ff2</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-108456</link>
    </item>
    <item>
      <title>"Fudge anyone?" by worldniketrade</title>
      <description>&lt;p&gt;These are times of finer houses,but more broken homes;&lt;/p&gt;</description>
      <pubDate>Thu, 02 Jun 2011 02:47:07 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:cbf2219d-7a34-4bed-a1ab-6cac406c3778</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-107048</link>
    </item>
    <item>
      <title>"Fudge anyone?" by replicas-bags-store</title>
      <description>&lt;p&gt;you best choose fashion &lt;a href="http://www.replicas-bags-store.com/louis-vuitton-damier-azur-stresa-mm-p-78833.html" rel="nofollow"&gt;Louis   Vuitton Damier Azur Stresa MM &lt;/a&gt; onsale.The Best Site to buy CHEAP &lt;a href="http://www.replicas-bags-store.com/louis-vuitton-damier-azur-stresa-pm-p-78837.html" rel="nofollow"&gt;Louis   Vuitton Damier Azur Stresa PM&lt;/a&gt; .Also has &lt;a href="http://www.replicas-bags-store.com/louis-vuitton-damier-azur-canvas-neverfull-mm-p-78847.html" rel="nofollow"&gt;Louis   Vuitton Damier Azur Canvas Neverfull MM&lt;/a&gt;, &lt;a href="http://www.replicas-bags-store.com/louis-vuitton-pochette-milla-mm-p-78870.html" rel="nofollow"&gt;Louis   Vuitton Pochette Milla MM&lt;/a&gt; outlet that can provide to you.&lt;/p&gt;</description>
      <pubDate>Sun, 22 May 2011 20:49:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ec73a12d-d2e4-4a8f-9059-2759fd8ef9e2</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-102271</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Futons for cheap</title>
      <description>&lt;p&gt;Well, the wiki parser works the same way! Literals and !define variables are processed first, by a different pass of the parser.&lt;/p&gt;</description>
      <pubDate>Fri, 20 May 2011 09:24:04 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e6493bdb-d62c-487c-9b5b-356bb5a00732</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-101862</link>
    </item>
    <item>
      <title>"Fudge anyone?" by hulin011</title>
      <description>&lt;p&gt;New Barcelona Home Jersey of the season &lt;a href="http://www.discount-rosetta-stones.com/" rel="nofollow"&gt;Rosetta Stone spanish Discount&lt;/a&gt;
 is still red and blue and white, but stripes to become narrower than before on the chest there Qatar Foundation commercials, &lt;a href="http://www.discount-rosetta-stones.com/" rel="nofollow"&gt;rosetta stone discounts&lt;/a&gt;
United Nations Children&amp;#8217;s Fund signs appeared of the underside of the back of the shirt, Barcelona Home Jersey is rare black, goalkeeper clothing is dark green.&lt;/p&gt;</description>
      <pubDate>Wed, 18 May 2011 22:17:46 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:dede43d4-d4a4-4665-8bde-38976fc9617b</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-101413</link>
    </item>
    <item>
      <title>"Fudge anyone?" by Insomnia Cures</title>
      <description>&lt;p&gt;Very instructive and yet amusing account. I actually enjoyed this post. I did not know mercury was so dangerous, sheesh.&lt;/p&gt;</description>
      <pubDate>Thu, 05 May 2011 21:06:16 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:53d167d2-07bd-4acd-bec9-85fbddae28e8</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-95201</link>
    </item>
    <item>
      <title>"Fudge anyone?" by mbt walking shoes sale</title>
      <description>&lt;p&gt;where in a store it can be challenging to type on the other hand her or his products to locate what&#8217;s right????&lt;/p&gt;</description>
      <pubDate>Sat, 30 Apr 2011 01:53:18 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:78b7a9ec-ad5c-43f7-99f7-2a923a92fe66</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-93593</link>
    </item>
    <item>
      <title>"Fudge anyone?" by MBT  Shoes UK Sale</title>
      <description>&lt;p&gt;The best thing about purchasing on the web is you&#8217;re able to observe everything the actual offers, where in a store it can be challenging to type on the other hand her or his products to locate what&#8217;s right.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Apr 2011 03:32:30 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3e1861ff-295e-4c6e-bfae-f6ca780b3d24</guid>
      <link>http://blog.objectmentor.com/articles/2008/12/31/fudge-anyone#comment-93342</link>
    </item>
  </channel>
</rss>

