bookmark_borderReporting the first full day Ruby Event in India: The Ruby FunDay

The First Ruby FunDay was held at Impetus Technologies, Noida on 22nd November 2008.

There was a lot of Ruby and a lot of fun.
It was an exciting event with a good number of developers in attendance.

People from various companies already working on Ruby formed the largest part of the attendees. Then there were a few Java programmers, who had come to checkout ruby or so it seemed to me. Also there was a group of students from PantNagar College of Technology. I really appreciate their coming all the way from PantNagar for the Ruby FunDay.

The event started off with Sur doing a presentation on Ruby, though he intended to cover metaprogramming, but a battery of questions from the audience didn’t allow him to go beyond the basics. Particularly developers from a java background were having a hard time embracing Ruby’s open classes and duck typing. Everybody enjoyed Sur’s session a lot as he let code answer audience questions.

Then we had a presentation from Aditya Babbar of Impetus Technologies. He talked about the problems faced in deploying and managing a Rails app. He didn’t speak about only the problem, but demoed a solution which Impetus has worked on to alleviate that pain.

Sid showed us how he used to make a Rails app multilingual using Gibberish before Rails added I18n support. Then he showed how life had become easier with Rails 2.2’s in-built internationalization support. His slides are online at slideshare.

After Sid’s session we were served a splendid lunch made at the Impetus Cafeteria.

Right after lunch, was the one of the most awaited sessions of the day. Gaurav built an AIR client for his fictitious app called Blabber! It is just a co-incidence that the application name sounds like Yammer. You can see the details of his presentation on his blog here.

Then Rishav gave a presentation on Sphinx, using Thinking_Sphinx plugin. He showed all the Full text search capabilities of Sphinx, and also proved why thinking_sphix is a better plugin than ultra_sphinx for beginners atleast. His presentation is online at slideshare

Akhil’s session was the last technical session of the day. He carried on Rishav’s introduction to Sphinx to show how Faceted browsing works with Sphinx. You can find his slides also on slideshare

And then we had the musical extravaganza. Sur and Hemant with help from everybody else present at the event, put up a great show with a guitar and their melodious voices.

A lot of presenters were presenting for the first time, but did a really great job. To say the least, we can expect the event to improve as we organize subsequent editions. It feels really great to be involved with starting Ruby FunDays in India.

To read a more detailed review, go to Ritu’s blog.

bookmark_borderGetting ActiveScaffold to work with Rails 2.2 edge

Due to the way template handling works in Rails 2.2, activeScaffold does not work on edge rails anymore.
Thanks to Dr.Gaffo there is fix for the problem in his fork of ActiveScaffold. Get the edge branch of his fork at http://github.com/gaffo/active_scaffold/tree/edge which is compatible with edge Rails.
Even after this you might face some problems like the path to Inflector. Just move the reference to ActiveSupport::Inflector and you should be good.

There is one issue that I noticed, date time field handling by ActiveScaffold is broken, thanks to refactoring in Rails core for handling these. I will post a fix for this as soon as possible and update this post too.

bookmark_borderRuby Fun Day: The first full day Ruby and Ruby on Rails event in India

Here’s announcing the first Ruby and Rails Full Day event in India. It has been in the making for months if not years, and now finally it is going to happen on 22nd of November 2008.
We invite all Rubyists and Rails Lovers in India to participate and give us the enthusiasm to organize Fun-Days regularly.

Call it the Ruby-barcamp if you may. Everybody is welcome to speak, but send us a summary of what you would speak about.
This will be an event for the Geeks by the geeks and so we want to ensure hardcore technical sessions.
The only criteria for this one is “more code, less talk”. And of course it has to be related to Ruby or Ruby on Rails.

For event details and participation confirmation: visit http://rubyonrails.in/events/3

Have a day full of Fun and Ruby.
Special Thanks to Impetus Technologies in Noida for providing the venue.

bookmark_borderRide the Rails: Still skeptical?

Ok, so we had been shouting ourselves hoarse, claiming that Rails is all about developer productivity and joy. So is that all about it?, huh!, was the normal reaction. But isn’t that a big enough reason. Not for many people though.

Yes, we accept that there are some pain points, like hosting Rails applications at shared hosts. No we don’t need those in production, but don’t you wish it was easier to deploy a rails app for a quick review with a client (a client who can’t run it on his own machine). Yes php scores there, just throw the code on the server and you are done. Why do I still run this blog on wordpress and not typo or mephisto? The big reason is that it’s easy to let just apache handle everything.

