{ "metadata": { "name": "The IPython Project" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Edit Slideshow Style]\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "The IPython Project" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The IPython development team" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "History" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* October/November 2001: Fernando's \"afternoon hack\"\n", " - `$PYTHONSTARTUP`: ipython-0.0.1.py (259 lines)\n", " - Interactive Python Prompt (IPP), Janko Hauser (Oceanography)\n", " - LazyPython, Nathan Gray (Caltech)\n", "* 2002: Fernando rejects John Hunter's Gnuplot patches: John starts matplotlib instead\n", "* 2004: First version of IPython.parallel (Brian Granger and Min Ragan-Kelley)\n", "* 2005-2009: Wayavi, Wx support, refactoring, slow period\n", "* 2010: Discover ZeroMQ\n", " - PyZMQ Created (Brian Granger and Min Ragan-Kelley)\n", " - Build Qt Console and IPython Kernel (Granger, Perez, Evan Patterson)\n", " - Rewrite IPython.parallel with ZeroMQ (Min Ragan-Kelley)\n", " - Move to Git/GitHub\n", " - Python 3 port (Thomas Kluyver)\n", "* 2011: IPython Notebook (Brian Granger)\n", "* 2012: Development continues to accelerate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ohloh Statistics:\n", "\n", "" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Components" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The modern IPython consists of two types of processes:\n", "\n", "* IPython Kernel: runs code and sends output over ZeroMQ/JSON based message protocol\n", "* Frontends: User Interface that talks to a Kernel\n", " - Terminal Console\n", " - QT Console\n", " - Web-based Notebook" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Terminal Console" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The classic terminal based IPython with Pylab+Matplotlib for interactive plotting." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Qt Console" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Inline plotting, multiline editing, rich output display, two process Kernel model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Web Notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Code, text, plots, equations, images, video, open document format." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Fast, high-level parallel computing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "A growing ecosystem of third party applications" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Microsoft: Python Tools for Visual Studio" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "A Vim Frontend" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Notebooks on Windows Azure Cloud" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "StarCluster: IPython Notebook and Parallel on Amazon EC2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "NotebookCloud: one-click Notebook instances on Amazon EC2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Enthought's Canopy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Emacs Notebook client" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "vIPer: a dedicated Notebook client" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Contributors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Fernando Perez: Neuroscience, UC Berkeley (BDFL)\n", "* Brian Granger: Physics, California Polytechnic State University\n", "* Min Ragan-Kelley: Nuclear Engineering, UC Berkeley\n", "* Matthias Bussonnier: Physics, Institut Curie, Paris\n", "* Jonathan March: Enthought\n", "* Thomas Kluyver: Biology, U. Sheffield\n", "* J\u00f6rgen Stenarson: EE, Sweden\n", "* Paul Ivanov: Neuroscience, UC Berkeley\n", "* Robert Kern: Enthought\n", "* Evan Patterson: Physics, Caltech/Enthought\n", "* Brad Froehle: Mathematics, UC Berkeley\n", "* Stefan van der Walt: Neuroscience, UC Berkeley\n", "* John Hunter: Tradelink Securities, Chicago\n", "* Prabhu Ramachandran: Aerospace Engineering, ITT Bombay\n", "* Satra Ghosh: Neuroscience, MIT\n", "* Ga\u00ebl Varoquaux: Neurospin, Orsay, France\n", "* Ville Vainio: CS, Tampere University of Technology, Finland\n", "* Barry Wark: Physion Consulting\n", "* Ondrej Certik: Physics, University Nevada, Reno\n", "* Daren Dale: Cornell\n", "* Justin Riley: MIT\n", "* Mark Voorhies: UC San Francisco\n", "* Nicholas Rougier: INRIA Nancy Grand Est\n", "* Thomas Spura: Fedora Project\n", "* Many more (~150 committers)\n" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Support" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Enthought: Qt Console, hosting, lots of other things\n", "* Microsoft: Windows HPC Server support, Visual Studio, Azure (thanks to Wenming Ye and Shahrokh Mortazavi)\n", "* DoD/DRC Inc: funding in 2012 to integrate Notebook and Parallel support (thanks to Jose Unpingco and Chris Kees)\n", "* NIH: via NiPy grant\n", "* NSF: via Sage compmath grant\n", "* Google: summer of code, 2005, 2010\n", "* Tech-X Corporation: previous versions of Notebook and Parallel " ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }