
Jupyter Notebook 4.2 Released - ssanderson11235
https://blog.jupyter.org/2016/04/15/notebook-4-2/
======
analog31
Jupyter/Python has been game changing for me.

I'm not a commercial software developer, but a scientist working on technology
development. I've been programming for 30+ years.

Jupyter has become my lab notebook. In the past, I always had illegible,
disorganized notebooks, files, and program code, all over the place. A Jupyter
notebook lets me organize all of that stuff in one place, in a narrative
fashion, allowing me to reconstruct what I did, long after I've forgotten the
details. The reasons for open communication of methods and results to the
public, also apply to internal work.

My notebooks become my reports. I've abandoned PowerPoint, and my colleagues,
including managers, don't seem to mind. Seeing the actual work might actually
give them a feeling of involvement, like inviting them into the lab. They're
also a good way of communicating a prototype of a process to the software
development team, when an idea ends up in a product. Even if they don't like
Python, the programmers can read and understand it.

I can actually run some of my data acquisition code directly within Jupyter. A
code cell that spits out an inline graph is practically the default interface
for a lot of this kind of work, so I don't have to build a unique GUI for
every kind of test. This speeds up incremental refinement of an experimental
technique, even if the routines that I write end up in a "straight" Python
program when it's time to let an experiment run for a few hours or days.

Granted, Jupyter won't turn bad programmers into good. Learning good
programming methods is still a gap in the education of scientists.

------
thom
Probably the longest time-to-knowing-what-the-hell-this-thing-actually-is I've
ever seen on HN. Clicked on the link, clicked on a Github link, clicked to the
Github root, clicked on the link to the project's site, clicked on the first
item in the table of contents, got a vague idea what it was.

