Article Digest:
After about six months of working (off and on), I've decided to roll out a brand new interface on a brand new platform for Cooking For Engineers. The bulk of the pages have been converted to the new look and rewritten in Ruby on Rails. There are still a number of ancillary pages that will continue to run in PHP (including the forums) because I'm not sure it's worth my time rewriting those. I'm sure you guys would much rather I spend my time tinkering in the kitchen and writing articles instead.

If the background of this article is grey, then you're still looking at the old site. If the background of this article is yellow, congratulations! Your DNS has been updated with the new server IP address. For those still viewing the old site, please be patient - we've moved machines and that info needs to propagate across the internet. This takes as little as a few hours to accomplish, but some ISP's don't bother checking the updated tables for up to 6 days (ahem, Comcast).

If you're on the new site, please be aware that it is brand new code, so there will probably be bugs everywhere. If you see a bug, please e-mail me at: cooking@cookingforengineers.com.

Can't see the new site at home yet (comcast), but I can see it from work, and it looks good.

I like the style, especially the recipe files across the top. Only problem, is that sometimes the title will take up more than a single line (eg "Strawberry Glazed Angel Food \n Cake") and wrap, causing the div (I assume), to have a greater height than the rest, and it just looks off. I don't know what you would do instead, maybe snip off the end of the title?

Overall, it's great, and I like that you decided Ruby on Rails. How long did it take you to get it all up and running (hours)?

Overall, it's great, and I like that you decided Ruby on Rails. How long did it take you to get it all up and running (hours)?

I probably spent about 30 hours on it during Christmas week last year. Then a couple weekends over the last several months - so probably no more than 60 hours. A LOT of that time was spent recreating some of the functions I used in the php version (like image height/width) and tinkering with the reformat. In general, the HTML takes the longest for me. About 10 hours of that time was messing with database stuff. A lot of administration code isn't done yet, and there seems to be some funny stuff going on with some of the php integration. Last night, it took about six hours to switch over the DNS (as I forgot that if I moved servers I'd lose mail capability, so I had to learn how to setup SMTP services) and fix all the little bugs that arose that didn't show up earlier in testing.

Would you please go into some reasons why you used Ruby on Rails instead of, say, Java or PHP(again) to upgrade your site.

Sure. Mainly I used Ruby on Rails because I've been writing on the framework for the last year because Fanpop was developed on Ruby on Rails. In that time I learned a lot about the issues dealing with running a site on lighttpd as well as Rails and also devised many fixes for the issues we encountered. Because of this, I felt that if I was to rewrite Cooking For Engineers, I would do it in Ruby on Rails running on top of lighttpd with mysql since my knowledge of that particular stack was fairly intimate. Any new problems arising on Cooking For Engineers could help me in making Fanpop more robust/successful and vice versa.

In addition, after using Ruby on Rails for the last year, I felt that the language (Ruby) was extremely concise and I could spend a minimal amount of work from thought/design to implementation. That meant, in the future, I could build new features faster and more modular than I had been doing before.

The first Cooking For Engineers site was build with php and as much as I found php easy to learn, it was a bit clumsy to work with (especially since at the time I didn't know you could do classes in php and wrote everything in a couple flat files with only a couple included files containing my functions). With Ruby on Rails, I didn't have to figure out how to write OOP code, it's thrust upon you (and so simple too!).

Not choosing Java was pretty easy - I haven't seriously written anything in Java for about 8 years and have always felt it was too clumsy and verbose. After using ruby for a couple weeks, there was no way I would conceive of using Java - mainly due to laziness. It's so easy in ruby.

Also, the existence of ActiveRecord gem for ruby (a primary component of Rails) is an amazing bonus. The ability to treat your database records as objects and manipulate the data as methods/properties is an extremely powerful abstraction. In addition, Rails' caching support is relatively straightforward and more or less easy to implement.