<?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"
	>
<channel>
	<title>Comments on: 5 more essentials for your programming toolbox</title>
	<atom:link href="http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/</link>
	<description></description>
	<pubDate>Fri, 29 Aug 2008 04:39:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Mr. Developer</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-157</link>
		<dc:creator>Mr. Developer</dc:creator>
		<pubDate>Sat, 22 Mar 2008 02:13:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-157</guid>
		<description>There is a van Emde Boas cache oblivious stratified tree implementation available for Download from http://complearn.org/downloads/libcoveb-1.0.3.tar.gz</description>
		<content:encoded><![CDATA[<p>There is a van Emde Boas cache oblivious stratified tree implementation available for Download from <a href="http://complearn.org/downloads/libcoveb-1.0.3.tar.gz" rel="nofollow">http://complearn.org/downloads/libcoveb-1.0.3.tar.gz</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-95</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Sat, 15 Mar 2008 17:40:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-95</guid>
		<description>@Peter: I hadn't thought about the disk IO benefits of skip lists, but that is interesting.  In general, when I think about putting a tree on a disk I think about B-Trees.  But, I'll keep skip lists in mind for that.  

@pidedings &#038; Christopher: It seems like SQLite is a frequent response to any mention of Berkeley DB.  I'll definitely check it out next time I'm thinking about doing something with the disk.  How big of a database have you guys used it for?</description>
		<content:encoded><![CDATA[<p>@Peter: I hadn&#8217;t thought about the disk IO benefits of skip lists, but that is interesting.  In general, when I think about putting a tree on a disk I think about B-Trees.  But, I&#8217;ll keep skip lists in mind for that.  </p>
<p>@pidedings &#038; Christopher: It seems like SQLite is a frequent response to any mention of Berkeley DB.  I&#8217;ll definitely check it out next time I&#8217;m thinking about doing something with the disk.  How big of a database have you guys used it for?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ajay</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-94</link>
		<dc:creator>Ajay</dc:creator>
		<pubDate>Sat, 15 Mar 2008 11:22:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-94</guid>
		<description>Wanted to mention SkipDB http://directory.fsf.org/project/SkipDB/,
which is based on skip lists</description>
		<content:encoded><![CDATA[<p>Wanted to mention SkipDB <a href="http://directory.fsf.org/project/SkipDB/" rel="nofollow">http://directory.fsf.org/project/SkipDB/</a>,<br />
which is based on skip lists</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-93</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Sat, 15 Mar 2008 11:17:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-93</guid>
		<description>Even more data structures I hadn't heard of! Looking forward to some more of these programming toolbox posts in the future.</description>
		<content:encoded><![CDATA[<p>Even more data structures I hadn&#8217;t heard of! Looking forward to some more of these programming toolbox posts in the future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pipedings</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-90</link>
		<dc:creator>pipedings</dc:creator>
		<pubDate>Sat, 15 Mar 2008 05:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-90</guid>
		<description>I have used db_recover far too many times. Berkeley DB dies easily with  messy results on the stored data.

SQLite seems like a good idea, for now it's flat files or PostgreSQL for me.</description>
		<content:encoded><![CDATA[<p>I have used db_recover far too many times. Berkeley DB dies easily with  messy results on the stored data.</p>
<p>SQLite seems like a good idea, for now it&#8217;s flat files or PostgreSQL for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bron</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-89</link>
		<dc:creator>Bron</dc:creator>
		<pubDate>Sat, 15 Mar 2008 04:47:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-89</guid>
		<description>Cyrus IMAP uses skiplists for a lot of databases (and BDB for others) - I know the skiplist code pretty well now, having debugged it pretty extensively.  It is a good format for infrequently changed files, though you do want to rebuild it every so often.

Yes, it's not particularly cache friendly for sequential access, but it's nicer than a hash still, and you can iterate through the keys cheaply.</description>
		<content:encoded><![CDATA[<p>Cyrus IMAP uses skiplists for a lot of databases (and BDB for others) - I know the skiplist code pretty well now, having debugged it pretty extensively.  It is a good format for infrequently changed files, though you do want to rebuild it every so often.</p>
<p>Yes, it&#8217;s not particularly cache friendly for sequential access, but it&#8217;s nicer than a hash still, and you can iterate through the keys cheaply.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: paigow</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-86</link>
		<dc:creator>paigow</dc:creator>
		<pubDate>Sat, 15 Mar 2008 03:53:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-86</guid>
		<description>Diese seite ist genauso interessant wie informativ. Viele Gr&#252;&#223;e!</description>
		<content:encoded><![CDATA[<p>Diese seite ist genauso interessant wie informativ. Viele Gr&#252;&#223;e!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JN</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-81</link>
		<dc:creator>JN</dc:creator>
		<pubDate>Sat, 15 Mar 2008 01:51:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-81</guid>
		<description>Another alternative to Berkeley DB for some tasks is cdb, and also Judy for some in memory lookups.</description>
		<content:encoded><![CDATA[<p>Another alternative to Berkeley DB for some tasks is cdb, and also Judy for some in memory lookups.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-79</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Fri, 14 Mar 2008 22:23:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-79</guid>
		<description>I've used skip lists--they're great when what you want is like a hash table except that you have to persist it to disk and you want to 'even out' the number of disk hits on update.

That is, the problem with a hash table or binary tree is that when you resize it you have to (essentially) recreate it.  Even balanced binary trees, when you insert and delete a lot have to be rebalanced.  Each rebalance can potentially mean shifting lots of pointers.

When what you really want is for most data to stay inert on disk for each and every operation, this is important.  It's even more the case when the boss says, 'never read the whole thing into memory' (we wanted to be good citizens and not swap the user's memory out).</description>
		<content:encoded><![CDATA[<p>I&#8217;ve used skip lists&#8211;they&#8217;re great when what you want is like a hash table except that you have to persist it to disk and you want to &#8216;even out&#8217; the number of disk hits on update.</p>
<p>That is, the problem with a hash table or binary tree is that when you resize it you have to (essentially) recreate it.  Even balanced binary trees, when you insert and delete a lot have to be rebalanced.  Each rebalance can potentially mean shifting lots of pointers.</p>
<p>When what you really want is for most data to stay inert on disk for each and every operation, this is important.  It&#8217;s even more the case when the boss says, &#8216;never read the whole thing into memory&#8217; (we wanted to be good citizens and not swap the user&#8217;s memory out).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Cashell</title>
		<link>http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-39</link>
		<dc:creator>Christopher Cashell</dc:creator>
		<pubDate>Sat, 08 Mar 2008 06:14:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.spiteful.com/2008/02/25/5-more-essentials-for-your-programming-toolbox/#comment-39</guid>
		<description>I've used Berkeley DB for a number of things in the past, and while it can be extremely useful in certain circumstances, I've found myself moving it less and less, and using SQLite where I previously might have used Berkeley DB.  And I find myself using it lots of places that I previously wouldn't used any database just because of the hassle.

If you haven't used it, I'd highly recommend checking it out.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve used Berkeley DB for a number of things in the past, and while it can be extremely useful in certain circumstances, I&#8217;ve found myself moving it less and less, and using SQLite where I previously might have used Berkeley DB.  And I find myself using it lots of places that I previously wouldn&#8217;t used any database just because of the hassle.</p>
<p>If you haven&#8217;t used it, I&#8217;d highly recommend checking it out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.331 seconds -->
