Hello everyone,<br>   I have sent a new pull request for this issue which is at [0].<br>I have explained most of the details corresponding to the<br>pull request in the description there. This patch enables us<br>to connect a new notebook to an existing kernel, irrespective<br>

of what type of kernel it is. <br><br>Before I go further into the details, my apologies for directly<br>sending in a pull request without discussing any design or<br>details of this thing with you guys. It was more of an adhoc<br>

thing which arose from my frustration of not being able to<br>do this. This is just some code dump that I have put yesterday<br>night since I had a compelling need to get this working before<br>going to sleep :P<br><br>So for now this implemented by adding a new GET RequestHandlers<br>

for the /kernels/&lt;kernel_id&gt; which has been modified to look for<br>either for Security key-like UUID4 pattern kernel ID or the<br>kernel-&lt;PID&gt;.json pattern file name. Upon supplying the latter<br>it calls the start_kernel method of the Notebook&#39;s MappingKernelManager<br>

class with the connection_file argument and the MultiKernelManager<br>which is a super class of the MappingKernelManager has the<br>start_kernel method which looks for the connection_file if supplied<br>and tries to open that kernel. <br>

<br>On the UI side, an additional dialog is plugin to the &quot;New&quot; button.<br>On clicking the &quot;New&quot; button opens a dialog with the optional<br>text field labeled &quot;kernel&quot;. One can either supply the kernel<br>

file in which case the URL /kernels/&lt;connection_file&gt; is opened.<br>This opens a new notebook with the existing kernel. If the kernel<br>text field is left blank and &quot;New&quot; button is clicked a new notebook<br>

will be opened as we have it now. A fresh notebook with a new<br>kernel.<br><br>The implementation on the backend is a bit messy. But this is<br>because of the way the KernelManger and the NotebookApp<br>is implemented itself. I noticed that both qtconsole and the<br>

terminal console both inherit from<br>IPython.frontend.consoleapp.IPythonConsoleApp. This makes<br>a lot of things like what I am trying to do much simpler because<br>all these stuff are already abstracted into that class. I am<br>

not sure why that mixin was not used for the notebook application.<br>Also, I don&#39;t know why, when I execute commands which<br>access variables from other kernels I get the error like at [1]<br>printed on the console where I started the notebook. I don&#39;t<br>

know what it means since I don&#39;t see that happening for<br>both qtconsole or the terminal console.<br><br>What do you guys think about it?<br><br><br>[0] <a href="https://github.com/ipython/ipython/pull/1220">https://github.com/ipython/ipython/pull/1220</a><br clear="all">

[1] <a href="http://paste.pocoo.org/show/528733/">http://paste.pocoo.org/show/528733/</a><br><br>-- <br>Thanks and regards,<br>  Madhusudan.C.S<br><br>Blogs at: <a href="http://www.madhusudancs.info" target="_blank">www.madhusudancs.info</a><br>

My Online Identity: madhusudancs<br>