<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Linux + Administrator = Linuxator</title>
	<atom:link href="http://linuxator.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://linuxator.wordpress.com</link>
	<description>Linux Adminstrator's blog</description>
	<lastBuildDate>Fri, 07 Nov 2008 16:40:14 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Using dmidecode to find out what memory chips you have by Having more than 4GB of RAM on x86 Linux &#171; Linux + Administrator = Linuxator</title>
		<link>http://linuxator.wordpress.com/2008/10/28/using-dmidecode-to-find-out-what-memory-chips-you-have/#comment-15</link>
		<dc:creator>Having more than 4GB of RAM on x86 Linux &#171; Linux + Administrator = Linuxator</dc:creator>
		<pubDate>Fri, 07 Nov 2008 16:40:14 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=97#comment-15</guid>
		<description>[...] Comments (RSS)       &#171; Using dmidecode to find out what memory chips you&#160;have [...]</description>
		<content:encoded><![CDATA[<p>[...] Comments (RSS)       &laquo; Using dmidecode to find out what memory chips you&nbsp;have [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by dmtdev &#187; Blog Archive &#187; Linux Kernel Package Composition</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-13</link>
		<dc:creator>dmtdev &#187; Blog Archive &#187; Linux Kernel Package Composition</dc:creator>
		<pubDate>Wed, 15 Oct 2008 22:13:09 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-13</guid>
		<description>[...] full source and patch baseline packages. Kernel version 2.6.26 was over six million SLOCs (“5 things you didn’t know about linux kernel code metrics”. Maciej Sołtysiak. Accessed on 2008-10-08), so 250MB is reasonable. I downloaded the patch [...]</description>
		<content:encoded><![CDATA[<p>[...] full source and patch baseline packages. Kernel version 2.6.26 was over six million SLOCs (“5 things you didn’t know about linux kernel code metrics”. Maciej Sołtysiak. Accessed on 2008-10-08), so 250MB is reasonable. I downloaded the patch [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by Linux kernel 2.6.27 &#171; Linux + Administrator = Linuxator</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-12</link>
		<dc:creator>Linux kernel 2.6.27 &#171; Linux + Administrator = Linuxator</dc:creator>
		<pubDate>Sat, 27 Sep 2008 14:57:32 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-12</guid>
		<description>[...] Comments (RSS)       &#171; 5 things you didn&#8217;t know about linux kernel code&#160;metrics [...]</description>
		<content:encoded><![CDATA[<p>[...] Comments (RSS)       &laquo; 5 things you didn&#8217;t know about linux kernel code&nbsp;metrics [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by Maciej Sołtysiak</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-8</link>
		<dc:creator>Maciej Sołtysiak</dc:creator>
		<pubDate>Mon, 04 Aug 2008 11:24:34 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-8</guid>
		<description>Yup, SLOC is a very rough statistic and don&#039;t say much about the quality. Quality is something that could be measured by projects like &lt;a href=&quot;http://www.coverity.com/html/press_story03_12_14_04.html&quot; rel=&quot;nofollow&quot;&gt;Coverity&lt;/a&gt;, ie. static analysis of source code. SLOCcount however is wise enough to skip blank lines and comments. CLOC the same. SLOC as a metric mainly acts as basis for calculating the cost of developer effort, eg. using the &lt;a href=&quot;http://en.wikipedia.org/wiki/COCOMO&quot; rel=&quot;nofollow&quot;&gt;COCOMO&lt;/a&gt; model. I didn&#039;t want to do this analysis, because I am not knowledgeable enough to tweak the basic coefficients as well as &lt;a href=&quot;http://www.dwheeler.com/essays/linux-kernel-cost.html&quot; rel=&quot;nofollow&quot;&gt;David Wheeler did in his analysis&lt;/a&gt;.

Going back to the metrics. I&#039;d say that it shows you how much code is being written and included into the kernel. It surely says about the quantity, because includes and macros are written and placed in one file and reused all over the project. The same goes for code that gets copied and modified only slightly. It still is quantity. I see your point though. Maybe it&#039;d be better to run SLOC on the output of gcc -E (so the macros would be expanded) but seriously if have a mutliline macro like:
&lt;code&gt;
#define f_close(f) \
        do { \
                if ((f) != NULL) \
                { \
                        fclose((f));\
                } \
                else \
                {\
                        (f)=NULL;\
                        printf(&quot;f_close: closing closed file?&quot;, 0);\
                }\
        } while (0);
&lt;/code&gt;

and then when you reuse it just by typing:
&lt;code&gt;
f_close(fp);
&lt;/code&gt;

in reality you&#039;re adding 11 lines or so but you&#039;r effort is this one line.

To recap, these stats are more biased towards effort to write the code.</description>
		<content:encoded><![CDATA[<p>Yup, SLOC is a very rough statistic and don&#8217;t say much about the quality. Quality is something that could be measured by projects like <a href="http://www.coverity.com/html/press_story03_12_14_04.html" rel="nofollow">Coverity</a>, ie. static analysis of source code. SLOCcount however is wise enough to skip blank lines and comments. CLOC the same. SLOC as a metric mainly acts as basis for calculating the cost of developer effort, eg. using the <a href="http://en.wikipedia.org/wiki/COCOMO" rel="nofollow">COCOMO</a> model. I didn&#8217;t want to do this analysis, because I am not knowledgeable enough to tweak the basic coefficients as well as <a href="http://www.dwheeler.com/essays/linux-kernel-cost.html" rel="nofollow">David Wheeler did in his analysis</a>.</p>
<p>Going back to the metrics. I&#8217;d say that it shows you how much code is being written and included into the kernel. It surely says about the quantity, because includes and macros are written and placed in one file and reused all over the project. The same goes for code that gets copied and modified only slightly. It still is quantity. I see your point though. Maybe it&#8217;d be better to run SLOC on the output of gcc -E (so the macros would be expanded) but seriously if have a mutliline macro like:<br />
<code><br />
#define f_close(f) \<br />
        do { \<br />
                if ((f) != NULL) \<br />
                { \<br />
                        fclose((f));\<br />
                } \<br />
                else \<br />
                {\<br />
                        (f)=NULL;\<br />
                        printf("f_close: closing closed file?", 0);\<br />
                }\<br />
        } while (0);<br />
</code></p>
<p>and then when you reuse it just by typing:<br />
<code><br />
f_close(fp);<br />
</code></p>
<p>in reality you&#8217;re adding 11 lines or so but you&#8217;r effort is this one line.</p>
<p>To recap, these stats are more biased towards effort to write the code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by BobJ</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-7</link>
		<dc:creator>BobJ</dc:creator>
		<pubDate>Sat, 02 Aug 2008 19:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-7</guid>
		<description>The usage of included files, macros, conditional code (ex: 32-bit vs. 64-bit), comments!, readability white space, etc. all means that lines of code as a metric is only a count of text lines and has nothing to do with the quality or quantity of code.  Even counting actual number of bytes produced is suspect, as some well written sub-code (subroutines/functions) may be replaced with a combination of macros/declarative constants that at the least save the resources to call/return from sub-code and for some higher level-languages with inter-statement/intra-statement optimization that take a lot fewer resources. 

I know of a project where the usage of macros (the code executed much faster due to inter-statement optimization of the macro code which was deliberately written to enhance this optimization) was effectively penalized, so a very astute programmer had the macros generate source files which up&#039;d a groups source code count to a suitably impressive level.</description>
		<content:encoded><![CDATA[<p>The usage of included files, macros, conditional code (ex: 32-bit vs. 64-bit), comments!, readability white space, etc. all means that lines of code as a metric is only a count of text lines and has nothing to do with the quality or quantity of code.  Even counting actual number of bytes produced is suspect, as some well written sub-code (subroutines/functions) may be replaced with a combination of macros/declarative constants that at the least save the resources to call/return from sub-code and for some higher level-languages with inter-statement/intra-statement optimization that take a lot fewer resources. </p>
<p>I know of a project where the usage of macros (the code executed much faster due to inter-statement optimization of the macro code which was deliberately written to enhance this optimization) was effectively penalized, so a very astute programmer had the macros generate source files which up&#8217;d a groups source code count to a suitably impressive level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by Maciej Sołtysiak</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-6</link>
		<dc:creator>Maciej Sołtysiak</dc:creator>
		<pubDate>Tue, 29 Jul 2008 17:41:18 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-6</guid>
		<description>Hi,

some feedback:
- now that you mention it, the number of files does look more like 2 linear segments.
- 1 C++ file is reported by CLOC. SLOCCount reports a different structure. I&#039;ll add it to the article:
&lt;code&gt;
ansic:      5780304 (96.08%)
asm:         218132 (3.63%)
perl:          6075 (0.10%)
cpp:           3242 (0.05%)
yacc:          2919 (0.05%)
sh:            2609 (0.04%)
lex:           1825 (0.03%)
python:         331 (0.01%)
lisp:           218 (0.00%)
pascal:         116 (0.00%)
awk:             96 (0.00%)
&lt;/code&gt;
- these stats do include the Documentation directory, eg. 3_bottom.png file. 
- it&#039;s true that more lines of code does not mean better quality, I think we should have coverity analysis for that. One thing that these stats hide is the real rewrites. They do happen. Overall stats say about 4300 lines added, 1800 lines removed, 1500 lines modified. See? 1800 lines removed daily!

Thanks for insightfull pointers.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>some feedback:<br />
- now that you mention it, the number of files does look more like 2 linear segments.<br />
- 1 C++ file is reported by CLOC. SLOCCount reports a different structure. I&#8217;ll add it to the article:<br />
<code><br />
ansic:      5780304 (96.08%)<br />
asm:         218132 (3.63%)<br />
perl:          6075 (0.10%)<br />
cpp:           3242 (0.05%)<br />
yacc:          2919 (0.05%)<br />
sh:            2609 (0.04%)<br />
lex:           1825 (0.03%)<br />
python:         331 (0.01%)<br />
lisp:           218 (0.00%)<br />
pascal:         116 (0.00%)<br />
awk:             96 (0.00%)<br />
</code><br />
- these stats do include the Documentation directory, eg. 3_bottom.png file.<br />
- it&#8217;s true that more lines of code does not mean better quality, I think we should have coverity analysis for that. One thing that these stats hide is the real rewrites. They do happen. Overall stats say about 4300 lines added, 1800 lines removed, 1500 lines modified. See? 1800 lines removed daily!</p>
<p>Thanks for insightfull pointers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by Rhialto</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-5</link>
		<dc:creator>Rhialto</dc:creator>
		<pubDate>Tue, 29 Jul 2008 15:47:11 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-5</guid>
		<description>While your article doesn&#039;t really say anything on the matter, I&#039;d like to add that &quot;more lines of code&quot; is not necessarily a good thing. It can be more features, but it can also be more bloat. A code shrink from time to time (when doing a rewrite in a more efficient way) can be good too.</description>
		<content:encoded><![CDATA[<p>While your article doesn&#8217;t really say anything on the matter, I&#8217;d like to add that &#8220;more lines of code&#8221; is not necessarily a good thing. It can be more features, but it can also be more bloat. A code shrink from time to time (when doing a rewrite in a more efficient way) can be good too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by cheve</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-4</link>
		<dc:creator>cheve</dc:creator>
		<pubDate>Tue, 29 Jul 2008 14:44:37 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-4</guid>
		<description>I am surprised that only 1 C++ language file is detected by the SLOC.</description>
		<content:encoded><![CDATA[<p>I am surprised that only 1 C++ language file is detected by the SLOC.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by Ken Ryan</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-3</link>
		<dc:creator>Ken Ryan</dc:creator>
		<pubDate>Tue, 29 Jul 2008 13:54:14 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-3</guid>
		<description>(Linked here from Groklaw.net)

Interesting stats.

It&#039;s not clear to me that things like Kconfig files are included.  They are part of the build structure, but are not a standard language.  They are critical parts of the make system however.

Also I might quibble with the concept of removing documentation files from the stats.  IMHO documentation is as important as the code itself.  There has been a few people putting special effort into improving kernel documentation, which leads to increased robustness and ease of adding *more* code.

Anyway, I enjoyed your article.  Thanks!</description>
		<content:encoded><![CDATA[<p>(Linked here from Groklaw.net)</p>
<p>Interesting stats.</p>
<p>It&#8217;s not clear to me that things like Kconfig files are included.  They are part of the build structure, but are not a standard language.  They are critical parts of the make system however.</p>
<p>Also I might quibble with the concept of removing documentation files from the stats.  IMHO documentation is as important as the code itself.  There has been a few people putting special effort into improving kernel documentation, which leads to increased robustness and ease of adding *more* code.</p>
<p>Anyway, I enjoyed your article.  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 things you didn&#8217;t know about linux kernel code metrics by Tuxo</title>
		<link>http://linuxator.wordpress.com/2008/07/22/5-things-you-didnt-know-about-linux-kernel-code-metrics/#comment-2</link>
		<dc:creator>Tuxo</dc:creator>
		<pubDate>Tue, 29 Jul 2008 09:07:04 +0000</pubDate>
		<guid isPermaLink="false">http://linuxator.wordpress.com/?p=5#comment-2</guid>
		<description>Hi, interesting information, althoug the 3_files.png (File in Linux kernel source) plot is not faster than linear, I think it has two linear segments with a regime change between 2.6.7 and 2.6.8 kernel verions. I am not familiar with kernel history therefore I can not tell what is the cause, it could be new features, new drivers, new developers, a mix of any of these, who knows, SCO secret code (just kidding).

For other plots it is clear the behavior is faster than linear, maybe cuadratic.

SALUDOS
TUXO</description>
		<content:encoded><![CDATA[<p>Hi, interesting information, althoug the 3_files.png (File in Linux kernel source) plot is not faster than linear, I think it has two linear segments with a regime change between 2.6.7 and 2.6.8 kernel verions. I am not familiar with kernel history therefore I can not tell what is the cause, it could be new features, new drivers, new developers, a mix of any of these, who knows, SCO secret code (just kidding).</p>
<p>For other plots it is clear the behavior is faster than linear, maybe cuadratic.</p>
<p>SALUDOS<br />
TUXO</p>
]]></content:encoded>
	</item>
</channel>
</rss>
