From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <3e1162e61003150830r6ceff701h1abbc7fcf8ea47fa@mail.gmail.com> References: <3aaafc131003150705t5832e72fv6b17c1bf6da000ef@mail.gmail.com> <3e1162e61003150734y7c7482fbsfcdca20069cc4ac2@mail.gmail.com> <3aaafc131003150814k983f8d8k99e90abb16c73f32@mail.gmail.com> <3e1162e61003150830r6ceff701h1abbc7fcf8ea47fa@mail.gmail.com> Date: Mon, 15 Mar 2010 13:47:25 -0400 Message-ID: <3aaafc131003151047g1ff880cdxec116fd86a60d346@mail.gmail.com> From: Jorden Mauro To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] Collaborative Sam? Topicbox-Message-UUID: e941f4f2-ead5-11e9-9d60-3106f5b1d025 On Mon, Mar 15, 2010 at 11:30 AM, David Leimbach wrote: > > > On Mon, Mar 15, 2010 at 8:14 AM, Jorden Mauro wrote: >> >> On Mon, Mar 15, 2010 at 10:34 AM, David Leimbach >> wrote: >> > I don't know enough about sam's innards to be able to say whether or n= ot >> > this could work, but I do like the idea. >> >> I think it's doable because of the way sam's remote mode works -- it >> appears to just use pipes. >> >> Therefore, I thought that maybe a multiplexer could sit between a >> single sam and several samterms, organizing the protocol messages from >> all the different samterms and presenting something sane to the single >> sam -R instance. It would have to be convincing to that individual >> sam, appearing to be a single `normal' samterm. I think the fact that >> sam uses a database-like protocol would make that possible; all the >> results of the multiplexer's merging and so forth would be presented >> to the sam -R instance as if they were coming in as protocol messages >> from a single samterm. >> > > Well I think there'd have to be a concept of a session in there somewhere= , > so that edits by one person could be differentiated from edits by another= . > =A0Also how atomic are the messages in the protocol and can they be > "committed" transactionally =A0to the buffer? =A0If so I think there migh= t be > something doable here. I would think that the multiplexer would handle all of this. It could just check what time the samterms' messages come to it, resolve them, and output a single stream of sam protocol messages to the single sam -R on the server side. Of course, there's more to this `handling' than there seems at first glance, but as long as the multiplexer can handle all the client samterms' messages, merge everything properly, and once it makes sense of all the requests, emit a single stream of sane samterm messages to the sam -R that it talks to on the server-side, I think it would work. The only modification to sam would be adding the option to set up the pipes on both ends and fork the multiplexer -- which would read pretty much the same as the connectto() functionn /sys/src/cmd/sam/io.c . > It'd be cool to use with Inferno for example, where you can run editing > sessions from anyone's PC in a company setting. > Isn't that what the collaborative whiteboard app in Inferno is/was for? > =A0I've never tried running it. > Dave > >> >> > >> > On Mon, Mar 15, 2010 at 7:05 AM, Jorden Mauro wrot= e: >> >> >> >> How hard would it be to stick a program between a single sam -R and >> >> several samterms? I imagine such a program would have to interpret th= e >> >> sam protocol and handle merges and simultaneous updates, but since sa= m >> >> essentially treats files operations as database transactions, it seem= s >> >> like sam's protocol could be very helpful. The possibilities for what >> >> such an intermediary program could do are probably limitless, but I >> >> was thinking it could make collaborative editing via sam a >> >> possibility. >> >> >> >> I don't know enough about sam's protocol to know if such an idea woul= d >> >> work. >> >> >> > >> > >> > >