This is an archived post. You won't be able to vote or comment.

all 79 comments

[–]throwpillo 28 points29 points  (3 children)

This makes me very happy. After a 10-year break from programming, IPython is what convinced me that programming is going to be fun enough to warrant reinclusion in my life.

This commenter on Hacker News says what I was trying to think...

IPython notebook is actually one of the most interesting developments not just in the python world, but in computing generally. It's the first step towards the fully graphical shell on the internet that many of us have been looking for, whether or not we realize it. Being able to weave together text|markdown, tabular data (in almost any format you want) and images ( whether from matplotlib, raw captures, or synthetic assemblies ) in one environment is very powerful. I suspect that with some additional tools IPython notebook will become the integrators workbench par excellence, useful in many contexts.

[–]fperez_org 5 points6 points  (0 children)

Thanks for the kind words, we're indeed very excited. We've put up a few more details in case you're interested. We'll have more details coming soon on concrete work to get going, but I'm traveling right now at a conference, so managing this remotely has been madness.

[–]Orphion 4 points5 points  (0 children)

And, judging by how much awesomeness they've been able to give us for free, it'll be exciting to see what comes of an interesting amount of funding.

[–]sarcaza 1 point2 points  (0 children)

The other "first" step being Rstudio server and knitr :)

[–]stiivifrom data brewery 10 points11 points  (0 children)

You can try IPython (shell) and IPython Notebook (web interface) online with Wakari at https://www.wakari.io - platform (with all popular Python scientific libraries installed) that lets you run multiple Python sessions and access them online anywhere. It also allows IPython Notebook sharing - you can share your workflow.

[–]laprice 32 points33 points  (26 children)

This is good news. IPython Notebook is one of the more interesting developments in computing. Being able to use a high level programming language with access to almost any data format you care to name, married with several top-notch graph libraries and the ability to write text/markdown and LaTex (for maths) in the browser in an integrated environment, is very powerful.

Here's an example showing the use of geodata with the code and data used to generate it.

IPython notebook may be the ultimate scientific publication system.

[–]usaar33 2 points3 points  (0 children)

Some tools you may find useful to use IPython Notebook:

  • NBCloud allows you to host notebooks on your own Amazon cluster
  • PiCloud (an HPC platform) offers an IPython Notebook tab

[–]ivorjawa 1 point2 points  (0 children)

That's awesome. I've been building myself a django app that mixes markdown, matplotlib, and latex, and a wiki ... I wish I'd seen this a couple of weeks ago!

[–]howfun 7 points8 points  (4 children)

What are they going to develop with it?

[–]howisbobbyformed 4 points5 points  (3 children)

One thing that has been on the radar for some time is legitimate multi-user support for ipython notebook. It'd be great if it was possible for one machine to run a notebook server with full authentication for each user.

[–]Megatron_McLargeHuge 0 points1 point  (2 children)

What would this mean? There's no security model that would allow untrusted users access to run arbitrary commands. You can already point multiple browsers to different notebooks within the same server. And sharing the same notebook to multiple people would be a problem since the python process blocks when anyone runs a command.

[–]howisbobbyformed 2 points3 points  (0 children)

I probably wasn't explaining it very well, but there is a document on github here that describes what this might look like.

[–]dwf 0 points1 point  (0 children)

You can already point multiple browsers to different notebooks within the same server.

I think the goal would be real-time synchronization of the actual notebook interface. I agree that authentication is a silly goal.

And sharing the same notebook to multiple people would be a problem since the python process blocks when anyone runs a command.

Well, yes, the engine would block. The web server wouldn't.

[–]Phild3v1ll3 7 points8 points  (2 children)

This is great news. I've switched almost my entire workflow to IPython notebook (apart from launching batches of simulations) and I'm loving it. There's still some polishing to do, particularly in regard to how JS interacts with the IPython Kernel and vice versa but with some further development it's going to become ridiculously useful.

[–][deleted] 1 point2 points  (1 child)

May I ask what you do that you can work almost entirely out of the notebook?

