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

<channel>
	<title>CertPal &#187; code</title>
	<atom:link href="http://www.certpal.com/blogs/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.certpal.com/blogs</link>
	<description>Technology and certifications</description>
	<lastBuildDate>Mon, 18 Jul 2011 06:48:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Java Neuroph tutorial &#8211; The code classifier</title>
		<link>http://www.certpal.com/blogs/2010/07/java-neuroph-tutorial-the-code-classifier/</link>
		<comments>http://www.certpal.com/blogs/2010/07/java-neuroph-tutorial-the-code-classifier/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 17:34:59 +0000</pubDate>
		<dc:creator>CertPal</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[neural]]></category>

		<guid isPermaLink="false">http://www.certpal.com/blogs/?p=844</guid>
		<description><![CDATA[The Neuroph API can be used to train neural networks in java. This experiment tries to use the API to enable automatic classification of source code based on the programming language it belongs to]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F07%2Fjava-neuroph-tutorial-the-code-classifier%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F07%2Fjava-neuroph-tutorial-the-code-classifier%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.certpal.com/blogs/wp-content/uploads/neuroph_logo.png"><img class="alignright size-full wp-image-666" title="neuroph_logo" src="http://www.certpal.com/blogs/wp-content/uploads/neuroph_logo.png" alt="" width="257" height="148" /></a> An <a href="http://www.ibm.com/developerworks/library/l-neural/" target="_blank">article was written a while back</a> about how neural networks can be used to classify source code. Yes the source code that you write to feed to compilers / interpreters.</p>
<p>The article explains at a high level what method could be used to perform this activity. In the end the author claims some level of success and wonders how other neural-network implementations / techniques would solve the same problem. This got me curious enough and I spent a weekend trying to crack this with Neuroph, the neural network library for java. I present to you my analysis and results below. For the impatient here is the code-classifier <a href="http://www.certpal.com/NeuralWeb/index.html" target="_blank">DEMO</a>.</p>
<h2>Why solve this problem with neural networks ?</h2>
<p>So where do we begin ? How about the question &#8216;Why do we need neural networks to solve this problem ?&#8217;. Well actually it might not be the &#8216;best&#8217; way to solve the problem. A lexer is a better solution to this problem since it can scan the source file and probably give you a much better accuracy on the clasification. But neural networks are also great for this problem since they can keep learning based on the input that is provided. Add one more programming language into the bag and the network can learn about this language without a programmer needing to type extra code into a lexer.</p>
<h2>So how do we do it ?</h2>
<p>One of the features that differentiates one source code type from another is the keywords used by the programming language in question. So lets target that. Our neural network will try to identify if source code belongs to the java language or the python language. </p>
<p>It takes as its input a list of all keywords available in both languages. Mind you that there may even be some overlap between the keywords. For example the keyword &#8216;if&#8217; is used in both languages. But there may be keywords that are used solely in one language alone.</p>
<p><strong>Neural network viewed in graph mode: (The network is too huge to fit into this picture <img src='http://www.certpal.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
</strong></p>
<p><a href="http://www.certpal.com/blogs/wp-content/uploads/neural_code_classifier.png"><img class="aligncenter size-full wp-image-848" title="neural_code_classifier" src="http://www.certpal.com/blogs/wp-content/uploads/neural_code_classifier.png" alt="" width="738" height="552" /></a></p>
<p>A middle layer will contain a few nodes that will back propagate anything that it learns. The output layer (just one node) will decide if the language is java / python. The value will range from 0-1, where 0 represents closeness to python and 1 represents closeness to java.</p>
<h2>How do we train it ?</h2>
<p>The process of training is made easy by the neuroph API. First we need a few java / python files. A program was written that reads each file and splits it based on the whitespace delimiter. Based on a known set of keywords, the network is fed the number of times a keyword appears in a source file.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>Map<span style="color: #339933;">&lt;</span>Double, Double<span style="color: #339933;">&gt;</span> map <span style="color: #339933;">:</span> keywordStrength<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    Collection<span style="color: #339933;">&lt;</span>Double<span style="color: #339933;">&gt;</span> values <span style="color: #339933;">=</span> map.<span style="color: #006633;">values</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    Vector<span style="color: #339933;">&lt;</span>Double<span style="color: #339933;">&gt;</span> input <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Vector<span style="color: #339933;">&lt;</span>Double<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    input.<span style="color: #006633;">addAll</span><span style="color: #009900;">&#40;</span>values<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    SupervisedTrainingElement supervisedTrainingElement <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SupervisedTrainingElement<span style="color: #009900;">&#40;</span>input,output<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    trainingSet.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span>supervisedTrainingElement<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>For example, recognized keywords may be &#8216;public&#8217; represented by the input index 0 and &#8216;static&#8217; represented by the input index 1.  A java file may contain the word pubic 10 times and static 5 times. The input to the network in this case would be 10 5. We can now use these numbers to tell the network &#8216;Hey if you see this pattern it is likely that the source code belongs to language X&#8217;. Neat !. Once the network is trained you can load it and use the same process to classify source code for any given input String.</p>
<h2>Well&#8230; show us some stats:</h2>
<p>Before I say anything else, I did not expect this approach to succeed more than 10-20% of the time. This is because the number of files that I trained this network with was around 20. Java + Python included. But I was surprised to see the network classifying the data correctly most of the time. There were very few cases where it failed.</p>
<p>The real test for this network is now in your hands. I made a java web app on top of this &#8216;code classifier&#8217; application and built a simple UI using Jquery. You can type in any code / junk you want and hit the trained network. If it manages to classify your code correctly at least 60% of the time, I would consider that an enormous victory (for Neuroph ?) <img src='http://www.certpal.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So what are you waiting for, <a href="http://www.certpal.com/NeuralWeb/index.html" target="_blank">take her for a spin</a>.</p>
<h2>How do I game the results:</h2>
<p>This is pretty simple. There are certain rules you must follow. Not following them will give you weird results <img src='http://www.certpal.com/blogs/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>1. Make sure that your code does not contain comments. I do not strip comments from code before analyzing them for keywords. Including java like keywords in a python file comment will confuse the network.<br />
2. Input only those files that will compile / run correctly on Java / Python. In theory you could feed in a Shakespeare novel to my network and it will still try to classify it as source code <img src='http://www.certpal.com/blogs/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>So does the network work for you ? Feel free to leave a comment.</p>
<p><em>I also wrote a simpler <a href="http://www.certpal.com/blogs/2010/04/java-neural-networks-and-neuroph-a-tutorial/" target="_new">tutorial for Neuroph</a> that is less practical and more academic. Check it out if it interests you</em></p>
<p><script type="text/javascript">var dzone_url = 'http://www.certpal.com/blogs/2010/07/java-neuroph-tutorial-the-code-classifier/';</script><br />
<script type="text/javascript">var dzone_title = 'Java Neuroph tutorial - The code classifier';</script><br />
<script type="text/javascript">var dzone_blurb = 'The Neuroph API can be used to train neural networks in java. This experiment tries to use the API to enable automatic classification of source code based on the programming language it belongs to. ';</script><br />
<script type="text/javascript">var dzone_style = '2';</script><br />
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F07%2Fjava-neuroph-tutorial-the-code-classifier%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F07%2Fjava-neuroph-tutorial-the-code-classifier%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.certpal.com/blogs/2010/07/java-neuroph-tutorial-the-code-classifier/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How to improve your programming skills</title>
		<link>http://www.certpal.com/blogs/2010/06/how-to-improve-your-programming-skills/</link>
		<comments>http://www.certpal.com/blogs/2010/06/how-to-improve-your-programming-skills/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 16:35:55 +0000</pubDate>
		<dc:creator>CertPal</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.certpal.com/blogs/?p=732</guid>
		<description><![CDATA[Everyone introduces bugs into their code, whether they like it or not. Here are a few ways through which you can reduce the number of bugs in your code. Or at least, try ;)]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F06%2Fhow-to-improve-your-programming-skills%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F06%2Fhow-to-improve-your-programming-skills%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Ever visit sites like <a href="http://www.topcoder.com/tc/" target="_blank">topcoder.com</a> and solve a problem or two ? No ? You should and do so regularly. It will help find tune your programming / design skills. This is because solving the problems requires going though the following thought process</p>
<ol>
<li>Understanding the problem.</li>
<li>Thinking up a solution that covers all use cases.</li>
<li>Executing your thought process through code.</li>
<li>Testing.</li>
</ol>
<p>Now as simple as that sounds, it is not so easy to get right. Especially when you are competing with thousands of fellow coders for time. And when time is a constrain you usually select the first solution that comes to your head, which might not necessarily be the best. So there is that risk of your code timing out even if it is following the right logic. I would love to delve into a problem right about now and throw in some examples and illustration, but you get the point.</p>
<p>When the thought process that we follow is not well defined and we lose focus, it often leads to buggy code. Don&#8217;t believe me ? Here are some bugs I caught in a code base on a recent project.</p>
<p><a href="http://www.certpal.com/blogs/2010/03/bugs-the-most-common-kind/" target="_blank">Bug 1</a></p>
<p><a href="http://www.certpal.com/blogs/2010/04/yet-another-bug/" target="_blank">Bug 2</a></p>
<p><a href="http://www.certpal.com/blogs/2010/06/more-bugs/" target="_blank">Bug 3</a></p>
<p>There were more bugs identified after development than what is listed here. But what I wanted to highlight was that the problem was introduced into the system due to lack of focus and clarity of thought. Well, more often than not anyway. Other times the bug sneaks into the system because the number of test cases to test a method were not sufficient. </p>
<p>Have a look at this google research <a href="http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html" target="_blank">blog post about broken binary search and merge sort algorithms</a> for example. They pretty much have the same bug as the <a href="http://www.certpal.com/blogs/2010/04/yet-another-bug/" target="_blank">date calculation bug</a> that I highlighted in a different post. We are all prone to creating bugs, but we can minimize the number of ones we introduce into the system.</p>
<p>So what have I learned from introducing bugs so far ?</p>
<ol>
<li>As long as you keep your skills sharp and practice solving problems, the number of bugs you introduce will reduce. I try to visit sites like <a href="http://www.topcoder.com/tc/" target="_blank">topcoder.com</a> or <a href="http://codingbat.com/" target="_blank">codingbat.com</a> whenever I find the time.</li>
<li>Learning from other&#8217;s mistakes and best practices can save you tons of time.</li>
<li>Try not to cram in your work within X hours. This tends to focus the effort on finishing the code on time instead of writing it neat and bug free.</li>
</ol>
<p>As always its easier said than done. But hey, its never too late eh ? As for finding the bugs in the first place&#8230;</p>
<ol>
<li>Use a tool like <a href="http://findbugs.sourceforge.net/" target="_self">FindBugs</a> after you are done coding. You will be surprised at how many problems turn up.</li>
<li>Try to maintain a code coverage of at least 80 %. Tools like <a href="http://emma.sourceforge.net/" target="_blank">Emma</a> can help you track this.</li>
</ol>
<p><script type="text/javascript">var dzone_url = 'http://www.certpal.com/blogs/2010/06/how-to-improve-your-programming-skills/';</script><br />
<script type="text/javascript">var dzone_title = 'How to improve your programming skills';</script><br />
<script type="text/javascript">var dzone_blurb = 'Everyone introduces bugs into their code, whether they like it or not. Here are a few ways through which you can reduce the number of bugs in your code. Or at least, try <img src='http://www.certpal.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ';</script><br />
<script type="text/javascript">var dzone_style = '2';</script><br />
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F06%2Fhow-to-improve-your-programming-skills%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F06%2Fhow-to-improve-your-programming-skills%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.certpal.com/blogs/2010/06/how-to-improve-your-programming-skills/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bugs &#8211; The most common kind</title>
		<link>http://www.certpal.com/blogs/2010/03/bugs-the-most-common-kind/</link>
		<comments>http://www.certpal.com/blogs/2010/03/bugs-the-most-common-kind/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 04:02:18 +0000</pubDate>
		<dc:creator>CertPal</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.certpal.com/blogs/?p=627</guid>
		<description><![CDATA[Bugs are introduced into code inevitably. Most bugs are introduced due to minor errors made in logic or errors introduced when code is copied and pasted into a location. This highlights the need for tools like FindBugs]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F03%2Fbugs-the-most-common-kind%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F03%2Fbugs-the-most-common-kind%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: center;"><a href="http://www.certpal.com/blogs/wp-content/uploads/bug.png"><img class="aligncenter size-full wp-image-637" style="border: 1px dashed #4665FF;" title="bug" src="http://www.certpal.com/blogs/wp-content/uploads/bug.png" alt="" width="213" height="176" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">I was testing an application today and came across a bug. A screen had some CRUD operations on a resource. The problem was, whatever I did, the system would perform the operation and tell me that the resource already existed. This left me scratching my head for quite a while. I add a resource and it says it already exists and then adds it. Delete and update also do the same.</p>
<p>So the debugging process started and I sat down with eclipse to get to the root of the problem. I verified that indeed the CRUD operations were reflecting in the persistence store. Then I came across these magical lines of code</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_EXISTS <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.already.exists&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_ADD_SUCCESS <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.already.exists&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_DELETE_FAIL <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.already.exists&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_DELETE_SUCCESS <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.already.exists&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This left me smacking my head. It should have been</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_EXISTS <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.already.exists&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_ADD_SUCCESS <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.add.success&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_DELETE_FAIL <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.delete.failed&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> S_SOMETHING_DELETE_SUCCESS <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;something.delete.success&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The bug was introduced when I copied the first constant and pasted it three times. I forgot to change the keys <img src='http://www.certpal.com/blogs/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> . My point is, most of the bugs that I see introduced into the system are due to silly mistakes like the one above. This is where tools like FindBugs (which can be extended with your own rules) and CheckStyle and other bug finder / code review tools come in handy. A human code review is also a great tool. This little bug served as a reminder as to why we have such tools. To a developer this bug might seem small, but wait till an end user sees the message and says &#8216;What gives !&#8217;.</p>
<p><script type="text/javascript">// <![CDATA[
var dzone_url = 'http://www.certpal.com/blogs/2010/03/bugs-the-most-common-kind/';
// ]]&gt;</script><br />
<script type="text/javascript">// <![CDATA[
var dzone_title = 'Bugs - The most common kind';
// ]]&gt;</script><br />
<script type="text/javascript">// <![CDATA[
var dzone_blurb = 'Bugs are introduced into code inevitably. Most bugs are introduced due to minor errors made in logic or errors introduced when code is copied and pasted into a location. This highlights the need for tools like FindBugs';
// ]]&gt;</script><br />
<script type="text/javascript">// <![CDATA[
var dzone_style = '2';
// ]]&gt;</script><br />
<script src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F03%2Fbugs-the-most-common-kind%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.certpal.com%2Fblogs%2F2010%2F03%2Fbugs-the-most-common-kind%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.certpal.com/blogs/2010/03/bugs-the-most-common-kind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

