I spent the majority of the day setting up the Cushion new environment, but this time with Ruby. It feels good to be back in a familiar space where every move doesn’t start with a question. Even though I have a lot of experience with Ruby, I took some time to look around and research. Are there any useful gems that I haven’t heard of yet? How far has Sinatra come since my last app?

In doing so, I stumbled upon one gem that I’m especially excited to use—Timecop. Aside from the amazing name, I can’t tell you how much time and frustration this gem would’ve saved me in the past. The aspect of time won’t be as crucial in Cushion as it was in previous apps of mine, but still, it’s good to know that this gem is available.

I also found that Alex Maccaw open-sourced his news aggregator, Monocle. Since he’s an avid proponent of lightweight frameworks, like Sinatra, I spent a good amount of time perusing his code and learning a few new tricks. Going through someone else’s code almost feels like browsing their record collection—you’re bound to find something you haven’t seen before.

Near the end of the day, I decided to look into Vagrant, a tool for creating dev environments. Up until now, I would typically work on an app in my local OS X environment and hope that it would work on the production server. Unless I’m running the app on a Mac Mini server, this doesn’t make much sense. With Vagrant, it didn’t take long for me to create a proper dev environment on an Ubuntu VM. I used Rove to help generate a starter script and only needed to fine-tune a few other things before it all came together.

Now that the app and tests are up and running locally, I’m ready to go full speed ahead—seriously, this time.