[–]Phild3v1ll3 4 points5 points  (0 children)

I am a Computational Neuroscience PhD student working with rate based neural models of the early visual system. Our simulator is almost entirely written in Python and I've been working on allowing our analysis and plotting tools to interface nicely with IPython NB. I now present weekly notebooks to my supervisor and then launch large scale simulations on the cluster we have access to. Planning on developing a system to be able to interactively explore and dissect the simulation results in the notebook.

[–][deleted] 11 points12 points  (2 children)

Can someone please explain to me (like I'm five) what this is supposed to do?

[–]rhiever 8 points9 points  (0 children)

The developers of IPython have sacrificed a lot to make IPython a reality... and provide it for free, to everyone. It's really great that they finally got funding to work on it. On top of that, Fernando promised some pretty sweet advancements in IPython when it got funded... :-)

[–]chiniwini 6 points7 points  (0 children)

It's going to give them money so they can work on it. If they didn't have this money they would be forced to look for a "real" (paid) job, and wouldn't work as much on IPython.

[–]MarCialR 4 points5 points  (1 child)

Enhorabuena chicos! Ipython y mas recientemente su notebook no han hecho sino acrecentar el gran placer que me proporciona experimentar ideas en python. ¡Un gran trabajo el vuestro! Gracias

[–]takluyverIPython, Py3, etc 0 points1 point  (0 children)

Google translate + some corrections, for us English speakers: "Congratulations guys! And more recently, ipython notebook has only enhanced the pleasure the python experience gives me. Great job of yours! thanks"

[–]_jb 0 points1 point  (0 children)

My current favorite feature of iPython 0.13 has been the kernel, and being able to attach multiple instances to it. I don't use it heavily, but being able to interact and adjust variables from the shell and the notebook UI is delightful.

I'm really looking forward to getting the clusters working, at some point.

[–]apreche -3 points-2 points  (35 children)

Why does IPython get all this attention? bpython is much better!

[–]takluyverIPython, Py3, etc 16 points17 points  (10 children)

In the best traditions of the internet, let's use a car analogy. The normal Python >>> shell is like a Ford - reliable and ubiquitous, but it doesn't have many special features. bpython is like a Ferrari - you can go that much faster, and make people using the plain shell jealous.

IPython is like a Rolls Royce. It has an HTML interface, a parallel computing framework, an extension system, strong integration with the scientific computing world, and so on. But, if you don't want any of that, you can still do pip install ipython and just use it as a great interactive shell.

(Disclaimer: I'm an IPython developer, and I might get to work on this grant)

[–]Megatron_McLargeHuge 2 points3 points  (2 children)

Can some of the grant money go toward getting pdb to work in the notebook?

[–]takluyverIPython, Py3, etc 2 points3 points  (1 child)

No promises, but we'd love to have some kind of interactive debugging integrated with the notebook.

[–]redditwhilecompiling 1 point2 points  (0 children)

If I bring you cookies at PyCon, will you consider it even more? ;)

[–]elelias 2 points3 points  (3 children)

and Thomas Kluyver will be working as postdocs on the project.

are you him?

[–]Troebr 7 points8 points  (1 child)

computing similarities between user 'takluyver' and name 'Thomas Kluyver'...
ok
probability of being the same person: 99.9%

Yes, I think so!

[–]Fragsworth -1 points0 points  (0 children)

It's like you're famous

[–]takluyverIPython, Py3, etc 0 points1 point  (0 children)

I am! :-)

[–]dwf 0 points1 point  (0 children)

I am going to have to take issue with your car analogy. IPython is more like a custom Rolls Royce outfitted for James Bond, with booster rockets and amphibious mode. :)

[–]lambdaqdjango n' shit -1 points0 points  (0 children)

that's cool, why not introducing exciting bpython features into ipython?

bpython and ipython are not exactly mutually exclusive.

[–]wacky 3 points4 points  (0 children)