But things might change soon with the launch of passenger aka modrails.

And the other classic allegation against Rails has been performance. Remember the discussion between JDD and DHH about CPU cycles vs. developer cycles. We are definitely headed in the direction of lesser CPU cycles for our Rails app. Rails2 made some advances towards that and with Ruby1.9 and YARV and Rubinium, we have high expectations. Also you have heard about Ruby Enterprise Edition , haven’t you?

So things might change, when people try to figure out the fastest web language or framwework , the next time around.

I and those around me here, are generally biased towards rails. Ruby makes us happy. For us the pleasure points in Rails were always far more than the pain points. The basic Rails principles of DRY and Convention Over Configuration clicked with us. Ruby’s and Rail’s simplicity and beauty clicked with us. We did not need hosting on shared hosts. We could work with Rails caching to improve performance. No wonder we were one of the early adopters of Rails in India. But today, I would like to thank the critics whose untiring rants have moved Rails in the direction of being much more than what is was a couple of years ago.

Some of those changes have been in rails, but more have been around it. If you would have noticed, most of these development are not in rails as such, but in the ruby ecosystem.

Rails provides developer productivity and joy; ease of deployment; and ever-improving performance. And no, now you don’t need to go back to Java. We knew it, I am just repeating it for you.

Extrapolate this one year old graph for yourself.

So what is your reason for not having rail-ed yet?

Update: Charles Nutter has a post on upcoming Ruby implementations here

bookmark_borderget started on Ruby on Rails in hours

build you own ruby on rails application

Build you own Ruby on Rails web application is a book specially written for people wanting to start exploring rails. It is being pitched as the “ultimate beginners guide to Rails” by sitepoint.
So if you have been appreciating Rails from outside, get hold of this book and jump right it. Start experiencing the joy of Ruby on Rails programming in hours, if not minutes.

This book is also an exteremely useful resource for companies who want to train developers on Rails.

Thanks Jamis, for the review which made me look at this book. Now that a new rails book is coming out almost every fortnight, it’s getting difficuilt to keep track.
Also there is this gem hidden in Jamis’ review : never use a plugin you would not be able to write yourself. We have learnt it the hard way and I am sure so have many other Rails developers.

bookmark_borderRuby on Rails in India: It’s getting hotter

Believe me! The scene is much hotter than what I had anticipated a few months back.

Good to see so many companies and developers jumping ( or wanting to jump) onto Rails/Ruby from other frameworks and languages.
This means increased competition for us. But it could also be consolidation time for the small agile Rails teams in this area to join hands to increase their offering.

Talking about demand; yesterday, I received a job offer from a “Big Indian Outsourcing company”.
The lady who called me read this blog, but probably didn’t read “technopreneur” written on the top.
So when I told her that I was running a company myself, there was dead silence for a couple of seconds.
Then she asked me, if I could give references of any Rails programmers.

I told her that If I came across good people, I’ll hire them and I’ll pass on the others to her.
Fair enough. Right!

bookmark_borderalready initialized constant in fixtures

Following the dynamic fixture example from most of the rail’s books and tutorials available out there… you would be tempted to add something like this to the top of your fixture. ( this example is particularly relevant to the users fixture for use with the LoginEngine)

[source:ruby]<% SALT = "nacl" %> [/source]and then you would use this constant in your fixture somewhere… like maybe

   salt: <%= SALT %>   salted_password: <%= LoginEngine::AuthenticatedUser.salted_password     (SALT, LoginEngine::AuthenticatedUser.hashed('secret'))%> 

This is good for a single use of this fixture. But if more than one unit tests or functional tests load this fixture, you will start getting a warning “already initialize constant SALT” for all but the first use of the fixture.
Though it is just a warning, I did not find a mention of this in any of the books/tutorials.

Just a small check for an already defined constant will fix this warning.

 <% SALT = "nacl" unless self.class.const_defined?("SALT") %> 

bookmark_borderassert_tag for a hyperlink in a functional test’s response

I spent some time yesterday trying this out.
I am writing it here to save your time.

Here is the functional test’s code to check for a hyperlink with text “Back to Index” which links to the index action of the controller being tested.


link = find_tag :tag => "a", :content =>"Back to Inbox"
assert_equal @controller.url_for(:action => 'index', :only_path => true), link.attributes["href"]

It could have been done in a single assert_tag … but the statement becomes too long.