Learning Ruby on Rails

Continuing my quest on Web Designing, I’ve started learning Ruby On Rails, which is like the most-hyped web framefork of the moment. After all, Github runs on Ruby On Rails, Redmine uses Rails, and so do Basecamp,Hulu,Scribd, and even Twitter. Even though RoR has Ruby in its name, its just a namesake.

Learning Ruby and learning Rails are entirely two different routes, and learning one only gives you a slight advantage in the other. I’m learning Rails by the excellent book, Ruby On Rails 3 Tutorial, by Michael Hartl. It covers Rails 3, which is one reason I picked it as Rails 3 is quite different from Rails 2 in comparision.

Rails in a few words would be described as a Web framework that makes writing web applications really, really easy. And I really mean that. I’ve been programming in Rails for ~2 days, and I can confortably say that it is better than any other PHP framework (viz CakePHP, CodeIgniter, Kohana) simple because it is powered by Ruby.

And the beauty of Ruby is not in its implementation, but in its elegance. Reading ruby code is lie reading seeing a visual presentation. While PHP is the paragraphed, prose version of the same stuff. Simply put, PHP allows you to do the same things, but essentialy it was not readable enough to match Ruby’s elegance.

Rails follows the MVC pattern (Model-View-Controller) for development, and uses it strictly. It has got its own conventions, but as I found out, the concept of convention over Configuration makes much more sense in Rails than it ever did in PHP. All that time I spent in the CakePHP console was nothing compared to the interactivity of the Rails Console(rails c). Starting development server(rails s) is as easy as running the production server(rails s --environment production).

Instead of writing down another beginner tutorial on Rails, I’d rather direct you to some of the excellent Rails resources :

Announcing Planet IITR

Planet IIT-R is a blog collection similar to the Planet Ubuntu, Wordpress, and the likes. The basic idea is to create a single address where all blogs of IIT-R are aggregated. This way, people can easily follow happenings and blogs at IIT-Roorkee without individually following various blogs. I’ve added a few blogs to it already, including those of Divye Kapoor, Sanath Rath, Wona, Arasu and the likes.

A complete list of blogs in the planet is available at http://www.planetaki.com/iitr/subscriptions/

Update: There is also a feature in planetaki to suggest a website for the planet. Unfortunately, you need to be logged in to planetaki (ie create a planet) to suggest a site. In case you are, you can use the suggestions feature to suggest websites.

To suggest a blog to add to the list, please use the form below. You can also see the current spreadsheet here :

You can also email me for any further queries.
Further Links :

What if Linus Torvalds designed Google+

Google’s announced its next big thing, Google+ to take on Facebook left people wondering if the next version would be called Google++. Inspite of all the great work that Vic Gundotra has put into Google+, it still lacks something. The creator of linux, Linus Torvalds. Google+ is as-of-now the social network for tech-geeks who are part of a field trial experiment(monkeys!) on the site. Google+ is still halfway geek, and in my imagination it would have been the ultimate geek power tool if it had been designed by Linus. Unfortunately, he is busy developing the linux kernel (10 million lines, 2% being his), and we would have to suffice with these thoughts:

  • Open Source : Google+ would be open sourced. Anyone could run Google+ on their own servers, and use it to create their own Social Network
  • Command Line : The default Google+ client would run natively on linux/unix but would be ported later to Windows using cygwin.
  • Difficulty-of-use : Gone are the click and point days. You’d be required to have absolute mastery over at least 5 different commands before you can even post a single item to your feed.
  • Full Control : You will have full control over whatever you post. You can make 4 changes, stage them, take them back, commit 2 of them, edit a post, and recommit before pushing it to the server. However all of this will be stored.
  • Git Backend : Both the client and the server will use git as its backend to store history, revisions, links, and circles.
  • Circles : would be called trees. And you can tag your trees to take a snapshot of your friends lists at a time.
  • Branching : would allow you to create multiple versions of your profile. The default version will be called master, while you can continue your secret development in alpha, staging, beta branches. Circles will automatically be associated with branches and auto-post items.
  • Merging : will allow for collaborative posts.
  • After 12 years of development, Google+ will reach version 2.1
  • No deletions : Everything in history has an importance. You are allowed to use rebase to rewrite history. Beware: use cautiously. Incorrect usage may lead to painfull scenarios.
  • A mascot(direwolf ?) would be found for Google+ (probably after it bit Linus in an aquarium)
  • Facebook would spend $421m fighting Google+
  • The manual of Google+ would be a labryinth of switches amd command line arguments for all the features that it came with. A user would be expected to read through the entire manual, or at least the first one-third, before being able to do something of use with the service.
  • To block a user, you must enter his id in an ignore file
  • 3 years hence, the next big thing would be ghub offering a farm-like service to create, host, and customize your own google+ servers.

Note: Based on the history of linux, and the usability of git.

Announcement

The famous announcement of Linux Kernel on the comp.os.minix mailing list is well-known. Slightly re-written, this is how Linus might have announced Google+.

>From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)  
>Newsgroups: web.social.facebook  
>Subject: What would you like to see most in facebook  
>Summary: small poll for my new social network  
>Message-ID: <2011Jun28.205708.9541@klaava.Helsinki.FI>  
>Date: 28 Jun 11 20:57:08 GMT  
>Organization: Google  

>Hello everybody out there using facebook -

>I’m doing a (free) social network (just a hobby, won’t be big and professional like facebook). This has been brewing since dec, and is starting to get ready. I’d like any feedback on things people like/dislike in facebook, as my site resembles it somewhat (same layout of the news feed and comments(due to practical reasons) among other things).

>I’ve currently ported feed(1.08), comments(2.1), photos(3.14), and likes(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-)

>Linus (torvalds@kruuna.helsinki.fi)

>PS. Yes – it’s free of any facebook code, and it has pipelined js. It is NOT protable (uses google accounts), and it probably never will support anything other than Google App Engine, as that’s all I have :-(.

Tags: WeBlog iFest 2011, humour, linux, linus