It's Time for an Alternative to PHP

August 22, 2015

PHP has had a good run, and still is the basis for a huge percentage of the websites out there. But it looks like its popularity may be waning. The thing is, PHP is meeting a very real need in the web development world. It's time for a replacement. Something that meets the same needs, but is updated...

Managing Go 1.5 Vendor Dependencies with Glide

August 20, 2015

There is a new way to manage Go dependencies, and Glide 0.5 makes this process efficient and powerful. Glide 0.5 is a feature-packed release supporting:

  • 100% full vendor/ support, including deeply nested projects.
  • Recursive dependency resolution
  • Dependency management aware of...
    • Git, Mercurial...

Functional Testing in a Containerized World

August 18, 2015

In an age of REST, IoT, and cloud services, well constructed functional tests can exercise substantial portions of the code by simply emulating a client of the service, and then testing the environment. But the real challenge of building good functional tests is creating a clean and reliable test...

The Future of IoT Protocols

August 17, 2015

I'm excited to see DZone's new 2015 Guide to the Internet of Things out today. My article "JSON, HTTP, and the Future of IoT Protocols" is among the articles in the new guide.

In the article, I suggest that JSON's time may have come. Other encodings, like CBOR and Protobuff, may supplant it. But...

Cookoo's New Syntax

June 17, 2015

Cookoo is a Chain-of-Command (CoCo) library for Go. It's good for building web services. We used it to build all of the Revolv RESTS endpoints. It's also great for building tools that handle a sequence of steps. That's why we used it in Glide.

Yesterday's release of Cookoo 1.2.0 makes some major...

The Year Google Bought Us

December 23, 2014

For me, 2014 will be remembered primarily by one particularly big event: Revolv was purchased by Google, and is now part of Nest Labs. But that has only been one piece of an entire year of interesting projects and events.

At this time last year -- December 2013 -- I was not kicking back before a...

A CI/CD Implementation for the Cloud Age

October 22, 2014

Drone, Packer, Ansible, Docker... we associate a litany of names with continuous integration and continuous deployment. But when it comes to building a toolchain that seemlessly transitions our applications from a developer's editor to a running server, we often have to rely on our wits.

My team...

Create A Built-in Vim Cheatsheet

October 9, 2014

I'm always forgetting the cool Vim tricks I hear about. At first I kept a text file of various tips and commands. Then I realized how dumb that idea was. Why not make it easy on myself? So I created my own Vim help module.

Now whenever I want that quick reminder, I can type :h myhelp in Vim and...

Allow only HTTPS on an S3 Bucket

October 6, 2014

It is possible to disable HTTP access on S3 bucket, limiting S3 traffic to only HTTPS requests. The documentation is scattered around the Amazon AWS documentation, but the solution is actually straightforward.

All you need to do to block HTTP traffic on an S3 bucket is add a Condition in your bucket...

How Glide Solves Go Vendoring

September 22, 2014

Glide is a practical tool for managing Go workspaces and dependencies in a sophisticated way, but without any sophisticated configuration.

Inspired by gpm and gvp, Glide manages both your GOPATH and your dependencies to eliminate the need for vendoring, path munging, and version control subtrees...