afero: A Universal Filesystem Library

Anyone who spends a few minutes talking with me about development knows I love Go. My Github and Blog are practically a love letter to the language.

Debugging Go programs with Delve

Tracking down bugs in your code can be a very frustrating experience. This is even more true of highly parallel code. Having a good debugger at your disposal can make all the difference when it comes to tracking down a difficult, or hard to reproduce bug in your code.

Working with Semantic Versions

Semantic Versioning (a.k.a SemVer) has become a popular way to handle versions. The structure not only allows for incremental releases but allows people and automation to deduce what those changes mean.

December Blog Series Introduction

It’s that time of year again… The time when young gophers dream of high-quality articles about Go programming. We’ve run our “Advent” series at GopherAcademy for two years now, and it has been by far the most successful content we’ve ever publ...

Producer-consumer problem

This is the first entry in the “Classical synchronization problems” chapter of “The Little Book of Semaphores”, the “producer-consumer problem”. The text describes the problem as a common pattern where some threads are producers and some thread...

Go 1.5 layer for OpenEmbedded

For $WORK reasons, I want an up-to-date Go cross compiler for OpenEmbedded. Taking a look at existing efforts I ended up forking dodgerblue’s repository in order to fix a couple of issues, most notably, the fact that in order to bootstrap 1.5, the recipe goes behind bitbake...

Let's dance!

The first time I used Go to solve the particular puzzle I’d like to discuss in this post, I though I was doing something wrong because the solution is so concise. Secton 3.7 of the Little Book of Semaphores presents the following puzzle: Imagine that goroutines represent b...

Reusable barriers

At the end of Let’s meet, I wrote: “The channel-based solution has one advantage going for it, though: try surrounding the body of the worker in a for loop.” This is what The Little Book of Semaphores calls a “reusable barrier” in section 3.6. It&rsq...

Embedding Assets in Go (Codeship)

A semaphore by any other name…

I skipped over “Chapter 2: Semaphores” because it doesn’t contain exercises. Nevertheless, looking back at it, I think it’s worth paying it a visit with Go in mind. The Little Book of Semaphores offers the following properties as a definition for a semapho...