Fork me on GitHub

Movin' Right Along

For a little over a year I have been working at Pure Charity and it's been a great ride. I've learned from some of the smartest, brightest, and best minds during my tenure at Pure Charity.

The Northwest

Right before I started at Pure Charity, I went on a vacation with my wife to the Pacific Northwest. We have friends in Vancouver, BC so we wanted to visit with them, but also visit Seattle. Due to some last minute schedule changes we flew into YVR and then drove to Seattle. I was enamored with the Northwest. My wife and I decided that this is where we had to be.

Pure Charity

I have been so fortunate to be a part of Pure Charity's first year and to be a part of building the core of the site. I've learned a lot and the team there is a phenomenal team. I think the Pure Charity has the potential to do a lot of good and help a lot of people.

New Relic

I am leaving Pure Charity to go to New Relic. I am very excited to get to work with the team at New Relic. As part of being able to work with them, I will be relocating to Portland, OR. So I guess you would call this a two-fer.

For those who don't know about New Relic, they are in the business of measuring application performance and more recently server monitoring. They now support monitoring on many different platforms like .NET, PHP, Ruby, etc.

I am going to work with the agent teams on some fun stuff that I can hopefully share about when I start to learn more about what I'll be doing.

Leaving

I am very sad to be leaving all my friends and family in Texas, but I think this is going to be a great opportunity for me and I'm looking forward to moving. This is going to be the first time since I was a child that I've moved outside of Texas and definitely the first time I've moved my own family. I'm thankful for everyone in TX and I'm excited for my new adventure.

So with that, I think this sums up my outlook:

Building Vim Latest from Source on OS X 10.7

If you like running latest source packages like I do you'll notice that the version of Vim that comes with OS X is a little behind.

If you would like to build Vim with all the latest patches and goodness it's pretty simple. First download the latest tarball from Vim.org's sources page and extract it.

Patch it up

Next you'll need to download all the patches in the Vim patches folder. Download all of the patches 001-531 (at the time of this writing) and save them to a temporary folder somewhere.

After you have all the patches, the easiest way to use them is to concatenate them into one patch file. This can be done by simply using the following command:

cat * > all.patch

Copy all.patch into the vim-7.3 directory that you extracted from the tarball and run patch -p0 < all.patch.

Fall Back to system Ruby 1.8

Before going any further, if you're running RVM or Rbenv. Get it to use the system Ruby. In RVM the command is rvm use system

Configure, Make, Profit

Next cd into that directory and run configure with the following options:

./configure --prefix=/usr/local --enable-rubyinterp --enable-multibyte --with-features=huge

Now after that runs it's course the next thing you'll want to do is edit src/auto/config.mk to change the arch flags.

In config.mk add -arch x86_64 and -L/usr/lib to the LDFLAGS line (should be around line 26): LDFLAGS = -L. -arch x86_64 -L/usr/lib -L/usr/local/lib

Finally you should be able to just run make and that will build Vim for you. This takes a few minutes but shouldn't be too long.

Finally run make install to install Vim. If your /usr/local directory is not owned by your user (why?) you'll need to run sudo make install.

Now you'll be running bleeding-edge Vim.

DDD Aggregates in Rails with ActiveRecord

In Domain Driven Design there is a concept of an Aggregate.

A cluster of associated objects that are treated as a unit for the purpose of data changes. External references are restricted to one member of the Aggregate, designated as the root.

Simply put: an aggregate has one entity that is designated as the root and an object of the root's class is what you would manipulate in your code. The other entities in an aggregate could not stand on their own outside of the aggregate. It is possible to use the aggregate concept using just ActiveRecord in Rails.

Top Chef: Cloud Edition

Lately at Pure Charity I’ve been using Chef to build our infrastructure on Amazon’s EC2. After using chef for the last few weeks I have come to fully embrace it and I will never again build a Linux box by hand. I know that sounds pretty dramatic, but if you build servers (in the cloud or bare metal) you NEED to do yourself a favor and look at Chef. In the coming week I’m going to write a series of posts about Chef. This week I’m going to explain what Chef is and why it matters.

My World Through Vim Colored Glasses

I like Vim. I like it a lot. I’m sure Emacs is good to, but I’m flying the Vim flag. I used to use a Big Enterprise IDE™ but I have found that Vim gives me a lot of power without using all of my memory to run an IDE.

Through all my years of experience with Vim, I have become more and more proficient with the Vi keybindings. For example I used to rely on the arrow keys when I started using Vim, but now h/j/k/l have become my preferred way to navigate. I find myself exiting insert mode more often than not to accomplish tasks, compared to spending almost all of my time in insert mode.

With this ever growing proficiency, I find my interactions with everything else…a bit lacking. My terminal feels slower, my IRB sessions feel slower, I wanted to be able to use my Vim-fu everywhere. After some digging and investigating I found ways that I could do it.