Time & Programming @markhibberd Ticking away the moments that - - PowerPoint PPT Presentation

time programming
SMART_READER_LITE
LIVE PREVIEW

Time & Programming @markhibberd Ticking away the moments that - - PowerPoint PPT Presentation

Hanging on in Quiet Desperation: Time & Programming @markhibberd Ticking away the moments that make up a dull day. You fritter and waste the hours in an offhand way. And then one day you find ten years have got behind you. No one


slide-1
SLIDE 1

Hanging on in Quiet Desperation:

@markhibberd

Time & Programming

slide-2
SLIDE 2

Ticking away the moments that make up a dull day. You fritter and waste the hours in an offhand way. … And then one day you find ten years have got behind you. No one told you where to run, you missed the starting gun.”

  • Roger Waters

slide-3
SLIDE 3

Complexity.

slide-4
SLIDE 4

1986.

slide-5
SLIDE 5
slide-6
SLIDE 6

Changeability. Conformity. Complexity. Invisibility.

slide-7
SLIDE 7

2006.

slide-8
SLIDE 8
slide-9
SLIDE 9

2011.

slide-10
SLIDE 10
slide-11
SLIDE 11

Present Day.

slide-12
SLIDE 12

1948.

slide-13
SLIDE 13
slide-14
SLIDE 14

1958-1963.

slide-15
SLIDE 15
slide-16
SLIDE 16

The big idea.

slide-17
SLIDE 17

If we can reason about all the states of a system.

slide-18
SLIDE 18

And we can understand how each state is arrived at.

slide-19
SLIDE 19

We can make better decisions, and start to unwind the interdependencies and complexity caused by time and ordering.

slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22

Present Day.

slide-23
SLIDE 23

2004-2006.

slide-24
SLIDE 24

Disconnected networks.

slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30
slide-31
SLIDE 31

{dock:0 ,red:0 ,purple:0} {dock:0 ,red:0 ,purple:0} {dock:0 ,red:0 ,purple:0}

  • wner|id|item|count

red |0 |x |99 red |1 |y |1 dock |2 |z |33

slide-32
SLIDE 32

{dock:3 ,red:0 ,purple:0} {dock:0 ,red:0 ,purple:1} {dock:0 ,red:7 ,purple:0}

slide-33
SLIDE 33

{dock:5 ,red:0 ,purple:0} {dock:0 ,red:7 ,purple:1} {dock:0 ,red:7 ,purple:1}

slide-34
SLIDE 34

{dock:5 ,red:0 ,purple:0} {dock:3 ,red:7 ,purple:1} {dock:0 ,red:7 ,purple:1}

slide-35
SLIDE 35

{dock:7 ,red:7 ,purple:3} {dock:7 ,red:7 ,purple:3} {dock:0 ,red:8 ,purple:1}

slide-36
SLIDE 36

{dock:7 ,red:8 ,purple:3} {dock:7 ,red:8 ,purple:3} {dock:7 ,red:8 ,purple:3}

slide-37
SLIDE 37
slide-38
SLIDE 38

2009-2010.

slide-39
SLIDE 39

The most complex system I ever worked on.

slide-40
SLIDE 40

A web API with 2 resources.

slide-41
SLIDE 41

POST /activate POST /check Call to activate a product, validate and register license details Check license and validate installation details.

slide-42
SLIDE 42

What could possibly go wrong?

slide-43
SLIDE 43
slide-44
SLIDE 44

POST /activate POST /check

slide-45
SLIDE 45

POST /activate POST /check POST /check2007

slide-46
SLIDE 46

POST /activate?magik=true POST /check POST /check2007

slide-47
SLIDE 47

POST /activate?magik=true POST /check POST /check2007 POST /activatev3

slide-48
SLIDE 48

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /check9

slide-49
SLIDE 49

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /activate-new POST /check9

slide-50
SLIDE 50

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /activate-new?legacy=1 POST /check9

slide-51
SLIDE 51

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /activate-new?legacy=1 POST /check9

slide-52
SLIDE 52

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /activate-new?legacy=1 POST /check9

slide-53
SLIDE 53

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /activate-new?legacy=1 POST /check9

slide-54
SLIDE 54

POST /activate?magik=true POST /check POST /check2007 POST /activatev3 POST /activate-new?legacy=1 POST /check9

slide-55
SLIDE 55

From: https://stripe.com/blog/api-versioning

slide-56
SLIDE 56

2013-2017.

slide-57
SLIDE 57

Full circle. A machine learning problem.

slide-58
SLIDE 58

