Tuesday, July 13, 2010

A Year As A Rocketeer

Today marks my one year anniversary at Hashrocket. It was almost 18 months ago when I met Jon Larkowski and Jim "Big Tiger" Remsik at a RubyJax user group meeting. At the time I was working for a fortune 500 company as a consultant on a lot of enterprisey .NET and Sharepoint applications. As it is in most of those environments I spent most of my time sitting through meetings and squeezed as much work as I could in between. The work itself was mostly fighting through the bureaucratic quagmire to try and deliver some modicum of value. Insult to injury, this was all while wearing the usual corporate get up required in a cube farm. It was taking a toll on me. I realized that this was not a long term solution for my family and I to enjoy our life.

After some soul searching I decided I wanted to switch platforms, switch venues and build Rails applications. I started spending my lunches and nights for the next few months working to learn Rails and get back up to speed on Linux. I took advantage of every opportunity to go to the Hashrocket offices to cowork and spend time on open source projects. The more time I spent with the Rocketeers the clearer it became that I wanted to be a part of this amazing group of people who share such a passion for craftsmanship and delivering valuable, working, tested applications all within in the context of a sustainable pace. I had a long way to go. For those of you not familiar with Hashrocket's hiring process we have applicants pair with our team for a week to audition rather than a traditional interview. I was an exception to that rule. I had to take a step back in life from consulting on multimillion dollar engagements to be an intern for 8 weeks. It was a big decision for us as a family. Thankfully I have an extremely understanding wife. She allowed me to take an indefinite break from lucrative consulting work in the middle of one of the biggest recessions in our nation's history for an unpaid internship. At that point there wasn't even a discussion about a job at the other end. It was the best decision of my professional career. I spent 8 weeks pairing with my fellow Rocketeers and was blessed to be surrounded by people like Stephen Caudill who took additional time out of their evenings to get me up to speed. At the end of the internship I managed to snag a spot among the Rocketeers.

Working here has been the best year of my professional career. My fellow Rocketeers are more family than coworkers. I am challenged every day. I learn new things constantly. I work on really cool projects. I get paid to do something I love and its at the beach! Sometimes you have to take a step back or switch paths all together to get where you really want to be. If you don't like what you are doing then follow your passion and don't settle for anything less. I found a home for my passion at Hashrocket.

Friday, February 5, 2010

slurper turns 0.4.0 and slurper.vim turns 0.3.0

I'm excited to announce new releases of slurper and slurper.vim with a big feature update and a number of changes to take note of. Support is now included for generating and slurping chores, features, releases, and bugs. With slurper turning the big 0.4.0 and adding support for multiple story types we decided it was time for a refactor. You'll notice that now the story format only calls for a == at the beginning of each story rather than at the beginning and the end. If you are using slurper.vim to generate your story templates this shouldn't be a big impact as it is updated to match with the story templates it generates.

The story_defaults.yml file has been renamed to slurper_config.yml but its purpose and contents haven't changed. When slurper was originally written as a ruby script it served a different purpose than it does now so we wanted to rename it more appropriately. It still sits in your working directory for each project just like it always has.

We made the jump to version 3 of the Pivotal Tracker api. This along with the refactoring we did seems to have fixed the occasional error a few people were seeing when slurping in very large numbers of stories at once. Wes and I had some fun putting slurper and Pivotal Tracker's api through some fairly high load testing to the tune of thousands of stories and it held up really well without any major hiccups.

One of the coolest features for this release is that we added output in the terminal of your stories being slurped in similar to running your Rspec or Cucumber test suites. It's nice to see everything going across the wire and if you have clients in with you it provides them feedback with positive visual feedback on all the work that was just done to write the stories. Included is proper error handling and notifications. If there is an issue with any of your stories slurper now lets you know which one it was with either the story name if has it or the story number if the issue is with the story's name.

Finally with the keymap updates for the new story types in slurper.vim are as follows:

CTRL-h generates a Chore

CTRL-j generates a Feature

CTRL-k generates a Release

CTRL-l generates a Bug

There is no backwards compatibility for the old story formats so if you have stories in progress that are not in Pivotal Tracker yet wait until you've slurped them in before you update to the latest versions. You will want 0.3.0 of both slurper and slurper.vim moving forward.

