[IPython-dev] questions about the notebook interface

Hans Meine hans_meine at gmx.net
Sun Jul 3 12:35:19 EDT 2005


On Tuesday 28 June 2005 17:36, Toni Alatalo wrote:
> > I've thought that XEmacs could be the first environment to target for
> > interactive use, since it already almost has everything we need in its
> > python-mode/ipython combination.  In the meantime, Tsanko can work on
> > the more ambitious GUI-oriented project he applied for.
> fine with me, as emacs is what i always use for programming otherwise too.
> .. looking forward to hearing the GUI ideas too

I just want to stress the part of "the notebook interface" that is of greatest 
importance to me, since most of these discussion did not seem to be concerned 
with it:  The interactive programming aspect.

Actually, I don't care much about the final layouting; the biggest feature of 
a "notebook interface" in my eyes would be that I can incrementally write and 
debug a program, correcting my mistakes and ending up with a "clean history".

Right now, ipython is the best environment for my work, but I have to manually 
extract "good" code fragments.  The most important thing in my eyes would be 
a possibility to edit and re-run my code without *appending* to the history, 
but just correcting and extending the existing "In [xx]: " paragraphs.  That 
would be especially handy in combination with loops, too.

Maybe I should propose developing / collecting proper user stories first, then 
you could decide on their priorities and start creating solutions for 
existing problems (there may well be people focused on layout, which could 
give another user story).

Some short user stories(*):
------------------------------ >8 snip 8< ----------------------------------
I am planning to analyse a multidimensional data structure.  I am writing a 
loop, collecting data but then realize that I need to initialize a variable 
*before* the loop.  In ipython, I can only cancel the current edit, type the 
initialization and fetch all lines from the history (or retype them) 
one-by-one.  What I'd like to be able to do is to just press cursor up, 
insert a line, and continue further down, then execute the whole loop.

I successfully analyzed some data derived from images.  Now I want to change 
some preprocessing parameters and re-run the analysis.  Again, I want to 
insert / change some code at the beginning and re-execute several blocks of 
commands that use the now changed variables.

It would be useful if some sort of dependency graph could be generated.  E.g. 
when I change a "cell" (piece of code) which (re-)assigns variables, all code 
fragments (cells) that depend on these results (use that variable) should be 
marked as "dirty".  Automatic execution of these cells should not be the 
goal, since that could be unwanted by the user, need a long time, and/or 
destroy/overwrite precious results.

For image processing purposes, I want to be able to have image objects that 
result from python expressions shown as embedded images in the notebook.

Similarly, I'd like to have graphs (e.g. from Gnuplot.py) be embedded in the 

A friend of mine wants to be able to write longer Mathematic-like notebooks, 
and needs proper namespacing for chapters/sections, so that variable names 
can be re-used.
------------------------------ >8 snip 8< ----------------------------------

Actually, the xemacs approach seems to be promising to me, I am looking 
forward to further information / results / input.

Ciao, /  /
    /  / ANS

*: DISCLAIMER: I am no professional software engineer, so my notion of "user 
stories" could be a little bit simplified, but hopefully still useful.

More information about the IPython-dev mailing list