C O L L A B O R AT I N G O V E R
M O U N TA I N T O P N E T W O R K S .
D O E S T H E N E T W O R K S E E M T H I N U P H E R E ?
Slide 2
Slide 2 text
I ’ M J O N AT H A N M A R T I N .
@ N Y B B L R
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
I ’ M F R O M AT L A N TA .
@ N Y B B L R
Slide 5
Slide 5 text
I ’ M F R O M M O B I L E .
@ N Y B B L R
Slide 6
Slide 6 text
I ’ M F R O M D A L L A S .
@ N Y B B L R
Slide 7
Slide 7 text
I ’ M F R O M A N Y W H E R E .
@ N Y B B L R
Slide 8
Slide 8 text
I ’ M A D I G I TA L N O M A D .
@ N Y B B L R
Slide 9
Slide 9 text
T H E O F F I C E O F
D I G I TA L N O M A D S .
W E L C O M E T O M Y C U B I C L E .
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
• Last-minute flights
• Live out of a backpack
• Translate road signs at 60 mph
• Live like the locals
Slide 12
Slide 12 text
H O T E L W I F I D O E S N ’ T C O U N T.
is the WiFi of nomads.
Slide 13
Slide 13 text
• Bloggers, journalists, or software devs
• Primarily writing + collaborating on the go
• Poor connectivity outside the cities
• Offline a lot of the time
Slide 14
Slide 14 text
A L E X B E T H
F O O D I E J O U R N A L I S T
Slide 15
Slide 15 text
A L E X A N D B E T H A R E
S A N D W I C H H I S T O R I A N S .
S O B A S I C A L LY…
Slide 16
Slide 16 text
T H E Y WA N T T O W R I T E
C O L L A B O R AT I V E LY.
N O M AT T E R T H E I R L O C AT I O N …
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
I O N LY C H A N G E D O N E W O R D …
Slide 19
Slide 19 text
W H AT A R E A L L T H E S E F L A G S ? !
Slide 20
Slide 20 text
R E A LT I M E . Y E P.
Slide 21
Slide 21 text
G O O G L E D O C S
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
E T H E R PA D
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
A L E X A N D B E T H WA N T T O
C O L L A B O R AT E U P H E R E .
D O E S T H E N E T W O R K S E E M T H I N U P H E R E ?
Slide 26
Slide 26 text
• Conflict resolution algorithm
• Network for propagating changes to peers
• Slick editor
Slide 27
Slide 27 text
M E R G I N G C H A N G E S F O R
E V E N T U A L C O N S I S T E N C Y
A L E X A N D B E T H M A K E C H A N G E S A T T H E S A M E T I M E .
Slide 28
Slide 28 text
W E C A N ’ T TA K E T U R N S .
T H E S P E E D O F L I G H T I S S L O W.
Slide 29
Slide 29 text
L E T ’ S B E C O N S I S T E N T.
E V E N T U A L LY.
Slide 30
Slide 30 text
A L E X & B E T H A R E
G R O C E RY S H O P P I N G .
M E A N W H I L E I N A N A L P I N E V I L L A G E …
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
A L E X
B E T H
Slide 33
Slide 33 text
{,,}∪{,} = {,,,}
{,,}∩{,} = {}
{,,}
Slide 34
Slide 34 text
?
Slide 35
Slide 35 text
A L E X
B E T H
Slide 36
Slide 36 text
A L E X
B E T H
{,,,} {}
=
or ?
Slide 37
Slide 37 text
A L E X
B E T H
=
DEL()
INS()
DEL()
∪
{DEL(),INS(),DEL()}
Slide 38
Slide 38 text
{,,}
{DEL(),INS(),DEL()} = {,}
Slide 39
Slide 39 text
A L E X & B E T H A R E B L O G G I N G
A B O U T S A N D W I C H E S .
W I T H L U N C H TA K E N C A R E O F…
Slide 40
Slide 40 text
Sandwiches are a popular type of lunch
food, taken to work, school, or picnics
to be eaten as part of a packed lunch.
“
”
Slide 41
Slide 41 text
“sandwich”
Slide 42
Slide 42 text
“sandwich”
A L E X “sandwich”
⁰¹² ³⁴⁵⁶
B E T H “sandwhich”
⁰¹²³⁴⁵⁶⁷⁸
⁰¹²³⁴⁵⁶⁷
Slide 43
Slide 43 text
B E T H
A L E X
“sandwich”
DEL(3)
INS(5,“h”)
⁰¹²³⁴⁵⁶⁷
“sandwihch”
⁰¹² ³⁴⁵⁶⁷
Slide 44
Slide 44 text
“sanwihch”
Slide 45
Slide 45 text
B E T H
A L E X
“sandwich”
DEL(3)
INS(5 =4,“h”)
⁰¹²³⁴⁵⁶⁷
“sanwhich”
⁰¹²³⁴⁵⁶⁷
⁰¹²-³⁴⁵⁶
⁰¹²³⁴⁵⁶⁷
“sandwich”
-1
Slide 46
Slide 46 text
“sanwhich”
Slide 47
Slide 47 text
A TA L E O F T W O T I P I S
O P E R AT I O N A L T R A N S F O R M S
Slide 48
Slide 48 text
op1 ∘ T(op2, op1) ≡ op2 ∘ T(op1, op2)
T(op3, op1 ∘ T(op2, op1)) =
T(op3, op2 ∘ T(op1, op2))
T P 2
T P 1
Slide 49
Slide 49 text
B E T H
A L E X
“abc” “abc”
op1: INS(3,“x”) op2: DEL(2)
“abxc” “ac”
“axc” “acx”
Slide 50
Slide 50 text
B E T H
A L E X
“abc” “abc”
op1: INS(2,“x”) op2: DEL(2)
“axbc” “ac”
C H R I S
“abc”
op3: INS(3,“y”)
“abyc”
“axyc” “ayxc”
or ?
Slide 51
Slide 51 text
– G ´ E R A L D O S T E R E T A L .
“…currently there are no correct
transformation functions…”
Slide 52
Slide 52 text
– G ´ E R A L D O S T E R E T A L .
“…OT cannot be used to build a safe
decentralized collaborative [editor].”
Slide 53
Slide 53 text
M E E T D O C S .
Slide 54
Slide 54 text
P R E C O N D I T I O N S &
T O M B S T O N E S
I D O N ’ T F O L L O W. C O U L D Y O U G I V E M E M O R E C O N T E X T ?
Slide 55
Slide 55 text
s≺a≺n
Slide 56
Slide 56 text
s≺a≺n a≻s,a≺n
≡
Slide 57
Slide 57 text
“sandwich”
⁰¹²³⁴⁵⁶⁷
Slide 58
Slide 58 text
INS(d≺y≺w)
INS(d≺e≺w)
s≺a≺n≺d≺w≺i≺c≺h
DEL(n≺d≺w)
Slide 59
Slide 59 text
INS(d≺y≺w)
INS(d≺e≺w)
s≺a≺n≺w≺i≺c≺h
Slide 60
Slide 60 text
“sandwich”
⁰¹²-³⁴⁵⁶
Slide 61
Slide 61 text
INS(d≺y≺w)
INS(d≺e≺w)
s≺a≺n≺d≺w≺i≺c≺h
Slide 62
Slide 62 text
INS(d≺e≺w)
s≺a≺n≺d≺y≺w≺i≺c≺h
Slide 63
Slide 63 text
s≺a≺n≺d≺e≺y≺w≺i≺c≺h
Slide 64
Slide 64 text
“saneywich”
Slide 65
Slide 65 text
“sandwich”
⁰¹²-³⁴⁵⁶
Slide 66
Slide 66 text
“sandywhiddwich”
⁰¹²-------³⁴⁵⁶
Slide 67
Slide 67 text
C R D T: C O N F L I C T- F R E E
R E P L I C AT E D D ATA T Y P E
W E C A N D O ( M U C H ) B E T T E R .
Slide 68
Slide 68 text
L S E Q : L I N E A R
S E Q U E N C E
A N E F F I C I E N T T R E E - B A S E D C R D T S E Q U E N C E
Slide 69
Slide 69 text
“sandwich”
⁰¹²³⁴⁵⁶⁷
Slide 70
Slide 70 text
s
a
n
d
w
i
c
h
Slide 71
Slide 71 text
n
a
d
s
w
i
c
h
root
begin end
0 9
3
5
7 8
3 7 4
3
Slide 72
Slide 72 text
d
3
7
7
n
a
s
w
i
c
h
root
begin end
0 9
5
8
3 4
3
Slide 73
Slide 73 text
d
3
7
7
a
s
root
Slide 74
Slide 74 text
[3.7.7]
Slide 75
Slide 75 text
INS([3.7.7],“y”,[3.8])
[3.7.7] [3.8]
Slide 76
Slide 76 text
INS( ,“y”, )
d w
[3.7.7] [3.8]
Slide 77
Slide 77 text
INS( ,“y”, ) =
d w
[3.7.7] [3.8]
y
[3.7.9]
Slide 78
Slide 78 text
[3.7.9]
Slide 79
Slide 79 text
n
a
d
s
w
i
c
h
root
begin end
0 9
3
5
7 8
3 7 4
3
Slide 80
Slide 80 text
n
a
d
s
w
i
c
h
root
begin end
0 9
3
5
7 8
3
7
4
3
y
9
Slide 81
Slide 81 text
INS( )
y
[3.7.9]
INS( )
h
[3.8.2]
B E T H
A L E X
Slide 82
Slide 82 text
n
a
d
s
w
i
c
h
root
begin end
0 9
3
5
7 8
3 7 4
3
Slide 83
Slide 83 text
n
a
d
s
w
i
c
h
root
begin end
0 9
3
5
7 8
3
7
4
3
y
9
Slide 84
Slide 84 text
n
a
d
s
w
h
c
h
root
begin end
0 9
3
5
7 8
3
7 2
3
y
9
i
4
Slide 85
Slide 85 text
“sandywhich”
Slide 86
Slide 86 text
• No master peer
• Works with any number of peers
• No tombstones
• Memory usage grows slowly
• Operations can be applied quickly
• Resilient to long offline spells
Slide 87
Slide 87 text
github.com/Chat-Wane/LSEQTree
L S E Q J A VA S C R I P T I M P L E M E N TA T I O N
Slide 88
Slide 88 text
arxiv.org/abs/1608.03960
J S O N C R D T
Slide 89
Slide 89 text
P 2 P N E T W O R K S
A L E X A N D B E T H N E E D T O E X C H A N G E O P E R A T I O N S .