<?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>The Changelog &#187; NoSQL</title>
	<atom:link href="http://thechangelog.com/tagged/nosql/feed/" rel="self" type="application/rss+xml" />
	<link>http://thechangelog.com</link>
	<description>Open source moves fast. Keep up.</description>
	<lastBuildDate>Sat, 18 May 2013 07:32:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Episode 0.7.5 &#8211; Travis CI, Riak, and more with Josh Kalderimis and Mathias Meyer</title>
		<link>http://thechangelog.com/episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim</link>
		<comments>http://thechangelog.com/episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 14:50:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[travis]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim/</guid>
		<description><![CDATA[<p>Wynn caught up with Josh Kalderimis and Mathias Meyer from Travis CI to talk about hosted CI in the sky, scaling apps, and a little Riak. Items mentioned in the show: Travis CI a hosted continuous integration service for the open source community. Josh Kalderimis is a core Travis CI team member, Rails contributor, gem [...]</p><p>The post <a href="http://thechangelog.com/episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim/">Episode 0.7.5 &#8211; Travis CI, Riak, and more with Josh Kalderimis and Mathias Meyer</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Wynn caught up with Josh Kalderimis and Mathias Meyer from Travis CI to talk about hosted CI in the sky, scaling apps, and a little Riak.</p>

<audio src="http://changelogshow.com/105/42933-episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderimis-and-mathias-meyer.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p></p>

<ul><li><a href="http://travis-ci.org">Travis CI</a> a hosted continuous integration service for the open source community.</li>
<li><a href="https://twitter.com/#!/joshkalderimis">Josh Kalderimis</a> is a core Travis CI team member, Rails contributor, gem developer, and general serial coder.</li>
<li><a href="https://twitter.com/#!/roidrage">Mathias Meyer</a>, hacker on Travis, author of the <a href="http://riakhandbook.com/?changelog">Riak Handbook</a>.</li>
<li>Travis now <a href="http://thechangelog.com/post/18790405681/travis-ci-now-supports-python-and-perl">provides first class support for Python and Perl</a>.</li>
<li>Travis also supports several versions of Ruby including Ruby <a href="http://about.travis-ci.org/docs/user/languages/ruby/"><del>hid</del>HEAD</a>.</li>
<li>[8:15] Mathias lays out the case for Travis vs. Jenkins, namely a streamlined user interface.</li>
<li>Travis runs almost exclusively on <a href="http://heroku.com">Heroku</a>.</li>
<li><a href="http://www.amqp.org/">AMQP</a> powers the message queues in Travis.</li>
<li>Keep an eye on <a href="https://github.com/travis-ci/travis-listener">Travis listener</a>.</li>
<li>The <a href="http://about.travis-ci.org/docs/user/how-to-setup-and-trigger-the-hook-manually/">GitHub service hook</a> makes setting up your open source project on Travis a breeze. <a href="http://github.com/pengwynn/octokit#readme"><img src="http://secure.travis-ci.org/pengwynn/octokit.png?branch=master" alt="Build status for Octokit" /></a></li>
<li>If you&#8217;re a Travis user, show some <a href="https://love.travis-ci.org/">love</a> to keep the features coming.</li>
<li>GitHubber <a href="http://twitter.com/technoweenie">Rick Olson</a> worked on some API features to help Travis more deeply integrate with GitHub.</li>
<li>Private repo support, aka Travis Pro™ is on its way. If you want to get in on the beta, <a href="https://love.travis-ci.org/packages/medium">donate to the project</a>.</li>
<li>Donate $500, get an hour of pairing with <a href="https://twitter.com/tenderlove">Aaron Patterson</a>, <a href="http://twitter.com/wycats">Yehuda Katz</a>, <a href="https://twitter.com/josevalim">José Valim</a>, <a href="https://twitter.com/jonleighton">Jon Leighton</a>, or <a href="https://love.travis-ci.org/#rails-core">other Ruby pro</a>.</li>
<li>Mathias previously worked at Basho and <a href="http://riakhandbook.com/">The Riak Handbook</a> is a collection of what he learned there.</li>
<li><a href="https://twitter.com/josevalim">José Valim</a> is Josh&#8217;s programming hero for his code and community building.</li>
<li>Mathias is playing with <a href="https://github.com/robey/kestrel">Kestrel</a> and <a href="http://zookeeper.apache.org/">Zookeeper</a>.</li>
<li>Josh and Mathias like <a href="https://github.com/celluloid/celluloid">Celluloid</a>.</li>
<li><a href="https://twitter.com/#!/mperham">Mike Perham</a>&#8217;s <a href="http://thechangelog.com/post/17158881315/sidekiq-more-efficient-resque-compatible-message-process">Sidekiq</a> has caught Josh and Mathias&#8217; eye.</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim/">Episode 0.7.5 &#8211; Travis CI, Riak, and more with Josh Kalderimis and Mathias Meyer</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://changelogshow.com/105/42933-episode-0-7-5-travis-ci-riak-and-more-with-josh-kalderimis-and-mathias-meyer.mp3" length="104" type="audio/mpeg" />
		</item>
		<item>
		<title>Induction &#8211; Polyglot database client for Mac OSX supporting PostgreSQL, MySQL, SQLite, Redis, and MongoDB out-of-the-box</title>
		<link>http://thechangelog.com/induction-polyglot-database-client-for-mac-osx-supportin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=induction-polyglot-database-client-for-mac-osx-supportin</link>
		<comments>http://thechangelog.com/induction-polyglot-database-client-for-mac-osx-supportin/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 19:48:14 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/induction-polyglot-database-client-for-mac-osx-supportin/</guid>
		<description><![CDATA[<p>Induction is an ambitious new project from Matt Thompson to explore, query, and visualize data from SQL and NoSQL sources including PostgreSQL, MySQL, SQLite, Redis, and MongoDB. While in early alpha, the project shows promise. Check out the project web site or grab the source on GitHub to contribute.</p><p>The post <a href="http://thechangelog.com/induction-polyglot-database-client-for-mac-osx-supportin/">Induction &#8211; Polyglot database client for Mac OSX supporting PostgreSQL, MySQL, SQLite, Redis, and MongoDB out-of-the-box</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Induction is an ambitious new project from <a href="https://twitter.com/#!/mattt">Matt Thompson</a> to explore, query, and visualize data from SQL and NoSQL sources including PostgreSQL, MySQL, SQLite, Redis, and MongoDB. While in early alpha, the project shows promise.</p>

<p><img src="http://cl.ly/0u2i0h2c2I2p0s1B0F3X/Image%202012.03.05%201:44:08%20PM.png" alt="Induction" /></p>

<p>Check out the <a href="http://inductionapp.com/">project web site</a> or grab the <a href="https://github.com/Induction/Induction">source on GitHub</a> to contribute.</p>
<p>The post <a href="http://thechangelog.com/induction-polyglot-database-client-for-mac-osx-supportin/">Induction &#8211; Polyglot database client for Mac OSX supporting PostgreSQL, MySQL, SQLite, Redis, and MongoDB out-of-the-box</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/induction-polyglot-database-client-for-mac-osx-supportin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episode 0.5.4 &#8211; CouchBase, Erlang, and Mergers with J Chris Anderson</title>
		<link>http://thechangelog.com/episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris</link>
		<comments>http://thechangelog.com/episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 13:56:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[membase]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris/</guid>
		<description><![CDATA[<p>Wynn sat down with J Chris Anderson from CouchBase to talk about CouchDB, the merger with Membase, Erlang, and bringing NoSQL to PHPers. Items mentioned in the show: J Chris Anderson is a Couchbase cofounder, Mobile Architect, CouchDB committer, new dad The CouchDB music video (served up from CouchDB no less) Chris sings the official [...]</p><p>The post <a href="http://thechangelog.com/episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris/">Episode 0.5.4 &#8211; CouchBase, Erlang, and Mergers with J Chris Anderson</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Wynn sat down with <a href="http://twitter.com/jchris">J Chris Anderson</a> from <a href="http://couchbase.com">CouchBase</a> to talk about CouchDB, the merger with Membase, Erlang, and bringing NoSQL to PHPers.</p>

<audio src="http://changelogshow.com/105/23613-episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris-anderson.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p>

<ul><li><a href="https://twitter.com/jchris">J Chris Anderson</a> is a Couchbase cofounder, Mobile Architect, CouchDB committer, new dad</li>
<li>The <a href="http://jchris.couchone.com/_utils/document.html?files/couchdb-music">CouchDB music video</a> (served up from CouchDB no less)</li>
<li>Chris sings the <em>official</em> CouchDB theme song to kick off <a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">Episode 0.1.8</a></li>
<li><a href="http://couchdb.apache.org/">Apache CouchDb</a> is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API.</li>
<li><a href="http://damienkatz.net/">Damien Katz</a> is the creator of CouchDB.</li>
<li><a href="http://www.couchbase.com/">CouchBase</a> was formed from <a href="http://www.couchbase.com/merger/technology-vision">merging Membase and CouchOne</a></li>
<li>Chris is one of the rare CFOs with a <a href="https://github.com/jchris">GitHub account</a></li>
<li>CouchBase <a href="http://www.couchbase.com/why-nosql/nosql-database">makes the case for NoSQL</a></li>
<li><a href="http://www.couchbase.com/products-and-services/membase-server">Membase Server</a> currently uses Sqlite under the hood, but will be swapped out for Couch&#8217;s storage engine soon</li>
<li><a href="http://www.couchbase.com/products-and-services/mobile-couchbase">Mobile Couchbase</a> runs on iOS and brings Couch to your mobile device</li>
<li><a href="http://couchapp.org/page/index">CouchApps</a> are JavaScript and HTML5 applications served directly from CouchDB.</li>
<li><a href="http://www.zynga.com/">Zynga</a> makers of <a href="http://www.farmville.com/">Farmville</a> use Membase</li>
<li>The <a href="https://github.com/couchapp/couchapp">CouchApp toolkit</a> is now maintained by <a href="https://twitter.com/benoitc">Benoît Chesneau</a></li>
<li><a href="https://twitter.com/#!/apage43">Aaron Miller</a> led the charge to get Erlang on iOS, changing dynamic linking to static linking.</li>
<li><a href="http://www.mozilla.org/js/spidermonkey/">SpiderMonkey</a> was included iOS for CouchMobile and its JIT compiler made it preferable to V8 or Nitro for Couch tasks.</li>
<li><a href="http://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future-is-now%3A2010-05-03%3Aen%2CCouchDB%2CPython%2CErlang%2Cgeo">GeoCouch</a> adds geospatial features to CouchDB</li>
<li>Chris outlines the distinctives for <a href="http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views">Couch&#8217;s incremental Map/Reduce</a></li>
<li>Jason Smith in Thailand keeps the lights on for CouchBase hosting solutions</li>
<li><a href="https://cloudant.com/">Cloudant</a> offers hosting for Couch in the cloud</li>
<li>Wynn wants to see integration for CouchBase and <a href="http://thechangelog.com/post/334287138/episode-0-0-8-marshall-culpepper-from-appcelerator-titan">Appcelerator Titanium</a></li>
<li><a href="https://twitter.com/bustardcelly">Todd Anderson</a> has a <a href="http://blog.couchbase.com/tutorial-couchdb-jquery-mobile">great tutorial on using jQuery mobile and CouchDB</a></li>
<li><a href="http://damienkatz.net/">Damien Katz</a> is Chris&#8217; programming hero</li>
<li>Chris says working with <a href="http://twitter.com/janl">Jan Lehnardt</a> is a blast</li>
<li>Be sure and check out <a href="http://guide.couchdb.org/index.html">CouchDB &#8211; The Definitive Guide</a> by Chris, Jan, and <a href="https://twitter.com/nslater">Noah</a></li>
</ul>

<a href="http://news.ycombinator.com/item?id=2388350" class="btn">Discuss this episode on Hacker News</a>
<p>The post <a href="http://thechangelog.com/episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris/">Episode 0.5.4 &#8211; CouchBase, Erlang, and Mergers with J Chris Anderson</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://changelogshow.com/105/23613-episode-0-5-4-couchbase-erlang-and-mergers-with-j-chris-anderson.mp3" length="104" type="audio/mpeg" />
		</item>
		<item>
		<title>Episode 0.5.1 &#8211; MongoDB, NoSQL, and Web Scale with Eliot Horowitz</title>
		<link>http://thechangelog.com/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor</link>
		<comments>http://thechangelog.com/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 14:39:18 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[dynamo]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[riak]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor/</guid>
		<description><![CDATA[<p>Steve and Wynn sat down with Eliot Horowitz from 10gen to talk about MongoDB, the NoSQL landscape, and the fun of building at Web Scale. Items mentioned in the show: Eliot Horowitz CTO and Co-Founder of 10gen Dwight Merriman CEO &#38; Co-Founder at 10gen NoSQL is a loose term for Key Value Stores, Graph Databases, [...]</p><p>The post <a href="http://thechangelog.com/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor/">Episode 0.5.1 &#8211; MongoDB, NoSQL, and Web Scale with Eliot Horowitz</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Steve and Wynn sat down with Eliot Horowitz from 10gen to talk about MongoDB, the NoSQL landscape, and the fun of building at Web Scale.</p>

<audio src="http://changelogshow.com/105/22712-episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-horowitz.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p>

<ul><li><a href="http://twitter.com/eliothorowitz">Eliot Horowitz</a> CTO and Co-Founder of <a href="http://www.10gen.com/">10gen</a></li>
<li><a href="http://twitter.com/dmerr">Dwight Merriman</a> CEO &amp; Co-Founder at 10gen</li>
<li>NoSQL is a loose term for <a href="http://en.wikipedia.org/wiki/NoSQL#Key-value_store">Key Value Stores</a>, <a href="http://en.wikipedia.org/wiki/Graph_database">Graph Databases</a>, and <a href="http://en.wikipedia.org/wiki/Document-oriented_database">Document Databases</a></li>
<li>MongoDB still has a large <a href="http://jira.mongodb.org/browse/SERVER?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap ahead</a></li>
<li>MongoDB was <a href="http://thechangelog.com/post/287597162/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb">first featured on The Changelog</a> over a year ago</li>
<li><a href="http://thechangelog.com/post/2959787099/mongodb-1-7-5-released-single-server-durability">Single server durability</a> tops the list of new additions in 1.8</li>
<li><a href="http://www.mongodb.org/display/DOCS/Replica+Sets">Replica sets</a> are an elaboration on the existing master/slave replication, adding automatic failover and automatic recovery of member nodes</li>
<li><a href="http://www.shutterfly.com/">Shutterfly</a> and <a href="http://foursquare.com">Foursquare</a> boast some of the largest MongoDB implemenation</li>
<li>MongoDB&#8217;s <a href="http://www.mongodb.org/display/DOCS/Sharding+Introduction">sharding</a> enables horizontal scaling across multiple nodes.</li>
<li>Mongo vs. <a href="http://wiki.basho.com/">Riak</a> (and other <a href="http://lg.gd/9d">Dynamo</a> inspired stores)

<ul><li>Full vs. eventual <a href="http://en.wikipedia.org/wiki/ACID#Consistency">consistency</a></li>
<li><a href="http://www.mongodb.org/display/DOCS/Indexes#Indexes-CompoundKeysIndexes">Compound indexes</a></li>
<li><a href="http://www.mongodb.org/display/DOCS/Updating#Updating-%24inc">Increment</a> operations</li>
</ul></li>
<li>Be sure and check out our Riak interviews: <a href="http://thechangelog.com/post/397364245/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak">Part 1</a> and <a href="http://thechangelog.com/post/1525527959/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli">Part 2</a></li>
<li>Mongo vs. <a href="http://couchdb.apache.org/">CouchDB</a>

<ul><li>Couch uses <a href="http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views">Map/Reduce views</a></li>
<li>Couch has great <a href="http://wiki.apache.org/couchdb/How_to_replicate_a_database">master-master replication</a></li>
<li>Couch runs on mobile</li>
<li>Mongo&#8217;s sharding is closer to a relational database</li>
</ul></li>
<li>Mongo&#8217;s <a href="http://www.mongodb.org/display/DOCS/Geospatial+Indexing">Geo features</a> now support more precise, spherical geospatial indexing</li>
<li>Mongo shines at

<ul><li>User profiles</li>
<li>CMS data</li>
</ul></li>
<li>Mongo enjoys <a href="http://www.mongodb.org/display/DOCS/Drivers">wide language binding support</a></li>
<li>Eliot and 10gen think the <a href="http://nosql.mypopescu.com/post/1016320617/mongodb-is-web-scale">Web Scale</a> meme is all in good fun</li>
<li><a href="http://bsonspec.org/">BSON</a> [bee · sahn], short for Bin­ary JSON, is a binary-encoded serialization of JSON-like documents</li>
<li>Our interview with <a href="http://thechangelog.com/post/676820023/episode-0-2-6-douglas-crockford-on-json-and-javascript-f">Douglas Crockford on JSON</a></li>
<li>MongoDB 2.0 will be focusing on concurrency, aggregation, online compaction, and TTL temporal collections</li>
<li>Eliot likes <a href="http://racket-lang.org/">Racket</a> when he&#8217;s not slinging C.</li>
<li><a href="http://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a> is one of Eliot&#8217;s heroes</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor/">Episode 0.5.1 &#8211; MongoDB, NoSQL, and Web Scale with Eliot Horowitz</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://changelogshow.com/105/22712-episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-horowitz.mp3" length="104" type="audio/mpeg" />
		</item>
		<item>
		<title>alfred: Fast in-process key-value store for node.js</title>
		<link>http://thechangelog.com/alfred-node-is-your-mansion-alfred-is-your-butler/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=alfred-node-is-your-mansion-alfred-is-your-butler</link>
		<comments>http://thechangelog.com/alfred-node-is-your-mansion-alfred-is-your-butler/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 16:32:04 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[NoSQL]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/alfred-node-is-your-mansion-alfred-is-your-butler/</guid>
		<description><![CDATA[<p>Node.js developers looking for a NoSQL backend for their apps have a growing list of options. New drivers and ODMs are in active development for popular servers from MongoDB to Redis. Pedro Teixeira (of Fugue fame) says with Node&#8217;s blazing speed, why not keep everything in-process? Alfred.js promises to be a super fast key-value store [...]</p><p>The post <a href="http://thechangelog.com/alfred-node-is-your-mansion-alfred-is-your-butler/">alfred: Fast in-process key-value store for node.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Node.js developers looking for a NoSQL backend for their apps have a growing list of options. New drivers and ODMs are in active development for popular servers from <a href="http://mongoosejs.com/">MongoDB</a> to <a href="http://thechangelog.com/post/2801342864/episode-0-4-5-redis-with-salvatore-sanfilippo">Redis</a>. <a href="http://twitter.com/pedrogteixeira">Pedro Teixeira</a> (of <a href="http://thechangelog.com/post/1223016293/fugue-unicorn-for-node-js">Fugue</a> fame) says with Node&#8217;s blazing speed, why not keep everything in-process? <a href="http://pgte.github.com/alfred/">Alfred.js</a> promises to be a super fast key-value store for Node.js.</p>

<h3>Installation and usage</h3>

<p>Alfred can be installed via <a href="http://npmjs.org">npm</a></p>

<pre><code>npm install alfred
</code></pre>

<p>&#8230; and <code>require</code> it:</p>

<pre><code>var Alfred = require('alfred');
</code></pre>

<p>Alfred uses append-only files to store data, offering safe <a href="http://en.wikipedia.org/wiki/Rsync">rsync</a>&#8216;ing. To open a database connection, call <code>open</code> and pass the path to your file, querying in the callback, Node.js style:</p>

<pre><code>Alfred.open('path/to/db', function(err, db) {
  if (err) { throw err; }
  // find and log all users with age &gt; 25 and &lt;= 40
  db.users.find({age: {$gt : 25, $lte: 40}}) (function(err, user) {
    if (err) { throw err; }
    console.log(user);
  });
});
</code></pre>

<p>Alfred provides an Object-Document-Mapper style access as well:</p>

<pre><code>Alfred.open('path/to/db', function(err, db) {
  if (err) { throw err; }

  // define User model and its properties
  var User = db.define('User', {
    indexes: [{name: 'age',
              fn-340: function(user) { return user.age; }]
  });
  User.property('name', 'string', {
    maxLength: 100
  });
  User.property('active', 'boolean');

  // get user by id
  User.get(id, function(user) {
    console.log(user.inspect());
  };

  // find users
  User.find({age: {$gt: 18}}).all(function(users) {
    console.log('Found ' + users.length + ' users with more than 18 years') ;
  });
});
</code></pre>

<p>Be sure and check out the growing list of <a href="http://pgte.github.com/alfred/api.html">api docs</a> for advanced usage.</p>

<h3>Speed</h3>

<p>Pedro has included an impressive list of <a href="http://pgte.github.com/alfred/benchmarks.html">benchmarks</a> and the <a href="https://github.com/pgte/alfred/tree/master/benchmarks">code behind them</a>.</p>

<p><a href="http://pgte.github.com/alfred/benchmarks.html"><img src="http://cl.ly/452102073I083P2O1P2e/Screen_shot_2011-02-02_at_10.25.28_AM.png" alt="benchmarks" /></a></p>

<p>Alfred&#8217;s <a href="http://pgte.github.com/alfred/features.html">features</a> include master-slave replication, streams, and in-memory indexes. If you want to help out with master-master replication or items on the roadmap, <a href="http://github.com/pgte/alfred">get forkin&#8217;</a>.</p>

<p>[<a href="http://github.com/pgte/alfred">Source on GitHub</a>] [<a href="http://metaduck.com/post/2637829753/introducing-alfred-a-node-js-in-process-key-value">Pedro&#8217;s Blog post</a>]</p>
<p>The post <a href="http://thechangelog.com/alfred-node-is-your-mansion-alfred-is-your-butler/">alfred: Fast in-process key-value store for node.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/alfred-node-is-your-mansion-alfred-is-your-butler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neo4j Graph Database now on GitHub!</title>
		<link>http://thechangelog.com/graphdb-neo4j-graph-database/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=graphdb-neo4j-graph-database</link>
		<comments>http://thechangelog.com/graphdb-neo4j-graph-database/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 01:42:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[neo4j]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/graphdb-neo4j-graph-database/</guid>
		<description><![CDATA[<p>Neo4j, the popular NoSQL database (praised in our infamous NoSQL Smackdown by the CTO of Amazon no less) has moved its main source to GitHub. For readers new to graph databases, here&#8217;s a brief video introduction. For more on Neo4j, be sure and check out the Getting Started Guides with introductions for Java, Python, and [...]</p><p>The post <a href="http://thechangelog.com/graphdb-neo4j-graph-database/">Neo4j Graph Database now on GitHub!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://github.com/neo4j/graphdb">Neo4j</a>, the popular NoSQL database (praised in our infamous <a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">NoSQL Smackdown</a> by the <a href="http://twitter.com/#!/werner">CTO of Amazon</a> no less) has moved its main source to GitHub.</p>

<p>For readers new to graph databases, here&#8217;s a brief <a href="http://www.youtube.com/watch?v=2ElGO1P8v0c&amp;feature=player_embedded">video introduction</a>.</p>

<iframe title="YouTube video player" class="youtube-player" type="text/html" width="560" height="345" src="http://www.youtube.com/embed/2ElGO1P8v0c" frameborder="0" allowFullScreen></iframe>

<p>For more on Neo4j, be sure and check out the <a href="http://wiki.neo4j.org/content/Getting_Started_Guide">Getting Started Guides</a> with introductions for <a href="http://wiki.neo4j.org/content/Getting_Started_With_Java">Java</a>, <a href="http://wiki.neo4j.org/content/Getting_Started_With_Python">Python</a>, and <a href="http://wiki.neo4j.org/content/Getting_Started_With_Ruby">Ruby</a>.</p>

<p>[<a href="http://github.com/neo4j/graphdb">Source on GitHub</a>] [<a href="http://neo4j.org/">Home Page</a>]</p>
<p>The post <a href="http://thechangelog.com/graphdb-neo4j-graph-database/">Neo4j Graph Database now on GitHub!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/graphdb-neo4j-graph-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>toystore: Ruby mapper for key-value data stores, and darn near anything</title>
		<link>http://thechangelog.com/toystore-orm-for-key-value-data-stores/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=toystore-orm-for-key-value-data-stores</link>
		<comments>http://thechangelog.com/toystore-orm-for-key-value-data-stores/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 17:59:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/toystore-orm-for-key-value-data-stores/</guid>
		<description><![CDATA[<p>NewToy (now Zynga with Friends) the folks that brought you the wildly popular mobile game Words With Friends, also have served up some open source code for your enjoyment. John Nunemaker and Geoffrey Dagley have created Toy Store, an ORM that promises to let you completely change your data store in a couple lines of [...]</p><p>The post <a href="http://thechangelog.com/toystore-orm-for-key-value-data-stores/">toystore: Ruby mapper for key-value data stores, and darn near anything</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://newtoyinc.com/">NewToy</a> (now Zynga with Friends) the folks that brought you the wildly popular mobile game <a href="http://itunes.apple.com/us/app/words-with-friends-free/id321916506?mt=8">Words With Friends</a>, also have served up some open source code for your enjoyment. <a href="http://railstips.org">John Nunemaker</a> and <a href="http://twitter.com/#!/gdagley/">Geoffrey Dagley</a> have created <a href="http://github.com/newtoy/toystore">Toy Store</a>, an ORM that promises to let you completely change your data store in a couple lines of code.</p>

<p><img src="http://cl.ly/1W2l1m0g160S3s141B3c/mzl.kdwllwye.320x480-75.jpeg" alt="Words With Friends" /></p>

<p>Toy Store features include:</p>

<blockquote>
  <ul><li><strong>Attributes</strong> – attribute :name, String (or some other type) Can be virtual which works just like attr_accessor but all the power of dirty tracking, serialization, etc. Also, can be abbreviated which means :first_name could be the method you use, but in the data store the attribute is :fn. Save those bytes! Allows for default values and defaults can be procs.</li>
  <li><strong>Typecasting</strong> – Same type system as MongoMapper. One day they will share the exact same type system in its own gem, for now duplicated.</li>
  <li><strong>Callbacks</strong> – all the usual suspects.</li>
  <li><strong>Dirty Tracking</strong> – save, create, update, destroy</li>
  <li><strong>Mass assignment security</strong> – attr_accessible and attr_protected</li>
  <li><strong>Proper cloning</strong></li>
  <li><strong>Lists</strong> – arrays of ids. If user has many games, user would have list :games which stores in game_ids key on user and works just like an association.</li>
  <li><strong>Embedded Lists</strong> – array of hashes. More consistent than MongoMapper, which will soon reap the benefits of the work on Toy Store embedded lists.</li>
  <li><strong>References</strong> – think belongs_to by a different (better?) name. Post model could reference :creator, User to add creator_id key and relate creator to post.</li>
  <li><strong>Identity Map</strong> – On by default. Should be thread-safe.</li>
  <li><strong>Read/write through caching</strong> – If you specific a cache adapter (say memcached), ToyStore will write to memcached first and read from memcached first, populating the cache if it was not present.</li>
  <li><strong>Indexing</strong> – Need to do lookups by email? index :email and whenever a user is saved the user data is written to one key and the email is written as another key with a value of the user id.</li>
  <li><strong>Logging</strong></li>
  <li><strong>Serialization (XML and JSON)</strong></li>
  <li><strong>Validations</strong></li>
  <li><strong>Primary key factories</strong></li>
  </ul></blockquote>

<p>Toy Store sits atop of the <a href="http://railstips.org/blog/archives/2011/01/27/data-modeling-in-performant-systems/">newly announced</a> <a href="https://github.com/newtoy/adapter">Adapter</a> gem, an Active Model-based adapter that provides a unified interface to most NoSQL stores or darn near anything, in the vein of <a href="https://github.com/wycats/moneta">Moneta</a>.</p>

<p>John has created adapters for <a href="https://github.com/jnunemaker/adapter-riak">Riak</a>, <a href="https://github.com/jnunemaker/adapter-memcached">memcached</a>, <a href="https://github.com/jnunemaker/adapter-redis">Redis</a>, and <a href="https://github.com/therealadam/adapter-cassandra">Cassandra</a>. If you need support for another store, you can build your own adapter by implementing just four methods for <code>read</code>, <code>write</code>, <code>delete</code>, and <code>clear</code>:</p>

<pre><code>Adapter.define(:memory) do
  def read(key)
    decode(client[key_for(key)])
  end

  def write(key, value)
    client[key_for(key)] = encode(value)
  end

  def delete(key)
    client.delete(key_for(key))
  end

  def clear
    client.clear
  end
end
</code></pre>

<p>[<a href="http://github.com/newtoy/toystore">Source on GitHub</a>] [<a href="http://railstips.org/blog/archives/2011/01/27/data-modeling-in-performant-systems/">John&#8217;s Blog post</a>] [<a href="http://news.ycombinator.com/item?id=2148774">Discuss on Hacker News</a>]</p>
<p>The post <a href="http://thechangelog.com/toystore-orm-for-key-value-data-stores/">toystore: Ruby mapper for key-value data stores, and darn near anything</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/toystore-orm-for-key-value-data-stores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>webdis: HTTP + JSON API for Redis</title>
		<link>http://thechangelog.com/webdis-a-redis-http-interface-with-json-output/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webdis-a-redis-http-interface-with-json-output</link>
		<comments>http://thechangelog.com/webdis-a-redis-http-interface-with-json-output/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 17:46:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Redis]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/webdis-a-redis-http-interface-with-json-output/</guid>
		<description><![CDATA[<p>HTTP is the dial tone of the web. Apps that speak HTTP tend to grow in popularity, such as CouchDB whose built-in HTTP-based RESTful API makes it super easy to store and retrieve JSON data. Nicolas Favre-Felix gives some web love to Redis fans with Webdis, an HTTP interface for Redis that serves up JSON. [...]</p><p>The post <a href="http://thechangelog.com/webdis-a-redis-http-interface-with-json-output/">webdis: HTTP + JSON API for Redis</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>HTTP is the dial tone of the web. Apps that speak HTTP tend to grow in popularity, such as <a href="http://couchdb.apache.org/">CouchDB</a> whose built-in HTTP-based RESTful API makes it super easy to store and retrieve JSON data.</p>

<p><a href="https://github.com/nicolasff">Nicolas Favre-Felix</a> gives some web love to Redis fans with <a href="https://github.com/nicolasff/webdis">Webdis</a>, an HTTP interface for Redis that serves up JSON. Built in C, Webdis aims to be fast like Redis itself. The URL structure takes the pattern of:</p>

<pre><code><a href="http://127.0.0.1:7379/COMMAND/KEY/">http://127.0.0.1:7379/COMMAND/KEY/</a>[VALUE]
</code></pre>

<p>Let&#8217;s look at some concrete examples:</p>

<pre><code>curl <a href="http://127.0.0.1:7379/SET/hello/world">http://127.0.0.1:7379/SET/hello/world</a>
→ {"SET":[true,"OK"]}

curl <a href="http://127.0.0.1:7379/GET/hello">http://127.0.0.1:7379/GET/hello</a>
→ {"GET":"world"}

curl -d "GET/hello" <a href="http://127.0.0.1:7379/">http://127.0.0.1:7379/</a>
→ {"GET":"world"}
</code></pre>

<p>While still early in development, the feature set is impressive. Webdis currently offers:</p>

<ul><li>Support for GET and POST</li>
<li>JSON and <a href="http://remysharp.com/2007/10/08/what-is-jsonp/">JSONP</a> parameter (<code>?jsonp=myFunction</code>).</li>
<li>Raw Redis 2.0 protocol output with <code>.raw</code> suffix</li>
<li>HTTP 1.1 pipelining</li>
<li>TCP or UNIX socket Redis connections</li>
<li>CIDR or HTTP Basic Auth security</li>
<li>Pub/Sub using <code>Transfer-Encoding: chunked</code>. Coupled with JSONP, Webdis can be used as a <a href="http://en.wikipedia.org/wiki/Comet_(programming)">Comet</a> server</li>
<li>Built-in support for <code>json</code>, <code>txt</code>, &#8216;<code>html</code>, <code>xml</code>, <code>xhtml</code>, <code>png</code>, and <code>jpg</code></li>
<li>Custom Content-Type types based on file extension, or <code>?type=some/thing</code></li>
<li>Cross-origin XHR, if compiled with libevent2 (for <code>OPTIONS</code> support)</li>
<li>File upload with PUT, if compiled with libevent2 (for <code>PUT</code> support)</li>
</ul>

<p>Check the <a href="http://github.com/nicolasff/webdis#readme">README</a> for the complete list. If you&#8217;d like to contribute, Nicolas is thinking about how to add other HTTP verb support like PUT and DELETE, <a href="http://lg.gd/031">Websockets</a>, and Etags.</p>

<p>Also, if you missed it, be sure and catch <a href="http://lg.gd/045">Episode 0.4.5</a> with @<a href="http://twitter.com/antirez">antirez</a>, the creator of Redis.</p>

<p>[<a href="http://github.com/nicolasff/webdis">Source on GitHub</a>] [<a href="http://news.ycombinator.com/item?id=2136267">Comment on Hacker News</a>]</p>
<p>The post <a href="http://thechangelog.com/webdis-a-redis-http-interface-with-json-output/">webdis: HTTP + JSON API for Redis</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/webdis-a-redis-http-interface-with-json-output/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episode 0.4.5 &#8211; Redis with Salvatore Sanfilippo</title>
		<link>http://thechangelog.com/episode-0-4-5-redis-with-salvatore-sanfilippo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-4-5-redis-with-salvatore-sanfilippo</link>
		<comments>http://thechangelog.com/episode-0-4-5-redis-with-salvatore-sanfilippo/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 22:51:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[pub-sub]]></category>
		<category><![CDATA[Redis]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-4-5-redis-with-salvatore-sanfilippo/</guid>
		<description><![CDATA[<p>Wynn caught up with Salvatore Sanfilippo aka @antirez to talk about Redis, the super hot key value store. Items mentioned in the show: VMWare signs the paychecks for Salvatore and Pieter Noordhuis Redis is an open source, advanced key-value store and data structure server wherein keys can contain strings, hashes, lists, sets and sorted sets [...]</p><p>The post <a href="http://thechangelog.com/episode-0-4-5-redis-with-salvatore-sanfilippo/">Episode 0.4.5 &#8211; Redis with Salvatore Sanfilippo</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Wynn caught up with <a href="http://invece.org/">Salvatore Sanfilippo</a> aka @<a href="http://twitter.com/antirez">antirez</a> to talk about <a href="http://redis.io">Redis</a>, the super hot key value store.</p>

<audio src="http://changelogshow.com/105/20228-episode-0-4-5-redis-with-salvatore-sanfilippo.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p>

<ul><li><a href="http://vmware.com">VMWare</a> signs the paychecks for Salvatore and <a href="https://github.com/pietern">Pieter Noordhuis</a></li>
<li><a href="http://redis.io/">Redis</a> is an open source, advanced key-value store and data structure server wherein keys can contain strings, hashes, lists, sets and sorted sets</li>
<li>Redis <a href="http://redis.io/topics/internals">internals</a> consist of ANSI C with an <a href="http://redis.io/topics/internals-eventlib">evented model</a></li>
<li><a href="http://redis.io/topics/replication">Non-blocking replication</a> has always been a Redis design goal</li>
<li><a href="http://redis.io/topics/replication">Replication</a> in Redis is async</li>
<li>Salvatore&#8217;s Redis toolbox includes the Redis <a href="https://rubygems.org/gems/redis">Ruby gem</a> and <a href="http://www.sinatrarb.com">Sinatra</a></li>
<li>Chances are you can find a <a href="http://redis.io/clients">Redis library</a> in your favorite language</li>
<li>The <a href="http://github.com/antirez/hiredis">C client</a> is the only officially supported wrapper</li>
<li>Salvatore thinks the <a href="http://nosqltapes.com/">NoSQL</a> moniker isn&#8217;t perfect, focusing too much on performance, but it frames a discussion</li>
<li>Redis <a href="http://laktek.com/2010/05/25/real-time-collaborative-editing-with-websockets-node-js-redis/">Pub/Sub</a> is perfect for real-time apps</li>
<li>GitHub&#8217;s adoption of Redis in <a href="https://github.com/defunkt/resque">Resque</a> helped fuel the growth of the project</li>
<li>Redis users tend to use it as a database, as a messaging bus, or as a cache</li>
<li>Salvatore thinks hosted solutions like <a href="http://redistogo.com/">Redis-to-Go</a> need to add more value like more frequent backups and  seamless upgrades.</li>
<li><a href="http://us.blizzard.com/en-us/">Blizzard</a> uses an 8-node Redis install in serving avatars for <a href="http://us.blizzard.com/en-us/games/cataclysm/index.html">WoW</a></li>
<li><a href="http://twitter.com/JustinCampbell">Justin Campbell</a> asks <a href="http://twitter.com/JustinCampbell/status/24847944758861824">will VMWare feature Redis in any upcoming projects?</a></li>
<li><a href="http://twitter.com/#!/ezmobius">Ezra Zygmuntowicz</a> and <a href="http://github.com">GitHub</a> were among the first &#8220;few brave users&#8221;</li>
<li>Salvatore noticed a dip in adoption after a few months, but he trusted his gut and stuck with it</li>
</ul>

<a href="http://news.ycombinator.com/item?id=2113817" class="btn">Discuss this episode on Hacker News</a>
<p>The post <a href="http://thechangelog.com/episode-0-4-5-redis-with-salvatore-sanfilippo/">Episode 0.4.5 &#8211; Redis with Salvatore Sanfilippo</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-4-5-redis-with-salvatore-sanfilippo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://changelogshow.com/105/20228-episode-0-4-5-redis-with-salvatore-sanfilippo.mp3" length="104" type="audio/mpeg" />
		</item>
		<item>
		<title>Watch Wednesday</title>
		<link>http://thechangelog.com/watchwednesday-20101124/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=watchwednesday-20101124</link>
		<comments>http://thechangelog.com/watchwednesday-20101124/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 21:08:49 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[WatchWednesday]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/watchwednesday-20101124/</guid>
		<description><![CDATA[<p>Quick hitting list of projects to check out on GitHub: pauldowman / gitmodel Git Model is an ActiveModel-compatible NoSQL store based on git. Not ready for primetime but very interesting. assaf / vanity Vanity is declarative A/B testing for Rails. sidelab / tile5 Tile5 is a nifty multi-provider mobile-optimized mapping framework for building mapping or [...]</p><p>The post <a href="http://thechangelog.com/watchwednesday-20101124/">Watch Wednesday</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Quick hitting list of projects to check out on GitHub:</p>
<h4><a href="https://github.com/pauldowman">pauldowman</a> / <a href="https://github.com/pauldowman/gitmodel">gitmodel</a></h4>
<p>Git Model is an ActiveModel-compatible NoSQL store based on git. Not ready for primetime but very interesting.</p>
<h4><a href="https://github.com/assaf">assaf</a> / <a href="https://github.com/assaf/vanity">vanity</a></h4>
<p>Vanity is declarative A/B testing for Rails.</p>
<h4><a href="https://github.com/sidelab">sidelab</a> / <a href="https://github.com/sidelab/tile5">tile5</a></h4>
<p>Tile5 is a nifty multi-provider mobile-optimized mapping framework for building mapping or other tile-based applications.</p>
<p><a href="http://sandbox.tile5.org/endlessmural"><img src="http://f.cl.ly/items/1G473s3I0B1N1x1V0R0k/Screen%20shot%202010-11-24%20at%203.02.48%20PM.png" alt="Demo" /></a></p>
<p>The post <a href="http://thechangelog.com/watchwednesday-20101124/">Watch Wednesday</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/watchwednesday-20101124/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episode 0.4.0 &#8211; Riak revisited with Andy Gross, Mark Phillips, and John Nunemaker</title>
		<link>http://thechangelog.com/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-4-0-riak-revisited-with-andy-gross-mark-philli</link>
		<comments>http://thechangelog.com/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 15:34:56 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[riak]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli/</guid>
		<description><![CDATA[<p>Wynn sat down with Andy Gross and Mark Phillips of Basho and John Nunemaker of Ordered List to talk about Riak, Riak Search, and moving an open source community to GitHub. Items mentioned in the show: NoSQL smackdown, live from SXSW 2010. Are you web scale? Drop us a ping@thechangelog.com and let us know who [...]</p><p>The post <a href="http://thechangelog.com/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli/">Episode 0.4.0 &#8211; Riak revisited with Andy Gross, Mark Phillips, and John Nunemaker</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Wynn sat down with <a href="http://twitter.com/#!/argv0">Andy Gross</a> and <a href="http://www.twitter.com/pharkmillups">Mark Phillips</a> of Basho and  <a href="http://twitter.com/jnunemaker">John Nunemaker</a> of Ordered List to talk about Riak, Riak Search, and moving an open source community to GitHub.</p>

<audio src="http://changelogshow.com/105/17753-episode-0-4-0-riak-revisited-with-andy-gross-mark-phillips-and-john-nunemaker.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p>

<ul><li><a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">NoSQL smackdown</a>, live from SXSW 2010.</li>
<li>Are you <a href="http://highscalability.com/blog/2010/9/5/hilarious-video-relational-database-vs-nosql-fanbois.html">web scale</a>?</li>
<li>Drop us a <a href="mailto:ping@thechangelog.com">ping@thechangelog.com</a> and let us know who you want to get on The Changelog</li>
<li><a href="http://twitter.com/#!/argv0">Andy Gross</a> VP of Engineering at <a href="http://www.basho.com/">Basho</a>, the company behind Riak.</li>
<li><a href="http://www.twitter.com/pharkmillups">Mark Phillips</a> Community Manager at Basho AKA * <a href="http://www.twitter.com/pharkmillups">@pharkmillups</a></li>
<li><a href="http://twitter.com/jnunemaker">John Nunemaker</a> of <a href="http://orderedlist.com/">Ordered List</a> and  <a href="https://github.com/jnunemaker/mongomapper">MongoMapper</a> fame</li>
<li>Riak is now available as a <a href="https://wiki.basho.com/display/RIAK/Installation+and+Setup">binary download</a></li>
<li><a href="https://github.com/basho/bitcask">Bitcask</a>, the new backend for Riak</li>
<li><a href="https://github.com/basho/riak">Riak key value store</a>, decentralized datastore from Basho Technologies</li>
<li><a href="https://github.com/basho/riak_search">Riak Search</a>, full-text search engine based on Riak</li>
<li>Riak <a href="https://wiki.basho.com/display/RIAK/Riak+Glossary#RiakGlossary-Bucket">buckets</a>, container and keyspace for data stored in Riak</li>
<li>Riak KVS buckets can be <a href="https://wiki.basho.com/display/RIAK/Riak+Search">automatically searchable</a> by installing the Search pre-commit hook</li>
<li>Riak <a href="https://wiki.basho.com/display/RIAK/Riak+Search+-+Querying#RiakSearch-Querying-QueryingviatheSolrInterface">supports</a> an <a href="http://lucene.apache.org/solr/">Apache SOLR</a> interface</li>
<li><a href="http://twitter.com/#!/seancribbs">Sean Cribbs</a> made some waves with <a href="https://github.com/seancribbs/ripple">Ripple</a></li>
<li>Ruby, Python, Node.js are the <a href="https://wiki.basho.com/display/RIAK/Client+Libraries+and+Community+Code">biggest adopters</a> of Riak</li>
<li>Riak aims to <a href="https://wiki.basho.com/display/RIAK/Benchmarking+with+Basho+Bench">scale both up and down</a>. <a href="https://wiki.basho.com/display/RIAK/Command-Line+Tools#Command-LineTools-join">Adding a node</a> adds a linear increase in throughput and storage capacity. 50 nodes run easily on a laptop.</li>
<li>Riak nodes are <a href="https://wiki.basho.com/display/RIAK/How+Things+Work#HowThingsWork-TheRing">truly decentralized</a>, no node is special</li>
<li>Riak <a href="https://wiki.basho.com/display/RIAK/Riak+Compared+to+Cassandra">compares to Cassandra</a> and <a href="http://project-voldemort.com/">Voldemort</a></li>
<li>Riak has built-in JavaScript <a href="https://wiki.basho.com/display/RIAK/MapReduce">map reduce</a> but unlike <a href="http://couchdb.apache.org/">Couch</a>, it&#8217;s more an ad hoc approach.</li>
<li>Andy explains Riak&#8217;s <a href="https://wiki.basho.com/display/RIAK/Links">link walking</a> or <em>bucket-key-tag</em> relationships between objects.</li>
<li>Riak now has two interfaces, the original <a href="https://wiki.basho.com/display/RIAK/REST+API">REST HTTP interface</a>, and a new <a href="https://wiki.basho.com/display/RIAK/Erlang+Client+PBC">protocol buffers interface</a>, a faster binary interface</li>
<li>Eric Brewer, <a href="http://www.basho.com/Eric-Brewer-Joins-Board-of-Directors-of-Basho.html">a Basho board member</a>, and <a href="http://www.julianbrowne.com/article/viewer/brewers-cap-theorem">his cap theorem</a></li>
<li><a href="http://blog.basho.com/2010/04/27/hello,-bitcask/">Bitcask</a> is an append-only file format where the keys are stored in memory for ultra fast lookups.</li>
<li><a href="https://github.com/basho/innostore">InnoStore</a>, the original Riak backend</li>
<li><a href="http://twitter.com/jrecursive">John Muellerleile</a>, author of the <a href="http://howfuckedismydatabase.com/nosql/">popular NoSQL cartoon about distributed map reduce in Erlang</a></li>
<li><a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene query syntax</a> a growing standard for search</li>
<li>The move from <a href="http://bitbucket.org/">BitBucket</a> to <a href="http://github.com">GitHub</a> was ultimately about community, not about DVCS</li>
<li>The <a href="https://github.com/basho/riak/blob/master/THANKS">THANKS</a> file lists many Riak community contributors</li>
<li><a href="http://get.harmonyapp.com/">Harmony</a> &#8211; the <a href="http://mongodb.org">MongoDB</a>-powered hosted CMS from <a href="http://orderedlist.com">Ordered List</a></li>
<li>Mozilla <a href="http://blog.mozilla.com/data/2010/05/18/riak-and-cassandra-and-hbase-oh-my/">runs several Riak clusters</a> to log data from their <a href="https://testpilot.mozillalabs.com/">Test Pilot project</a></li>
<li><a href="http://franciscotreacy.com/">Francisco Treacy</a> uses Riak in <a href="http://widescript.com/">WideScript</a>, &#8220;an innovative app that helps you focus and interact with your texts — on your desktop, your couch or on the go.&#8221;</li>
<li><a href="http://inagist.com/">Inagist</a> recently <a href="http://blog.inagist.com/riak-at-inagistcom">moved from Cassandra to Riak</a> </li>
<li>Riak has partnered with <a href="http://joyent.com">Joyent</a> and Node creator <a href="http://twitter.com/#!/ryah">Ryan Dahl</a> to create <a href="http://www.joyent.com/2010/09/joyent-riak-smartmachines-now-available/">Riak SmartMachines</a></li>
<li>Mark also is a fan of <a href="http://code.google.com/p/redis/">Redis</a></li>
<li><a href="http://www.scala-lang.org/">Scala</a> and <a href="http://clojure.org/">Clojure</a> have Andy excited, too.</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli/">Episode 0.4.0 &#8211; Riak revisited with Andy Gross, Mark Phillips, and John Nunemaker</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-4-0-riak-revisited-with-andy-gross-mark-philli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://changelogshow.com/105/17753-episode-0-4-0-riak-revisited-with-andy-gross-mark-phillips-and-john-nunemaker.mp3" length="104" type="audio/mpeg" />
		</item>
		<item>
		<title>coffeeapp: Have some CoffeeScript on the CouchApp</title>
		<link>http://thechangelog.com/coffeeapp-coffee-script-wrapper-for-couchapp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coffeeapp-coffee-script-wrapper-for-couchapp</link>
		<comments>http://thechangelog.com/coffeeapp-coffee-script-wrapper-for-couchapp/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 17:56:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[coffee]]></category>
		<category><![CDATA[couchapps]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NoSQL]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/coffeeapp-coffee-script-wrapper-for-couchapp/</guid>
		<description><![CDATA[<p>One of the cool things about CouchDB is its built-in web server which lets you easily create all-in-one HTML5 and JavaScript applications that J Chris Anderson calls CouchApps. If CoffeeScript (covered in Episode 0.2.9) is your preferred method to sling JavaScript these days, check out CoffeeApp from Andrzej Sliwa. CoffeeApp is a simple wrapper on [...]</p><p>The post <a href="http://thechangelog.com/coffeeapp-coffee-script-wrapper-for-couchapp/">coffeeapp: Have some CoffeeScript on the CouchApp</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>One of the cool things about <a href="http://couchdb.apache.org/">CouchDB</a> is its built-in web server which lets you easily create all-in-one HTML5 and JavaScript applications that <a href="http://twitter.com/jchris">J Chris Anderson</a> calls <a href="http://couchapp.org/page/index">CouchApps</a>.</p>

<p>If <a href="http://coffeescript.org">CoffeeScript</a> (covered in <a href="http://thechangelog.com/post/849754840/episode-0-2-9-coffeescript-with-jeremy-ashkenas">Episode 0.2.9</a>) is your preferred method to sling JavaScript these days, check out <a href="http://github.com/andrzejsliwa/coffeeapp">CoffeeApp</a> from <a href="http://github.com/andrzejsliwa">Andrzej Sliwa</a>. CoffeeApp is a simple wrapper on top of CouchApp that lets you write your apps in Coffee as well as manage multiple releases of your apps with deployment snapshots.</p>

<p>Assuming you&#8217;ve gotten CoffeeScript installed including its Node.js dependencies, you can install CoffeeApp via the excellent <a href="http://npmjs.org">npm</a>.</p>

<pre><code>npm install coffeeapp
</code></pre>

<p>You can then invoke <code>coffeeapp</code> with the normal <code>couchapp</code> <a href="http://couchapp.org/page/couchapp-usage">options</a></p>

<pre><code>coffeeapp [options]
</code></pre>

<p>CoffeeApp maintains a .releases folder where your *.coffee files are converted to to *.js on-the-fly before pushing to CouchDB.</p>

<h4>**UPDATE</h4>

<p>Andrzej has made a flurry of changes yesterday including some nifty generators:</p>

<pre><code>$ coffeeapp cgenerate view myview

CoffeeApp (v0.0.5) - simple coffee-script wrapper for CouchApp (<a href="http://couchapp.org">http://couchapp.org</a>)
<a href="http://github.com/andrzejsliwa/coffeeapp">http://github.com/andrzejsliwa/coffeeapp</a>

Running CoffeeApp 'view' generator...
 * creating myview/map.coffee...
 * creating myview/reduce.coffee...
done.
</code></pre>

<p>[<a href="http://github.com/andrzejsliwa/coffeeapp">Source on GitHub</a>]</p>
<p>The post <a href="http://thechangelog.com/coffeeapp-coffee-script-wrapper-for-couchapp/">coffeeapp: Have some CoffeeScript on the CouchApp</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/coffeeapp-coffee-script-wrapper-for-couchapp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ACLatraz: Redis-powered access control for your ruby apps</title>
		<link>http://thechangelog.com/aclatraz-redis-powered-access-control-ruby-apps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aclatraz-redis-powered-access-control-ruby-apps</link>
		<comments>http://thechangelog.com/aclatraz-redis-powered-access-control-ruby-apps/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 15:26:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[auth]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Redis]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RubyGems]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/aclatraz-redis-powered-access-control-ruby-apps/</guid>
		<description><![CDATA[<p>Authentication options get a lot of press these days, but there is another Auth that can still be a pain: Authorization. ACLatraz from Kriss Kowalik caught our eye because it&#8217;s inspired by *nix Access Control Lists (ACLs), powered by Redis, and has a sense of humor. Install ACLatraz via Ruby gems gem install aclatraz and [...]</p><p>The post <a href="http://thechangelog.com/aclatraz-redis-powered-access-control-ruby-apps/">ACLatraz: Redis-powered access control for your ruby apps</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Authentication options get a lot of press these days, but there is another <em>Auth</em> that can still be a pain: <em>Authorization</em>. <a href="http://github.com/nu7hatch/aclatraz">ACLatraz</a> from <a href="http://github.com/nu7hatch">Kriss Kowalik</a> caught our eye because it&#8217;s inspired by *nix Access Control Lists (ACLs), powered by <a href="http://code.google.com/p/redis/">Redis</a>, and has a sense of humor.</p>

<p>Install ACLatraz via Ruby gems</p>

<pre><code>gem install aclatraz
</code></pre>

<p>and configure your Redis-based storage</p>

<pre><code>Aclatraz.init :redis, "redis://localhost:6379/0"
</code></pre>

<h4>Everyone is a <code>Suspect</code></h4>

<p>In keeping with the Alcatraz theme, actors in your authorization system are deemed <em><code>Suspects</code></em>:</p>

<pre><code>class Account &lt; ActiveRecord::Base
  include Aclatraz::Suspect
end
</code></pre>

<p>ACLatraz supports <strong>global</strong>, <strong>class-related</strong>, and <strong>object-related</strong> roles:</p>

<pre><code># global admin role
@account.roles.assign(:admin) # or ...
@account.is.admin!

# Page class-related role
@account.roles.assign(:responsible, Page) # or...
@account.is.responsible_for!(Page)

# object-related role for page 15
@account.roles.assign(:author, Page.find(15)) # or...
@account.is.author_of!(Page.find(15))
</code></pre>

<p>Once, assigned you can <em>interrogate</em> your suspects a couple of ways using <code>has?</code></p>

<pre><code>@account.roles.has?(:admin)                # =&gt; true
@account.roles.has?(:responsible, Page)     # =&gt; true
@account.roles.has?(:author, Page.find(15) # =&gt; true
</code></pre>

<p>&#8230; or the more natural semantic shortcuts:</p>

<pre><code>@account.is_not.admin?                      # =&gt; false
@account.is_not.responsible_for?(Page)       # =&gt; false
</code></pre>

<h4><code>Guard</code>ing <a href="http://www.imdb.com/title/tt0117500/">The Rock</a></h4>

<p>To enable access control on an object, include the <code>Aclatraz::Guard</code> module:</p>

<pre><code>class Page
  include Aclatraz::Guard

  suspects :account do
    deny all # notice that it's a method, not symbol
    allow :admin
  end
end
</code></pre>

<p>Check the <a href="http://github.com/nu7hatch/aclatraz#readme">README</a> for even more features including custom actions, aliases, and class inheritance.</p>

<p>[<a href="http://github.com/nu7hatch/aclatraz">Source on GitHub</a>]</p>
<p>The post <a href="http://thechangelog.com/aclatraz-redis-powered-access-control-ruby-apps/">ACLatraz: Redis-powered access control for your ruby apps</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/aclatraz-redis-powered-access-control-ruby-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mongomatic: Minimal Ruby mapper for Mongo</title>
		<link>http://thechangelog.com/mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for</link>
		<comments>http://thechangelog.com/mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 00:37:08 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for/</guid>
		<description><![CDATA[<p>If you&#8217;re a close-to-the-metal sort of developer who eschews conveniences like relationships, indexes, and query APIs, then check out Mongomatic from Ben Myles. Mongomatic aims to do &#8216;just enough&#8217; by mapping your models to MongoDB collections but leaves the rest to you: No additional query API. You simply drop down to the Ruby driver. No [...]</p><p>The post <a href="http://thechangelog.com/mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for/">mongomatic: Minimal Ruby mapper for Mongo</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re a close-to-the-metal sort of developer who eschews conveniences like relationships, indexes, and query APIs, then check out <a href="http://github.com/benmyles/mongomatic">Mongomatic</a> from <a href="http://github.com/benmyles">Ben Myles</a>. Mongomatic aims to do &#8216;just enough&#8217; by mapping your models to <a href="http://mongodb.org">MongoDB</a> collections but leaves the rest to you:</p>

<ul><li><strong>No additional query API.</strong> You simply drop down to the Ruby driver.</li>
<li><strong>No relationships.</strong> Simply write your own finder methods.</li>
<li><strong>No validations.</strong> Unless you write your own.</li>
</ul>

<p>What&#8217;s the upside you may ask? Minimal dependencies and better alignment with MongoDB native conventions.</p>

<h4>A sample model</h4>

<pre><code>require 'mongomatic'

class User &lt; Mongomatic::Base
  def validate
    self.errors &lt;&lt; ["Name", "can't be empty"]  if self["name"].blank?
    self.errors &lt;&lt; ["Email", "can't be empty"] if self["email"].blank?
  end
end

# set the db for all models:
Mongomatic.db = Mongo::Connection.new.db("mongomatic_test")
# or you can set it for a specific model:
User.db = Mongo::Connection.new.db("mongomatic_test_user")
</code></pre>

<p>Find a single user:</p>

<pre><code>found = User.find_one({"name" =&gt; "Ben Myles"})
=&gt; #&lt;User:0x00000101939a48 @doc={"_id"=&gt;BSON::ObjectID('4c32834f0218236321000001'), "name"=&gt;"Ben Myles", "email"=&gt;"me@somewhere.com"}, @removed=false, @is_new=false, @errors=[]&gt;
</code></pre>

<p>Iterate over a cursor, the MongoDB way:</p>

<pre><code>cursor = User.find({"name" =&gt; "Ben Myles"})
=&gt; #&lt;Mongomatic::Cursor:0x0000010195b4e0 @obj_class=User, @mongo_cursor=&lt;Mongo::Cursor:0x80cadac0 namespace='mongomatic_test.User' @selector={"name"=&gt;"Ben Myles"}&gt;&gt;
found = cursor.next
=&gt; #&lt;User:0x00000101939a48 @doc={"_id"=&gt;BSON::ObjectID('4c32834f0218236321000001'), "name"=&gt;"Ben Myles", "email"=&gt;"me@somewhere.com"}, @removed=false, @is_new=false, @errors=[]&gt;
found.remove
=&gt; 67
User.count
=&gt; 0
User.find({"name" =&gt; "Ben Myles"}).next
=&gt; nil
</code></pre>

<p>If you need a quick-and-dirty model for your MongoDB Ruby app, give Mongomatic a look. It looks like a lightweight alternative to <a href="http://github.com/jnunemaker/mongomapper">MongoMapper</a> and <a href="http://mongoid.org/">Mongoid</a>.</p>

<p>[<a href="http://github.com/benmyles/mongomatic">Source on GitHub</a>] [<a href="http://mongomatic.com">Homepage</a>]</p>
<p>The post <a href="http://thechangelog.com/mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for/">mongomatic: Minimal Ruby mapper for Mongo</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/mongomatic-mongomatic-is-a-simple-ruby-object-mapper-for/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nStore &#8211; easy database written for node.js in node.js</title>
		<link>http://thechangelog.com/nstore-easy-database-written-for-node-js-in-node-js/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nstore-easy-database-written-for-node-js-in-node-js</link>
		<comments>http://thechangelog.com/nstore-easy-database-written-for-node-js-in-node-js/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 20:42:00 +0000</pubDate>
		<dc:creator>Tim Caswell</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[NoSQL]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/nstore-easy-database-written-for-node-js-in-node-js/</guid>
		<description><![CDATA[<p>Ever wanted to fire up a quick node.js app, but didn&#8217;t want to mess with finding a database driver that worked with the latest node and then installed and set up that database. Ever wanted the simplicity of an in-process db engine (like sqlite). Wait no more, nStore is here. It&#8217;s written in pure js [...]</p><p>The post <a href="http://thechangelog.com/nstore-easy-database-written-for-node-js-in-node-js/">nStore &#8211; easy database written for node.js in node.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Ever wanted to fire up a quick <a href="http://nodejs.org">node.js</a> app, but didn&#8217;t want to mess with finding a database driver that worked with the latest node and then installed and set up that database.  Ever wanted the simplicity of an in-process db engine (like sqlite).</p>

<p>Wait no more, nStore is here.  It&#8217;s written in pure js and is contained in a single js file to include in your node project.  It supports full CRUD operations on key based documents.</p>

<p>The data is persisted to disk using a smart append-only format that&#8217;s easily recoverable by design.  You can update/insert documents by key, read documents by key, remove documents by key&#8230; (get the picture, it&#8217;s key/value based).</p>

<p>Also you can build a node stream interface from a document collection or query the collection using a filter function and get the results as a single callback.</p>

<p>Removing stale data is easy and efficient too.  Just supply a filter function to the automatic data compacter and it will remove the offending documents while compacting the data file.  Thus the file is never needlessly bloated with delete lines.</p>

<p>Here is a short example that creates a database, inserts a document, and pulls it back out.</p>

<pre><code>// Load the library
var nStore = require('nstore');
// Create a store
var users = nStore('data/users.db');

// Insert a new document with key "creationix"
users.save("creationix", {name: "Tim Caswell": age: 28}, function (err) {
    if (err) { throw err; }
    // The save is finished and written to disk safely
});

// Then later pull it back out
users.get("creationix", function (err, doc, meta) {
  // do something with the data
})
</code></pre>

<p>Try is out as a standalone database, or use it with Connect as a session store. <a href="http://github.com/creationix/nstore-session"><a href="http://github.com/creationix/nstore-session">http://github.com/creationix/nstore-session</a></a></p>

<p><a href="http://github.com/creationix/nstore">[Source on GitHub]</a></p>
<p>The post <a href="http://thechangelog.com/nstore-easy-database-written-for-node-js-in-node-js/">nStore &#8211; easy database written for node.js in node.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/nstore-easy-database-written-for-node-js-in-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: NoSQL Smackdown Part 4</title>
		<link>http://thechangelog.com/video-nosql-smackdown-part-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=video-nosql-smackdown-part-4</link>
		<comments>http://thechangelog.com/video-nosql-smackdown-part-4/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 20:15:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[smackdown]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/video-nosql-smackdown-part-4/</guid>
		<description><![CDATA[<p>The last of our NoSQL Smackdown series features CouchDB contributor J Chris Anderson tagging in for Jan to talk about what makes CouchDB development so cool. [Download] [iPhone version]</p><p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-4/">Video: NoSQL Smackdown Part 4</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The last of our <a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">NoSQL Smackdown series</a>  features CouchDB contributor <a href="http://twitter.com/jchris">J Chris Anderson</a> tagging in for <a href="http://twitter.com/janl">Jan</a> to talk about what makes CouchDB development so cool.</p>

<p><embed src="http://blip.tv/play/hbxigdjENgA%2Em4v" type="application/x-shockwave-flash" width="500" height="281" allowscriptaccess="always" allowfullscreen="true"></embed></p>

<p>[<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart4143.m4v">Download</a>] [<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart4787.m4v">iPhone version</a>]</p>
<p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-4/">Video: NoSQL Smackdown Part 4</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/video-nosql-smackdown-part-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart4787.m4v" length="0" type="video/mp4" />
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart4143.m4v" length="0" type="video/mp4" />
		</item>
		<item>
		<title>NoSQL is About…</title>
		<link>http://thechangelog.com/nosql-is-about/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nosql-is-about</link>
		<comments>http://thechangelog.com/nosql-is-about/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 18:21:11 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[NoSQL]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/nosql-is-about/</guid>
		<description><![CDATA[<p>Great thoughts from Jan on finding a consistent message for NoSQL: For me, NoSQL is about choice: The possibility to choose a storage system that fits your project’s needs instead of sticking to a one-size-fits-all-solution that really isn’t one.</p><p>The post <a href="http://thechangelog.com/nosql-is-about/">NoSQL is About…</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Great thoughts from <a href="http://twitter.com/janl">Jan</a> on finding a consistent message for NoSQL:</p>

<blockquote>
  <p>For me, NoSQL is about choice: The possibility to choose a storage system that fits your project’s needs instead of sticking to a one-size-fits-all-solution that really isn’t one.</p>
</blockquote>
<p>The post <a href="http://thechangelog.com/nosql-is-about/">NoSQL is About…</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/nosql-is-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: NoSQL Smackdown Part 3</title>
		<link>http://thechangelog.com/video-nosql-smackdown-part-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=video-nosql-smackdown-part-3</link>
		<comments>http://thechangelog.com/video-nosql-smackdown-part-3/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:52:59 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[mongo]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[smackdown]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/video-nosql-smackdown-part-3/</guid>
		<description><![CDATA[<p>The third installment of our NoSQL Smackdown video series asks if only the world&#8217;s largest sites have big data needs. Werner says the amount of social interaction on today&#8217;s web means even low volume sites have to deal with a lot of data. [Download] [Part 1] [Part 2] [Complete event audio]</p><p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-3/">Video: NoSQL Smackdown Part 3</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The third installment of our <a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">NoSQL Smackdown</a> video series asks if only the world&#8217;s largest sites have big data needs. Werner says the amount of social interaction on today&#8217;s web means even low volume sites have to deal with a lot of data.</p>

<p><embed src="http://blip.tv/play/hbxigdTPCgA%2Em4v" type="application/x-shockwave-flash" width="500" height="281" allowscriptaccess="always" allowfullscreen="true"></embed></p>

<p>[<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart3538.m4v">Download</a>]
[<a href="http://thechangelog.com/post/490200830/video-nosql-smackdown-part-1">Part 1</a>]
[<a href="http://thechangelog.com/post/499753970/video-nosql-smackdown-part-2">Part 2</a>]
[<a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">Complete event audio</a>]</p>
<p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-3/">Video: NoSQL Smackdown Part 3</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/video-nosql-smackdown-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart3538.m4v" length="0" type="video/mp4" />
		</item>
		<item>
		<title>Video: NoSQL Smackdown Part 2</title>
		<link>http://thechangelog.com/video-nosql-smackdown-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=video-nosql-smackdown-part-2</link>
		<comments>http://thechangelog.com/video-nosql-smackdown-part-2/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 03:43:51 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Interviews]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[dynamo]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/video-nosql-smackdown-part-2/</guid>
		<description><![CDATA[<p>Hot on the heels of Part 1, our next video installment of the NoSQL Smackdown has Werner telling you you&#8217;re crazy if you run your own database. Ready FIGHT! [Download] [iPhone/iPod version] [Complete EP 0.1.8 audio]</p><p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-2/">Video: NoSQL Smackdown Part 2</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hot on the heels of <a href="http://thechangelog.com/post/490200830/video-nosql-smackdown-part-1">Part 1</a>,  our next video installment of the <a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">NoSQL Smackdown</a> has Werner telling you you&#8217;re crazy if you run your own database. Ready FIGHT!</p>

<p><embed src="http://blip.tv/play/hbxigdPCEAA%2Em4v" type="application/x-shockwave-flash" width="500" height="281" allowscriptaccess="always" allowfullscreen="true"></embed></p>

<p>[<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1194.m4v">Download</a>] [<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1901.m4v">iPhone/iPod version</a>] [<a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown">Complete EP 0.1.8 audio</a>]</p>
<p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-2/">Video: NoSQL Smackdown Part 2</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/video-nosql-smackdown-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1901.m4v" length="0" type="video/mp4" />
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1194.m4v" length="0" type="video/mp4" />
		</item>
		<item>
		<title>Video: NoSQL Smackdown Part 1</title>
		<link>http://thechangelog.com/video-nosql-smackdown-part-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=video-nosql-smackdown-part-1</link>
		<comments>http://thechangelog.com/video-nosql-smackdown-part-1/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 01:45:56 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Interviews]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[simpledb]]></category>
		<category><![CDATA[smackdown]]></category>
		<category><![CDATA[sxsw]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/video-nosql-smackdown-part-1/</guid>
		<description><![CDATA[<p>By popular demand we&#8217;re posting the video behind Episode 0.1.8 NoSQL Smackdown from SXSW in a series of bite-sized chunks. In part one we talk about massively large documents, inside massively large databases, consistency models and the impact on application design. Enjoy! [Download] [iPhone/iPod version]</p><p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-1/">Video: NoSQL Smackdown Part 1</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>By popular demand we&#8217;re posting the video behind <a href="http://bit.ly/tcl-0-1-8">Episode 0.1.8 NoSQL Smackdown </a> from SXSW in a series of bite-sized chunks. In part one we talk about massively large documents, inside massively large databases, consistency models and the impact on application design. Enjoy!</p>

<p><embed src="http://blip.tv/play/hbxigdLJNQA%2Em4v" type="application/x-shockwave-flash" width="500" height="281" allowscriptaccess="always" allowfullscreen="true"></embed></p>

<p>[<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1357.m4v">Download</a>] [<a href="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1683.m4v">iPhone/iPod version</a>]</p>
<p>The post <a href="http://thechangelog.com/video-nosql-smackdown-part-1/">Video: NoSQL Smackdown Part 1</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/video-nosql-smackdown-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1683.m4v" length="0" type="video/mp4" />
<enclosure url="http://blip.tv/file/get/Thechangelog-NoSQLSmackdownPart1357.m4v" length="0" type="video/mp4" />
		</item>
		<item>
		<title>Episode 0.1.9 &#8211; James Edward Gray II on Ruby, TextMate, and Red Dirt Ruby Conf</title>
		<link>http://thechangelog.com/episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and</link>
		<comments>http://thechangelog.com/episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 14:20:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[bundles]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[reddirt]]></category>
		<category><![CDATA[Redis]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RubyGems]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and/</guid>
		<description><![CDATA[<p>While in OKC for OpenBeta4, Adam and Wynn sat down with James Edward Gray II and talked about his many Ruby gems, TextMate bundles, and his upcoming Ruby conference Red Dirt Ruby Conf this May. RubyQuiz.com Challenge your Ruby fu, feel dumb, learn something, repeat. OpenBeta4 We were blown away by the startup community in [...]</p><p>The post <a href="http://thechangelog.com/episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and/">Episode 0.1.9 &#8211; James Edward Gray II on Ruby, TextMate, and Red Dirt Ruby Conf</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>While in OKC for <a href="http://openbeta.extendedbeta.com/openbeta4.html">OpenBeta4</a>, Adam and Wynn sat down with <a href="http://twitter.com/JEG2">James Edward Gray II</a> and talked about his many Ruby gems, TextMate bundles, and his upcoming <a href="http://reddirtrubyconf.com/">Ruby conference Red Dirt Ruby Conf</a> this May.</p>

<audio src="http://www.buzzsprout.com/105/3596-episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and-red-dirt-ruby-conf.mp3" controls="controls" preload="none"></audio>

<ul><li><a href="http://rubyquiz.com/">RubyQuiz.com</a> Challenge your Ruby fu, feel dumb, learn something, repeat.</li>
<li><a href="http://openbeta.extendedbeta.com/openbeta4.html">OpenBeta4</a> We were blown away by the startup community in OKC</li>
<li><a href="http://reddirtrubyconf.com/">Red Dirt Ruby Conf</a> Join us in OKC for this premier Ruby event</li>
<li><a href="http://fastercsv.rubyforge.org/">FasterCSV</a> De-facto CSV handling in Ruby, now built-in to 1.9</li>
<li><a href="http://rubykaigi.org/2010/en">Ruby Kaigi</a> Awesome Ruby conference in Japan</li>
<li><a href="http://macromates.com/">TextMate</a> James&#8217; favorite text editor</li>
<li><a href="http://github.com/JEG2/ruby.tmbundle">Ruby bundle for TextMate</a></li>
<li><a href="irc://irc.freenode.net/textmate">##textmate</a> TextMate IRC channel</li>
<li><a href="irc://irc.freenote.net/thechangelog">#thechangelog</a> Drop in and share your latest open source projects</li>
<li><a href="http://rack.rubyforge.org/">Rack</a> Rack provides a minimal interface between webservers supporting Ruby and Ruby frameworks.</li>
<li><a href="http://m.onkey.org/2010/1/22/active-record-query-interface">Rails 3.0 Active Record query interface</a></li>
<li><a href="http://www.larubyconf.com/">LA Ruby Conf</a> Ruby conference in L.A. just wrapped in February</li>
<li><a href="http://code.google.com/p/redis/">Redis</a> &#8211; an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets.</li>
<li><a href="http://ok-ruby.org/Site/Welcome.html">OK.rb</a> Now meeting at <a href="http://okccoco.com/">OKCCoCo</a></li>
<li><a href="http://www.irmasburgershack.com/">Irma&#8217;s Burger Shack</a> Best place to grab a burger in OKC. Hey, they&#8217;re on <a href="http://www.flickr.com/photos/wynnxp/4476509638/">the Twitter</a></li>
<li><a href="http://twitter.com/glv">Glenn Vanderburg</a> One of James&#8217; Ruby heroes</li>
<li><a href="http://github.com/JEG2/oklahoma_mixer">Oklahoma Mixer</a> James&#8217;  full featured and robust FFI interface to <a href="http://1978th.net/tokyocabinet/">Tokyo Cabinet</a>.</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and/">Episode 0.1.9 &#8211; James Edward Gray II on Ruby, TextMate, and Red Dirt Ruby Conf</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.buzzsprout.com/105/3596-episode-0-1-9-james-edward-gray-ii-on-ruby-textmate-and-red-dirt-ruby-conf.mp3" length="103" type="audio/mpeg" />
		</item>
		<item>
		<title>Episode 0.1.8 &#8211; NoSQL Smackdown!</title>
		<link>http://thechangelog.com/episode-0-1-8-nosql-smackdown/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-1-8-nosql-smackdown</link>
		<comments>http://thechangelog.com/episode-0-1-8-nosql-smackdown/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 20:51:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[simpledb]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-1-8-nosql-smackdown/</guid>
		<description><![CDATA[<p>While at SXSW Interactive, Adam and Wynn got to attend the Data Cluster Meetup hosted by Rackspace and Infochimps. Things got a bit rowdy when the panel debated features of Cassandra, CouchDB, MongoDB and Amazon SimpleDB and started throwing dirt at everybody else&#8217;s favorite NoSQL databases. The participants: Stu Hood from Cassandra Jan Lehnardt from [...]</p><p>The post <a href="http://thechangelog.com/episode-0-1-8-nosql-smackdown/">Episode 0.1.8 &#8211; NoSQL Smackdown!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>While at <a href="http://sxsw.com/interactive">SXSW Interactive</a>, Adam and Wynn got to attend the <a href="http://datacluster.infochimps.org/">Data Cluster Meetup</a> hosted by <a href="http://rackspace.com">Rackspace</a> and <a href="http://infochimps.com">Infochimps</a>. Things got a bit rowdy when the panel debated features of Cassandra, CouchDB, MongoDB and Amazon SimpleDB and started throwing dirt at everybody else&#8217;s favorite NoSQL databases.</p>

<audio src="http://www.buzzsprout.com/105/3382-episode-0-1-8-nosql-smackdown.mp3" controls="controls" preload="none"></audio>

<p>The participants:</p>

<ul><li><a href="http://twitter.com/stuhood">Stu Hood</a> from Cassandra</li>
<li><a href="http://twitter.com/janl">Jan Lehnardt</a> from CouchDB</li>
<li><a href="http://twitter.com/pengwynn">Wynn Netherland</a> from The Changelog, subbing for MongoDB</li>
<li><a href="http://twitter.com/werner">Werner Vogels</a> CTO at Amazon</li>
</ul>

<p>The videos:</p>

<ul>
<li><a href="/video-nosql-smackdown-part-1/">Part 1</a></li>
<li><a href="/video-nosql-smackdown-part-2/">Part 2</a></li>
<li><a href="/video-nosql-smackdown-part-3/">Part 3</a></li>
<li><a href="/video-nosql-smackdown-part-4/">Part 4</a></li>
</ul>

<p>Items mentioned in the discussion:</p>

<ul><li><a href="http://cassandra.apache.org/">Cassandra</a> The Apache Cassandra Project brings together Dynamo&#8217;s fully distributed design and Bigtable&#8217;s ColumnFamily-based data model and powers some of the world&#8217;s largest sites.</li>
<li><a href="http://couchdb.apache.org/">CouchDB</a> Apache,CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API.</li>
<li><a href="http://www.mongodb.org/">MongoDB</a> Combining the best features of document databases, key-value stores, and RDBMSes.</li>
<li><a href="http://aws.amazon.com/simpledb/">Amazon SimpleDB</a> a highly available, scalable, and flexible non-relational data store that offloads the work of database administration.</li>
<li><a href="http://en.wikipedia.org/wiki/Dynamo_(storage_system)">Dynamo</a> Dynamo is a highly available, proprietary key-value structured storage system that powers parts of Amazon Web Services.</li>
<li><a href="http://aws.amazon.com/s3/">Amazon S3</a> Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.</li>
<li><a href="http://www.persvr.org/">Persevere</a> Persevere helps you rapidly develop data-driven JavaScript-based rich internet applications.</li>
<li><a href="http://code.google.com/p/redis/">Redis</a> Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets.</li>
<li><a href="http://neo4j.org/">Neo4j</a> Neo4j is a graph database. It is an embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables.</li>
</ul>

<p>Special thanks to <a href="http://twitter.com/jchris">@jchris</a> for the awesome CouchDB theme song!</p>
<p>The post <a href="http://thechangelog.com/episode-0-1-8-nosql-smackdown/">Episode 0.1.8 &#8211; NoSQL Smackdown!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-1-8-nosql-smackdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.buzzsprout.com/105/3382-episode-0-1-8-nosql-smackdown.mp3" length="103" type="audio/mpeg" />
		</item>
		<item>
		<title>NoRM &#8211; Bringing MongoDB to .NET, LINQ, and Mono</title>
		<link>http://thechangelog.com/norm-bringing-mongodb-to-net-linq-and-mono/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=norm-bringing-mongodb-to-net-linq-and-mono</link>
		<comments>http://thechangelog.com/norm-bringing-mongodb-to-net-linq-and-mono/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 15:19:13 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/norm-bringing-mongodb-to-net-linq-and-mono/</guid>
		<description><![CDATA[<p>Just because you&#8217;re slinging C# doesn&#8217;t mean that Microsoft SQL Server is the only database in town, you know. Want to play with MongoDB? Then give NoRM from Andrew Theken a look. NoRM aims to: Wrap the standard MongoDB operations in a strongly-typed interface Provide ultra fast serialization of BSON to .NET CLR types and [...]</p><p>The post <a href="http://thechangelog.com/norm-bringing-mongodb-to-net-linq-and-mono/">NoRM &#8211; Bringing MongoDB to .NET, LINQ, and Mono</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Just because you&#8217;re slinging C# doesn&#8217;t mean that Microsoft SQL Server is the only database in town, you know. Want to play with <a href="http://mongodb.org">MongoDB</a>? Then give NoRM from <a href="http://www.andrewtheken.com/">Andrew Theken</a> a look. <a href="http://github.com/atheken/NoRM">NoRM</a> aims to:</p>

<ul><li>Wrap the standard MongoDB operations in a strongly-typed interface</li>
<li>Provide ultra fast serialization of <a href="http://bsonspec.org/">BSON</a> to .NET CLR types and back</li>
<li>LINQ-to-Mongo support</li>
<li><a href="http://mono-project.com/Main_Page">Mono</a> compatability </li>
</ul>

<p>A quick code example from the <a href="http://wiki.github.com/atheken/NoRM/">Wiki</a>:</p>

<pre><code>//open collection
var coll = (new MongoServer()).GetDatabase("Northwind")
                  .GetCollection&lt;Product&gt;();
//create a new object to be added to the collection
var obj = new Product();
obj._id = BSONOID.NewOID();
obj.Title = "Shoes";
//save the object
coll.Insert(obj);
//find the object
var obj2 = coll.FindOne(new { _id = obj._id}).First();
</code></pre>

<p>Glad to see <a href="http://wiki.answers.com/Q/Who_is_the_owner_of_north_wind_traders">Northwind Traders</a> has upgraded to MongoDB&#8230;</p>

<p>[<a href="http://github.com/atheken/NoRM">Source on GitHub</a>]</p>
<p>The post <a href="http://thechangelog.com/norm-bringing-mongodb-to-net-linq-and-mono/">NoRM &#8211; Bringing MongoDB to .NET, LINQ, and Mono</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/norm-bringing-mongodb-to-net-linq-and-mono/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episode 0.1.4 &#8211; Andy Gross and Sean Cribbs on Riak</title>
		<link>http://thechangelog.com/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-1-4-andy-gross-and-sean-cribbs-on-riak</link>
		<comments>http://thechangelog.com/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 23:35:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak/</guid>
		<description><![CDATA[<p>Adam and Wynn caught up with Andy Gross from Basho and Sean Cribbs, a freelance Ruby developer, to discuss Riak, the new Erlang-based NoSQL store and Ripple, Sean&#8217;s new Ruby wrapper for Riak. Items mentioned in the show: Ripple New Ruby wrapper for Riak Link walking in Riak RadiantCMS Ruby-powered Content Management System</p><p>The post <a href="http://thechangelog.com/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak/">Episode 0.1.4 &#8211; Andy Gross and Sean Cribbs on Riak</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam and Wynn caught up with <a href="http://twitter.com/argv0">Andy Gross</a> from <a href="http://basho.com">Basho</a> and <a href="http://seancribbs.com">Sean Cribbs</a>, a freelance Ruby developer, to discuss <a href="http://riak.basho.com">Riak</a>, the new Erlang-based NoSQL store and <a href="http://seancribbs.github.com/ripple/">Ripple</a>, Sean&#8217;s new Ruby wrapper for Riak.</p>

<audio src="http://www.buzzsprout.com/105/2703-episode-0-1-4-andy-gross-and-sean-cribbs-on-riak.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p>

<ul><li><a href="http://thechangelog.com/post/383049531/ripple-ruby-client-for-riak">Ripple</a> New Ruby wrapper for Riak</li>
<li><a href="http://seancribbs.com/tech/2010/02/06/why-riak-should-power-your-next-rails-app">Link walking in Riak</a></li>
<li><a href="http://radiantcms.org">RadiantCMS</a> Ruby-powered Content Management System</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak/">Episode 0.1.4 &#8211; Andy Gross and Sean Cribbs on Riak</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-1-4-andy-gross-and-sean-cribbs-on-riak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.buzzsprout.com/105/2703-episode-0-1-4-andy-gross-and-sean-cribbs-on-riak.mp3" length="103" type="audio/mpeg" />
		</item>
		<item>
		<title>Fiber: A simple PHP interface to CouchDB</title>
		<link>http://thechangelog.com/fiber-php-interface-to-couchdb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fiber-php-interface-to-couchdb</link>
		<comments>http://thechangelog.com/fiber-php-interface-to-couchdb/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 04:46:07 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/fiber-php-interface-to-couchdb/</guid>
		<description><![CDATA[<p>Fiber from Luis Gomez is a simple way to add CouchDB storage to your PHP app. Given a User class that extends a Fiber Document: $user = User::find('john'); $user-&#62;email = "john@example.com"; $user-&#62;city = "San Francisco"; $user-&#62;save(); Fiber also includes some nifty chaining: $user-&#62;set( array( "email" =&#62; "peter@example.com", "city" =&#62; "Caracas" ) )-&#62;save(); Check out the [...]</p><p>The post <a href="http://thechangelog.com/fiber-php-interface-to-couchdb/">Fiber: A simple PHP interface to CouchDB</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Fiber from <a href="http://twitter.com/luisgo">Luis Gomez</a> is a simple way to add <a href="http://couchdb.apache.org/">CouchDB</a> storage to your PHP app.</p>

<p>Given a User class that extends a Fiber Document:</p>

<pre><code>$user = User::find('john');
$user-&gt;email = "john@example.com";
$user-&gt;city = "San Francisco";
$user-&gt;save();
</code></pre>

<p>Fiber also includes some nifty chaining:</p>

<pre><code>$user-&gt;set( array( "email" =&gt; "peter@example.com", "city" =&gt; "Caracas" ) )-&gt;save();
</code></pre>

<p>Check out the <a href="http://github.com/lgomez/fiber/blob/master/example/example.php">examples</a> in the source.</p>

<p>[<a href="http://github.com/lgomez/fiber">Source on GitHub</a>]</p>
<p>The post <a href="http://thechangelog.com/fiber-php-interface-to-couchdb/">Fiber: A simple PHP interface to CouchDB</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/fiber-php-interface-to-couchdb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ripple &#8211; Ruby client for Riak</title>
		<link>http://thechangelog.com/ripple-ruby-client-for-riak/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ripple-ruby-client-for-riak</link>
		<comments>http://thechangelog.com/ripple-ruby-client-for-riak/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 04:01:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[basho]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RubyGems]]></category>
		<category><![CDATA[wrappers]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/ripple-ruby-client-for-riak/</guid>
		<description><![CDATA[<p>Are you a Rubyist and want to play with Riak, the sweet new NoSQL distributed database we featured earlier? During our interview for upcoming Episode 0.1.4, Sean Cribbs gave us a scoop. Introducing Ripple, a hot new Ruby client for Riak. An example from the README require 'riak' # Create a client interface client = [...]</p><p>The post <a href="http://thechangelog.com/ripple-ruby-client-for-riak/">ripple &#8211; Ruby client for Riak</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Are you a Rubyist and want to play with <a href="http://riak.basho.com">Riak</a>, the sweet new NoSQL distributed database we <a href="http://thechangelog.com/post/382278264/riak-high-performance-document-store-built-on-json-and-r">featured earlier</a>? During our interview for upcoming Episode 0.1.4, <a href="http://seancribbs.com">Sean Cribbs</a> gave us a scoop. Introducing <a href="http://github.com/seancribbs/ripple">Ripple</a>, a hot new Ruby client for Riak.</p>

<h4>An example from the <a href="http://github.com/seancribbs/ripple#readme">README</a></h4>

<pre><code>require 'riak'

# Create a client interface
client = Riak::Client.new

# Retrieve a bucket
bucket = client.bucket("doc")  # a Riak::Bucket

# Get an object from the bucket
object = bucket.get("index.html")   # a Riak::RObject

# Change the object's data and save
object.data = "Hello, world!"
object.store
</code></pre>

<p>Still want more Riak? Stay tuned. Episode 0.1.4 will rock!</p>

<p>[<a href="http://github.com/seancribbs/ripple">Source on GitHub</a>] [<a href="http://seancribbs.github.com/ripple/">Homepage</a>] [<a href="http://seancribbs.com/tech/2010/02/10/introducing-ripple-0-5-you-got-your-riak-in-my-ruby/">Backstory</a>]</p>
<p>The post <a href="http://thechangelog.com/ripple-ruby-client-for-riak/">ripple &#8211; Ruby client for Riak</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/ripple-ruby-client-for-riak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>riak &#8211; high performance document store built on JSON and REST</title>
		<link>http://thechangelog.com/riak-high-performance-document-store-built-on-json-and-r/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=riak-high-performance-document-store-built-on-json-and-r</link>
		<comments>http://thechangelog.com/riak-high-performance-document-store-built-on-json-and-r/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 19:49:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/riak-high-performance-document-store-built-on-json-and-r/</guid>
		<description><![CDATA[<p>Riak, REE-ahk, combines the power of Erlang with the ubiquity of JSON to deliver a highly scalable document store over REST. Hold on CouchDB fans, before you pounce, you haven&#8217;t heard this one before. Master-less replication Riak is architected for master-less replication from the GET-go. All nodes participate equally in the replication so scaling horizontally [...]</p><p>The post <a href="http://thechangelog.com/riak-high-performance-document-store-built-on-json-and-r/">riak &#8211; high performance document store built on JSON and REST</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a style="float:right;margin: 0 0 10px 10px" href="http://riak.basho.com"><img src="http://riak.basho.com/images/riaklogo_clear.png" alt="riak" /></a>
<a href="http://riak.basho.com">Riak</a>, <em>REE-ahk</em>, combines the power of <a href="http://erlang.org/">Erlang</a> with the ubiquity of JSON to deliver a highly scalable document store over REST. Hold on <a href="http://couchdb.apache.org/">CouchDB</a> fans, before you pounce, you haven&#8217;t heard this one before.</p>

<h4>Master-less replication</h4>

<p>Riak is architected for master-less replication from the GET-go. All nodes participate equally in the replication so scaling horizontally means just adding new servers to join the party.</p>

<h4>Links for powerful object graphs</h4>

<p>Riak supports <em>link-walking</em> which is far more powerful than traditional relational DB joins. As <a href="http://seancribbs.com/tech/2010/02/06/why-riak-should-power-your-next-rails-app/">Sean Cribbs</a> explains:</p>

<blockquote>
  <p>Every datum stored in Riak can have one-way relationships to other data via the Link HTTP header. In the canonical example, you know the key of a band that you have stored in the “artists” bucket (Riak buckets are like database tables or S3 buckets). If that artist is linked to its albums, which are in turn linked to the tracks on the albums, you can find all of the tracks produced in a single request. As I’ll describe in the next section, this is much less painful than a JOIN in SQL because each item is operated on independently, rather than a table at a time. Here’s what that query would look like:</p>
</blockquote>

<pre><code>GET /raw/artists/TheBeatles/albums,_,_/tracks,_,1
</code></pre>

<h4>More powerful Map/Reduce</h4>

<p>Map/Reduce works a bit differently in Riak. Riak&#8217;s Map function expects a list of keys on which it should run. You can of course pass every key in your bucket, but doing Map in this way allows Map to be run on the node where the data is actually stored.</p>

<p>Riak ships with <a href="http://riak.basho.com/programming.html">libraries for Python, Ruby, Java, Erlang, and even JavaScript</a>. Want to know more? Stay tuned. Riak will be the focus of an upcoming episode of The Changelog.</p>

<p>[<a href="http://hg.basho.com/riak/wiki/Home">Source on BitBucket</a>] [<a href="http://riak.basho.com">Homepage</a>] [<a href="http://riak.basho.com/nyc-nosql/">Brian Fink&#8217;s NYC-NoSQL talk</a>]</p>
<p>The post <a href="http://thechangelog.com/riak-high-performance-document-store-built-on-json-and-r/">riak &#8211; high performance document store built on JSON and REST</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/riak-high-performance-document-store-built-on-json-and-r/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>neo4jr-social: REST interface for Neo4j</title>
		<link>http://thechangelog.com/neo4jr-social-rest-interface-for-neo4j/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=neo4jr-social-rest-interface-for-neo4j</link>
		<comments>http://thechangelog.com/neo4jr-social-rest-interface-for-neo4j/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 03:54:57 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/neo4jr-social-rest-interface-for-neo4j/</guid>
		<description><![CDATA[<p>Need to talk to Neo4j, the popular Java NoSQL database but no habla Java? No worries, @mdeiters has your back with Neo4jr-Social: Neo4jr-Social is a self contained HTTP REST + JSON interface to the graph database Neo4j. Neo4jr-Social supports simple dynamic node creation, building relationships between nodes and also includes a few common social networking [...]</p><p>The post <a href="http://thechangelog.com/neo4jr-social-rest-interface-for-neo4j/">neo4jr-social: REST interface for Neo4j</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Need to talk to <a href="http://neo4j.org/">Neo4j</a>, the popular Java NoSQL database but no habla Java? No worries, <a href="http://github.com/mdeiters">@mdeiters</a> has your back with <a href="http://github.com/mdeiters/neo4jr-social">Neo4jr-Social</a>:</p>

<blockquote>
  <p>Neo4jr-Social is a self contained HTTP REST + JSON interface to the graph database Neo4j. Neo4jr-Social supports simple dynamic node creation, building relationships between nodes and also includes a few common social networking queries out of the box (i.e. linkedin degrees of seperation and facebook friend suggestion) with more to come.</p>
</blockquote>

<p>[<a href="http://github.com/mdeiters/neo4jr-social">Source on GitHub</a>] [<a href="http://wiki.github.com/mdeiters/neo4jr-social/api-overview">API docs</a>]</p>
<p>The post <a href="http://thechangelog.com/neo4jr-social-rest-interface-for-neo4j/">neo4jr-social: REST interface for Neo4j</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/neo4jr-social-rest-interface-for-neo4j/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Friendly: NoSQL with MySQL in Ruby</title>
		<link>http://thechangelog.com/friendly-nosql-with-mysql-in-ruby/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=friendly-nosql-with-mysql-in-ruby</link>
		<comments>http://thechangelog.com/friendly-nosql-with-mysql-in-ruby/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 06:43:00 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[document-oriented]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[NoSQL]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/friendly-nosql-with-mysql-in-ruby/</guid>
		<description><![CDATA[<p>Friendly lets you turn MySQL into a document-oriented database. If you are forced to deploy to MySQL, but still want the flexibility of schema-less database systems like MongoDB, this could be a perfect fit for your project. [Source on GitHub] [Homepage]</p><p>The post <a href="http://thechangelog.com/friendly-nosql-with-mysql-in-ruby/">Friendly: NoSQL with MySQL in Ruby</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Friendly lets you turn MySQL into a document-oriented database. If you are forced to deploy to MySQL, but still want the flexibility of schema-less database systems like MongoDB, this could be a perfect fit for your project.</p>

<p>[<a href="http://github.com/jamesgolick/friendly">Source on GitHub</a>] [<a href="http://friendlyorm.com/">Homepage</a>]</p>
<p>The post <a href="http://thechangelog.com/friendly-nosql-with-mysql-in-ruby/">Friendly: NoSQL with MySQL in Ruby</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/friendly-nosql-with-mysql-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episode 0.0.7 &#8211; Mike Dirolf from 10gen and MongoDB</title>
		<link>http://thechangelog.com/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-0-7-mike-dirolf-from-10gen-and-mongodb</link>
		<comments>http://thechangelog.com/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 15:38:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb/</guid>
		<description><![CDATA[<p>Adam and Wynn spoke with Mike Dirolf from 10gen about their fast-growing MongoDB project. Mike gave us insight on how MongoDB came about, design decisions, and the future of this cool NoSQL server. Items mentioned in the show Google&#8217;s V8 project Mongo&#8217;s new Map/Reduce features Mongo&#8217;s BSON storage format MongoMapper Ruby ORM from John Nunemaker [...]</p><p>The post <a href="http://thechangelog.com/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb/">Episode 0.0.7 &#8211; Mike Dirolf from 10gen and MongoDB</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam and Wynn spoke with <a href="http://twitter.com/mdirolf">Mike Dirolf</a> from <a href="http://10gen.com">10gen</a> about their fast-growing <a href="http://mongodb.org">MongoDB</a> project. Mike gave us insight on how MongoDB came about, design decisions, and the future of this cool NoSQL server.</p>

<audio src="http://www.buzzsprout.com/105/1959-episode-0-0-7-mike-dirolf-from-10gen-and-mongodb.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show</p>

<ul><li>Google&#8217;s <a href="http://code.google.com/p/v8/">V8 project</a></li>
<li>Mongo&#8217;s new <a href="http://www.mongodb.org/display/DOCS/MapReduce">Map/Reduce features</a></li>
<li>Mongo&#8217;s <a href="http://www.mongodb.org/display/DOCS/BSON">BSON storage format</a></li>
<li><a href="http://github.com/jnunemaker/mongomapper">MongoMapper</a> Ruby ORM from <a href="http://twitter.com/jnunemaker">John Nunemaker</a></li>
<li><a href="http://bytebucket.org/namlook/mongokit/wiki/html/introduction.html">MongoKit</a> Python ORM from <a href="http://twitter.com/namlook">@namlook</a></li>
<li><a href="http://merciless.sourceforge.net/tour.html">Ming</a> from SourceForge</li>
<li><a href="http://mongohq.com">MongoHQ</a> &#8211; MongoDB hosting</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb/">Episode 0.0.7 &#8211; Mike Dirolf from 10gen and MongoDB</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-0-7-mike-dirolf-from-10gen-and-mongodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.buzzsprout.com/105/1959-episode-0-0-7-mike-dirolf-from-10gen-and-mongodb.mp3" length="103" type="audio/mpeg" />
		</item>
	</channel>
</rss>
