In [4]:
from IPython.display import display, Image, HTML
from talktools import website, nbviewer
In [1]:
import frontmatter
In [2]:
frontmatter.whoami()
In [3]:
frontmatter.logos()
Cal Poly is located in San Luis Obispo, CA, half way between LA and SF.
In [5]:
Image('images/slo_map.png', width=500)
Out[5]:
San Luis Obispo is a small university town near the beach with an agricultural history. It is a very nice place to write code.
In [6]:
Image('images/beach.png', width=500)
Out[6]:
IPython is an open source, interactive computing environment.
In [7]:
website('ipython.org')
Out[7]:
IPython was started in 2001 by Fernando Perez, who continues to lead the project. Over the last decade the project has grown to a dedicated and talented team of $\approx12$ core developers and a larger community of $\approx100$ contributors.
IPython has been funded by:
Here are the core developers of IPython in 2013:
In [9]:
import ipythonproject
In [10]:
ipythonproject.core_devs()
In this talk, I will cover many aspects of IPython, especially the IPython Notebook and its surrounding ecosystem. But that is not the main point of the talk. The main point is an argument about the attributes of the tools we use and how they affect our work. Here is the argument:
What are these attributes?
Fast, slow, cluttered, simple, complex, open, documented, tested, testable, buggy, robust, heirarchical, flat, single-purpose, multi-purpose, opaque, transparent, etc.
How are attributes different from features?
I am not sure, but the attributes I want to talk about today are more conceptual and abstract than most things I label with the word feature. But, maybe they are the same thing.
Can you give an example?
If you are doing science using software that is cluttered, slow and buggy, your science is going to be cluttered, slow and buggy. More importantly, your frustration will affect your thinking and restrict technical progress.
How about a more concrete example?
A sponge is a tool that can be used for washing dishes. It has the attributes of being slow and cheap.
In [11]:
Image('images/sponge.jpeg', width=300)
Out[11]:
A dishwasher is also a tool for washing dishes. It has the attributes of being fast and expensive.
In [12]:
Image('images/dishwasher.jpeg', width=300)
Out[12]:
How do these attributes of slow/fast and cheap/expensive affect human behavior and thinking?
As another example, Edward Tufte has written a beautiful essay on how the attributes of Microsoft's Powerpoint Software affect the quality and nature of presentations.
In [13]:
website('http://www.edwardtufte.com/tufte/powerpoint')
Out[13]:
In [14]:
%load_ext load_style
In [15]:
%load_style talk.css
In [ ]: