Are we Teaching Thinking in Indian Schools

Education system in our schools and colleges in India are well designed to distribute huge amounts of data as well as information to the students but fails to teach how to use the collected information.

We are groomed from our childhood not to use our processing capabilities of our brain but to best use our memory capability of our brain. When a question is put to either teachers or parents, it doesn’t get answered and more importantly, we are asked not to waste time thinking about unnecessary things. We are forced to study the only solution available to the problem and use the same solution whenever we are confronted with that problem. Problem solving or thinking skill is literally discarded from our education system both by teachers as well as parents.

Students would be able to improve thinking skill by understanding the basics  of data, information and knowledge.


Data Knowledge Information thinking education

Data is nothing but facts and figures. Data must be organized to become information. To organize data, one needs to analyze the data to derive meaningful information.  This interpreted information differs from person to person as every individual seeks different information from the same data. Another important point with respect to information is that,  it can be right or wrong depending on the person analyzing it.

Knowledge is the result of applying your thinking on data or information based on your experience to gather insight. In other words, Knowledge is the meaningful links people make in their minds between information and its uses.  To sum it up, data is truth, information is someone’s analysis on truth, knowledge is what we know in our mind about it.

Given the data, what matters are your ability to use it to build meaningful information (analyzing data)and knowledge (applying information). For example, ‘Huge wind storms yesterday night’ is data, ‘today fish catch will be less’ is information, ‘not to buy fish today as prices will be high’ is knowledge.

7 Off Page SEO Techniques to boost search ranking

In this post I’ll cover the top 7 off-page optimization techniques that you can utilize to maximize your search engine ranking. It is ordered below according to their priority.

1. Link Quality and Quantity

Who refers you page plays significant role in search engine ranking. Also the total number of links referring to your page also gives better ranking. Add your web page URL to Wikipedia.
Submit your website to the most popular search engines like Google, Yahoo, MSN, Altavista, Alexa, etc., to get listed for free.

2. Localize

Make your website local so that search engines can easily view your website and fetch the content. This will help you to reach a targeted audience. Submit your website to Google Local, Maps, Yahoo Local, Yellow Pages, Superpages, Hotfrog, etc.

3. Link Anchor Text

Anchor text or link text used to refer to your page is important for higher ranking. Using keywords in anchor text signals google that linking sites thinks that content in your site is relevant to the keyword used in link anchor text.

4. Social Presence

Create account with facebook and googleplus. The number of +1s you get in google posting increases your ranking significantly. Merge your google+ page with google local business page.

5. Social Shares

Social bookmark your pages in popular bookmarking sites like Pinterest, Digg, Delicious, StumbleUpon, etc. Handle tags properly which are very essential to broadcast your news on a wide network.

Share your website documents like business documents, information brochures, and slides in Google Docs, Slide Share, etc. This will help you brand your website.
Ask your friends to share or like your documents in social media websites to increase popularity.

6. How-to Videos

Create youtube channel and upload How-to videos which demonstrates your product. Youtube can sometimes be used as backdoor to get into first page of google results for new sites. Add video gallery page to your website and embed your popular youtube videos in it. When visitors watch videos from your web site, they stay in your site for longer time. This gets better ranking in search results.

7.Host WordPress blog on your website

Host wordpress blog on your web site and write blogs regularly on topics related to your business. Share these blogs on facebook, google+ and other social bookmarking sites. This create back links from high domain authority social bookmarking sites, thereby increasing the search ranking.



7 On Page SEO Techniques to boost search ranking


Every campaign starts from the web site and if your web site is not optimized for both search engines as well as your customers, your chances for success are minimized.


1.Web Page Load Time

If you web page is slow, it decreases search engine ranking of your page significantly. Make sure your page loads with 4-5 seconds.

2.Keyword in Web Page URL

Having the words you want to be found within your domain name or page URLs can help your ranking.

3. Readable content with Keywords in it

