From Go to Rust - JSON and YAML

June 12, 2018

One of Go's big selling points for me was its novel approach to JSON encoding. Learning about Rust's encoding has made me even more excited. In this post, we'll start with Go's JSON encoder, and then see how Rust does encoding. And we'll even through in some YAML!

In the first in this series, we...

From Go to Rust with an HTTP Server

June 4, 2018

One of the staples of the system developer's toolbox is building web applications. These days, we might even say it's building HTTP-based API servers.

In The Go Developer's Quickstart Guide to Rust I showed how a Go developer can get a foothold in the Rust world. This time, I'll start with a Go HTTP...

The Go Developer's Quickstart Guide to Rust

May 27, 2018

You've been writing Go. But you're feeling an urge to test the waters with Rust. This is a guide to make this switch easy.

Most Loved Languages

As the co-author of Go in Practice, I have felt a certain obligation to Go. But I'm ready for a change. Rust topped the satisfaction survey in Stack Overflow's survey of languages...

Don't Kill the Competition

May 8, 2018

Or, why competition is good, and how to keep it from going bad

We rarely work in a vacuum. Whether building things or providing services, there's another team out there that's doing something similar. And this team threatens to capture some of our territory or prevent us from achieving a goal. Naturally...

Building A Custom Brigade Gateway in 5 Minutes

April 23, 2018

Brigade gateways trigger new events in the Brigade system. While the included GitHub and container registry hooks are useful, the Brigade system is designed to make it easy for you to build your own. In this post, I show the quickest way to create a Brigade gateway using Node.js. How quick? We should...

How Brigade Shares Data Between Containers

March 26, 2018

Brigade provides a way to script multiple containers to perform a task. With Brigade, you can build things like CI systems, ETL pipelines, and distributed batch processors. One of the critical capabilities of Brigade is its ability to share data between containers. This article describes the two main...

Why Naming is the Hardest Programming Problem

March 8, 2018

Adam and I were pairing, working through a critical piece of our program's architecture. The cursor sat blinking. We had been staring at it in awkward silence. We were stumped.

"I'm leaning toward 'version'", I said, as much to break the silence as anything else.

Adam considered for a moment, then...

Introducing Helm Emeritus Core Maintainers

January 11, 2018

One reality of the open source world (and, indeed, any passion projects) is that sometimes we have time to participate, and other times we don't. This is true even of the core maintainers of a project. In Helm, we wanted to find a way to allow core maintainers to diminish their responsibilities. At...

Why Brigade Doesn't Do YAML

January 4, 2018

Brigade newcomers often ask me why Brigade doesn't use YAML. Coming from CircleCI, TravisCI, and Kubernetes itself, some developers expect that Brigade should be a "declarative" method of describing a sequence of steps to be run. This is not what Brigade is supposed to be. Brigade is a script execution...

Securing Helm

November 20, 2017

There are four steps you should take if you are running Tiller (Helm's server-side component) in a cluster that has untrusted users or pods. These steps are done at installation time, and will substantially improve Helm's security.

The easiest way to install Tiller is with the helm init command....