I feel grumpy and old. :(

~~~
anigbrowl
I know. Open source folks, when you put a 'Home' button in the corner, make it
go to the project home page, not the blog home page. If there's one thing I
can't stand it's a blog post about an update for something that I don't know
what it is, and my patience to click around trying to find out whether it is
something I would be interested in or not is very limited.

I'm glad I did in this case because an open-source equivalent of Mathematica
is a pretty sweet tool, but the site navigation sucks enough that it's likely
limiting your audience a bit.

~~~
dandermotj
Just a heads up: Jupyter Notebook is _not_ an open source alternative to
Mathematica. Originally, Jupyter was iPython notebook, an IDE of sorts for
data science and analysis in Python, by writing code and markdown together in
a more coherent and integrated way. Then they incorporated a host of other
popular open source languages for computational science such as R, Julia, F#,
ect., so that we could use the best tools for their task, all in one document.

~~~
IndianAstronaut
>all in one document.

So it is possible to run both R and Python commands in the same notebook?

~~~
trentnelson
Yeah, there are bridges for converting Python data types to R and vice versa
(Rpy2).

~~~
dandermotj
Feather is a recently released data frame file that both R and Python can
interface with. We have Hadley Whickam and Wes McKinney to thank for it!

------
benatkin
There's also a newer alternative called Zeppelin:

[https://zeppelin.incubator.apache.org](https://zeppelin.incubator.apache.org)

Comparison: [https://www.linkedin.com/pulse/comprehensive-comparison-
jupy...](https://www.linkedin.com/pulse/comprehensive-comparison-jupyter-vs-
zeppelin-hoc-q-phan-mba-)

~~~
nhaliday
Another competitor (with a strong focus on polyglot use):
[http://beakernotebook.com/](http://beakernotebook.com/).

Made by the people at [https://www.twosigma.com/](https://www.twosigma.com/).

~~~
zmmmmm
I love beaker. I spent a week or so trying to force myself to use Jupyter
since others in my team use it, but I bailed out and went back to beaker
eventually - it's got everything Jupyter has but is all round nicer to use.
It's not without it's problems, but neither is Jupyter by a long shot.

edit: fixed a word

~~~
spot
thanks! what problems do you mean? maybe they are fixable :) questions and
feedback are very welcome.

btw, look for a big announcement from beaker next week!
[https://twitter.com/beakernotebook](https://twitter.com/beakernotebook)

~~~
zmmmmm
Hah! We have had the same conversation before - see my other answer here:

[https://news.ycombinator.com/item?id=11507583](https://news.ycombinator.com/item?id=11507583)

But I'll add that I've never been able to set it up satisfactorily for
everyone in my team to use it on a shared server. Shared installs don't seem
to work very easily (I'm sure it's possible and probably easy, but it's very
unclear to me how). It would be awesome if it had a daemon similar to RStudio
where people can just log in with a user id on a server and it forks off an
instance for them.

~~~
spot
sorry i didn't recognize the name. hello again :)

definitely look for the announcement next week for help on this front.

currently the std method would be users to ssh to the shared server and run
their own beaker server with a shell, and then connect to the port/URL that it
prints out. not exactly the easiest UI, but that's something we are working
on...

------
jnpatel
I find Jupyter great for the single-user use case, but I'm often frustrated
with how it "breaks" with version control, when collaborating.

~~~
jre
I think the jupyter devs are aware of this and trying to find a fix. There is
an enhancement proposal on how to get diff to work with notebooks :
[https://github.com/jupyter/enhancement-
proposals/blob/master...](https://github.com/jupyter/enhancement-
proposals/blob/master/notebook-diff/notebook-diff.md)

And I think that's the project that should implement this :
[https://github.com/jupyter/nbdime](https://github.com/jupyter/nbdime)

------
jamesdutc
For some background on the direction of the Jupyter project, check out this
recent talk at PyData Amsterdam
([http://pydata.org/amsterdam2016](http://pydata.org/amsterdam2016)) by Min
Ragan-Kelley & Thomas Kluyver.

They talk about how Jupyter has "evolved from a Python-specific tool to a
general data science tool that supports many different languages."

[https://www.youtube.com/watch?v=T385txAYSt8](https://www.youtube.com/watch?v=T385txAYSt8)

------
e0m
If you use Atom, I would highly recommend looking at
[https://atom.io/packages/hydrogen](https://atom.io/packages/hydrogen) It uses
Jupyter under the hood to do some serious inline magic.

~~~
ced
Is Hydrogen a notebook replacement? The demo makes it look like a fancy REPL.
Does it have section headers, latex support, etc.?

~~~
lisnake
No, Hydrogen is not a jupyter notebook replacement, it cannot open .ipynb
files

------
JesseAldridge
I had my first experience with Jupyter last weekend when I was trying to learn
about document clustering with Python. It seems like a cool idea, but in
practice ended up being kind of annoying:
[https://github.com/brandomr/document_cluster/issues/7](https://github.com/brandomr/document_cluster/issues/7)

~~~
entee
Jupyter is great for prototyping and playing with ideas, essentially its great
it you want persistent data. But after you more or less know what you want and
loading the initial dataset isn't a constant annoyance you're usually better
off in an IDE or other real programming environment.

I use it to ask a whole bunch of exploratory questions about a dataset then
productionize the result in PyCharm (my preference, other ways work great too
:)

~~~
zmmmmm
This is actually my main problem with the whole idea of these "notebooks".
They explicitly encourage exactly the kind of ad hoc coding and practises that
plague a lot of scientific work. It's nearly impossible to practise good
software engineering while inside one of these things. I know the rationale
will be that this is for ad-hoc exploration and the code should be rewritten /
redesigned when it's moved into an app, but just like all prototype code that
has ever been written, that is not what happens.

I would love something that combines this style with support for good software
practices. For example, that let's you seamlessly move snippets of code into
functions, classes, modules, and then create tests for them. RStudio is
actually the closest I have found, which is ironic since as a language R is
horrible for encouraging good software practices.

------
jasongrout
Thanks for the feedback on the announcement blog post. I added a short
description and link to the project home page at the top of the blog post
after reading the feedback here. Thanks!

------
tdaltonc
Every time I try to do some data crunching in a python notebook, I find that I
really miss the variable explorer from spyder.

~~~
aeroevan
You might like Yhat's rodeo:
[https://github.com/yhat/rodeo](https://github.com/yhat/rodeo)

I haven't used it too much, but it looks interesting.

~~~
tdaltonc
I don't care for their python implementation of ggplot, but that looks really
shinny. I will definitely check that out.

------
jxy
It's fun to play with code and try out new ideas in such a rich interactive
environment. When you want to get the work done in production scenario, the
shortcomings of unable to use version control and the overhead of interactive
environment just kill it.

What works is that you get a subset of your data and try to develop some code
to process it and generate a handful of graphs. You can then save the code in
its true text form and edit with your favorite editor, and run it on your real
data.

------
vhost-
While working on a data science team some months ago, these notebooks helped
me build something that explained, in detail and at a high level, the
implementation details of an algorithm to sales and others not familiar with
data science techniques. It was awesome and so easy.

I also used them when we did a capture the flag contest to help explain
visually how a multi time pad vulnerability works.

~~~
vhost-
Here is a link to an html export of the jupyter notebook I made for the many-
time-pad experiment:
[https://kyleterry.com/natas11.html](https://kyleterry.com/natas11.html)

------
enobrev
"The Jupyter Notebook is a web application that allows you to create and share
documents that contain live code, equations, visualizations and explanatory
text. Uses include: data cleaning and transformation, numerical simulation,
statistical modeling, machine learning and much more."

[http://jupyter.org/](http://jupyter.org/)

~~~
KKKKkkkk1
Thanks for explaining what Jupyter is. This is certainly useful since it's
hard to find this information from the original link.

------
jypepin
One of our data analyst had fun drawing all the shots from Kobe during his
whole career. He did everything on jupyter, which I discovered at that moment,
and was mind blown on how well it worked and how powerful it is.

I don't think I would ever use this tool as a seasoned software engineer, but
I can definitely see the power it has for newer people who want to learn, or
simply people like him who know a little bit of code and just wanted to run
it.

Congrats to the team building this tool!

~~~
minimaxir
Your comment implies that using a Jupyter notebook is a programming crutch for
those who are not skilled. That's far from the case; Jupyter notebooks allow
for logical separation of code and output, which is important for
comprehension.

It also allows for reproducibility of results, which is arguably even more
important, especially in the data science case.

~~~
jypepin
sorry, maybe my comment is wrong because of my lack of knowledge about the
tool (I've seen it used 10 minutes) but it's seems like it's a nice UI
replacing what a terminal does, if I'm right. So all I'm saying is, since i'm
confortable using a terminal, and I'm usually already there using vim, etc.,
then it's more convenient for me to test stuff in my terminal than going into
my browser to test in jupyter

~~~
eggie5
no, you miss the point of the notebooks. You use it to tell story.

~~~
StavrosK
As a seasoned software engineer, I use it as a persistent, better-organizable
shell. Even when working on a remote host, I forward its port and work there
rather than open a shell on the remote machine, and I'm someone whose IDE is
vim.

It's just much better when you can see all your functions in one place, edit a
function far back and have the changes propagate to the last command you ran.

~~~
jypepin
makes total sense :)

------
KKKKkkkk1
Anyone knows why Debian/Ubuntu is still on version 2.3? Is it because the
Jupyter devs are all Mac aficionados?

~~~
rafunzi
It's not. You're probably doing it wrong.

[http://jupyter.readthedocs.org/en/latest/install.html#new-
to...](http://jupyter.readthedocs.org/en/latest/install.html#new-to-python-
and-jupyter)

use something like:

>pip install jupyter -U