Web page content is the key element not only for the customer but also for the search engine. There is no need to repeat your keyword multiple times in content as it may sound unnatural for your customers to read. Please remember that, there is no ideal keyword density for the content. Make sure that keyword is present in the first paragraph and placed within first 100 words. Add your keyword in alt tag of atleast one image in your page to increase ranking.

4. Title Tag

The title element of a web page should have concise description of a page’s content. This is critical to both user experience and search engine optimization. Google displays the first 50-60 characters of a title tag in search results. Remember to place important keywords at the start of the title tag.

<title>keyword1 – keyword2 | Brand</title>

5. Meta Description Tag

The meta description tag, allows you to suggest search engine how you want your pages to be described in search results.Though this tag may not increase your ranking, it will be shown to your customer in search results. So keywords should be present atleast once in description tag. Google display first 150 characters in search results.

<meta name="description" content="Here is a description of the applicable page">

6.Header Tags

Header tags are a formal way to identify key sections of a web page. Placing your keywords once in h1 tag and h2 tag would increase your ranking.

7. Internal Linking and sitemap

Linking to pages within your website is very important for search engine. Create sitemap.xml or sitemap.html so that search engine crawler knows the structure of your web site and crawls your pages efficiently. Link to category page or subcategory page from product page. If there is no categorization, link back to home page from all other pages.


Google is preparing for the next generation of Search by giving higher ranking to webpages written by people who have authority on the particular subject.

World undergoes transformation

World is undergoing profound transformations in the recent decades on economic and social ground. In 1900, Europe’s population is almost a quarter (against 60% of Asia). Now, the entire West contains not more than 12% of the world’s population but still dominates the world. In 1900 it could be said that the West was “superior” in many fields, including institutions, industrial systems, education, and technological innovations. Now, this superiority is now under challenge from the emerging East.

Economic crisis in western countries is because of materialistic nature of social life(consumerism) which is pushing people to buy (borrow) based on tomorrow’s effort(debt). Debt in most of the western countries is so high and deficit could be managed only by acquiring more and more debt. In order to get out of this economic crisis, western countries started adopting eastern philosophies and spiritualism to get away from materialistic attachment.
In the following TED talk, Hans Rosling (Swedish statistician on public health) talks about Asia regaining its dominance in the world with amazing statistics

Avoid locking in Singleton

The Singleton is a useful Design Pattern which allows only one instance of your class. Singleton is implemented by declaring static instance of the object reference within the class

class MySingleton {
static MySingleton *instance;
MySingleton() {

MySingleton* getInstance() {
return instance;


static MySingleton::instance= new MySingleton();

If singleton object is created during loading time itself, no locking is required. But in case of lazy loading, it needs to be guarded with a mutex to avoid multiple object instantiation.

MySingleton* getInstance() {

 //acquire mutex
if (NULL == instance) {
instance = new MySingleton();


  //release mutex
return instance;

Every request to getInstance() includes mutex overhead.In order to avoid mutex overhead, double checked locking pattern can be used.

// Double-checked locking -- don't use
MySingleton* getInstance() {
if (NULL == instance) {
//acquire mutex
if (NULL==instance) {
instance = new MySingleton();
//release mutex

This method is not 100% safe because of compiler optimizations and may lead to undefined behavior which is hard to debug. Another technique(safe to use) is to use atomic operations and local variable as specified below.

MySingleton* getInstance() {
MySingleton *localRef = new MySingleton();

  int ret = testandset(&instance, 0, localRef);

  //note testandset function returns old value stored in the variable.
if (0==ret) {
return instance;
//some other thread had initialized this.

  delete localRef;

  return instance;

SOLID Design Principles

SOLID is acronym introduced by Robert C Martin, which stands for five basic principles of object oriented programming/design.

Single Responsibility Principle:
Every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class.

Open Closed Principle:
Software entities (classes, modules) should be open for extension, but closed for modification.

Liskov Substitution Principle:
If S is a subtype of T, then objects of type T in a program may be replaced with objects of type S without altering any of the desirable properties of that program.

Interface Segregation Principle:
Split interfaces which are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them.

Dependency Inversion Principle:
Decouple high-level components from low-level components such that reuse with different low-level component implementations becomes possible.