Hi,
a week ago, I had a talk on CouchDB at the WebExpo 2010 conference in
Prague (http://webexpo.net/talk/couchdb-database-for-the-web/). The
talk itself was in Czech, but the slides and accompanying app is in
English.
In case anyone would like to reuse anything from my slides or code,
both are freely available:
1/ The presentation SOURCE is downloadable from Github: http://github.com/downloads/karmi/couchdb-showcase/CouchDB.KarelMinarik.WebExpo2010.key
You can preview the slides in PDF on Slideshare: http://www.slideshare.net/karmi/couchdb-a-database-for-the-web
Don't forget that the Keynote.app format is essentially just a folder,
so on a Mac you can do "Show Package Contents" to rip it open, or use
terminal on every platform, in case you'd like to reuse pictures like
this one: http://img.skitch.com/20100930-kme7jwerm6jkkwx4nhrs27kthg.png.
2/ The example code is available at Github: http://github.com/karmi/couchdb-showcase
It's essentially an addressbook-type "couchapp", but without the
CouchApp dependency -- thus avoiding confusion as "do I need Python to
work with Couch" etc. There's a set of Rake tasks to upload some fake
documents and code into the database, demonstrating basic features of
views, as well as _list a _show functions. There's also a Rake task
and simple Ruby class to show off the _changes feed (http://img.skitch.com/20100930-j9ye6p7bdcwri7mx6g4g21cmic.png
).
Of course, I am interested in any opinion or feedback you'd have with
regard either to the presentation or the code examples.
The feedback for Couch from the audience was quite encouraging, by the
way. I have talked to some 10-20 people all interested in *starting*
to use some non-traditional database, all keen to evaluate Couch.
Everyone was impressed by the usual suspects: easy replication, crash-
resistant design, binary attachments, focus on read-time speed, etc.
The conclusion I made, though, is that people were generally quite un-
informed about the relative benefits and shortcomings of different
NoSQL solutions. For example, I have refrained from any extensive
direct comparison to Mongo during the talk, due to bad experiences
with the Git vs. Mercurial debates; in the end Git won anyway and
everything is fine :) But almost nobody knew about "single server
durability" issues and such. Almost nobody understood that there's
quite a difference between JSON an BSON, philosophically and
technically. Etc. People thought Couch and Mongo are "almost the
same", a misunderstanding I took to dispel in hallway converstations.
As you can see from the slides, I have emphasized the "schema-free"
and "HTTP top to bottom" topics. To traditional developers, both were
"interesting", but some people seemed to me quite ignorant as to what
this _really_ means (that the storage is flexible and adapts to "real
world" nicely, that you can reuse your existing knowledge related to
HTTP scaling, etc.) Maybe it would be good to focus even more on these
issues in blog posts and, more importantly, use cases.
Thanks,
Karel
--
http://karmi.cz