Slide 1

Slide 1 text

These are slides, not a paper. You’! need to watch the talk to understand the context.

Slide 2

Slide 2 text

Eve Working around evolution.

Slide 3

Slide 3 text

steve{@(stevelosh}.com) {twitter} (website)

Slide 4

Slide 4 text

200,000 BCE 2012 CE (modern humans evolved) (present day)

Slide 5

Slide 5 text

Eat

Slide 6

Slide 6 text

Reproduce

Slide 7

Slide 7 text

Don’t Die

Slide 8

Slide 8 text

Natural Selection

Slide 9

Slide 9 text

Eyes Subconscious Brain Conscious Brain

Slide 10

Slide 10 text

LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTS OFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSL OTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSO FGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRA SSYGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFG RASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSSMALLTREELOTSOFGRASSDIRTLOTSOF GRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOT SOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSANDLOTSOFGRASSLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGR ASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSDIRTLOTS OFGRASSANDDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSO FGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRA SSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSYGRASSLOTSOFGRASSDIRTLOTSOFG RASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGR ASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLIONLOTSOFGRASSL OTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSO FGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLO TSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSSOMUCHGRASSLOTSOFGRASSDIRTDI RTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLO TSOFGRASSLOTSOFDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS

Slide 11

Slide 11 text

LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTS OFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSL OTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSO FGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRA SSYGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFG RASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSSMALLTREELOTSOFGRASSDIRTLOTSOF GRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOT SOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSANDLOTSOFGRASSLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGR ASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSDIRTLOTS OFGRASSANDDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSO FGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRA SSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSYGRASSLOTSOFGRASSDIRTLOTSOFG RASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGR ASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLIONLOTSOFGRASSL OTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSO FGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLO TSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSSOMUCHGRASSLOTSOFGRASSDIRTDI RTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLO TSOFGRASSLOTSOFDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS

Slide 12

Slide 12 text

LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTS OFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSL OTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSO FGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRA SSYGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFG RASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSSMALLTREELOTSOFGRASSDIRTLOTSOF GRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOT SOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSANDLOTSOFGRASSLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGR ASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSDIRTLOTS OFGRASSANDDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSO FGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRA SSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSYGRASSLOTSOFGRASSDIRTLOTSOFG RASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGR ASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLIONLOTSOFGRASSL OTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSO FGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLO TSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSSOMUCHGRASSLOTSOFGRASSDIRTDI RTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLO TSOFGRASSLOTSOFDIRTLOTSOFGRASSLOTSOFGRASSLOTSOFGRASSLOTSOFGRASS LOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASSLOTSOFGRASSDIRTLOTSOFGRASS

Slide 13

Slide 13 text

GRASS TREE LION

Slide 14

Slide 14 text

Small numbers of medium-sized things

Slide 15

Slide 15 text

Small numbers “Fewer than ten”

Slide 16

Slide 16 text

Medium-sized things “Bigger than a child, smaller than an elephant”

Slide 17

Slide 17 text

Agriculture!

Slide 18

Slide 18 text

Large numbers of tiny and/or enormous things

Slide 19

Slide 19 text

“Two million rows in the database”

Slide 20

Slide 20 text

“One hundred milliseconds to serve an HTTP request”

Slide 21

Slide 21 text

“65,536 blocks in a Minecra$ chunk”

Slide 22

Slide 22 text

We are not alone!

Slide 23

Slide 23 text

“10 to 100 trillion ce!s in the human body”

Slide 24

Slide 24 text

“9.2 × 1037 proton-proton chain reactions per second in the sun”

Slide 25

Slide 25 text

Math & Science

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Reason

Slide 28

Slide 28 text

Abstractions

Slide 29

Slide 29 text

Large numbers of things Small numbers of things

Slide 30

Slide 30 text

Logic

Slide 31

Slide 31 text

Abstractions New Abstractions

Slide 32

Slide 32 text

Abstractions

Slide 33

Slide 33 text

Small number of abstractions Many things in the real world

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Pythagoras

Slide 37

Slide 37 text

a2 + b2 = c2

Slide 38

Slide 38 text

a b c

Slide 39

Slide 39 text

a b c a2 b2 c2

Slide 40

Slide 40 text

=

Slide 41

Slide 41 text

Eve

Slide 42

Slide 42 text

“The ancestor of every living human on Earth”

Slide 43

Slide 43 text

200,000 BCE 2012 CE (modern humans evolved) (present day)

Slide 44

Slide 44 text

