If you haven't seen The 15 minute E-Commerce Site CLICK HERE

I'm currently looking for Contract jobs, Contact Me if you are interested. Dave.

Ruby Developers Upgrading to Lion David Henner Aug 20

6 comments Latest by Mikey Donuts

Well I pulled the trigger and upgraded to Lion. The new Mac operating system has a whole bunch of new features. Airdrop lets you share files over a wireless connection. The new gestures will make people that weren't a fan of spaces have a change of heart. Personally I loved the way spaces were setup but I can see how Lion's gestures will be more universally Loved.

Connecting to the app store actually has been made dead simple. At first I would have thought this as a bad thing. Luckily, it's also much easier to get great free apps. I'm actually a fan.

The downside... My day-job requires me to develop software. So I want to my git repo and typed "bundle install". BANG!!!

At first I realized I just upgraded ruby's patch-level in rvm. So I needed to run "gem install bundler". After running bundle install again I got an error like this:

Installing rmagick (2.13.1) with native extensions /Users/davidhenner/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:533:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /Users/davidhenner/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Well it looked like ImageMagick had issues. I assumed it was either gone or needed an update. I typed brew install imagemagick and it looked like imagemagick was indeed installed.

Warning: Formula already installed: imagemagick

The next step was to update homebrew:

davidhenner$ brew update

error: pathspec 'master' did not match any file(s) known to git.
Error: Failure while executing: git checkout -q master 

OK, this looked simple enough. All I needed to do was go to the git repo at /usr/local/.git and remove the folder (rm -rf /usr/local/.git) and remove the .gitignore file. Then I ran "brew update" again. BANG!!!

error: Untracked working tree file 'Library/Aliases/0mq' would be overwritten by merge.

Error: Failed while executing git pull master

Hmmm lets try "brew update" again. BANG...

error: The following untracked working tree files would be overwritten by checkout:
    Library/Aliases/Secret Rabbit Code
Error: Failure while executing: git checkout -q master

OUCH!!! The message was much longer. Then I learned many people just uninstalled homebrew. After a fresh install everything works. So I found out to uninstall homebrew here.

cd `brew --prefix`
rm -rf Cellar
brew prune
rm -rf Library .git .gitignore bin/brew share/man/man1/brew
rm -rf ~/Library/Caches/Homebrew

That worked... Now I just needed to head over to the homebrew github account a get a fresh install. I did need to get the java developer Updates before running the script.

I ran "brew install imagemagick" and everything worked. Then I went over to my repo. I ran bundle install and everything works.

I hope this saves someone some time. Good Luck.

ror_ecommerce, ruby on rails ecommerce done right

PORTLAND Ruby Brigade David Henner Jul 10

Post a comment

To my surprise chaos can work at a ruby meetup.


The venue was a second floor room of a building that you needed to be semi-escorted to. By that you where escorted to an elevator that you had no control over. The building guard told you to go in (like the haunted house in DisneyWorld) Then she must have had a control at her desk to select where the door opened up at. Ironically the door opened at the wrong floor and if we had gotten out I think we might have been spending the night there. Either way I am making it sound a bit more dramatic than it really was.


  • Pile into a room.
  • Ask everyone if they have anything to talk about (2 minutes each)
  • Ask if anyone has anything to present.
  • Talk about presentations in a classroom like style

Let me first explain what I meant about chaos. The meetup had no pre-defined talks. The organizer was sick, so the next in command started the meeting by asking if anyone had anything to talk about. Then there was a moment of silence. During the silence I thought to myself... “What will I say in my blog if nobody says anything?”

After a minute people stepped up and started to talk. Then someone actually stepped up to give a “live demo” style presentation. The presentation showed some of the power of maglev. I must say, if you want to talk with the experts about maglev you should spend some time at this meetup. The presenter showed how maglev deals with 2 different processes handling the same request. This was a semi-advanced discussion and really helped me learn more about maglev.

Then the talk took an awesome tangent. We started to talk about concurrency. One of the several excellent points that were made was the reality that MRI rubyist have not had to deal with problems with threads and concurrency and now with the new implementations ruby we will need to change that fact. The ruby community needs to build classes that look array / string / hash ... but these new classes need to be safe to allow multiple processes to work on them at the same time.

This first hour worked great. The next hour continued with the same “chaotic” style. The interesting note was that the level of discussion was mid to senor level ruby. On the whole I enjoyed the talks. I do think the talks might scare away junior developers.

Given the number of people the ruby community needs to attract, I’d say this group should have a planned junior level talk every month. It would need to be planned so junior developers see the fact that people are presenting something they would want to see.


This is a smart bunch of rubyists. The only cons were that there wasn’t food and they need to make sure some talks are geared toward beginners. To the junior developers that might have been scared away previously, I say keep attending. They might be talking at a high level but you can certainly learn from everyone here.

ror_ecommerce, ruby on rails ecommerce done right

Sharethrough Ruby Hack Night! San Francisco David Henner Jul 05

Post a comment

I’ve finished my second meetup. This time I was at a hacknight hosted by Sarah Mei. I’m usually not a fan of hack nights but this one didn’t disappoint.


  • pizza and soda
  • Introductions hack away (maybe join up with someone)

