Академический Документы
Профессиональный Документы
Культура Документы
Email 2.0?
Private Replies
Playback
Typos!
Long Nested Threads!
Late CCs!
Google Confidential and Proprietary 5
So, yes, Google Wave can be thought of as Email 2.0. And just like anyone can set up an SMTP server and send messages
across email servers, our goal is for anyone to be able to set up a Wave server, and share Waves across servers. We don't
want Google Wave to be the only wave server out there -- we need “competitors” if we want Wave to really take off.
Operational Transforms*
Data Model
Client/Server
Developer Platform
HTTP Visual
REST | RPC Google Maps API
Google Visualization API
Google data APIs
Google Charts API
Adwords API
Google Web Elements
Plugin
Geocoding API
OpenSocial Gadgets
Spreadsheets Gadgets
Wave Gadgets/Robots
Google Confidential and Proprietary 10
Our Wave developer offerings include an Embed API, which lets you embed an interactive Wave on your own webpage,
and an extensions API, which lets you create robot participants and collaborative gadgets that can be added to Waves. So,
you can either take the content out of Wave, or you can put your own content into Wave.
Extensions APIs
Robots Gadgets
Robots
events
operations
if __name__ == '__main__':
smiley = robot.Robot('Smiley')
smiley.RegisterHandler(
events.DOCUMENT_CHANGED, OnDocumentChanged)
smiley.Run()
An Army of Robots
Collaborative Robots
Gadget
state delta
state callback
Shared State
<Module>
Clicky Sample <ModulePrefs title="State Example" height="120">
<Require feature="wave" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<input type=button id="button" value="Click Me!"
onClick="buttonClicked()">
<script>
var button = document.getElementById('button');
function buttonClicked() {
var value = parseInt(wave.getState().get('count', '0'));
wave.getState().submitDelta({'count': value + 1});
}
function stateUpdated() {
if(!wave.getState().get('count')) {
button.value = "Click me: 0"
} else {
button.value = "Click me: " + wave.getState().get('count');
}
}
wave.setStateCallback(stateUpdated);
</script>
]]>
</Content>
</Module>
Gadgets
Gadgets+Gadgets Gadgets+Blips
Playback
Business
Education
Pleasure