<div dir="ltr">Not an IPython dev here, but I have a partial solution that might work for you.<div><br></div><div>I also have a very powerful desktop that I use to run calculations remotely. Instead of X session tunneling, I use port forwarding. Here's an edited excerpt from my .ssh/config file for connecting to my desktop from my laptop while at home:</div><div><div>    </div><div>Host athomenb</div><div>    # The IP address for my desktop on the router</div><div>    HostName 192.168.1.125</div><div>    # Add your username here</div><div>    User my_user_name</div><div>    # Change id_rsa to the name of your key file if you use it</div><div>    IdentityFile ~/.ssh/id_rsa</div><div>    # For the notebook</div><div>    LocalForward 8080 localhost:8080</div><div>    # Optional other stuff</div><div>    Compression no</div></div><div><div>    ForwardX11 yes</div><div>    ForwardX11Trusted yes</div></div><div>    # Add this if you need to connect via a non-standard ssh port</div><div>    #Port 30000</div><div><br></div><div>>From the command line, I can access my home computer as follows:</div><div>>$ ssh athomenb</div><div><br></div><div>From my desktop, I fire up tmux and then Ipython notebook:</div><div>desktop>$ tmux </div><div>desktop:tmux>$ ipython notebook --no-browser --port 8080</div><div><br></div><div>At this point, I can actually use my web browser on my laptop to connect to "Localhost", which is actually forwarding to my remote computer. This is much, much faster than using a remote X window. Connect to this website</div><div><a href="http://localhost:8080/">http://localhost:8080/</a><br></div><div><br></div><div>I can do all of my stuff. If you have something running, just save the notebook and close the window *without* halting. You can also close the IPython file browser. In your ssh session, you can detach from your tmux session without the notebook stopping. ("Ctrl-b d" is the detach command that you have set for tmux.)</div><div>desktop:tmux>$ Ctrl-b d</div><div>desktop>$ exit</div><div>$</div><div><br></div><div>Now, to check on the progress of your calculations, you need to reestablish the ssh connection to your remote machine, if you want, you can reattach to the tmux session as well.</div><div>$ ssh athomenb</div><div>desktop>$ tmux a</div><div>desktop:tmux>$ #Ipython stuff</div><div>Reconnect your local webbroswer to localhost and click on the notebook that's running.</div><div><br></div><div>Sorry. I glossed over a lot of the details here. If this helps, but you need a little more info to get it running, let me know.</div><div><br></div><div>Ryan</div><div>    </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 4, 2015 at 8:57 AM, Damien Drix <span dir="ltr"><<a href="mailto:damien.drix@gmail.com" target="_blank">damien.drix@gmail.com</a>></span> wrote:<br><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><br></div>