<p dir="ltr">* An SSH port forward really is a better option. IPython Notebook is a remote shell with all of the privileges of the user its run as.<br>
* PyCharm has notebook editing support:  <a href="https://www.jetbrains.com/pycharm/help/ipython-notebook-support.html">https://www.jetbrains.com/pycharm/help/ipython-notebook-support.html</a></p>
<div class="gmail_quote">On Mar 4, 2015 7:58 AM, "Damien Drix" <<a href="mailto:damien.drix@gmail.com">damien.drix@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The IPython notebook has changed the way I work. Literate programming,<br>the merging of experiment scripts and experiment reports into a single<br>document, and countless other productivity gains: tweaking matplotlib<br>graphs interactively, easy parallelism, etc. It is quite awesome!<br><br>Could it be improved? It certainly can. Here are the two points I find<br>most prominent:<br>- After one has gotten used to SublimeText & co, CodeMirror just hurts.<br>- The notebook server has huge potential for remote work, but this<br>potential is partly unexploitable because of some aspects of the<br>client/server architecture.<br><br>Let me explain the latter point. I have a fairly beefy desktop machine in<br>my office, but I'm often working from other locations. I'd like to be<br>able to open a notebook remotely on my laptop, edit it, start some long-<br>running computations, close my laptop, go to lunch, and come back to it<br>in the afternoon to see the results.<br><br>Right now, it... kind of works. But the issue is that since the execution<br>of cells is orchestrated by client-side javascript, at most one cell will<br>be executed if I close the client. The results are there in the kernel<br>namespace, but the outputs are lost -- integrating the outputs into the<br>notebook is also done by client-side scripts. The client also loses track<br>of which cells are still being executed.<br><br>One solution would be to use X forwarding and keep the notebook client<br>running on the desktop machine, but in my case the connection lag makes<br>text editing quite unbearable. I prefer to connect to the notebook server<br>from a local client process.<br><br>Here is the solution I was thinking about:<br><br>- A new frontend app where, instead of embedding a text editor into the<br>notebook, the notebook itself is embedded into a text editor. A number of<br>nice, open-source, SublimeText-class editors are already being developed:<br>Atom, LimeText, LightTable, etc. LightTable has actually done some work<br>on integrating the IPython kernel and displaying results inline. I<br>imagine that it wouldn't be unreasonably hard to turn it into a full<br>notebook client. As a bonus, no more juggling between two editors: use<br>the same for the notebooks and for plain Python scripts!<br><br>- Move the task of supervising cell execution and integrating the outputs<br>into the notebook model from the client to the server, so that notebooks<br>can keep running when the client disconnects.<br><br>- Let the client app refresh its view of the notebook when it reconnects<br>to the server, showing the new outputs and which cells are still running.<br><br>Any thoughts on this? Is it all maybe already happening in the Jupyter<br>project? ;-)<br><br>Best,<br>Damien</div>
<br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
<br></blockquote></div>