Slide 1

Slide 1 text

how simplicity will save GIS Vladimir Agafonkin 10.09.14

Slide 2

Slide 2 text

Vladimir Agafonkin

Slide 3

Slide 3 text

how simplicity will save GIS

Slide 4

Slide 4 text

how simplicity will save GIS

Slide 5

Slide 5 text

GIS is hard

Slide 6

Slide 6 text

6.5 years building map apps

Slide 7

Slide 7 text

author and maintainer of

Slide 8

Slide 8 text

by far the most used open source map library

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

still clueless about GIS

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

typical FOSS4G talk

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

clueless about GIS exactly the reason why Leaflet succeeded

Slide 16

Slide 16 text

story recap now with animated GIFs!

Slide 17

Slide 17 text

April 2008

Slide 18

Slide 18 text

22 years old

Slide 19

Slide 19 text

so I’m doing maps now, how hard could this be?

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

maps huh? • image tiles involved • pan and zoom with a mouse • maybe put some stuff on top

Slide 22

Slide 22 text

PFF

Slide 23

Slide 23 text

Lets build a JS API from scratch!

Slide 24

Slide 24 text

NO

Slide 25

Slide 25 text

— don’t reinvent the wheel — there’s a mature established open source solution — lets build a wrapper

Slide 26

Slide 26 text

OpenLayers >100,000 lines of code? hundreds of features? megabytes of JavaScript?

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

building an API wrapper

Slide 29

Slide 29 text

#osmdev: hey guys, what do you think about making a simple, lightweight OL alternative?

Slide 30

Slide 30 text

no way you could do that

Slide 31

Slide 31 text

wasting time instead of contributing

Slide 32

Slide 32 text

community: worthless idea ! boss: don’t reinvent the wheel

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

oh wait

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

building from scratch; didn’t tell anyone

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

a couple weeks later

Slide 39

Slide 39 text

Web Maps Lite

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

born as a protest against bloat, clutter and complexity

Slide 43

Slide 43 text

3 years later: open source!

Slide 44

Slide 44 text

now

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

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

but how?

Slide 56

Slide 56 text

simplicity

Slide 57

Slide 57 text

thought process of an aspiring map app creator:

Slide 58

Slide 58 text

I want to learn GIS, reading books and academic papers and articles about geospatial data, map projections, server-side technologies, databases, different geospatial standards and protocols and their implementations in available range of server and client software, perform analysis of my data and use cases, preferably involving other GIS specialists and do a lot of other research so that I can make sensible decisions about the required technology stack, adjust it to the needs of my application and finally make а f**king map (maybe in a couple years)

Slide 59

Slide 59 text

I want a map right now

Slide 60

Slide 60 text

No content

Slide 61

Slide 61 text

get the tech out of my way

Slide 62

Slide 62 text

application development is a creative process

Slide 63

Slide 63 text

technology should bridge the gap between creative thinking and the end result

Slide 64

Slide 64 text

dr ken robinson I believe this passionately: that we don’t grow into creativity, we grow out of it. Or rather, we get educated out if it.

Slide 65

Slide 65 text

you must unlearn what you have learned

Slide 66

Slide 66 text

let me create, explore, experiment, and learn along the way

Slide 67

Slide 67 text

we spend so many years learning things before we get the chance to understand how to apply our knowledge

Slide 68

Slide 68 text

creative learning: create learn

Slide 69

Slide 69 text

“The true sign of intelligence is not knowledge but imagination.” —Albert Einstein

Slide 70

Slide 70 text

dead simple to get started dead simple to understand dead simple to use

Slide 71

Slide 71 text

don’t force me to think about unimportant things until I’m ready to address them convention over configuration:

Slide 72

Slide 72 text

complexity fills your mind, makes it slow and inert, it dumbs you down

Slide 73

Slide 73 text

No content

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

simplicity frees your mind, unleashes your creativity and learning potential

Slide 76

Slide 76 text

No content

Slide 77

Slide 77 text

No content

Slide 78

Slide 78 text

simplicity enables you to do more with less

Slide 79

Slide 79 text

decision process of a company that’s looking to add a map to their service:

Slide 80

Slide 80 text

so lets hire a GIS consulting firm to do some research for us and choose the right technology stack and then help us set it up and consult our developers so that they could get more familiar with it and maybe also buy some enterprise support plan and…

Slide 81

Slide 81 text

hey front-end guy! make a map!

Slide 82

Slide 82 text

No content

Slide 83

Slide 83 text

the most successful tech companies have the tinkerer culture

Slide 84

Slide 84 text

creative + productive + happy => awesome apps

Slide 85

Slide 85 text

lots of awesome apps => community growth & tech exposure

Slide 86

Slide 86 text

simplicity attracts a vibrant community

Slide 87

Slide 87 text

simplicity means focus on the essentials, which leads to higher quality

Slide 88

Slide 88 text

“Simplicity is prerequisite for reliability.” —Edsger Dijkstra

Slide 89

Slide 89 text

thou shalt not try to cover all the use cases

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

No content

Slide 92

Slide 92 text

No content

Slide 93

Slide 93 text

feature need complexity simplify

Slide 94

Slide 94 text

simplicity means easier profiling and less bottlenecks, which leads to better performance

Slide 95

Slide 95 text

RBush

Slide 96

Slide 96 text

simplify.js

Slide 97

Slide 97 text

seidel + earcut OSM building (15 vertices) earcut x 707,439 ops/sec pnltri x 227,890 seidel x 77,236 poly2tri x 29,354 libtess x 21,875 ! monkey (1204 vertices): seidel x 608 libtess x 342 poly2tri x 239 earcut x 219 pnltri x 112 dude shape (94 vertices): earcut x 33,620 pnltri x 13,626 seidel x 10,037 libtess x 4,362 poly2tri x 3,773

Slide 98

Slide 98 text

simplicity makes people less hesitant to contribute

Slide 99

Slide 99 text

simplicity makes it easier to concentrate

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

No content

Slide 102

Slide 102 text

simplification is how the technological progress happens

Slide 103

Slide 103 text

hard problem

Slide 104

Slide 104 text

manageable problem

Slide 105

Slide 105 text

simple problem harder problem

Slide 106

Slide 106 text

No content

Slide 107

Slide 107 text

binary code assembler C scripting languages

Slide 108

Slide 108 text

jQuery

Slide 109

Slide 109 text

Ruby on Rails

Slide 110

Slide 110 text

node.js

Slide 111

Slide 111 text

“Simplicity is the outcome of technical subtlety. It is the goal, not the starting point.” —Maurice Saatchi

Slide 112

Slide 112 text

“oh but we’re not paid to do simple things!”

Slide 113

Slide 113 text

No content

Slide 114

Slide 114 text

people who resist progress, unwilling to learn and adapt continuously, are in denial and always fail

Slide 115

Slide 115 text

you don’t think about simplicity when complexity is taken for granted

Slide 116

Slide 116 text

paradox of fitness: you don’t realize the benefits of regular exercise until you become more physically fit

Slide 117

Slide 117 text

simplicity is a muscle, it needs to be exercised consistently

Slide 118

Slide 118 text

No content

Slide 119

Slide 119 text

lets make a collective conscious effort to simplify GIS technology

Slide 120

Slide 120 text

so that we can be happy and build more awesome stuff!

Slide 121

Slide 121 text

No content

Slide 122

Slide 122 text

No content

Slide 123

Slide 123 text

thank you