Greetings! My name is Marcelo Galvão Póvoa, a Computer Science graduate student from UNICAMP, Brazil. I am very glad to see LyX participating in GSoC this year, I hope to be able to contribute to this great application. One project idea that caught my attention was the "Interactive LyX": it's a very interesting feature, despite seeming quite tough to implement.
Coincidentally enough, I have already coded such thing for a school project once: it was a very simple text editor with support for multiple users editing the same document with a server used to receive and dispatch updates. It was written in Java using RMI and it behaved much like Google Docs does. Indeed, it was very important to carefully design the update routines to ensure consistency and be coherent. The most challenging part was dealing with Undo/Redo operations after the contents were modified. I have a couple questions to ask: - Can someone point me to the proof-of-concept patch that was posted on the list? I searched but couldn't find it. - Is the network approach supposed to be peer-to-peer? If so, I guess it would be harder to ensure consistency across local copies of the document since a user can disconnect at any time (e.g, just before or after making an edit). A centralized approach would be easier, with the server keeping a copy of the document, but should have more scalability issues. - How would we deal with more complex actions such as when a user adds an image? If we just add the inset to the other user, the image reference will be obviously broken, but should we actually upload the file? Doesn't seem like a good idea since it may be modified later. I am looking forward to your feedback. Marcelo