[IPython-dev] make ipython work over web
Fernando Perez
fperez.net at gmail.com
Fri Mar 26 22:15:37 EDT 2010
Hey,
On Fri, Mar 26, 2010 at 4:07 PM, Ondrej Certik <ondrej at certik.cz> wrote:
> Hi,
>
> it just occurred to me that it'd be a cool idea to be able to use
> ipython as the Sage/FEMhub notebook, in particular, you would use it
> just like regular ipython in the terminal (only at the beginning you
> would log in) and it would interface the Sage/FEMhub server over some
> API (I am playing with json-rpc api at [0]) and I guess it would
> always create a new worksheet and only allow to add new cells at the
> bottom (which is the way ipython works).
>
> So it will be a nice thin client. I don't know how this fits in the
> recent ipython refactoring. Essentially I am trying to figure out some
> nice API for evaluating cells, doctests ("?"), code inspection ("??"),
> code completion ("TAB"), and it takes some time to always implement
> this in the web notebook directly, so I want to play with this in a
> simple terminal client.
>
> Essentially almost all ipython features could work remotely over some
> API. And the web notebook would then use the exact same interface, so
> it should be easy for people to write the web notebooks.
>
> I guess some of you must have thought about this, but I am just
> posting it here, as I like this idea (so far).
>
> Ondrej
Sure! The recent code Brian and I put up:
http://github.com/ellisonbg/pyzmq/tree/completer
already has even tab-completion implemented, it uses json for the
messaging, so it's precisely that idea. Just go to
http://github.com/ellisonbg/pyzmq/tree/completer/examples/kernel/
run 'kernel' in one window, and as many 'frontend.py' as you want.
They all tab-complete, send input and get output from the same kernel.
We're making sure we build the whole thing with multi-client support
from the get-go, so we don't get bitten later by issues we hadn't
thought of.
We deliberately made this tiny prototype *outside* of ipython to get
the api right and see the design issues in isolation. Once it's
finished, we can build a real system out of it (once we get 0.11 out
:)
Cheers,
f
More information about the IPython-dev
mailing list