[ANN] The Continued Existence of the Emacs IPython Notebook

264 views
Skip to first unread message

John Miller

unread,
Feb 15, 2017, 7:40:14 PM2/15/17
to Project Jupyter
All,

After the recent, exciting announcement of the eminent [JupyterCon], I was somewhat saddened to see no mention of the EIN, or the Emacs IPython Notebook, as an available client to the Jupyter notebook server. Drama queen that I am, I quickly wrote a note to Fernando, who patiently and kindly explained that not many were aware that this project still existed and that perhaps an announcement or note to the main Jupyter list might be warranted. Hence the following, brief history. I also promise to try to not be a drama queen.

Some of you may remember, from back when the Jupyter project was still known as the [IPython notebook], a talented and prolific coder of the name Takafumi Arakaki, or tkf, who created an alternative client to the notebook server's default web browser interface.

This client, which he called the Emacs IPython Notebook (you can still find his project on [github]), or EIN, provided a complete ipython notebook experience in the venerable Emacs editor. Not only was EIN nearly [feature complete] when compared to the browser interface it also provided some useful features for the Python programmer, like allowing one to [connect] Python buffers to a notebook and using jedi for autocompletion in the notebook buffer.

Around March/April of 2014, just as IPython was advancing towards 1.0 and making big changes in the notebook/contents API and the kernel communication protocol, tkf mysteriously stopped pushing commits to his github repository.

I did not know tkf other than from a couple brief conversations. I sincerely hope tkf's story has a happy end (he does appear to still push the occasional [commit]); he is clearly a talented programmer and without him this impressive piece of software would not exist.

This is the point where yours truly enters the story. I had discovered the IPython notebook the previous year and had found it an exteremly useful for analyzing the performance of catalytic process units in the refining industry and for working with Python in general, but being a long-time Emacs user I had somewhat bounced of the web interface. Discovering EIN was a godsend, and it quickly became a mainstay in my set of analytic tools.

Unfortunately the changes in going to v1.0 of the ipython notebook broke EIN, and with tkf apparently out of the picture there did not seem much hope in EIN staying compatible. Considering that I am a father of two with a full-time job that has absolutely nothing to do with programming (and yet I am a long-time Emacs user - it's complicated, don't ask), I can only describe what happened next as an act of complete insanity: I decided to fork tkf's code, dig in and try to keep up with the changes in ipython.

Truthfully, no one was more surprised than I when I was actually able to keep ein working with versions 1.0 and, soon after, 2.0 of IPython. In fact that compatibility, in theory, is still in the code. One, again in theory, should be able to fire up a 1.x or 2.x version of the IPython notebook and connect to it using my fork of EIN. I say in theory, though, as I haven't touched that part of the code in some time and it undoubtedly has suffered some bit rot in the intervening years.

The rest of the story is less interesting. Eventually I managed to convince github and MELPA to treat my repository as the official version of ein. There was some short-lived talk of renaming my fork to 'zwei', but the consensus was that things were confusing enough with the change in ownership and to keep the name as ein.

Currently one can download ein through either [MELPA] or [el-get], and someone has even been kind enough to create a spacemacs [layer] with convenient VIM keybindings for the heathens.

At the moment EIN supports the recent incarnations of Jupyter, v4.3.1, token authentication, _xsrf cookies and all. By the time you read this I may even have pushed some commits that allow one to start and automatically log in to a jupyter notebook server all from Emacs without having to drop into the terminal.

In all, EIN continues to be a viable alternative to the web browser client. It is not 100% feature complete, though, as it notably does not support widgets and quite possibly never will.

I haven't kept close track of who is using EIN, but it has 341 stars on github and 28,175 downloads from MELPA. I know EIN is being used in at least a couple businesses and from what I have heard it tends to be more popular among those with a programming background - scientists and engineers tend to prefer the web client which is not surprising since Emacs is not so much a text editor as it is a Way of (Un)Life.

