Professional Documents
Culture Documents
IPython
A tool for the lifecycle of computational ideas
Fernando Prez
http://fperez.org, @fperez_org
Fernando.Perez@berkeley.edu
April 4, 2013
Outline
Scientific Computing
Two examples
A growing project
Wrapup
FP (UC Berkeley)
IPython
April 4, 2013
2 / 51
Outline
Scientific Computing
Two examples
A growing project
Wrapup
FP (UC Berkeley)
IPython
April 4, 2013
3 / 51
Nature, Feb 2012, Ince et al: The case for open computer programs
The scientific community places more faith in computation than is
justified
anything less than the release of actual source code is an indefensible
approach for any scientific results that depend on computation
FP (UC Berkeley)
IPython
April 4, 2013
5 / 51
Nature, Feb 2012, Ince et al: The case for open computer programs
The scientific community places more faith in computation than is
justified
anything less than the release of actual source code is an indefensible
approach for any scientific results that depend on computation
FP (UC Berkeley)
IPython
April 4, 2013
5 / 51
Nature, Feb 2012, Ince et al: The case for open computer programs
The scientific community places more faith in computation than is
justified
anything less than the release of actual source code is an indefensible
approach for any scientific results that depend on computation
FP (UC Berkeley)
IPython
April 4, 2013
5 / 51
Versioned science
Git: the tool you didnt know you needed
Reproducibility?
Tracking and recreating every step of your work
In the software world: its called Version Control!
Git: an enabling technology. Use version control for everything
Paper/grant writing (never get paper_v5_john.tex by email again!)
git clone https://server.com/my-grant/repo.git
cd repo
make nsf-fastlane
Everyday research: track your results
Collaboration: synchronize multi-author work.
Teaching!
Versioned science
Git: the tool you didnt know you needed
Reproducibility?
Tracking and recreating every step of your work
In the software world: its called Version Control!
Git: an enabling technology. Use version control for everything
Paper/grant writing (never get paper_v5_john.tex by email again!)
git clone https://server.com/my-grant/repo.git
cd repo
make nsf-fastlane
Everyday research: track your results
Collaboration: synchronize multi-author work.
Teaching!
Hardware
floating point FORTRAN
Text processing
Databases
Data formats: HDF5, XML, ...
Graphical user
interfaces
Web interfaces
Hardware
control
Multi-language
integration
Applications
FP (UC Berkeley)
Languages
IPython
April 4, 2013
16 / 51
IPython
NetworkX
Collaborative development
Education
Goto 1.
FP (UC Berkeley)
IPython
April 4, 2013
18 / 51
Collaborative development
Education
Goto 1.
FP (UC Berkeley)
IPython
April 4, 2013
18 / 51
Outline
Scientific Computing
Two examples
A growing project
Wrapup
FP (UC Berkeley)
IPython
April 4, 2013
19 / 51
Matplotlib: 2d plotting
Matplotlib: 3d plotting
Supernova PTF11kyl:
Event of a Generation found on Tuesday
Monday
Tuesday
Wednesday
Outline
Scientific Computing
Two examples
A growing project
Wrapup
FP (UC Berkeley)
IPython
April 4, 2013
28 / 51
Why IPython?
(something other than
Id rather not finish my dissertation)
Why IPython?
(something other than
Id rather not finish my dissertation)
Collaborative development
Education
Goto 1.
FP (UC Berkeley)
IPython
April 4, 2013
30 / 51
Collaborative development
Education
Goto 1.
FP (UC Berkeley)
IPython
April 4, 2013
30 / 51
IPythons goal:
Fluid transitions in all these steps
Demo
FP (UC Berkeley)
IPython
April 4, 2013
33 / 51
FP (UC Berkeley)
IPython
April 4, 2013
34 / 51
Outline
Scientific Computing
Two examples
A growing project
Wrapup
FP (UC Berkeley)
IPython
April 4, 2013
35 / 51
Web/Other
Django.
Sage: mathematics.
Turbo Gears.
Ganga: CERN
PyMAD: neutron spectrom., Laue Langevin
Schevo database.
Pitz: distributed
task/bug tracking.
Movable Python
(portable Python
environment).
...
...
Brian Granger
Min Ragan-Kelley
Thomas Kluyver
Matthias Bussonnier
Paul Ivanov
Brad Froehle
Jrgen Stenarson
Robert Kern
Evan Patterson
Jonathan March
Support
Thank you!
Open Source:
skills, tools and practices we need!
A culture where things get done.
Wildly collaborative.
Reproducible by necessity.
Version control, testing, documentation, public peer review, etc.
1.0
Commit rate
0.8
0.6
0.4
0.2
0.0 1
FP (UC Berkeley)
4
5
7
6
Individual Committer
IPython
10
April 4, 2013
47 / 51
http://numfocus.org
Outline
Scientific Computing
Two examples
A growing project
Wrapup
FP (UC Berkeley)
IPython
April 4, 2013
49 / 51
Fall 2013
Interactive JavaScript API
With callbacks to remote kernels.
2014
Multiuser server
Simple to deploy
Trusted (shell OK) Unix users in a lab, group, class, etc.
https://github.com/ipython/ipython/wiki/Roadmap:-IPython