I am a software engineer. Not a front-end developer. Not a back-end developer.
Not a full-stack developer (whatever the fuck that means today). I am an
engineer. I understand how to devipher technology, figure out how it works, and
build things up using said technology.
If you spend more than 15 minutes lurking around the various tech hangouts these
days, you will undoubtedly come across some bit of tech that smells. It may
work as advertised, it may not crash your system, but its just...wrong. When
you go digging into its guts, you find that it's a well polished pile of shit,
put together by some well-intentioned flunkie who wanted to "be somebody" on
the web.
Last time, we got
Metalsmith up and running, generating a single static
page. This was a good first step, but we need more. If we intend to build a
fully functional blog or documentation site, we need things like style and
syntax highlighting. We'll also need to add some structure to the site, as well
as the ability to generate sane permalinks.
I've decided to get serious about blogging (and participating on the web in
general), and as such, I need this site to be ready. I started reviewing the
bits involved here, and realized that much of what I'm using is woefully out of
date. So it's time to get busy.
Man, its been too long. I found about 10 posts I've started over the last 2
years that had reached various levels of completion, but realized that
completing any of them would require me to recommend things that I now know to
be wrong. So instead, I thought I'd relay some of the things I've experienced
and what I've learned from them.
In my quest to become one with my Air, I've been in
search of the best tooling to keep my workflow smooth. I did some playing
around with MacVim, running rbenv in OSX, and various IRC clients. After
a lot of hand-wringing and head-scratching, I think I've come up with the
best solution.
Cheaters always win!
My fix is to give up and give in. Vagrant to
the rescue! In all fairness, the choice to use Vagrant was sort of a team
decision. We have quite a few devs, and find a way for them to work
consistently seems like the perfect use case for Vagrant. So for
day-to-day work, I spin up the project specific VM using the Vagrantfile in
the repo, then just pull in my dotfiles
using homeshick. This workflow
allows me to always work in a consistent environment, no matter where I'm
working from (even from a Putty session).