View Single Post
Posts: 1,248 | Thanked: 3,824 times | Joined on May 2011 @ Brazil
IPython 0.13.1 Notebook running on Nokia N9/N950 can run as server and be used by any web client on many devices : PC's, Android devices, Maemo 5/Nokia N900 smartphone, etc. It works very well.

As Nokia N9/N950 has WiFi hotspot, no external WiFi network is needed, just connect the web client to the WiFi ad-hoc created by N9/N950. And IPython Notebook 0.13.1 on MeeGo Harmattan includes MathJax locally installed, so there is no external Internet traffic to load MathJax files.

Setting up the IPython Notebook server on Nokia N9/N950

See the IPython official docs about "Quick Howto: running a public notebook server".

A simple configuration on my Nokia N9, using Terminal as user :
$ ipython profile create nbserver
Then edit the notebook configuration file in "/home/user/.ipython/profile_nbserver/", I have only changed the following lines :
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:<put-here-the-hashed-password>'
Where the password is optional, it is hashed by running in IPython terminal :
In[1]: from IPython.lib import passwd
In[2]: passwd()
Then copy the hashed password to the line "c.NotebookApp.password" cited above. The password is sent by the web browser without encryption, to change this use SSL security and signed certificate.
To run IPython Notebook server, just type on your Nokia N9/N950 Terminal as user :
$ ipython notebook --profile=nbserver

Using IPython Notebook on a remote web browser

In the web client, just type in the URL field of your web browser
e.g, "". To know the IP address of your Nokia N9/N950 :
- type "/sbin/ifconfig -a" in Terminal, see the "wlan0" section, field "inet addr:";
- or with developer mode on, open "SDK Connectivity -> WLAN";
- or install the "IP Address" widget.
If the hashed password was used, then a login screen will show up, or else the IPython Dashboard. In a IPython Notebook, type "!uname -a" to believe that your Nokia N9/N950 is running the IPython Notebook server !

Some web browsers I have tested in different OS, they need to have websocket (to calculate) and MathJax (to show mathematical expressions) support :
- Maemo 5 / Nokia N900 (see this post with screenshot) :
* Firefox/Fennec v7 works ok, including all keyboard shortcuts. But it is slow, so be patient and follow the hints of using Firefox on 1st post;
* Opera Mobile, Chromium and default web browser have problems either with MathJax, to calculate or edit cells;
- Android (Asus Transformer TF101 with Android 4.0.3 and Asus Eee Dock) :
* Chrome v18 works and is very fast. Shift+Enter or Ctrl+Enter work on "Hacker's Keyboard". On Asus Dock keyboard, all shortcuts work, even "Ctrl+m+" ones;
* Firefox v18, Opera Mobile v12 and Android default web browser have problems either with MathJax, to calculate or edit cells;
- Maemo 4 / Nokia N810 : default web browser, Firefox v1.1, Opera Mobile and Tear have problems to calculate, just Firefox renders MathJax;
- Symbian S60v3 : default web browser and Opera Mobile 10 don't open IPython Dashboard or have problems with MathJax and to calculate.

I haven't tested iOS, BlackBerry OS, etc. But mobile web browsers similar to Firefox, Chrome and Safari and not too old should work partially, at least.

I've tested my Nokia N9 serving IPython Notebook for 2 notebooks, one Android tablet and a Nokia N900, i.e, 4 web clients at once ! Yeah, real multitasking of mobile Linux rocks

Common problems with the above mobile web browsers :
- "Keyboard shortcuts" window can't be moved;
- double tap in a cell doesn't edit it, so type keyboard enter in a physical keyboard, or, to edit some non-code cell, convert the cell to code cell, edit, than change to the previous cell type. It is because double tapping is filtered by touch web browsers to zoom in/out, and double tapping is needed to edit non-code cells.

A Nokia N9/N950 configured with IPython 0.13.1 Notebook, PyLab (NumPy + MatPlotLib) and SymPy 0.7.2 can cope with almost 100% of students and researchers needs in math, physics and enginnering sciences.
Python, C/C++, Qt and CAS developer. For Maemo/MeeGo/Sailfish :
Integral, Derivative, Limit - calculating mathematical integrals, derivatives and limits. SymPy - Computer Algebra System.
MatPlotLib - 2D & 3D plots in Python. IPython - Python interactive shell.
-- My blog about mobile & scientific computing ---
2 Jolla 1, Jolla C, Jolla Tablet. 2 Nokia N9. Nexus 4 with Sailfish. Nokia N900 & N810.

Last edited by rcolistete; 2013-02-09 at 14:04. Reason: Typo fixed

The Following 2 Users Say Thank You to rcolistete For This Useful Post: