Return to Video

Google Wave Developer Preview at Google I/O 2009

  • 0:01 - 0:03
    man: Ladies and gentlemen,
  • 0:03 - 0:07
    please welcome Vice President, Engineering, Vic Gundotra.
  • 0:07 - 0:11
    [cheers and applause]
  • 0:11 - 0:13
    Gundotra: Well, good morning, everyone.
  • 0:13 - 0:16
    Welcome to day two of Google I/O.
  • 0:16 - 0:18
    I hope you all had a great time yesterday.
  • 0:18 - 0:20
    I hope you enjoyed your sessions,
  • 0:20 - 0:23
    and I hope you enjoyed those Android phones.
  • 0:23 - 0:25
    [audience whoos]
  • 0:25 - 0:29
    [cheers and applause]
  • 0:29 - 0:34
    Yesterday, we promised you a surprise for this morning.
  • 0:34 - 0:37
    And this morning, Google will surprise you.
  • 0:37 - 0:40
    We are about to unveil
  • 0:40 - 0:43
    a personal communication and collaboration tool
  • 0:43 - 0:46
    in a very early form.
  • 0:46 - 0:48
    We decided to do this at this forum
  • 0:48 - 0:50
    for a couple of reasons.
  • 0:50 - 0:52
    This unbelievable product,
  • 0:52 - 0:54
    one that I'm very, very excited about,
  • 0:54 - 0:57
    will be open-sourced.
  • 0:57 - 0:59
    It's open-sourced for many reasons.
  • 0:59 - 1:02
    Not only do we want to contribute to the Internet,
  • 1:02 - 1:04
    but frankly, we need developers
  • 1:04 - 1:06
    to help us complete this product,
  • 1:06 - 1:07
    and we need your support.
  • 1:07 - 1:09
    So we hope after you see this
  • 1:09 - 1:11
    you're as excited about it as we are.
  • 1:11 - 1:13
    And number two,
  • 1:13 - 1:15
    we decided to unveil this product
  • 1:15 - 1:18
    in its early form at this conference
  • 1:18 - 1:21
    because it is an unbelievable, powerful demonstration
  • 1:21 - 1:24
    of what is possible in the browser.
  • 1:24 - 1:26
    I guarantee you that over the next hour and a half,
  • 1:26 - 1:30
    as you see this product, you will forget
  • 1:30 - 1:31
    that you are looking at the browser.
  • 1:31 - 1:33
    And I want you to repeat after me.
  • 1:33 - 1:36
    "I am looking at an HTML 5 app.
  • 1:36 - 1:39
    I am looking at what's possible in the browser."
  • 1:39 - 1:43
    And I hope you are as excited and delighted as I was
  • 1:43 - 1:46
    when I first saw the thinking behind this product.
  • 1:46 - 1:49
    Now, it shouldn't have surprised me
  • 1:49 - 1:51
    that this product would be magical.
  • 1:51 - 1:53
    After all, the engineering leadership
  • 1:53 - 1:56
    had already produced a magical product.
  • 1:56 - 1:59
    The engineering leadership behind what you're about to see
  • 1:59 - 2:01
    is the work of two brothers,
  • 2:01 - 2:03
    and an amazing engineering team with them.
  • 2:03 - 2:07
    Those two brothers are Lars and Jens Rasmussen.
  • 2:07 - 2:09
    You might remember those names,
  • 2:09 - 2:12
    because those were the same amazing people
  • 2:12 - 2:16
    that did another magical app called Maps--Google Maps.
  • 2:16 - 2:18
    And so you'll see what they've been working on
  • 2:18 - 2:20
    unveiled for the first time today.
  • 2:20 - 2:22
    So why don't we go ahead and get started?
  • 2:22 - 2:25
    Remember, this is an early developer preview
  • 2:25 - 2:26
    for this audience.
  • 2:26 - 2:30
    Everyone in this room will get accounts to give us feedback,
  • 2:30 - 2:32
    and we'll talk about that a little bit later.
  • 2:32 - 2:35
    We have your email addresses, so you will get those passwords
  • 2:35 - 2:37
    a little bit later on, likely tomorrow.
  • 2:37 - 2:40
    With that, let me just go ahead and get started.
  • 2:40 - 2:43
    Let me introduce Lars Rasmussen and Stephanie Hannon.
  • 2:43 - 2:45
    Thank you.
  • 2:45 - 2:48
    [cheers and applause]
  • 2:48 - 2:49
    Lars Rasmussen: Thank you.
  • 2:49 - 2:54
    Thank you. Thank you.
  • 2:54 - 2:56
    Thank you very much.
  • 2:56 - 3:00
    I shall wake up my laptop.
  • 3:00 - 3:02
    Good morning, everyone.
  • 3:02 - 3:03
    Thank you very much for coming early.
  • 3:03 - 3:06
    I know you've been here partying all night.
  • 3:06 - 3:08
    Uh, we're going to show a demo today
  • 3:08 - 3:09
    of a product that we've been working on
  • 3:09 - 3:12
    for a couple of years down in Sydney, Australia.
  • 3:12 - 3:16
    It's called Google Wave,
  • 3:16 - 3:18
    and it's a communication and collaborations tool
  • 3:18 - 3:20
    that we're launching later in the year.
  • 3:20 - 3:23
    Uh, like Vic said, it's a little unusual for us
  • 3:23 - 3:25
    to be showing it to the world this early.
  • 3:25 - 3:27
    The reason we're doing it is very simple.
  • 3:27 - 3:30
    We're starting a developer preview today.
  • 3:30 - 3:32
    You guys will all get accounts
  • 3:32 - 3:34
    on a sandbox build of the system.
  • 3:34 - 3:36
    You are the first outside of Google to see this,
  • 3:36 - 3:40
    and you'll be the first to get accounts on the system.
  • 3:40 - 3:43
    And we're doing that because as you will see from the demo,
  • 3:43 - 3:46
    Google Wave comes with a set of really nice APIs,
  • 3:46 - 3:48
    and we're hoping we can persuade you guys
  • 3:48 - 3:52
    to start building cool things with those APIs
  • 3:52 - 3:54
    while we're getting the product ready for launch,
  • 3:54 - 3:56
    which is going to happen later this year.
  • 3:56 - 3:58
    Because that way, when we do launch,
  • 3:58 - 4:02
    our users and your users can enjoy both Google Waves
  • 4:02 - 4:04
    and all the cool things that we hope you'll build
  • 4:04 - 4:06
    at the same time.
  • 4:06 - 4:08
    Let me introduce Stephanie Hannon.
  • 4:08 - 4:11
    She's quite possibly the best PM in the world.
  • 4:11 - 4:13
    [cheers and applause]
  • 4:13 - 4:17
    Hannon: [laughs]
  • 4:17 - 4:19
    Good morning, I/O.
  • 4:19 - 4:21
    Thank you, Vic, for the invitation to be here.
  • 4:21 - 4:23
    We couldn't imagine a better audience
  • 4:23 - 4:25
    to show our product to first.
  • 4:25 - 4:27
    Lars Rasmussen: I second that.
  • 4:27 - 4:30
    Hannon: Our presentation today is in three parts.
  • 4:30 - 4:32
    First, we're going to show you a demo of the product.
  • 4:32 - 4:35
    Second, we'll show you the APIs that Lars talked about.
  • 4:35 - 4:39
    You can use Waves to enhance your Web site
  • 4:39 - 4:42
    and you can build extensions to Wave itself.
  • 4:42 - 4:45
    Third, we'll show you that Wave is also a protocol.
  • 4:45 - 4:47
    We are very passionate about this being
  • 4:47 - 4:49
    an open system of communication.
  • 4:49 - 4:51
    We hope other people build Wave services
  • 4:51 - 4:53
    that interoperate with ours
  • 4:53 - 4:56
    so users have choice in their provider.
  • 4:56 - 4:59
    We affectionately call this the three Ps.
  • 4:59 - 5:02
    Product, platform, protocol.
  • 5:02 - 5:04
    And we'll talk about them all today.
  • 5:04 - 5:07
    Lars Rasmussen: Okay, so communication.
  • 5:07 - 5:10
    Um, email today is by far the most popular way
  • 5:10 - 5:12
    for us to communicate on the Internet,
  • 5:12 - 5:13
    which is remarkable,
  • 5:13 - 5:16
    because email was invented more than 40 years ago.
  • 5:16 - 5:19
    before the Internet, before the Web,
  • 5:19 - 5:22
    and it was done without the experience
  • 5:22 - 5:25
    of things like SMS, and instant messenging,
  • 5:25 - 5:27
    and blogs, and Wikis, and bulletin boards,
  • 5:27 - 5:30
    and discussion groups, and social networks, and Wikis,
  • 5:30 - 5:33
    and media sharing sites, and collaborative editors--
  • 5:33 - 5:35
    All of these different kinds of communication
  • 5:35 - 5:38
    that we take for granted today.
  • 5:38 - 5:41
    Also, of course, computers and networks
  • 5:41 - 5:43
    have dramatically improved in those four decades,
  • 5:43 - 5:45
    and so when we started this project--
  • 5:45 - 5:48
    and it's been more than two years--
  • 5:48 - 5:50
    we asked ourselves the question,
  • 5:50 - 5:53
    "what might email look like if it was invented today?"
  • 5:53 - 5:55
    And needless to say, there is about a million
  • 5:55 - 5:57
    different ways you can answer that question.
  • 5:57 - 6:02
    What you're going to see today, Google Wave, is our attempt.
  • 6:02 - 6:04
    And so let me start by briefly contrasting
  • 6:04 - 6:06
    email from Wave.
  • 6:06 - 6:09
    Email essentially mimics snail mail.
  • 6:09 - 6:12
    The basic metaphor is you write a message
  • 6:12 - 6:14
    and you send it to one or more recipients,
  • 6:14 - 6:16
    and then email systems--
  • 6:16 - 6:19
    and we like to think Gmail does this particularly well--
  • 6:19 - 6:24
    can collate related messages into conversations or threads.
  • 6:24 - 6:28
    Wave, by contrast, starts out
  • 6:28 - 6:30
    with the definition of a conversation,
  • 6:30 - 6:32
    which is simply a lightweight tree structure of messages
  • 6:32 - 6:36
    and a set of users participating in that conversation.
  • 6:36 - 6:39
    And then instead of thinking of individual messages
  • 6:39 - 6:41
    as being sent back and forth,
  • 6:41 - 6:43
    we think of the entire conversation object
  • 6:43 - 6:47
    as being a shared object hosted on a server somewhere.
  • 6:47 - 6:50
    And users that participate can open up that wave,
  • 6:50 - 6:53
    leave their replies, go away,
  • 6:53 - 6:54
    and then when the next user comes,
  • 6:54 - 6:57
    she can open up that same shared object,
  • 6:57 - 6:59
    see those replies, and add her own.
  • 6:59 - 7:01
    That's how the wave grows.
  • 7:01 - 7:03
    That's how the conversation builds up.
  • 7:03 - 7:05
    And you'll recognize that this is a model
  • 7:05 - 7:07
    that came to how bulletin boards work.
  • 7:07 - 7:10
    We found that with a tight enough implementation,
  • 7:10 - 7:13
    you can use that to build a single communication tool
  • 7:13 - 7:16
    that has functionality spanning quite a lot further
  • 7:16 - 7:19
    than what you can do with email today.
  • 7:19 - 7:21
    And so we'll show you a demo.
  • 7:21 - 7:24
    It'll take you through a series of usage scenarios
  • 7:24 - 7:26
    that you'll be familiar with,
  • 7:26 - 7:30
    but where today we would use different tools for each one,
  • 7:30 - 7:31
    and we'll show you how it all fits neatly
  • 7:31 - 7:34
    in this one metaphor of hosted conversations.
  • 7:34 - 7:35
    Stephanie.
  • 7:35 - 7:38
    Hannon: So what you are looking at is an HTML 5 app
  • 7:38 - 7:41
    that we built with the Google Web Toolkit.
  • 7:41 - 7:43
    On the left side is Lars running Chrome.
  • 7:43 - 7:46
    On the right side, I'm running Safari.
  • 7:46 - 7:49
    And a little bit later we're going to throw in Firefox.
  • 7:49 - 7:51
    So the same thing is being shown on each pair of screens,
  • 7:51 - 7:55
    you can just choose one to look at.
  • 7:55 - 7:56
    Lars Rasmussen: Okay, so we'll start
  • 7:56 - 7:59
    with plain vanilla-type email conversations,
  • 7:59 - 8:02
    and we'll show you how it looks in Wave.
  • 8:02 - 8:04
    We're planning a boat trip.
  • 8:04 - 8:06
    And I'm going to start by clicking "New Wave" here,
  • 8:06 - 8:08
    and then I'll type my title in the first line.
  • 8:08 - 8:10
    Hannon: Watch your spelling, Lars.
  • 8:10 - 8:11
    There's a lot of people.
  • 8:11 - 8:12
    Lars Rasmussen: [laughs] There is a lot of people.
  • 8:12 - 8:15
    They can't see what I'm typing anyway.
  • 8:15 - 8:19
    "Are you ready for the boat trip?
  • 8:19 - 8:20
    Hey, Steph."
  • 8:20 - 8:23
    Did you guys like the spell-checker?
  • 8:23 - 8:24
    [applause]
  • 8:24 - 8:26
    You do.
  • 8:26 - 8:28
    We'll talk more about that later.
  • 8:28 - 8:30
    Since you don't want to watch me type for an hour,
  • 8:30 - 8:32
    we put canned messages in there.
  • 8:32 - 8:36
    We'll try hard to pull them out before we launch.
  • 8:36 - 8:39
    I click "Done," it asks me for more users.
  • 8:39 - 8:41
    I'll add Stephanie.
  • 8:41 - 8:42
    And since she is offline,
  • 8:42 - 8:46
    I'm going to go stare at a blank page.
  • 8:46 - 8:49
    Hannon: So I will open Wave.
  • 8:49 - 8:51
    And you'll see in my Search panel, the middle panel,
  • 8:51 - 8:54
    will be an unread message from Lars.
  • 8:54 - 8:56
    He's asking me if I want to go shopping,
  • 8:56 - 8:57
    uh, before this boat trip,
  • 8:57 - 8:59
    so I'll do something very email like,
  • 8:59 - 9:00
    which is hit "Reply,"
  • 9:00 - 9:04
    and say, "I looove shopping."
  • 9:04 - 9:06
    Lars Rasmussen: I wrote the script.
  • 9:06 - 9:11
    Hannon: "I need new fins. Let's go."
  • 9:11 - 9:13
    The first benefit I want to show you
  • 9:13 - 9:15
    of this being a hosted conversation
  • 9:15 - 9:18
    is it's easier to keep track of structure.
  • 9:18 - 9:20
    If this was email and I wanted to reply
  • 9:20 - 9:22
    to the middle part of Lars's message
  • 9:22 - 9:24
    where he asked which bus to take,
  • 9:24 - 9:27
    I would hit "Reply," the email client would copy the message,
  • 9:27 - 9:30
    and I'd hand-edit in the response.
  • 9:30 - 9:32
    Because this is a hosted conversation
  • 9:32 - 9:34
    that lives in one place,
  • 9:34 - 9:37
    I can just instruct the server to split the message apart
  • 9:37 - 9:41
    and say, "You never wake up early,"
  • 9:41 - 9:43
    which is true.
  • 9:43 - 9:46
    "Let's take the late bus."
  • 9:46 - 9:49
    Okay, Lars isn't online; I'm going to close this wave.
  • 9:49 - 9:52
    Lars Rasmussen: So a little bit later I come back online,
  • 9:52 - 9:54
    and you'll see, for starters, that that wave is now bold
  • 9:54 - 9:56
    to show me there is new material in it.
  • 9:56 - 10:00
    When I open it up, Stephanie's first message gets the highlight
  • 10:00 - 10:02
    and I can navigate the conversation with my keyboard,
  • 10:02 - 10:04
    and of course, continue her thread here.
  • 10:04 - 10:07
    "You know me too well."
  • 10:07 - 10:08
    Like that.
  • 10:08 - 10:11
    And that's how plain vanilla email-type conversations
  • 10:11 - 10:13
    work in Wave.
  • 10:13 - 10:15
    So you've noticed that we have carefully avoided
  • 10:15 - 10:17
    having the wave open on both screens.
  • 10:17 - 10:21
    When we do have the wave open at the same time,
  • 10:21 - 10:23
    my message bounces right off the server
  • 10:23 - 10:25
    into Stephanie's browser.
  • 10:25 - 10:26
    The effect is that you can also
  • 10:26 - 10:29
    do Instant Messaging-type conversations in Wave.
  • 10:29 - 10:33
    In fact in the same wave you can switch back and forth
  • 10:33 - 10:35
    between these different ways of communicating.
  • 10:35 - 10:37
    I'll show you that now.
  • 10:37 - 10:41
    Shiny. You must know a good store.
  • 10:41 - 10:43
    [cheers and applause]
  • 10:43 - 10:48
    Hannon: There is a new one over on George Street.
  • 10:48 - 10:52
    Lars Rasmussen: Cool. Let's go at 7:00.
  • 10:52 - 10:56
    Hannon: "Sounds good. Let's invite Jens too."
  • 10:56 - 10:58
    Lars Rasmussen: "Okay."
  • 10:58 - 11:01
    So you noticed that it didn't wait for me to hit "Done"
  • 11:01 - 11:03
    before showing Stephanie the message,
  • 11:03 - 11:04
    but rather--and this was difficult to do--
  • 11:04 - 11:07
    we transmit live almost character by character
  • 11:07 - 11:09
    what I'm typing.
  • 11:09 - 11:10
    Why did we do that?
  • 11:10 - 11:12
    It's because with today instant messaging tools
  • 11:12 - 11:14
    you spend half of your time looking at it saying,
  • 11:14 - 11:17
    "Stephanie is typing, she's typing, she's typing,
  • 11:17 - 11:21
    she's typing," and then you see what she said.
  • 11:21 - 11:24
    Thank you. [laughs]
  • 11:24 - 11:28
    But because in general you can start formulating your own reply
  • 11:28 - 11:30
    before Stephanie is done typing hers,
  • 11:30 - 11:32
    by doing this live transmission,
  • 11:32 - 11:35
    you end up spending 100% of your time either reading or writing,
  • 11:35 - 11:37
    which dramatically speeds up the conversation.
  • 11:37 - 11:39
    Now needless to say, there are times
  • 11:39 - 11:41
    you don't want everyone to see every keystroke,
  • 11:41 - 11:43
    in particular if you spell like I do.
  • 11:43 - 11:46
    Um, and so we have this checkbox here.
  • 11:46 - 11:48
    All you have to do is check it
  • 11:48 - 11:49
    and now no one can see what you're typing
  • 11:49 - 11:51
    until you hit that "Done" button.
  • 11:51 - 11:54
    This is one of the features we haven't implemented quite yet.
  • 11:54 - 11:58
    [laughter]
  • 11:58 - 12:01
    Okay, so that's how email conversations,
  • 12:01 - 12:02
    or rather email-type conversations
  • 12:02 - 12:05
    and instant messaging-type conversations
  • 12:05 - 12:08
    no longer require two separate tools.
  • 12:08 - 12:09
    Next thing we want to show you is how easy it is
  • 12:09 - 12:13
    to add a new person to an ongoing conversation.
  • 12:13 - 12:15
    Can I just introduce my brother Jens, by the way?
  • 12:15 - 12:17
    Give him a hand, please.
  • 12:17 - 12:23
    [cheers and applause]
  • 12:23 - 12:24
    So we want to--
  • 12:24 - 12:26
    We want to add Jens to the conversation.
  • 12:26 - 12:29
    If this was email, I would take the last message here,
  • 12:29 - 12:31
    reply to it and add Jens to the recipient list.
  • 12:31 - 12:32
    There's two problems with that.
  • 12:32 - 12:34
    For starters,
  • 12:34 - 12:36
    because we branched the conversation up here,
  • 12:36 - 12:37
    that last email message
  • 12:37 - 12:40
    would not contain the entire conversation.
  • 12:40 - 12:42
    But also, if Stephanie then later
  • 12:42 - 12:45
    went and replied to an earlier message of mine,
  • 12:45 - 12:46
    Jens wouldn't get that anyway.
  • 12:46 - 12:49
    You end up with these cat and mouse games.
  • 12:49 - 12:51
    In the Wave model, all you have to do
  • 12:51 - 12:55
    is make Jens a participant in the wave like that.
  • 12:55 - 12:58
    And now I'll switch over to Firefox here
  • 12:58 - 13:02
    where Jens is already signed in.
  • 13:02 - 13:03
    Jens Rasmussen: So now that I'm on the wave,
  • 13:03 - 13:06
    um, I'm going to open it,
  • 13:06 - 13:08
    and, of course, everything is going to be marked
  • 13:08 - 13:10
    as unread for me.
  • 13:10 - 13:12
    But because I was added late,
  • 13:12 - 13:15
    I didn't get to see Lars's message in one piece,
  • 13:15 - 13:18
    and by the time I'm added they could be arbitrarily far apart.
  • 13:18 - 13:21
    So we added a feature called Playback.
  • 13:21 - 13:24
    So I get to see Lars's original message,
  • 13:24 - 13:26
    Lars asks Stephanie, Stephanie replies,
  • 13:26 - 13:30
    Steph does in-line reply, and so on, and so on.
  • 13:30 - 13:32
    [applause]
  • 13:32 - 13:35
    Thank you.
  • 13:35 - 13:38
    So Playback turns out to be a really useful feature,
  • 13:38 - 13:39
    particularly when the wave
  • 13:39 - 13:40
    starts picking up more structure,
  • 13:40 - 13:42
    and we'll show you more of that later.
  • 13:42 - 13:44
    But now that I've caught up on this wave,
  • 13:44 - 13:48
    I'm going to just add my reply.
  • 13:48 - 13:50
    "Me too."
  • 13:50 - 13:52
    Oh, I think I crashed.
  • 13:52 - 13:54
    Lars Rasmussen: Did I mention that it's a developer preview?
  • 13:54 - 13:56
    [laughter]
  • 13:56 - 13:58
    So we made sure to inject a few bugs
  • 13:58 - 13:59
    so that you wouldn't have too high expecta--
  • 13:59 - 14:05
    I'm just kidding.
  • 14:05 - 14:07
    Jens Rasmussen: Did you notice how quickly it reloads?
  • 14:07 - 14:10
    [laughter]
  • 14:10 - 14:13
    Did we mention we used GWT?
  • 14:13 - 14:16
    All right, so I'm going to add my reply.
  • 14:16 - 14:18
    "Me too.
  • 14:18 - 14:23
    Don't forget your keys."
  • 14:23 - 14:24
    And then I'll hand it back to Lars.
  • 14:24 - 14:26
    Lars Rasmussen: Thank you.
  • 14:26 - 14:28
    So that's how easy it is to add a new person
  • 14:28 - 14:30
    to an ongoing conversation.
  • 14:30 - 14:32
    And so often we end up having
  • 14:32 - 14:34
    very nice group conversations in Wave.
  • 14:34 - 14:35
    And then occasionally you want to say something
  • 14:35 - 14:38
    in a wave that's not visible to all the participants.
  • 14:38 - 14:41
    We call that a "Private Reply,"
  • 14:41 - 14:43
    and I'll add one down here at the bottom,
  • 14:43 - 14:44
    and I'll say,
  • 14:44 - 14:49
    "Let's buy Steph a reeeally nice present."
  • 14:49 - 14:52
    Hannon: I wrote this part.
  • 14:52 - 14:54
    Lars Rasmussen: And then I will add just Jens,
  • 14:54 - 14:55
    and you will see,
  • 14:55 - 14:58
    if I just quickly flip over to Jens's browser,
  • 14:58 - 15:00
    and scroll down,
  • 15:00 - 15:02
    he sees that private reply,
  • 15:02 - 15:04
    but if you look at Stephanie's screen,
  • 15:04 - 15:06
    she doesn't see it.
  • 15:06 - 15:08
    If you remember, I've explained
  • 15:08 - 15:09
    that a wave is a tree structure of messages.
  • 15:09 - 15:13
    Essentially you can take any sub-tree of the wave
  • 15:13 - 15:17
    and restrict access to a subset of the participants.
  • 15:17 - 15:21
    Okay, I switch back to my own account, here.
  • 15:21 - 15:22
    The next thing we want to show you
  • 15:22 - 15:24
    is how attachments work in Wave.
  • 15:24 - 15:25
    So we've been on a boat trip--
  • 15:25 - 15:27
    It was very nice, thank you--
  • 15:27 - 15:28
    And we all got pictures.
  • 15:28 - 15:31
    I have six of them sitting here on my desktop,
  • 15:31 - 15:35
    and I'm going to drag them onto the wave like this.
  • 15:35 - 15:42
    [applause]
  • 15:42 - 15:44
    Hannon: You might not have noticed,
  • 15:44 - 15:47
    but the thumbnails appeared on my screen
  • 15:47 - 15:51
    long before the full images were uploaded from Lars's computer.
  • 15:51 - 15:52
    I'll show you that again
  • 15:52 - 15:57
    by dragging in my own photos from iPhoto.
  • 15:57 - 16:00
    Ready? Here we go.
  • 16:00 - 16:03
    Lars Rasmussen: And you can see them show up over on my screen.
  • 16:03 - 16:04
    audience member: Yeah.
  • 16:04 - 16:05
    [applause]
  • 16:05 - 16:06
    Lars Rasmussen: Don't be shy, you guys.
  • 16:06 - 16:09
    If you like what you see, don't be shy letting us know.
  • 16:09 - 16:11
    [cheers and applause]
  • 16:11 - 16:15
    We can--we can handle pretty much any amount of applause.
  • 16:15 - 16:17
    [laughter]
  • 16:17 - 16:18
    Hannon: This feature--
  • 16:18 - 16:21
    drag and drop from the desktop to the browser--
  • 16:21 - 16:26
    is the one part of Wave that HTML 5 can't support yet.
  • 16:26 - 16:28
    We're working on a proposal to add it to the standard.
  • 16:28 - 16:31
    In the meantime, you need to download Gears
  • 16:31 - 16:33
    for this specific feature to work.
  • 16:33 - 16:36
    It's the only part of Wave that you need Gears for.
  • 16:36 - 16:38
    When Lars dropped in his images,
  • 16:38 - 16:41
    you might've noticed at the bottom of the Wave panel
  • 16:41 - 16:42
    there's an Image menu
  • 16:42 - 16:44
    with actions you'd probably do on images,
  • 16:44 - 16:46
    like upload or download.
  • 16:46 - 16:48
    What's important is these actions
  • 16:48 - 16:50
    apply to all the images in the wave,
  • 16:50 - 16:52
    not just the ones I dropped in,
  • 16:52 - 16:55
    which makes Wave really an easy, lightweight way
  • 16:55 - 16:57
    to create a group photo album together,
  • 16:57 - 17:01
    which is surprisingly hard to do with today's tools.
  • 17:01 - 17:03
    Lars Rasmussen: And so here's the photo album.
  • 17:03 - 17:04
    This is Captain Athena.
  • 17:04 - 17:06
    Here's the hard life down under.
  • 17:06 - 17:08
    And as advertised, you'll see over here
  • 17:08 - 17:11
    Stephanie's images show up in my slideshow
  • 17:11 - 17:12
    so that I can show you
  • 17:12 - 17:17
    just how much fun life down under is.
  • 17:17 - 17:20
    And that's images.
  • 17:20 - 17:22
    So that's how easy it is to share photos in Wave.
  • 17:22 - 17:23
    This was a group trip.
  • 17:23 - 17:25
    We'll all throw our photos in here.
  • 17:25 - 17:26
    We'd probably share it with the rest of the office
  • 17:26 - 17:28
    to make them envious.
  • 17:28 - 17:30
    In this particular case, it's not clear
  • 17:30 - 17:33
    that we want everyone to know that we went shopping together.
  • 17:33 - 17:35
    And so one of the features down here
  • 17:35 - 17:37
    lets me copy just the images
  • 17:37 - 17:40
    from this wave into a fresh wave.
  • 17:40 - 17:43
    "Boating in January.
  • 17:43 - 17:48
    Enjoy all, here and yonder."
  • 17:48 - 17:50
    And then I'll add Stephanie to this.
  • 17:50 - 17:53
    I could now share that with the rest of the office.
  • 17:53 - 17:56
    Now, this feature here of extracting images
  • 17:56 - 17:57
    from a wave and putting them in a new one
  • 17:57 - 17:59
    is actually part of a very important
  • 17:59 - 18:00
    design principle for us.
  • 18:00 - 18:03
    Namely that we care just as much
  • 18:03 - 18:07
    about the product of the wave as we do the wave itself.
  • 18:07 - 18:11
    And we'll show you more examples of that later.
  • 18:11 - 18:14
    Yes, we will.
  • 18:14 - 18:16
    Um, I forgot what's next.
  • 18:16 - 18:20
    Hannon: How 'bout we show them the embedding APIs?
  • 18:20 - 18:21
    Lars Rasmussen: Excellent idea.
  • 18:21 - 18:22
    Okay, thank you. So...
  • 18:22 - 18:23
    [laughter]
  • 18:23 - 18:24
    She's right.
  • 18:24 - 18:27
    We should've rehearsed this before coming this morning.
  • 18:27 - 18:28
    Just kidding.
  • 18:28 - 18:29
    So the first--
  • 18:29 - 18:33
    The first category of, um, APIs that we want to show you
  • 18:33 - 18:37
    are APIs that let you embed waves onto your webpage.
  • 18:37 - 18:41
    It is very similar to the Maps API,
  • 18:41 - 18:44
    which, by the way, um, thank you, everyone who used it.
  • 18:44 - 18:47
    We consider your enthusiasm for that API
  • 18:47 - 18:49
    an enormous factor in that product's success,
  • 18:49 - 18:53
    and we're hoping, obviously, to repeat that with Wave.
  • 18:53 - 18:55
    Hannon: Give a round of applause to themselves.
  • 18:55 - 18:57
    Lars Rasmussen: Oh, yeah, a round of applause to yourself.
  • 18:57 - 18:59
    Well done. [applause]
  • 18:59 - 19:01
    Lars Rasmussen: Okay, so... Hannon: Yay, developers!
  • 19:01 - 19:03
    Lars Rasmussen: Here's an example application.
  • 19:03 - 19:05
    It's a little blogging site we've built.
  • 19:05 - 19:06
    It's over on Google App Engine,
  • 19:06 - 19:09
    but you could build it anywhere you host your website.
  • 19:09 - 19:10
    And this blogging site--
  • 19:10 - 19:13
    In addition to embedding waves on its pages,
  • 19:13 - 19:16
    it provides me with this robotic participant
  • 19:16 - 19:19
    that we affectionately call Bloggy.
  • 19:19 - 19:23
    All I have to do is add Bloggy to the wave,
  • 19:23 - 19:24
    and now you'll see--
  • 19:24 - 19:26
    You can probably not read that,
  • 19:26 - 19:27
    but on that yellow banner,
  • 19:27 - 19:30
    all users on the wave is now warned that Bloggy,
  • 19:30 - 19:34
    this new participant, has published the blog
  • 19:34 - 19:36
    on a page which we built over an app engine.
  • 19:36 - 19:39
    Can I just introduce Gregory Delasander?
  • 19:39 - 19:41
    He's another PM on the team.
  • 19:41 - 19:43
    [cheers and applause]
  • 19:43 - 19:46
    And he's going to show you the blog site now.
  • 19:46 - 19:47
    Delasander: Hi, I'm Greg,
  • 19:47 - 19:48
    and I'm a huge fan of Lars's blog,
  • 19:48 - 19:51
    just like everybody on the team is told they should be.
  • 19:51 - 19:54
    I'm going to show you... Hannon: He makes us read it.
  • 19:54 - 19:55
    Lars Rasmussen: It's a good blog. Come on.
  • 19:55 - 20:00
    Delasander: Oh, hold on just a second.
  • 20:00 - 20:02
    Did we lose...
  • 20:02 - 20:04
    Hannon: Did we lose VPN?
  • 20:04 - 20:05
    Delasander: Yes, I think we might have.
  • 20:05 - 20:07
    Hannon: Lars, this is where you do the dance.
  • 20:07 - 20:08
    Delasander: Lars, dance a little bit.
  • 20:08 - 20:09
    Lars Rasmussen: Everyone look at me.
  • 20:09 - 20:10
    Don't look at his screen.
  • 20:10 - 20:11
    [humming]
  • 20:11 - 20:13
    The Wave dance.
  • 20:13 - 20:15
    Delasander: I think we lost all connectivity.
  • 20:15 - 20:19
    Lars Rasmussen: Neener, neener. Neener, neener.
  • 20:19 - 20:22
    There's not a-- Delasander: And then...
  • 20:22 - 20:23
    Lars Rasmussen: There's not a lot of people in the world
  • 20:23 - 20:26
    that can have their demos as spectacularly fail
  • 20:26 - 20:30
    in front of 4,000 people and not break a sweat.
  • 20:30 - 20:31
    Hannon: It wasn't the demo, it was the network.
  • 20:31 - 20:33
    Lars Rasmussen: We wish we were one of them.
  • 20:33 - 20:35
    Delasander: Excellent.
  • 20:35 - 20:37
    Lars Rasmussen: I think your proxy server might be missing.
  • 20:37 - 20:39
    Oh, there we go. Hannon: All right, we're back.
  • 20:39 - 20:42
    Delasander: So as I was saying...
  • 20:42 - 20:44
    The blog.
  • 20:44 - 20:46
    So in the blog, one of the cool things you'll s--
  • 20:46 - 20:49
    you can see is that we're not just embedding the images,
  • 20:49 - 20:51
    we're actually embedding the whole wave
  • 20:51 - 20:52
    with all of its UI.
  • 20:52 - 20:55
    This means that I can respond.
  • 20:55 - 20:58
    "Hey, that looks fun. Why wasn't I invited?"
  • 20:58 - 21:04
    [cheers and applause]
  • 21:04 - 21:06
    The same way we embed--
  • 21:06 - 21:08
    And we--we do--
  • 21:08 - 21:10
    You can respond in the same way you do in the Wave client.
  • 21:10 - 21:11
    Lars Rasmussen: Exactly.
  • 21:11 - 21:14
    And so now, I can see, obviously, uh,
  • 21:14 - 21:16
    Greg's question from inside my Wave client.
  • 21:16 - 21:17
    I can answer from in here.
  • 21:17 - 21:19
    I don't have to go to the blog site to do that.
  • 21:19 - 21:23
    I could if I wanted to, but I can stay here.
  • 21:23 - 21:29
    "Um, I lost the phone with your number."
  • 21:29 - 21:31
    I really, truly can't spell.
  • 21:31 - 21:32
    Here we go.
  • 21:32 - 21:34
    Delasander: So one of the things you just saw
  • 21:34 - 21:37
    is that I happened to be online when Lars was online,
  • 21:37 - 21:39
    and I saw his response coming in live on his blog.
  • 21:39 - 21:41
    That's not always going to be the case.
  • 21:41 - 21:43
    Since I responded to this blog,
  • 21:43 - 21:46
    it'll show up in my Wave client.
  • 21:46 - 21:49
    Right after I refresh my Wave client.
  • 21:49 - 21:52
    Um, it will show up in my Wave client
  • 21:52 - 21:55
    and I can continue the conversation in there.
  • 21:55 - 21:57
    "But, Lars, I live next door."
  • 21:57 - 22:00
    [laughter]
  • 22:00 - 22:02
    And, um-- And then we can--
  • 22:02 - 22:05
    That response shows up on the blog,
  • 22:05 - 22:07
    we can continue the conversation from there,
  • 22:07 - 22:10
    and anyone else can join in that conversation.
  • 22:10 - 22:11
    Lars Rasmussen: Thank you, Greg. Delasander: No problem.
  • 22:11 - 22:15
    [applause]
  • 22:15 - 22:17
    Lars Rasmussen: Thank you.
  • 22:17 - 22:20
    And so this, again, is an example
  • 22:20 - 22:23
    of how to use our embedding APIs to put blogs on your web pages,
  • 22:23 - 22:25
    and here we showed you with a blogging site,
  • 22:25 - 22:27
    but you could imagine discussion group sites,
  • 22:27 - 22:28
    community forums--
  • 22:28 - 22:30
    if you have a rich-media site
  • 22:30 - 22:33
    you can let your users discuss that using waves.
  • 22:33 - 22:35
    The benefit for developers, of course,
  • 22:35 - 22:38
    is you get to provide this very live, rich experience
  • 22:38 - 22:40
    with very little code.
  • 22:40 - 22:44
    For your users, for starters, they get to use a familiar UI,
  • 22:44 - 22:46
    but for those of your users that have Wave accounts,
  • 22:46 - 22:48
    they get to walk around the Web
  • 22:48 - 22:51
    and aggregate the conversations they're interested in
  • 22:51 - 22:53
    into the Wave client so that they don't
  • 22:53 - 22:55
    have to go check back on 10,000 different pages
  • 22:55 - 22:57
    whether someone responded to them.
  • 22:57 - 23:00
    Which will make flame wars so much more effective.
  • 23:00 - 23:02
    [laughter]
  • 23:02 - 23:03
    She hates that joke.
  • 23:03 - 23:06
    Hannon: I hate it. [laughs]
  • 23:06 - 23:07
    Lars Rasmussen: Okay.
  • 23:07 - 23:09
    So that was an example of how to embed waves.
  • 23:09 - 23:11
    The embedding APIs can do other things,
  • 23:11 - 23:14
    and Stephanie will show you that now.
  • 23:14 - 23:16
    Hannon: So we invited some of our colleagues
  • 23:16 - 23:18
    from Brazil and India to Sydney
  • 23:18 - 23:21
    who work on one of our social networks called Orkut.
  • 23:21 - 23:23
    We wanted to build a demo of what it could look like
  • 23:23 - 23:25
    to put waves inside of Orkut.
  • 23:25 - 23:28
    Obviously, it's a place where lots of discussions happen.
  • 23:28 - 23:31
    It demonstrates three important principles,
  • 23:31 - 23:35
    or features, of our embed API.
  • 23:35 - 23:43
    Let me load up the demo.
  • 23:43 - 23:44
    So here's my Orkut account.
  • 23:44 - 23:48
    And you can see there's a Wave panel in the middle.
  • 23:48 - 23:51
    And the first thing is I can create a wave on Orkut.
  • 23:51 - 23:55
    So I'm starting a new wave, and I'll say, "Brazil trip?
  • 23:55 - 24:01
    Wonder when Lars will let me go."
  • 24:01 - 24:04
    The second important feature is that you can
  • 24:04 - 24:07
    use contacts other than your Wave contacts.
  • 24:07 - 24:09
    In this case, the authors of the site
  • 24:09 - 24:11
    chose to use the Orkut contacts,
  • 24:11 - 24:13
    so I can add some of my Orkut friends
  • 24:13 - 24:16
    like Sid, Torston, and Rodrigo,
  • 24:16 - 24:19
    who all helped build this demo.
  • 24:19 - 24:22
    The third principle is that I can embed a "Search" panel
  • 24:22 - 24:26
    inside of Orkut using the embed API.
  • 24:26 - 24:27
    I'll show you that now.
  • 24:27 - 24:33
    I can search for all my waves from here.
  • 24:33 - 24:36
    And so on. And look at them.
  • 24:36 - 24:39
    So that's waves embedded in Orkut.
  • 24:39 - 24:41
    What's important is that our embed API
  • 24:41 - 24:45
    is powerful enough for you to build your own Wave client.
  • 24:45 - 24:47
    In this case, the Orkut team
  • 24:47 - 24:50
    chose to focus on waves created inside of Orkut.
  • 24:50 - 24:52
    But just like in the blog example,
  • 24:52 - 24:55
    I can go back to my Wave client,
  • 24:55 - 24:57
    and I can see the wave I started there.
  • 24:57 - 25:00
    "Wonder when Lars will let me go to Brazil."
  • 25:00 - 25:03
    So that's the embed API.
  • 25:03 - 25:05
    Lars Rasmussen: You guys-- [applause]
  • 25:05 - 25:09
    Thank you.
  • 25:09 - 25:12
    Are you guys feeling inspired yet?
  • 25:12 - 25:14
    So remember that we're all going to give you accounts
  • 25:14 - 25:15
    on a sandbox build,
  • 25:15 - 25:19
    which is in fact the build that we're demo-ing from later today,
  • 25:19 - 25:21
    and this is all sample applications
  • 25:21 - 25:22
    that we're hoping you'll pick up
  • 25:22 - 25:26
    and build much, much cooler things with.
  • 25:26 - 25:28
    Okay, so the next thing I want to show is
  • 25:28 - 25:32
    of course you're going to want Wave on your mobile devices,
  • 25:32 - 25:35
    and I have an Android and an iPhone here,
  • 25:35 - 25:39
    and I was going to show you how well it works communicating
  • 25:39 - 25:41
    from mobile devices to the desktop,
  • 25:41 - 25:43
    but you guys are all on Facebook, aren't you?
  • 25:43 - 25:46
    Because I can't get on the wireless.
  • 25:46 - 25:48
    [laughter]
  • 25:48 - 25:51
    So if it doesn't work, it's your fault.
  • 25:51 - 25:53
    Okay, so you can see my inbox over here.
  • 25:53 - 25:55
    This is on the Android device.
  • 25:55 - 25:56
    Here's an open--
  • 25:56 - 25:58
    uh, the same open wave we saw before.
  • 25:58 - 26:00
    You see the pretty pictures here.
  • 26:00 - 26:06
    And then I can click the "Reply" button like this,
  • 26:06 - 26:09
    and you'll see over on Stephanie's screen,
  • 26:09 - 26:11
    which I can't see.
  • 26:11 - 26:13
    You will see a reply.
  • 26:13 - 26:16
    Imagine I was actually on a network,
  • 26:16 - 26:22
    and then I could type in, "I am on the boat."
  • 26:22 - 26:23
    Done.
  • 26:23 - 26:26
    Notice again my spelling.
  • 26:26 - 26:27
    And nothing is going to show up over there
  • 26:27 - 26:29
    because we haven't yet figured out
  • 26:29 - 26:32
    squeezing this through without a connection.
  • 26:32 - 26:33
    Maybe we'll show you that.
  • 26:33 - 26:36
    [laughter]
  • 26:36 - 26:37
    Hannon: As long as it's your fault that it's not working.
  • 26:37 - 26:38
    Lars Rasmussen: We are--
  • 26:38 - 26:39
    Hannon: I just don't want to screw up the--
  • 26:39 - 26:41
    Lars Rasmussen: We are working on it.
  • 26:41 - 26:44
    Okay, so that's mobile.
  • 26:44 - 26:46
    Hannon: How 'bout we talk about editing?
  • 26:46 - 26:48
    Lars Rasmussen: Oh, that's a brilliant idea.
  • 26:48 - 26:49
    Thank you.
  • 26:49 - 26:52
    Okay, so the next thing we're going to show.
  • 26:52 - 26:54
    Again because, um, there's only--
  • 26:54 - 26:55
    Back to my desktop. Thank you.
  • 26:55 - 26:57
    There is only one copy of the wave out there.
  • 26:57 - 26:59
    Even though we put these pictures on my blog,
  • 26:59 - 27:01
    I discussed them with Greg,
  • 27:01 - 27:04
    uh, we had them on my mobile device.
  • 27:04 - 27:06
    Now I notice that some of the captions
  • 27:06 - 27:07
    are kind of wonky.
  • 27:07 - 27:09
    And all I have to do is click this "Edit" button here,
  • 27:09 - 27:11
    and then I can fix that.
  • 27:11 - 27:15
    Kayaks. Beer Man.
  • 27:15 - 27:18
    Thank you. [applause]
  • 27:18 - 27:19
    Hannon: And as you notice,
  • 27:19 - 27:23
    the captions are updating on the blog.
  • 27:23 - 27:25
    Lars Rasmussen: Yes, hopefully you saw that the captions
  • 27:25 - 27:28
    were actually updating live on the blog as I was typing.
  • 27:28 - 27:31
    So, here I edited my own message,
  • 27:31 - 27:35
    but we actually let users edit each other's messages as well,
  • 27:35 - 27:37
    which is a very nice effect that in addition
  • 27:37 - 27:38
    to everything we showed you already,
  • 27:38 - 27:40
    you can use waves
  • 27:40 - 27:41
    to collaboratively author documents,
  • 27:41 - 27:43
    which we'll show you now.
  • 27:43 - 27:46
    So let's leave the boat behind, and let's go to work.
  • 27:46 - 27:47
    Stephanie.
  • 27:47 - 27:49
    Hannon: As Lars mentioned, I'm a product manager,
  • 27:49 - 27:52
    and I often have to take notes in a meeting.
  • 27:52 - 27:54
    Today I have to decide if I want to send those notes
  • 27:54 - 27:57
    out on email because I want people to discuss them,
  • 27:57 - 27:59
    or if I'm going to put them in a dock or a Wiki,
  • 27:59 - 28:02
    'cause I want other people to help me edit them.
  • 28:02 - 28:04
    With Wave you don't have to make that choice.
  • 28:04 - 28:07
    You can do both discussion and content collaboration
  • 28:07 - 28:09
    in one tool.
  • 28:09 - 28:11
    So these are our meeting notes.
  • 28:11 - 28:14
    I'm going to add Lars,
  • 28:14 - 28:17
    Jens, Greg, and ACD.
  • 28:17 - 28:19
    [Lars Rasmussen and Hannon speak over each other]
  • 28:19 - 28:20
    Lars Rasmussen: Pardon me.
  • 28:20 - 28:21
    Hannon: Then you open it.
  • 28:21 - 28:22
    Lars Rasmussen: Then I open it.
  • 28:22 - 28:24
    And even though this is Stephanie's message,
  • 28:24 - 28:26
    I can click that same "Edit" button
  • 28:26 - 28:32
    and change this to "glorious."
  • 28:32 - 28:34
    And then I can add an action item.
  • 28:34 - 28:38
    "AI. Make more better AIs, already."
  • 28:38 - 28:40
    Whoo, like that.
  • 28:40 - 28:41
    Thank you.
  • 28:41 - 28:43
    [applause]
  • 28:43 - 28:44
    Thank you.
  • 28:44 - 28:46
    And so that's how easy it is
  • 28:46 - 28:48
    for me to edit Stephanie's message.
  • 28:48 - 28:49
    We want to show you now how it looks
  • 28:49 - 28:51
    to the other participants on the wave--
  • 28:51 - 28:53
    the fact that I edited her message.
  • 28:53 - 28:54
    We'll start with Stephanie.
  • 28:54 - 28:57
    Hannon: So you can see the wave pop back into my inbox
  • 28:57 - 28:58
    because there's new material.
  • 28:58 - 29:02
    If I open it, I see the markups.
  • 29:02 - 29:04
    So I see the changes that Lars made.
  • 29:04 - 29:06
    Lars Rasmussen: Thank you.
  • 29:06 - 29:10
    [applause]
  • 29:10 - 29:11
    Hannon: We haven't implemented it yet,
  • 29:11 - 29:13
    but we'll also have a little description at the top
  • 29:13 - 29:15
    that says Lars edited this message.
  • 29:15 - 29:18
    What's important is I see these markups
  • 29:18 - 29:21
    not because I wrote the original message,
  • 29:21 - 29:24
    but because I saw the original message.
  • 29:24 - 29:26
    Anyone who saw my original message
  • 29:26 - 29:27
    would see these same markups
  • 29:27 - 29:29
    the next time they visited the wave
  • 29:29 - 29:31
    after Lars made his edits.
  • 29:31 - 29:33
    Jens Rasmussen: All right, now,
  • 29:33 - 29:34
    I didn't get to see the original message,
  • 29:34 - 29:36
    so when I open up this wave,
  • 29:36 - 29:37
    I just see the current version of it.
  • 29:37 - 29:39
    But I do get to see
  • 29:39 - 29:42
    that both Stephanie and Lars wrote this message.
  • 29:42 - 29:44
    Most of the time I'm not going to care,
  • 29:44 - 29:48
    but if I do care, then Playback is my friend again.
  • 29:48 - 29:50
    So I see Stephanie's original message,
  • 29:50 - 29:51
    she adds Lars,
  • 29:51 - 29:55
    and then I get to see Lars's edits.
  • 29:55 - 29:58
    [applause]
  • 29:58 - 30:00
    Thank you.
  • 30:00 - 30:02
    So now that we have accountability--
  • 30:02 - 30:04
    accountability in place,
  • 30:04 - 30:06
    we're going to allow everybody on a wave
  • 30:06 - 30:08
    to edit everything by default.
  • 30:08 - 30:09
    When something is changed,
  • 30:09 - 30:11
    the author is notified immediately,
  • 30:11 - 30:13
    and, if needed, can take action.
  • 30:13 - 30:17
    and everybody who's on the wave can find out who did what.
  • 30:17 - 30:20
    So Stephanie promised that we were going to do
  • 30:20 - 30:23
    collaboration and communication using the same tool.
  • 30:23 - 30:25
    Hannon: I did. Jens Rasmussen: So I'm going--
  • 30:25 - 30:27
    Now that I know that Lars made this--the request for more AIs,
  • 30:27 - 30:31
    I'm going to use the in-line reply tool we showed earlier,
  • 30:31 - 30:35
    um, to add my reply here.
  • 30:35 - 30:41
    "No, enough AIs already."
  • 30:41 - 30:44
    My spelling is not doing well either.
  • 30:44 - 30:46
    Lars Rasmussen: It's hard when 4,000 people are watching.
  • 30:46 - 30:47
    Jens Rasmussen: Typing and talking?
  • 30:47 - 30:49
    It's a little bit too much.
  • 30:49 - 30:51
    There we go. So I'll hand it back to Lars.
  • 30:51 - 30:52
    Lars Rasmussen: Okay, thank you.
  • 30:52 - 30:53
    So notice--
  • 30:53 - 30:56
    Notice that we never said, "Let's start a document, here."
  • 30:56 - 30:58
    These are all just waves.
  • 30:58 - 30:59
    The only thing different here
  • 30:59 - 31:01
    is that we chose to think of that opening message
  • 31:01 - 31:04
    more like a document we're collaborating about
  • 31:04 - 31:07
    than a message that starts a conversation.
  • 31:07 - 31:10
    And then we're choosing to think about that in-line reply
  • 31:10 - 31:12
    more like the beginning of a conversation
  • 31:12 - 31:14
    about the point in that document.
  • 31:14 - 31:16
    But to the system, they're all just waves,
  • 31:16 - 31:18
    and in fact, you can collaboratively edit
  • 31:18 - 31:20
    any message in the tree.
  • 31:20 - 31:23
    Doesn't have to be, uh, document-like at all.
  • 31:23 - 31:25
    Stephanie often comes and very friendly fixes
  • 31:25 - 31:27
    all of my spelling errors.
  • 31:27 - 31:32
    And so we think this combination of collaborative editing
  • 31:32 - 31:33
    and in-line discussion
  • 31:33 - 31:36
    makes for a very powerful collaboration tool.
  • 31:36 - 31:39
    And I want to show you that with a design document
  • 31:39 - 31:41
    that the team wrote a while back.
  • 31:41 - 31:44
    Let me just reconfigure my client, here.
  • 31:44 - 31:49
    I'm going to go do a safe search, find the document here,
  • 31:49 - 31:51
    Let me make some more space for it.
  • 31:51 - 31:55
    And you'll see here that it's a RISTEX document.
  • 31:55 - 31:56
    It's got headlines, it's got bullet points.
  • 31:56 - 31:59
    It's got illustrations, different types of fonts.
  • 31:59 - 32:00
    And then it's interrupted
  • 32:00 - 32:02
    by these little snippets of conversation
  • 32:02 - 32:05
    that help facilitate the collaboration.
  • 32:05 - 32:08
    And as always, the best way to see how this happened
  • 32:08 - 32:09
    is to play back the wave.
  • 32:09 - 32:11
    And you'll see Steven, our trusted server guy,
  • 32:11 - 32:14
    started out with a terse draft.
  • 32:14 - 32:16
    He added the rest of the team
  • 32:16 - 32:18
    Lars the manager says, "Please do more work."
  • 32:18 - 32:21
    Steven grudgingly adds another paragraph.
  • 32:21 - 32:22
    He says, "Yeah, whatever."
  • 32:22 - 32:25
    Then Stephanie the PM makes an edit here.
  • 32:25 - 32:27
    She adds a comment there,
  • 32:27 - 32:29
    starts a discussion there, and so on.
  • 32:29 - 32:32
    I can use the slider here to drag it
  • 32:32 - 32:34
    to anywhere in the history of the wave.
  • 32:34 - 32:37
    And we're planning a bunch of power tools
  • 32:37 - 32:38
    that come with Playback.
  • 32:38 - 32:40
    For example, I might ask it
  • 32:40 - 32:42
    only to play back Stephanie's contribution.
  • 32:42 - 32:44
    So I might ask it to only play back a single message
  • 32:44 - 32:47
    or even a single paragraph inside a message.
  • 32:47 - 32:49
    we're definitely going to let you take
  • 32:49 - 32:50
    one change in the history
  • 32:50 - 32:53
    and revert it at the end of the history.
  • 32:53 - 32:56
    Maybe name aversion so that you can find it again and so on.
  • 32:56 - 32:58
    Playback is going to be a really powerful tool
  • 32:58 - 33:00
    for investigating and manipulating
  • 33:00 - 33:04
    the entire history of the wave.
  • 33:04 - 33:05
    Thank you.
  • 33:05 - 33:11
    [applause]
  • 33:11 - 33:14
    And so now imagine we're done with the design document.
  • 33:14 - 33:16
    Or we find we're in a good state;
  • 33:16 - 33:17
    we want to share it with a wider audience.
  • 33:17 - 33:20
    You'll notice it's not super comfortable reading a document
  • 33:20 - 33:22
    interrupted by all this discussion,
  • 33:22 - 33:24
    so we added this widget here
  • 33:24 - 33:27
    that lets you hide and show some discussions,
  • 33:27 - 33:32
    but also, just like we extracted images from a wave earlier,
  • 33:32 - 33:33
    we let you extract the current version
  • 33:33 - 33:37
    of any message in a tree into a fresh wave.
  • 33:37 - 33:38
    Like this.
  • 33:38 - 33:40
    And now I have a fresh wave
  • 33:40 - 33:42
    with the pristine product of our work,
  • 33:42 - 33:44
    which I can now submit to the server
  • 33:44 - 33:46
    and share with whomever I like,
  • 33:46 - 33:49
    put on a mailing list internal blog or even keep working on.
  • 33:49 - 33:52
    And in fact, we're planning more features here
  • 33:52 - 33:54
    for document production.
  • 33:54 - 33:56
    Imagine you go back and do more work
  • 33:56 - 33:57
    in the original wave.
  • 33:57 - 34:00
    Then you'll be able to merge just those changes
  • 34:00 - 34:02
    into that same product wave.
  • 34:02 - 34:05
    The product wave will just have a two-step history now,
  • 34:05 - 34:07
    where each step is attributed to whoever did the copy.
  • 34:07 - 34:11
    In fact, and you guys will recognize this as, um,
  • 34:11 - 34:12
    inspired by source-controlled systems.
  • 34:12 - 34:14
    We'll have you--
  • 34:14 - 34:15
    We'll let you have a whole string of work waves,
  • 34:15 - 34:18
    all pointing to the same product wave.
  • 34:18 - 34:19
    You can have different themes
  • 34:19 - 34:21
    working on different parts of a wave,
  • 34:21 - 34:22
    and then when one team merges
  • 34:22 - 34:24
    and that changes into the product wave,
  • 34:24 - 34:26
    the other teams can pull that down,
  • 34:26 - 34:28
    merge it with the local changes, and so on.
  • 34:28 - 34:29
    So this is going to become
  • 34:29 - 34:34
    a very powerful document production tool.
  • 34:34 - 34:35
    Thank you.
  • 34:35 - 34:40
    [applause]
  • 34:40 - 34:43
    We showed you this, of course, with, um,
  • 34:43 - 34:45
    with, uh, rich text documents.
  • 34:45 - 34:46
    There's no reason we shouldn't
  • 34:46 - 34:49
    later add spreadsheet-type functionality in there,
  • 34:49 - 34:51
    or presentation building-type functionality in there.
  • 34:51 - 34:54
    In fact as we'll show you later, we've taken great care
  • 34:54 - 34:57
    to make the content model inside Wave extendable,
  • 34:57 - 35:00
    both by us and by you.
  • 35:00 - 35:01
    Okay, the next thing I want--
  • 35:01 - 35:02
    Hannon: Why don't you just talk for a minute
  • 35:02 - 35:04
    before you open it?
  • 35:04 - 35:05
    Lars Rasmussen: Talk for a minute...
  • 35:05 - 35:06
    Hannon: You know.
  • 35:06 - 35:07
    Lars Rasmussen: Before I open it.
  • 35:07 - 35:09
    Hannon: 30 seconds.
  • 35:09 - 35:11
    Lars Rasmussen: We could do a little interpretive dance
  • 35:11 - 35:12
    while we open it.
  • 35:12 - 35:13
    It's not that there's anything wrong
  • 35:13 - 35:14
    with the thing I was about to open,
  • 35:14 - 35:15
    it's just that--
  • 35:15 - 35:16
    How're you guys doing?
  • 35:16 - 35:17
    [laughter]
  • 35:17 - 35:19
    Are you having a good time?
  • 35:19 - 35:20
    I know it's a long demo. Thank you.
  • 35:20 - 35:23
    Don't be shy if you like it.
  • 35:23 - 35:24
    Hannon: All right, we're ready.
  • 35:24 - 35:26
    Lars Rasmussen: There's a whole bunch of people
  • 35:26 - 35:28
    in blue shirts working feverishly over there.
  • 35:28 - 35:31
    [chuckles] And we're ready.
  • 35:31 - 35:34
    Okay, so here is a wave, um...
  • 35:34 - 35:35
    Here is a wave. That's right.
  • 35:35 - 35:37
    So my little introduction here is the following:
  • 35:37 - 35:38
    We're going to show you now
  • 35:38 - 35:41
    the thing we had the most fun working on.
  • 35:41 - 35:43
    As in this was the hardest thing we did.
  • 35:43 - 35:46
    Um, which is to let more than one person
  • 35:46 - 35:48
    edit the same message at the same time
  • 35:48 - 35:51
    and still transmitting the characters live on the wire.
  • 35:51 - 35:53
    So we have a set of pictures here,
  • 35:53 - 35:55
    and Stephanie is going to start
  • 35:55 - 35:56
    at the top-left editing the captions.
  • 35:56 - 35:58
    You can see on my screen
  • 35:58 - 36:00
    I can see exactly where that orange label--where she is,
  • 36:00 - 36:03
    and I'm going to start from the lower-right.
  • 36:03 - 36:04
    Hannon: "Thumbs up."
  • 36:04 - 36:06
    Lars Rasmussen: "Spelling Google."
  • 36:06 - 36:08
    Hannon: "Lars in the lead."
  • 36:08 - 36:09
    Lars Rasmussen: "Smiley David."
  • 36:09 - 36:11
    Hannon: "Wave crew hiking." Lars Rasmussen: "Kapow."
  • 36:11 - 36:13
    [applause]
  • 36:13 - 36:14
    Thank you.
  • 36:14 - 36:16
    Now we're very close to each other.
  • 36:16 - 36:18
    I'll add some styling here.
  • 36:18 - 36:19
    I'll make this italic.
  • 36:19 - 36:22
    Oh, boy, if someone can add some color.
  • 36:22 - 36:23
    We can do this.
  • 36:23 - 36:25
    Notice how close we can edit to each other.
  • 36:25 - 36:27
    You can see we've got a couple of--
  • 36:27 - 36:28
    of our team has joined us.
  • 36:28 - 36:30
    We've got three people here.
  • 36:30 - 36:33
    Casey, Steph, Ophir and Dan.
  • 36:33 - 36:34
    We have four people now,
  • 36:34 - 36:37
    editing the same document right next to each other.
  • 36:37 - 36:41
    [applause]
  • 36:41 - 36:44
    Thank you.
  • 36:44 - 36:46
    Thank you.
  • 36:46 - 36:48
    And so apart from hours and hours of fun
  • 36:48 - 36:50
    just chasing each other's carrots around on the screen...
  • 36:50 - 36:52
    [laughter]
  • 36:52 - 36:54
    Hannon: It's a lot of fun. Lars Rasmussen: A lot of fun.
  • 36:54 - 36:58
    Um, the--the--this sort of live, concurrent editing
  • 36:58 - 37:00
    opens up a whole set of new ways of using the tool.
  • 37:00 - 37:02
    We're actually still discovering some.
  • 37:02 - 37:04
    Imagine you're in the same room,
  • 37:04 - 37:05
    you're taking notes from a meeting.
  • 37:05 - 37:08
    Oftentimes people don't even come to the meeting,
  • 37:08 - 37:11
    they just open up the wave, see the notes being taken,
  • 37:11 - 37:14
    they just pop their questions in the wave, and so on.
  • 37:14 - 37:16
    I want to-- while I'm showing off our edit,
  • 37:16 - 37:18
    I want to make sure you see
  • 37:18 - 37:21
    that it supports right-to-left languages.
  • 37:21 - 37:23
    This is Ophir speaking in Hebrew.
  • 37:23 - 37:24
    Thank you.
  • 37:24 - 37:28
    [applause]
  • 37:28 - 37:32
    You see up at the top-left that the editor supports languages
  • 37:32 - 37:36
    that require international input method editors as well.
  • 37:36 - 37:40
    I'm pretty sure that's Chinese.
  • 37:40 - 37:47
    Okay. That's collaborative editing.
  • 37:47 - 37:48
    And now...
  • 37:48 - 37:50
    Man, this is a long demo.
  • 37:50 - 37:52
    You guys want to stand up a little?
  • 37:52 - 37:53
    Stretch. Hannon: Any stretching?
  • 37:53 - 37:54
    Lars Rasmussen: Stretch a little.
  • 37:54 - 37:56
    Hug the person next to you.
  • 37:56 - 37:57
    [laughter]
  • 37:57 - 37:58
    You don't have to do that.
  • 37:58 - 38:01
    Hannon: A hug break. Make some friends.
  • 38:01 - 38:03
    Lars Rasmussen: Um, I want to take a little break.
  • 38:03 - 38:04
    We have lots more to show you,
  • 38:04 - 38:06
    but I want to take a little break,
  • 38:06 - 38:10
    and I want to, um, call out to our friends and colleagues
  • 38:10 - 38:12
    on the Google Web Toolkit team.
  • 38:12 - 38:13
    So--Thank you.
  • 38:13 - 38:14
    [applause]
  • 38:14 - 38:18
    Thank you.
  • 38:18 - 38:23
    So Google Wave is 100% built with the Google Web Toolkit
  • 38:23 - 38:25
    from the first line of code we wrote in a prototype
  • 38:25 - 38:28
    back in early 2007.
  • 38:28 - 38:30
    And as I'm sure you know, the Google Web Toolkit
  • 38:30 - 38:34
    lets you write HTML 5 applications in Java.
  • 38:34 - 38:36
    And then GWT, as we call it,
  • 38:36 - 38:40
    automatically translates that into HTML, JavaScript, CSS,
  • 38:40 - 38:42
    all of those things that then run
  • 38:42 - 38:44
    in all of the modern browsers.
  • 38:44 - 38:47
    And I think that we couldn't possibly have built
  • 38:47 - 38:50
    something this rich without the Google Web Toolkit.
  • 38:50 - 38:54
    In fact, I don't think we would even have thought to do that.
  • 38:54 - 38:57
    I think using modern tools like this
  • 38:57 - 38:59
    changes your way of thinking.
  • 38:59 - 39:02
    When I was still hand rolling JavaScript for Google Maps,
  • 39:02 - 39:05
    I found too much of my brain cycles
  • 39:05 - 39:08
    were used worrying about the constraints of programming
  • 39:08 - 39:10
    in a scripting language in a browser.
  • 39:10 - 39:12
    But by using GWT, I get to write in Java
  • 39:12 - 39:14
    and have this amazing set of tools
  • 39:14 - 39:16
    that come with writing in Java,
  • 39:16 - 39:17
    and we found that our programmers
  • 39:17 - 39:19
    can now spend most of their time
  • 39:19 - 39:23
    thinking about the amazing potential of the Web.
  • 39:23 - 39:26
    And by the way, this is both if you're on a desktop
  • 39:26 - 39:28
    or if you're on a mobile device,
  • 39:28 - 39:32
    when I showed you on the Android and iPhone here,
  • 39:32 - 39:36
    Wave was running in the browser in both of those phones.
  • 39:36 - 39:37
    GWT makes that fairly easy to do.
  • 39:37 - 39:40
    It's actually the same code
  • 39:40 - 39:42
    that runs in those mobile devices,
  • 39:42 - 39:43
    it's just a different layout.
  • 39:43 - 39:47
    We estimate that the extra requirement of serving this
  • 39:47 - 39:50
    both into desktop browsers and mobile browsers
  • 39:50 - 39:53
    only adds about 5% extra engineering effort,
  • 39:53 - 39:56
    which I find remarkable.
  • 39:56 - 39:57
    Okay.
  • 39:57 - 39:59
    Hannon: And that graph from yesterday.
  • 39:59 - 40:00
    Lars Rasmussen: Pardon me.
  • 40:00 - 40:02
    Oh, the graph from yesterday. Did you see that?
  • 40:02 - 40:04
    How we built 1.4 megs of code and then all of a sudden
  • 40:04 - 40:06
    it went down to 200k?
  • 40:06 - 40:10
    We like GWT for that.
  • 40:10 - 40:14
    [applause]
  • 40:14 - 40:16
    Hannon: All right. So back to the demo.
  • 40:16 - 40:18
    Let's talk about organization.
  • 40:18 - 40:20
    We learned from our own use of Wave
  • 40:20 - 40:23
    that you get a lot of waves, which is great,
  • 40:23 - 40:26
    but you need tools to organize them.
  • 40:26 - 40:27
    We have things you're familiar with
  • 40:27 - 40:29
    like folders and saved searches.
  • 40:29 - 40:32
    We also have tags and they're shared
  • 40:32 - 40:34
    by all the participants on the wave.
  • 40:34 - 40:36
    So you have just as much incentive
  • 40:36 - 40:39
    to put a great tag on a wave as a great subject.
  • 40:39 - 40:41
    For example, Lars is way too lazy
  • 40:41 - 40:43
    to organize his own stuff.
  • 40:43 - 40:44
    Lars Rasmussen: Oh, yeah.
  • 40:44 - 40:46
    Hannon: So we have a team help him do it.
  • 40:46 - 40:49
    Lars Rasmussen: Thank you. Hannon: [laughs]
  • 40:49 - 40:51
    But the most powerful way to organize waves
  • 40:51 - 40:53
    is with waves themselves.
  • 40:53 - 40:56
    Let me open a wave we used to organize this demo.
  • 40:56 - 40:58
    You can see it has links to other waves in it
  • 40:58 - 41:01
    and you can combine, uh, them in sections, formatting.
  • 41:01 - 41:03
    You can discuss them.
  • 41:03 - 41:06
    And if I click on one of these links,
  • 41:06 - 41:07
    it'll take me to that wave
  • 41:07 - 41:10
    and I can use the back button to go back.
  • 41:10 - 41:12
    So let me show you how easy it is
  • 41:12 - 41:14
    to create one of these wave links.
  • 41:14 - 41:17
    If I missed one, I can just pick it up
  • 41:17 - 41:20
    from the search panel and drop it in.
  • 41:20 - 41:25
    [applause]
  • 41:25 - 41:29
    I'll do that one more time 'cause I think it's cool.
  • 41:29 - 41:30
    Drop it in.
  • 41:30 - 41:32
    So we found on our own team
  • 41:32 - 41:35
    links--wave links are good for more than just lists.
  • 41:35 - 41:38
    We're actually interlinking a lot of waves on our site
  • 41:38 - 41:41
    almost like a Wiki, uh, on our team.
  • 41:41 - 41:42
    Before we get to Wave extensions,
  • 41:42 - 41:45
    which I know this audience is really excited about,
  • 41:45 - 41:46
    I want to show you one more thing
  • 41:46 - 41:48
    that we worked really hard on.
  • 41:48 - 41:51
    I'm going to go up here and search for Google Wave.
  • 41:51 - 41:53
    Lars Rasmussen: I have a feeling, uh, you're going
  • 41:53 - 41:55
    to want to refresh your browser before we do this.
  • 41:55 - 41:59
    Hannon: Just like my inbox, when a wave matches this search,
  • 41:59 - 42:03
    it will pop into the panel.
  • 42:03 - 42:05
    Lars Rasmussen: And so Stephanie has a search
  • 42:05 - 42:06
    for Google Wave over there.
  • 42:06 - 42:09
    I'm teeing up a new wave here.
  • 42:09 - 42:10
    Said, "Wow.
  • 42:10 - 42:16
    I am finally demo-ing Google Wave."
  • 42:16 - 42:17
    Now the reason this hasn't showed up
  • 42:17 - 42:21
    in Stephanie's search yet is I didn't type the E.
  • 42:21 - 42:23
    So what I'm going to do, I'm going to count to three,
  • 42:23 - 42:24
    then I'm going to hit the E,
  • 42:24 - 42:26
    and you guys can count how many seconds it takes
  • 42:26 - 42:29
    before it shows up in Stephanie's browser.
  • 42:29 - 42:32
    One, two, three.
  • 42:32 - 42:37
    [applause]
  • 42:37 - 42:40
    You guys want to-- you guys want to see that again?
  • 42:40 - 42:42
    [laughter]
  • 42:42 - 42:44
    Hey, Stephanie, can you open up that wave for me?
  • 42:44 - 42:46
    Hannon: All right, let me go over there.
  • 42:46 - 42:47
    Lars Rasmussen: Backspace.
  • 42:47 - 42:48
    Hannon: [laughs]
  • 42:48 - 42:51
    [laughter and applause]
  • 42:51 - 42:54
    Lars Rasmussen: E, backspace, E,
  • 42:54 - 42:57
    backspace, E, backspace, E, backspace.
  • 42:57 - 43:01
    We call that the Wave dance.
  • 43:01 - 43:02
    So we've worked really hard on this.
  • 43:02 - 43:03
    We're pretty proud of the result.
  • 43:03 - 43:06
    I should just say after we started using it,
  • 43:06 - 43:08
    we found this is almost too fast.
  • 43:08 - 43:10
    Sometimes, uh, it draws your attention
  • 43:10 - 43:11
    to unfinished work.
  • 43:11 - 43:13
    And we're actually looking for the right balance
  • 43:13 - 43:18
    between speed and not being interrupted too often.
  • 43:18 - 43:19
    Okay, what's next?
  • 43:19 - 43:22
    Hannon: Extensions. Lars Rasmussen: Extensions.
  • 43:22 - 43:25
    The reasons you guys came here.
  • 43:25 - 43:27
    Okay. So the next thing we want to show
  • 43:27 - 43:30
    is the other category of APIs
  • 43:30 - 43:32
    that we're making available today,
  • 43:32 - 43:35
    which is about extending the functionality of Wave.
  • 43:35 - 43:38
    So we have tried hard to maintain a discipline
  • 43:38 - 43:41
    on the team that even significant offerings
  • 43:41 - 43:44
    of our own should be built with our own extension APIs
  • 43:44 - 43:46
    so that your extensions will live
  • 43:46 - 43:48
    as first-class citizens inside Wave.
  • 43:48 - 43:52
    It's similar, actually, to how browsers like Firefox
  • 43:52 - 43:53
    let you extend them.
  • 43:53 - 43:54
    This is just the web site you're extending
  • 43:54 - 43:56
    instead of the browser.
  • 43:56 - 43:59
    So let me show you some examples.
  • 43:59 - 44:01
    You've undoubtedly noticed how all morning,
  • 44:01 - 44:03
    I've been pretending my spelling is bad
  • 44:03 - 44:06
    just so that we could show off our spell-checker.
  • 44:06 - 44:07
    So normally spell-checkers work
  • 44:07 - 44:10
    by matching words up against a dictionary.
  • 44:10 - 44:12
    If they find there's-- if they don't find a word
  • 44:12 - 44:13
    that is in error,
  • 44:13 - 44:14
    the problem is that oftentimes
  • 44:14 - 44:17
    spelling mistakes hits other dictionary words.
  • 44:17 - 44:20
    And so our spell-checker actually takes the context
  • 44:20 - 44:21
    of the word into account
  • 44:21 - 44:23
    and then it matches it up
  • 44:23 - 44:25
    against an enormous language model
  • 44:25 - 44:26
    that we've built from the entire web.
  • 44:26 - 44:29
    Let me show you how powerful that is.
  • 44:29 - 44:33
    We call this the "Bean Soup Demo."
  • 44:33 - 44:38
    "Can I have some been soup?"
  • 44:38 - 44:40
    It puts a red on the line
  • 44:40 - 44:43
    and it knows that I meant "bean soup."
  • 44:43 - 44:44
    Thank you.
  • 44:44 - 44:48
    [applause]
  • 44:48 - 44:50
    Okay, now watch carefully.
  • 44:50 - 44:55
    "It has bean so long."
  • 44:55 - 44:59
    Did you see that?
  • 44:59 - 45:03
    So it is--it has become so good at spell-checking
  • 45:03 - 45:05
    that often, it has enough confidence
  • 45:05 - 45:07
    that we let it automatically correct my errors.
  • 45:07 - 45:11
    Let me show you that again.
  • 45:11 - 45:16
    "Icland is an icland."
  • 45:16 - 45:23
    [applause]
  • 45:23 - 45:30
    "You are to kind."
  • 45:30 - 45:32
    Pretty cool, huh? [laughs]
  • 45:32 - 45:33
    You didn't see that last one.
  • 45:33 - 45:35
    Okay, so that's our spell-checker,
  • 45:35 - 45:37
    or Spelly as we affectionately call it.
  • 45:37 - 45:39
    Let me show you another simpler one
  • 45:39 - 45:42
    that detects links in what you're typing.
  • 45:42 - 45:43
    And we call it Linky.
  • 45:43 - 45:47
    "I love google.com."
  • 45:47 - 45:50
    It immediately puts an underline--.a--
  • 45:50 - 45:54
    ooh, that's not a link-- .u--now it's a link again.
  • 45:54 - 45:58
    [applause]
  • 45:58 - 46:00
    You're wondering what's this all got to do
  • 46:00 - 46:02
    with extensions and let me explain that.
  • 46:02 - 46:04
    So you remember we showed you a robot earlier
  • 46:04 - 46:06
    called "Bloggy."
  • 46:06 - 46:08
    All that one did was publish a blog
  • 46:08 - 46:10
    that let you use the embedding API.
  • 46:10 - 46:12
    But robots are really powerful ways
  • 46:12 - 46:13
    of extending Wave's functionality.
  • 46:13 - 46:17
    They're server-side programs that participate in Wave
  • 46:17 - 46:20
    with all the power of the human participants.
  • 46:20 - 46:23
    You can see from your robot the live changes in the wave.
  • 46:23 - 46:25
    You can make live changes to the wave
  • 46:25 - 46:27
    including adding and removing messages,
  • 46:27 - 46:28
    collaboratively edited messaging,
  • 46:28 - 46:30
    adding and removing participants.
  • 46:30 - 46:33
    You can even start new waves from robots.
  • 46:33 - 46:35
    And the way Spelly works
  • 46:35 - 46:38
    is that it uses our robot APIs to watch what I'm typing.
  • 46:38 - 46:41
    It sits on the server. It watches what I'm typing.
  • 46:41 - 46:43
    It takes every so many words and matches it up
  • 46:43 - 46:45
    against a language model.
  • 46:45 - 46:47
    And then when it finds an error,
  • 46:47 - 46:50
    it uses collaborative editing to edit the content.
  • 46:50 - 46:52
    And in fact, when it doesn't have enough confidence
  • 46:52 - 46:54
    and it put that red underline,
  • 46:54 - 46:57
    if Steph and I were editing the message at the same time,
  • 46:57 - 46:59
    she would also see the red underline
  • 46:59 - 47:02
    and she could be the one taking the suggestion.
  • 47:02 - 47:05
    Linky works in the same way.
  • 47:05 - 47:09
    But who wants to be typing in links all day?
  • 47:09 - 47:10
    We had a very good friend of ours
  • 47:10 - 47:13
    from the Google Search Team build this extension for us here
  • 47:13 - 47:15
    called Searchy.
  • 47:15 - 47:16
    Let's search for Australia.
  • 47:16 - 47:19
    Hannon: We have a really clever naming convention.
  • 47:19 - 47:21
    Lars Rasmussen: And here you can do a Google search
  • 47:21 - 47:25
    from right inside Wave and add the link like that.
  • 47:25 - 47:29
    [applause]
  • 47:29 - 47:30
    You guys want to see that again?
  • 47:30 - 47:34
    I search for Bora Bora. It's so pretty there.
  • 47:34 - 47:37
    I add an image to the wave just like that.
  • 47:37 - 47:38
    Thank you.
  • 47:38 - 47:41
    [applause]
  • 47:41 - 47:44
    Let me just quickly return to our friend Linky.
  • 47:44 - 47:46
    I've got a video sitting here.
  • 47:46 - 47:50
    Let me copy the URL.
  • 47:50 - 47:52
    And inside my wave,
  • 47:52 - 47:55
    I'm going to type "Check this out."
  • 47:55 - 47:59
    And then I'm going to copy the link in there.
  • 47:59 - 48:01
    And then I'm going to dance a little bit
  • 48:01 - 48:04
    while the system spectacularly fails.
  • 48:04 - 48:07
    [laughter]
  • 48:07 - 48:11
    Maybe we'll return to that later.
  • 48:11 - 48:14
    Okay, so that's extensions that we built
  • 48:14 - 48:15
    with internal APIs.
  • 48:15 - 48:17
    And what we're doing today as part of the developer preview
  • 48:17 - 48:22
    is--is make external versions of these APIs
  • 48:22 - 48:23
    available to you guys.
  • 48:23 - 48:26
    The external APIs have almost all the power
  • 48:26 - 48:27
    of the internal APIs.
  • 48:27 - 48:30
    There is a few things we haven't quite figured out
  • 48:30 - 48:31
    how to secure the export.
  • 48:31 - 48:33
    We're working very hard to close the gap.
  • 48:33 - 48:38
    We're going to show you now a series of examples
  • 48:38 - 48:40
    of things that are built with the external APIs.
  • 48:40 - 48:41
    These are all sample codes
  • 48:41 - 48:43
    that are going to be on code.google.com
  • 48:43 - 48:46
    where we'll host the API.
  • 48:46 - 48:48
    Stephanie.
  • 48:48 - 48:51
    Hannon: Any open social gadget can sit inside a wave.
  • 48:51 - 48:53
    In fact, we were about to show you one
  • 48:53 - 48:55
    which might come a little bit later.
  • 48:55 - 48:58
    But we also make an additional API available
  • 48:58 - 49:01
    that lets you the developer make your gadget
  • 49:01 - 49:03
    live and collaborative.
  • 49:03 - 49:04
    I want to show you that.
  • 49:04 - 49:08
    But before I do, I'll digress and tell you a little story.
  • 49:08 - 49:10
    Even though we on this team have been building Wave
  • 49:10 - 49:12
    and thinking about Wave for a year and a half,
  • 49:12 - 49:15
    when we first started using it ourselves,
  • 49:15 - 49:17
    it took awhile for us to discover all the ways
  • 49:17 - 49:19
    Wave can make you more productive
  • 49:19 - 49:22
    because we were so used to older tools.
  • 49:22 - 49:25
    In fact, we're still discovering new ways all the time.
  • 49:25 - 49:28
    I'll show you that by opening a wave
  • 49:28 - 49:31
    and using Playback to tell you what happened.
  • 49:31 - 49:33
    Uh, someone on our team wanted to create a movie outing
  • 49:33 - 49:36
    and we should all go see the Transformers.
  • 49:36 - 49:38
    So he sent a wave out and people did something
  • 49:38 - 49:40
    very email-like and responded.
  • 49:40 - 49:43
    "I'm interested." "What place are you going to?"
  • 49:43 - 49:46
    "Is that really a good movie?" And so on.
  • 49:46 - 49:50
    I tried to get them to see Confessions of a Shopaholic.
  • 49:50 - 49:51
    Nobody went for that.
  • 49:51 - 49:52
    Lars Rasmussen: She's still trying.
  • 49:52 - 49:54
    Hannon: Still trying.
  • 49:54 - 49:55
    So when you look at this wave,
  • 49:55 - 49:57
    it's sort of hard to parse out the important information
  • 49:57 - 49:58
    of who wants to go.
  • 49:58 - 50:01
    So somebody suggested we should all edit
  • 50:01 - 50:03
    the opening message instead of putting it
  • 50:03 - 50:05
    in individual messages.
  • 50:05 - 50:07
    And we cleaned up the wave.
  • 50:07 - 50:12
    Everyone started editing the opening message and so on.
  • 50:12 - 50:16
    This was a much better way to construct this RSVP list.
  • 50:16 - 50:18
    And we could still have discussions
  • 50:18 - 50:21
    about which car to take and so on.
  • 50:21 - 50:22
    Now, we're all engineers,
  • 50:22 - 50:24
    and you can look at this workflow
  • 50:24 - 50:26
    and think there are better ways
  • 50:26 - 50:28
    or there are ways to make this even better
  • 50:28 - 50:30
    using our extensions.
  • 50:30 - 50:36
    So another engineer on our team wrote a gadget.
  • 50:36 - 50:40
    We call this the "yes-no-maybe gadget."
  • 50:40 - 50:41
    Hey. [laughs]
  • 50:41 - 50:45
    [applause]
  • 50:45 - 50:47
    So if you--it's hard to see for you guys, I know.
  • 50:47 - 50:49
    But I'm currently in "No" in the middle column
  • 50:49 - 50:52
    and I'm to change it to "Maybe."
  • 50:52 - 50:55
    And you see it update on Lars' screen.
  • 50:55 - 50:57
    [applause]
  • 50:57 - 50:58
    Lars Rasmussen: And I'm currently
  • 50:58 - 50:59
    in the "Maybe" column.
  • 50:59 - 51:00
    And I click the "Yes" over here.
  • 51:00 - 51:01
    And you'll see it quickly updates
  • 51:01 - 51:03
    on both our screens.
  • 51:03 - 51:05
    Hannon: So you the gadget developer
  • 51:05 - 51:07
    only have to worry about two things.
  • 51:07 - 51:09
    When I click the button,
  • 51:09 - 51:13
    update the state of the gadget in XML and the wave,
  • 51:13 - 51:15
    then we automatically transmit through the server
  • 51:15 - 51:18
    to Lars' client where your gadget
  • 51:18 - 51:23
    has to update the UI to reflect the new state.
  • 51:23 - 51:25
    Now, of course we did all this--
  • 51:25 - 51:27
    ooh, it's a secret though--
  • 51:27 - 51:29
    I, um, uh, don't tell anyone,
  • 51:29 - 51:31
    but we did all this so we could build
  • 51:31 - 51:33
    impossibly fun, addictive games.
  • 51:33 - 51:35
    And we'll show you a few of those now.
  • 51:35 - 51:38
    Lars and I are going to open Sudoku.
  • 51:38 - 51:41
    Lars Rasmussen: Hmm. Hmm.
  • 51:41 - 51:43
    Hannon: And we intended for this to be a collaborative game
  • 51:43 - 51:45
    so we could solve the puzzle together,
  • 51:45 - 51:47
    but somehow it turned competitive.
  • 51:47 - 51:48
    [laughter]
  • 51:48 - 51:51
    And, uh, you get a point for making a good move
  • 51:51 - 51:54
    and a negative point for doing something wrong.
  • 51:54 - 51:57
    You can see Lars' score is going negative.
  • 51:57 - 51:58
    Lars Rasmussen: How can you play Sudoku
  • 51:58 - 51:59
    in front of 4,000 people?
  • 51:59 - 52:00
    Come on.
  • 52:00 - 52:02
    Hannon: Then, uh, back in 1851,
  • 52:02 - 52:04
    Lars and I played this chess game
  • 52:04 - 52:06
    that became very famous.
  • 52:06 - 52:08
    It ended in 23 moves.
  • 52:08 - 52:12
    And it illustrates how well Playback works with gadgets.
  • 52:12 - 52:15
    So if I go into playback and I click forward,
  • 52:15 - 52:18
    you can actually step through the whole game.
  • 52:18 - 52:27
    [applause]
  • 52:27 - 52:29
    So as we mentioned in the beginning,
  • 52:29 - 52:30
    we come from the Maps team.
  • 52:30 - 52:32
    So probably wouldn't be a good demo
  • 52:32 - 52:35
    if we didn't do a Maps gadget as well.
  • 52:35 - 52:37
    It's been a lot of work to prepare for this demo.
  • 52:37 - 52:40
    So I'm going to send Lars a wave about taking a vacation.
  • 52:40 - 52:42
    Lars Rasmussen: Stephanie's favorite topic.
  • 52:42 - 52:44
    She wants to go on vacation in Bora Bora.
  • 52:44 - 52:46
    She's asking me for recommendations.
  • 52:46 - 52:48
    I highlight the term Bora Bora here.
  • 52:48 - 52:50
    And then I click this button that's provided
  • 52:50 - 52:53
    by an extension that you guys could've written
  • 52:53 - 52:57
    that inserts a map to Bora Bora.
  • 52:57 - 52:58
    Thank you. [applause]
  • 52:58 - 53:00
    Hannon: Now, the important thing
  • 53:00 - 53:02
    is my hands are off of my computer,
  • 53:02 - 53:03
    but my screen is still on the right.
  • 53:03 - 53:05
    Lars Rasmussen: And now I click the satellite button
  • 53:05 - 53:07
    and it changes on both screens.
  • 53:07 - 53:13
    And I go zoom, zoom, zoom, zoom, zoom, zoom.
  • 53:13 - 53:14
    [applause]
  • 53:14 - 53:17
    [laughs] Thank you.
  • 53:17 - 53:21
    [applause]
  • 53:21 - 53:25
    And now, Stephanie loves swimming with sharks.
  • 53:25 - 53:27
    And I happen to know that the lemon sharks hang
  • 53:27 - 53:28
    over here.
  • 53:28 - 53:32
    And you can see that I put that marker on.
  • 53:32 - 53:34
    Shows up live over on Stephanie's screen.
  • 53:34 - 53:35
    Now my hands are off.
  • 53:35 - 53:36
    Hannon: And I'll pick up the polygon tool
  • 53:36 - 53:39
    and I'll tell Lars, actually, I want to stay in this area.
  • 53:39 - 53:42
    Lars Rasmussen: And you see that showing up on my screen too.
  • 53:42 - 53:44
    And so again, all you guys have to do with your gadgets
  • 53:44 - 53:47
    is to store updates to the state
  • 53:47 - 53:48
    in the local XML.
  • 53:48 - 53:50
    And then we transmit on the wire
  • 53:50 - 53:52
    and then the other instance of your gadget
  • 53:52 - 53:54
    just updates its state when it gets notified
  • 53:54 - 53:57
    of that change.
  • 53:57 - 54:01
    And so those are client-side, um, extensions.
  • 54:01 - 54:03
    I want to just show you, actually,
  • 54:03 - 54:05
    the team in blue over here is scrambled.
  • 54:05 - 54:07
    And they brought back up Linky.
  • 54:07 - 54:09
    And I wanted to show you what happened
  • 54:09 - 54:14
    when I dropped that YouTube URL into the old extension wave.
  • 54:14 - 54:16
    So you'll see that Linky didn't just recognize
  • 54:16 - 54:17
    it was a link,
  • 54:17 - 54:20
    but it recognized it was a link to a video.
  • 54:20 - 54:22
    It puts this little friendly light bulb
  • 54:22 - 54:24
    on my screen where I can open up
  • 54:24 - 54:27
    a set of suggestions for what I might want to do.
  • 54:27 - 54:30
    Like, for example, I might want to embed the video
  • 54:30 - 54:32
    right inside my wave
  • 54:32 - 54:36
    and play it for you guys.
  • 54:36 - 54:38
    [wobbling noise]
  • 54:38 - 54:40
    Dah nah. Pretty cool, huh?
  • 54:40 - 54:47
    [applause]
  • 54:47 - 54:48
    Thank you.
  • 54:48 - 54:51
    Okay. What's next?
  • 54:51 - 54:53
    So Stephanie showed you a bunch of gadgets.
  • 54:53 - 54:55
    They're all client-side extensions.
  • 54:55 - 54:57
    We want to show you next what you can do
  • 54:57 - 54:59
    on a server side with robots.
  • 54:59 - 55:01
    And we're going to show you three examples.
  • 55:01 - 55:04
    The first one is an application--
  • 55:04 - 55:07
    a collaborative application built entirely within Wave
  • 55:07 - 55:09
    with our extension API.
  • 55:09 - 55:12
    So let me just open up my inbox again.
  • 55:12 - 55:14
    And instead of clicking "new wave,"
  • 55:14 - 55:16
    I'm going to hit this drop-down button here.
  • 55:16 - 55:17
    And I'm going to hit this item
  • 55:17 - 55:19
    called a "new poll."
  • 55:19 - 55:21
    New poll is just a new wave,
  • 55:21 - 55:25
    but with a special robot that comes from an extension
  • 55:25 - 55:29
    that you guys could build called Polly the Pollster.
  • 55:29 - 55:32
    I'll add Steph to the wave as well.
  • 55:32 - 55:35
    Polly added a form to the wave.
  • 55:35 - 55:37
    Yes. And so this is not a gadget.
  • 55:37 - 55:39
    Forms are native to wave.
  • 55:39 - 55:41
    You can put them in there.
  • 55:41 - 55:43
    And now I can fill out the form
  • 55:43 - 55:45
    starting with the title of the poll
  • 55:45 - 55:46
    that I want to conduct.
  • 55:46 - 55:50
    And you'll see as I'm typing in the form,
  • 55:50 - 55:51
    Polly sits on the server side.
  • 55:51 - 55:53
    She saw that letter by letter,
  • 55:53 - 55:56
    and she updated the title of the wave.
  • 55:56 - 55:59
    Now the really cool thing about having forms in waves
  • 55:59 - 56:01
    is that you can fill them out collaboratively.
  • 56:01 - 56:04
    So Stephanie's going to fill in the choices
  • 56:04 - 56:06
    while I add the question here.
  • 56:06 - 56:10
    "Which movie is the best ever?"
  • 56:10 - 56:13
    And you see that Stephanie's filling in the options
  • 56:13 - 56:15
    in the field below.
  • 56:15 - 56:18
    Hannon: Star Wars.
  • 56:18 - 56:21
    Lars Rasmussen: Star Wave. [laughs]
  • 56:21 - 56:24
    Hannon: Not on purpose. [laughs]
  • 56:24 - 56:26
    Lars Rasmussen: Confessions of a Shopaholic.
  • 56:26 - 56:28
    So now Stephanie's going to fill out a number of people
  • 56:28 - 56:30
    that we're going to send the poll to
  • 56:30 - 56:36
    in the recipient list there.
  • 56:36 - 56:37
    She's putting in--
  • 56:37 - 56:38
    Hannon: Done.
  • 56:38 - 56:40
    Lars Rasmussen: Putting in six of them.
  • 56:40 - 56:42
    Now I'll hit the button here that says "distribute poll."
  • 56:42 - 56:44
    Now, what happens is that Polly sees
  • 56:44 - 56:45
    that I hit that button.
  • 56:45 - 56:48
    She fills in a results section
  • 56:48 - 56:50
    in that same wave here.
  • 56:50 - 56:52
    And then she sends out fresh waves
  • 56:52 - 56:54
    with the questions we specified
  • 56:54 - 56:56
    to all the recipients we specified.
  • 56:56 - 56:58
    And Stephanie's one of them.
  • 56:58 - 57:00
    Hannon: So I'm going to answer the poll
  • 57:00 - 57:01
    that Star Trek's my favorite.
  • 57:01 - 57:04
    Lars Rasmussen: And you'll see that Polly updates the results
  • 57:04 - 57:07
    live in the admin wave.
  • 57:07 - 57:10
    With a bit of luck-- thank you.
  • 57:10 - 57:15
    [applause]
  • 57:15 - 57:18
    Okay. So that's the-- an example of an extension
  • 57:18 - 57:22
    built exclusively inside of Wave.
  • 57:22 - 57:24
    The next type of extension we want to demonstrate for you
  • 57:24 - 57:28
    are extensions that integrate Wave
  • 57:28 - 57:29
    with existent communication systems.
  • 57:29 - 57:32
    In this case, we'll show you with everyone's favorite
  • 57:32 - 57:36
    microblogging service, Twitter.
  • 57:36 - 57:37
    Hannon: So at this point, you're probably wondering
  • 57:37 - 57:39
    how to install these extensions.
  • 57:39 - 57:41
    So let me open a wave.
  • 57:41 - 57:43
    And you probably won't be surprised to hear
  • 57:43 - 57:46
    that extensions can live inside a wave.
  • 57:46 - 57:47
    Here's their--a bunch of puzzle pieces
  • 57:47 - 57:51
    showing some of the things we're using today.
  • 57:51 - 57:54
    All I have to do if I want to use one of these inst--
  • 57:54 - 57:55
    extensious--is--
  • 57:55 - 57:59
    Sorry. Click the "install" button.
  • 57:59 - 58:03
    And you can see over here, there's a new drop-down menu.
  • 58:03 - 58:05
    And I have the option to create a new twave.
  • 58:05 - 58:07
    Lars Rasmussen: A wave, of course--twave, of course,
  • 58:07 - 58:10
    is a wave of tweets.
  • 58:10 - 58:12
    Hannon: You can describe as a developer
  • 58:12 - 58:14
    how your extensions hook into Wave.
  • 58:14 - 58:16
    It could be a keyboard shortcut,
  • 58:16 - 58:17
    a button on the tool bar.
  • 58:17 - 58:20
    It could be something like a new twave button.
  • 58:20 - 58:21
    There'll be a confirmation page
  • 58:21 - 58:23
    that tells the users how you're going to interact.
  • 58:23 - 58:26
    We haven't quite implemented that yet.
  • 58:26 - 58:28
    So let me log in here.
  • 58:28 - 58:31
    I have to tell you that Lars created my Twitter account.
  • 58:31 - 58:33
    Lars Rasmussen: I made her Twiffanie.
  • 58:33 - 58:35
    She hates that.
  • 58:35 - 58:37
    Hannon: [laughs]
  • 58:37 - 58:40
    Lars Rasmussen: She's Twiffanie at Twitter.
  • 58:40 - 58:43
    Hannon: I think that tab button should be implemented, you guys.
  • 58:43 - 58:45
    [laughs]
  • 58:45 - 58:48
    I feel like all sorts of bad stuff is about to happen.
  • 58:48 - 58:51
    [laughs]
  • 58:51 - 58:57
    All right, so I'll sign in to Twitter.
  • 58:57 - 58:59
    And you can see tweets
  • 58:59 - 59:02
    from all the famous people I follow.
  • 59:02 - 59:04
    And down here at the bottom, Lars.
  • 59:04 - 59:06
    Lars Rasmussen: No.
  • 59:06 - 59:07
    Hannon: I'm just going to close it.
  • 59:07 - 59:11
    We still haven't, uh, uh...
  • 59:11 - 59:13
    I wanted to get the contacts out.
  • 59:13 - 59:17
    Um, it's important you can see that each of these avatars,
  • 59:17 - 59:20
    they're not necessarily Wave users.
  • 59:20 - 59:22
    Through our APIs, you can be a proxy
  • 59:22 - 59:25
    for contacts on a different system.
  • 59:25 - 59:27
    So I have Lance Armstrong, Ryan Seacrest,
  • 59:27 - 59:29
    lots of different people.
  • 59:29 - 59:33
    If I go down here and I look for Lars' tweet,
  • 59:33 - 59:34
    I can respond to it.
  • 59:34 - 59:38
    He says, "The demo's going pretty well."
  • 59:38 - 59:42
    And I'll say, "It ain't over yet."
  • 59:42 - 59:43
    [laughs]
  • 59:43 - 59:44
    Lars Rasmussen: And now I've logged in
  • 59:44 - 59:47
    to Twiffanie at Twitter over here.
  • 59:47 - 59:49
    And if I refresh the page,
  • 59:49 - 59:52
    you'll see that the extension took Stephanie's wave reply
  • 59:52 - 59:55
    and tweeted it.
  • 59:55 - 59:56
    Thank you.
  • 59:56 - 59:59
    [applause]
  • 59:59 - 60:01
    Hannon: Now Tweety also lets you search
  • 60:01 - 60:03
    over the public timeline of Twitter.
  • 60:03 - 60:07
    For example, for a phrase like "Google Wave."
  • 60:07 - 60:10
    So I'm going to start a new twave.
  • 60:10 - 60:12
    Lars Rasmussen: You're going to search for Google Wave now?
  • 60:12 - 60:13
    Hannon: Gonna do it.
  • 60:13 - 60:14
    Lars Rasmussen: How brave it that?
  • 60:14 - 60:17
    Hannon: [laughs] I'm not afraid.
  • 60:17 - 60:22
    So try again.
  • 60:22 - 60:25
    I'm going to log in.
  • 60:25 - 60:28
    And then I'm going to type Google Wave.
  • 60:28 - 60:31
    So we did this yesterday and there are only two tweets.
  • 60:31 - 60:33
    One of them was a woman interviewing at a company
  • 60:33 - 60:37
    called Wave so she said, "I should google Wave
  • 60:37 - 60:39
    before my interview."
  • 60:39 - 60:47
    So now let's sign in. See what happens.
  • 60:47 - 60:49
    Lars Rasmussen: * Doo doo * Hannon: A lot more than two.
  • 60:49 - 60:52
    Lars Rasmussen: Oh! [laughs]
  • 60:52 - 60:53
    Hannon: And we can go down to the bottom
  • 60:53 - 60:55
    and see tweets still coming in.
  • 60:55 - 60:57
    Lars Rasmussen: Oh, my God, you guys, thank you.
  • 60:57 - 61:00
    [laughs] Wow. Thank you.
  • 61:00 - 61:07
    [applause]
  • 61:07 - 61:10
    Hannon: So that was a example of an integration
  • 61:10 - 61:13
    between Wave and another communication system.
  • 61:13 - 61:15
    Lars Rasmussen: I'll just add to the search functionality
  • 61:15 - 61:18
    here, actually, that you can-- you can have Tweety
  • 61:18 - 61:20
    continuously search over in Twitter
  • 61:20 - 61:21
    and update the wave as they come.
  • 61:21 - 61:24
    So you can use them like "twit alerts"
  • 61:24 - 61:25
    for whatever you're interested in.
  • 61:25 - 61:31
    It'll just pop into your inbox.
  • 61:31 - 61:33
    Buggy. Hannon: Buggy.
  • 61:33 - 61:34
    We were reading the tweets.
  • 61:34 - 61:36
    Lars Rasmussen: We were reading the tw--
  • 61:36 - 61:37
    Hannon: Totally threw us off.
  • 61:37 - 61:39
    [laughs]
  • 61:39 - 61:41
    Lars Rasmussen: Okay, the last example
  • 61:41 - 61:43
    of a robot extension we want to show
  • 61:43 - 61:46
    is an example of how you can use Wave extension APIs
  • 61:46 - 61:49
    to integrate Wave within existent workflows.
  • 61:49 - 61:51
    You guys are programmers like us.
  • 61:51 - 61:53
    You probably deal with filing bugs.
  • 61:53 - 61:55
    I want to show you an integration
  • 61:55 - 61:58
    between Wave and the issue tracker--
  • 61:58 - 62:01
    the bugs database over on code.google.com.
  • 62:01 - 62:04
    But this could be any issue tracker Bugzilla could host,
  • 62:04 - 62:06
    whichever is your favorite.
  • 62:06 - 62:09
    So I'll just conjure up a canned message here.
  • 62:09 - 62:10
    And I'll tell you a little bit
  • 62:10 - 62:12
    about how we do bugs on my team.
  • 62:12 - 62:14
    So a programmer has built some code.
  • 62:14 - 62:15
    They send it for code review.
  • 62:15 - 62:18
    They also send a demo to the PMs and the UI people
  • 62:18 - 62:19
    and Jens and I.
  • 62:19 - 62:21
    And then we sit in the room and we test it.
  • 62:21 - 62:22
    And you can't read the text here.
  • 62:22 - 62:24
    But there's a bunch of bullet points
  • 62:24 - 62:25
    with observations we made.
  • 62:25 - 62:28
    We, of course, edited this collaboratively.
  • 62:28 - 62:29
    Some of them are bugs.
  • 62:29 - 62:31
    Some of them are observations for discussion later.
  • 62:31 - 62:33
    Some of them are notes for the UI designers.
  • 62:33 - 62:36
    And, of course, we should now go and file bugs.
  • 62:36 - 62:39
    Um, but instead of doing that manually,
  • 62:39 - 62:42
    we run an extension that lets me just select a bullet point,
  • 62:42 - 62:44
    click this button here,
  • 62:44 - 62:47
    and now a robot enters the fray called Buggy,
  • 62:47 - 62:51
    takes that text, and files it as a bug for me.
  • 62:51 - 62:52
    [applause] Thank you.
  • 62:52 - 62:55
    Hannon: Hey, Lars, why don't you add me?
  • 62:55 - 62:56
    Lars Rasmussen: Yes. Excellent.
  • 62:56 - 62:58
    And I'll add Steph to the wave.
  • 62:58 - 63:00
    The bug--the, uh--the--the-- sorry, the robot
  • 63:00 - 63:04
    also grabs a little summary from issue tracker
  • 63:04 - 63:06
    and puts it right inside the wave.
  • 63:06 - 63:07
    There's a link there to the bug
  • 63:07 - 63:09
    will Stephani--which Stephanie will now click
  • 63:09 - 63:16
    so that you can see the bug sitting over on issue tracker.
  • 63:16 - 63:17
    Hannon: All right, so I'm going to open this bug,
  • 63:17 - 63:19
    number 11.
  • 63:19 - 63:21
    Lars Rasmussen: And while she does that,
  • 63:21 - 63:22
    I'll file a bunch more.
  • 63:22 - 63:23
    You can see how easy it is.
  • 63:23 - 63:27
    And I just triple click here. There's another one.
  • 63:27 - 63:29
    And I'll file that bug too.
  • 63:29 - 63:31
    Okay. And so now, we might send this wave--
  • 63:31 - 63:34
    we might share this wave with our bug triage team.
  • 63:34 - 63:35
    I'll just do that myself.
  • 63:35 - 63:38
    All I have to do is change the assignee here.
  • 63:38 - 63:42
    I'll give this to Stephanie. I'll take this myself.
  • 63:42 - 63:44
    And then this one goes to Lars.
  • 63:44 - 63:45
    Ooh, I'm sorry. Was that Greg?
  • 63:45 - 63:47
    Like this.
  • 63:47 - 63:49
    And now you'll see-- Stephanie will refresh the bug
  • 63:49 - 63:52
    and you'll see the robot change the assignee over
  • 63:52 - 63:54
    in the issue tracker.
  • 63:54 - 63:56
    Hannon: On the left-hand panel where it says "owner."
  • 63:56 - 63:58
    Lars Rasmussen: And also, most issue trackers
  • 63:58 - 64:00
    or bug databases lets you debate bugs--
  • 64:00 - 64:03
    endlessly if I recall-- inside the database.
  • 64:03 - 64:05
    Which is normally not the strength
  • 64:05 - 64:06
    of the database.
  • 64:06 - 64:07
    But it is the strength of Wave.
  • 64:07 - 64:10
    And so instead of debating them over on issue tracker,
  • 64:10 - 64:13
    you can debate the bug from inside Wave.
  • 64:13 - 64:16
    I'll just use the inline reply tool here.
  • 64:16 - 64:17
    And I'll say,
  • 64:17 - 64:22
    "That is so not my fault!"
  • 64:22 - 64:25
    Hannon: And I'll refresh. You can see the update there.
  • 64:25 - 64:31
    [applause]
  • 64:31 - 64:32
    Lars Rasmussen: And so now we can continue
  • 64:32 - 64:34
    the endless debate inside of Wave,
  • 64:34 - 64:35
    which would be much more efficient.
  • 64:35 - 64:36
    We could also build--
  • 64:36 - 64:38
    We haven't done this in the sample here--
  • 64:38 - 64:40
    that if someone wanted to go make a comment
  • 64:40 - 64:42
    over on issue tracker,
  • 64:42 - 64:45
    the robot would see that and update the wave as well.
  • 64:45 - 64:47
    And just like we did a search through Twitter
  • 64:47 - 64:49
    into a-a wave,
  • 64:49 - 64:52
    we could also have the robot start a new wave of bugs
  • 64:52 - 64:54
    and just pull in all of the bugs assigned to you
  • 64:54 - 64:56
    so that you could track them from within a wave.
  • 64:56 - 65:00
    It's remarkable--thank you-- how much more effective
  • 65:00 - 65:03
    this sort of thing makes you.
  • 65:03 - 65:05
    Okay. That's extensions for you.
  • 65:05 - 65:06
    You guys feeling--
  • 65:06 - 65:08
    Hannon: And I think that's two of our Ps.
  • 65:08 - 65:09
    Lars Rasmussen: Those are two Ps.
  • 65:09 - 65:11
    Are you guys feeling inspired yet?
  • 65:11 - 65:14
    Good. Yeah. Thank you. [applause]
  • 65:14 - 65:17
    Thank you.
  • 65:17 - 65:20
    Okay, let's talk a little bit about the protocols
  • 65:20 - 65:23
    and algorithms, um, underlying Wave.
  • 65:23 - 65:25
    So we want Wave, as Stephanie said in the beginning,
  • 65:25 - 65:26
    to be an open system.
  • 65:26 - 65:28
    Obviously, it's an enormous reason
  • 65:28 - 65:31
    behind the success of email that it's an open protocol.
  • 65:31 - 65:33
    Anyone can build an email system.
  • 65:33 - 65:35
    Anyone can email with each other
  • 65:35 - 65:37
    regardless of where they got their accounts from.
  • 65:37 - 65:42
    We want Wave to work the same way.
  • 65:42 - 65:44
    And so we've designed the algorithms--
  • 65:44 - 65:48
    we've designed the protocol to, um, uh, to support
  • 65:48 - 65:49
    what we call "federation."
  • 65:49 - 65:51
    Which means that any organization
  • 65:51 - 65:53
    could build their own Wave system,
  • 65:53 - 65:56
    give accounts to their users even in competition with Google,
  • 65:56 - 65:58
    and then the system will still ensure
  • 65:58 - 66:01
    that we can share waves with each other
  • 66:01 - 66:03
    across these boundaries.
  • 66:03 - 66:05
    And we want to-- we want to first show you
  • 66:05 - 66:07
    how that's going to look.
  • 66:07 - 66:08
    And then we'll talk a little bit
  • 66:08 - 66:10
    about how far along we are with that.
  • 66:10 - 66:14
    So let me--so this is very much work in progress.
  • 66:14 - 66:16
    Everything we've shown you is work in progress.
  • 66:16 - 66:19
    I'm going to sign in to, um, a different version
  • 66:19 - 66:24
    of the system that sits inside our corporate network
  • 66:24 - 66:27
    that has an open port on it for this sort of federation.
  • 66:27 - 66:31
    And we're going to imagine two separate wave systems.
  • 66:31 - 66:32
    One is the one Google has built
  • 66:32 - 66:34
    that you've been looking at all morning.
  • 66:34 - 66:37
    The other one is from Acme Wave,
  • 66:37 - 66:39
    which you'll see over on Stephanie's screen.
  • 66:39 - 66:41
    They have built a separate system.
  • 66:41 - 66:42
    They're actually giving out accounts
  • 66:42 - 66:44
    in competition with Google.
  • 66:44 - 66:47
    You'll realize that their client looks very similar to ours.
  • 66:47 - 66:49
    That's because we're intending to open source
  • 66:49 - 66:54
    the lion's share of the code that we used to build our system
  • 66:54 - 66:57
    so that organizations can get started quickly.
  • 66:57 - 66:59
    And that's how Acme Wave built their system.
  • 66:59 - 67:03
    So I'll start a wave over on my account here.
  • 67:03 - 67:06
    And I will say "Project.
  • 67:06 - 67:11
    You want to work with me on that thing?"
  • 67:11 - 67:14
    And then I will add-- what's your account
  • 67:14 - 67:15
    over on Acme Wave?
  • 67:15 - 67:18
    Hannon: It's Stephanie. Lars Rasmussen: Stephanie.
  • 67:18 - 67:20
    Stephanie on Acme Wave.
  • 67:20 - 67:21
    So Stephanie momentarily has her account--
  • 67:21 - 67:23
    Hannon: Actually, it's Steph. Lars Rasmussen: There we go.
  • 67:23 - 67:24
    Hannon: Sorry.
  • 67:24 - 67:26
    Lars Rasmussen: Stephanie is now a user
  • 67:26 - 67:27
    over on Acme Wave.
  • 67:27 - 67:30
    And I'm going to add her to the wave.
  • 67:30 - 67:32
    Hannon: So I'm going to open up the wave.
  • 67:32 - 67:34
    And he says, "You want to work with me on that thing?"
  • 67:34 - 67:40
    And I said, "I think the guys over at Initech can help too."
  • 67:40 - 67:44
    Lars Rasmussen: [laughs] And so...
  • 67:44 - 67:46
    And so even though Steph and I have accounts
  • 67:46 - 67:47
    on different wave systems,
  • 67:47 - 67:49
    you still get that live
  • 67:49 - 67:51
    character by character interaction.
  • 67:51 - 67:53
    The way it works is that from our two clients,
  • 67:53 - 67:55
    these fine-grained operations
  • 67:55 - 67:57
    travel to our respective servers,
  • 67:57 - 68:00
    then it crosses over and goes back up to our client.
  • 68:00 - 68:02
    And all of the liveness and concurrency control
  • 68:02 - 68:05
    and live--um, sorry, and real-time resolution
  • 68:05 - 68:07
    of conflicts happen in an algorithm
  • 68:07 - 68:10
    that supports this sort of federation.
  • 68:10 - 68:13
    Let's bring a third wave system into the system.
  • 68:13 - 68:15
    So we have a couple of friends, Peter and Milton,
  • 68:15 - 68:17
    that work for a company called Initech.
  • 68:17 - 68:20
    They have chosen to run their own wave server
  • 68:20 - 68:21
    in their server closet.
  • 68:21 - 68:23
    These guys didn't take our code.
  • 68:23 - 68:27
    Milton is the kind of engineer who prefers building stuff
  • 68:27 - 68:29
    from scratch.
  • 68:29 - 68:32
    Hannon: I'm not sure I want to show this, Lars.
  • 68:32 - 68:34
    Lars Rasmussen: Oh, come on. You show it.
  • 68:34 - 68:36
    I'm going to add Peter and I'm going to add Milton.
  • 68:36 - 68:37
    Why don't you want me to show it?
  • 68:37 - 68:39
    Hannon: I'm afraid this crowd might like their UI
  • 68:39 - 68:42
    better than ours and it would break my heart.
  • 68:42 - 68:45
    Lars Rasmussen: Don't break her heart.
  • 68:45 - 68:51
    [cheers and applause]
  • 68:51 - 68:56
    Do you have the wave? Do you have the wave?
  • 68:56 - 68:58
    Hannon: No, 'cause-- Lars Rasmussen: Hmm?
  • 68:58 - 69:02
    Hannon: Just make another edit.
  • 69:02 - 69:04
    So now I have the wave.
  • 69:04 - 69:09
    Lars Rasmussen: So she opens-- Hannon: And if I go into it...
  • 69:09 - 69:13
    [cheers and applause]
  • 69:13 - 69:16
    Lars Rasmussen: Thank you.
  • 69:16 - 69:18
    Hannon: Now I want to show you an important principle
  • 69:18 - 69:21
    of--an important feature of the protocol.
  • 69:21 - 69:23
    So I go back to Acme Wave
  • 69:23 - 69:25
    and I'm going to make a private reply
  • 69:25 - 69:27
    just like you saw earlier in the demo.
  • 69:27 - 69:30
    But I'm going to add everyone except Lars.
  • 69:30 - 69:35
    So I'll say, "What do you think of that Google guy?"
  • 69:35 - 69:40
    So I'll add all of my friends Peter and Milton.
  • 69:40 - 69:43
    Even though this wave is owned at Google
  • 69:43 - 69:47
    and there's copies on Acme Wave and Initech servers,
  • 69:47 - 69:51
    this private reply is never seen by Google
  • 69:51 - 69:54
    and cannot be discovered by Lars in any way.
  • 69:54 - 69:56
    In fact, if Peter and Milton made a private reply
  • 69:56 - 69:58
    between themselves,
  • 69:58 - 70:02
    that wave would never leave their server closet.
  • 70:02 - 70:07
    [applause]
  • 70:07 - 70:08
    Lars Rasmussen: Thank you.
  • 70:08 - 70:10
    Hannon: And I just want to go back over to Milton
  • 70:10 - 70:11
    for a second.
  • 70:11 - 70:13
    You can see the private reply came in there as well.
  • 70:13 - 70:15
    Lars Rasmussen: Okay, so let me just say this,
  • 70:15 - 70:18
    um, federation...
  • 70:18 - 70:19
    that was hard.
  • 70:19 - 70:20
    So we're building this thing
  • 70:20 - 70:22
    with live concurrent editing, and chatting,
  • 70:22 - 70:24
    and instant messaging, and email, and pictures,
  • 70:24 - 70:25
    and all that stuff.
  • 70:25 - 70:27
    And then we throw federation into the mix,
  • 70:27 - 70:30
    which vastly complicates things.
  • 70:30 - 70:32
    It would be so much easier, frankly,
  • 70:32 - 70:33
    from an engineering point of view.
  • 70:33 - 70:35
    If we could just keep this proprietary,
  • 70:35 - 70:36
    then we'd control all the servers,
  • 70:36 - 70:38
    we'd control all the update schedules,
  • 70:38 - 70:40
    and so on.
  • 70:40 - 70:42
    But we think it's worth the effort--
  • 70:42 - 70:44
    and we hope you guys will help us with this.
  • 70:44 - 70:46
    We think the world will be a much better place
  • 70:46 - 70:49
    if this is an open system that everyone can build
  • 70:49 - 70:51
    wave services with it.
  • 70:51 - 70:52
    And so--thank you.
  • 70:52 - 70:54
    [applause]
  • 70:54 - 70:56
    Thank you.
  • 70:56 - 71:00
    [applause]
  • 71:00 - 71:02
    And so let me tell you, um, where we're at with it.
  • 71:02 - 71:04
    So later today, there's a web site--
  • 71:04 - 71:06
    I'll show you the URL later-- that's going to launch,
  • 71:06 - 71:09
    which will have-- it's a very early draft
  • 71:09 - 71:10
    of this protocol.
  • 71:10 - 71:12
    It'll have, I think, four whitepapers
  • 71:12 - 71:15
    describing how the system works.
  • 71:15 - 71:16
    It's going to have, of course,
  • 71:16 - 71:18
    a public discussion forum
  • 71:18 - 71:21
    so that we can start debating how this hopefully bright future
  • 71:21 - 71:23
    of Wave will look.
  • 71:23 - 71:25
    And then like I said, later,
  • 71:25 - 71:29
    we're going to open source the lion's share of our code,
  • 71:29 - 71:31
    which will serve both as a reference implementation
  • 71:31 - 71:33
    of the protocol,
  • 71:33 - 71:35
    but also essentially a production ready system
  • 71:35 - 71:37
    like you saw Acme Wave do.
  • 71:37 - 71:39
    I'm obviously vastly simplifying it here.
  • 71:39 - 71:41
    But essentially, you could take that code,
  • 71:41 - 71:43
    you could put it on top of your own database,
  • 71:43 - 71:45
    and you would have a simple wave server
  • 71:45 - 71:48
    and you would be up and running.
  • 71:48 - 71:53
    Okay. So that's federation.
  • 71:53 - 71:54
    [laughs]
  • 71:54 - 71:56
    Hannon: I'm excited about our next demo.
  • 71:56 - 71:58
    Lars Rasmussen: The next demo is very, very nice.
  • 71:58 - 72:03
    This is something, um, to end off our demo with.
  • 72:03 - 72:05
    It's something, uh, a friend of ours
  • 72:05 - 72:07
    on the Google research team has been building
  • 72:07 - 72:08
    over the past month.
  • 72:08 - 72:11
    I saw it myself the first time just a few days ago.
  • 72:11 - 72:13
    Um, and it blew me away.
  • 72:13 - 72:15
    So, um, let's see.
  • 72:15 - 72:17
    I'm going to make sure I'm on the right system here.
  • 72:17 - 72:18
    I'm back on the sandbox.
  • 72:18 - 72:20
    So again, we've been doing this demo
  • 72:20 - 72:23
    on a system where we'll get you guys accounts.
  • 72:23 - 72:26
    Now, Stephanie is going to log into, um, an account
  • 72:26 - 72:29
    of one of our colleagues, Alexi.
  • 72:29 - 72:30
    And then I'm going to start a new wave.
  • 72:30 - 72:32
    I want to make sure you guys can see
  • 72:32 - 72:34
    what we're typing.
  • 72:34 - 72:37
    I'm making this a little bigger like this.
  • 72:37 - 72:39
    Do you make your font bigger there, Steph?
  • 72:39 - 72:40
    Hannon: Yeah, I was going to wait
  • 72:40 - 72:43
    till you started the wave.
  • 72:43 - 72:44
    Lars Rasmussen: And then I'll start a new wave here.
  • 72:44 - 72:48
    And I'll add Alexi, one of our colleagues.
  • 72:48 - 72:51
    And then I'll add my all-time favorite robot
  • 72:51 - 72:55
    called Rosy.
  • 72:55 - 72:56
    Yes.
  • 72:56 - 72:58
    So, um, Alexi is from France.
  • 72:58 - 73:01
    His English is not terribly good.
  • 73:01 - 73:04
    Hannon: Aww!
  • 73:04 - 73:06
    Lars Rasmussen: For the purposes of this demo.
  • 73:06 - 73:08
    [laughter]
  • 73:08 - 73:11
    And Rosy is a robot that very kindly translates
  • 73:11 - 73:14
    what I'm typing.
  • 73:14 - 73:17
    "Hello, world!"
  • 73:17 - 73:19
    [applause]
  • 73:19 - 73:21
    "What do you think
  • 73:21 - 73:25
    "of this demo--
  • 73:25 - 73:33
    of this demo?"
  • 73:33 - 73:34
    And now Alexi's typing in France.
  • 73:34 - 73:38
    And I get to see him saying, "Ah, yes...
  • 73:38 - 73:41
    since new--we are in can--use--used--"
  • 73:41 - 73:44
    Translates word by word, character by character
  • 73:44 - 73:45
    as he's typing.
  • 73:45 - 73:48
    Rosy speaks, I believe, 40 languages.
  • 73:48 - 73:51
    She can translate between any pair of them.
  • 73:51 - 73:55
    Um, she's quite the thing.
  • 73:55 - 73:58
    Okay. That finishes our demo.
  • 73:58 - 73:59
    Oh, thank you.
  • 73:59 - 74:04
    [cheers and applause] Thank you. Thank you.
  • 74:04 - 74:09
    Thank you. Thank you. Thank you.
  • 74:09 - 74:14
    Thank you.
  • 74:14 - 74:16
    Thank you. Thank you. Thank you. Thank you.
  • 74:16 - 74:19
    [cheers and applause] Thank you. Thank you.
  • 74:19 - 74:23
    Hannon: I think they like it. Lars Rasmussen: They like it.
  • 74:23 - 74:27
    You guys like it? Okay. Thank you.
  • 74:27 - 74:32
    Hannon: Thank you. Wow. Thank you. [laughs]
  • 74:32 - 74:37
    [cheers and applause] Lars Rasmussen: Thank you.
  • 74:37 - 74:40
    Thank you. [whistling and cheers]
  • 74:40 - 74:42
    Hannon: They have a lot of skills.
  • 74:42 - 74:46
    [applause]
  • 74:46 - 74:48
    I think... Lars Rasmussen: Thank you.
  • 74:48 - 74:51
    Hannon: If they really liked it...
  • 74:51 - 74:52
    [man shouting indistinctly]
  • 74:52 - 74:55
    If you guys--you guys really liked it,
  • 74:55 - 74:56
    you could do a wave.
  • 74:56 - 74:58
    Lars Rasmussen: So, so, so-- Hannon: Anyone?
  • 74:58 - 75:00
    It's time to do the wave. Lars Rasmussen: So--
  • 75:00 - 75:03
    So, um, what do you guys think?
  • 75:03 - 75:06
    Okay. [laughs]
  • 75:06 - 75:08
    So just-- Hannon: Thank you for filming.
  • 75:08 - 75:09
    Lars Rasmussen: Just to summarize,
  • 75:09 - 75:11
    um, what we like to think we've built here
  • 75:11 - 75:14
    is really quite a simple communication object
  • 75:14 - 75:15
    called a wave.
  • 75:15 - 75:17
    And we've showed how you can use it
  • 75:17 - 75:19
    for quite a lot of different types
  • 75:19 - 75:21
    of communication and collaboration.
  • 75:21 - 75:24
    We showed you how plain vanilla email-type conversations
  • 75:24 - 75:25
    could be done.
  • 75:25 - 75:27
    We showed you how instant messaging conversations
  • 75:27 - 75:28
    could be done.
  • 75:28 - 75:30
    We showed you how easy it is to share photos
  • 75:30 - 75:32
    and other rich media types with it.
  • 75:32 - 75:34
    We introduced a platform that we're hoping you guys
  • 75:34 - 75:35
    will pick up
  • 75:35 - 75:37
    that will let you build things like blogging sites,
  • 75:37 - 75:40
    discussion groups, uh, letting your users
  • 75:40 - 75:42
    discuss images on your web site.
  • 75:42 - 75:44
    With the editing functionality,
  • 75:44 - 75:45
    you can see you can build Wiki-like sites
  • 75:45 - 75:47
    with that as well.
  • 75:47 - 75:48
    We showed you how you can use waves
  • 75:48 - 75:51
    to collaboratively edit documents.
  • 75:51 - 75:54
    We showed you a rich set of extension APIs
  • 75:54 - 75:56
    that could let you build everything from games,
  • 75:56 - 76:00
    through collaborative applications inside a wave,
  • 76:00 - 76:03
    through integrations with other communication systems.
  • 76:03 - 76:04
    We showed you Twitter.
  • 76:04 - 76:05
    We're hoping you guys will build gateways
  • 76:05 - 76:08
    from Wave to email, to Facebook,
  • 76:08 - 76:11
    to instant messaging, and so on.
  • 76:11 - 76:14
    We showed you how you can use these extension APIs
  • 76:14 - 76:19
    to also integrate waves into work flows.
  • 76:19 - 76:23
    Whew. Okay.
  • 76:23 - 76:24
    And now...
  • 76:24 - 76:25
    Hannon: Just going to bring up...
  • 76:25 - 76:27
    Lars Rasmussen: For the administrativia
  • 76:27 - 76:29
    at the end,
  • 76:29 - 76:33
    I want to-- I want to just point out--
  • 76:33 - 76:34
    I forgot that earlier
  • 76:34 - 76:35
    that we have three breakout sessions
  • 76:35 - 76:40
    that I don't believe has been in the program so far.
  • 76:40 - 76:45
    Um, the first one at noon is about, um, the API.
  • 76:45 - 76:47
    If you can only come to one of our breakout sessions,
  • 76:47 - 76:49
    please make it that one.
  • 76:49 - 76:51
    The next one is a little run-through
  • 76:51 - 76:53
    of some of the more exciting pieces of technology
  • 76:53 - 76:54
    under the hood.
  • 76:54 - 76:56
    We're going to show you from the top of the--
  • 76:56 - 77:00
    top of the stack how our amazing spell-checker works,
  • 77:00 - 77:03
    how the rich text editor in the browser works,
  • 77:03 - 77:05
    and the algorithms that we used underneath
  • 77:05 - 77:07
    to do all the concurrency, control,
  • 77:07 - 77:09
    and conflict resolution and so on.
  • 77:09 - 77:11
    And then at 2:30,
  • 77:11 - 77:13
    one of our client team tech leads
  • 77:13 - 77:17
    are going to explain how we build
  • 77:17 - 77:20
    the web application with the Google Web Toolkit,
  • 77:20 - 77:21
    why we love it so much,
  • 77:21 - 77:25
    and what some other future plans are.
  • 77:25 - 77:27
    We also have in Room B4
  • 77:27 - 77:29
    from noon till 4:30 office hours
  • 77:29 - 77:32
    where you guys can come talk to the team in blue here.
  • 77:32 - 77:36
    They love talking.
  • 77:36 - 77:39
    And then I wanted to show you,
  • 77:39 - 77:43
    um, three important URLs here.
  • 77:43 - 77:45
    So for starters, wave.google.com
  • 77:45 - 77:48
    is going to be the home of Google Wave
  • 77:48 - 77:50
    when we launch it later in the year.
  • 77:50 - 77:52
    If you go there now or when the site goes live
  • 77:52 - 77:53
    in a little bit,
  • 77:53 - 77:55
    um, there is a sign-up form there
  • 77:55 - 77:57
    where you can sign up for notifications
  • 77:57 - 77:58
    when we launch it.
  • 77:58 - 78:01
    There's also going to be a beautifully edited video
  • 78:01 - 78:03
    of today's keynote.
  • 78:03 - 78:06
    Um, the API site is going to go live...
  • 78:06 - 78:08
    man: Already live.
  • 78:08 - 78:09
    Lars Rasmussen: The API site is already live.
  • 78:09 - 78:12
    No wonder I couldn't-- couldn't get a connection
  • 78:12 - 78:14
    to my mobile phone before.
  • 78:14 - 78:19
    It's at code.google.com/apis/wave.
  • 78:19 - 78:21
    It's got the API. It's got the documentation.
  • 78:21 - 78:24
    It's got the code samples we showed before.
  • 78:24 - 78:26
    Actually, I should just mention really quickly
  • 78:26 - 78:29
    the bug--the--the issue tracker integration
  • 78:29 - 78:30
    we showed at the end,
  • 78:30 - 78:32
    we have to cheat ever slow slightly
  • 78:32 - 78:35
    by using, uh, using an internal API
  • 78:35 - 78:36
    to the issue tracker.
  • 78:36 - 78:38
    I think they're working really hard
  • 78:38 - 78:39
    making APIs available.
  • 78:39 - 78:41
    So that particular sample is not going to be there
  • 78:41 - 78:43
    for--for a wee while.
  • 78:43 - 78:46
    Lastly, at waveprotocol.org,
  • 78:46 - 78:48
    you'll find the protocol draft,
  • 78:48 - 78:50
    the whitepapers, the discussion forum,
  • 78:50 - 78:53
    and so on if you guys are interested
  • 78:53 - 78:56
    in helping us, um, build that wave
  • 78:56 - 78:58
    to be an open system.
  • 78:58 - 79:00
    Hannon: You should tell them about the email.
  • 79:00 - 79:01
    Lars Rasmussen: Yes.
  • 79:01 - 79:02
    And the way you're going to get an account
  • 79:02 - 79:04
    is you'll receive an email later today
  • 79:04 - 79:07
    that explains where you can go and sign up
  • 79:07 - 79:08
    for an account,
  • 79:08 - 79:12
    which you will get shortly.
  • 79:12 - 79:15
    Okay. So, look, the last thing I want to say,
  • 79:15 - 79:19
    um, you can probably imagine it felt kind of nice
  • 79:19 - 79:21
    that you guys seemed to like what we built.
  • 79:21 - 79:23
    Um, one of the-- one of the best times
  • 79:23 - 79:25
    in my professional life
  • 79:25 - 79:28
    was after we launched Google Maps back in 2005
  • 79:28 - 79:31
    and developers started doing all kinds of crazy things
  • 79:31 - 79:32
    with Google Maps.
  • 79:32 - 79:34
    I hope some of you are here.
  • 79:34 - 79:36
    This was even before we had an API on Maps.
  • 79:36 - 79:39
    We scrambled to put an API on Maps.
  • 79:39 - 79:42
    And it's, uh, it's-- it's become very popular
  • 79:42 - 79:45
    and it's a huge driving force of success.
  • 79:45 - 79:47
    We learned a very important lesson
  • 79:47 - 79:49
    that--that you guys, developers,
  • 79:49 - 79:51
    are incredibly important to the success
  • 79:51 - 79:54
    of the kind of products that we build.
  • 79:54 - 79:57
    And so I can't wait to see what you guys
  • 79:57 - 79:58
    are gonna come up with.
  • 79:58 - 80:00
    Um, please, please, please, check it out.
  • 80:00 - 80:02
    Build cool stuff. Surprise us.
  • 80:02 - 80:07
    I just can't wait to see what you come up with.
  • 80:07 - 80:08
    Thank you very much.
  • 80:08 -
    [cheers and applause]
Title:
Google Wave Developer Preview at Google I/O 2009
Description:

Google Wave Developer Preview presentation at the Day 2 Keynote of Google I/O. To learn more visit http://wave.google.com

more » « less
Video Language:
English
Duration:
01:20:12
Amara Bot added a translation

English subtitles

Revisions