Adventures in Ruby

It’s been about 2 months since I joined Ruby Nuby, and I haven’t posted any updates on my progress.

I joined Ruby Nuby (a soon-to-be non-profit dedicated to teaching the first year of Ruby Programming, Rails Framework and Related Technologies) because I’ve been wanting to learn some deep programming, but needed a little bit of structure and guidance to do it. I didn’t really care what the language was, because I know the skills are transferable between languages.

I’d been working with Ruby Nuby and Rails 3 for a few weeks when a friend mentioned that he was looking for a hacking/learning buddy. He’s playing with the Ruby framework Sinatra, but I figured that would just let me see more of the actual Ruby-ness going on.

So, I innocently started out to add Sinatra to my programming environment. We had discussed Ruby Version Manager at a Ruby Nuby meetup, so I knew that was the way to go to keep everything neat and avoid conflicts. Surely it couldn’t take more than an hour to get everything properly set up.

Hah.

It took me two days of hanging out in forums and IRC channels before I finally got everything going.

My issue was that, having started out with Rails 3, I had installed Ruby 1.9.2-p0 as my system default. When I wanted to start playing with Sinatra as well, I installed RVM, and used the awesome project .rvmrc feature to set up folders for my various projects.

But there’s some sort of conflict between Sinatra 1.0 and Ruby 1.9.2-p0, (I never did figure out exactly what was going on there, but I couldn’t get Sinatra to launch at all) and so I had to re-install Ruby 1.8.7 using RVM and create new project files to use that version of Ruby with Sinatra.

Really, figuring all that out shouldn’t have taken more than an hour or two. But the RVM docs aren’t n00b-friendly, and I spent a lot of time just researching errors and trying to figure out what was going on.

But I did, and I’ve even had some time to write a little bit of code (I’m posting all my code to GitHub, you can check out my work there).

The point of all this is that setting up programming environments in a big fat pain in the butt. I remember when I wanted to teach myself Python/Django in college, and it took me almost a year just to get everything properly installed and hooked up. Talk about barrier to entry.

So I’d like to see some thought put into this setup process. I did finally find an awesome solution to my Django issues (Bitnami), but it took so long just to get the environment running that most of my motivation and excitement had petered out.