Java 8

Earlier this year, the new version of the Java Programming Language was released. Finally, it enters in the field of the “cool peeps” with some features it should have since years ago, like Lambdas. “Java developers are now Hipsters again!” — Seen somewh...

Automatically Deploy A Revel Web Application

Introduction The websites that power GopherAcademy and GopherCon are written using Revel, which is a very nice framework for building web applications. Go has a great built-in HTTP server, but there are times when you don’t want to roll-your-own web framework.

Pointers vs References

Some languages including C, C++ support pointers. Other languages including C++, Java, Python, Ruby, Perl and PHP all support references. On the surface both references and pointers are very similar, both are used to have one variable provide access to another. With both providin...

Ice Cream Makers and Data Races Part II

Introduction Dave Cheney published a post called Ice Cream Makers and Data Races. The post showed an example of an interesting data race that can occur when using an interface typed variable to make a method call. If you have not read the post yet please do. Once you read the pos...

Actionable Data With MongoDB and Go

Introduction If you are building any kind of application for a consumer based product, it is common to have large amounts of application data being generated about your users. Running reports is a traditional use of this data, but what if you could make this data actionable? What...

Pitfalls With Closures In Go

Introduction Closures in Go are a very powerful construct but they can also be the cause of bugs if you don’t understand how they work. In this post I am going to pull a small piece of code from Chapter 2 from the Go In Action book that discusses a pitfall you can run into when...

Is Go an Object Oriented language?

To truly understand what it means to be ‘object-oriented’ you need to look back at the origination of the concept. The first object oriented language, simula, emerged in the 1960s. It introduced objects, classes, inheritance and subclasses, virtual methods, coroutines, and a...

A practical guide to protocol buffers (Protobuf) in Go (Golang)

The following article targets an audience with interest in software design, protocol buffers or computer programming in general, the article is fairly technical and assumes some knowledge in programming concepts. This article covers Protocol buffers version 2. There is a new vers...

Join Our New Slack Community For Gophers

Why Are We Doing This? GopherCon was an amazing experience for many of us who had the privilege to go. We met so many great people.

Methods, Interfaces and Embedded Types in Go

Introduction My business partner Ed asked me what would happen if a struct and an embedded field both implemented the same interface. We asked ourselves two questions: Would the compiler throw an error because we now had two implementations of the interface? If the compiler accep...