Speed dating spreadsheet
To recap, constraints on these resources shaped Ether Calc's architecture directions: We started with a Web Socket server implemented in Perl 5, backed by Feersum, a libev-based non-blocking web server developed at Socialtext.
Feersum is very fast, capable of handling over 10k requests per second on a single CPU.
Under the naive backlog model, when a client joins such an edit session, it must replay thousands of commands, incurring a significant startup delay before it can make any modifications.
To mitigate this issue, we implemented a snapshot mechanism.
This article describes the speed dating method, presenting cases to show how speed dating aids UX design.
Previously, in The Architecture of Open Source Applications, I described Social Calc, an in-browser spreadsheet system that replaced the server-centric Wiki Calc architecture.
Social Calc performs all of its computations in the browser; it uses the server only for loading and saving spreadsheets.
Speed dating helps to reduce the risk of making things that people will not adopt.
It also discloses opportunities and user needs that design teams might not observe during fieldwork.
Each collaborative session is a chatroom; clients sends their locally executed commands and cursor movements to the server, which relays them to all other clients in the same room.