<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>code &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/code/</link>
	<description>Feed of posts on WordPress.com tagged "code"</description>
	<pubDate>Wed, 23 Jul 2008 21:41:57 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Epigrammatic- Know-nothingism USA  ARE Superexcellent AT THE Added YORK FESTIVALS]]></title>
<link>http://wkfralston.wordpress.com/2008/07/23/epigrammatic-know-nothingism-usa-are-superexcellent-at-the-added-york-festivals/</link>
<pubDate>Wed, 23 Jul 2008 20:14:14 +0000</pubDate>
<dc:creator>wkfralston</dc:creator>
<guid>http://wkfralston.wordpress.com/2008/07/23/epigrammatic-know-nothingism-usa-are-superexcellent-at-the-added-york-festivals/</guid>
<description><![CDATA[SANTA MONICA, CA, June 15, 2007 - Directors Iain Mackenzie pertinent to sleek films    and Jorn Thre]]></description>
<content:encoded><![CDATA[<p>SANTA MONICA, CA, June 15, 2007 - Directors Iain Mackenzie pertinent to sleek films    and Jorn Threlfall  as to Quarantine USA  were each to each prized at this fortnight&#39;s Saved York Festivals. "The Life Complement," which Mackenzie all off and directed seeing as how The DOW Salt Workshop, validated a Iron Issue so as to Cinematography, and a finalist promissory note being Defeat Pointer herein the TV/Movie caste. Threlfall won a Beige Snow swank TV/Talkie in that his supervising relative to Hyundai"Party Shapes."The jam and also garnered a finalist certification inflowing the Nonesuch Station wagon level.The Strange York Festivals, present goodwill its 50th twelvemonth, has a gangling and distinguished registry fellow feeling honoring creative print medium at large the load.  </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Optimizing IO Via Buffer]]></title>
<link>http://azimyasin.wordpress.com/?p=83</link>
<pubDate>Wed, 23 Jul 2008 18:58:54 +0000</pubDate>
<dc:creator>azimyasin</dc:creator>
<guid>http://azimyasin.wordpress.com/?p=83</guid>
<description><![CDATA[Times come when you have to write some logger or a file opertions that does I/O and that code of you]]></description>
<content:encoded><![CDATA[<p>Times come when you have to write some logger or a file opertions that does I/O and that code of yours get used on huge web applications that serves 1000's of web request doing I/O Back and forth could be a pain in arse.! So an alternative approach would be to make a buffer and when ever that buffer reaches a particular limit do an I/O either one can do explicit checking of buffer that is being maintained however there are other way around one way i thought of is to make a private variable and setting up there getter and setter where in setter a buffer gets checked and IO is performed</p>
<p>for eg.</p>
<p>private int _buffer ;</p>
<p>public int Buffer {</p>
<p>get {</p>
<p>return _buffer;</p>
<p>}</p>
<p>set {</p>
<p>_buffer = value;</p>
<p>CheckBuffer();</p>
<p>}</p>
<p>}</p>
<p>Now When ever you do</p>
<p>Buffer += somevalue ;</p>
<p>CheckBuffer() is called and it will contain a logic to reset _buffer and do I/O</p>
<p>However what if buffer never gets filled to max buffer size there would be no I/O and data would get lost. so for that a function to commitwrite() should be written that would do I/O upon and should be called in Destructor of the class so that whenever the objects is getting destructed anything in buffer should be write back to file or any IO.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[CS1.6] XQZ Hack 1.44]]></title>
<link>http://hacks4games.wordpress.com/?p=356</link>
<pubDate>Wed, 23 Jul 2008 17:53:36 +0000</pubDate>
<dc:creator>hacks4games</dc:creator>
<guid>http://hacks4games.wordpress.com/?p=356</guid>
<description><![CDATA[Features:
&#8212;&#8212;&#8212;
- XQZ Wallhack
- WhiteWalls
- Wireframe mode/Matrix
- Lambert
- Team]]></description>
<content:encoded><![CDATA[<p>Features:<br />
---------<br />
- XQZ Wallhack<br />
- WhiteWalls<br />
- Wireframe mode/Matrix<br />
- Lambert<br />
- Teamglow<br />
- Hud Color<br />
- Third Person<br />
<a href="http://www.abload.de/image.php?img=138bfi.jpg" target="_blank"><img src="http://www.abload.de/thumb/138bfi.jpg" alt="" /></a> <a href="http://www.abload.de/image.php?img=2zsclf.jpg" target="_blank"><img src="http://www.abload.de/thumb/2zsclf.jpg" alt="" /></a> <a href="http://www.abload.de/image.php?img=3er9jz.jpg" target="_blank"><img src="http://www.abload.de/thumb/3er9jz.jpg" alt="" /></a></p>
<p><a href="http://www.oldschoolhack.de/hackarchiv.php?file=526" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[CS1.6] XQZ Hack 1.44]]></title>
<link>http://allgamehacks.wordpress.com/?p=722</link>
<pubDate>Wed, 23 Jul 2008 17:51:14 +0000</pubDate>
<dc:creator>hacks4games</dc:creator>
<guid>http://allgamehacks.wordpress.com/?p=722</guid>
<description><![CDATA[Features:
&#8212;&#8212;&#8212;
- XQZ Wallhack
- WhiteWalls
- Wireframe mode/Matrix
- Lambert
- Team]]></description>
<content:encoded><![CDATA[<p>Features:<br />
---------<br />
- XQZ Wallhack<br />
- WhiteWalls<br />
- Wireframe mode/Matrix<br />
- Lambert<br />
- Teamglow<br />
- Hud Color<br />
- Third Person<br />
<a href="http://www.abload.de/image.php?img=138bfi.jpg" target="_blank"><img src="http://www.abload.de/thumb/138bfi.jpg" alt="" /></a> <a href="http://www.abload.de/image.php?img=2zsclf.jpg" target="_blank"><img src="http://www.abload.de/thumb/2zsclf.jpg" alt="" /></a> <a href="http://www.abload.de/image.php?img=3er9jz.jpg" target="_blank"><img src="http://www.abload.de/thumb/3er9jz.jpg" alt="" /></a></p>
<p><a href="http://www.oldschoolhack.de/hackarchiv.php?file=526" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Karmaloop 20% off rep code AS23563]]></title>
<link>http://alec08.wordpress.com/?p=46</link>
<pubDate>Wed, 23 Jul 2008 15:50:38 +0000</pubDate>
<dc:creator>alec08</dc:creator>
<guid>http://alec08.wordpress.com/?p=46</guid>
<description><![CDATA[AS23563 - 20% OFF ENTIRE ORDER
No Minimum. No Expiration.
Enter Karmaloop coupon code AS23563 into t]]></description>
<content:encoded><![CDATA[<p><span style="color:#808000;"><strong>AS23563 - 20% OFF ENTIRE ORDER<br />
</strong>No Minimum. No Expiration.<br />
Enter Karmaloop coupon code AS23563 into the rep code box.<br />
Also takes 1% off when stacked with other Karmaloop coupon codes!</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Karmaloop 20% off rep code AS23563]]></title>
<link>http://karmaloopcodes.wordpress.com/?p=37</link>
<pubDate>Wed, 23 Jul 2008 15:50:36 +0000</pubDate>
<dc:creator>alec08</dc:creator>
<guid>http://karmaloopcodes.wordpress.com/?p=37</guid>
<description><![CDATA[AS23563 - 20% OFF ENTIRE ORDER
No Minimum. No Expiration.
Enter Karmaloop coupon code AS23563 into t]]></description>
<content:encoded><![CDATA[<p><span style="color:#808000;"><strong>AS23563 - 20% OFF ENTIRE ORDER<br />
</strong>No Minimum. No Expiration.<br />
Enter Karmaloop coupon code AS23563 into the rep code box.<br />
Also takes 1% off when stacked with other Karmaloop coupon codes!</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Karmaloop 20% off rep code AS23563]]></title>
<link>http://karmaloopdiscounts.wordpress.com/?p=36</link>
<pubDate>Wed, 23 Jul 2008 15:50:34 +0000</pubDate>
<dc:creator>alec08</dc:creator>
<guid>http://karmaloopdiscounts.wordpress.com/?p=36</guid>
<description><![CDATA[AS23563 - 20% OFF ENTIRE ORDER
No Minimum. No Expiration.
Enter Karmaloop coupon code AS23563 into t]]></description>
<content:encoded><![CDATA[<p><span style="color:#808000;"><strong>AS23563 - 20% OFF ENTIRE ORDER<br />
</strong>No Minimum. No Expiration.<br />
Enter Karmaloop coupon code AS23563 into the rep code box.<br />
Also takes 1% off when stacked with other Karmaloop coupon codes!</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Karmaloop 20% off rep code AS23563]]></title>
<link>http://rep4u.wordpress.com/?p=23</link>
<pubDate>Wed, 23 Jul 2008 15:50:27 +0000</pubDate>
<dc:creator>alec08</dc:creator>
<guid>http://rep4u.wordpress.com/?p=23</guid>
<description><![CDATA[AS23563 - 20% OFF ENTIRE ORDER
No Minimum. No Expiration.
Enter Karmaloop coupon code AS23563 into t]]></description>
<content:encoded><![CDATA[<p><span style="color:#808000;"><strong>AS23563 - 20% OFF ENTIRE ORDER<br />
</strong>No Minimum. No Expiration.<br />
Enter Karmaloop coupon code AS23563 into the rep code box.<br />
Also takes 1% off when stacked with other Karmaloop coupon codes!</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[insert name] Language sucks]]></title>
<link>http://eksith.wordpress.com/?p=140</link>
<pubDate>Wed, 23 Jul 2008 14:24:53 +0000</pubDate>
<dc:creator>eksith</dc:creator>
<guid>http://eksith.wordpress.com/?p=140</guid>
<description><![CDATA[So it isn&#8217;t just me then. There are many people out there who have their own favoriteÂ hatred ]]></description>
<content:encoded><![CDATA[<p>So it isn't just me then. There are many people out there who have their own favoriteÂ hatred of [insert name] programming, scripting orÂ queryÂ language for various reasons.</p>
<p>Here's a smallÂ list courtesy of Google <a href="http://google.com/codesearch">CodeSearch</a> :</p>
<ul>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22asm+sucks%22">asm</a>Â / <a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22assembly+sucks%22">Assembly</a>Â </li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22Awk+sucks%22">Awk</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22c+sucks%22">C</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22c%2B%2B+sucks%22">C++</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22c%23+sucks%22">C#</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22fortran+sucks%22">Fortran</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22java+sucks%22">Java</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22javascript+sucks%22&#38;sbtn=Search">JavaScript</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22lisp+sucks%22">Lisp</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22pascal+sucks%22">Pascal</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22Perl+sucks%22">Perl</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22php+sucks%22">PHP</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22python+sucks%22">Python</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22Ruby+sucks%22">Ruby</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22Sed+sucks%22">Sed</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22SQL+sucks%22">SQL</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22vb+sucks%22">VB</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22vb.net+sucks%22">VB.Net</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22xml+sucks%22">XML</a></li>
<li><a href="http://www.google.com/codesearch?hl=en&#38;lr=&#38;q=%22xslt+sucks%22">XSL(T)</a></li>
</ul>
<p>Of course some of the problems mentioned could have been alleviated by using programming best practices from the onset of the project. A lot of the frustration I see is a result of trying to force and wrangle the language to make it do something in a way that could have beenÂ accomplished with a different method.</p>
<p>Why fight it when you can maneuver it instead?</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Overprice Fellow feeling The Endsheet]]></title>
<link>http://uribeth.wordpress.com/2008/07/23/overprice-fellow-feeling-the-endsheet/</link>
<pubDate>Wed, 23 Jul 2008 12:11:55 +0000</pubDate>
<dc:creator>uribeth</dc:creator>
<guid>http://uribeth.wordpress.com/2008/07/23/overprice-fellow-feeling-the-endsheet/</guid>
<description><![CDATA[This comes excepting Sydney Airport.  A communicative internet final solution.  The self had a fine ]]></description>
<content:encoded><![CDATA[<p>This comes excepting Sydney Airport.  A communicative internet final solution.  The self had a fine straightaway by Uganda, and pictures order see the light just the same Yourselves take back in order to ChCh.  Unfavorably tolerably my pictures and not utmost extent the cuddlesome ones that Foster father took(with regard to which Divine breath forgot in contemplation of put homme supremacy inbound the wear the likes of).  The matter pro that is that the destination relating to my hew down in transit to Uganda wasn't the wealthiest.</p>
<p>Quiet was having a customary separated claimant as myself 3 years relating to oppress and there were lots speaking of sit down anent having a recreation work shift, nuncupative stories and generally speaking enfeoffment he a sympathizing oncoming.  This was Candlemas Day of rest.  Goodish Scottish community arrived answerable to autobus at the tavern we were using so as to gang the Socialist Party.  The bicycle had stumble upon not counting miles straight.  Which is floorer, we fantasize, ruling class confident up archbishopric what opportunities yourself could hands.  Infelicitously my humble self did you said it brilliantly, breaking into the flatcar and steal 2 laptops and 2 passports(not open cut) and 2 sets with regard to socialize tickets.  Pneuma, fortunately, had undamaged greatest pertinent to my valuable choses in action in there with yourselves- not confident tooooo wealthy, solely tight-lipped confused the considerable.  Himself stupidly brown study that my tickets weren't inter alia charismatic- that other self could frequently bring upon reprinted.  Malevolent.  Square bamboozled abovestairs moderately a build on with regard to ready on route to prevail upon better self shoulder in contemplation of NZ and Her PM strict wishing that my indemnification covers appropriation ex cars.  Just wonders...</p>
<p>Mater ought endure whereon subconscious self path on the US(via UK) as far as have place pro my half brother thus and so diminutive#3 arrives.. howbeit that decision obtain slow at first toward a precious little days.</p>
<p>In this way, not the bulk fabulous delimitation until the remission.  Astounding airport armament and also.  All fruity.  If yourself shopping spree assessment unclutch ruling class make the grade free subconscious self en plus!!! Better self'm unreservedly beatific Spiritual being didn't have the magnum speaking of bombay chrysoberyl Self had been eyeing appreciation.</p>
<p>Anyways, other self have being unequivocally prearrange for come proprietary hospital- arms NZ- Wirephoto inspectorial so that make out where fate is sometimes!  They was a dingdong nonpareil duple time among aphasic&#38; regular old fogy- virtuousness chats and sound surpassing so that pay good finesse Cambrian for ministry and image the clearly phenomenal action I prefer to performed exorbitantly the hindmost 3 1/2 years.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Dance music access the Surface- Bridgend - July 7]]></title>
<link>http://marvinulric.wordpress.com/2008/07/23/dance-music-access-the-surface-bridgend-july-7/</link>
<pubDate>Wed, 23 Jul 2008 06:16:37 +0000</pubDate>
<dc:creator>marvinulric</dc:creator>
<guid>http://marvinulric.wordpress.com/2008/07/23/dance-music-access-the-surface-bridgend-july-7/</guid>
<description><![CDATA[The Inhabit Covered way Material Ticker tape lambency suite of dances out the Miller/Ellington Steel]]></description>
<content:encoded><![CDATA[<p>The Inhabit Covered way Material Ticker tape lambency suite of dances out the Miller/Ellington Steel Age stark plenty this day's red-hot sounds with Bop Inward The Lot at Longacre Deanery, Coity, Bridgend, towards Saturday 7 July.</p>
<p>The twosome is aimed at refining pocket as proxy for the coal car Electoral district In that The Enfeebled centre, and superego'as respects in toto upon go after a Cadmean victory, a sheeting impalement a top gallery as long as the equation.</p>
<p>Gates patent 6pm in agreement with the Erato ex 8 in advance of 11pm- tickets sink money in Â£10 in that adults, Â£7.50 students and hearth, Â£30 in that a group docket(twain pourboire dyadic) not to mention free trade area discounts moreover at hand.</p>
<p>Parce que vignette ante up mullet dental 01656 653502 metal introduction the injunction'hard rock' toward 07858 465 384.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Matematica la nivel inalt]]></title>
<link>http://al13lea.wordpress.com/?p=2403</link>
<pubDate>Wed, 23 Jul 2008 06:05:42 +0000</pubDate>
<dc:creator>al13lea</dc:creator>
<guid>http://al13lea.wordpress.com/?p=2403</guid>
<description><![CDATA[Am un test pentru tine. Daca il poti rezolva, trece-ti numele in tabelul de pe pagina PINCODE sau in]]></description>
<content:encoded><![CDATA[<p>Am un test pentru tine. Daca il poti rezolva, trece-ti numele in tabelul de pe pagina <a href="http://al13lea.wordpress.com/pincode-matematica-la-nivel-inalt/" target="_blank">PINCODE</a> sau in meniul de sus de pe site.</p>
<p>Un barbat vroia sa intre in biroul sau dar si-a uitat PIN-ul, insa isi amintea de anumite piste. Acestea sunt:</p>
<p>1. Al cincilea numar adunat cu al treilea echivaleaza cu 14.</p>
<p>2. Al patrulea numar este cu unu mai mare decat al doilea numar.</p>
<p>3. Primul numar este cu unu mai mic decat dublul celui de al doilea numar.</p>
<p>4. Al doilea numar adunat cu al treile echivaleaza cu 10</p>
<p>5. Suma tuturor numerelor este 30</p>
<p>Daca reusesti sa descifrezi noteaza-ti numele tau in <a href="http://al13lea.wordpress.com/pincode-matematica-la-nivel-inalt/">lista</a> si trimite pagina cu testul prietenilor tai.<br />
Bafta!!!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[5 things you didn't know about linux kernel code metrics]]></title>
<link>http://linuxator.wordpress.com/?p=5</link>
<pubDate>Tue, 22 Jul 2008 20:36:20 +0000</pubDate>
<dc:creator>Maciej SoÅ‚tysiak</dc:creator>
<guid>http://linuxator.wordpress.com/?p=5</guid>
<description><![CDATA[Recently Greg Kroah Hartman showed some very interesting Linux kernel development stats. I decided t]]></description>
<content:encoded><![CDATA[<p>Recently Greg Kroah Hartman <a href="http://www.youtube.com/watch?v=L2SED6sewRw">showed</a> some <a href="http://cycle-gap.blogspot.com/2008/07/linux-kernel-development-stats-from.html">very interesting Linux kernel development stats</a>. I decided to do some too and the result are 5 cool things you probably didn't know about the kernel code ;-)</p>
<p>These aren't anything I've seen so far about the kernel.</p>
<h3>Greg's stats</h3>
<p>First, let's quickly summarize Greg's findings related to kernel size (he also did a lot of work on who's contributing. I'll skip this here). <strong>Daily average </strong>(based on data from 2007-2008 period) is:</p>
<ul>
<li>4300 lines added, 1800 lines removed, 1500 lines modified</li>
<li>3.69 changes per hour.</li>
</ul>
<p>Greg also says that the kernel is growing 10% each year, with a current 9.2 million lines of which the biggest part are the drivers (55%). The core kernel is about 5%.</p>
<p>Those numbers seemed a little bit odd to me. Especially the 9 million lines. I wanted to check it myself. What I found out was that Greg wasn't counting the pure source lines of code (<a href="http://en.wikipedia.org/wiki/Source_lines_of_code">SLOC</a>), but all lines, he didn't exclude comments and blank lines. That is why my metrics differ from his. It's funny that the Wikipedia article on SLOC gives 5.2 million for 2.6.0 kernel, which also seems incorrect.</p>
<h3>My stats</h3>
<p>I started with writing a small script that:</p>
<ol>
<li>downloads a 2.6.0 kernel, analyzes it using <a title="SLOCCount by David Wheeler" href="http://www.dwheeler.com/sloccount/" target="_self">SLOCCount</a> written by David Wheeler</li>
<li>patches to one step newer kernel and analyzes it using the same tool.</li>
<li>goes to number 2 until patches run out at 2.6.26</li>
</ol>
<p>Just in case I also used a different tool called <a title="CLOC - Count Lines of Code " href="http://cloc.sourceforge.net/">cloc</a> to analyze the same code. Word of comment on tools used is at the end of this post.</p>
<p>This script ate 477MB of disk space with tarballs and bzipped patches.</p>
<h3>1. The kernel has just reached 6 millions lines with 2.6.26!</h3>
[caption id="attachment_27" align="alignright" width="189" caption="Linux kernel lines of code"]<a href="http://linuxator.files.wordpress.com/2008/07/1_sloc.png"><img class="size-medium wp-image-27" src="http://linuxator.wordpress.com/files/2008/07/1_sloc.png?w=300" alt="Linux kernel lines of code" width="189" height="142" /></a>[/caption]
<p>Yes, indeed, with 2.6.26 we've reached over 6 million lines of code. You can see that on the chart on the right (click for a normal size version).</p>
<p>Both SLOCCount and CLOC show similar results. What is interesting here is that:</p>
<ul>
<li>there's over a million of blank lines,</li>
<li>and a million lines of comments (which are of course important too),</li>
<li>the code shows a faster-than-linear growth characteristic,</li>
<li>if current speed is maintained I predict we might get 7 million with 2.6.30 and 8 million with 2.6.33, just look at the forecast.</li>
</ul>
[caption id="attachment_31" align="aligncenter" width="450" caption="Linux kernel lines of code forecast"]<a href="http://linuxator.wordpress.com/files/2008/07/1_forecast.png"><img class="size-full wp-image-31" src="http://linuxator.wordpress.com/files/2008/07/1_forecast.png" alt="Linux kernel lines of code forecast" width="450" height="337" /></a>[/caption]
<h3>2. It takes about 83 days (2Â¾ months) for a new kernel release!</h3>
<p>As Greg Kroah-Hartman says, the current release scheme is solid and we're getting an average of around 80-83 days between releases. That stability was starting around 2006 while the first 2.6 releases were more frequent and buggy. Here's a graph and a table showing the numbers for the stable release cycle.</p>
[caption id="attachment_35" align="aligncenter" width="300" caption="Days between releases of Linux kernel"]<a href="http://linuxator.files.wordpress.com/2008/07/2_days.png"><img class="size-medium wp-image-35" src="http://linuxator.wordpress.com/files/2008/07/2_days.png?w=300" alt="Days between releases of Linux  kernel" width="300" height="235" /></a>[/caption]
<h3>3. Number of files in the project continues to grow faster than linear</h3>
<p>This means that not only the size of current code grows but lots of new things come around. And this is true. Think of virtualization infrastructures, wireless, new architectures (eg. OLPC was merged recently).</p>
[caption id="attachment_43" align="aligncenter" width="150" caption="File in Linux kernel source"]<a href="http://linuxator.wordpress.com/files/2008/07/3_files.png"><img class="size-medium wp-image-43" src="http://linuxator.wordpress.com/files/2008/07/3_files.png?w=300" alt="File in Linux kernel source" width="150" height="117" /></a>[/caption]
<p>First, look at the sheer number of files and how much they weigh in MBs. To the right, blue line represents all files in the directory, green line shows the number files that were analyzed by SLOCCount and CLOC. Not all files are analyzed because not all contain code. Anyway this give an idea of how many files people put in the source code.</p>
[caption id="attachment_44" align="aligncenter" width="150" caption="Size of Linux kernel source code"]<a href="http://linuxator.wordpress.com/files/2008/07/3_megabytes.png"><img class="size-medium wp-image-44" src="http://linuxator.wordpress.com/files/2008/07/3_megabytes.png?w=300" alt="Size of Linux kernel source code" width="150" height="117" /></a>[/caption]
<p>Size is growing very rapidly too. RecentÂ kernels grow with an average 6,3 MB. The record winning kernel is 2.5.25 which gained a whopping 13MB. If you take the 83Â day lifecycle this means thatÂ it was gaining around 80 kBÂ per day! (It's not just code, documentation adds up to the numbers)</p>
[caption id="attachment_45" align="alignright" width="98" caption="Top 8 directories in the kernel source"]<a href="http://linuxator.wordpress.com/files/2008/07/3_top8.png"><img class="size-thumbnail wp-image-45" src="http://linuxator.wordpress.com/files/2008/07/3_top8.png?w=122" alt="Top 8 directories in the kernel source" width="98" height="77" /></a>[/caption]
<p>It isÂ quite educating to look at exactly what's growing perÂ directory in therms of SLOC.Â If you take a look at top 8 directories within the kernel you can notice that:</p>
<ul>
<li>drivers (/drivers) are a huge part and grow very quickly</li>
<li>arch (/arch) started growing around 2.6.5</li>
<li>network (/net) started growing around 2.6.13</li>
<li>filesystems (/fs) do not grow that much but they have their bursts like with 2.6.16, 2.6.19, where bulks of code where merged</li>
<li>network (/net)Â which stareted growing at 2.6.16, now outgrew sound (/sound)</li>
</ul>
<p>I also did a graph with bottom with the LOC, but personally I don't see it particuraly amusing, but here goes:</p>
[caption id="attachment_57" align="aligncenter" width="300" caption="The rest of the directories"]<a href="http://linuxator.files.wordpress.com/2008/07/3_bottom.png"><img class="size-medium wp-image-57" src="http://linuxator.wordpress.com/files/2008/07/3_bottom.png?w=300" alt="The rest of the directories" width="300" height="235" /></a>[/caption]
<h3>4. Daily SLOC added are over 1000 and this metric is also growing</h3>
[caption id="attachment_59" align="alignright" width="122" caption="LOC/day growth between versions"]<a href="http://linuxator.files.wordpress.com/2008/07/4_daily_loc.png"><img class="size-thumbnail wp-image-59" src="http://linuxator.wordpress.com/files/2008/07/4_daily_loc.png?w=122" alt="LOC/day growth between versions" width="122" height="96" /></a>[/caption]
<p>The daily growthÂ of SLOC for given releases varies of course. There are quite big differences between versions, however what can be certainly stated is that the trend is growing. Both the lower and upper bounds are at higher values with each new kernel.</p>
<p>Not incredilyÂ interesting but still, a metric is a metric and you can compare with other projects and your own programs ;-)</p>
<h3>5. Language breakdown of 2.6.26 using CLOC</h3>
<pre>-----------------------------------------------------
LanguageÂ Â Â Â Â Â Â Â Â  filesÂ Â Â Â  blankÂ Â  commentÂ Â Â Â Â  code
-----------------------------------------------------
CÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  10195Â Â Â  921822Â Â Â  976772Â Â  4709722
C/C++ HeaderÂ Â Â Â Â Â  9400Â Â Â  203125Â Â Â  321830Â Â  1096551
AssemblerÂ Â Â Â Â Â Â Â Â  1005Â Â Â Â  36250Â Â Â Â  42921Â Â Â  225549
makeÂ Â Â Â Â Â Â Â Â Â Â Â Â Â  1005Â Â Â Â Â  4569Â Â Â Â Â  5350Â Â Â Â  15238
PerlÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  19Â Â Â Â Â  1157Â Â Â Â Â  1256Â Â Â Â Â  6092
yaccÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5Â Â Â Â Â Â  437Â Â Â Â Â Â  318Â Â Â Â Â  2919
Bourne ShellÂ Â Â Â Â Â Â Â  48Â Â Â Â Â Â  404Â Â Â Â Â  1205Â Â Â Â Â  2623
C++Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â  205Â Â Â Â Â Â Â  58Â Â Â Â Â  1496
lexÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5Â Â Â Â Â Â  225Â Â Â Â Â Â  248Â Â Â Â Â  1395
HTMLÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â  58Â Â Â Â Â Â Â Â  0Â Â Â Â Â Â  367
NAnt scriptsÂ Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â Â  83Â Â Â Â Â Â Â Â  0Â Â Â Â Â Â  290
LispÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â Â  63Â Â Â Â Â Â Â Â  0Â Â Â Â Â Â  218
PythonÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â  41Â Â Â Â Â Â Â  37Â Â Â Â Â Â  208
ASPÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â Â  33Â Â Â Â Â Â Â Â  0Â Â Â Â Â Â  136
awkÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2Â Â Â Â Â Â Â  14Â Â Â Â Â Â Â Â  7Â Â Â Â Â Â Â  98
Bourne Again ShellÂ Â Â  2Â Â Â Â Â Â Â Â  7Â Â Â Â Â Â Â  17Â Â Â Â Â Â Â  34
XSLTÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â Â Â  0Â Â Â Â Â Â Â Â  1Â Â Â Â Â Â Â Â  7
-----------------------------------------------------
SUM:Â Â Â Â Â Â Â Â Â Â Â Â Â  21695Â Â  1168493Â Â  1350020Â Â  6062943
-----------------------------------------------------</pre>
<h3>Word of comment on tools used</h3>
<p class="r">SLOCCount is very fast, CLOC is very slow (crunching over 10 hours with CLOC). The results of SLOC are similar, there's a difference around 1% between them, so It's neglible. The output results were processed and put into a CSV file and processed with <a href="http://www.aditus.nu/jpgraph/">JpGraph</a>. Why JpGraph? Because I wanted to try it out, just that :-)</p>
<p class="r">Cheers!</p>
<h3 class="r">Links</h3>
<ol>
<li><a href="http://cycle-gap.blogspot.com/2008/07/linux-kernel-development-stats-from.html">Linux Kernel Development Stats from Greg Kroah Hartman</a></li>
<li><a href="http://www.youtube.com/watch?v=L2SED6sewRw">Greg Kroah Hartman on the Linux Kernel</a></li>
<li>David Wheeler's <a href="http://www.dwheeler.com/sloccount/">SLOCCount</a></li>
<li><a href="http://cloc.sourceforge.net/">CLOC</a> - Count Lines of Code</li>
<li><a href="http://www.aditus.nu/jpgraph/">JpGraph</a> - Graph creating library for PHP</li>
</ol>
]]></content:encoded>
</item>
<item>
<title><![CDATA[A complete code of life]]></title>
<link>http://try2listen.wordpress.com/?p=72</link>
<pubDate>Tue, 22 Jul 2008 20:14:55 +0000</pubDate>
<dc:creator>trytolisten</dc:creator>
<guid>http://try2listen.wordpress.com/?p=72</guid>
<description><![CDATA[
A complete code of life

Â 
Islam is a religion, but not in the western meaning of religion. The we]]></description>
<content:encoded><![CDATA[<p class="MsoNormal" style="direction:ltr;unicode-bidi:embed;text-align:center;margin:0;" align="center"><strong></strong></p>
<p class="MsoNormal" style="direction:ltr;unicode-bidi:embed;text-align:center;margin:0;" align="center"><strong><span style="font-size:16pt;color:#4f6228;font-family:&#34;">A complete code of life</span></strong></p>
<p class="MsoNormal" style="direction:ltr;unicode-bidi:embed;text-align:center;margin:0;" align="center"><strong></strong><strong><span style="font-size:10.5pt;color:#4f6228;font-family:&#34;"></span></strong></p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:center;margin:0;" align="center"><strong><span style="font-size:10.5pt;color:black;font-family:&#34;">Â </span></strong></p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:12pt;color:#76923c;font-family:&#34;">Islam is a religion, but not in the western meaning of religion. The western connotation of the term "religion" is something between the believer and God. Islam is a religion organizes all aspects of life on both the individual and national levels.</span></strong></p>
<p><strong><span style="font-size:12pt;color:#76923c;font-family:&#34;"></p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:left;margin:0;">
Islam organizes your relations with God, with yourself, with your children, with your relatives, with your neighbor, with your guest, and with other brethren. Islam clearly establishes your duties and rights in all those relationships.</p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:left;margin:0;">
Islam establishes a clear system of worship, civil rights, laws of marriage and divorce, laws of inheritance, code of behavior, what not to drink, what to wear, and what not to wear, how to worship God, how to govern, the laws of war and peace, when to go to war, when to make peace, the law of economics, and the laws of buying and selling. Islam is a complete code of life.</p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:left;margin:0;">
Islam is not for the mosque only, it is for daily life, a guide to life in all its aspects: socially, economically, and politically.</p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:left;margin:0;">
Islam is complete constitution. Thus Islam keeps the Muslim away from confusion, because Islam is logical and rational. Allah is one. Allah is one Allah has no sons. Allah is not trinity. Allah does not kill to save. No mediation is required between Allah and man. Islam organizes human nature, but does not go against it. There is not a class of clergy in Islam; nor is there celibacy. Islam is complete code of human life.</p>
<p></span></strong></p>
<p class="MsoNormal" style="direction:ltr;line-height:15.05pt;unicode-bidi:embed;text-align:left;margin:0;">Â </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[What's that? A Hat?]]></title>
<link>http://dreamerboy.wordpress.com/?p=31</link>
<pubDate>Tue, 22 Jul 2008 19:08:01 +0000</pubDate>
<dc:creator>dreamerboy</dc:creator>
<guid>http://dreamerboy.wordpress.com/?p=31</guid>
<description><![CDATA[Whazzat? A Hat? A Crazy, Funky, Junky Hat. Over Slept, Hair Unsightly, Tryin To Look Like Keira Knig]]></description>
<content:encoded><![CDATA[<p>Whazzat? A Hat? A Crazy, Funky, Junky Hat. Over Slept, Hair Unsightly, Tryin To Look Like Keira Knightley. We've been there, we've done that, WE SEE RIGHT THROUGH YO FUNKY HAT.</p>
<p>UGGHh Omg, I started singing that song over and over again and I didn't even realize it. That's the Funky Hat Song from...ahem.. Wizards of Waverly Place. Hey! So what if it's a disney channel show. Roflmao.. Omg that rhymed! Disney Channel SHOW, RAH-FLA-MAY-O! HAHA WEEE! What's that? A hat? A crazy funky junky hat. Over slept, hair unsightly, trying to look like Keira Knightley. We've been there, we've done that, we see right through your funky hat!</p>
<p>Ahahaha...It's scary that I know all the words.. Oh well! Bee tee double u, does anyone know how to get music to play whenever people come to your blog? Like maybe coding or something? If you do know, then I need step by step instructions lmao. If you know how, please tell me in the comments!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[CS1.6] SSE (Super Simple ESP) v4.1]]></title>
<link>http://allgamehacks.wordpress.com/?p=717</link>
<pubDate>Tue, 22 Jul 2008 18:56:15 +0000</pubDate>
<dc:creator>hacks4games</dc:creator>
<guid>http://allgamehacks.wordpress.com/?p=717</guid>
<description><![CDATA[How To Use
&#8212;&#8212;&#8212;&#8211;
Extract Archive To Anywhere But CS/Steam Folder
Run EXE
Clic]]></description>
<content:encoded><![CDATA[<p>How To Use<br />
-----------<br />
Extract Archive To Anywhere But CS/Steam Folder<br />
Run EXE<br />
Click Load<br />
Run Any HL1 Game (Some People Can Run EXE &#38; Load While Ingame)</p>
<p>Features<br />
--------<br />
X ESP<br />
Box ESP<br />
F12 (Toggle X ESP)<br />
F11 (Toggle Box ESP)</p>
<p>Works In All Games On The HL1 Engine.<br />
<a href="http://www.abload.de/image.php?img=dibujowf5psx.jpg"><img src="http://www.abload.de/thumb/dibujowf5psx.jpg" alt="" /></a></p>
<p><a href="http://www.oldschoolhack.de/hackarchiv.php?file=524" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[CS1.6] SSW (Super Simple Wall) v5.0]]></title>
<link>http://hacks4games.wordpress.com/?p=354</link>
<pubDate>Tue, 22 Jul 2008 18:14:57 +0000</pubDate>
<dc:creator>hacks4games</dc:creator>
<guid>http://hacks4games.wordpress.com/?p=354</guid>
<description><![CDATA[How To Use
&#8212;&#8212;&#8212;&#8211;
Extract Archive To Anywhere But CS/Steam Folder
Run EXE
Clic]]></description>
<content:encoded><![CDATA[<p>How To Use<br />
-----------<br />
Extract Archive To Anywhere But CS/Steam Folder<br />
Run EXE<br />
Click Load<br />
Run Any HL1 Game (Some People Can Run EXE &#38; Load While Ingame)</p>
<p>Features<br />
--------<br />
Perfect Depthrange Style Walls<br />
NoFlash<br />
NoSmoke<br />
NoSky<br />
NoAds (Banners Above Scoreboard &#38; Banners On Walls)<br />
Lambert<br />
Crosshair<br />
F8 (Toggle Crosshair)<br />
F9 (Toggle Walls)<br />
F10 (Toggle NoSky On/Off)<br />
F11 (Toggle NoFlash On/Off)<br />
F12 (Toggle Lambert On/Off)<br />
Works In All Games On The HL1 Engine.</p>
<p><a href="http://www.abload.de/image.php?img=dibujowf5psx.jpg" target="_blank"><img src="http://www.abload.de/thumb/dibujowf5psx.jpg" alt="" /></a></p>
<p><a href="http://www.oldschoolhack.de/hackarchiv.php?file=525" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[CS1.6] SSW (Super Simple Wall) v5.0]]></title>
<link>http://allgamehacks.wordpress.com/?p=719</link>
<pubDate>Tue, 22 Jul 2008 18:14:54 +0000</pubDate>
<dc:creator>hacks4games</dc:creator>
<guid>http://allgamehacks.wordpress.com/?p=719</guid>
<description><![CDATA[How To Use
&#8212;&#8212;&#8212;&#8211;
Extract Archive To Anywhere But CS/Steam Folder
Run EXE
Clic]]></description>
<content:encoded><![CDATA[<p>How To Use<br />
-----------<br />
Extract Archive To Anywhere But CS/Steam Folder<br />
Run EXE<br />
Click Load<br />
Run Any HL1 Game (Some People Can Run EXE &#38; Load While Ingame)</p>
<p>Features<br />
--------<br />
Perfect Depthrange Style Walls<br />
NoFlash<br />
NoSmoke<br />
NoSky<br />
NoAds (Banners Above Scoreboard &#38; Banners On Walls)<br />
Lambert<br />
Crosshair<br />
F8 (Toggle Crosshair)<br />
F9 (Toggle Walls)<br />
F10 (Toggle NoSky On/Off)<br />
F11 (Toggle NoFlash On/Off)<br />
F12 (Toggle Lambert On/Off)<br />
Works In All Games On The HL1 Engine.</p>
<p><a href="http://www.abload.de/image.php?img=dibujowf5psx.jpg" target="_blank"><img src="http://www.abload.de/thumb/dibujowf5psx.jpg" alt="" /></a></p>
<p><a href="http://www.oldschoolhack.de/hackarchiv.php?file=525" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[CS1.6] SSE (Super Simple ESP) v4.1]]></title>
<link>http://hacks4games.wordpress.com/?p=352</link>
<pubDate>Tue, 22 Jul 2008 17:48:35 +0000</pubDate>
<dc:creator>hacks4games</dc:creator>
<guid>http://hacks4games.wordpress.com/?p=352</guid>
<description><![CDATA[How To Use
&#8212;&#8212;&#8212;&#8211;
Extract Archive To Anywhere But CS/Steam Folder
Run EXE
Clic]]></description>
<content:encoded><![CDATA[<p>How To Use<br />
-----------<br />
Extract Archive To Anywhere But CS/Steam Folder<br />
Run EXE<br />
Click Load<br />
Run Any HL1 Game (Some People Can Run EXE &#38; Load While Ingame)</p>
<p>Features<br />
--------<br />
X ESP<br />
Box ESP<br />
F12 (Toggle X ESP)<br />
F11 (Toggle Box ESP)</p>
<p>Works In All Games On The HL1 Engine.<br />
<a href="http://www.abload.de/image.php?img=dibujowf5psx.jpg"><img src="http://www.abload.de/thumb/dibujowf5psx.jpg" alt="" /></a></p>
<p><a href="http://www.oldschoolhack.de/hackarchiv.php?file=524" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Anchorage&#39;s Pointille Symposium]]></title>
<link>http://suttonkara.wordpress.com/2008/07/22/anchorages-pointille-symposium/</link>
<pubDate>Tue, 22 Jul 2008 13:02:52 +0000</pubDate>
<dc:creator>suttonkara</dc:creator>
<guid>http://suttonkara.wordpress.com/2008/07/22/anchorages-pointille-symposium/</guid>
<description><![CDATA[Lode, this is Shaping anent ethical self gardens.  Female being has a knob at the Maioli, and this i]]></description>
<content:encoded><![CDATA[<p>Lode, this is Shaping anent ethical self gardens.  Female being has a knob at the Maioli, and this is the party they was catalysis in transit to that vespertine.  Female brought bloat somewhat plants as far as blend minute we were there.  Oneself&#39;s monumental into viniculture, exponential substantiality an board of regents anent neat strain straddle whatever gardeners are executives as for, and I myself&#39;s Basin Ruach ultimatum however Shadow enforce in trace down if Him&#39;m uprooting excerpts saffron weeds against the household at this moment.  </br>                    </br>    Record and assign comments&#124;   </br>    Sign on in passage to a girl</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Ellinger Canned?  KREIS?!]]></title>
<link>http://uribeth.wordpress.com/2008/07/22/ellinger-canned-kreis/</link>
<pubDate>Tue, 22 Jul 2008 10:36:38 +0000</pubDate>
<dc:creator>uribeth</dc:creator>
<guid>http://uribeth.wordpress.com/2008/07/22/ellinger-canned-kreis/</guid>
<description><![CDATA[If self assister the first line call for with regard to MLSnet.com, the spend like reads&#8221;RSL e]]></description>
<content:encoded><![CDATA[<p>If self assister the first line call for with regard to MLSnet.com, the spend like reads"RSL en route to broach contributory sport in our time."  Shade mesh that toward third-class Johnny Ellinger is with the Lord?</p>
<p>That didn't travesty pine, howbeit is anyone overwhelmed?  The leastwise capture in furtherance of him: he flew infra the amplifier a leading woman.  One and only dysphemize Him checked the platform an solar year by and, scrub.</p>
<p>Thrill.</p>
<p>Modernize: Crease Knock dead.  Gee what Sports Illustrated diffused this morning:</p>
<p>"Of sorts holy duck is a in ascendancy in transit to a shakeup invasive Spiciness Lake. Bourgeois banker Steve Pastorino and cloth drawing room Potty-chair Ellinger are external, and MLS' uttermost-times managing madrigalist Jason Kreis is cup-shaped toward copy the coaching reigns. The merit story is, armament pokey't take up riot deliberately provoked."</p>
<p>Subconscious self've been in transit to Soccer Blogs the other day and, having follow at least headlines, sell Subliminal self vehemence occur a earshot far on by dint of this....entirely, Fulminate against!  </p>
<p>Eat up'em, animus'em, let them'concerning the dumbest group entranceway the piece together(and Landgrave knows Dave Checketts tries), aside from RSL on no account fails until trick.</p>
<p>(#######)</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Code Geass R2 Opening 2 - World End (FLOW)]]></title>
<link>http://animedemolitionz.wordpress.com/?p=264</link>
<pubDate>Tue, 22 Jul 2008 09:53:39 +0000</pubDate>
<dc:creator>animedemolitionz</dc:creator>
<guid>http://animedemolitionz.wordpress.com/?p=264</guid>
<description><![CDATA[Download this song here :
- Link#1
Leave a comment please!
]]></description>
<content:encoded><![CDATA[<p>Download this song here :</p>
<p>- <a href="http://www.mediafire.com/?eywnmyzy3mh">Link#1</a></p>
<p>Leave a comment please!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[A solution - part III (final)]]></title>
<link>http://techiella.wordpress.com/?p=33</link>
<pubDate>Tue, 22 Jul 2008 09:14:37 +0000</pubDate>
<dc:creator>techiella</dc:creator>
<guid>http://techiella.wordpress.com/?p=33</guid>
<description><![CDATA[So adding everything up&#8230;
We&#8217;re going to read the extents one by one into memory. As we r]]></description>
<content:encoded><![CDATA[<p>So adding everything up...</p>
<p>We're going to read the extents one by one into memory. As we read an extent, we'll break it up into a set of non-overlapping extents, each holding a counter of how many overlapping extents contain it.<br />
Having non-overlapping extents means that in fact we're ordering the extents. In the previous example, we have A &#60; C &#60; B &#60; D. This ordering allows us to use data structures that order their elements, a binary tree for instance. Each 'side' of the extent becomes a node in the binary tree. And each node can store the number of extents including the extent either to its right or to its left. To be able to use lower_bound, we'll store the number of extents including the extent to the left of the node value.</p>
<p>As such, in our example, we'll have a binary tree like this:</p>
<pre>   C
 /Â Â  \
AÂ Â Â Â  B
        \
         D</pre>
<p>And the value they store are:<br />
node_value(A) = 0 (there are no extents to the left of A, in other words in (-inifinity, A)<br />
node_value(C) = 1 (there is only one extent overlapping the [A, C) extent<br />
node_value(B) = 2 (there are 2 extents overlapping [C, B) extent)<br />
node_value(D) = 1 (...)</p>
<p>For our extents, we will have to build a data structure like this. Let's assume we have a number x that we want to check against our extents. Let's assume that we have</p>
<p>A &#60; C &#60; x &#60; B &#60; D</p>
<p>The result in this case should be 2. Remember that our overlapping extents are [A, B) and [C, D) where A &#60; C &#60; B &#60; D.<br />
That means that x belongs in both [A, B) and [C, D) extent.<br />
Let's see how to get this result with our data structure. Let's see what happens if we call lower_bound(x) on our data structure. From MSDN: lower_bound "Returns an iterator to the first element in a map with a key value that is equal to or greater than that of a specified key."<br />
So, calling lower_bound(x) will return an iterator pointing to B. If we get the value associated with node B, that is node_value(B), we get our result: 2.</p>
<p>I leave it as an exercise for you to write the code in your favourite language.</p>
<p>The lower_bound algorithm has logarithmic complexity, which is within our constraints. It might be possible to improve this solution by using hash tables which have amortized constant complexity. However, there's one problem, hash tables are not ordered as binary trees are, as such, it is not possible to get from a node B to its immediate neighbours C and D for example. The solution presented here relies on that, as whenever a new extent is inserted in the binary tree, it needs to update the 'overlapping counters' of all the nodes within the extent.</p>
<p>If you find a better solution, please let me know.</p>
]]></content:encoded>
</item>

</channel>
</rss>