Links:

slurper http://github.com/hashrocket/slurper

slurper.vim http://github.com/alowe/vim-slurper and http://www.vim.org/scripts/script.php?script_id=2890

Pivotal Tracker http://www.pivotaltracker.com

Tuesday, December 29, 2009

VIM Destroys All Other Rails Editors

Updated on February 06, 2010 to account for updates in pathogen.vim 1.2

Updated on February 10, 2010 to account for set up difficulties some Linux users were experiencing

Now that I have your attention, I've come across quite a few blog and forum posts from people looking for "the best" text editor or IDE to use for Ruby on Rails development. I was fortunate enough to meet Tim Pope soon after I got interested in Rails and was subsequently introduced to the awesomeness that Vim is capable of. It took some ramp up time to get comfortable with modal editing but now I find myself frustrated when I don't have all the power that comes from Vim's modal mindset.

Flame War Disclaimer

What you use to edit code is any other tool and it comes down to personal preference. Personally I LOVE Vim. There are hundred different ways you could set up Vim. This is the setup that's worked best for me. Hope you enjoy it as well.

First things first

Install MacVim or Gvim (For Debian based distros install with apt-get). I do frequently use terminal Vim or Vi but I like having both available. If you're on Windows you probably want to spin up a Linux box or a VM. Ruby on Rails development on Windows is going to painful.

Let's Get Plugged In

Download pathogen.vim it makes managing Vim plugins a lot simpler. Create a ~/.vim/autoload/ directory and copy pathogen.vim into it.
$ mkdir ~/.vim
$ mkdir ~/.vim/autoload
$ cp ~/Downloads/pathogen.vim ~/.vim/autoload/
Next you need to create and edit your .vimrc file so that pathogen gets loaded in the correct order.
$ mvim ~/.vimrc
Content:
filetype off

call pathogen#runtime_append_all_bundles()

syntax on
filetype plugin indent on
set tabstop=2
set smarttab
set shiftwidth=2
set autoindent
set expandtab
The "filetype off" is necessary for some Linux distros. If you're on OS X you should be able to omit that though it won't hurt either way if you leave it in.

Create a .gvimrc to specify colorscheme
$ mvim ~/.gvimrc
Content:
colorscheme vividchalk
I've also become fond of the molokai colorscheme. But its all personal preference. You can also forgo the .gvimrc file and just specify your colorscheme in .vimrc but if you are using terminal vim loading some colorschemes doesn't work very well. Putting it in the .gvimrc will only load the custom colorscheme when you are in Gvim or MacVim.

http://www.vim.org/scripts/script.php?script_id=2340

Create a ~/.vim/bundle directory and install plugins. I prefer to clone them from github.com when I can. Some plugins still need to be downloaded from vim.org, extracted and copied to your .vimbundles directory. Either way go vote up plugins you find useful on vim.org. If you don't have git installed check out git-scm.com
$ mkdir ~/.vim/bundle
$ cd ~/.vim/bundle
Install rails.vim
$ git clone git://github.com/tpope/vim-rails.git
Install cucumber.vim
$ git clone git://github.com/tpope/vim-cucumber.git
Install vividchalk.vim
$ git clone git://github.com/tpope/vim-vividchalk.git
Install haml.vim (There are two. I use Tim Pope's.)
$ git clone git://github.com/tpope/vim-haml.git
Install endwise.vim
$ git clone git://github.com/tpope/vim-endwise.git
Install surround.vim
$ git clone git://github.com/tpope/vim-surround.git
Install unimpaired.vim
$ git clone git://github.com/tpope/vim-unimpaired.git
Install abolish.vim
$ git clone git://github.com/tpope/vim-abolish.git
Install repeat.vim
$ git clone git://github.com/tpope/vim-repeat.git
Install NERD_tree.vim
$ git clone git://github.com/scrooloose/nerdtree.git
Install NERD_commenter.vim
$ git clone git://github.com/scrooloose/nerdcommenter.git
Restart Vim and you now have a super powerful Rails editor at your fingertips. Check out each of the plugins for documentation of features.

Technorati Tags: , ,