<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-26282638</id><updated>2011-07-30T13:33:54.960-05:00</updated><category term='Ruby on Rails'/><category term='Sociology'/><category term='philosophy'/><category term='Git'/><category term='EC2'/><category term='Cloud Computing'/><category term='Anthropology'/><category term='ThoughtWorks University'/><category term='AWS'/><title type='text'>Apurv Kumaria's Haven</title><subtitle type='html'>A Road To Reality or A Road to Illusion....
Choice is Yours</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-26282638.post-3179584374182646887</id><published>2010-10-18T22:40:00.004-05:00</published><updated>2010-10-29T21:23:50.921-05:00</updated><title type='text'>Godel Escher Bach: Craziness for life?</title><content type='html'>&lt;div class="separator" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"&gt;&lt;a href="http://www.amazon.com/G%C3%B6del-Escher-Bach-Eternal-Golden/dp/0465026567/ref=pd_sim_b_2"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_8CRLN8Nizgk/TL0Q2ZqniKI/AAAAAAAAB0U/QD3-Br4RSHM/s200/geb.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Just finished reading Godel Escher Bach by Douglas Hofstadter.&amp;nbsp;It is a classic book which won Pulitzer Award.&lt;br /&gt;&lt;br /&gt;The essence of the book is how meaning can arise from meaningless symbols that creates a system with meaning. Not only is this explored in Eastern Philosophy but has been a constant topic of meditation and discussion.&lt;br /&gt;&lt;br /&gt;Hofstadter uses the following tools for thinking:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Isomorphism - Brain and Universe!&lt;/li&gt;&lt;li&gt;Recursion - Factorial of a number.&lt;/li&gt;&lt;li&gt;Paradox - All Indian are liars! (I am an Indian)&lt;/li&gt;&lt;li&gt;Infinity - Cantor's different type of infinities and continuum hypothesis.&lt;/li&gt;&lt;li&gt;Formal System - Principia Mathematica&lt;/li&gt;&lt;/ul&gt;I am not going to give anymore details about the book but let you explore it. &lt;br /&gt;Below are the links for more resources that will help understanding GEB and will take you to a journey that will make you a little more crazy that what you are.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ocw.mit.edu/high-school/courses/godel-escher-bach/index.htm"&gt;MIT Open Courseware&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=pVadl4ocX0M&amp;amp;feature=fvw"&gt;Bach Fugue&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mcescher.com/Gallery/gallery-recogn.htm"&gt;MC Escher Paintings &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Further reading: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.amazon.com/gp/product/0465030912/ref=s9_simh_gw_p14_d0_i1?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-2&amp;amp;pf_rd_r=0NMK25SF0MDV943VKFP4&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=470938631&amp;amp;pf_rd_i=507846" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_8CRLN8Nizgk/TL0RNYAK5UI/AAAAAAAAB0Y/qsH82VIUbic/s200/minds_I.jpg" width="136" /&gt;&lt;a href="http://1.bp.blogspot.com/_8CRLN8Nizgk/TL0Rwl2MCzI/AAAAAAAAB0c/urRAXcBZ3hQ/s1600/awakening_of_intelligence.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_8CRLN8Nizgk/TL0Rwl2MCzI/AAAAAAAAB0c/urRAXcBZ3hQ/s200/awakening_of_intelligence.jpg" width="131" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-3179584374182646887?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/3179584374182646887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=3179584374182646887&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/3179584374182646887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/3179584374182646887'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2010/10/godel-escher-bach-experience-for.html' title='Godel Escher Bach: Craziness for life?'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8CRLN8Nizgk/TL0Q2ZqniKI/AAAAAAAAB0U/QD3-Br4RSHM/s72-c/geb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-3773513191690767661</id><published>2009-05-07T23:34:00.003-05:00</published><updated>2009-05-07T23:40:40.273-05:00</updated><title type='text'>Google IO Conference</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8CRLN8Nizgk/SgO3nToIqzI/AAAAAAAABCg/UuZPGkauemU/s1600-h/io2009.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 59px;" src="http://3.bp.blogspot.com/_8CRLN8Nizgk/SgO3nToIqzI/AAAAAAAABCg/UuZPGkauemU/s320/io2009.png" alt="" id="BLOGGER_PHOTO_ID_5333308269648194354" border="0" /&gt;&lt;/a&gt;I am attending &lt;a href="http://code.google.com/events/io/"&gt;Google IO Conference&lt;/a&gt; this year and will be in San Francisco on May 27th and 28th.&lt;br /&gt;Really excited about this conference as I am really interested in new app engine for java sessions. Also looking forward to the sessions on GIS and integrating EC2 with app engine. Martin Fowler, Ola Bini and Rebecca Parson are fellow ThoughtWorkers who are speaking at the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-3773513191690767661?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/3773513191690767661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=3773513191690767661&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/3773513191690767661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/3773513191690767661'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2009/05/google-io-conference.html' title='Google IO Conference'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8CRLN8Nizgk/SgO3nToIqzI/AAAAAAAABCg/UuZPGkauemU/s72-c/io2009.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-7834644368929859161</id><published>2009-01-05T00:53:00.001-06:00</published><updated>2009-01-05T00:54:53.964-06:00</updated><title type='text'>Software Development Trends for 2008</title><content type='html'>Here is an article in SDTimes that sums up the trend that was in software development during 2008. Here is the &lt;a href="http://www.sdtimes.com/link/33142"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-7834644368929859161?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/7834644368929859161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=7834644368929859161&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7834644368929859161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7834644368929859161'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2009/01/software-development-trends-for-2008.html' title='Software Development Trends for 2008'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-8353548289099189948</id><published>2009-01-05T00:28:00.005-06:00</published><updated>2009-01-05T00:49:15.594-06:00</updated><title type='text'>Soocial.com</title><content type='html'>I was reading &lt;a href="http://aws.typepad.com/"&gt;AWS blog&lt;/a&gt; and saw an &lt;a href="http://aws.typepad.com/aws/2008/12/running-everything-on-aws-soocialcom.html"&gt;article&lt;/a&gt; on &lt;a href="http://www.soocial.com/"&gt;soocial.com&lt;/a&gt; using EC2.&lt;br /&gt;Soocial is a free one address synchronization solution that includes Macs, Gmail, mobile phones and others. The site is built on Ruby which makes it way to cooler (I am biased towards Rails as I am using it personally).&lt;br /&gt;I started using it and it is awesome. I think this might be the end of MobileMe service from Apple.&lt;br /&gt;Though still in beta mode and Blackberry not yet implemented as Blackberry does not have SyncML (protocol for information synchronization). Lets see how they implement or whether Blackberry will have SyncML client of its own. Need to do more research on this topic as this is totally new to me and I am stuck with Blackberry with little over a year more to go.&lt;br /&gt;&lt;br /&gt;I would recommend getting an account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-8353548289099189948?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/8353548289099189948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=8353548289099189948&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/8353548289099189948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/8353548289099189948'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2009/01/soocialcom.html' title='Soocial.com'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-4631417841249217347</id><published>2008-12-03T08:02:00.008-06:00</published><updated>2008-12-03T08:38:06.511-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='EC2'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><category scheme='http://www.blogger.com/atom/ns#' term='AWS'/><title type='text'>Rails Deployment: Capistrano + GitHub + Amazon EC2</title><content type='html'>I have been working on my personal stamp project for a few days now and got some basic application running. As till now, I am able to create entries for stamp and have a cart like application. Since the application is running, I thought why not deploy it and remain agile. So I started working on rails deployment. There were many options including building my own powerful server  (which I am planning to anyways) but I wanted to have a quick start. What a better place then Amazon Web Services Elastic Cloud Computing (EC2) where I started a Ubuntu image and started customizing it. I used git as version control for my project and used github to host my repository. Also used Capistrano for rails deployment. In this post, I will give details steps of how to combine the power of Capistrano, github, MySQL (other database can be used) and Amazon EC2 to deploy your rails application quickly therefore remaining agile.&lt;br /&gt;I have assumed that you have an AWS account and have you machine setup to run ec2 tools or have ElasticFox plugin for Firefox.&lt;br /&gt;&lt;br /&gt;CONFIGURING EC2 INSTANCE&lt;br /&gt;I used Ubuntu gutsy image and started an instance.&lt;br /&gt;ssh to the instance. Generally, ruby is already installed on the instance so we should start installing other ruby packages.&lt;br /&gt;Install RubyGems from source&lt;br /&gt;&lt;blockquote&gt;wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz&lt;br /&gt;tar -xvzf rubygems-1.3.0.tgz&lt;br /&gt;cd rubygems-1.3.0&lt;br /&gt;sudo ruby setup.rb&lt;/blockquote&gt;&lt;br /&gt;Create a symbolic link to gem1.8&lt;br /&gt;&lt;blockquote&gt;sudo ln -s /usr/bin/gem1.8 /usr/bin/gem&lt;/blockquote&gt;&lt;br /&gt;and update RubyGems&lt;br /&gt;&lt;blockquote&gt;sudo gem update –system&lt;/blockquote&gt;&lt;br /&gt;Use RubyGems to install rails and other packages. Also install mysql server and driver plus&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install mysql-server libmysql-ruby libmysqlclient15-dev libc6-dev git-core&lt;/blockquote&gt;&lt;br /&gt;During mysql-server installation root password will be asked. It is recommended that a password be assigned.&lt;br /&gt;&lt;blockquote&gt;sudo gem install rails mongrel termios mongrel_cluster mysql &lt;/blockquote&gt;&lt;br /&gt;Now is the time to create database in mysql for production and grant privileges. Login into &lt;blockquote&gt;mysql as root and using root password.&lt;br /&gt;mysql –u root –p&lt;root_password&gt;&lt;br /&gt;mysql&gt;CREATE DATABASE  &lt;app_name&gt;myapp;&lt;br /&gt;mysql&gt; GRANT ALL PRIVILEGES  ON myapp&lt;app_name&gt;.* TO ‘myapp&lt;username&gt;’@’localhost’ IDENTIFIED BY &lt;user&gt;'myapp_password';&lt;/user&gt;&lt;/username&gt;&lt;/app_name&gt;&lt;/app_name&gt;&lt;/root_password&gt;&lt;/blockquote&gt;&lt;br /&gt;Create directory for deploy. I created /var/www&lt;br /&gt;&lt;br /&gt;INSTALLING APACHE ON EC2 INSTANCE&lt;br /&gt;&lt;blockquote&gt;wget http://mirror.olnevhost.net/pub/apache/httpd/httpd-2.2.10.tar.gz&lt;br /&gt;tar –xvf httpd-2.2.10.tar.gz&lt;br /&gt;cd httpd-2.2.10&lt;br /&gt;./configure --prefix=/usr/local/apache --enable-proxy   --enable-proxy-http   --enable-proxy-balancer --enable-dav --enable-rewrite    --enable-so --enable-http   --enable-expires  --enable-headers  --enable-mods=deflate_module --with-php --with-mysql --with-susexec --disable-info  --without-berkeley-db --enable-dav=shared --enable-dav-lock=shared --with-included-apr&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/blockquote&gt;&lt;br /&gt;GITHUB AND GIT&lt;br /&gt;&lt;br /&gt;At this point, we should have our git repository at github. Go to &lt;a href="http://www.github.com/"&gt;GitHub&lt;/a&gt; and create an account. Follow the instruction to add source control to your application. At this point we will need to create public-private keypair for local machine as well as each production server. Put the private key in the EC2 instance and add the public key to the github account for both local and EC2 instance. Put the private key in .ssh folder. You can use&lt;br /&gt;&lt;blockquote&gt;ssh-keygen &lt;/blockquote&gt;&lt;br /&gt;to generate keys on EC2 instance and you local server. Do not change the name of the keypair and let it be named to the default (id_rsa and id_rsa.pub). Also don’t associate any paraphrase for the key.&lt;br /&gt;&lt;br /&gt;CONFIGURING MONGREL TO RUN IN CLUSTER AND CONFIGURING OTHER FILES&lt;br /&gt;&lt;br /&gt;Run the following command&lt;br /&gt;&lt;blockquote&gt;sudo mongrel_rails cluster::configure –e production –p 8000 –a 127.0.0.1 –N 2 –c /deploy/path/current&lt;/blockquote&gt;&lt;br /&gt;Here config/mongrel_cluster.yml file will be created with configuration information for mongrel to start. –N here is for starting 2 mongrel servers.  Also make sure that you add current to the end of the deploy path above.&lt;br /&gt;Change database.yml and change username, password and database for production.&lt;br /&gt;In config/environment.rb comment out the following line&lt;br /&gt;&lt;blockquote&gt;RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION&lt;/blockquote&gt;&lt;br /&gt;This will cause the gem to use the latest version installed rather than a previous version which might cause some problems when you have update gem version.&lt;br /&gt;In config/environments/production.rb comment out the following&lt;br /&gt;&lt;blockquote&gt;config.action_view.cache_template_loading&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;INSTALLING CAPISTRANO ON LOCAL MACHINE&lt;br /&gt;&lt;br /&gt;On your local machine install Capistrano&lt;br /&gt;sudo gem install capistrano&lt;br /&gt;This will install Capistrano 2.5.2 Now we need to “capify” the application. Goto to application’s root directory and type&lt;br /&gt;&lt;blockquote&gt;capify&lt;/blockquote&gt;&lt;br /&gt;This will create two files&lt;br /&gt;1.    Capfile: This is the main file which cap need similar to rakefile for rake&lt;br /&gt;2.    Config/deploy.rb: This contains all the configuration data for rails application deployment&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;require 'mongrel_cluster/recipes'&lt;br /&gt;set :application, "app_name&lt;br /&gt;set :repository,  "git://github.com/username/projectname.git "&lt;br /&gt;&lt;br /&gt;# If you aren't deploying to /u/apps/#{application} on the target&lt;br /&gt;# servers (which is the default), you can specify the actual location&lt;br /&gt;# via the :deploy_to variable:&lt;br /&gt;set :deploy_to, "/var/www/#{application}"&lt;br /&gt;set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml"&lt;br /&gt;&lt;br /&gt;# If you aren't using Subversion to manage your source code, specify&lt;br /&gt;# your SCM below:&lt;br /&gt;set :scm, :git&lt;br /&gt;server "application.com", :app, :web, :db, :primary =&gt; true&lt;br /&gt;set :user, 'root'&lt;br /&gt;ssh_options[:port] = 22&lt;br /&gt;ssh_options[:verbose] = :debug&lt;br /&gt;ssh_options[:&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;username&lt;/span&gt;] = 'root'&lt;br /&gt;ssh_options[:host_key] = 'ssh-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;dss&lt;/span&gt;'&lt;br /&gt;ssh_options[:keys] = "path/to/key"&lt;br /&gt;ssh_options[:paranoid] = false&lt;br /&gt;&lt;br /&gt;set :use_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;sudo&lt;/span&gt;, false&lt;/blockquote&gt;&lt;br /&gt;DEPLOYMENT&lt;br /&gt;For the first time when you are deploying for the first time, run the command&lt;br /&gt;&lt;blockquote&gt;cap deploy:cold&lt;/blockquote&gt;subsequently&lt;br /&gt;&lt;blockquote&gt;cap deploy&lt;/blockquote&gt;After this, one can bundle the instance and create an image so that more instance can be started any time.&lt;br /&gt;&lt;br /&gt;This summarizes the configuration and deployment of rails application on the cloud. Using GitHub and Amazon EC2, rails deployment is quick and cheap. One can start with EC2 and then add real servers + more instances.&lt;br /&gt;&lt;br /&gt;Next to come is MySQL on Elastic Block Storage (Amazon EBS) so that database is persistent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-4631417841249217347?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/4631417841249217347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=4631417841249217347&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/4631417841249217347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/4631417841249217347'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/12/rails-deployment-capistrano-github.html' title='Rails Deployment: Capistrano + GitHub + Amazon EC2'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-7709064659489181935</id><published>2008-11-20T15:53:00.006-06:00</published><updated>2008-11-20T16:07:52.064-06:00</updated><title type='text'>MySQL ALTER TABLE</title><content type='html'>Here is something interesting that causes a lot of confusion overtime while changing the structure of a database table or adding index. Problem arises when a query is extremely slow due to insufficient or non-existent indexes. The table is heavily used and contains millions of rows. Site has heavy traffic. Adding a required index is only the solution. But a common misconception is during ALTER TABLE to add an index all the selects and writes will be blocked. This is not true. During alter table only writes are blocked for the entire time but selects are allowed for most part of ALTER TABLE except during the RENAME part. Here is the detail of how ALTER TABLE works :&lt;br /&gt;&lt;br /&gt;- open and lock the table&lt;br /&gt;- create a copy of the table&lt;br /&gt;- add index to the copied table&lt;br /&gt;- rename the copied table to new table&lt;br /&gt;- drop the old table&lt;br /&gt;&lt;br /&gt;During the rename part there is an upgradation to name lock. It waits for all the selects to finish and then renames it. Particular problems are seen when one expects the ALTER TABLE to finish in less than a second but it is taking a lot longer. Seeing at the processlist will show that there are selects going on from the table. The processlist will not show any sign of lock or something but will be stuck at renaming table for the ALTER TABLE query. All the write queries on the table will be in lock state though.&lt;br /&gt;&lt;br /&gt;This can be very useful in maintanence  of high traffic site in devising the time for updating indexes etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-7709064659489181935?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/7709064659489181935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=7709064659489181935&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7709064659489181935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7709064659489181935'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/11/mysql-alter-table.html' title='MySQL ALTER TABLE'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-7964147649426532882</id><published>2008-11-13T23:27:00.005-06:00</published><updated>2008-11-14T22:52:48.283-06:00</updated><title type='text'>Part of History!</title><content type='html'>Done with my first project in Boston and I am very proud so say that I was a part of change that happened on Nov 4th in USA. Who would have guessed that my first project at ThoughtWorks will be of such huge importance. I cannot blog about my projects but already enough hint is given for the project that I worked on.&lt;br /&gt;From technology point of view, had very good exposure to PHP, MySQL and Cloud Computing (Amazon Web Services). It is great how scalability is becoming relatively easier with Elastic Cloud Computing (EC2) especially for start ups. There was a very good section on The Economist about the cloud computing from corporate point of view and how it is going to change. Well, definitely so much exciting stuff going on that who can stop!&lt;br /&gt;Working on my personal project on Ruby on Rails these days. I was for long trying to create a website for philately enthusiasts, which will try to incorporate a lot of functionality that as a philatelist I always wanted to have in an application. Presently, a very simple site is up and running on my Mac. I will be in touch with fellow philatelist, whom I know, to test the functionality and recommend enhancements and addition to the site. Hopefully, looking for my beta mode in spring of 2009.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-7964147649426532882?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/7964147649426532882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=7964147649426532882&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7964147649426532882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7964147649426532882'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/11/part-of-history.html' title='Part of History!'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-7566324575725235653</id><published>2008-07-20T05:14:00.012-05:00</published><updated>2008-07-20T05:35:58.976-05:00</updated><title type='text'>On My Bookshelf</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_8CRLN8Nizgk/SIMRkKSnPWI/AAAAAAAAAxU/7BprnGE-PM4/s1600-h/413DMEQB3TL._SL500_AA240_.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 120px; height: 120px;" src="http://bp0.blogger.com/_8CRLN8Nizgk/SIMRkKSnPWI/AAAAAAAAAxU/7BprnGE-PM4/s320/413DMEQB3TL._SL500_AA240_.jpg" alt="" id="BLOGGER_PHOTO_ID_5225039305615293794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="btAsinTitle" style=""&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Guns, Germs, and Steel: The Fates of Human Societies by Jared Diamond&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_8CRLN8Nizgk/SIMRdDzqeWI/AAAAAAAAAxM/Rz6miWheqWg/s1600-h/41uQY8DkQ5L._SL500_AA240_.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 123px; height: 123px;" src="http://bp3.blogger.com/_8CRLN8Nizgk/SIMRdDzqeWI/AAAAAAAAAxM/Rz6miWheqWg/s320/41uQY8DkQ5L._SL500_AA240_.jpg" alt="" id="BLOGGER_PHOTO_ID_5225039183615785314" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span id="btAsinTitle" style=""&gt;The Drunkard's Walk: How Randomness Rules Our Lives by Leonard Mlodinow&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_8CRLN8Nizgk/SIMRCM7RhiI/AAAAAAAAAw8/OcnGOoDIJZg/s1600-h/519XT0DER6L._SL500_BO2,204,203,200_PIlitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 106px; height: 106px;" src="http://bp2.blogger.com/_8CRLN8Nizgk/SIMRCM7RhiI/AAAAAAAAAw8/OcnGOoDIJZg/s320/519XT0DER6L._SL500_BO2,204,203,200_PIlitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="" id="BLOGGER_PHOTO_ID_5225038722207155746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Refactoring: Improving The Design Of Existing Code by Martin Fowler&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/akumaria/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-7566324575725235653?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/7566324575725235653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=7566324575725235653&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7566324575725235653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7566324575725235653'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/07/on-my-bookshelf.html' title='On My Bookshelf'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_8CRLN8Nizgk/SIMRkKSnPWI/AAAAAAAAAxU/7BprnGE-PM4/s72-c/413DMEQB3TL._SL500_AA240_.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-529232986722326844</id><published>2008-07-20T04:53:00.003-05:00</published><updated>2008-07-20T05:39:20.965-05:00</updated><title type='text'>Boston</title><content type='html'>It is good to be writing again. Things changed again and now I am in Boston on a project.&lt;br /&gt;My training in Bangalore was fantastic. Made the best of friends and went home (Lucknow, India) for a week after almost 2 years.&lt;br /&gt;&lt;br /&gt;Came back and had Ruby training in ThoughtWorks Chicago office and then moved to Boston. The project, I am working on, is one of the best project I can work on in terms of the client. It is going to be a world changing event and it feels good to be a part of the history.&lt;br /&gt;&lt;br /&gt;I have been involved in high performance database optimization that involved some very intricate MySQL optimization. Really enjoying the database stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-529232986722326844?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/529232986722326844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=529232986722326844&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/529232986722326844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/529232986722326844'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/07/boston.html' title='Boston'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-6943839467959943469</id><published>2008-02-19T10:22:00.002-06:00</published><updated>2008-02-19T10:38:46.197-06:00</updated><title type='text'>Behavior Driven Development</title><content type='html'>&lt;p class="MsoNormal"&gt;Today we were introduced to Behavior Driven Development (BDD). So what is BDD. Think of the Tetris game.&lt;span style=""&gt;  &lt;/span&gt;A piece is falling in the well with some garbage at the bottom. Depending upon the orientation of the piece falling from top, a line can disappear or garbage can increase. Similar is the case of the Schroedinger Cat where depending upon the observation the state of cat is dead or alive.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Owing to this fact, the same event can have different outcome depending upon the context. It gives importance to the fact that why we are writing code rather than the technical details and therefore makes the code simple to understand and translate between development team and business.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;An example can be: Given that you are a Java Developer when you are on a project then you should code in Java.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;So we were shown how to do BDD. A single test method may have name something like this shouldreturnthis(), this gives a very good idea of what we are supposed to test. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;This is the basic that I learned today, thanks to Elizabeth Keogh.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;One more thing, I learnt was that we can use Single Responsibility Principle (SRP) to get away with getter and setter methods. It helps in better cohesion when we return the required thing from a class rather than accessing and changing the private instance variables of a class. Tommorow is the session on SRP and will get more information on that. Very excited for tomorrow’s session……&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-6943839467959943469?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/6943839467959943469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=6943839467959943469&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/6943839467959943469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/6943839467959943469'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/02/behavior-driven-development.html' title='Behavior Driven Development'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-7752486729156613358</id><published>2008-02-18T14:22:00.002-06:00</published><updated>2008-02-18T14:39:09.040-06:00</updated><title type='text'>Test Driven Development and Pair Programming</title><content type='html'>Finally, we started  today on introduction to development. It was a simple session but still at this time I cannot forget the learning from one and a half hour session. I have done some TDD but today it was combined with Pair Programming. It was an amazing experience. You get to learn so much and explain to other developer what you know and vice versa. Not only it helped me understand more about TDD but I got to learn more about Annotations and static import. How even few hours with right people can change the way and amount of things you learn. AMAZING!&lt;br /&gt;&lt;br /&gt;But the best thing that happened today was Roy Singham, founder of ThoughtWorks, came to talk to us. Where in the world will you find a company where the founder, CEO, COO, Chief Scientist (Martin Fowler) come to talk to 18 people (new hire) at ThoughtWorks University. Focusing on Roy, words are less to describe him. The inspiration and motivation that I got from him was overwhelming. I asked questions from social imbalance, purpose of life, Karl Marx to future offices in the world and the answers were quite convincing. Talking to Roy further helped me consolidate on my perspective that "make a goal in life and dedicate you life for it." For me it is revolutionizing this world by making software and trying to create a society where the weakest has the strength and support to come up through the hardship and be a part of the society. Hopefully, I will walk the long road both in terms of technology and socially. Was it my destiny or my choice that led me to ThoughtWorks where I am living my passion.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-7752486729156613358?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/7752486729156613358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=7752486729156613358&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7752486729156613358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/7752486729156613358'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/02/test-driven-development-and-pair.html' title='Test Driven Development and Pair Programming'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-327957065346618674</id><published>2008-02-15T06:43:00.002-06:00</published><updated>2008-02-15T06:55:49.587-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ThoughtWorks University'/><title type='text'>ThoughtWorks University</title><content type='html'>Finally, everything went smoothly and I am in Bangalore. My first week at ThoughtWorks University ended today. It was an amazing week and everyday we had four cool sessions. The first week was mainly learning about ThoughtWorks and Agile 101. There were some amazing sessions on iterative development and evolutionary planning. We were told in details of what constitutes a team and my role as a developer. It helped me to understand who is else in my team is capable of doing what. I was fortunate to have Martin Fowler on the very first day of our training, talking to us and telling about his experiences.  I also met upper management people.&lt;br /&gt;&lt;br /&gt;More on the technical side, we had a session where we were told what variables are associated to a project. They were namely: scope, time and quality. With some interactive games I realized what is the relation between them. I am going to have my personal coach and I talked to him about my concern with designing. Hopefully, next week I will get my answers when we start looking into Java.&lt;br /&gt;&lt;br /&gt;Also, some of us together managed to get an optional Ruby session which begins next Thursday. Really, looking forward to it. Well, I will keep you all posted when I find time.......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-327957065346618674?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/327957065346618674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=327957065346618674&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/327957065346618674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/327957065346618674'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/02/thoughtworks-university.html' title='ThoughtWorks University'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-5080489180108100337</id><published>2008-01-02T03:50:00.000-06:00</published><updated>2008-01-02T04:01:34.878-06:00</updated><title type='text'>On My Bookshelf</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_8CRLN8Nizgk/R3tfoQ0po9I/AAAAAAAAArM/8X2Rm3Vt4Hk/s1600-h/images1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150815744143500242" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_8CRLN8Nizgk/R3tfoQ0po9I/AAAAAAAAArM/8X2Rm3Vt4Hk/s320/images1.jpg" border="0" /&gt;&lt;/a&gt;Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series) by Kent Beck and Cynthia Andres&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_8CRLN8Nizgk/R3tgNg0po-I/AAAAAAAAArU/WqAbdn5arrU/s1600-h/images.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150816384093627362" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 96px; CURSOR: hand; HEIGHT: 130px" height="130" alt="" src="http://1.bp.blogspot.com/_8CRLN8Nizgk/R3tgNg0po-I/AAAAAAAAArU/WqAbdn5arrU/s320/images.jpg" width="106" border="0" /&gt;&lt;/a&gt; Man's Search For Meaning by Viktor E Frankl&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_8CRLN8Nizgk/R3tggA0po_I/AAAAAAAAArc/6UbGIL84GVg/s1600-h/images4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150816701921207282" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_8CRLN8Nizgk/R3tggA0po_I/AAAAAAAAArc/6UbGIL84GVg/s320/images4.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;SCJP by Katherine Sierra and Bert Bates&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-5080489180108100337?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/5080489180108100337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=5080489180108100337&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/5080489180108100337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/5080489180108100337'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/01/on-my-bookshelf.html' title='On My Bookshelf'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8CRLN8Nizgk/R3tfoQ0po9I/AAAAAAAAArM/8X2Rm3Vt4Hk/s72-c/images1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-5125107169329461570</id><published>2008-01-02T01:43:00.001-06:00</published><updated>2008-01-08T09:22:13.008-06:00</updated><title type='text'>Present Project</title><content type='html'>Due to official reason I cannot name the project I worked as an intern at &lt;a href="http://www.alliancetechnologies.net/"&gt;Alliance Technologies&lt;/a&gt; during Summer and Fall 2007. We are using &lt;a href="http://www.drupal.org/"&gt;Drupal&lt;/a&gt;, a PHP based content management system. It was a very steep learning curve and still everyday I learn a new thing about the power of drupal. We are almost done with the site (which is still in development) and mainly the web services is left. One thing apart from technical stuff that I learnt was that requirments always change. They can change sometimes when you expect it the least. This helped me get attracted to &lt;a href="http://www.martinfowler.com/articles/newMethodology.html"&gt;Agile&lt;/a&gt; where one has to be adaptive.&lt;br /&gt;It helped me realize the importance of design patterns. The only thing that keeps me from using them is the problem of over-designing. This problem is something that is going to be my first question at &lt;a href="http://www.thoughtworks.com/work-for-us/TWU.html"&gt;ThoughtWorks University&lt;/a&gt;. I know it is all about experience which decide what to use and what not but design patterns are nothing but experience of software developers.&lt;br /&gt;&lt;br /&gt;Two more things that are attracting me are Ruby on Rails (which I have basic knowledge) and Domain Specific Languages (DSL), especially after reading an article by Martin Fowler and doing Independent Study on compiler construciton. With external DSL, Lex and Yacc seems interesting. It seems to be exciting going back to UNIX but in a more sophisticated way by using internal DSL and language workbenches.&lt;br /&gt;&lt;br /&gt;Well, so many interesting things coming up, and with SCJP to give I need to better concentrate on Java for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-5125107169329461570?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/5125107169329461570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=5125107169329461570&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/5125107169329461570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/5125107169329461570'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/01/sony-storage-support.html' title='Present Project'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-6464500788753403891</id><published>2008-01-02T00:41:00.000-06:00</published><updated>2008-01-02T02:26:15.072-06:00</updated><title type='text'>ThoughtWorker</title><content type='html'>It feels good to be back after finally graduating and getting a job at &lt;a href="http://www.thoughtworks.com/"&gt;ThoughtWorks&lt;/a&gt;. But still busy with preparing myself to leave for India for 6 weeks training at &lt;a href="http://www.thoughtworks.com/work-for-us/TWU.html"&gt;ThoughtWorks University&lt;/a&gt;. Lots to read and lot to learn before I leave. Presently rebrushing Java, then have to read about Extreme Programming and thinking of knowing more about design patterns. Also some philosophy books that need to be read before I leave. Also working for time being at &lt;a href="http://www.alliancetechnologies.net/"&gt;Alliance Technologies&lt;/a&gt;, who were kind enough to let me continue till February. Things are pretty much busy till June when I have to move to Chicago....&lt;br /&gt;&lt;br /&gt;So much to learn and so less time. Maybe I should follow the Agile way, short iterations of 2 days instead of 2 weeks of reading a particular book. Discussing with my friends and emphasizing osmotic communication. After 2 days testing my skills by revising (refactoring?) and then again explaining it to my friends to see the depth of my understanding (testing). But what happened to Test Driven Development, how to incorporate TDD in reading a book in short iteration...&lt;br /&gt;Maybe trying to know what you want to learn from a chapter by reading its title and introduction.... Not to clear... any ideas.....&lt;br /&gt;&lt;br /&gt;How about pair reading (read programming). Two person same book same time. Come back after two days and discuss...&lt;br /&gt;&lt;br /&gt;Well, these are some of the methodologies I will be using at ThoughtWorks to develop software. I was trying to use it in our daily life. Too ambitious or too vague. Life a software? Concept of fail fast applies. Sometime you fail sometime you pass...&lt;br /&gt;&lt;br /&gt;Well, I am so excited to be at ThoughtWorks and ready to begin my journey and follow the long road. I am excited to meet some of the leading personalities in software industry who work at ThoughtWorks. &lt;a href="http://www.martinfowler.com/"&gt;Martin Fowler&lt;/a&gt;, &lt;a href="http://www.nealford.com/"&gt;Neal Ford &lt;/a&gt;and many others...&lt;br /&gt;&lt;br /&gt;Hopefully, I will be able to follow this long road and become a better person both professionally and personally and also help ThoughtWorks in revolutionizing the way software industry works.&lt;br /&gt;&lt;br /&gt;More to come......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-6464500788753403891?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/6464500788753403891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=6464500788753403891&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/6464500788753403891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/6464500788753403891'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2008/01/good-to-be-back.html' title='ThoughtWorker'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-114603991147666033</id><published>2006-04-26T03:23:00.000-05:00</published><updated>2006-11-21T18:33:00.600-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sociology'/><title type='text'>Sympathy or Empathy</title><content type='html'>Well, life is weird. It was 1999; I went to Hyderabad to attend my cousin’s marriage. I was there wandering and enjoying every part of it. It was as usual an extravagant Hindu marriage. We have this tradition of dancing and throwing money to show our happiness but basically we show our opulence. There were few poor daily laborers carrying the decorative lights along with us. I saw a women in early twenties pregnant and carrying one of the lights. Whenever we threw some money, she tried to pick it up but because of the decorative light, which she carried on her head and her pregnancy she was not able to. All the other laborers being male were able to do so. I could feel her desperation for the money. She tried many times but all her efforts went in vain. I don’t know what her family and financial situation was but it seemed it was not good, otherwise who will have the courage to do such a daring thing. Well, what could I say, that was one of the most horrendous experiences of my lifetime. Here we were enjoying the pageantry of Hindu marriage and there that woman was dying for a bill of ten rupees, risking her life and her unborn child. My dad gave her some money seeing her condition but did it really helped. I suppose not.&lt;br /&gt;&lt;br /&gt;Don’t sympathize but empathize. Try to imagine the mental and physical trauma she was going through, hoping to get that thrown money so she could help support her and her family. I have no words how I feel about that woman and if given a chance I want to meet her, see what she is going through and help her if I could.&lt;br /&gt;&lt;br /&gt;I realized that this is how life goes in India. Rich become richer and poor become poorer. People are dying just because people like us waste much of our time in either writing these blogs or reading them. People go and watch a three hour melodrama like Rang De Basanti. The Rang De Basanti phenomenon is a waste of time. How can it appeal to people. Go and kill, kill and kill. This is not going to solve the problem. There is a need to change one’s own thinking. One should be ready not to look at these politicians and ask them to redeem themselves but to help people who really need your help. Working at the root level and helping the “real” poor, that is what going to change the society and create a better world where there will be no such horrendous experiences. Each one of us should take a vow to eliminate the sufferings of the people to the best possible. Once again, when you see somebody in real pain, just empathize and not sympathize and I am sure the “real” you is going to help them “really!”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-114603991147666033?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/114603991147666033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=114603991147666033&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/114603991147666033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/114603991147666033'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2006/04/sympathy-or-empathy.html' title='Sympathy or Empathy'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-114603677296411632</id><published>2006-04-26T02:04:00.000-05:00</published><updated>2006-11-21T18:32:27.411-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sociology'/><category scheme='http://www.blogger.com/atom/ns#' term='Anthropology'/><title type='text'>Common Goal</title><content type='html'>The goal of humans, it seems, is that to work for a greater cause. That cause can be personal, social, religious, nationalistic or ethical. But it is one of them. The cause for the humanity is the cause which is missing. Everyone is working nowadays and fighting to achieve that greater goal. A personal cause leads to working for just himself. It seems to be the least destructive cause among all the others. The other causes has caused the world what we see today. Each one of us having conflicting ideas and different views about other religion, nation and races.&lt;br /&gt;&lt;br /&gt;The world will continue to see much of the conflicts, terrorism, wars, persecution untill the humans have humanity at stake. We have lost the feeling that we had common ancestors. All our roots go back to Africa from where we migrated around 70,000 years ago. "Genetic Data show that a small group of modern humans left Africa for good 70,000 to 50,000 years" (National Geographic March 2006). We are from a place which is today one of the most backward areas in the world. We don't realize that we can only survive thinking ourselves as humans and not as different races depending upon religion or nation.&lt;br /&gt;&lt;br /&gt;Our problems will not be solved untill there is an alien contact. They may be friends or foes, but then only we will realize and comprehend the term humanity. We will understand the importance of our planet Earth. The contact might gives us the motivation to glorify or defend the humanity. That might become our common goal and lead us to the road to proseperity, peace and "humanity."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-114603677296411632?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/114603677296411632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=114603677296411632&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/114603677296411632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/114603677296411632'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2006/04/common-goal.html' title='Common Goal'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26282638.post-114533600664702059</id><published>2006-04-17T23:51:00.000-05:00</published><updated>2006-11-21T18:31:06.023-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><title type='text'>Persistence of Illusion</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;A sequence of reality frames (16 per second?) formed by momentary flashes of consciousness (or cognition by a mind) that work in apparent continuity with a time stream of “physical” existence – that is what “presents” is. Since these reality frames are a confluence points of a wave extending from past to the future accepted in the present by a counter wave traveling from future to past, therefore the “reality frames” are fictional rather than real. “Now” is therefore fictional situation of Real life, a page that turns only because of a chapter already and always in conceptualization by some cognitive mind.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;This makes man (an observing mind) the real creator of the Universe. God, after saying “Let then be light” wasn’t required further it would seem.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;The fact that “concept analog” reality does not hear too close scrutiny, and the fact that there will never be laboratory conditions in the fundamental Quantum physical world in an axiomatic (same) points to the view that the world we now see recognize and accept; the Universe we imagine as a projection in space time of this world reality even the Ultimate reality we are trying to define (with the Unified Field of Eternity Cycles) are all FIRST projection of our mind. We have rationalized our local space by cultivating our scientific outlook, we have yet to cope with a Universe that may have no rational nor a need for me. Our mind sees a reality only in relation to what can sustain life on this planet in an entirely objective sense (the brick and matter solidity is just as relative as our organism’s sense of strength and fragility is. There must be other world where life forms like fish think water is the only atmosphere there can be). The reality we accept has to maintain life as we know it (not what our mind by itself can “see” or “imagine”). &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;True “reality” can only be as “relative” as everything and if there is a reality that only a mind can understand (irrespective of the body or planet it inhabits). Such a reality can traumatize the mind of any specific life form. If the ant could think in cosmic terms, it would roll over and give importance to its life form (that has been the true thrust of Karma theory in Hinduism).&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;Our mind and this mind’s eye, is as much a creation of evolution as the rest of us and will only see what it can recognize as safe or as threatening, as good or as bad. Relatively and only relatively to itself as subjects.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26282638-114533600664702059?l=kumaria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kumaria.blogspot.com/feeds/114533600664702059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26282638&amp;postID=114533600664702059&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/114533600664702059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26282638/posts/default/114533600664702059'/><link rel='alternate' type='text/html' href='http://kumaria.blogspot.com/2006/04/persistence-of-illusion.html' title='Persistence of Illusion'/><author><name>Apurv Kumaria</name><uri>http://www.blogger.com/profile/15400213610986021544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_8CRLN8Nizgk/TLtrah11lgI/AAAAAAAABz0/6z5vZ58YMDQ/S220/ApurvKumaria.jpg'/></author><thr:total>3</thr:total></entry></feed>