I encourage anyone who is interested in trying out ein to install it via MELPA or from the spacemacs ipython-notebook layer. There is [documentation], but it is not perfect and I cannot guarantee it is 100% correct. Do not hesitate to open an [issue] on github if you run into troubles, this is a hobby project but I do my best to support it.

If you have made it this far then my sincere thanks for staying patient through my ramblings. As a parting thought I want to express my sincere thanks to Takafumi Arakaki, wherever he may be, and to the [Jupyter] team for their fantastic work in creating this amazing piece of software.


John Miller
















Kyle Kelley

unread,
Feb 15, 2017, 7:43:55 PM2/15/17
to jup...@googlegroups.com
That was an excellent history that I was really happy to read. :) Thank you.

--
You received this message because you are subscribed to the Google Groups "Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jupyter+unsubscribe@googlegroups.com.
To post to this group, send email to jup...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/b02c2297-ae59-4461-adad-646349e7bc14%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Kyle Kelley (@rgbkrklambdaops.com)

Matthias Bussonnier

unread,
Feb 15, 2017, 8:16:20 PM2/15/17
to jup...@googlegroups.com
Thanks, I enjoyed reading it as well.

Hope you have submitted an EIN talk at JupyterCon if you can come. I
think it would be great to have (Disclaimer I'm not in the organizing
committee, this is my personal opinion).

Also I don't know how other feel, but I think it would be worth
turning this into a blog post to blog.jupyter.org to maybe reach a
wider audiance.

Cheers,
--
M
>> email to jupyter+u...@googlegroups.com.
>> To post to this group, send email to jup...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jupyter/b02c2297-ae59-4461-adad-646349e7bc14%40googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
> --
> Kyle Kelley (@rgbkrk; lambdaops.com)
>
> --
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jupyter+u...@googlegroups.com.
> To post to this group, send email to jup...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jupyter/CA%2BtbMaW2ZBEYBq3BPRE6dDaTOhfiyi-h07cpu%2BBtL%2BVEgSnMgA%40mail.gmail.com.

johnpan...@gmail.com

unread,
Feb 15, 2017, 8:48:38 PM2/15/17
to Matthias Bussonnier, jup...@googlegroups.com

I have not, actually, but thank you for the invitation! I will have to give it some thought. I’m not sure I will be able to make it out to New York, though it might make for a good excuse to take the family on some vacation.

 

Upgrading to a blog post sounds exciting, let me know if there are any edits I should make before that happens!

 

 

Regards,

 

John

You received this message because you are subscribed to a topic in the Google Groups "Project Jupyter" group.

To unsubscribe from this topic, visit https://groups.google.com/d/topic/jupyter/TEbi0N4WTJo/unsubscribe.

To unsubscribe from this group and all its topics, send an email to jupyter+u...@googlegroups.com.

To post to this group, send email to jup...@googlegroups.com.

Cynthia Kiser

unread,
Feb 15, 2017, 9:16:00 PM2/15/17
to jup...@googlegroups.com
Fabulous! Thanks for the backstory, the links, and keeping the project going. 


--
Cynthia Kiser
cynthi...@gmail.com

Thomas Kluyver

unread,
Feb 16, 2017, 5:59:14 AM2/16/17
to Project Jupyter
On 16 February 2017 at 00:40, John Miller <johnpan...@gmail.com> wrote:
I can only describe what happened next as an act of complete insanity: I decided to fork tkf's code, dig in and try to keep up with the changes in ipython.

Kudos for doing this, John, and thanks for the history. :-)

Matthias Bussonnier

unread,
Feb 16, 2017, 2:22:25 PM2/16/17
to johnpan...@gmail.com, jup...@googlegroups.com
> Upgrading to a blog post sounds exciting, let me know if there are any edits
> I should make before that happens!
>
I was expecting to have a couple of +1 from other dev. But your mail
seem appreciated enough that I'm going to guess that's ok.

I can create an account for you on our blog. Is current email ok ?
Otherwise mail me privately what email to use.

I'll reread, and we might move it to a collaborative editable document
to discuss a bit before posting.

