Tuesday, June 15, 2010

Amazon's EBS backed AMI vs S3 backed AMI

Now that you are convinced, Amazon EC2 cloud is the way to go, which one will you choose EBS (Elastic Block Store) backed AMI or S3 (Simple Storage Service) backed AMI. Different factors that come into play in making the decision are listed below.
FactorEBS backed AMI'sS3 backed AMI's
Storage Size1TB10GB
Instances can be stoppedYesNo
Boot TimeFaster (~1min)Slower (~5mins)
Local Instance StoreNot AvailableAvailable
Data PersistenceEBS attached as volume (persist)S3 is the root partition (doesn't persist)
AMI CreationEasier and can be done using APINo API available for Linux
ChargesVolume Storage + storage usage + AMI Storage + Instance usageAMI Storage + instance usage
Customized AMI Storage ChargesLower (charged only for the changes)higher (full storage charge)
Instance Usage ChargeNo charge for stopped instances. Charge full instance hour for every transition from stopped to running state (.10 for full hour running, .30 for restarting twice in a hour)Not Applicable

Amazon EC2 Limitations:
  • 20 running instances
  • Overall instance limit = 4xthe running instance limit
  • 100 Amazon EBS Volumes or 20TB total volume storage
  • 100 Security Groups

Friday, February 5, 2010

Mistakes by a new Mac guy, When Installing Ruby, Rubygems, Rails, IntegrityApp, Mysql, Apache, Gems etc on Mac OS X 10.5 (Leopard)

Below are some of the mistakes and solutions, I did as a new Mac guy.

  • Couldn't find ruby header files, when installing some gems. Thats because Mac didn't have the Ruby dev package installed. You have to dowload and install Ruby-dev package.
  • Installed apache in /usr/local without knowing Mac comes with an apache. I was changing the http.conf file under /usr/local/apache where trying to start the default installation. Make sure you are changing httpd.conf and running the correct version of apache.
  • When I tried to start Mongrel, got the error "didn't have rails". But when you type rails -v at the terminal, it gave the correct version. I found rails was not completely installed, it was missing some packages, found out using command "gem list". I uninstalled rails gem and installed it again.
  • While installing gems, I got "c compiler not found in path" and "make not found" errors. It is logical to assume mac comes with "c compiler" and "make" when it have built-in ruby. But thats not the case, So, i have to install XCode to fix this issue.
  • Could not install mysql and do_mysql gem because of error in extconfig.h. Reason, it was not finding the mysql installation. I have to run the gem install with couple of special attributes to install it, thanks to the great post http://benr75.com/2008/04/12/setup-mod_rails-phusion-mac-os-x-leopard found in google.
  • When installing data_objects gem, had a strange error "couldn't activate data_objects 0.10.0, because 0.10.1 already activated". Looks like I already had the latest version installed and trying to install the old version again. I didn't install the old version.
  • Type mysql in the terminal, it said "command not found". I have to go the installation folder when mysql command is and run from there. Another option is you can add mysql/bin folder to path.
  • Typing mysql, took me to mysql prompt. I am able to see the databases but when I tried to create a new database it said, I didn't have permission. I have to login using command "mysql --user=root"
  • Phusion Passenger with Apache was not working. When I tried the url, it said didn't have permission to access the directory. I had to change "http.conf" to allow the directory browsing for Passenger to work.
  • When tried to run "rake test", got errors saying "cucumber gem was missing", but I already ran "gems:install" and installed all the gems necessary for the rails project. I had to run "sudo rake gems:install RAILS_ENV=test" to install the gems necessary for test environment
Please leave a comment if you find this post helpful.

Tuesday, December 15, 2009

Daily Standup Meeting in a Distributed Agile Team

No Doubt, Agile follower's life is easy and fun with whiteboard, story card, stickies, face2face meeting. But what if they are distributed in different locations, different timezones, different countries? Is their life still the same?. I guess not. Distributed teams, such as us, finds hard to practice agile specially stand up meeting, iteration planning, release planning. We love agile, but agile practices without whiteboard, story card, stickies and face2face meeting, is no fun. Make no mistake, we are determined to follow agile practices especially Scrum and XP combined.
Our daily stand up meeting happens with little difficulty. Our typical daily stand up meeting goes like this. Me, the product owner logs in to a computer using remote admin tool, before which, our agile team gathers. I initiate a conference call, through which the team joins me. Team then logs into Pairworks.com, a web based Agile Project Management Tool and navigate to their project's iteration board, which is similar to white board but available in web, which has the list of user stories and tasks being performed in the current iteration. We then discuss the completed, tasks will be performed next and issues if any. New tasks that come up during our discussion, will be added to the iteration board.
We have been using this approach for our daily stand up meeting for little over a year, though its effective, we are still looking out for a tool that does real time collaboration.
Are you part of a distributed agile team? If so, How do you practice daily stand up meeting?

Wednesday, May 27, 2009

How did Rack Middleware saved us?

Have more Ideas, but less Resources? Exactly, it forced us to find an alternative to the traditional application development. We found ourselves repeating same features across multiple applications. One natural thought came to us, is to avoid repeating same features, which is cumbersome and time consuming. We needed a solution in which the common functionalities should be made available to multiple applications with less effort and less maintenance.
Problems duplicating same functionalities:
Let's take contact us page as an example. All our applications, eServicePlace.com, PairWorks.com, eduHelp.in and our company website absolut-e.com need to have contact us page. Contact us is a simple page with a form, which users can use to contact us with their question. Well its a pretty simple that need a page, model, email notification, view the list of users and their questions.
How we did it?

1. develop the contact us functionality in eduHelp.in
2. test it and deploy to production
3. copy the controller, model, migrations to hiringopen.com
4. configure the necessary components
5. test it thoroughly and deploy to production

Using Rails Plugin:

1. develop the contact us functionality in eduHelp.in
2. test it and deploy to production
3. package it into a rails plugin
4. install it in hiringopen.com
5. test it
6. deploy and configure in production

As you have noticed, rails plugin helped us but not much to the extend we expected

Rack Middleware:

1. develop contact us functionality in a standalone application
2. test it
3. deploy and configure in a standalone production environment
4. create a rack layer for this application
5. add the rack layer to application like eduhelp.in and hiringopen.com that needed this functionality

Yes, no testing and configuration required in this case that saved us time and freed some resources. We just started using rack middleware couple of months ago and glad, we found it.

There are tonnes of rack middleware resources found in the web, please google it and let me know if you find any
interesting article.

Have you used Rack Middleware and how do you feel?

Friday, May 15, 2009

Painless Checkout with Folcia.com

As each day pass by, buying products online is becoming easy and painless. One such experience was with folcia.com. They have completely eliminated the registration process for one time buyer and the fact is I didn't even realize I am an unregistered user.
  1. Add product to the cart
  2. Secure checkout
  3. Enter your shipping address
  4. Enter you billing address if different from shipping address
  5. Enter credit card information
  6. Presented with confirmation page.
  7. Create an account by entering just the password (optional)

Monday, April 27, 2009

How I removed "Spyware Protect 2009" from my Windows XP?

I panicked, when a small popup appeared at the right bottom of my computer screen, that read, "Your computer was infected with virus". I clicked on the message and it opened "Spyware Protect 2009". I am doomed.
I googled for fixes,but to my frustration, all the fixes suggested to download some software, that can remove this spyware. What if they were another spyware, so, I am not ready for that.
So, I decided to do it on my own. Below are the steps that worked for me.

Steps to remove Spyware
  1. go to taskmanager >> processes
  2. kill any one process starting at the top and check the system tray at the right bottom, to see if the spyware is gone
  3. repeat the step 2 until the spyware icon is gone from the system tray
  4. When its gone, note the name of the process you deleted just before that (in my case it was sysguard.exe)
  5. open windows explorer and search for "sysguard.exe"
  6. Delete the files found in the search (in my case there were two files sysguard.exe & SYSGUARD.exe-SOME_NUMBER.pf)
  7. Restart the computer

I hope this will save some frustration for you. Above steps should work fine for any spyware.
Have any experience with Spyware, please post a comment.

Wednesday, April 1, 2009

Self Publishing Your Book Made Easy

One fine day, I was listening to a podcast, in which the lulu.com founder was discussing the reasons behind lulu. They were thought provoking and here they are

  1. Will you be motivated enough to write a review for a book, when there are thousands of reviews already in Amazon. What if you can write a review for your friends, will that be enough to motivate you.
  2. Publishing companies allows your book only if they are sure they can sell more than 200000 copies.
  3. where will the potential and promising new writers go
  4. Right now in lulu, writers are more in numbers than readers. For lulu to succeed they need more readers than writers.
  5. discover good authors using various techniques / statistics
  6. market to social networking
  7. one have to read and recommend it to his friends
Is your service or business addressing a specific problem?. Are you clear about the problem you are solving. If so, you have more chance to succeed.

Below are our products and the problem they are trying to solve.
eServicePlace - No easy way to compare and buy services online
HiringOpen - Searching multiple job sites is tedious
eduhelp.in - No easy way to choose the right college
CheetSheet - Everyone need their own cheatsheet.

Certainly, LuLu is not the only player in this market(self publishing book).
Do you know any other players in this field?