Sunday, September 18, 2011

How to find min of a stack in o(n)

Original stack 3,4,6,2,8,1,9
Maintain a stack 3,3,3,2,2,1,1

Monday, July 11, 2011

Most Popular Free Android Apps

Android market is booming with the popularity of the Android operated phones, applications supported by it obviously takes the supreme stage for debate. Google Inc supported online Android market already has scads of applications for Android phones and users just need to choose the best among them.Here are few mind blowing apps

1.Google Sky Map:

Google Sky Map turns your Android-powered device into a window on the night sky.
Google Sky Map turns your Android-powered mobile phone into a window on the night sky.
Find us elsewhere:
Keywords: planetarium, astronomy, skymap

  • Sky Map Screenshot

    Sky Map Screenshot

  • Sky Map Screenshot

    Sky Map Screenshot

  • Sky Map Screenshot

    Sky Map Screenshot


Figure out what you're looking at
Point your phone at the sky, and Google Sky Map will show the stars, planets, constellations, and more to help you identify the celestial objects in view. You can also browse the skies in manual mode.

Search the skies
Search the night sky for your favorite planet, Messier object, and more. Then move the phone in the direction of the arrow to find it in the sky around you.

Supported phones

All Android phones running Android 1.6 or higher.

Install the apps

Wednesday, July 6, 2011

Agile Methodology

What Is Agile?
Agile methodology is an approach to project management, typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints. But before discussing agile methodologies further, itÂ’s best to first turn to the methodology that inspired it: waterfall, or traditional sequential development.

Where Did Agile Come From?
In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems,” which outlined his ideas on sequential development. In essence, his presentation asserted that a project could be developed much like an automobile on an assembly line, in which each piece is added in sequential phases. This means that every phase of the project must be completed before the next phase can begin. Thus, developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. There is little, if any, communication between the specialized groups that complete each phase of work.

ItÂ’s easy to see how this development agile methodology is far from optimized. First of all, it assumes that every requirement of the project can be identified before any design or coding occurs. Put another way, do you think you could tell a team of developers everything that needed to be in a piece of software before it was up and running? Or would it be easier to describe your vision to the team if you could react to functional software? Many software developers have learned the answer to that question the hard way: At the end of a project, a team might have built the software it was asked to build, but, in the time it took to create, business realities have changed so dramatically that the product is irrelevant. In that scenario, a company has spent time and money to create software that no one wants. CouldnÂ’t it have been possible to ensure the end product would still be relevant before it was actually finished?

Why Agile?
Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a shippable increment of work. Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology could be described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.

The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can gather requirements at the same time they’re gathering requirements, the phenomenon known as “analysis paralysis” can’t really impede a team from making progress. And because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases for success in the real world. In essence, it could be said that the agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasn’t even been written yet, agile empowers teams to optimize their release as it’s developed, to be as competitive as possible in the marketplace. In the end, a development agile methodology that preserves a product’s critical market relevance and ensures a team’s work doesn’t wind up on a shelf, never released, is an attractive option for stakeholders and developers alike.

For more details visit

Thursday, May 26, 2011


This free script provided by