The night started with pizza and soda. I forget if beer was provided. The pizza was good and there was more than enough to grab more than my share. (I had not eaten all day) Introductions were a bit formal and I assumed this meant there is a good rotation of people attending. Everyone was asked to tell everyone what they were working on and something interesting about themselves.

I started the night just talking about tech stuff. Google’s new tool and Justin Timberlake buying myspace highlighted the talk. After that I started to hack and after 30 minutes I asked the guy that said he was new if he wanted a quick lesson. I enjoy teaching so I found it to be a great way to spend a hack-night.

As with most hacknights the time flew by. I wonder if having a hack-saturday could ever work out.? This is one of the more productive hack nights I’ve had. I’ll be attending this hacknight again if I find myself moving to SF.

ror_ecommerce, ruby on rails ecommerce done right

Ruby Meetup review (SF RoR meetup) David Henner Jun 30

3 comments Latest by DRH

My adventure begins...

The first meetup I attended was the San Francisco Ruby on Rails Group. Overall I found the meetup to be a good experience.


The venue was a huge co-workspace that could fit hundreds of people if they had the seats. This group is only 3 months old and already has 70 members attending. I assume this is normal in SF but in Los Angeles 70 is a good number of people.

The meetup also had plenty of beer and pizza. It wasn't the best pizza in the world but who can complain about free food.

The Format

  • The first 30 minutes was socializing
  • There was a 30 minute talk
  • There was 10 minutes dedicated to freely announcing cool gems you are working with.
  • There was another 30 minute talk
  • Q/A was after each speaker spoke.

I thought the 10 minutes dedicated to talking about gems was a great change of pace. The only criticism I had of the format was that the Q/A was after both speakers spoke rather than having a separate Q/A for each speaker.


It was very easy to talk with everyone I met. I find networking to be the best part of a meetup so this meetup did a good job IMO.


The content was more about communicating problems rather than showing actual code examples. This style worked for some points but I would have loved to see some code examples. Both presenters were good at talking about their subject matter. Good points were highlighted in each talk so most people should have taken something away from the talks. I'd say the content was geared toward most beginner and mid-level developers.


I had a good time. Everyone was a bit surprised to hear I was traveling the country to review meetups but I expected that. I would definitely attend again.

ror_ecommerce, ruby on rails ecommerce done right

Ruby Meetup Adventure David Henner Jun 20

15 comments Latest by DRH

A few weeks back I gave my employer my (5 week) notice. Since then I have turned down several great offers so I can do something even more adventurous. My plan is to drive across the USA and attend as many ruby meetups and hopefully find as many people as possible to pair program with. I'll start my trip in a week (June 27th).

I want to meet fellow rubyists and share knowledge. My trip will start in LA and most likely end up in NYC. If you are interested in connecting with me feel free to email me at info [at] If you want to program more than just a day I'd appreciate a good couch to crash on. I'm also bringing my 2 small dogs so they might need a place to crash.

Right now the list of cities on my hit-list are:

  • San Francisco, CA
  • Bend, OR
  • Portland, OR
  • Seattle, WA
  • Helena, MT
  • Sioux Falls, SD
  • Minneapolis, MN
  • Milwaukee, WI
  • Chicago, IL
  • Rochester, NY
  • NY, NY

I'm very interested in going to more places but that all depends on what I here from anyone that emails me. I'd also like people to email me where and when their ruby meetups are. I will be attending meetups and blogging about what I like and dislike about the ruby meetups I attend. Look for future posts evaluating Ruby Meetups.

While I am on my trip I'm hoping to write a book on e-commerce. I'd like to give a free online version of the book. Right now I'm realizing converting PDF to HTML isn't an easy process. Once I work out the issues I'll continue posting the book on

I'm looking forward to here from you.

Almost 2 years later

I have now driven across the country twice and attended dozens of different meetups. It has been a fun ride. I have been to a new meetup as recently as 2 weeks ago in Vegas. The ruby community is pretty awesome. You have all been very welcoming. Thank you all!

ror_ecommerce, ruby on rails ecommerce done right

Working Effectively David Henner Jun 01

Post a comment

Time for a rant...

I've noticed so many people program un-scalable software. The software requires a lot of maintenance and man hours to keep running. The latest project I saw this was moving a site to work in the UK. The software that was written is brittle but I'm not complaining (yet) about that. What I am complaining about is the ability to move this same approach to many countries.

The code I am reviewing has UK specific queries to the database. It has code with variables names like products_uk. It doesn't run on the same servers as the US software. Every page has UK specific information so it can't be reused anywhere without duplication.


I've heard some people say code is written like this because there job will never go away. These same people don't understand why they don't get new and interesting work to do. It's time to give them a hint... If you build software that "just works" you won't lose your job. On the contrary sales will go up and you will have new projects to work on.

New projects are the most interesting. If you have the philosophy of building great software, trust me, your work will have more variety. You won't work on the same software for years, because your old software works and you will move on to more new stuff.

I also believe some people don't know how to write scalable software. In the software industry, the difference between a good business person and a bad business person is identifying who writes scalable well factored code.

OK, That's enough ranting for today. Thanks for reading.

ror_ecommerce, ruby on rails ecommerce done right