While developing my top secret project, I have been getting into the fun
stuff in Erlang and Emacs. Connecting to a running instance of my app
from a remote shell wasn't straightforward to me at first, so below is
my documented way of connecting, as well as dropping into the
[[http://www.erlang-fr.org/erlang.org/doc/getting_started/getting_started.html#jcl][Erlang
JCL]] from within an Emacs erlang shell.

1. Start yaws: yaws --daemon -sname appname --conf /path/to/yaws.conf
2. Start emacs, and from within emacs start an Erlang shell with C-c C-z
   (assuming you have [[http://code.google.com/p/distel/][distel]]
   configured).
3. From the Emacs erlang shell, get into Erlang's JCL by typing C-q C-g
   and pressing enter. A \^G will be printed at the prompt, but won't be
   evaluated until you press enter. You should see the familiar JCL
   prompt "User switch command -->".
4. Type 'j' to see current jobs you have running locally, which is
   probably just the current shell (1 {shell,start,[init]}).
5. Type 'r appname@compy' to connect to the remote node identified by
   appname ( from the -sname parameter ) on the computer compy (usually
   whatever hostname returns)
6. Type 'j' to see current jobs, which should list your current shell as
   "1 {shell,start,[init]}", and a second shell "2*
   {appname@compy,shell,start,[]}".
7. Type 'c 2' to connect to the remote shell. You can now run commands
   in the node's shell. You may have to press enter again to bring up a
   shell prompt.

#+BEGIN_EXAMPLE
    james@compy 14:33:34 ~/dev/erlang/app
    > yaws --daemon -sname app --conf config/yaws.conf

    james@compy 14:34:00 ~/dev/erlang/app
    > emacs
#+END_EXAMPLE

#+BEGIN_EXAMPLE
    Eshell V5.7.4  (abort with ^G)
    1> ^G

    User switch command
     --> j
       1* {shell,start,[init]}
     --> r app@compy
     --> j
       1  {shell,start,[init]}
       2* {app@compy,shell,start,[]}
     --> c 2

    1>
#+END_EXAMPLE
