HTTP Response Snippets for Go

Taking inspiration from the Rails layouts and rendering guide, I thought it'd be a nice idea to build a snippet collection illustrating some common HTTP responses for Go web applications. Sending Headers Only Rendering Plain Text Rendering JSON...

My Channel Select Bug

I was testing new functionality on a program that is already running in production when suddenly the code behaved very badly. What I saw shocked me and then it became obvious why it happened. I also have a race condition just waiting to be a problem. I have tried to provide a si...

UP v2

So, this is the all-new UP version. It is more based on my own blog in some way, which is a some kind of branch of the theme. The biggest changes are: Assets are now managed by bower; Build are now made by grunt; Procfile.dev is provided to use with foreman to w...

SkyDNS (Or The Long Road to Skynet)

SkyDNS and Skynet This article is in two sections. The first is the announcement of SkyDNS, a new tool to help manage service discovery and announcement.

Functions and Naked Returns In Go

In Go values that are returned from functions are passed by value. Go gives you some nice flexibility when it comes to returning values from a function. Here is a simple example of returning two values from a function: package main import (    "fmt" ) fun...

Refactoring with go fmt

I’ve recently been getting into go. I’ve built a few applications and libraries. For this post, let’s explore the ‘gofmt’ or ‘go fmt’ tool further.

Understanding Mutexes

For anyone new to building web applications with Go, it's important to realise that all incoming HTTP requests are served in their own Goroutine. This means that any code in or called by your application handlers will be running concurrently, and there is a risk of race cond...

Cross Compile Your Go Programs

Introduction In my post about building and running programs in Iron.Io, I needed to switched over to my Ubuntu VM to build linux versions of my test programs locally. I love the ability to have Ubuntu available to me for building and testing my code. However, if I can stay on the...

Go Package Management Call To Action

Nathan Youngman, with the help of others, has produced this document outlining months of research and discovery. I would appreciate everyone to honestly read it before continuing with my post. http://nathany.com/go-packages/ Mitchell Hashimoto also published this post...

Detecting Race Conditions With Go

I always find it interesting when I realize that something I have been practicing or dealing with for a long time has a name. This time it happens to be race conditions. This is something you can’t avoid thinking about as soon as you have more than one routine sharing any k...