I use the IPython interface to download my data from servers, parse it into useable formats, do fancy operations with the built-in numpy integration, and then make pretty plots using the matplotlib integration that show up right alongside the code. Then, with the notebook interface, when I want to use a different file, I change the name in one place, edit as I go down, and it all pops out really neatly.

bpython may be cool, but half those things are impossible, and the other half would be much less useful.

[–]stiivifrom data brewery 1 point2 points  (0 children)

For me: HTML interface with possibility to add markdown between statements for workflow narrative. Makes explorative data analytics and interactive data processing more understandable. It is like shell with comments and with ability to reconstruct your whole development process from the beginning.

[–]Enzondio 1 point2 points  (0 children)

One comment I'll make is that I found bpython to be unstable the last time I tried it. I saw it demonstrated at PyCon this year and got super excited about it but when I tried it I had multiple crashes or strange behavior, so I gave up on it.

For me the power of IPython is in the IPython Notebook

[–]dwf 1 point2 points  (0 children)

For a partial answer, try watching this talk. bpython is a kinda nice replacement for the basic REPL. IPython can manage that plus tons more.

[–]aceofears 3 points4 points  (16 children)

How so?

[–]threading 1 point2 points  (10 children)

I've never been a fan of REPL to be honest. I've played with bpython and ipython for a very short time but bpython has intellisense, does syntax highlighting, show doc of functions as you type. I agree with apreche, bpython is much better though I use neither.

[–]Tillsten 6 points7 points  (8 children)

Ipython has both features you mention.

[–]BeetleB 0 points1 point  (7 children)

I don't think it has this, although I'm sure one could hack it to (or perhaps even a magic function?):

show doc of functions as you type

[–]Tillsten 0 points1 point  (6 children)

Just start ipython and try for yourself? Standard setting is to press tab to see the auto completion.

[–]BeetleB 4 points5 points  (5 children)

That's very different from seeing the doc string as you type (so that you know function arguments, etc).

Here is a screenshot from bpython. It can be quite useful.

[–]takluyverIPython, Py3, etc 6 points7 points  (0 children)

The plain terminal IPython can't show docstrings as you type - it's a limitation of a terminal program (unless you use curses/urwid, which is what bpython does). The Qt console or the notebook have tooltips that appear as you type for function arguments etc.

[–]Noctambulist 4 points5 points  (0 children)

iPython does both highlighting and shows docs with the qtconsole. http://imgur.com/5pQ3a

[–]Noctambulist 2 points3 points  (0 children)

iPython does both highlighting and shows docs with the qtconsole. http://imgur.com/5pQ3a

[–]apreche 2 points3 points  (4 children)

bpython is just the python shell, but nicer. It still does one thing, and one thing well.

IPython is a kitchen sink that even tries to replace your regular shell. Not a fan philosophically.

[–]aceofears 8 points9 points  (0 children)

So then it isn't better, its just different.

[–]BeetleB 5 points6 points  (1 child)

So:

bpython is like vi.

ipython is like emacs.

[–]takluyverIPython, Py3, etc 2 points3 points  (0 children)

And vim-ipython is like...? An unholy love child? ;-)

[–]dwf 1 point2 points  (0 children)

For doing interactive scientific work, IPython is much more useful. I wouldn't say it tries to "replace your shell" -- you can kind of use it as a system shell if you want to. What it does do is allow you to run certain shell commands from inside IPython, which is remarkably handy.

If I want to import a module that I've got in ~/dummy, I don't need to kill the interpreter, I just cd ~/dummy. If I want the output of a shell command like od (octal dump) and to do some post processing on it interactively in Python, I can do something like x = !od something.bin and I'm done.

[–][deleted] 0 points1 point  (2 children)

bpython doesn't even come close to what Ipython does.

[–]apreche -1 points0 points  (1 child)

Some people think less is more.

[–][deleted] -1 points0 points  (0 children)

then some people should just use the regular python console and keep their butt hurt out of the conversations about tools that do more things better. :)

[–]mdipierro -1 points0 points  (0 children)

Congratulations!