Escherpad is in private beta! You can register for the beta here: www.escherpad.com/signup. If you want to try it right now, just message us in gitter and tell us your name! This is so that we can make sure that our server would stay up running.
This is a github repo used for discussions and support on Escherpad.
You can:
- ask for new features,
- file bug reports on existing features,
- talk to each other
- hit us with a stick if we break things.
We also have a gitter channel here: link to our channel
We currently expect you to be familiar with the setup of a jupyter server.
Here at Escherpad, we want to make programming and computation more accessible for everybody, and our current technology stack allows us to do that with much ease. For now, since the team is just myself, I will focus on building the core product that power users are happy with. If you would like to help making it easier for learn python, julia, R or other languages for people who just started, you can help out by writing up setup tutorials. I am working on a blogging platform called lesquare
to make sharing and collaborating on those things easier.
Regardless of the authentication scheme (of both jupyter and jupyterHub), the notebook server's api endpoint authorization is currently done using cookies. This is a out-dated authorization method. Modern browser usually prevent setting cookies to a domain different from the one that the webpage is served from (look up CORS). This means a third-party web application like escherpad can not get authorized to the jupyter server you have such as http://localhost:8888
or http://your-uni.edu:8000
as long as the authorization is cookie based.
Supporting third-party clients connected to a self-hosted notebook server is a common usecase lots of us in physics have, so I opened up an issue on jupyter/notebook about this.
You can help by up-voting these github issues to let the jupyter/notebook team know that a more modern token-based authorization method is needed. I will add password protection as soon as json token based authorization is added to the notebook!
It takes only two steps to setup your local jupyter server! Before you go through the setup, here is a short video of what Escherpad's real-time jupyter client is all about:
Now you have watched the video. Let's set it up!
run:
sudo apt-get update
sudo apt-get install python3-dev python3-pip build-essential libzmq3-dev
pip install jupyter
you shouldn't need sudo
below:
pip install jupyter --upgrade
You can also use the --user
option if you do not have admin access.
You can also use anaconda if you do not have a Python installation yet.
to connect the Escherpad third-party jupyter client, you need to configure your jupyter kernel server to allow cross-origin http requests! The way to do this is the following:
-
First setup a profile for IPython:
jupyter notebook --generate-config
this should return us the path of the configuration file that ipython just created. For us it is the one below:
writing default config to: /home/me/.jupyter/jupyter_notebook_config.py
The useful thing is this file here:
~/.jupyter/jupyter_notebook_config.py
-
Now you can go into the created profile config file and add the following lines:
vim ~/.jupyter/jupyter_notebook_config.py
and add
c.NotebookApp.allow_origin = "http://www.escherpad.com" c.NotebookApp.ip = "*" # The following line is optional. # It specifies the port the server runs from. # this has to be a int not a string c.NotebookApp.port = 8000
-
Now you can fire up the jupyter (ipython notebook) server:
jupyter notebook --config=~/.jupyter/jupyter_notebook_config.py
what I noticed is that this sometimes doesn't work on windows machines. Since escherpad is about collaboration, please comment to the side or suggest updates to help correct this!
the default port for jupyter server is
8888
. So if the server you just fired up uses port8000
then it means our configuration file has worked!
to connect one of your escherpad notebooks with your jupyter server, you can look at this visual guide: