

First impressions of the IPython Notebook - rbanffy
http://www.pgbovine.net/ipython-notebook-first-impressions.htm

======
plessthanpt05
The writer's remark:

'''...after prototyping in the notebook, I usually refactor some of my code
into individual Python files so that I can edit more comfortably using my
preferred text editor. I then import those modules [back] in
the...notebook.'''

I found this to be quite a headache myself, going between the iPython notebook
and vim, until I discovered this great Firefox addon called "It's all text"
[not affiliated] -- for those unaware, it lets you pop open a gui editor of
your choice, whereupon you can send the text entered from that back down into
the iPython notebook. Doing it this way you get the best of both worlds.

~~~
jvm
Vimperator also has this by default (^i triggers it I believe). Then you never
have to have the disorientation of leaving a vim environment :-)

~~~
bosie
Awesome, didn't realize it worked in pentadactyl as well.

One small caveat: i use macvim, it opens a new window in macvim, i close/sync
it with :wq. Any idea how I can have it so it jumps back to the firefox window
instead another macvim window?

~~~
Tyr42
I found this on the MacVim wiki.

    
    
        mvim -f --nomru -c "au VimLeave * !open -a Terminal"'
    

for refocusing the terminal after editing a commit message. Think it'll work
fine if you change Terminal to Firefox. The --nomru is to make sure the file
isn't added to the recently edited files list, which is also helpful.

~~~
bosie
It does, thank you. For others, this is my solution for now:

set editor='mvim --nomru -f +<line> +"sil! call cursor(0, <column>)" <file> -c
"au VimLeave * !open -a Firefox"'

------
baldfat
IPython has been great for me doing statistics with students' assessments.
Though I only deal with several hundred students I can get pretty quick
results working with IPython.

Personally I like IPython qtconsole. It is basically a terminal with all the
graphics turned on. Not as feature rich as the IPython notebook but it is
faster and cleaner for what I use it for.

------
blutack
SageMath[0] is another alternative, which I personally prefer as it's a bit
more mature.

I also had a bad experience with Enthought EPD which resulted in a weirdly
broken system python.

0: [http://www.sagemath.org/](http://www.sagemath.org/)

~~~
ivoflipse
Then try Anaconda[0], I haven't had any problems with it so far and it
includes IPython and most scientific libraries a Python programmer needs.

0:
[https://store.continuum.io/cshop/anaconda/](https://store.continuum.io/cshop/anaconda/)

~~~
blutack
Cheers, that looks really interesting. I usually use pythonxy[0] nowadays on
operating systems without package managers, but I'll give that a go next time.

0: [https://code.google.com/p/pythonxy/](https://code.google.com/p/pythonxy/)

~~~
ivoflipse
You can actually install it alongside Python(x,y), though I get you don't need
two Python installs. But at least you can experiment with some of Anaconda's
interesting features, without breaking Python(x,y).

------
denzil_correa
Looks great. I can understand what Philip goes through because I do pretty
similar things for my work. I need to try the IPython once to check its
feasibility for my tasks.

------
jchendy
Does anybody have a similar data analysis workflow for languages other than
Python?

~~~
mistercow
Morespecifically, does anybody know of an attempt to do something similar in
JavaScript (and ideally, languages that compile to it)? Having a notebook that
could be entirely handled client side in a browser would be incredible.

~~~
jchendy
What type of work would you do with that? Are there any libraries available
for real data analysis with JavaScript?

~~~
mistercow
There are a few rather immature ones, but you can do a lot more with a
notebook than just data analysis.

I often need to do calculations involving many parameters, and there are three
important considerations I usually have to deal with:

1\. I'm probably going to want to tweak the parameters.

2\. The calculation is going to be difficult to express as a succinct
equation.

3\. I may want to look back over the result later.

Using an ordinary calculator is cumbersome because of 1 and 2, and doesn't
satisfy 3. AN alternative is to use an ordinary interactive shell to put
everything together, which helps with 2, but still makes for a lot of work on
1 and doesn't fix 3.

Writing a whole program to do the calculation is an improvement because it
fixes 1 and 2, and it helps with 3 because I can leave myself lots of
comments. I've found literate CoffeeScript to be very effective here (you can
even turn it into a nice webpage to share your math with others), but there
are still some drawbacks. The results are not interleaved with the code, so
when I look back over it, it's not easy to check my work and debug. The
workflow also leaves a bit to be desired. You can't, for example, quickly play
with a small snippet as you're working through your thoughts.

A notebook, on the other hand, elegantly handles all of these considerations.
I can use markdown to create a nice article for my future self explaining all
of my calculations, have comments, code, and results all next to each other,
and tweak parameters on the fly.

Yet I still find myself using literate CoffeeScript instead. And the main
reason for that is that whenever I use Python, I constantly wish that I was
using CoffeeScript instead.

------
dsizzle
The notebook format looks similar to Mathematica. Using Mathematica, I found
it did indeed solve the problems mentioned in the article (e.g., having to
choose names for graphs), but led to its own problems (e.g., I would organize
graphs by idea, but then lose track of the chronology). Still, used the right
way, it was an improvement. (And of course Mathematica is proprietary and not
free.)

------
sagarjauhari
[http://nbviewer.ipython.org/](http://nbviewer.ipython.org/) comes in handy.

------
plessthanpt05
The essay doesn't touch this issue, but I think it should also be mentioned
that the iPython notebook's ability to issue parallel jobs (particularly
across multiple machines) is really amazing! This was a huge draw for me in
starting to use it.

------
mistercow
The awesomeness of IPython notebooks (and the fact that my wife has been
trying to learn python and primarily uses a Chromebook) was the main reason
that I finally took the plunge and signed up with a cheap VPS.

------
mathattack
I've been looking to get into IPython for a while, and this gave me the nudge
to get on with it.

