On Friday, March 3, 2017 at 10:55:30 AM UTC, Noah Hall wrote:
>
> Like oh-so-many things, I implemented this about 1.5 years ago now. I even 
> gave 2 talks on it. With Elm 0.17, you can implement it in under 30 lines 
> of code, using firebase as a host. Sadly, the recordings of both the talks 
> I gave on it are lost. But you can read it here -> 
> https://github.com/eeue56/talks/tree/master/experiments_in_elm#the-future-of-debugging-with-elm
>

You are oh-so-ahead-of-the-curve! Don't suppose you still have the code for 
it lurking in some github repo by any chance?

I thinking that a straightforward replay of messages across the whole 
application will probably not be a magic solution to writing a multi-user 
collaborative application. For example, in code I am working with 
currently, I render some stuff in a fixed position overlay, and its 
position will depend on how the client window is sized and scrolled - so a 
straightforward replay will likely see things end up in the wrong position. 
I think for collaborative work I would need to look into Operational 
Transformation (https://en.wikipedia.org/wiki/Operational_transformation) 
which is the technique that made Google Wave work. The idea would be to 
replicate a carefully chosen subset of events across all clients, and to 
ensure that they communicate the users intentions rather than details which 
are wholly specific to one client rendering or another. OT also deals with 
interleaving events without applying a global sequential ordering.

I thinks Elms update-model-view structure would be very convenient for OT. 
It still might be fun to try out a straightforward event replay across 
clients with 30 lines of code though.

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to