Wednesday, February 25, 2009

Google search secrets

Most people know about the syntax and the semantics of using the hugely popular Google search. I recently discovered some unique search secrets that are available in the search. Some of the applications supported in the search box are listed below:

1. Calculator: Try "log (49^2)" or any calculation and check the results
2. Dictionary: For example, try "define: nirvana"
3. Package tracker: Just type the FedEx or UPS tracking number and you will get the status of your package
4. Yellow pages: Try "phonebook: frys san jose california"
5. meteorologist: Try "weather san jose"
6. Flight tracker: Try "southwest 1774"
7. Stock ticker: Try "AAPL"
8. Movie listings: Try "movies: 95054" or your zip code

The simple and intuitive search box interface provides users and ability to not only perform text search but also provides an ability to perform varying different tasks. I wonder what other hidden secrets might be available in the Google search box.

Monday, February 23, 2009

Do we need an Oscar to recognize the movie and music talent in India?

The eight Oscar awards sweep made by Slumdog Millionaire is hugely talked about in the Indian media. My congratulations to Boyle, Rahman, Gulzar and Pookutty. Though I haven't seen this movie yet (a family man loses his luxuries to enjoy movies after having kids), I have heard and read a lot about it. I long to see it one day and I know I will surely enjoy it. Though the major press this has generated in India is expected, I wonder whether we really need a Oscar to recognize the talent in India?. We in India are always looking for heroes and such great achievements like winning the Oscars will surely excite the junta. But should we hold the Oscars as the benchmark for the recognition for Indian cinema. I don't think so. India has incredible talent, a dynamic movie and music industry and highly respected film and acting institutions. We have had incredible movies made in Bollywood some of which will put even the best of the movies in Hollywood to shame. In the end, a good movie will always succeed in spite of the language or country its produced in. For real commercial success of a film, apart from the ingredients of a good movie, it requires the distributership and marketing required to attract audiences. This is something the Indian movies do not do very well to attract western audiences.

I would suggest to adapt Sholay for the western world. I am sure it will sweep the Oscars. Sholay is the best movie ever, period. That's when Bollywood will rule Hollywood.

Sunday, February 22, 2009

Sanskrit anyone?

I have been contemplating to 'relearn' Sanskrit primarily to read scriptures in their original form (obviously when I have the time later in my life). I was looking for a self learning resource on the Web and found a excellent resource on the website of IIT Chennai. Acharya, a Multilingual Computing for Literacy and Education, part of the Systems Development Laboratory of IIT Chennai, has a excellent self-learning Sanskrit course, obviously free of cost. Its a excellent resource for beginners and people who want to refresh their Sanskrit. A extremely rich Indo-Aryan language, Sanskrit is one of the few languages that is non-ambiguous and apt for use in computing.

Wednesday, February 18, 2009

Effectiveness and Efficiency

In any company, engineering is always challenged with conflicting business metrics. For example, sales and marketing in a organization would like to have each and every product and/or service possible whereas engineering would like to work with one product (or some) that they can do very well. Sales and Marketing are being effective at 'trying' to increase the business for the company but engineering is trying to be efficient at some of the products (and not all what S&M would require). These conflicting goals need to be managed critically for the overall business to be successful. I am sure that all companies undergo this conflict on a regular basis and might have different mechanisms to address this. It would be interesting to know some real business scenarios on how these have been resolved. I could not find any literature and/or resources about this only to conclude that engineering can accomplish efficiency given enough number of resources. But that is not always true. Take Apple and Motorola for example. Apple has one cellphone but a rather ground breaking one. Motorola has 40 different cell phones. You guess who is doing better!

Technology and its simple applications

