At the start of my extended vacation, I vowed to release a website using Rails. With the help of my friend Aaron Pepper (creator of the excellent feed reader feedingo.com), yesterday we released a website to share simple game tips. What hopefully sets it apart is the focus on simple, spoiler-free, tips - it isn't where you go to for a walkthrough or strategy, its where you go to for the very basics.
In following posts I'm going to talk in more detail about the individual pieces, but for now I want to give an overview. Here's a list of core technologies:
- Rails 3 Beta 4,
- Ruby 1.8.7 Enterprise Edition,
- nginx web server with Phusion Passenger,
- MongoDB 1.4.4 and MongoMapper,
- PostMark for mail delivery,
- Hosted on a Linode VPS and running Ubuntu 10.04
I was originally using a release candidate of Ruby 1.9.2 but ran into problems with some native gems. Except for a new hash syntax, 1.8.7 and 1.9.2 seem fully compatible (for what I was doing anyways), so switching wasn't a problem. The switch was especially easy since I'm using Ruby Version Manager (RVM). Basically it lets you install different versions of ruby side-by-side, each one isolated from the other. Once you install RVM, you can grab 1.8.7 by running
rvm install 1.8.7 and 1.9.2 by running
rvm install 1.9.2. Once these are installed, you can switch your current ruby by doing
rvm 1.8.7 or
rvm 1.9.2. RVM takes care of changing your PATH and you're good to go. Tools like RVM continue to show that, in a lot of cases, the command line is a better option for developers.
Nginx and passenger are great together. I've blogged about setting them up already - using the long manual way (passenger actually has an easier way to set it all up). Nginx continues to impress me - its stupid fast, efficient and has a bunch of useful modules. When I talk about the importance of Linux for all web developers, Nginx is at the top of my list. I wrote about it a while ago, and I strongly suggest you familiarize yourself with it and what it does (reverse proxy, load balancing, hardening, rewriting, and so on).
I also blogged about NoSQL/MongoDB in the past. I'm a huge believer - the benefits are massive and I have no doubt NoSQL will become mainstream. The truth though is that MongoDB with a static language like C# has much more impact that a dynamic language like Ruby. Ruby's dynamism with Rail's ActiveRecord and Migrations makes dealing with relational databases pretty painless...so the jump to MongoDB isn't as big a deal. With C#'s rigidness though MongoDB is a dream come true. Its hard to explain until you've used MongoDB.
So that's briefly it. In the coming days I'll delve deeper into each topic. In the mean time, feedback or content submissions to noobgaming.com are much appreciated.