Thoughs ?

Cheers,
--
M

Sorry for duplicate if any.

Thomas Kluyver

unread,
Feb 16, 2017, 3:02:30 PM2/16/17
to Project Jupyter

On 16 February 2017 at 19:22, Matthias Bussonnier <bussonnie...@gmail.com> wrote:
I was expecting to have a couple of +1 from other dev. But your mail
seem appreciated enough that I'm going to guess that's ok.


Fine by me

Jessica B. Hamrick

unread,
Feb 16, 2017, 3:27:31 PM2/16/17
to Project Jupyter
Thank you for writing this, John! I used to be an avid user of EIN, though stopped using it due to a combination of (1) switching to Sublime and (2) running IPython off of the master branch, which kept causing things to break (this was also in 2014, right around the time tkf seemed to stop developing it). I am super happy to hear that the project is still alive; if I ever need to go back to emacs I will definitely revisit it :-)

I am definitely +1 on a blog post!

Cheers,
Jess


--
You received this message because you are subscribed to the Google Groups "Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jupyter+unsubscribe@googlegroups.com.

To post to this group, send email to jup...@googlegroups.com.

johnpan...@gmail.com

unread,
Feb 16, 2017, 6:44:03 PM2/16/17
to Matthias Bussonnier, jup...@googlegroups.com

My current email is fine for the account and collaboration sounds like a darn good idea to me.

 

Regards,

 

John

 

From: Matthias Bussonnier
Sent: Thursday, February 16, 2017 1:22 PM
To: johnpan...@gmail.com
Cc: jup...@googlegroups.com
Subject: Re: [jupyter] [ANN] The Continued Existence of the EmacsIPythonNotebook

 

> Upgrading to a blog post sounds exciting, let me know if there are any edits

Matthias Bussonnier

unread,
Feb 16, 2017, 9:58:29 PM2/16/17
to John Miller, jup...@googlegroups.com
I've made a shared document, let me know if you need me to invite someone else.

Cheers,
--
M

Fernando Perez

unread,
Feb 17, 2017, 4:09:01 AM2/17/17
to Project Jupyter, johnpan...@gmail.com

On Thu, Feb 16, 2017 at 11:22 AM, Matthias Bussonnier <bussonnie...@gmail.com> wrote:
> Upgrading to a blog post sounds exciting, let me know if there are any edits
> I should make before that happens!
>
I was expecting to have a couple of +1 from other dev. But your mail
seem appreciated enough that I'm going to guess that's ok.

Enthusiastic +1 from me, many thanks for both the history and keeping EIN alive! I also second the suggestion that you submit a JupyterCon presentation proposal.

Cheers

f


--
Fernando Perez (@fperez_org; http://fperez.org)
fperez.net-at-gmail: mailing lists only (I ignore this when swamped!)
fernando.perez-at-berkeley: contact me here for any direct mail

Jason Grout

unread,
Feb 17, 2017, 8:54:36 AM2/17/17
to Project Jupyter, johnpan...@gmail.com
Definitely +1 to this work and giving a talk! I'm going to have to dust off my emacs and give it a try. I've been meaning to give org-mode another try too.

Jason

--
You received this message because you are subscribed to the Google Groups "Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jupyter+u...@googlegroups.com.
To post to this group, send email to jup...@googlegroups.com.

koala

unread,
Mar 9, 2017, 7:41:04 AM3/9/17
to Project Jupyter
Here is another Emacs extension for ipython notebook interactivity - Emacs iPython,


This extension allows developing notebook content inside a TeX or Markdown buffer. 

Lawrence D’Oliveiro

unread,
Jun 10, 2017, 12:21:46 AM6/10/17
to Project Jupyter
On Thursday, February 16, 2017 at 1:40:14 PM UTC+13, John Miller wrote:
Eventually I managed to convince github and MELPA to treat my repository as the official version of ein. There was some short-lived talk of renaming my fork to 'zwei' ...

Where have we heard those puns before....
Reply all
Reply to author
Forward
0 new messages