Making life easier for humans is a goal of any technology. Or rather put differently, technology is as good as it can be put to the effective use by humans. There are many technologies that have been and are shaping our lives daily. The one I recently came across is the iRobot Roomba. Roomba is a great technology put to very good use by delegating chores to intelligent robots. I recently brought one and it works great. The amazing feature of this device is that it has a detection mechanism to cover the whole room. The company was founded by some robotics engineers from MIT. They have robots for government and industrial applications and for home environments. The Roomba series for home environment are available for various purposes such as  cleaning, scrubbing, workshop cleaning (this one is my personal favorite), a pool cleaning and gutter cleaning robot. One sees robots regularly in childrens toys but I have seen a practical application so apt for the first time.
This is the description on their website:
iRobot designs and builds robots that make a difference. iRobot was founded in 1990 when Massachusetts Institute of Technology roboticists Colin Angle and Helen Greiner teamed up with their professor Dr. Rodney Brooks with the vision of making practical robots a reality. iRobot stock trades on the NASDAQ stock market under the ticker symbol IRBT.

Monday, February 16, 2009

Project management

One of the challenging tasks in an engineering organization is project management. To build a scalable project management infrastructure, especially for software engineering projects, it is essential to have the right tool for the job. Unfortunately MS-Project, the default tool used by a lot of companies and with due respect to its capabilities still lacks the ability provide the view of the project to a person who is not a "real" project manager. While looking for some online tools, I came across some very nice online tools which apart from providing the project management tools also provide the necessary mechanisms to collaborate and present information in a intuitive form. Please find the links below and check them out. I will write about them once I review them in detail. I wanted to list them first before I forget the names/links ;-)

1. Clarizen : Clarizen provides on-demand, collaborative project execution software that allows businesses to easily manage all of their projects and resources in a single environment. Clarizen facilitates true team collaboration and project execution.
2. Basecamp : Basecamp is a project management and group collaboration tool. It was launched in 2004 as 37signals first product. The tool includes features for schedules, tasks, files, and messages.
3. LiquidPlanner : LiquidPlanner is online project management software designed to help teams of all sizes manage complex projects. LiquidPlanner is built on an innovative scheduling engine that gives users a project schedule even before they know how long it will take.
4. ProjectPier : ProjectPier is a Free, Open-Source, self-hosted PHP application for managing tasks, projects and teams through an intuitive web interface. ProjectPier will help your organization communicate, collaborate and get things done Its function is similar to commercial groupware/project management products, but allows the freedom and scalability of self-hosting. Even better, it will always be free.

Cisco ASR 9000

A comical ad posted by the networking major Cisco on youtube.



I wonder what this marketing campaign is doing to do to Cisco's bottomline and secondly does this marketing really work? Is it Kellogs magic?

Software Integrity

Being in charge of a software engineering organization, it always concerns me whether the software developed in my organization stands the test of quality from the perspective of the end users. This is always a challenge due to the inherent nature of measuring software quality. Obviously, there are metrics available to measure the quality but there is this one test what can bring the software and ultimately systems to a grinding halt. How does one find as many issues and come up with tests before the software goes out on the field?

Static analysis
is a extremely powerful tool which provides you with the set of issues in the software even before the software is run. The mechanisms for static analysis have significantly improved over the years and is now becoming a mandatory tool in the software engineer's arsenal. My first hand experience with Coverity Prevent has been extremely rewarding and it is worth considering to use it as part of any company's software engineering process. Some of the representative issues it will find even before you run your program for the first time are:
1. Locking erros
2. NULL pointer dereference
3. Use after free
4. Double free
5. Array indexing errors
6. Stack overrun
7. Heap overrun
8. Return pointers to local variables
9. Insecure use of user data
10. Uninitialized variables
11. Invalid use of negative values
12. Underallocations of dynamic data
13. Memory leaks
14. File handle leaks
15. Network resource leaks
16. Unused values
17. Unhandled return codes
18. Use of invalid iterators
19. Race conditions

Some other vendors who provide similar static analysis tools are Fortify Software, GrammaTech, Klocwork and The Mathworks.

Software is playing a critical role in all aspects of technology now. It is imperative that software makers adopt all tools available to provide the necessary software integrity to enjoy the technology we are so much dependent on. A nice blog on software integrity provides good information they have used at their company.