<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Binary Doodles</title>
	
	<link>http://nithinbekal.com</link>
	<description>Ruby on Rails, Web 2.0, Wordpress and more...</description>
	<lastBuildDate>Tue, 31 Aug 2010 16:31:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BinaryDoodles" /><feedburner:info uri="binarydoodles" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>BinaryDoodles</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Git How-to – Installing git and pushing repo to github</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/NC8pQ8nMBpI/</link>
		<comments>http://nithinbekal.com/2010/08/31/installing-git-and-pushing-repo-to-github/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 16:31:22 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=375</guid>
		<description><![CDATA[In this post, I will describe the steps to install git on a windows machine, create a local repository, and then push that repo to your github account. This is a beginner level tutorial for those using windows, but except for the part about installation, it is common for all OSes.
Installation and set up
Download and [...]]]></description>
			<content:encoded><![CDATA[<p>In this post, I will describe the steps to install git on a windows machine, create a local repository, and then push that repo to your github account. This is a beginner level tutorial for those using windows, but except for the part about installation, it is common for all OSes.</p>
<p><b>Installation and set up</b></p>
<p>Download and install msysgit from <a href="http://code.google.com/p/msysgit">http://code.google.com/p/msysgit</a>. Msysgit comes with a GUI tool and a command line version.</p>
<p>Next you have to set up your name and email into git configuration. For this, open git bash and use the following commands:</p>
<pre>$ git config --global user.name "Nithin Bekal"
$ git config --global user.email me@myemail.com</pre>
<p><b>Creating the first repo</b></p>
<p>Now that the installation and configuration steps are done, let&#8217;s create our first repository. Create a folder called my_project and add some files to it. I created a rails project using <code>rails my_poject</code> since that automatically generates many files and folders.</p>
<p>Go to the project directory</p>
<pre>$ cd my_project</pre>
<p>Initialize a git repository for the project:</p>
<pre>$ git init</pre>
<p>Add all the files in the project to the repository:</p>
<pre>$ git add .</pre>
<p>Make the first commit.</p>
<pre>git commit -m "First commit."</pre>
<p>This commits all the changes (all the files in this case, because we have a new repo here) to the repository along with the message &#8220;First commit&#8221;.</p>
<p><b>Pushing the repo to github</b></p>
<p>The next step is to push this repository to github. First of all, you need to sign up for an account (if you don&#8217;t already have one) on <a href="http://github.com/">github</a>. Once you&#8217;ve created the account, create a new repository called my_project.</p>
<p>Before you can start pushing to github, you need to create an ssh key for your computer and copy the public key to your github account.</p>
<p>Create ssh key:</p>
<pre>$ cd ~
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa "you@yourmail.com"</pre>
<p>Now in giithub, go to <em>Account settings > Add SSH keys > Add another public key</em> and copy the contents of the id_rsa.pub file there. You will have to create an ssh key and add it to github for each computer from which you want to push repos to github.</p>
<p>To push the local repository to github:</p>
<pre>$ git remote add origin git@github.com:&lt;username&gt;/my_project.git
$git push origin master</pre>
<p>(Use your username instead of &lt;username&gt;.)</p>
<p>Now if you open the page for the repository on your browser, you can see the files of your project visible there. If you have a readme file in your project folder, the contents of that file will also be displayed. That&#8217;s it! Now you have the git repository available on github.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/NC8pQ8nMBpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/08/31/installing-git-and-pushing-repo-to-github/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/08/31/installing-git-and-pushing-repo-to-github/</feedburner:origLink></item>
		<item>
		<title>Normal service to resume shortly</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/pMSXz0O0aBY/</link>
		<comments>http://nithinbekal.com/2010/07/30/normal-service-to-resume-shortly/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 17:30:19 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=364</guid>
		<description><![CDATA[It&#8217;s been a while since I last wrote a post here. Having moved to Pune late May, I&#8217;ve been far too busy settling down in the new place to get an time for the blog. I&#8217;m hoping to revive this blog in the coming days. 
Despite the fact that I no longer work on ruby [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I last wrote a post here. Having moved to Pune late May, I&#8217;ve been far too busy settling down in the new place to get an time for the blog. I&#8217;m hoping to revive this blog in the coming days. </p>
<p>Despite the fact that I no longer work on ruby or rails at work, the posts on this blog will remain mostly unchanged. Ruby, rails and web technologies will continue to be the main topics here. Hopefully, the fact that I no longer work on rails at work will spur me towards learning other cool ruby libraries and frameworks like shoes, camping and sinatra.</p>
<p>What kind of posts would you like to see in the future in this blog? Since I won&#8217;t get ideas for posts at work anymore, I would love some suggestions for posts about ruby/rails how-tos.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/pMSXz0O0aBY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/07/30/normal-service-to-resume-shortly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/07/30/normal-service-to-resume-shortly/</feedburner:origLink></item>
		<item>
		<title>Rails: Avoid multiple level nested resource routes</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/P_mXU3bKB6I/</link>
		<comments>http://nithinbekal.com/2010/05/14/rails-avoid-multiple-level-nested-resource-routes/#comments</comments>
		<pubDate>Fri, 14 May 2010 15:47:19 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=335</guid>
		<description><![CDATA[While generating RESTful routes in rails, it is easy to get carried away and generate many levels of nested resources for every level of has_many associations. For instance, I recently wrote something like this in my routes file:
  # in config/routes.rb
  map.resources :first_resources do &#124;first&#124;
    first.resources :second_resources do &#124;second&#124;
  [...]]]></description>
			<content:encoded><![CDATA[<p>While generating RESTful routes in rails, it is easy to get carried away and generate many levels of nested resources for every level of has_many associations. For instance, I recently wrote something like this in my routes file:</p>
<pre>  # in config/routes.rb
  map.resources :first_resources do |first|
    first.resources :second_resources do |second|
      second.resources :third_resources
    end
  end</pre>
<p>Here FirstResouce has_many SecondResources and SecondResource has_many ThirdResources. Now imagine how you would get the path to edit the third level resource. You&#8217;d have to write something like this:</p>
<pre>edit_first_resource_second_resource_third_resource_path(@first_resource, \
    @second_resource, @third_resource)</pre>
<p>Yes, that&#8217;s how bad it would look when the routes are written for the innermost resource in the routes.</p>
<p>When I found myself doing something similar a few days ago, I decided to look for a better way to do this, and it amazes me how I missed this simple (and universally used) approach to writing nested resource routes.</p>
<p>Let&#8217;s take the example of a school where each course would have many batches, and each batch would have many exams. </p>
<pre># app/models/course.rb
class Course < ActiveRecord::Base
  has_many :batches
end

# app/models/batch.rb
class Batch < ActiveRecord::Base
  belongs_to :course
  has_many :exams
end

# exam.rb
class Exam < ActiveRecord::Base
  belongs_to :batch
end</pre>
<p>Writing the routes with two levels of nesting would give me something like this:</p>
<pre>  # config/routes.rb
  map.resources :courses do |course|
    course.resources :batches do |batch|
      batch.resources :exams
    end
  end</pre>
<p>The route to edit an exam object @exam (belonging to batch @batch which in turn belongs to course @course) would look like this:</p>
<pre>edit_course_batch_exam_path(@course, @batch, @exam)</pre>
<p>This is way too long and rather than make it easy to understand the path, it is going to make it even more confusing when somebody tries to understand the path. The url is going to be something like <code>http://domain.com/courses/1/batches/1/exams/1/edit</code>.</p>
<p>The best solution in this case is to nest the resources to just one level so that batches a nested within courses (e.g. http://domain.com/courses/1/batches) and exams are nested only within batches (e.g. http://domain.com/batches/1/exams). Using a rails shortcut to define nested routes, we could write the routes like this:</p>
<pre>  # in config/routes.rb
  map.resources :courses, :has_many => :batches
  map.resources :batches, :has_many => :exams</pre>
<p>Now if you wanted to edit an exam resource, you could just write <code>edit_batch_exam(@batch, @exam)</code> without having to worry about specifying the course object in the route. If you needed the course object within the exams controller, all you need to do is write a before filter that loads the batch and course as shown here:</p>
<pre># app/controllers/exams_controller.rb
class ExamsController < ApplicationController
  before_filter :load_batch_and_course

  # RESTful actions

  private
  def load_batch_and_course
    @batch = Batch.find(params[:batch_id])
    @course = @batch.course
  end
end</pre>
<p>Since we can get the course_id from the batch, there is no need for us to have the course_id in the route. This makes the routes much easier to understand.</p>
<p>Have you come across any situation where nesting more than one level is absolutely necessary? (I couldn't imagine any such situation off the top of my head.) How many levels of nested resources are okay with you? Do leave a comment and tell me what you think.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/P_mXU3bKB6I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/05/14/rails-avoid-multiple-level-nested-resource-routes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/05/14/rails-avoid-multiple-level-nested-resource-routes/</feedburner:origLink></item>
		<item>
		<title>How-to: Setting up Ubuntu 9.10 on Virtualbox</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/sJGcOs5Q8tQ/</link>
		<comments>http://nithinbekal.com/2010/04/30/how-to-setting-up-ubuntu-9-10-on-virtualbox/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 14:20:04 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Vitualbox]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=326</guid>
		<description><![CDATA[I&#8217;ve just been setting up Ubuntu as a virtual OS in my Windows machine using Sun Virtualbox. I did run into a couple of problems initially, so I&#8217;m listing out the steps involved in acse somebody else needs some help with the same.
Downlaod Virtualbox from here and install it. You will obviously need Ubuntu as [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just been setting up Ubuntu as a virtual OS in my Windows machine using Sun Virtualbox. I did run into a couple of problems initially, so I&#8217;m listing out the steps involved in acse somebody else needs some help with the same.</p>
<p>Downlaod Virtualbox from <a href="http://www.virtualbox.org/wiki/Downloads">here</a> and install it. You will obviously need Ubuntu as well, and you can get the Ubuntu ISO from <a href="http://www.ubuntu.com/getubuntu/download">here</a>.</p>
<p>Open Virtualbox and click on new to set up a new virtual machine. On clicking next, you will be prompted for the following details: operating system &#8212; Linux, version &#8212; Ubuntu, and name for the virtual machine, e.g. &#8220;ubuntu&#8221;.</p>
<p>In the next setting, set the base memory size. The recommended value will already be selected, but you can increase it a little if you have a lot of memory. (I set 512MB on my 2G machine.)</p>
<p>Now you&#8217;ll be prompted for a virtual hard disk, and since you haven&#8217;t already created one, select the option to created a new virtual hard disk. Set the storage type to &#8220;dynamically expanding&#8221;. Set the location, and the size to something like 8GB and click finish.</p>
<p>Now that you&#8217;ve created the VM and the virtual hard disk, you need to install Ubuntu. For this right click on the VM in the sidebar and go to settings. Here, in the storage tab, click on the CD/DVD icon and set the ubuntu installation CD ISO as the device. (Use your CD/DVD drive as the device if you&#8217;re installing from a CD and not from ISO.)</p>
<p>On starting the virtual machine, the CD gets booetd, and you can now install Ubuntu into the VM as you would do in case of a normal Ubuntu installation. Once installed, you can use this VM to boot into Ubuntu.</p>
<p>Since I work mostly on ruby,  needed to install a ruby and rails environment on the virtual machine. I&#8217;m not going to post all the steps here, but there&#8217;s an awesome <a href="http://www.hackido.com/2009/04/install-ruby-rails-on-ubuntu-904-jaunty.html">post on setting up a ruby and rails environment on Ubuntu on hackido.com</a>.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/sJGcOs5Q8tQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/04/30/how-to-setting-up-ubuntu-9-10-on-virtualbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/04/30/how-to-setting-up-ubuntu-9-10-on-virtualbox/</feedburner:origLink></item>
		<item>
		<title>Moving SVN repository to another server</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/5cMkJ45Ksoc/</link>
		<comments>http://nithinbekal.com/2010/04/14/moving-svn-repository-to-another-server/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 15:38:32 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=313</guid>
		<description><![CDATA[I had to move an SVN repository for one of my projects from one hosting account to another today. I don&#8217;t know much about handling SVN and it took me a bit of searching before I was able to do it, so i&#8217;ve written the steps here for anyone else who might be in the [...]]]></description>
			<content:encoded><![CDATA[<p>I had to move an SVN repository for one of my projects from one hosting account to another today. I don&#8217;t know much about handling SVN and it took me a bit of searching before I was able to do it, so i&#8217;ve written the steps here for anyone else who might be in the same situation. You need to have SSH access on both servers to do this.</p>
<p>Go to <code>~/svn/</code> or wherever you have your SVN repos and dump the repo using the <code>svnadmin dump</code> command:</p>
<pre>$ svnadmin dump myproject > myproject.dump
  Dumping revision 0
  Dumping revision 1
  ...
  Dumping revision 46</pre>
<p>You now have the dump of the repo, which you can upload to the other server where you want to import the repository. Now, in the svn folder of that serer, do this:</p>
<pre>$ mkdir myproject
$ svnadmin create myproject
$ svnadmin load myproject < myproject.dump</pre>
<p>Importing the repository like this keeps all the revisions intact and you can continue using the repository at the new server.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/5cMkJ45Ksoc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/04/14/moving-svn-repository-to-another-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/04/14/moving-svn-repository-to-another-server/</feedburner:origLink></item>
		<item>
		<title>Useful ruby links and resources for newbies</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/hKbwZbmv5SY/</link>
		<comments>http://nithinbekal.com/2010/04/02/useful-ruby-links-and-resources-for-newbies/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 12:40:55 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=293</guid>
		<description><![CDATA[Earlier this week at work I made a presentation for the non-rubyists about how to get started with ruby. There was plenty of discussion about the basics of ruby and how a newbie can get started. I had made a list of useful books and websites that people could use to get started with Ruby [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this week at work I made a presentation for the non-rubyists about how to get started with ruby. There was plenty of discussion about the basics of ruby and how a newbie can get started. I had made a list of useful books and websites that people could use to get started with Ruby and I decided to post it here.</p>
<p><strong>Websites</strong></p>
<ul>
<li><a href="http://ruby-lang.org/">Ruby Language website</a> &#8211; The ruby language website</li>
<li><a href="http://tryruby.org/">Ruby in 20 minutes</a> &#8211; Allows you to try ruby from within the browser.</li>
<li><a href="http://ruby-doc.org/">Ruby documentation</a> &#8211; Ruby language documentation.</li>
<li><a href="http://rubylearning.org/">RubyLearning.com</a> &#8211; A great place for learning ruby.</li>
</ul>
<p><strong>Books</strong></p>
<ul>
<li><em>Learn to Program</em> (Chris Pine) &#8211; <a href="http://pine.fm/LearnToProgram/">Available online</a>.</li>
<li><em>Why&#8217;s Poignant Guide to Ruby</em> (Why the Lucky Stiff) &#8211; <a href="http://mislav.uniqpath.com/poignant-guide/">Available online</a>.</li>
<li><em>Programming Ruby</em> (Dave Thomas) <a href="http://www.ruby-doc.org/docs/ruby-doc-bundle/ProgrammingRuby/index.html">Available online</a>.</li>
<li><a href="http://en.wikibooks.org/wiki/Ruby_Programming">Wikibooks: <em>Ruby Programming</em></a></li>
<li><em>Ruby Study Notes</em> (Satish Talim) <a href="http://rubylearning.com/satishtalim/tutorial.html">Available online</a>.</li>
</ul>
<p>What books or websites would you recommend for newbies? I&#8217;m sure I&#8217;ve missed lots of great resources there. Please do leave a comments if you have websites or books that are a must read for newbies. I&#8217;ll keep updating the list.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/hKbwZbmv5SY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/04/02/useful-ruby-links-and-resources-for-newbies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/04/02/useful-ruby-links-and-resources-for-newbies/</feedburner:origLink></item>
		<item>
		<title>RubyConf India 2010</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/aTVCyyBd6Pc/</link>
		<comments>http://nithinbekal.com/2010/03/27/rubyconf-india-2010-2/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 15:24:51 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RubyConf India]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=262</guid>
		<description><![CDATA[Those of you following this blog or my twitter stream probably know already that I spent last weekend attending RubyConf India in Bangalore. The conference was a huge success and I&#8217;m sure it helped inspire a lot of newbies like me.
Day 1
Along with the rest of the team from Foradian, I took a bus to [...]]]></description>
			<content:encoded><![CDATA[<p>Those of you following this blog or <a href="http://twitter.com/nithinbekal">my twitter stream</a> probably know already that I spent last weekend attending RubyConf India in Bangalore. The conference was a huge success and I&#8217;m sure it helped inspire a lot of newbies like me.</p>
<p><strong>Day 1</strong></p>
<p>Along with the rest of the team from Foradian, I took a bus to Bangalore the night before the conference and promptly got late and missed the kick off to the conference by Roy Singham.</p>
<p><strong>Ola Bini</strong> presented a keynote on the present and future of programming languages. Despite the fact that we had to struggle to keep up with the references to languages we hadn&#8217;t heard of, Ola kept the talk very interesting.</p>
<div class="wp-caption alignright" style="width: 298px"><img class="  " title="with-obie-fernandez-at-rubyconf-india-2010" src="http://lh4.ggpht.com/_SPbUIiu4sfA/S6dVSAYYMoI/AAAAAAAACaE/hANZi3V5AoA/s800/Image%28196%29.jpg" alt="Aslam and I with Obie Fernandez at RubyConf India 2010" width="288" height="216" /><p class="wp-caption-text">Me and Aslam with Obie Fernandez at RubyConf India 2010</p></div>
<p>Ola&#8217;s talk was followed by a session by <strong>Obie Fernandez</strong> titled <em>&#8220;Blood, Sweat and Rails 2010&#8243;</em>. Obie was funny and controversial, and even got rebuked for &#8220;abusive language&#8221;. (Aw, c&#8217;mon organizers&#8230; you can&#8217;t invite someone to speak and then shout at them.) He spoke about agile and Hashrocket and shared a lot of anecdotes about his work in Hashrocket. There were plenty of funny pictures from Hashrocket offices and one or two from the movie 3 Idiots that got the crowd roaring with laughter.</p>
<p>In the afternoon, <strong>Matz</strong> joined in through video conference and spoke about Ruby. To hear the story of Ruby from the guy who created it was&#8230; well&#8230; awesome. He spoke about Ruby&#8217;s history and also the future of the language. Matz even mentioned that work on Ruby 2 will start in August after version 1.9.2 is completed.</p>
<p>I attended a couple of other talks on the day — <em>Ruby on Rails versus Django &#8211; A newbie Web Developer&#8217;s Perspective</em> by Shreyank Gupta and <em>Mortal Kombat: Developer vs. Designer</em> by Kapil Mohan and Arun J. Having two tracks meant that I had to sacrifice some very interesting talks in favor of others. Hopefully the videos will be uploaded soon and I&#8217;ll be able to catch the other talks.</p>
<p><strong>Day 2</strong></p>
<div id="attachment_275" class="wp-caption alignright" style="width: 298px"><a href="http://nithinbekal.com/blog/wp-content/uploads/2010/03/210320101263-copy.jpg"><img class="size-full wp-image-275  " title="with-nick-sieger-at-rubyconf-india-2010" src="http://nithinbekal.com/blog/wp-content/uploads/2010/03/210320101263-copy.jpg" alt="" width="288" height="216" /></a><p class="wp-caption-text">With Nick Sieger at RubyConf India 2010.</p></div>
<p>The first speaker on the second day was <strong>Nick Sieger</strong> from Engine Yard who spoke about the features of Rails 3. It was a great talk, and I am feeling more and more guilty about not having tried Rails 3 yet.</p>
<p><strong>Pradeep Elankumaran</strong> then spoke about entrepreneurship in India and it was one of the most interactive sessions in RubyConf. He gave quite a few pointers on how to go about building web applications very quickly and about the tools they use at Intridea. I probably scribbled more on the notepad in this session than in all the other sessions combined.</p>
<p>In the afternoon, we attended a talk by <strong>Sarah Taraporewalla</strong> on the drawback of current view templating systems followed by another talk by Pradeep Elankumaran on Message Queuing in Ruby.</p>
<p><strong>Brian Guthrie</strong>&#8217;s talk, <em>&#8220;Advanced Ruby Idioms So Clean You Can Eat Off Of Them&#8221;</em>, although a bit too advanced for newbies like us, was still very interesting. Brian kept the talk very lively with a lot of jokes — many of which the audience sadly missed. The sequence of slides at the end of the presentation with alternate slides in red and green backgrounds with &#8220;TEST&#8221; written in bold letters made a huge impact on the team on the importance of testing. If only I&#8217;d know this method would work so efficiently, I&#8217;d have done that long ago. :D</p>
<p>After Brian&#8217;s talk, we went to see Arvind&#8217;s presentation on Project Fedena which started a little late and therefore we had to run over to the other hall to catch Roy Singham&#8217;s closing note.</p>
<p><strong>Ruby v/s Rails</strong></p>
<p>Roy spoke about agile, software development, the ruby community and entrepreneurship. Towards the end of the talk, there was a disagreement between him and Obie Fernandez over the attitudes in the rails community. I have to agree with Obie that you cannot blame the entire Rails community for incidents like <a href="http://gadgetopia.com/post/6794">that presentation at the Golden Gate Ruby conference</a>. In my opinion, Roy&#8217;s ranting against the rails community is only going to leave the community more polarized than before.</p>
<p><strong>Women&#8217;s attendance at RubyConf</strong></p>
<p>One thing that shocked me was when Roy Singham mentioned that the attendance of women at this RubyConf — 28 — was the highest ever at any RubyConf. I always knew this wasn&#8217;t a particularly women-friendly environment, but I didn&#8217;t know things were so bad that a 7% attendance would break all records for Ruby conferences.</p>
<p><strong>Conclusion</strong></p>
<p>Overall, it was a fantastic experience. To get an opportunity to actually speak to guys like Obie Fernandez, Satish Talim and Ola Bini is something I wouldn&#8217;t have believed possible a few months ago. I&#8217;m still mad at the organizers for interrupting Obie&#8217;s talk, but at least we have to be thankful that we got to hear all these people speak.</p>
<p>Did you attend RubyConf? If so, what did you think of the event? What&#8217;s your opinion on the whole ruby v/s rails controversy? What about the censoring of respected speakers? What did you like best about the event? Please do leave a comment.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/aTVCyyBd6Pc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/03/27/rubyconf-india-2010-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/03/27/rubyconf-india-2010-2/</feedburner:origLink></item>
		<item>
		<title>Bukluv enters beta</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/DafNY0aMh8c/</link>
		<comments>http://nithinbekal.com/2010/03/19/bukluv-enters-beta/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 15:23:54 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Bukluv]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=251</guid>
		<description><![CDATA[Bukluv is the idea for an application that I, along with Mohammed Aslam, came up with a few months ago. It is a social networking site for book lovers and allows registered users to post short reviews that are limited to 250 characters.
We&#8217;ve been playing around with a very basic version of the app in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bukluv.com/">Bukluv</a> is the idea for an application that I, along with <a href="http://aslam-revised.blogspot.com/">Mohammed Aslam</a>, came up with a few months ago. It is a social networking site for book lovers and allows registered users to post short reviews that are limited to 250 characters.</p>
<p>We&#8217;ve been playing around with a very basic version of the app in development for some time now, but we decided to code it again from scratch sometime in February, and try to release it by the first of March. Things got delayed a little bit and we finally deployed it last weekend.</p>
<p>As of now, the application is very basic, and doesn&#8217;t even let users add books that aren&#8217;t on our database. We even left out commenting on others&#8217; reviews until we could sort out the user interface, so the &#8220;social&#8221; part of this social networking site is still missing. However, we&#8217;re planning to roll out these features over the next few weeks, and we&#8217;ll start working on it again once we&#8217;ve returned from Bangalore after RubyConf ndia 2010.</p>
<p>Working on our own application has been great fun so far. But working on your own projects during spare time can be a difficult thing when you have a day job. It&#8217;s easy to put too much energy into your own project and then your projects at work will suffer. This is why we&#8217;ve been adding features very slowly and not work too many hours on this, so we don&#8217;t lose focus at the office.</p>
<p>Please do take a look at <a href="http://bukluv.com/">bukluv</a> if you&#8217;re a book lover. We&#8217;d love the feedback. Let us know what you think we&#8217;re doing wrong with the application.</p>
<p>I&#8217;m off to catch a bus to Bangalore now. Feeling so excited about my first RubyConf. There are some great presentations scheduled, and of course, there&#8217;s the one about <a href="http://www.fedena.com/">Project Fedena</a>. Please do leave a comment here if you took a look at bukluv, and I&#8217;ll reply when I get back from Bangalore.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/DafNY0aMh8c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/03/19/bukluv-enters-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/03/19/bukluv-enters-beta/</feedburner:origLink></item>
		<item>
		<title>Rails: SEO friendly URLs using to_param</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/KghEigzad8Q/</link>
		<comments>http://nithinbekal.com/2010/03/01/rails-seo-friendly-urls-using-to_param/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 18:28:28 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=233</guid>
		<description><![CDATA[I&#8217;ve wondered about how rails websites like Railscasts created SEO friendly URLs. I read this post by Obie Fernandez which explains how to do this.
I&#8217;ve never had to use SEO friendly URLs in my projects so far and I assumed that generating these URLs is very complicated and some plugin might be at work. And [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wondered about how rails websites like <a href="http://railscasts.com/">Railscasts</a> created SEO friendly URLs. I read <a href="http://www.jroller.com/obie/entry/seo_optimization_of_urls_in">this post by Obie Fernandez</a> which explains how to do this.</p>
<p>I&#8217;ve never had to use SEO friendly URLs in my projects so far and I assumed that generating these URLs is very complicated and some plugin might be at work. And like always, Rails proved me wrong and I&#8217;m amazed at how simple this is.</p>
<p>Suppose you had a RESTful resource called posts that had title and content fields. If you wanted the post page URLs to contain text from the title, you just have to add this <code>to_param</code> method to the Post model:</p>
<pre>
class Post
  # other stuff here

  def to_param
    "#{id}-#{title.gsub(/[^a-z0-9]+/i, '-')}"
  end
end
</pre>
<p>Now if you had a post whose title was &#8220;SEO friendly URLs&#8221;, and in your view you had <code>&lt;%= link_to @post.title, @post %&gt;</code> where @post is an instance of the Post model representing the &#8220;SEO friendly URLs&#8221; post. This will generate the following path: <code>/posts/1-SEO-friendly-URLs</code>.</p>
<p>As explained in Obie&#8217;s post, this will only work if you pass an instance of Post as the id parameter and the actual id itself. You don&#8217;t have to change anything in the controller to make this work.</p>
<p>This is just another one of those little tricks I discovered in rails that originally looked difficult but is actually incredibly easy to accomplish.</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/KghEigzad8Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/03/01/rails-seo-friendly-urls-using-to_param/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/03/01/rails-seo-friendly-urls-using-to_param/</feedburner:origLink></item>
		<item>
		<title>Why I prefer Twitter to Buzz</title>
		<link>http://feedproxy.google.com/~r/BinaryDoodles/~3/4bqeEXkii3k/</link>
		<comments>http://nithinbekal.com/2010/02/23/why-i-prefer-twitter-to-buzz/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 16:56:53 +0000</pubDate>
		<dc:creator>Nithin Bekal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Buzz]]></category>
		<category><![CDATA[Microblogging]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://nithinbekal.com/?p=228</guid>
		<description><![CDATA[Google has never been much of a heavyweight in the social networking market. Their latest attempt to dethrone Twitter and Facebook is through Buzz, which turns Gmail into a social networking site. My initial impression about Buzz was positive, but having looked at it for the past week, I have had to change my opinion. Here's a list of reasons why I don''t like Buzz and would much rather prefer to continue using Twitter.]]></description>
			<content:encoded><![CDATA[<p>Google has never been much of a heavyweight in the social networking market. Orkut is still endemic to India and Brazil and can hardly be considered competition to Twitter and Facebook. Jaiku, a micro-blogging service almost exactly like Twitter, has been abandoned by Google. Their latest attempt to dethrone Twitter and Facebook is through Buzz, which turns Gmail into a social networking site.</p>
<p>My initial impression about Buzz was positive, but having looked at it for the past week, I have had to change my opinion. Here&#8217;s a list of reasons why I don&#8221;t like Buzz and would much rather prefer to continue using Twitter.</p>
<p><b>Comments on a Buzz</b></p>
<p>This is the one feature that really puts me off. Not that I am against users being able to react to their friend&#8217;s Buzz, but every time someone posts a comment on a buzz, it appears on my page even if the commenter isn&#8217;t someone I follow. Twitter handles this much more elegantly by showing only the replies by people who I am following. How could the Buzz team have missed something so obvious?</p>
<p><b>Can&#8217;t tweet through Buzz</b></p>
<p>I might have considered Buzz as an option if it automatically posted my buzzes to Twitter. But this hasn&#8217;t happened, and only tweets from Twitter are imported into Buzz and even that seems buggy. I saw a tweet posted weeks ago by a friend imported into Buzz.</p>
<p><b>No Facebook integration</b></p>
<p>To be honest, I wouldn&#8217;t really use this feature, but a lot of other people would and giving us a choice would have been a nice thing to do rather than ignore Facebook completely.</p>
<p><b>Not everybody deserves a microblogging audience</b></p>
<p>I&#8217;m sorry I sound so arrogant here but that&#8217;s my honest opinion. With Buzz, Google has made microblogging easily accessible to people who otherwise wouldn&#8217;t bother with microblogging and therefore never joined twitter. Now all those hundreds of people have a microblogging service within their mailbox and we&#8217;re flooded with absolutely boring, pointless and quite often incomprehensible statuses. There are plenty of people like that in Twitter, but at least Twitter &#8212; unlike Buzz &#8212; didn&#8217;t assume that I would want to follow them.</p>
<p><b>Assumptions</b></p>
<p>As someone who develops web applications, I know that assumptions are a good thing. Sometimes you have to make choices for your users so their work is reduced. But you must also know where to draw the line. As a user I don&#8217;t at all appreciate that Google decided who I should follow and who should follow me and what I should share with my followers. I believe Google has changed this since then, but it did damage the first impression.</p>
<p><b>Too many features</b></p>
<p>One thing I felt about Buzz was that it was trying to beat Twitter by giving users more features. There&#8217;s comment, like, email and reply by chat features, along with others such as report abuse and link to post hidden nearby. Twitter neatly handles all these using two simple options &#8211; reply and retweet.</p>
<p>Buzz is going to be one Google product that will be hard to sell to me. Apart from the absence of spam bots, there isn&#8217;t much I like about it and I&#8217;m convinced that I&#8217;m better off using Twitter. This post is mostly a Twitter user&#8217;s perspective of Buzz, but I suppose it doesn&#8217;t have much to offer to the Facebook crowd as well. I&#8217;m not actually going to disable Buzz yet, and am watching how it&#8217;s going to be improved. But for the time being, my Buzz followers will only see little activity on my account apart from my tweets automatically fetched into Buzz.</p>
<p>What is your take on Buzz? What social networking sites do you use and how does Buzz compare to those?</p>
<img src="http://feeds.feedburner.com/~r/BinaryDoodles/~4/4bqeEXkii3k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nithinbekal.com/2010/02/23/why-i-prefer-twitter-to-buzz/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://nithinbekal.com/2010/02/23/why-i-prefer-twitter-to-buzz/</feedburner:origLink></item>
	</channel>
</rss>
