I got tired of pasting URLs into nbviewer so I made a Chrome extension that will try to load your current page via nbviewer.
For example, if you are at https://gist.github.com/3778422 you can click the “Open in nbviewer” extension button and it will load http://nbviewer.ipython.org/3778422/ in a new tab. It also works for URLs ending in
You can download the extension from the Chrome Web Store and see the code on GitHub.
I took the extension icon from the nbviewer favicon, so thanks to them for that! Thanks also for making something as awesome as nbviewer, it’s getting so I couldn’t live without it!
The nice folks over at IPython have put together a nice viewer for IPython notebooks stored as GitHub gists: nbviewer.ipython.org/. Just enter a gist URL or number. It doesn’t actually store notebooks, just renders notebooks stored as gists.
I’ve had some notebooks as gists for a while and now I can make pretty links to them:
Profiling a program is a way to take a detailed look at the execution time of individual pieces of the program. When you want to optimize code it’s important to use a profiler first so that you know where your optimization effort would be most beneficial.
I recently demonstrated profiling Python code using the built-in tools, line_profiler, and IPython’s “magic” hooks into those tools. RunSnakeRun also made an appearance.
As usual I used the IPython notebook and you can get the .ipynb file and the PDF, or see it directly.
More info on using the built-in profiler and pstats modules is available via the Python Module of the Week: http://www.doughellmann.com/PyMOTW/profile/index.html.
I finally got around to playing a tiny bit with pandas today and was delighted when I saw its representation in the IPython notebook. Take a look in the PDF.
IPython detects a special
_repr_html_ method on (in this case) the pandas DataFrame object and uses that for the output instead of the usual
__repr__ methods. Here
_repr_html_ returns the contents of the DataFrame in an HTML table, which is also useful for posting to a blog:
This is another great feature of the IPython notebook and I look forward to it popping up in more places!
Until recently I had never been a fan of IPython but with their HTML notebook they’ve finally won me over. What I like about this tool is that it makes it easy to go back and forth between interactive prototyping and a script. Being able to continuously edit and re-run code in an interactive session is a powerful tool.
The notebook also makes a great tutorial and demo tool. Here’s a PDF of my session developing a Python replacement for IDL’s GAUSSFIT function.
The IPython notebook requires a few extra packages but if you have a setup like me it’s easy to get everything installed:
brew install zeromq
pip install pyzmq
pip install tornado
pip install ipython
from IPython.external.mathjax import install_mathjax
To launch the notebook from whatever directory you want to work in:
This will launch the IPython notebook dashboard in your default browser, from which you can make new notebooks or resume working on existing ones.
See the docs for all you can do with the notebook, and enjoy!