Hacker News new | past | comments | ask | show | jobs | submit login
IPython 3.0 released (ipython.org)
342 points by cjdrake on Feb 28, 2015 | hide | past | favorite | 37 comments



This is the last release of iPython which will be called Jupyter Julia, Python and R name mash up) to show the kernel agnostic nature of the product. iPython will only refer to the Python specific parts AKA the interactive python kernel and a few other pieces. You can run iPython/Jupyter with over 30 different kernels. My favorite is R and Haskell. https://github.com/ipython/ipython/wiki/IPython%20kernels%20...


Just a note in passing as many people make the mistake when writing about IPython: the name of the project is written 'IPython' instead of 'iPython'. The project maintainers would like to encourage people to avoid the latter casing, in particular to avoid any confusion with Apple products. If you don't like the 'IPython' casing it's better to just use lowercase 'ipython' instead.


I am the last person in the world that would ever want to have anything Apple seen in other projects. I will always go with IPython, BUT once again Apple steals something that wasn't theirs iX was before iMac.


That "whatsnew" page doesn't mention it, but IPython 3.0 adds official PyQt5 support for IPython event loop integration (ie, time slicing so the text console with local kernel remains responsive) and PyQt5 support for Qt console. Spyder recently merged in PyQt5 support as well, and Matplotlib has it, too. We're getting to the point where everyday IPython users can finally move over to PyQt5.


So I was super excited when IPython started rolling widgets into itself - I thought I would be using them a lot. But turns out that I just ended up using one pattern (slider + matplotlib to cycle through dataset visualizations). What I've found is that googling for IPython widget documentation or tutorials is just... really difficult. There's stuff from a lot of eras, and it's often quite tricky to figure out exactly what the

I'm pretty certain its just my poor google-fu in this case, but does anyone have a particularly good/authoritative 2.x (or 3.x if those even exist yet) tutorial or guide to follow?


Jonathan Frederic just updated the example notebooks for widgets before the release: http://nbviewer.ipython.org/github/ipython/ipython/tree/mast.... We've also listed a few examples of cool widgets at https://github.com/ipython/ipython/wiki/widgets (though some of these may not have been updated to run on IPython 3.x). You're welcome to ask questions on the IPython mailing list or the gitter chat: https://gitter.im/ipython/ipython/help.


My experience was the same as yours, with both ipython widgets and ipython presentation mode. At least at the time (a year ago), I asked and there was no solid docs for either.

