<?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: Preprocessor seams and assignment of responsibility</title>
    <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Preprocessor seams and assignment of responsibility</title>
      <description>In my &lt;a href="http://tinyurl.com/2fljzng"&gt;previous blog&lt;/a&gt; I mentioned adding a single method to the cslim library:
&lt;blockquote&gt;
&lt;b&gt;cslim/include/CSlim/SlimListSerializer.h:&lt;/b&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;void SlimList_Release(char *serializedResults);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;b&gt;cslim/src/CSlim/SlimListSerializer.c:&lt;/b&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;void SlimList_Release(char *serializedResults)
{
  if(serializedResults)
    free(serializedResults);
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;

Now I&amp;#8217;m going to explain how I came across this need, what it took to figure it out and then why I picked this solution.
&lt;h2&gt;Background&lt;/h2&gt;
In FitNesse, Query Table Results are a list of list of list:

	&lt;ul&gt;
	&lt;li&gt;The outer-most list represents &amp;#8220;rows&amp;#8221;. It collects all objects found. It has zero or more entries.&lt;/li&gt;
		&lt;li&gt;The inner-most list represents a single field. It is a key value pair. It is a list of size 2. The first entry is the name of the field (column to FitNesse). The second field is the value. Both are strings.&lt;/li&gt;
		&lt;li&gt;The middle list represents a single object. It is a collection of fields. It has zero or more entires.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I understand the need for this representation and it takes a little bit to get it built correctly. So much so, I built a &lt;a href="http://github.com/schuchert/queryresultbuilder"&gt;simple tool to do it in java&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;C&amp;#43;&amp;#43; is no different. In fact, the authors of cslim though the same thing and they created a C Abstract Data Type to help out (and an add-on method to create the correct final form):&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;SlimList&lt;/li&gt;
		&lt;li&gt;SlimList_Serializer&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;They use C because it can be used by both C and C&amp;#43;&amp;#43;. I&amp;#8217;m using C&amp;#43;&amp;#43; and I wanted to make building query results even easier, so I built a QueryResultAccumulator. The most recent source is in the &lt;a href="http://tinyurl.com/2fljzng"&gt;previous blog&lt;/a&gt; and I&amp;#8217;ll be putting it on github after I&amp;#8217;ve had some more time to work on it.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s the progression to my QueryResultAccumulator class:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Wrote a Query-Table based fixture and followed the example provided with cslim (thank you for that!)&lt;/li&gt;
		&lt;li&gt;Moved the code from functions into methods on a class&lt;/li&gt;
		&lt;li&gt;Extracted a class, called SlimListWrapper, which made the fixture code easier to follow.&lt;/li&gt;
		&lt;li&gt;Went to get takeout and realized that I had named the class incorrectly and that it was really accumulating query results (thus the name). The SlimList was a mechanism, not an intent.&lt;/li&gt;
		&lt;li&gt;Refactored the class into QueryResultAccumulator (I left the original alone, created a new class, copied code from one to the other and changed it around a bit.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Now it might sound like I didn&amp;#8217;t have any tests. In fact, I did. I had my original Acceptance Test in FitNesse. I kept running that, so in a sense I was practicing &lt;span class="caps"&gt;ATDD&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;I was not happy with that, because I was not sure that I had properly handled memory allocation correctly. In fact, I had not. The final result is dynamically allocated and I was not releasing that. So I &amp;#8220;fixed&amp;#8221; it. (It needs to be released &lt;b&gt;after&lt;/b&gt; the return from slim back to FitNesse, so the typical pattern is to lazily delete it, or release it in a &amp;#8220;destroy&amp;#8221; method called after the execution of a single table.)&lt;/p&gt;


&lt;h2&gt;I have a memory leak?!&lt;/h2&gt;
I am simplifying this story a bit. So I&amp;#8217;m skipping some intermediate results. Ultimately I wrote the following test to check that you could use a single query result accumulator for multiple results correctly:
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;TEST(QueryResultAccumulator, CanProduceFinalResultsMultipleTimes) {
    QueryResultAccumulator accumulator;
    accumulator.produceFinalResults();
    accumulator.produceFinalResults();
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;This caused a memory leak of 60 bytes. It was at this point I was up too late and banging my head against a wall. About 3 hours later I figured that out and went to bed. I fixed the problem and sent a patch to authors of cslim in maybe 45 minutes. So I should have gotten more sleep.&lt;/p&gt;


&lt;h2&gt;Where is that damn thing&lt;/h2&gt;
In any case, I visually checked the code. I debugged it. I did everything I could initially think of, and I was convinced that my code was correct. (As we&amp;#8217;ll see it both was and was not due to a preprocessor seam in cslim.) I got to the point where I even tried different versions of gcc. (I found a parsing error in g&amp;#43;&amp;#43; 4.5 when handling templates, so in desperation and late at night I wasted 5 minutes switching my compiler.)

I had the following code in my class:
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;  if(result)
    free(result);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;This was the correct thing, but it was in the wrong location. Again, this was related to a preprocessor seam in cslim.&lt;/p&gt;


&lt;h2&gt; Eureka!&lt;/h2&gt;
I looked at the cslim code and confirmed it was doing basic C stuff, nothing surprising. It was at that point that I remembered something important:
&lt;blockquote&gt;
cslim depends on CppUTest and uses a different malloc/free
&lt;/blockquote&gt;

	&lt;p&gt;Ah ha! That&amp;#8217;s it. So I tired to recompile my C&amp;#43;&amp;#43; code to use the same thing. However, I was not able to do that. CppUTest&amp;#8217;s memory tracking implementation does not work with many of the C&amp;#43;&amp;#43; standard classes like &amp;lt;string&amp;gt; and &amp;lt;vector&amp;gt;. So I could not compile my code using the same approach.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m glad this happened becuase it made me realize that it was the wrong place anyway. Here&amp;#8217;s the logic:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;CSlim has a preprocessor seam, comile with or without -Dfree=cpputest_free, -Dmalloc=cpputest_malloc&lt;/li&gt;
		&lt;li&gt;I&amp;#8217;m using a class in cslim to do the allocation, where the policy of allocation is stored&lt;/li&gt;
		&lt;li&gt;I should &lt;b&gt;not&lt;/b&gt; release the memory but instead allow the cslim library to release the memory becaue it has the allocation policy, and therefore the release policy.&lt;/li&gt;
	&lt;/ul&gt;


About 2 minutes later, I had added a single function to the library:
&lt;blockquote&gt;
&lt;b&gt;cslim/include/CSlim/SlimListSerializer.h:&lt;/b&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;void SlimList_Release(char *serializedResults);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;b&gt;cslim/src/CSlim/SlimListSerializer.c:&lt;/b&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;void SlimList_Release(char *serializedResults)
{
  if(serializedResults)
    free(serializedResults);
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;

	&lt;p&gt;I updated my QueryResultAccumulator to use SlimList_Release and my false positive disappeared.&lt;/p&gt;


	&lt;p&gt;It also turns out that this improved symmetry in the library. To allocate and release entries in an SlimList you use the following functions:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;SlimList* SlimList_Create() &lt;/li&gt;
		&lt;li&gt;void SlimList_Destroy(SlimList*);&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Now to serlalize a list and release the memory later you use:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;SlimList_Serialize&lt;/li&gt;
		&lt;li&gt;SlimList_Release&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;As I write this, I think there&amp;#8217;s a better name. I&amp;#8217;ll let the authors give it a better name (like SlimList_Release_Serialization_Results). But in any case, if you use a function in the cslim library that allocates something, you use another method in the cslim library to release it.&lt;/p&gt;


	&lt;p&gt;Since the libray has a preprocessor seam, that symmetry removes a false-positive memory leak.&lt;/p&gt;


&lt;h2&gt;What took so long?&lt;/h2&gt;
I had an interesting time with this. Originally I had not released that memory in the class but rather in the unit test. I was working too late and not thinking clearly. I realized that my class needed to manage that.

	&lt;p&gt;When I called free in the unit test, it was calling the correct version of free, cpputest_free, becasue it was a unit test using CppUTest. When I moved the code into the class, which has no knowledge of CppUTest (nor can it), the flow of the code was correct, but the compilation (preprocessor symbols) were different and it caused a false positive.&lt;/p&gt;


	&lt;p&gt;Since I changed the code, I assumed it was a problem with how I changed the code. To me more clear, I though it was a code-flow problem, not a preprocessor seam problem. So I spent a lot of time verifyig my code. Once I determined it was correct, I then moved into debugger mode.&lt;/p&gt;


	&lt;p&gt;It was not long after that when I finally figured out what was going on.&lt;/p&gt;


&lt;h2&gt;Conslusions&lt;/h2&gt;
As with many things in life, this is intuitive once you understand it!-)

	&lt;p&gt;That cslim depends on CppUTest might be questionable. However, if I treat cslim as a (mostly) black box, and I don&amp;#8217;t know its allocation policy, I should not assume a deallocation policy.&lt;/p&gt;


	&lt;p&gt;By putting the responsiblity in the correct library level, it fixed the problem and added symmetry to the overall solution.&lt;/p&gt;


	&lt;p&gt;I also really enjoyed this (after it was done). I&amp;#8217;ve come across memory leaks using CppUTest in the past. Often they were my fault. Sometimes they were not. This was interesting because it both was and was not my fault. I originally had written the code incorrectly. When I put he correct steps in my code, I still had wrong code because I put the responsibility in the wrong place. It really was only correct after I moved the actual implementation into the library and then called it from my code that I had finally written it correctly.&lt;/p&gt;</description>
      <pubDate>Thu, 22 Jul 2010 10:32:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:dfbd2b43-7d99-443b-8325-bfa1b93ed842</guid>
      <author>Brett Schuchert</author>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility</link>
      <category>Schuchert's Scattered Synapses </category>
      <category>c</category>
      <category>FitNesse</category>
      <category>cslim</category>
      <category>assignment</category>
      <category>of</category>
      <category>responsibility</category>
      <category>malloc</category>
      <category>free</category>
      <category>preprocessor</category>
      <category>seam</category>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by crack</title>
      <description>&lt;p&gt;hey fit with your style, not someone else&#8217;s idea of what your style should be. Once you know what style you want, whether it&#8217;s Ray Ban o)))))&lt;/p&gt;</description>
      <pubDate>Sun, 29 Jan 2012 04:01:12 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a81e39a4-da16-4349-839d-c22d8851a06e</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-200060</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by mallorca property</title>
      <description>&lt;p&gt;i&amp;#8217;ve seen a solution like this on another blog. thanks for that&lt;/p&gt;</description>
      <pubDate>Thu, 26 Jan 2012 05:54:29 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:5331679c-8d4f-442a-9c57-41fdf76000c7</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-199237</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Software solutions</title>
      <description>&lt;p&gt;looks nice, I;ll give it a try&lt;/p&gt;</description>
      <pubDate>Thu, 26 Jan 2012 03:02:36 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:52543da6-df0c-49af-bea7-7cd1f6a3b855</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-199219</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by online docs</title>
      <description>&lt;p&gt;thanks for this&amp;#8230;.&lt;a href="http://konayagroup.com/" rel="nofollow"&gt; online docs &lt;/a&gt;
i like the post&amp;#8230;it is differnt..thanks&lt;/p&gt;</description>
      <pubDate>Tue, 17 Jan 2012 03:17:11 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f91b5040-df23-4813-b9d1-3ae8629f3f66</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-198268</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by jordan heels women</title>
      <description>&lt;p&gt;More and more people are now engaging into &lt;a href="http://www.nikeheelsdunk.com/" rel="nofollow"&gt;women jordan heels&lt;/a&gt; camping especially now that the metros are becoming more and more polluted and congested. Before, this activity has only been a means of adventure and chilling; but now camping has also turned into a popular sport.A usual camping activity starts with the preparation of gears and gadgets. Food are then packed and sealed. After several miles of travel, campers arrive at the &lt;a href="http://www.nikewomenheels.net/" rel="nofollow"&gt;Nike heels&lt;/a&gt; site. After setting the tents, everyone goes on with different activities: mountain hiking, skiing, snow boarding, etc.&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jan 2012 02:09:20 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:ad430c4c-23ca-498d-805d-f0c3806b52ae</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-196581</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Sunglasses Hut</title>
      <description>&lt;p&gt;Round.   &lt;a href="http://www.sunglasseshutformen.com/aroberto-cavalli-sunglasses-c-45.html" rel="nofollow"&gt;&lt;strong&gt;Sunglasses Hut&lt;/strong&gt;&lt;/a&gt; You need frames that contrast with your round face shape so as not to   emphasize this feature so you need to avoid round, circular frames. Try   rectangular or angled frames instead and try to choose ones with a higher brow   to draw the eye upward.
Diamond or Square. Since your face already has angles, you need to contrast   this feature with softer frames.  &lt;strong&gt;&lt;a href="http://www.sunglasseshutformen.com/aroberto-cavalli-sunglasses-c-45.html" rel="nofollow"&gt;Sunglasses For Men&lt;/a&gt;&lt;/strong&gt; Round, soft corner square, or rimless frames   work the best, and companies like  &lt;strong&gt;&lt;a href="http://www.sunglasseshutformen.com/aroberto-cavalli-sunglasses-c-45.html" rel="nofollow"&gt;Cool Sunglasses&lt;/a&gt;&lt;/strong&gt; excel with this   style. These guidelines are just suggestions. The bottom line is that you like your   sunglasses and that they fit with your style, not someone else&amp;#8217;s idea of what   your style should be. Once you know what style you want, whether it&amp;#8217;s Ray Ban or  &lt;strong&gt;&lt;a href="http://www.sunglasseshutformen.com/aroberto-cavalli-sunglasses-c-45.html" rel="nofollow"&gt;Best Sunglasses For Men&lt;/a&gt;&lt;/strong&gt;,&#160;try finding your new pair of shades   online. You will find amazing discount prices and you will have saved both time   and money!&lt;/p&gt;</description>
      <pubDate>Thu, 29 Dec 2011 22:55:24 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:1ba1ff4e-7aa9-48ac-8326-bf665b748880</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-193563</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Oakley Sunglasses Hut</title>
      <description>&lt;p&gt;The Oakley lens etch should be a superior grade   imprint. &lt;a href="http://www.oakleysunglasses-hut.com/-ezp-3.html" rel="nofollow"&gt;&lt;strong&gt;Oakley Sunglasses Hut&lt;/strong&gt;&lt;/a&gt; Many cases the bogus sunglasses will include the lens etch shabbily   impressed on the lens, by a process called as screen printing. The best manner   to tell if the lens stamp is a screen print or an authentic impression is to   just run your finger over the logo. if there is no apparent feeling of texture,   meaning the area the logo is stamped on feels equivalent the remainder of the   lens, then that is probably an inexpensive screen print. However,    &lt;strong&gt;&lt;a href="http://www.oakleysunglasses-hut.com/-ezp-3.html" rel="nofollow"&gt;Cheap Oakley Sunglasses Outlet&lt;/a&gt;&lt;/strong&gt; when sliding a   finger across the lens and you can feel the bumps and the texture of the stamp,   then that is likely a perfectly etched logo. Nonetheless, being able to sense   the imprint does not consequently allude to the maxim that the sunglasses are   real, but not perceiving the etch DOES imply that Oakley sunglasses are fake.   This is a first-rate first step test that takes a flash to do,   &lt;a href="http://www.oakleysunglasses-hut.com/-ezp-3.html" rel="nofollow"&gt;Discount Oakley Sunglasses Outlet&lt;/a&gt; and it will   speedily scrape out many of the counterfeits right out of the gate, no more time   squandered.&lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 29 Dec 2011 22:53:24 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:5d038a4b-a645-495d-82f3-704563a7cb03</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-193559</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Cheap Oakley Sunglasses Outlet</title>
      <description>&lt;p&gt;&lt;a href="http://www.oakleysunglasses-hut.com" rel="nofollow"&gt;&lt;strong&gt;Oakley Sunglasses Hut&lt;/strong&gt;&lt;/a&gt; has provided the environment for a variety of colors mountain light lens coating, with Iridium? &lt;a href="http://www.oakleysunglasses-hut.com" rel="nofollow"&gt;&lt;strong&gt;Cheap Oakley Sunglasses Outlet&lt;/strong&gt;&lt;/a&gt; with the use of harsh sunlight and reduce the balance of light transmission, so that the light reaching the eyes of athletes precisely adjusted to produce the best visual . Our G30?&lt;a href="http://www.oakleysunglasses-hut.com" rel="nofollow"&gt;&lt;strong&gt;Best Oakley Sunglasses&lt;/strong&gt;&lt;/a&gt; Lens color is popular favorite athletes want to enhance the visual contrast of a choice. Oakley VR28?&lt;a href="http://www.oakleysunglasses-hut.com/oakley-lifestyle-sunglasses-c-14.html" rel="nofollow"&gt;&lt;strong&gt;Oakley Lifestyle Sunglasses&lt;/strong&gt;&lt;/a&gt; Has proven to be versatile lens colors, widely used in various light conditions.&lt;a href="http://www.oakleysunglasses-hut.com" rel="nofollow"&gt;&lt;strong&gt;Discount Oakley Sunglasses Outlet&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 26 Dec 2011 01:28:50 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:273162e3-4446-458b-a301-bd66ac54ea07</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-192065</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Sale Ladies Leather Handbags</title>
      <description>&lt;p&gt;Allow phonetic typingMost of this season&amp;#8217;s no longer the exclusive expedition &lt;a href="http://www.saleladiesleatherhandbags.com" rel="nofollow"&gt;&lt;strong&gt;Sale Ladies Leather Handbags&lt;/strong&gt;&lt;/a&gt; workplace &amp;#8216;Skeleton&amp;#8217;, &lt;a href="http://www.saleladiesleatherhandbags.com" rel="nofollow"&gt;&lt;strong&gt;Black Leather Handbags&lt;/strong&gt;&lt;/a&gt; they seem to be for those who like slow-paced, understand humor, and occasionally a big love like a baby girl tailor-made. . Relax pastoral style Replaced with a small square bag, Previous broad-brush woven bag,Make this a more refined shape,Striking Chromic gentle, sweet,Material is also the finest ostrich and nubuck leather treated,&lt;a href="http://www.saleladiesleatherhandbags.com" rel="nofollow"&gt;&lt;strong&gt;Ladies Leather Handbags&lt;/strong&gt;&lt;/a&gt; From the inside filled with feelings of holiday joy,Gold is still the preferred destination for summer magic light,This year the popular rock but not metal, the metal line of luxury.&lt;/p&gt;</description>
      <pubDate>Mon, 26 Dec 2011 01:25:55 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e3fed500-919c-42b6-a92f-4ede3199a12d</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-192048</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by wow enchanting guide </title>
      <description>&lt;p&gt;This is a nice comment. This information is very great full to us.&lt;/p&gt;</description>
      <pubDate>Fri, 23 Dec 2011 09:38:11 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f0d3056b-7043-4aff-a0c5-204d0942ef7d</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-190857</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by essays term papers</title>
      <description>&lt;p&gt;Great site having lot of useful information of the topic in detail. As this site may help many professional peoples. Thanks for sharing this information.&lt;/p&gt;</description>
      <pubDate>Fri, 16 Dec 2011 07:23:29 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d1489314-438f-43cf-beee-b5bf256e72c0</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-188201</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Stivali Ugg</title>
      <description>&lt;p&gt;&lt;a href="http://www.uggscarpe2011.com/" rel="nofollow"&gt;Stivali Ugg&lt;/a&gt;,I neonati avendo sindrome respiratoria preoccupazione (RDS) attualmente hanno problemi respiratori, dato che i polmoni non dovrebbe funzionare adeguatamente.Gli alveoli, che sono le sacche di minuscoli dintorni in tutto i polmoni, sgualcisce, che rende difficile con il bambino cos&#236; che si pu&#242; respirare.Solito nei neonati prematuri ?? quelli Beato sei settimane o ulteriore prima della loro scadenza data ?? RDS &#232; il risultato di una mancanza di tensioattivo, che &#232; un andando naturalmente sulla sostanza questo cappotti questo polmoni e in particolare viene secreto&lt;a href="http://www.goose2011outlet.com/canada-goose-banff-parka-c-1.html" rel="nofollow"&gt;Canada Goose Banff Parka&lt;/a&gt;
 dagli alveoli.Quando non c&amp;#8217;&#232; abbastanza tensioattivo sulla nascita, i neonati possono certamente esperienza asmatico angoscia dato che gli alveoli potrebbero non riaprire ogni volta che essi collasso.Questo portare il bambino non avere abbastanza ossigeno tanto necessaria, complicando in tal modo le funzioni di legna.&lt;a href="http://www.uggscarpe2011.com/ugg-classic-tall-stivali-3/" rel="nofollow"&gt;UGG Classic Tall Stivali&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 21 Nov 2011 00:38:44 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:61e40eaf-b9b6-42d9-be08-453f4eeac05e</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-176111</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Spyder Jackets</title>
      <description>&lt;p&gt;&lt;a href="http://www.spyderjackets-outlet.net" rel="nofollow"&gt;http://www.spyderjackets-outlet.net&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 18 Nov 2011 00:57:10 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6d177977-e08d-4e5d-91ce-5ba2bf16922e</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-175244</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Air Jordan  2011</title>
      <description>&lt;p&gt;&lt;a href="http://www.nikeofus.biz/" rel="nofollow"&gt;Air Jordan 2011&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 16 Nov 2011 19:40:13 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:2dab74e4-5433-46dc-a027-86f41477bb59</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-174342</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by nike heels dunk</title>
      <description>&lt;p&gt;Today you wear high heels. As for Women and &lt;a href="http://www.nikeheelsdunk.com/" rel="nofollow"&gt;jordan high heels&lt;/a&gt;, this is the inseparable relations, Tom Ford master evidence: &amp;#8220;don&amp;#8217;t wear the high-heeled shoes woman how talk up sexy?&amp;#8221; High heels and sex appeal is relevant? The answer is: &amp;#8220;of course!&amp;#8221; The temptation of high-heeled shoes Wear &lt;a href="http://www.nikeheelsdunk.com/air-jordan-1-high-heels-c-75.html" rel="nofollow"&gt;women nike heels online&lt;/a&gt; in a split second sexy, charm and confident outbreak, twisting the waist is born swaying pose..Worth looking at, perhaps have unexpected harvest.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Nov 2011 22:04:56 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:1f35c23c-78d2-4ddc-a9f4-da87c639e55c</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-171551</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by latest news</title>
      <description>&lt;p&gt;I tired to recompile my C++ code to use the same thing. Thanks!&lt;/p&gt;</description>
      <pubDate>Sat, 05 Nov 2011 09:03:43 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:02552b23-cc68-410f-ad27-144d4ff6f947</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-168719</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by christian louboutin</title>
      <description>&lt;p&gt;I barely know Objective-C, so as the series progresses, I&#8217;ll expect some help on better practices&lt;/p&gt;</description>
      <pubDate>Thu, 03 Nov 2011 11:57:29 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e4dfd8d7-c032-478c-bda5-506a1b2640e0</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-167752</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by christian louboutin</title>
      <description>&lt;p&gt;The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.&lt;/p&gt;


	&lt;p&gt;Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;Color: Coffee
Material: Suede
4(100mm) heel
Signature red sole x&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, 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>Thu, 03 Nov 2011 10:44:04 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1edfff6d-16c4-4414-9ed1-1330eda76084</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-167685</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Bouvier ugg 2011</title>
      <description>&lt;p&gt;&lt;a href="http://www.bottesugg2011.com/ugg-classic-mini-bottes-4/" rel="nofollow"&gt; Bottes UGG Classic Mini &lt;/a&gt;, ?Ils ne sont g&#233;n&#233;ralement pas se pr&#233;cipiter ici nous sommes dans les magasins et ils ne se pr&#233;cipitent pas oh non-le domaine du logement. &amp;#8220;Federal R&#233;serve faunique pr&#233;sident Bernanke a t&#233;moign&#233; Mary vers la maison de fonds Comit&#233; a n&#233;anmoins son point de vue semblait qu&amp;#8217;il y avait largement la m&#234;me chose de remarques de ce Watchers entreprise morning.Some not&#233; qu&amp;#8217;il a &#233;t&#233; l&#233;g&#232;rement beaucoup plus d&amp;#8217;espoir, comme elle ou il a n&#233;glig&#233; d&amp;#8217;aider le r&#233;p&#232;te, il devrait prendre 4-5 ans pour ramener le taux de ch?mage de retour &#224; la normale stages.He &#233;galement mentionn&#233; les faits qui normalement r&#233;cent &amp;#8220;ne produisent certains marc de caf&#233; pour les perspectives positives.&amp;#8221; Contenu fourni par AroundFX.com.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Nov 2011 01:20:23 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2f44490f-94e6-49c1-aa5c-b9a37c50bd97</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-167285</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Property Marbella</title>
      <description>&lt;p&gt;I barely know Objective-C, so as the series progresses, I&#8217;ll expect some help on better practices&lt;/p&gt;</description>
      <pubDate>Thu, 27 Oct 2011 13:39:17 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0d1e7709-599c-42fa-bfae-5ca505bd425a</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-164777</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Stivali Ugg Paisley</title>
      <description>&lt;p&gt;&lt;a href="http://www.uggscarpe2011.com/ugg-paisley-stivali-6/" rel="nofollow"&gt;Stivali Ugg Paisley&lt;/a&gt; , L&amp;#8217;economia all&amp;#8217;estero, tutte le obliterazione da confini, la pianificazione fondamentale verso il basso agli interessi di questo snob nascosti massonica, l&amp;#8217;introduzione di mezzo di comunicazione che si applicherebbero completo e anche il controllo ininterrotto processo di pensiero, e quindi l&amp;#8217;imposizione globale da un materialista socio-comportamentale sistema basato sul falso semplice fatto, incesto, desideri disinformato, e carenza di della fede, sono particolarmente le dimensioni fondamentali del disumano, un gran numero di diabolico, sistema di molti inquietante mai inventato per l&amp;#8217;umanit&#224; quelli, e il vostro circumstances.As sfortunata la maggior parte di questi processi necessaria una parte ideale di tempo ingannevole e gli atti di prigione&lt;/p&gt;</description>
      <pubDate>Mon, 24 Oct 2011 01:53:48 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:74292e1b-1f57-4325-a91b-0f3c66c6a045</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-162401</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Scarpe Ugg</title>
      <description>&lt;p&gt;Amazon &lt;a href="http://www.uggscarpe2011.com/" rel="nofollow"&gt;Scarpe Ugg&lt;/a&gt; , da solo alla ricerca di Google per la produzione di una piattaforma per tutti di accedere al portale internet, Apple iPhone, iPad quei prodotti caldi elettrico guidare il mercato trend.Amazon industria in linea vero? Si tratta di un hardware, software informatici, online punto vendita, tutti gli stati addestrati in meno di cloud computing Solutions Company, fornisce otto profitti consecutivi / perdite, fondatore Jeff Bezos (Jeff Bezos) pu&#242; essere una nota riluttanza al fine di soddisfare CHIEF di Wall Street AMMINISTRATORE, &#232; popolare con i mercati di bilancio, prominente nella lista del valore di mercato &#232; stato ancora una volta che coinvolge le imprese Google.The fornisce ancora solo kindle e-book, non necessariamente di produzione, di solito non conoscono nemmeno, o forse una produzione di tablet PC, ma &#232; diventato il pi&#249; rischi per libretto Ipad &amp;#8220;avversario immaginario.&amp;#8221; Siamo molto contenti, ma non &#232; che basta fare la prima cosa, ma per molte cose fatte bene. &amp;#8220;Amazon CTO Werner dice.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 22:27:09 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f25f814f-1190-45ff-b433-a0c9efde5d53</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-159871</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by best diabetes hub</title>
      <description>&lt;p&gt;This is very much happy for using technology is visible in this blog. I had really like it very much for providing the amazing info is display in this blog and thanks a lot for visiting the nice info is visible in this blog.&lt;/p&gt;</description>
      <pubDate>Mon, 17 Oct 2011 04:08:21 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c4c3c423-d54e-4f2b-82ce-38adc32b4954</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-158356</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Louboutins</title>
      <description>&lt;p&gt;asdfaa 0sd+fa
s 0dfa
ssss&lt;/p&gt;</description>
      <pubDate>Mon, 10 Oct 2011 22:16:40 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b9a0a415-900c-43f7-a54c-f2700677feb5</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-153785</link>
    </item>
    <item>
      <title>"Preprocessor seams and assignment of responsibility" by Christian</title>
      <description>&lt;p&gt;asdfasa 0s9dfas+ a +&lt;/p&gt;</description>
      <pubDate>Mon, 10 Oct 2011 22:13:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c1585b8c-2136-4c9a-ac7d-1cc6a04a2503</guid>
      <link>http://blog.objectmentor.com/articles/2010/07/22/preprocessor-seams-and-assignment-of-responsibility#comment-153765</link>
    </item>
  </channel>
</rss>

