

Cursor preservation in collaborative editors - jsrn
http://neil.fraser.name/writing/cursor/

======
jacquesm
This is a very interesting development, there was an article here a while ago
about multiple cursors & keyboards in use on a single display using a hacked X
server.

~~~
jsrn
> [...] there was an article here a while ago about multiple cursors &
> keyboards in use on a single display using a hacked X server.

do you have the link perhaps?

~~~
jacquesm
let me go find it for you...

edit: here you go:
<http://www.cs.princeton.edu/omnimedia/papers/multicursor.pdf>

~~~
jsrn
thank you:-) [I tried to find it, but my google-fu seems a bit rusty today...]

I just finished skimming the paper - interesting how many different approaches
there are for collaboration - e.g. the server in the paper is very general
(works for all X apps) but aimed at control rooms (low latency) - while
specialized collaborative editing systems (which work by synching n copies)
often can deal with higher latency while not sacrificing ease of use.

I wonder if it is possible to unite generality and latency-tolerance...

~~~
jacquesm
You're welcome. Google is not always good at finding stuff that you know
exists if you don't use the right keywords, also, your queries could have the
result but only on page 85 or so...

I think the latency issues can be solved, after all when you use X over a
network or when you use something like VNC to have access to a remote machine
you are the one to decide to do so, the latency is something you take for
granted (and with a good dsl setup it is quite amazing how responsive a remove
session can be).

I think this is mostly a transitional issue that will solve itself in due
course, after all, networks get faster all the time and latency is fairly
steadily going down.

RTT from where I'm sitting to Amsterdam is 21 ms, to the US eastcoast it is
about 90. That's not so bad, it would have to be a pretty critical application
if that sort of latency would give trouble.

And if the application is 'aware' of its circumstances (such as a web based
collaboration tool) then I'm sure you could tune it to the situation to
achieve even better performance by masking some of the effects the latency
causes.

Every multi-player networked game effectively implements strategies like that
in order to mask the fact that the players are not sharing the same
environment.

------
shalmanese
on thing that wasn't mentioned was using higher level information to infer
cursor position. ie: instead of just saying text disappeared here, text
appeared here, say a cut operation was performed here and a paste operation
was performed here.

~~~
omouse
This is a difficult problem to deal with, due to the nature of HTML and XML.
They both use embedded markup instead of annotations so when you're operating
on things, you're not actually operating on text, you're operating on a
_tree_.

