Why Glide 0.8 Is Our Biggest Release
The Go package management ecosystem has been missing something -- something most other language ecosystems have had for a long time. The new version of Glide brings it.
Historically, Go dependency management has shied away from a package management philosophy. Instead, two approaches have been advocated...
What it Really Takes to Build a Container Platform
Here is the video of the ContainerDays NYC 2015 session I did entitled "What it Really Takes to Build a Container Platform: 10 Lessons We Learned the Hard Way".
The session covers the Deis project's learning experiences as we've built and re-built our PaaS architecture. I cover some of the encounters...
Five Interview Questions You Should Ask Your Interviewer
That awkward moment where the interviewer leans forward and says to you, "Do you have any questions for me?" What do you say? Will your question sound dumb? Will your question give you any useful information? And you know you've got another interview right after this one... what if you use up your...
Querying PostgreSQL to Find The Primary Key of a Table
Recently I found myself trying to programmatically find out which columns on a database table were acting as the primary key. It turns out that there is a relatively straightforward (and standard!) way of doing this.
Postgres provides the SQL-compliant Information Schema database, which contains...
In Memoriam Jim West
The ancient Greek astronomer and philosopher Heraclitus says that the sun, moon, and stars are bowls of fire facing the earth. The soul, too, is made of fire: flickering, flaring, spreading its warmth. It is the animating force simultaneously constant and ever-changing, yearning toward its brethren...
Information Feudalism and the Oath You Swore to Your Printer
Welcome to the 9th century. The lord owns the land. The vassals are given permission to farm the land in exchange for fealty, money, products, and services. The oath of fealty binds the vassal to the lord. Feudalism evokes images of castles overlooking European heaths. Small huts dot the landscape...
The Biggest Mistake Job Interviewers Make
Over my tenure in the tech industry, I have interviewed probably hundreds of job candidates. From small companies like Palantir and Revolv, to large companies like HP, About.Com, and Google, I've sat on the judging side of the table.
Surprisingly, interviewers (including me) tend to make the same...
3 Reasons the University Should Up Its Security Game
I recently changed my password for an account at a university with which I am affiliated. It went something like this:
New Password: XPNRWDeai60h$4IQtjLtZ8&9AV
Error: Cannot use special characters
New Password: XPNRWDeai60h4IQtjLtZ89AV
Error: Cannot use a character more than once
New Password:...
Go Quickly - Parsing Anonymous JSON
Go is great for parsing known JSON formats. But what if you don't know ahead of time what the JSON will look like? There are a few ways to handle this case in Go. On one hand, you can use the tokenizer and sequentially read through the JSON. On the other, you can simply parse the JSON into generic...
Quick Go Hack - Renaming Structs
Today I found myself needing to rename a struct throughout the codebase of
a project. In many languages, doing this would either require some
perl/sed kung-fu or an IDE tool like you'd find in IntelliJ. Go, however,
comes with a handly tool for doing this: gofmt
. That's right, it does more
than just...