We need to describe the world, now and in the past.

slide-59
SLIDE 59

cause(π)(α)

slide-60
SLIDE 60

at(I)(desk)

slide-61
SLIDE 61

at(I)(desk) at(desk)(home)

slide-62
SLIDE 62

at(I)(desk) at(desk)(home) ∴ at(I)(home)

slide-63
SLIDE 63

TX CUSTOMER ITEM AMOUNT TIMESTAMP 1 X0001 Pen $5 2016-08-01T12:24:13 2 X0001 Notepad $20 2017-01-01T02:19:01 3 X0002 Calculator $55 2015-01-01T09:55:21 4 X0003 Book $30 2017-07-01T15:34:53

slide-64
SLIDE 64

CUSTOMER LOCATION X0001 NY X0002 SINGAPORE X0003 HONG KONG X0004 SYDNEY X0005 SYDNEY

slide-65
SLIDE 65

CUSTOMER LOCATION TIMESTAMP X0001 NY 2016-08-01T00:00:00 X0002 SINGAPORE 2017-08-04T00:00:00 X0003 HONG KONG 2016-01-21T00:00:00 X0004 SYDNEY 2016-08-01T00:00:00 X0005 SYDNEY 2014-12-24T00:00:00

slide-66
SLIDE 66

CUSTOMER LOCATION TIMESTAMP X0001 NY 2016-08-01T00:00:00 X0002 SINGAPORE 2017-08-04T00:00:00 X0003 HONG KONG 2016-01-21T00:00:00 X0004 SYDNEY 2016-08-01T00:00:00 X0005 SYDNEY 2014-12-24T00:00:00 X0001 LONDON 2017-09-07T00:00:00

slide-67
SLIDE 67

What is in a time?

slide-68
SLIDE 68

World Time System Time

slide-69
SLIDE 69

When is this fact valid? When did we learn this fact?

slide-70
SLIDE 70

Intervals.

X0001 NY 2016-08-01T00:00:00 X0001 LONDON 2017-09-07T00:00:00

slide-71
SLIDE 71

Instants.

1 X0001 Pen $5 2016-08-01T12:24:13

slide-72
SLIDE 72

Horizons.

1 X0001 Pen $5 2016-08-01T12:24:13

slide-73
SLIDE 73

Horizons.

1 X0001 Pen $5 1234

slide-74
SLIDE 74

2013-2017.

slide-75
SLIDE 75

Operations as a system.

slide-76
SLIDE 76

This is complexity.

slide-77
SLIDE 77

Techniques!

slide-78
SLIDE 78

How does time impact the system?

slide-79
SLIDE 79
slide-80
SLIDE 80
slide-81
SLIDE 81

2014.

slide-82
SLIDE 82

towards

annɛx

slide-83
SLIDE 83

Semantic versioning is not the whole story.

slide-84
SLIDE 84

Open world.

slide-85
SLIDE 85

Time matters.

slide-86
SLIDE 86

commit

slide-87
SLIDE 87

ci

slide-88
SLIDE 88

publish

slide-89
SLIDE 89

platform test

slide-90
SLIDE 90

production

slide-91
SLIDE 91

performance

slide-92
SLIDE 92

cve

slide-93
SLIDE 93

eminence boxer napoleon snowball

slide-94
SLIDE 94

boxer 1.2.1 commit: bd2f074…02 api-signature: […] feature: it-works artifact: tag: bin/boxer flags: […] address: e2f1…bc74

slide-95
SLIDE 95

:boxer :has :feature “multi-part-put” :has :commit “abcd-1345” :has :branch “master” :snowball :is :compatable-with atom/… :napoleon :semver >= 1.3 < 1.4 :no-cve +annex.example.com@HEAD

slide-96
SLIDE 96
slide-97
SLIDE 97
slide-98
SLIDE 98
slide-99
SLIDE 99
slide-100
SLIDE 100
slide-101
SLIDE 101
slide-102
SLIDE 102
slide-103
SLIDE 103

Present Day.

slide-104
SLIDE 104

Artifacts over constructs.

slide-105
SLIDE 105

Time and ordering are out to get us.

slide-106
SLIDE 106

Techniques abound.

slide-107
SLIDE 107

If we can reason about all the states of a system.

slide-108
SLIDE 108

And we can understand how each state is arrived at.

slide-109
SLIDE 109

We can make better decisions, and start to unwind the interdependencies and complexity caused by time and ordering.

slide-110
SLIDE 110

Hanging on in Quiet Desperation:

@markhibberd

Time & Programming