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 On Wed, Feb 15, 2017 at 4:43 PM, Kyle Kelley <[email protected]> wrote: > That was an excellent history that I was really happy to read. :) Thank you. > > On Wed, Feb 15, 2017 at 4:40 PM, John Miller <[email protected]> > wrote: >> >> 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 >> >> >> >> >> [JupyterCon] https://conferences.oreilly.com/jupyter/jup-ny >> >> [IPython notebook] >> http://ipython.org/ipython-doc/rel-0.12/interactive/htmlnotebook.html >> >> [github] https://github.com/tkf/emacs-ipython-notebook >> >> [feature complete] >> https://github.com/tkf/emacs-ipython-notebook/wiki/Screenshots >> >> [connect] >> https://github.com/tkf/emacs-ipython-notebook/wiki/Screenshots#connected-buffer >> >> [commit] https://github.com/tkf/comparatist >> >> [MELPA] http://melpa.org/#/ein >> >> [el-get] https://github.com/dimitri/el-get >> >> [layer] http://spacemacs.org/layers/+lang/ipython-notebook/README.html >> >> [documentation] http://millejoh.github.io/emacs-ipython-notebook/ >> >> [issue] https://github.com/millejoh/emacs-ipython-notebook/issues >> >> [Jupyter] http://jupyter.org/about.html >> >> -- >> 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 [email protected]. >> To post to this group, send email to [email protected]. >> 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 [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jupyter/CA%2BtbMaW2ZBEYBq3BPRE6dDaTOhfiyi-h07cpu%2BBtL%2BVEgSnMgA%40mail.gmail.com. > > For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/CANJQusXrhHX9uBG188w0NwxSwSabjXkVXzFa8vjVT5bEfSXTkw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
