GopherCon 2016

GopherCon Turns Three

Contributed by   2016-04-20

tl;dr We’re excited for the third anniversary of GopherCon, so we’re offering a discount on tickets valid only on the anniversary of the conference. Humble Beginnings In 2013, Brian and I were lamenting the fact that there was no conference for Go. We were enjoying the language, using it everyday, and truly disappointed that there was no place for all Go enthusiasts to get together and learn. We decided that it couldn’t be too hard to run a conference, so we did what all good software people do: we registered a domain.


2015 Year in Review

Contributed by   2015-12-31

Looking back on 2015 has humbled us here at Gopher Academy. What an amazing year we’ve had. Let’s review some of the highlights: We’ve published dozens of community-written articles. The Go community created and ratified a Code of Conduct. We organized the third “Advent” series of articles, this year going all the way through the end of December. GopherCon attendees and supporters raised over $6,000 USD for the GopherCon scholarship fund.


2D Game Libraries for Go

Contributed by   2015-12-30

By now, we all know that Go is a great language for writing servers and command line tools. But what about games? Can you make desktop, web, or mobile games in Go too? The answer is yes, but not necessarily all at once… yet! Last summer, I set up shop at Comiket 88 and managed to sell a few copies of HOT PLUG, a simple 2D action game written in Go for OS X and Windows.


etcd: distributed key-value store with grpc/http2

Contributed by   2015-12-29

What is etcd? etcd is a distributed, consistent key-value store, written in Go. Similar to how Linux distributions typically use /etc to store local configuration data, etcd can be thought of as a reliable store for distributed configuration data. It is distributed by replicating data to multiple machines, therefore highly available against single point of failures. Using the Raft consensus algorithms, etcd gracefully handles network partitions and machine failures, even leader failures.


Understanding and using the vendor folder

Contributed by   2015-12-28

With the release of Go 1.5, there is a new way the go tool can discover go packages. This method is off by default and the surrounding tools, such as goimports, do not understand that folder layout. However in Go 1.6 this method will be on for everyone and other tools will have support for it as well. This new package discovery method is the vendor folder. Before we look into the solution and semantics of the vendor folder, let’s explore the problem that prompted it.


Glow: Map Reduce for Golang

Contributed by   2015-12-27

Having been a Java developer for many years, I have simply lost interest in Java and want to code everything in Go, mostly due to Go’s simplicity and performance. But it’s Java that is having fun in the party of big data. Go is sitting alone as a wall flower. There is no real map reduce system for Go, until now! Glow is aiming to be a simple and scalable map reduce system, all in pure Go.


Symmetric API Testing

Contributed by   2015-12-26

I maintain Anaconda, the Twitter client library for Go. There are a lot of interesting things I could write about Anaconda - for example, automatic rate-limiting and throttling using the tokenbucket library. Today, I’d like to demonstrate symmetric API testing in Go, which Anaconda highlights quite well. The asymmetric approach to testing the client library would be to test each function by querying the Twitter API and testing the response values returned.


Lessons in Go Learned while Implementing SHIELD

Contributed by   2015-12-25

Quick background: What is SHIELD? SHIELD is a backup solution for Cloud Foundry and BOSH deployed services such as Redis, PostgreSQL, and Docker. (For the interested, here is a quick summary of the basics of BOSH and Cloud Foundry.) The original design was inspired by a client’s need to have both broad and granular backups of their private Cloud Foundry and its ecosystem. Specifically, in addition to being able to recover from a meteor strike they also wanted to be able to create more granular backups so they could restore specific containers, credentials, databases, and so on.


Tiny Linux OSes with Go

Contributed by   2015-12-24

Small disclaimer: This is much more fun than it is useful For a while now, we’ve been seeing new “cloud” OSes crop up, like CoreOS and RancherOS. These two both simply marry docker+linux to create a magic docker runtime. You may be familiar with “micro” Docker images built on top of Alpine Linux / BusyBox base images. These “images” general weigh in around 10-30mb. But that’s before including the ~300mb OS + actual Docker daemon that they have to run on - seems awfully bloated to me.


Geographical data manipulation using go

Contributed by   2015-12-23

GIS open source world is dominated by C/C++, Java and Python code. Libraries like PROJ4, JTS, GEOS or GDAL are at the core of most of the open source geospatial projects. Through this article we will have a look at the ecosystem of geospatial related packages. We will create a GIF generator of an animated earth. In case you want to know more about the image generation package, I recommend reading two articles on the Go blog: The Go image package and the Thanksgiving 2011 doodle.