Why are so many Rubyists buzzing about Go? This hot new language that grew out of Google just a few years ago is taking the world by storm and is generating a lot of buzz in the Ruby community. In this talk we'll look at the highlights of Go and try and figure out what the hype is all about, and we'll do with a keen Rubyist eye. We'll also look at where it would make sense in our Ruby/Rails projects to extend them with this highly concurrent, and performant language. What do you say my fellow Rubyists; are you up for the challenge of learning something a bit different?
Rob Pike opens the conference in the way that only Rob can.
Go is the language of the cloud. Here’s why we chose Go and how we’re using it to develop high-performance systems.
We discuss the Go Circuit project and set it in the context of an inevitable and oncoming shift in the development and runtime stacks of the Internet age. We argue that the programming language is the right place to abstract access to a hardware clusters as a "Single-System Image". On the way, we appeal to the success of Erlang in the Telecom industry and discuss why it has not yet inspired Internet-age counterparts. Somewhat unlike Erlang, where the distributed operating system OTP is below the language, we assert that the distributed OS should be built above and using the language. We conclude with an important high-level observation that single desktop machines are qualitatively identical and only quantitatively different than distributed hardware clusters, in terms of the semantics of their behavior in the presence of failures.
Channels are Go's communication mechanism and the standard way for goroutines to communicate. But there are many uses of a channel that go beyond simply sending data to a goroutine.
This talk will start with the basics of channel communication and work through examples of channels as buffers, channels as memory managers, channels as signaling devices, channels for coordination, for load balancing and the many uses of channels of channels.
The talk will be suitable for beginners and for intermediate Go programmers. All the code shown in the talk will be released.
PayPal Beacon is a small piece of custom hardware powered by Go. I'll discuss the design and implementation, including:
A simple, custom network stack that integrates with net/http cross-compilation and portability
Using composition to maintain sanity in an unreliable operating environment
This will be an intermediate level talk. It assumes comfort with Go; experts may be mildly bored
As a Sysadmin, why should you learn more about Go? Well, imagine not having to mess around with old versions of Python or Ruby(I’m looking at you RHEL 5), or fall back to C when you need to improve performance. Imagine being able to deploy self-contained binaries that don’t require yet another runtime to be installed on the target system. If that sounds awesome to you, then you’re going to love Go.
Using packages found in the standard library and Go’s unique language features, I’ll show you how to solve common Sysadmin problems in new ways, and set the stage for tackling a whole new set of problems that our current tools have made way too complicated.
Attend Go for Sysadmins and learn how to:
Leverage the Go standard library for everyday system administration tasks
Make practical use of goroutines and channels in system utilities and scripts
Follow best practices for managing, building, and distributing Go projects
Heka is a high performance data collection and processing tool built by Mozilla's Services team. This talk will start with a brief overview of Heka the product, describing what it is and how it works. This will be followed by an overview of Heka the project, addressing questions such as why Go was chosen, and how that choice has worked out for our developers, administrators, and users.
Google App Engine is a highly scalable web app platform, and its Go runtime is fast, efficient and a natural fit for many kinds of Go web apps. Come hear the origin story of Go on App Engine, the latest news, and see how it fits together with ordinary Go tools.