Go at Google I/O and Gopher SummerFest
6 Oct 2014
Tags: conference, io, report

Francesc Campoy

* Introduction

The week of June 23rd was a good week for gophers in San Francisco. Go was a big
part of [[https://www.google.com/events/io][Google I/O]] on Wednesday and
Thursday, and on Monday we took advantage of the large gopher population to run
the [[http://www.meetup.com/golangsf/events/170421402/][Go SummerFest]], a
special instance of the [[http://www.meetup.com/golangsf][GoSF]] meetup. This
blog post is a recap of both events.

* Gopher SummerFest

.image io2014/summerfest.jpg _ 800

On the Monday, more than 200 gophers gathered at the Google office in San
Francisco to hear a series of talks:

- The State of Go, ([[https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVQm9tdncxWnJGUTQ/edit][slides]]
  and [[http://www.hakkalabs.co/articles/state-go][video]]) by Andrew Gerrand.
- I was wrong, again! ([[https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVTTUwS25qaFlzMGs/edit][slides]]
  and [[http://www.hakkalabs.co/articles/why-we-use-go][video]]), by Derek Collison.
- Go at Splice ([[https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVZklnNnJITlhSbXc/edit][slides]]), by Matt Aimonetti
- Quick testing with quick ([[https://docs.google.com/a/golang.org/file/d/0B-nws9GU_6qVVElmOHpwamp4aTA/edit][slides]]), by Evan Shaw
- Something about Go (no slides), by Blake Mizerany.

More comments and pictures from the event are available on the
[[http://www.meetup.com/golangsf/events/170421402/][meetup event page]].

* Go at Google I/O

On the Wednesday and Thursday, Go was at Google I/O in two different
formats: the Go booth in the sandbox area and the Go code labs available in the
code lab area and all around the world through
[[https://www.google.com/events/io/io-extended][I/O Extended]].

** The Go booth

.image io2014/booth.jpg _ 800

The Go booth was part of the Developer Sandbox area.

For the two days of the conference, some gophers from Google and other
companies gave a series of talks and demonstrations. The talks were not
recorded, but the slides and some screencasts and blog posts will be shared
soon.

- Organizing Go Code, by David Crawshaw. ([[https://talks.golang.org/2014/organizeio.slide#1][slides]])
- Testing Techniques, by Andrew Gerrand. ([[https://www.youtube.com/watch?v=ndmB0bj7eyw][video]]
  and [[https://talks.golang.org/2014/testing.slide#1][slides]])
- Go for Java Developers, by Francesc Campoy. ([[https://talks.golang.org/2014/go4java.slide#1][slides]])
- Camlistore: Android, ARM, App Engine, Everywhere,
  by Brad Fitzpatrick.
  ([[https://talks.golang.org/2014/camlistore.slide#1][slides]])
- Go Compilation Complexities, by Ian Lance Taylor. ([[https://talks.golang.org/2014/compiling.slide#1][slides]])
- SourceGraph: a Code Search Engine in Go,
  by Quinn Slack. ([[https://youtu.be/-DpKaoPz8l8][video]] and [[https://go-talks.appspot.com/github.com/sourcegraph/talks/google-io-2014/gio2014.slide#1][slides]])

We also organized Q&A sessions and lightning talks by members of the Go
community:

- [[https://twitter.com/bradrydzewski][Brad Rydzewski]] talked about his project [[https://drone.io/][drone.io]].
- [[https://twitter.com/barakmich][Barak Michener]] presented [[https://github.com/google/cayley][Cayley]],
  an open source graph database.
- [[https://twitter.com/mattetti][Matt Aimonetti]] discussed how Go is used at [[https://splice.com/][Splice]].
- [[https://twitter.com/ssougou][Sugu Sougoumarane]] talked about how [[https://github.com/youtube/vitess][vitess]] solved
  scalability problems at YouTube.
  ([[https://youtu.be/midJ6b1LkA0][video]])

** The Go code lab

This year attendees of Google I/O had a code lab area with self-service
computers where they could sit and learn Go. The code labs were also available
to anyone through the Google I/O extended brand. You can try it yourself at
[[https://io2014codelabs.appspot.com/][io2014codelabs.appspot.com]].

.image io2014/collage.jpg _ 800

* Conclusion

Thanks to the organizers, speakers, and attendees who helped make these events a
great success. See you next year. (Or at [[http://dotgo.eu][dotGo]] this week!)
