=== Alex Martelli - programming for scientists and engineers === - engineering vs. science - why care about the details? - do black boxes rule? No, nature and numbers are not in the business of making your life simpler by ensuring computations are well conditioned and behaved - Acton, real computing made real: good computing routines are problem-specific - example: computing difference of two large numbers, such as sqrt(x+1) - sqrt(x); recast as 1/[sqrt(x+1) + sqrt(x)] - software has bugs (reliable software has bugs that bite you rarely) - if numbers are important, compute them twice; different compilers, different computers, optimization levels - numerical software packages always hide deficiencies - but: in many disciplines, sampling bias kills you (meta-issue: publication bias); how good are measurements in the first place? - Spolsky: all nontrivial abstractions, to some degree, are leaky - so black boxes are useful, but leaky - need to know what's inside; need to care; need to learn what to do about it - today can code fast, elegantly, clearly, numerically efficiently, but have to care - black boxes are necessary evil - good computing tools are not about replacing human intelligence, but rather about enabling its application - wrong computations always have consequences, even in research === Travis Vaught, Jarrod Millman - state of scipy === - numeric (1995), scipy (2001), matplotlib (2003), numarray (2003), numpy (2006) - numpy book now in the public domain - numpy recent changes: MaskedArrays, IO code, test coverage, numscons, coding style - blog: planet.scipy.org === Stéfan Van der Walt - numpy/scipy documentation === - wiki system to allow community to contribute - scipy documentation editor by Pauli Virtonen - workflow: docstring needs writing -> needs editing -> needs reviewing -> needs proofing -> proofed - found bugs - numpy.doc infrastructure - reference guide using Sphinx - docstrings extracted from numpy, put in intermediate representation, sent to sphinx - pydocweb editor available in launchpad - what about propagating changes in the source? - changes to docstrings and new functions are pulled in with appropriate status - changes to code are _not_ pulled in - what about development documentation? (info in SVN, etc.) === Michael Droettboom - matplotlib and Sphinx === - sphinx: - printed (PDF) and online (HTML) generated from same source - all reStructuredText - more attractive - searchable, indexed, cross-referenced - can pull in docstrings using autodoc plugin - matplotlib.pyplot allows inserting inline plots and latex formulas - math engine is quite complete, supports also stix... - ...but sphinx has dvipng and jsMath plugins - intersphinx links - presentation given from a bookmark folder in web browser === Lightning talks === - Fernando Perez: ipython 1.0 out soon, many improvements (WX and Cocoa shells), fold in ipython1 features