Skip to main content

Home/ Open Web/ Group items tagged wave-dev

Rss Feed Group items tagged

Gary Edwards

Google Wave Operational Transformation (Google Wave Federation Protocol) - 0 views

  • Wave document operations consist of the following mutation components:skipinsert charactersinsert element startinsert element endinsert anti-element startinsert anti-element enddelete charactersdelete element startdelete element enddelete anti-element startdelete anti-element endset attributesupdate attributescommence annotationconclude annotationThe following is a more complex example document operation.skip 3insert element start with tag "p" and no attributesinsert characters "Hi there!"insert element endskip 5delete characters 4From this, one could see how an entire XML document can be represented as a single document operation. 
  • Wave OperationsWave operations consists of a document operation, for modifying XML documents and other non document operations. Non document operations are for tasks such as adding or removing a participant to a Wavelet. We'll focus on document operations here as they are the most central to Wave.It's worth noting that an XML document in Wave can be regarded as a single document operation that can be applied to the empty document.This section will also cover how Wave operations are particularly efficient even in the face of a large number of transforms.XML Document SupportWave uses a streaming interface for document operations. This is similar to an XMLStreamWriter or a SAX handler. The document operation consists of a sequence of ordered document mutations. The mutations are applied in sequence as you traverse the document linearly. Designing document operations in this manner makes it easier to write transformation function and composition function described later.In Wave, every 16-bit Unicode code unit (as used in javascript, JSON, and Java strings), start tag or end tag in an XML document is called an item. Gaps between items are called positions. Position 0 is before the first item. A document operation can contain mutations that reference positions. For example, a "Skip" mutation specifies how many positions to skip ahead in the XML document before applying the next mutation.Wave document operations also support annotations. An annotation is some meta-data associated with an item range, i.e. a start position and an end position. This is particularly useful for describing text formatting and spelling suggestions, as it does not unecessarily complicate the underlying XML document format.
  •  
    Summary: Collaborative document editing means multiple editors being able to edit a shared document at the same time.. Live and concurrent means being able to see the changes another person is making, keystroke by keystroke. Currently, there are already a number of products on the market that offer collaborative document editing. Some offer live concurrent editing, such as EtherPad and SubEthaEdit, but do not offer rich text. There are others that offer rich text, such as Google Docs, but do not offer a seamless live concurrent editing experience, as merge failures can occur. Wave stands as a solution that offers both live concurrent editing and rich text document support.  The result is that Wave allows for a very engaging conversation where you can see what the other person is typing, character by character much like how you would converse in a cafe. This is very much like instant messaging except you can see what the other person is typing, live. Wave also allows for a more productive collaborative document editing experience, where people don't have to worry about stepping on each others toes and still use common word processor functionalities such as bold, italics, bullet points, and headings. Wave is more than just rich text documents. In fact, Wave's core technology allows live concurrent modifications of XML documents which can be used to represent any structured content including system data that is shared between clients and backend systems. To achieve these goals, Wave uses a concurrency control system based on Operational Transformation.
Gary Edwards

HTML5, Cloud and Mobile Create 'Perfect Storm' for Major App Dev Shift - Application De... - 0 views

  •  
    Good discussion, but it really deserves a more in-depth thrashing.  The basic concept is that a perfect storm of mobility, cloud-computing and HTML5-JavaScript has set the stage for a major, massive shift in application development.  The shift from C++ to Java is now being replaced by a greater shift from Java and C++ to JavaScript-JSON-HTML5. Interesting, but i continue to insist that the greater "Perfect Storm" triggered in 2008, is causing a platform shift from client/server computing to full on, must have "cloud-computing".   There are three major "waves"; platform shifts in the history of computing at work here.  The first wave was "Mainframe computing", otherwise known as server/terminal.  The second wave was that of "client/server" computing, where the Windows desktop eventually came to totally dominate and control the "client" side of the client/server equation. The third wave began with the Internet, and the dominance of the WWW protocols, interfaces, methods and formats.  The Web provides the foundation for the third great Wave of Cloud-Computing. The Perfect Storm of 2008 lit the fuse of the third Wave of computing.  Key to the 2008 Perfect Storm is the world wide financial collapse that put enormous pressure on businesses to cut cost and improve productivity; to do more with less, or die.  The survival maxim quickly became do more with less people - which is the most effective form of "productivity".  The nature of the collapse itself, and the kind of centralized, all powerful bailout-fascists governments that rose during the financial collapse, guaranteed that labor costs would rise dramatically while also being "uncertain".  Think government controlled healthcare. The other aspects of the 2008 Perfect Storm are mobility, HTML5, cloud-computing platform availability, and, the ISO standardization of "tagged" PDF.   The mobility bomb kicked off in late 2007, with the introduction of the Apple iPhone.  No further explanation needed :) Th
1 - 2 of 2
Showing 20 items per page