During this summer I propose to implement a rudimentary version of the GOCollab initiative for the Abiword/GNOME group. GOCollab stands for GNOME Office Collaboration, the idea behind the initiative is to make it possible to edit documents among multiple users across the Internet in realtime. A document outlining the initiative can be found at the following site http://mattcolyer.com/media/CollaborationFeature-4-2-Journal.rtf. The concept is similar to SubEthaEdit which can be found at http://www.codingmonkeys.de/subethaedit/.

This technology and the associated concepts has been a passion of mine for some time. During my freshman year at school I worked on an implementation of such a system using Python and reading up on the current research (http://citeseer.ist.psu.edu/sun98achieving.html). The result of that semester’s work can be seen at http://students.olin.edu/2007/mcolyer/projects/collaborate/. The results were far from perfect but it I learned a lot while conducting the independent study. Since then, I have grown in my understanding of the algorithms involved and earlier this year I rewrote the backend from scratch. The rewrite served to further solidify my understanding of the concepts.

Just a weeks ago, I saw that Martin Sevior of Abiword made the GOCollab initiative public and realized that they were trying to accomplish the same goal. Since then, I have been in contact with Martin and am excited about the possibilities of working on the project.

I understand that Abiword is not listed directly on your site as a supporting organization, but I believe that this project should qualify as one of the Summer of Code projects as the results of this project will affect the entire GNOME project (which is one of your supporting organizations). Additionally I asked Martin to email code@labs.google.com as was suggested by the summer-discuss list.

I look forward to hearing back from you soon.

-Matt Colyer

PostScript: As I submitted this Martin replied that google had rejected him as a mentor. I sent it in anyway.