I have been using the term “Viking Coder” for a several years now. Honestly, it was a “equal and opposite” reaction to the rise of the Rockstar Ninja Samurai whatevers in job descriptions. I don’t play a guitar or dress in black PJ’s. I am a big dude, and I like big, simple solutions to problems. And I have a least a little bit of Scandinavian in me.
Some folks asked me what I meant by viking coders. So, with out further gnashing of teeth, here you go.
One of the cool things about what I do, is that I get exposed to some really interesting paradigms. One of the latest is the 12 factor app. It’s an evolution of some of what I have thought in the past, and a radical departure in others.
I’m going to talk about just one of the concepts right now. It was one of the ones that made the least amount of sense to me, until I started to use it. I’m also going to show a concrete example of how to use it in a production system.
So, I was updating ruby etc on my Lion box, and I ran into a few issues.
First off, I’m using Apple’s commandline tools. I found that I needed to
export CC=/usr/bin/gcc before RVM would work.
Then it tossed an “
rvm requires autoreconf to install the selected ruby interpreter however autoreconf was not found in the PATH.” error.
brew install automake seem to fix that little kink. (Wait, you don’t have homebrew? Well, go get it!)
So, now I’m fully updated on RVM and ruby.
One of the issues that I have run into several times is the securing of access to server farms. You generally end up with a ton of keys laying around and it gets really messy. At one of my past jobs, they had written a pretty killer tool that gave me the springboard for pssh. Pssh is cool because it knows what servers you have by interrogating the AWS APIs, what keys they need and even what their internal DNS name is in your cloud.
So, enter pssh, the Proxy Secure SHell! a SSH automation tool suitable for use as bastion ssh server, or general hand holder. At this time, only works on AWS. Since it’s built on the killer @fog gem, it can be easily expanded to just about any cloud provider.