How Elixir Does Project and Dependency Management
I am going to come right out and say it: In less than an hour, Elixir's Mix tool won me over. Elixir seems to have done project and dependency management right.
Elixir is a Ruby-like functional language that runs in the Erlang VM. One of Elixir's more interesting features is its built-in project...
The Snooty Developer's Visual Guide to Kubernetes
With its own vocabulary and architecture, Kubernetes can seem downright scary. To tame the beast, I give you a simple visual (and snarky) guide to Kubernetes concepts.
Don't look here for nitty gritty implementation details. For that is not the way of the Kubernaut. We are platonists, concerned not...
Software is a Sugarmill
About a year ago, Google acquired Revolv, where I led the Cloud team. I coined the code names for several of Revolv's projects, including our primary cloud platform. I named it Sugarmill.
But I never told anyone the reason. It was long-running joke that I wouldn't say why I named it. Frankly, I...
Don't Condemn Go To Repeat Past Mistakes
The American philosopher George Santayana famously quipped:
Those who cannot remember the past are condemned to repeat it.
A litany of "history repeating itself" variations have trickled down from Santayana's phrase. But the original captures something that those "history" variants do not: the...
It's Time for an Alternative to PHP
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
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
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
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
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
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...