(edit: I still love ipython. just wish the docs were better. I should help, but I haven't.)


I am in the middle of IPython Cookbook (http://ipython-books.github.io/cookbook/), which I enjoy a lot.

I wanted to ask which things gets outdated, but it seems that the author tries keep it up to date (https://github.com/ipython-books/cookbook-code/issues/17).


The turtle widget [1] looks exactly like what I was looking for. It can be used to teach Python programming to kids within an IPython notebook.

[1]: https://github.com/takluyver/mobilechelonian/tree/require-wi...


Turtle is also part of Python's standard library. Re-implementing geometric puzzles we already solved in Scratch works well as a transition to Python for my seventh graders.


Turtle programming in Logo was the first time I programmed on something that wasn't a home computer. It was on an Icon computer [1] at my local high school (I was in elementary at the time). It was also the first time I programmed in something other than BASIC. I loved working with the turtle in Logo.

[1] http://www.computernostalgia.net/articles/icon.htm


Very cool as a pedagogic tool! The turtle example is also featured in Hackety Hack[1] which is supposed to teach kids about programming as well.

[1] http://www.hackety.com/lessons/an-introduction-to-programmin...


Trinket.io might be right up you alley


I'm really excited about the interactive widgets. I've been curious about the idea of creating a spreadsheet widget to provide excel-like functionality in Jypyter.


The thing about Excel is there are many 50~80% use case implementations. But none with all 30 years of Microsoft's spreadsheet experience baked in. The long tail use cases are where Excel excels, and in spreadsheets there are a lot of snowflake use cases.


I don't really see why you need those advanced features. In my experience, as soon as I'm requiring non-basic features, I actually shouldn't be using spreadsheets.


The biggest thing about "Excel" and spreadsheets is the work you do is not reproducible and it is the main reason why you should program all your work. What people do with macros and spreadsheets is very dangerous and unless it is documented it has too much human error capability.


The business case for using Excel overwhelms engineering best practices up to somewhere around five or six sigmas. The big ball of mud software architecture is good enough to make money. Anyway explaining business logic to a technical programmer is also fraught with human error. TANSTAAFL.


Not necessarily. There have been a number of disasters in the last few years caused by errors that have been directly attributed to spreadsheet usage. Many financial firms are reining in excel use by their business users. Prototyping a solution is fine, but for production use they are requiring an auditable solution that has proper source code control and can't be tweaked by the end user.

Spreadsheets are great products but for production use they are really two edged swords.


Sure, but that shift is happening under the same logic that leads businesses to run ERP applications on big iron mainframes even here in the 21st century.

It's a matter of degree, but human error remains. The subprime clusterfuck wasn't based on using Excel.


Cool! You can see some of the widgets people have been doing at https://github.com/ipython/ipython/wiki/widgets. If you come up with something, let us know and add your widget there.


You mean like that : https://www.youtube.com/watch?v=_JZFSFR6Yeo ? (link to code in youtube description)


Yes, something like this but more full-featured.


You might also be interested in https://github.com/quantopian/qgrid, which renders pandas DataFrames interactively with SlickGrid (https://github.com/mleibman/SlickGrid)


Go to try.jupyter.org to give it a spin.


I'm really excited about IPython as a tool for MOOCs. For example check out this ComputerVision class: https://www.kickstarter.com/projects/1186001332/pyimagesearc...

Ultimately, instead of thousands of going thru the same material, I think small groups could break out and build an independent project in Ipython as it documents the results and source in one place.


Are you talking about a small group all working together on an IPython notebook + source files? IPython doesn't (yet) support collaborative editing by itself, but SageMathCloud (https://cloud.sagemath.com/, source at https://github.com/sagemath/cloud) has patched IPython to have Google Docs-style collaborative editing. SageMathCloud is still using the latest IPython 2.x release (updated soon, probably in conjunction with upgrading the version of IPython in Sage). Still, it's probably your best bet right now for collaborative editing in IPython notebooks.

That said, several IPython developers are working on adding Google Drive support, and I believe they are working on the collaborative editing capabilities as part of that.


GoogleDrive-type editing is really neat, but I was thinking along the lines of an applied project e.g. if one person has a microscope they can collect images for everyone to analyze: http://nbviewer.ipython.org/github/sutt/BossLab/blob/master/...


Is SageMathCloud really based on the IPython notebook? I had assumed it was based instead on the earlier Sage Notebook.


SageMathCloud is a completely new thing, which is much more comprehensive than either the IPython notebook or the previous Sage notebook. It provides the ability to run arbitrary services and connect to them, and provides a very easy way to launch an IPython notebook server. Log in, create a project, click "New", and then click "IPython notebook". It starts up an IPython notebook server (patched to allow collaborative editing) and tunnels the connection out so that you are interacting with the IPython notebook server it started up. Beyond that, it has a completely new Sage notebook, terminal, latex editor (all allowing real-time collaboration), automatic snapshots every few minutes, and many more things.


Check out Colaboratory. They have added google drive collaboration support to IPython. You can ru. It with your own local kernel, or they have packaged the whole thing up into a Chrome app that uses PNaCl sandbox to run the Python kernel.

https://chrome.google.com/webstore/detail/colaboratory-noteb...


It's nice (I tried it some time ago), but I pity that without LaTeX support (one of key things I would need to Google Docs-style collaborating).

On the other hand, I tried to enter CoLaboratory from http://colaboratory.jupyter.org/welcome/ and it does support LaTeX, but has issues with connecting to local kernel (I couldn't make it working). And it seems to be no longer id development: https://github.com/jupyter/colaboratory/commit/a4a7176e46c94...


The plan is to integrate the features from Colaboratory back into IPython, but it will probably take a couple more releases.


Such an awesome tool for my day to day work. I'm so lucky that I have a job where I can send these between myself and my GM.


Anyone know how long it typically takes Anaconda to package up new ipython releases?


It normally becomes available a few days after a release. Run 'conda update ipython ipython-notebook' to check for a newer version.


this is really cool. I love the ipython notebook model of dev...and splitting apart those features from languages is a good idea




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: