IPython notebooks on Nitrous.io

A while ago my computer died, so I decided to look for online ipython notebooks services like wakari to get something done while I get my computer fixed if I ever do. However, their free plan gave me a "no resources available" message. Then I remembered that I had a free account from the awesome service nitrous.io.

I knew ipython notebooks run at a user level and depend on very little other than having python installed. So I decided to try to run them from a nitrous.io box. And as it turns out, it was very easy to get them to work.

On my machine I used the anaconda ipython distribution but it wouldn't fit on the nitrous 3G box I have, so I went with miniconda.

If you want to try nitrous.io, please do so with my referal link. If you do it will give give me some N2O, nitrous virtual credit, which can be used to expand or add boxes. Once you have an account you can share your referal link or invite friends to get more free N2O.

In [4]:
import IPython.display
IPython.display.HTML('<video autoplay="true" loop="true" poster="https://s3.amazonaws.com/assets.action.io/videos/poster.png" preload="true" src="https://s3.amazonaws.com/assets.action.io/videos/ide.mp4"></video>')
Out[4]:

Instructions

wget $MINICONDA_URL # I got the linux 64bit one, run `uname -a` to know for sure which one to choose.
bash $DOWNLOADED_MINICONDA_INSTALL_SCRIPT
conda install ipython

Then run ipython notebook, and each time it crashes because of some missing package, install it with conda install $MISSING_PACKAGE

Next create the file ~/.ipython/profile_default/ipython_notebook_config.py with the contents:

c = get_config()
c.IPKernalApp.pylab = 'inline'
c.NotebookApp.ip = '0.0.0.0' #localhost doesn't work on nitrous
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'PWD_SHA' #instructions below
c.NotebookApp.port = 8888 #choose one from the preview ports
c.NotebookManager.notebook_dir = u'YOUR_NOTEBOOKS_DIR' #optional

Here, PWD_SHA is the hash of your password, which you get by doing the following in the ipython shell:

In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'PWD_SHA'