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...

Using CODL to Generate Cookoo Routes

September 17, 2014

Cookoo is a tool for rapidly build Go applications. A central part of any Cookoo app is its registry of routes. A route maps a particular request to a series of tasks that Cookoo will perform in response.

Cookoo routes are written in code and compiled into the application. While I love this feature...

A Dissertation Is Just A Term Paper (And Other Myths)

September 8, 2014

It's high time we poke fun at some of the misperceptions non-academic people have about scholarly work, professorships, and the daily grind of academia.

"I'm working on my dissertation"

An academic hears: I'm neck-deep in one of the most difficult projects I've ever imagined. I constantly feel unsure...

The Potential of Cloud plus IoT

August 21, 2014

I've heard some dubious claims contrasting the cloud and IoT. I've also seen the connection between the two overhyped and generally misunderstood. As the lead cloud engineer at an IoT company, I feel obligated both to provide context and advocate for a proper understanding of the potential of IoT...

Database Storage in Go with Structable

August 15, 2014

I'm not a huge fan of ORMs. Don't get me wrong, I'm not about to start a campaign against them. I know that many people find them to be a great abstraction layer on their database. But I usually feel more productive with my query writing when I can just write SQL.

Okay, not always. Writing plain...

Speaking at Wearables+Things in October 2014

August 4, 2014

The inaugural Wearables + Things conference will be held October 20-21, 2014 in Washington, DC. I'm very excited to be part of that.

I'll be there talking about "Things in the Cloud," where I'll share some of the lessons we at Revolv have learned about building cloud applications for the Internet...

9 Things I Like About Go

July 24, 2014

Yesterday I found one of my first Go apps. In a moment of retrospection, I realized how happy I am working with the Go language. I thought I'd take a moment to document why.

Here, in no particular order, are the top 9 reasons I like working with Go:

1. The Toolchain

A C programmer was looking at...

Start an Interactive Shell from Within Go

July 11, 2014

Looking around the web for information on creating a new shell from Go, I kept finding the same answer: "You can't do it." Actually, you can do it, and it's not hard.

My goal was to write a Go program that did some processing, set up a particular environment, and then opened an interactive UNIX shell...