[IPython-dev] different kernels - one filename - no metadata ??

William Stein wstein at gmail.com
Sat Jul 12 10:48:15 EDT 2014


Hi,

My understanding is that the IPython notebook server has the ability
to start with various profiles, e.g.,

    ipython notebook --profile julia ...

to start in Julia mode.  It then operates as a Julia notebook, called
IJulia.    Whenever one opens an .ipynb file using this notebook, it
works in Julia mode, etc.

Something seems confusing to me about this whole setup, and I'm
curious whether: (1) this is your design intention, or (2) this is
just a temporary problem that you hope to fix ASAP, or (3) I'm
completely missing the point.    This is causing me confusion in
trying to further integrate IPython with multi-kernel support into
SageMathCloud, in a user friendly way.  I want to make sure to match
my implementation with your intentions so it is the most user
friendly.

Here's my concern.   Suppose a person frequently uses the IPython
notebook on their laptop (say) with several different kernels, called
lets say kernel0, kernel1 and kernel2. Is that person really supposed
to:

   (1) start three separate IPython notebook servers running on three
different ports,

   (2) name all the corresponding notebooks with the same extension,
say "a0.ipynb", "a1.ipynb", "a2.ipynb"?

   (3) when opening "a1.ipynb", how do they know which kernel/server
to use?  Won't all three of the servers list all of the ipynb files?

To me this seems potentially confusing.  First, wouldn't it be less
confusing to have exactly one notebook server (tornado process) that
can handle all profile/kernel types simultaneously, and embed the
choice of profile (and kernel) in the file itself, or in the filename
extension?   Second, how can one tell which kernel to use to open a
given ipynb file?    Obviously our user could make up some conventions
like a0-kernel2.ipynb means "open with kernel2", but that seems error
prone.

In the sage notebook (from 2006), we had a similar problem, and our
solution was that the first line of the file specified the
configuration (so which mode it used).   With SageMathCloud "sage
worksheets" (.sagews), the only way to set a mode is to explicitly
type a command into the worksheet -- so it's very explicit, like I
think maybe IPython notebook 1.x was (?); however, we're considering
using file extensions to specify a default, so foo.smc-r would be an R
worksheet, foo.smc-sage would be a sage worksheet, foo.smc-python3 a
python3 worksheet, foo.smc-gap a gap one, etc.

William

-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org



More information about the IPython-dev mailing list