Parser 2011/Real-time collaboration

People interested

 * Brion
 * Trevor
 * Neil
 * Paul Charlton
 * Ashish Dubey
 * Mark Holmquist
 * Onny
 * Rexford
 * AwesomeSaucer

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
 * Remove all Edit Conflicts

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.
 * MIAWiki for Real-Time Mass Collaboration, fully functional system based on AIMS and SIMS concepts
 * AIMS - Atomized Information Managenet System
 * SIMS - Secondary Information Management System

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

Mark Holmquist posted to the wikitech-l list announcing a test instance of MediaWiki with an experimental extension enabling this feature:

Other pages

 * Project requirements
 * Project tasklist
 * EtherPadWebApi
 * Extension:EtherEditor
 * VisualEditor/Design/Realtime collaboration
 * Extension:TogetherJS

Edit Conflict links

 * m:Help:Edit conflict (or w:en:Help:Edit conflict)
 * Manual:Hooks/EditPageBeforeConflictDiff
 * San Francisco Hackathon January 2012/Teams
 * Micro Design Improvements
 * Edit conflict handling suggestion (2004)
 * One and Two sets of notes from Wikid77 in 2013
 * Edit conflict (article)

Code repository

 * parsers/wikidom
 * EtherEditor
 * ep_wikitext plugin for editing wikitext in EtherEditor

2011

 * 2011 Spring - 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.
 * 2011-04-21 - Talked to Etherpad-fork startup Hackpad - meeting record
 * 2011-05-05 - 2011-05-06 Hackpad engineers work in WMF offices with Neil, create quick demo of Hackpad as a host for an editing session, via a user script.
 * 2011-05-10 - Project posted on Wikitech-l by Neil and Hackpad blog
 * 2011-05-15 - Neil gives lightning talk at Berlin Hackathon
 * 2011-06-23 - Defining user stories, deliverables
 * 2011-07-01 - Neil has local etherpad hostable, needs help making the Hackpad hacks work

2012

 * 2012-06-19 - Mark Holmquist sets up and announces an instance that works pretty well
 * 2012-08-16 - Mark Holmquist ran a testing sprint for EtherEditor, exposed a bunch of bugs, and is getting closer to a stable implementation.

2013

 * WikiEducator has CollabOERate gadget up and running, based on Mozilla's TogetherJS. Requires "modern browser" (perhaps does not work with IE?)

2014

 * 2014-08-09 - Wikimania: Submissions/It's Alive! The Joy of Real-Time Collaboration and Submissions/Real-time Collaborative Editing with TogetherJS