Hi Andrey,

  I use Distel[1] (Distributed emacs lisp for Erlang), a set of emacs 
extensions that create a full development environment for Erlang. It connects 
to a running node so one gets full access to the syntax_tools and source code 
of Erlang, all at run time. As this brief white paper points out it goes 
further than typical elisp hacks as it imports the Erlang distributed model 
into emacs. I keep hoping to find some time to push it a little further and 
provide better support for working with BigCouch, our clustered CouchDB at 
Cloudant.

  I keep up my own fork of it as there aren't too many of us out there and I 
needed to fix a few things. I also include in that project some tweaks to the 
Erlang mode that ships with Erlang to accommodate the CouchDB format 
conventions. It provides a full symbolic debugging environment. Though it's 
useful and I think I've found a few CouchDB bugs with it, given the nature of 
OTP programming it's a little harder when you have breakpoints that hit 50 
processes. It was great for stepping thru the btree code.

  The most useful features are the navigation (M-. M-,) and who_calls (C-c C-d 
w) The lack of use of who_calls I believe is the major reason we often discover 
dead code that's been there forever. As an aside the use of type specs and 
dialyzer go a long way towards finding errors at compile time.

Regards,

Bob

[1] https://github.com/bdionne/distel/raw/master/doc/gorrie02distel.pdf
[2] https://github.com/bdionne/distel

On Apr 28, 2011, at 9:03 AM, Andrey Somov wrote:

> Hi all,
> in order to understand how CouchDB works I want be able to run the
> application under debugger. Unfortunately it does not look like an easy
> task.
> The information provided on the wiiki (
> http://wiki.apache.org/couchdb/Running%20CouchDB%20in%20Dev%20Mode) may be
> enough for a
> professional Erlang developer but it is not enough for anyone who learns
> Erlang together with CouchDB.
> I could not find any resource which gives step-by-step instructions on how
> to organise an effective development environment for CouchDB.
> 
> Can someone point me to such a guide/tutorial/manual/screencast ?
> 
> Thanks,
> Andrey

Reply via email to