# Go at Google I/O 2011: videos
23 May 2011
Tags: appengine, gopher, talk, video
Summary: Two talks about Go from Google I/O 2011.

Andrew Gerrand

## Introduction

The Go team had a great time at Google I/O 2011.
It was a pleasure to meet so many programmers who share our enthusiasm for Go,
and to share our work of the past few months.
For those of you that couldn’t be there in person,
you can now watch videos of our two Go presentations on YouTube.

## Writing Web Apps in Go

In “[Writing Web Apps in Go](http://www.youtube.com/watch?v=-i0hat7pdpk)”
we announce the [Go runtime for Google App Engine](https://blog.golang.org/2011/05/go-and-google-app-engine.html)
and walk through the development and deployment of [Moustachio](http://moustach-io.appspot.com/),
the first Go App Engine app.

.iframe //www.youtube.com/embed/-i0hat7pdpk 349 560

(See the [presentation slides](https://golang.org/doc/talks/io2011/Writing_Web_Apps_in_Go.pdf).)

The [source code](https://code.google.com/p/appengine-go/source/browse/example/moustachio)
for Moustachio is available as part of [the SDK](http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Go)
along with some other examples,
such as this [Mandelbrot demo](http://mandelbrot-tiles.appspot.com/).

Most important, this talk features the debut of the plush gopher.

.image go-at-google-io-2011-videos_gopher.jpg

For those that didn’t get one at the conference, we hope to make him available for purchase online soon.

## Real World Go

“[Real World Go](http://www.youtube.com/watch?v=7QDVRowyUQA)”,
presented at [I/O Bootcamp](http://io-bootcamp.com),
gives a brief introduction to Go and four case studies of its use in solving real problems:
- [Heroku](http://heroku.com) with [Doozer](https://github.com/ha/doozerd),
  a highly available consistent data store,

  - [MROffice Dialer](http://mroffice.org/telephony.html), a VOIP system for call centers,

  - [Atlassian](http://www.atlassian.com)’s virtual machine cluster management system,

  - [Camlistore](http://www.camlistore.org), a content addressable storage system.

.iframe //www.youtube.com/embed/7QDVRowyUQA 349 560

(See the [presentation slides](https://golang.org/doc/talks/io2011/Real_World_Go.pdf).)

Thanks to everyone who attended our talks and workshops. We look forward to seeing you again soon!
