2012/10/17 Noah Slater

Hey peeps,

Want to contribute, but don’t know where to start, or don’t know Erlang?

I’m pleased to announce that we have a new list for learning Erlang and CouchDB.

The idea here is to provide a friendly, like-minded environment for people who are interested in hacking on Couch to learn some Erlang.

Ask questions, get feedback, learn the codebase, and generally chitchat with other CouchDB folk who are also learning Erlang. (As well as our core hackers who will be around to help you if you get stuck or need guidance!)

Subscribe by sending an email to:

(The mail archives will be up in a few hours.)


— NS

1 note

myNoSQL: Riak Performance of Link Walking vs MapReduce


If you are asked to compare (or you just wonder about) the performance of link walking and map-reduce in Riak keep in mind the following details of how the two mechanism are implemented:

The biggest difference I see is that the link-walk uses an Erlang function where your MapReduce query uses…

1 note

Distributed OTP Applications | Learn You Some Erlang for Great Good!

Although Erlang leaves us with a lot of work to do, it still provided a few solutions. One of these is the concept of distributed OTP applications. Distributed OTP applications, or just distributed applications when in the context of OTP, allow to define takeover and failover mechanisms. We’ll see what that means, how that works, and write a little demo app to go with it.

18 notes

Shancat: Project Euler - Problem #1


If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

I decided to approach this problem in a number of different languages.


var sum = 0; for (i =...

16 notes

Shancat: Tail Call Optimisation


Consider the following function in Erlang that calculates the Nth Fibonacci number.

fib(0) -> 0; %% Base case 0.
fib(1) -> 1; %% Base case 1.
fib(N) when N > 0 -> fib(N - 1) + fib(N - 2).

Now notice how long running



Something important to understand is…

20 notes

Apache CouchDB Is Alive and Kicking

“The reports of my death are greatly exaggerated.” — Mark Twain

In the past days at the end of November 2011, a few news items hit the tech scene that suggested that the Apache CouchDB project is done for.

We, the Apache CouchDB team, are writing to you today: do not worry, the project is alive and well.

Canonical and Ubuntu One

In 2009 Canonical decided to base the data sync feature of their Ubuntu One project on Apache CouchDB. Its goal was to allow seamless synchro- nisation of personal data between different computers and devices and their cloud hosting service. A use-case that seemed perfect for CouchDB at the time, and we consider that still to be the case.

Individuals from the CouchDB team have worked closely with the dev-elopers at Canonical to help making Ubuntu One a success. At some point in the past, these individuals developed patches to adapt CouchDB to certain Ubuntu One use cases. These patches diverged from the main CouchDB code base.

Over time, it became harder and harder to reconcile these changes with the main CouchDB code base, so fixing bugs and rolling out new features from more recent CouchDB release took a lot more time and energy.

At some point in the near past, we presume, Canonical decided to not pursue this any further. And we respect that decision and we wish them best with their development of their new U1DB, which is a database- agnostic API that takes after CouchDB’s API, but is tied closer to their particular feature set.

We’d like to thank Canonical for officially endorsing this part of the message.

“The company behind CouchDB”

During the development of Ubuntu One, Cannonical worked with Couchbase, who happen to employ some of CouchDB’s committers. In a recent an- nouncement, they erroneously described Couchbase as the company behind CouchDB. We’d like the set the record straight by saying that this isn’t the case. CouchDB is an Apache Software Foundation project and has no corporate sponsor.

We are fortunate enough to have a number of companies who employ our committers or sponsor individual people to work on the project. These people, however, contribute to the project as individuals, regardless of their involvement with Cloudant, Couchbase, Enki Multimedia, Iris Couch, or any other corporate entity.

The Future

Apache CouchDB will continue to build great database technology and release stable, mature and trustworthy releases for our developers to build great applications on.

We want to thank everybody for their support and look forward to a great future!

On behalf of the The Apache CouchDB Project Management Committee,

Jan Lehnardt, Chairman

(Source: nosql)

couchdb couchapp + opensuse12.1

for the couch itself I used this repo

  zypper ar\

for erlang that

    zypper ar\

The couchapp installation works as told in the README on a fresh installed opensuse 12.1:

 Couchapp requires Python 2.5x or sup. To install couchapp using
  easy_install you must make sure you have a recent version of distribute

$ curl -O
$ sudo python
$ easy_install pip

  To install or upgrade to the latest released version of couchapp::

$ pip install couchapp

4 minutes, That’s all, That’s it!

THX 4 all the work 2 the relaxers, couchappers and repomen

Why Functional: One Reason


Why functional is better? So many reasons, one comes here: Programming languages are not made for computers, they are for humans to formulate generic solutions computers can solve faster in the details. The imperative style formulates the steps the computer has to follow, the functional style formulates the generic solution as such. Imperative style wants you to act like a machine, functional style allows you to think like a human.


NoSQL: Couchconf in Berlin -

NoSQL Couchconf in Berlin

Couchbase veranstaltet am 7. November 2011 die Couchconf in Berlin. Die Konferenz richtet sich an Entwickler, die tiefen Einblick in die freie NoSQL-Datenbank CouchDB gewinnen wollen.

Die Couchconf am 7. November 2011 in Berlin soll Entwicklern nicht nur einen Einblick in die Technik hinter der NoSQL-Datenbank CouchDB gewähren, sondern auch darlegen, wo die Entwicklung von CouchDB hingeht. Die CouchDB-Macher wollen vor allem aufzeigen, wie sich CouchDB in Webapplikationen und mobilen Apps einsetzen lässt.

(Source: 2garryn)

2 notes

Help CouchDB Break the C10K Barrier


Over the weekend, I was experimenting with CouchDB to see if it can pass the C10K barrier. Some of the performance optimizations I made along the way are really OS-level optimizations that affect MochiWeb (erlang web server) and fairly well documented in many blogs. This one by @metabrew in particular is a pretty good read, since it focuses on Erlang and MochiWeb. While I am a performance junkie, I am not an Erlang hacker. So this is a call for help to the CouchDB hackers for recommendations on scaling out CouchDB.

The initial tweaks made by the guys, took CouchDB from under 1000 concurrent users to around 2300 concurrent users. There’s still a long way to 10k concurrent users and they’d appreciate your help.

Original title and link: Help CouchDB Break the C10K Barrier (NoSQL database©myNoSQL)

8 notes

Tcp server in erlang


I put in github, in open source our non-blocking tcp server written in Erlang language in OTP style.

17 notes

Jiffy vs mochijson2 vs erlang-amf vs eamf


Made simple performance test and got following times for Jiffy, Mochijson2, erlang-amf, eamf (in such order, normalized by Jiffy):

  • Encoding: 1.0, 0.77, 4.12, 4.54
  • Decoding: 1.0, 2.86, 2.68, 5.57
16 notes