Reason

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

Generations Ago Ancestors 1 2 2 4 3 8 4 16 5 32 6 64 7 128 8 256

Slide 50

Slide 50 text

ancestors = 2generations

Slide 51

Slide 51 text

ancestors = 2((2012 - year) / 20)

Slide 52

Slide 52 text

(ns eve.core (:use [incanter core io charts stats])) (def world-population (read-dataset "https://raw.github.com/.../world-population.csv" :header true)) (defn number-of-ancestors [x] (let [years-ago (- 2012 x) generations-ago (int (/ years-ago 20))] (Math/pow 2 generations-ago))) (doto (scatter-plot ($ :year world-population) ($ :population world-population) :x-label "Year" :y-label "People") (add-function number-of-ancestors 500 2012) (set-x-range 500 2012) (set-y-range 0 1300000000) view)

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

200,000 BCE 2012 CE (modern humans evolved) (present day) 1450 CE (Eve?)

Slide 56

Slide 56 text

Measurement

Slide 57

Slide 57 text

Gather Data and Analyze it with Statistics

Slide 58

Slide 58 text

Learn!

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 text

200,000 BCE 2012 CE (modern humans evolved) (present day) 3,000 BCE (Eve)

Slide 61

Slide 61 text

Math and Science work!

Slide 62

Slide 62 text

How can we learn from them?

Slide 63

Slide 63 text

Reason

Slide 64

Slide 64 text

Stop. Think.

Slide 65

Slide 65 text

“You have to keep a dozen of your favorite problems constantly present in your mind, although by and large they wi! lay in a dormant state. Every time you hear or read a new trick or a new result, test it against each of your twelve problems to see whether it helps.”

Slide 66

Slide 66 text

Write Reasonable Code

Slide 67

Slide 67 text

Measurement

Slide 68

Slide 68 text

Monitoring

Slide 69

Slide 69 text

IN PRODUCTION!

Slide 70

Slide 70 text

Everyone who cares how fast Node.js serves Fibonacci numbers on your laptop You

Slide 71

Slide 71 text

(defn get-account-type [cash] (cond (< cash 1000) :normal (< cash 10000) :silver :else :gold)) (time (dotimes [_ 1000] (get-account-type (rand 20000)))) "Elapsed time: 8.857 msecs" (time (dotimes [_ 1000] (get-account-type (rand 20000)))) "Elapsed time: 5.255 msecs" (time (dotimes [_ 1000] (get-account-type (rand 20000)))) "Elapsed time: 4.37 msecs" (dotimes [_ 1000000] (get-account-type (rand 20000))) (time (dotimes [_ 1000] (get-account-type (rand 20000)))) "Elapsed time: 0.476 msecs"

Slide 72

Slide 72 text

Monitoring Tools

Slide 73

Slide 73 text

IN PRODUCTION

Slide 74

Slide 74 text

Testing

Slide 75

Slide 75 text

One Unit Test equals 1 bit of information

Slide 76

Slide 76 text

One Unit Test equals one of my assumptions is true for one set of input on one particular machine at one particular point in time

Slide 77

Slide 77 text

Generative Testing

Slide 78

Slide 78 text

One Generative Test equals many bits of information

Slide 79

Slide 79 text

One Generative Test equals one of my assumptions is true for thousands of sets of input on one particular machine at one particular point in time

Slide 80

Slide 80 text

Ape Brains

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

Small numbers of medium-sized things

Slide 83

Slide 83 text

Math & Science

Slide 84

Slide 84 text

Reason

Slide 85

Slide 85 text

Measurement

Slide 86

Slide 86 text

Overcome Evolution

Slide 87

Slide 87 text

Thanks!

Slide 88

Slide 88 text

http://www.census.gov/ipc/www/worldhis.html http://pivotallabs.com/talks/139-metrics-metrics-everywhere http://www.infoq.com/presentations/Simple-Made-Easy http://greenteapress.com/thinkstats/ http://en.wikipedia.org/wiki/Human_microbiome http://en.wikipedia.org/wiki/Sun http://tedlab.mit.edu/~dr/Papers/Rohde-MRCA-two.pdf http://incanter.org/ http://www.khanacademy.org/ http://en.wikipedia.org/wiki/QuickCheck http://github.com/clojure/test.generative http://github.com/sjl/bacon-eve

Slide 89

Slide 89 text

/sjl/eve github.com bitbucket.org { }

Slide 90

Slide 90 text

Thanks!

Slide 91

Slide 91 text

No content