Parser 2011/Real-time collaboration

People interested

 * Brion
 * Trevor
 * Neil

Benefits

 * Could greatly enhance community bonds by allowing mentors and newbies to edit together
 * Get to consensus faster when editing an article
 * More of a social space
 * Especially good for focused groups like WikiProjects that depend on small numbers interacting intensely
 * Most groups who need to collaborate fast already use Google Docs or Etherpad or some such; (the WMF does a lot already) which makes translation to public wiki form tedious. This could bring them back to public wikis

Obstacles

 * Wikitext is not just formatted text, has embedded templates, parser functions, etc. etc.
 * MediaWiki's model is one user : one edit.
 * Could resolve this by creation sessions owned by a user, having others join, then adding other usernames to commit comment
 * If combined with visual editing, can make the software stack even more complex.

Relevant concepts

 * Operational transformation -- an algorithm to manage near-simultaneous edits on the same short span of text, where many clients receive each other's manipulations in a different order but must arrive at a consistent view.
 * histcomb.js -- a user script that combines multiple sequential edits by the same user in a single entry in the history log.

Status
Believed to be interesting enough to explore, not officially on the agenda.

Other pages

 * Project requirements
 * Project tasklist
 * EtherPadWebApi

History

 * Over Spring 2011, Trevor & Neil picked the brains of people who did Apache Wave (neé Google Wave), Etherpad, and more. Their concepts have already influenced some of Trevor's experiments, particularly annotated text over DOM-like hierarchical nodes.


 * April 21, 2011 - Talked to Etherpad-fork startup Hackpad - meeting record


 * May 5-6, 2011- Hackpad engineers work in WMF offices with Neil, create quick demo of Hackpad as a host for an editing session, via a user script.


 * May 10 - Project posted on Wikitech-l by Neil and Hackpad blog


 * May 15 - Neil gives lightning talk at Berlin Hackathon


 * June 23 - Defining user stories, deliverables


 * July 1 - Neil has local etherpad hostable, needs help making the Hackpad hacks work