|
Collaborative Editor Group |
---|
Team Member
Adam: adam.torgerson[at]colorado[dot]edu
Final Report 4/27
Presentation Slides: pres.pdf
First Progress Report 4/4
Second Progress Report 4/13
Goal and Objective
I would like to create an initial prototype of a collaborative text editor, in the vein of SubEthaEdit to enable users to collaborate on a text document.
Context
Effective collaboration across time and distance has been a popular goal for some time now. But my recent experiences of trying to collaborate with others for group projects, especially for collaborative coding, there is not much out there besides SubEthaEdit, which is a closed commercial product that only runs on OS X. Given that my development environment is GNU/Linux and I prefer to use Open Source software, this is not an acceptable solution. In one instance of trying to collaboratively edit a document, I used a terminal reflection screen (VNC) to view a common file with another editor. Even under this setup only one person was able to type directly into the text file at a time.
SubEthaEdit uses the Rendezvous (a minimal configuration network discovery protocol) and IP network protocols to enable users to edit a a common document simultaneously. A user would launch the application, initiate a document, and enable sharing. Another user would then join the shared editing session. Each member would choose a unique color to display their contribution to the document. As the user types in their window, SubEthaEdit would display the resulting text immediately on the other user's view of the document.
SubEthaEdit also supports direct integration with instant message that would allow users to interact apart from the collaborative text. This feature allows for user interaction that supports the collaboration process.
Means
I propose the following high level tasks. First, the existing features of SubEthaEdit will be analyzed for its collaborative approach and implementation for elements that we can reuse and those that need to be improved upon. Based on the analysis, I will create an initial development plan that will emphasize software component reuse due to the short project deadline. I hope to reuse a good open source text editor and integrate the needed network support.
Specific Challenges
- Can I reuse an editing component from an Open Source project? I am not interested in building an editor, so it would be ideal if I could modify an existing editor or editing framework to support collaboration.
- Editor design: There are many decisions to be made with regard to what editor/editing framework I will use, also which programming language that will be used for implementation, and whether to use a binary network protocol, XML, and/or an RPC scheme.
- Can I integrate Zeroconf to support Rendezvous-like behavior?
- Should I try to integrate with an existing chat client? Using an existing chat client may have drawbacks, the user needs the chat software installed and usually needs an account with the main chat servers. I could also build a simple chat interface component into the editor itself.
- Can we enhance the interaction model to incorporate off-line collaborative activity? If so, is there any way to integrate swiki activity into the editor?
Relationship to Course
The proposed project directly addresses the theme of design for collaboration. I hope to integrate both a conceptual approach in understanding collaborative editing and a practical protocol which myself and members of my research group can use for collaborative code editing.
|
|