Archive for the ‘CouchDB’ Category

CouchDB from C# - updated

Tuesday, August 5th, 2008

A surprising number of people have asked about this, so I’ve pushed some updates to my thrown-together C# CouchDB client into the repository at Google Code.

They are only minor changes to get it to work with the changes made in CouchDB version 0.8, and also work against the latest trunk version, 0.9. As well as the compatibility changes, the ‘Query’ form now lets you specify an optional reduce function along with the map function.

For the sake of completeness, I’ll repeat what I’ve said elsewhere - the GUI part is not meant as an example of a good GUI, it’s just there as a testbed for the library. Similarly, the library is not a great or comprehensive example of a library, but it’s serving my needs for now at least. Consider it a how-to if nothing else.

New CouchDB build system

Monday, October 1st, 2007

Noah Slater has been very busy upgrading the CouchDB build system and the changes have been merged to the trunk version tonight, so it’s time to update my test box build scripts. This lot replaces the earlier stuff found here

sudo apt-get install libicu36 libicu36-dev libreadline5-dev
sudo apt-get install subversion-tools xsltproc automake libtool
svn -r 305 co http://couchdb.googlecode.com/svn/trunk/ couchdb
cd couchdb
./bootstrap
./configure --with-erlang=/usr/local/lib/erlang
make
sudo make install

Starting up CouchDB is now more straightforward:

couchdb

Tagging - various approaches in CouchDB

Sunday, September 16th, 2007

I finished my last post by raising the issue that there are many ways to approach structuring data in CouchDB. The same applies to the standard RDBMS of course, but in that case the wrongs and rights are clearer even if that’s only because we’ve seen it all before.

On a related note, I get the impression a lot of people are jumping into CouchDB because they don’t like or can’t get their head around the RDBMS. That’s not a great surprise, since in many cases (mostly web apps) the RDBMS is being both misused, and in an application it’s not best suited for in the first place. My advice is this - if you “hate SQL” or “can’t get your head around it”, go back and figure it out, because there’s no doubt that the RDBMS is one of the finest and most well developed tools we have in software today. If you don’t see that, you probably aren’t best placed to make the decision about what kind of database is appropriate to your application, and worse still I predict you’ll end up having the exactly same kind of relationship with CouchDB.

(more…)

CouchDB vs Mnesia vs MySQL

Friday, September 14th, 2007

I’m still playing around with Mnesia and CouchDB as discussed in the previous posts, but one of the purposes of the test project I’m doing at the moment is to be able to compare various approaches. There doesn’t seem much point playing with new and exciting things without making a comparison with more tried and tested ways, which is my justification for importing this data a third time.

(more…)

A CouchDB GUI front end

Wednesday, September 12th, 2007

I decided to hack together a quick GUI front end for CouchDB to help with my tinkering around. Most people will probably groan and stop reading now, because I implemented it in C#/.NET. Although I’m not going to apologise for that, I do feel the need to justify it:

(more…)

More CouchDB

Tuesday, September 11th, 2007

At the end of the my last post I hadn’t managed to get all my test data uploaded to the CouchDB database. It turns out there was not one problem, but two.

(more…)

A quick look at CouchDB

Monday, September 10th, 2007

There’s been a lot of talk about CouchDB lately, some of it in a rather foolish “this heralds the death of the RDBMS” style. A more sensible view is that it’s an interesting database that could be very useful in some circumstances. I’m particularly interested because it seems to use a number of techniques I’ve implemented and developed in my own database engine. Although I am very fond of mine, it wasn’t designed to scale, and as such it doesn’t. Anyway, that’s a topic for another day, so back to CouchDB:

(more…)