The Best Go Content on the Internet


Go Advent Day 22 - A Journey Into NSQ

Contributed by

Introduction (NSQ is a realtime distributed messaging platform. It’s designed to serve as the backbone of a modern infrastructure composed of loosely connected services running on many computers. This post describes the internal architecture of NSQ with an emphasis on Go, focusing on performance optimization, stability, and robustness for high throughput network servers. Arguably NSQ would not exist if it were not for the timing of our adoption of Go at bitly.

Read more...

Go Advent Day 21 - Two Factor Authentication in Go

Contributed by

Introduction Every day we hear about another site getting hacked and more passwords being leaked. Bad passwords and password reuse are two of the biggest problems with the human side of computer security. Two-factor Authentication (2FA) is an attempt to improve things. Passwords alone are “something you know”, and if the database is compromised then somebody else can know it too. This is why password reuse is a problem.

Read more...

Go Advent Day 20 - Go in Academia: Emulating Wireless Networks

Contributed by

How I Came to This TL;DR; — We didn’t want to use simulators and using real device for experiments became infeasible, so I decided to build an emulator for 802.11-like networks. The first version was in C++ and it didn’t work well. I rewrote the simulator in Go and it gives twice throughput than C++ version and that’s what we are using now. I am in a wireless networking research group in Auburn University.

Read more...

Go Advent Day 19 - Eject the Web

Contributed by

Editors Note: Yasuhiro is not a native English speaker, so during the editing of this post is was necessary to make some minor corrections. We felt that it was very important however, that the Author’s original phrasing and intent be preserved as much as possible. Introduction As you already know, Go is a good programming language to write web applications. There are already many packages providing routers, MVC, and Sinatra-like frameworks.

Read more...

Go Advent Day 18 - Go Outside

Contributed by

Introduction Outside is a Go package to dynamically link to and execute functions in Windows Dynamic Link Libraries and Linux Shared Libraries. Its current status is ‘prerelease’ with only 32-bit register size implemented and tested so far. Also, some functionality is very experimental and will probably change a lot before release 0.1. I only came to explore Go as a viable general purpose or glue language in the 2nd quarter of 2013.

Read more...

Go Advent Day 17 - Pond: a New RSS+Atom Syncing Protocol

Contributed by

The Problem We’re standing on the verge of a new era of data ownership and privacy, with decentralization and cryptography taking center stage on the technical side of things. The series of events that led us to this point has been taking place since long before our suspicions about governments and corporations invading our privacy were confirmed. In the past decade major players in the “cloud” industry have emerged, and most users trust them–or used to trust them–blindly with their information.

Read more...

Go Advent Day 16 - Coconut: a pure Go blogging engine

Contributed by

Quickstart Coconut is a simple blogging engine. It has two kinds of content: Articles and Pages. Articles are stored in the articles directory and can be requested by using their file name (minus the required “.md” file ext) as the first and only part of the path. Pages have their url and file paths specified in the config file. All page file paths are relative to the static directory, but this will probably change.

Read more...

Go Advent Day 15 - Accelerating ecommerce with Go

Contributed by

Welcome Writing an ecommerce site in Go Go adoption in the enterprise is increasing since the 1.0 release. Large respected tech companies have been using Go to build interesting back end services like etcd, specialized content delivery systems like dl.google.com, and mobile optimization services like Moovweb. Steals.com, a boutique quality daily deal site for children and women, was preparing to launch its new retail site, with the goal of engaging customers in a Pinterest-like product presentation.

Read more...

Go Advent Day 14 - gobrew

Contributed by

What is gobrew? Simply put, gobrew lets you easily switch between multiple versions of go. It is based on rbenv and pyenv. Why gobrew? Often times you’ll be developing against one version of Go when another version is released (or perhaps a release candidate is made available). Instead of fighting to manage multiple versions and changing your $PATH repeatedly, you can use one simple tool to manage your installations of Go.

Read more...

Go Advent Day 13 - Go web services with Tiger Tonic

Contributed by

Welcome Go is unique among mainstream programming languages in that its standard library web server is not a complete afterthought. The Go language is well-suited for engineering complex networked services and Go’s standard library recognizes that many (if not most) of those services communicate via HTTP. Sprinkle some Google scale on it and your web applications and services can really hit the ground running. The standard library sets the tone but it’s far from the end of the story of how to effectively build web services in Go.

Read more...