ShareJS launch talk

2,707 views
2,617 views

Published on

Talk at SydJS launching ShareJS - a framework for collaboratively editing documents and stuff.

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • Hey Joseph,
    Just read your http://sharejs.org/ page. I suppose you are the one whose working on that and I see where you coming from. Google wave, just had a little youtube on that one (http://youtu.be/rDu2A3WzQpo) and fully understood straight away what going on. So cool, might wanna talk to you about ShareJS and stuff. cheers

    SEO Kiwi Limited NZ

    PS: Yes, I know your post is --> 'With love, Joseph Gentle, 6 Nov 2011', but still would like to talk about it :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,707
On SlideShare
0
From Embeds
0
Number of Embeds
505
Actions
Shares
0
Downloads
19
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ShareJS launch talk

    1. 1. ShareJSCollaborative Anything
    2. 2. Ace ShareJS Client OT ShareJS Server Redis OT
    3. 3. Ace[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT ShareJS Server Redis OT
    4. 4. Ace[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT ShareJS Server Redis OT
    5. 5. Other Ace Editor[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT ShareJS Server Redis OT
    6. 6. Other Ace Editor[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT ShareJS Server Redis OT
    7. 7. Other Ace Editor[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT Socket.io ShareJS Server Redis OT
    8. 8. Other Ace Editor[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT Socket.io REST ShareJS Server Redis OT
    9. 9. Other Ace Editor[{i:"H", p:0}] ShareJS Client[{i:"i", p:1}] OT Socket.io No stre REST aming ShareJS Server Redis OT
    10. 10. [{i:"H", p:0}] Client Server [{i:"i", p:1}]Ace ShareJS ClientSocket.io ShareJS Server
    11. 11. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce ShareJS ClientSocket.io ShareJS Server
    12. 12. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS ClientSocket.io ShareJS Server
    13. 13. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10Socket.io ShareJS Server
    14. 14. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10 open:true, v:10Socket.io ShareJS Server
    15. 15. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10 open:true, v:10Socket.io op:[{i:‘Hi’, p:0}], v:10 ShareJS Server
    16. 16. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10 open:true, v:10Socket.io op:[{i:‘Hi’, p:0}], v:10 op:[{d:"i", p:1}], v:11 ShareJS Server
    17. 17. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10 open:true, v:10Socket.io op:[{i:‘Hi’, p:0}], v:10 op:[{d:"i", p:1}], v:11 op:null, v:11 ShareJS Server
    18. 18. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10 open:true, v:10Socket.io op:[{i:‘Hi’, p:0}], v:10 op:[{d:"i", p:1}], v:11 op:null, v:11 ShareJS Server op:[{d:"H”, p:0}], v:12
    19. 19. [{i:"H", p:0}] Client Server [{i:"i", p:1}] doc:‘hello’, snapshot:nullAce doc:‘hello’, v:10, snapshot:‘’ ShareJS Client open:true, v:10 open:true, v:10Socket.io op:[{i:‘Hi’, p:0}], v:10 op:[{d:"i", p:1}], v:11 op:null, v:11 ShareJS Server op:[{d:"H”, p:0}], v:12 op:null, v:12
    20. 20. Ace ShareJS Client OT Socket.io REST ShareJS Server Redis OT
    21. 21. Ace ShareJS Client OT Socket.io REST Redis ShareJS Server OT Memory
    22. 22. Ace ShareJS Client OT Socket.io REST Redis ShareJS Server OT Memory % bin/sharejs
    23. 23. Ace ShareJS Client OT Socket.io REST ShareJS Server Memory OT Your Web App
    24. 24. Ace ShareJS Client OT ShareJS Server OT
    25. 25. OperationalOT = Transformation{
    26. 26. OperationalOT = Transformation{ = What happens if 2 people edit at the same time?
    27. 27. Operational OT = Transformation{ =Set of types What happens if 2 people edit at the same time?
    28. 28. Operational OT = Transformation{ = • TextSet of types What happens if 2 people edit at the same time?
    29. 29. Operational OT = Transformation{ = • TextSet of types What happens if 2 people • Rich text edit at the same time?
    30. 30. Operational OT = Transformation{ = • TextSet of types What happens if 2 people • Rich text edit at the same time? • JSON
    31. 31. Operational OT = Transformation{ = • TextSet of types What happens if 2 people • Rich text edit at the same time? • JSON • Your data
    32. 32. Operational OT = Transformation{ = • TextSet of types What happens if 2 people • Rich text edit at the same time? • JSON • Your data Only type right now
    33. 33. Operational OT = TransformationClient Server v10 ‘ACD’ v10 op:[{d:‘AC’, p:0}] op:[{i:‘B’, p:1}] ‘D’ ‘ABCD’ op:[{i:‘B’, p:0}] v11
    34. 34. Operational OT = TransformationClient Server v10 ‘ACD’ v10 op:[{d:‘AC’, p:0}] op:[{i:‘B’, p:1}] ‘D’ ‘ABCD’ op:[{d:‘A’, p:0}, op:[{i:‘B’, p:0}] v11 {d:‘C’, p:1}] v11
    35. 35. Operational OT = TransformationClient Server v10 ‘ACD’ v10 op:[{d:‘AC’, p:0}] op:[{i:‘B’, p:1}] ‘D’ ‘ABCD’ op:[{d:‘A’, p:0}, op:[{i:‘B’, p:0}] v11 {d:‘C’, p:1}] ‘BD’ v11
    36. 36. Ace ShareJS Client OT Socket.io REST Redis ShareJS Server OT Memory
    37. 37. Acesrc/client ShareJS Client OT Socket.io Socket.io REST Redis ShareJS Server OT Memory
    38. 38. Acesrc/client ShareJS Client OT Socket.io Socket.io RESTsrc/server Redis ShareJS Server OT Memory
    39. 39. Acesrc/client ShareJS Client Socket.io Operationalsrc/types OT = Transformation Socket.io RESTsrc/server Redis ShareJS Server Memory
    40. 40. Really beta warning
    41. 41. Really beta warning• No authentication• Need a rich text OT type• Could be way faster • Saves a snapshot with every op • O(N ) with the number of people typing in a 2 doc at the same time• Redis requires history to all fit in RAM. Mongodb?• Faye > SocketIO?• No undo support, even though thats really easy.
    42. 42. Really beta warning• No authentication• Need a rich text OT type• Could be way faster • Saves a snapshot with every op • O(N ) with the number of people typing in a 2 doc at the same time• Redis requires history to all fit in RAM. Mongodb?• Faye > SocketIO?• No undo support (should be easy!)
    43. 43. Really beta warning• No authentication• Need a rich text OT type• Could be way faster • Saves a snapshot with every op • O(N ) with the number of people typing in a 2 doc at the same time• Redis requires history to all fit in RAM. Mongodb?• Faye > SocketIO?• No undo support (should be easy!)
    44. 44. Really beta warning• No authentication• Need a rich text OT type• Could be way faster • Saves a snapshot with every op • O(N ) with the number of people typing in a 2 doc at the same time• Redis requires history to all fit in RAM. Mongodb?• Faye > SocketIO?• No undo support (should be easy!)
    45. 45. Help out!• http://sharejs.org/• Join the mailing list (link from the website)• ShareJSLib on twitter• Most importantly: Contribute code! • https://github.com/josephg/ShareJS

    ×