Sunday, December 30, 2012

Insertion Sort

/*nth element would require n comparison operations .That means total time consumed would be 1+2+3+4+.......+n which is a function of n*n
A great video on insertion sort is here
http://www.youtube.com/watch?v=c4BRHC7kTaQ
*/



/*Java Program for Insertion sort*/

import java.util.*;


public class InsertionSort {
public static void main (String args[])
{
/*Take the input into ArrayList using scanner*/
ArrayList InputArrayList = new ArrayList();
System.out.println("Give the input array, It will take the input until you press a non numeric key");
Scanner scan = new Scanner(System.in);
while(scan.hasNextInt())
{
InputArrayList.add(scan.nextInt());
}
System.out.println("ArrayList is " + InputArrayList);
/*Convert the ArrayList to IntegerArray */
int i, SIZE=InputArrayList.size();
int[] InputArrayInt= new int[SIZE];
int[] OutputArrayInt= new int[SIZE];
for(i=0;iInputArrayInt[i]=InputArrayList.get(i);
/*pass this array to insertsort function for sorting and collect it to OutputArrayInt*/
OutputArrayInt=insertsort(InputArrayInt);
/*Display the output array*/
System.out.println("The sorted array is ");
for(i=0;iSystem.out.println(OutputArrayInt[i]);
}
public static int[] insertsort(int[] IAInt)
{
int lenth= IAInt.length;
int i, j,temp;
for(i=1;i{
for(j=i-1;j>=0;j--)
{
if(IAInt[i]{
temp=IAInt[j];
IAInt[j]=IAInt[i];
IAInt[i]=temp;
i=j;/*This is an important step , now the if comparison would be from new position of i after swapping*/
}
}
}
return(IAInt);
}
}

Tuesday, December 11, 2012

Delivering a good presentation

Choose a good template before you start to write your presentation.

Good template is the one which is simple and classy .It should have the company's logo on the right corner.

First slide should be the one with the name of the presenter and the topic.
Second slide should have Goals of the presentation .This should be different from the next slide with the  list of the topic covered.
The third slide is  the list of topics covered . It can be named as agenda.

Presentation material should be simple and clear .It should have more number of diagrams than the text. This would make your presentation interesting as you would spent more time in explaining the diagrams.

Presentation material should follow a consistent format throughout the slides.You should have a summary slide at the end of presentation which should briefly explain what you have learned through this presentation.

You don't have to speak everything about the topic .Make an outline before delivering the presentation . Deliver your content along with the outline.
Let the audience ask questions after you have explained the topic.

Do not forget to say thanks to your audience after you finish delivering your presentation.

Thursday, December 6, 2012

UNIX cron

Every user can have its own list of cron jobs which can be viewed using 
crontab -l

In order to add or edit a cron job , you need to execute the following commands

export EDITOR=vi
crontab -e

Now , you can edit the file as you do while working on a vi editor .

For more tips on vi editor , you can follow the below link authored by me .
http://middlewareplay.appspot.com/kbhtml/Vi_editor.html

Note for new unix users , refrain from running the command crontab -r as this will remove your existing crontab file ( list of all cron jobs ) and there is no way of getting it back until you have the backup of crontab file  ,somewhere .

Below is the list of important  cron files

 /etc/cron.d main cron directory
/etc/cron.d/cron.allow list of allowed users
/etc/default/cron contains cron default settings
/etc/cron.d/cron.deny list of denied users
/var/cron/log accounting information
/var/spool/cron/crontabs spool area for crontab has crontab files for each user.

Organizational Security Notes

Security has a wider meaning to it .

Security for an organization does not only includes the security of customer's applications but it also includes the security of workstation used by organization employees.
Security for an organization can mean any of the following


Application security - Authentication and Authorization of the customers applications.



Network security - Implementing firewalls between communication end points , Seperating the different components of an architecture e.g. having webserver, application server , database on different machines , Implementing a proxy .



Password security- In case of personal user ids /passwords , passwords need to be strong , must not be shared with anyone else. In case of Shared Id usage , their passords must be stored at a location which can be accessed only by responsible people . The best solution in case of shared id usage would be implementing a solution like cyberark which would record every occurence when password would be read from the software and also there are mechanisms which would keep changing the password after a cycle of time.



Workstation security - Security is not the aspect that applies to applications but also to the workstation which employee is using to access the customer and organization applications. There should be antivirus , network threat protection installed on the workstation . It is responsibility of employees not to install the unauthorized softwares on the system.In case of workstation theft , there should be a provision that data on system is encrypted and it can not be viewed by someone else.



Information security - Any confidential information related to organization should not be published outside the organization without the organization permissions.

Friday, September 21, 2012

Spoken English Improvement

I have been working to improve my spoken English since last few weeks. And I have observed a quite a few things.


1) Listening English is better than reading English.

2) Speaking English is better than listening English.

People have this misconception that by reading a lot they can improve their spoken English.

Until you speak English, you cannot improve it. The more you speak, the better you get at it.

Listening to some English training lessons is a better way to start with than reading.

I found several problems with my English at the start.

1) Using some of the words repetitively .Some of those words are that, would have been, should, shall, and would have.

2) Choosing incorrect words .E.g. Saying “ I cannot listen you” on the phone instead of saying “I cannot hear you”

3) Unnecessarily trying to complete the sentence.

4) Translating Hindi to English and then speaking.

5) Grammatically correct English is not always good English.



I downloaded an audio English lesson and listened to it several times. That helped me to gain a little confidence. I try to talk in English as much as I can.

Now, I have brought the following in my practice

1) Watching English movies with subtitles and speak their dialogues.

2) Reading English comics and speaking the dialogues written in them.

3) Making note of phrasal verbs that appear in newspaper

I found that phrasal verbs are the essentials while speaking English as well as in written English.

I have downloaded some apps on my android which have a lot of English grammar exercises. I solve those exercises whenever I get time.



September 20, 2012

I learned about the usage of automatically which I have been using incorrectly. I have been using this word every time .However, this word is used mostly in reference to machines.

September 21, 2012

I learned about usage of for and to.

Don’t use repetitive words .E.g.

I met the client and explained to the client the methods to import the database.

Now, client has been used repetitively in the above sentence. Instead the sentence can be reframed as below.

I met the client and explained them the methods to import the database.

September 22, 2012

When in doubt, look for synonyms.

October 25 , 2012

I am going through the exhaustive list of prepositions and trying to understand the usage of each preposition.
I have earlier written  about the importance of phrasal verbs . And the prepositions form an important part of phrasal verbs.

December 8, 2012
Harrap's english verbs is one good book to understand english phrasal verbs.


May 9, 2016
I have learned the usage of have to/ have got to, will have to/will have got to, must. 




Saturday, September 15, 2012

Miscellanous questions websphere Application Server

What are the different ways to transmit messages between two different applications programmatically in Java?

JMS(publish-scribe|topic , point-to-point|queue)
Web Services

When would you need to use the XA datasource and not a connection pool datasource ?


You need an XADataSource if you want to execute a Distributed Transaction. You should use XADataSource instead of DataSource if the application
1. Uses the Java Transaction API (JTA)
2. Includes multiple database updates within a single transaction
3. Accesses multiple resources, such as a database and the Java Messaging Service (JMS), during a transaction
4. Use the same connection pool on multiple servers

Thursday, August 9, 2012

Five tips of playing omaha

1.Decide as early as possible .Make your game plan as soon as you get the cards and if after the flop , your strategy does not seems to work then fold your cards.

2.A pair on deck is dangerous if it does not favours you.

3.Thick once why other one is calling or raising before you call and raise.

4.Check your fullhouse and flush rating . Your fullhouse or a flush may not be the best one.

5.In a game of omaha , two pairs or a one pair have the least possibility to get you a win . Do not trust them at all.


Last but not the least , do not get excited with your good  cards .Be cool during the game .
And do not forget the A2345 straight :)

Do not trust straight till river . A pair on deck can ruin all your strategy plans.Straight may dupe you .
Do not expect two pairs on deck  to convert to fullhouse on river . You will even lose by triplet .

Sunday, July 22, 2012

Good tips for playing Texas Hold 'em Poker

1 . A penny saved can be a game changer in future .So if you are sure that you are going to lose this game , then fold your hands even if you have already put  big amount of chips in the bet. But at the same time if calling a hand involves you and only one person at the other hand and call does not require a big amount then you should call .

2. If you have got a double A  and not many players on the board , raise your amount .

3. Two facing cards and Two cards higher than 7 and of the same color and in sequence are the best future prospect.
J T , T 9 , 9 8 , 8 7, 7 6, 6 5, 5 4  are  best cards for straights as they all have probability of 4/10 in straights ...out of which
J T , T 9 , 9 8 , 8 7 are higher cards .

4. Mostly people win by pairs and triples.

5. If you have got two cards of the same color , then there is chance of flush.

6.Guess your opponent odds.

7.Raise your amount if opponent does not know his cards or  does not seems to be sure of his winning  and you have good chance of winning.Otherwise he will take advantage of you .

8.If an opponent suddenly raises the amount , then think why did he do that . Does that has any reasons . Are the cards at flop , turn or river made him so ?

Saturday, May 19, 2012

Differences between websphere 6.1 and 7.0

Datapower administration in integrated in  websphere 7.0 dmgr console .
Centralized Installation Manager feature is available in websphere 7.0.
Admin agent , job manager , flexible management features available in websphere 7.0
Concept of Business Level Applications introduced in websphere 7.0
Concept of security domains introduced in WebSphere 7.0
Concept of TAI( trust association interceptor introduced in WebSphere 6.1) deprecated in WebSphere 7.0 and SPNEGO Web Authentication introduced in WebSphere 7.0
Concept of Administrative authorization group for fine grained administrative security introduced in websphere 7.0
Runtime provisioning - Activate Start components as needed in an application server configuration Tab
In WAS V7 , Message driven beans can be stopped independently from the enterprise application.
JMX notification on sequential failure of messages and auto stop the MDB can be used to avoid a problem
Security auditing is enhanced in WAS v7 , can be managed and monitored from admin console
Added ability to generate personal certificates by connecting directly to internal CertificateAuthority (CA) servers.
Personal certificates that are deleted are moved to a recovery keystore.The recovery keystore will be emptied when the certificate expiration monitor is run.

Tuesday, May 8, 2012

Understanding SSL

What are advantages and disadvantages of using ssl?

Advantage of using SSL is the increased security in terms of following:
Confidentiality: It becomes extremely difficult for hacker to decrypt the data even if he gets the data by intercepting in the communication flow commonly known as eavesdropping.
Authentication: Proving Identity is another use of ssl . An encrypted hash of data when decrypted with public key is a match to the hash of actual data. That confirms that hash of data was only encrypted with owner of private key. That means that data has been send by owner of the private key or signed by owner of the private key in case when data itself is certificate.
Message Integrity: An encrypted hash of data when decrypted with public key is a match to the hash of actual data. That confirms that data was not tampered in middle of the network communication.

Explain the SSL flow?

Client (Browser) contacts the website . Website represents the client with a certificate .If that certificate is CA signed then there will be no exceptions thrown on the browser and certificate will be considered as trusted otherwise browser will throw an exception that this site is not a trusted site .This is one drawback of not using CA signed certificates. Also , the subject name(Distinguished name, DN or Common Name, CN) of the public key certificate must match with domain name of the website. Otherwise you will get an error that name of the certificate does not match with the name of the website. Now , the browser has the public key .A random token is generated at the client, encrypted with public key and send to the server which is decrypted by private key on server .Now both the client and the server have one token which is known to each other . This token is the symmetric key .Now onwards , this symmetric key is used for encryption and decryption at both the client and server .



Why don't we only use public/private key at the both the ends throughout the communication flow in the above given answer ? In other words , why do we switch to symmetric cryptography after communication is established?

Data encrypted with public key can be decrypted with private key .The data encrypted with private key can be decrypted with public key .And then ,a hacker could have intervened in the communication flow and decrypted the data with public key.
Therefore we need to use symmetric key after the first token exchange which is unknown to others.
Also asymmetric key encryption algorithms are slower than symmetric-key algorithms.

Is there Client authentication performed in the answer above?

When the client connects to server .Does he authenticates to server .No, Client needs to have public key of the server which is already presented by server to the client in case when client is a browser .Otherwise in cases where client is not a browser but it is a JVM or a plugin or something else . The public key certificate(contains public key) of that node to which it wants to connect should be imported to client node.A public key is shared to public .So that means having the public key by the client does not mean its authenticated .For client to be authenticated , client should connect the server with a certificate whose public key is stored in server's keystore (or truststore).This is called as client authentication .Normally we use server authentication only while using ssl .And if we combine both server authentication and client authentication .This is called as Mutual authentication.
Disadvantage is increased computational overhead and therefore decrease in performance.

What is a Public key?
A public key can be shared with everyone else. When you access a website ,it represents you with a certificate which also contains the public key. A public key is commonly used for encryption. A public key is also  used for decryption like in case of digital signatures.

What is a Private key?
Private key is not shared with everyone else . A private key will remain on the server and is commonly used for decryption . A private key is also used for encryption like in case of digital signatures.

What is a personal Certificate ?
A certificate that contains both private and public key. It is signed by CA(Certificate authority) or it can be a self signed .  A CA example is Verisign, Thwate etc. When self signed ,it means the certificate created for and created by are the same. It can also be referred as mere certificate or a X509 certificate. Please note that a public key certificate may also be referred as mere certificate or a X509 certificate.

What is a public key certificate?
A certificate that contains only public key. It is signed by CA(Certificate authority) or it can also be a self signed . A public key certificate can always be extracted from personal certificate. It is also called as digital certificate or identity certificate.

What is a signer certificate?
Signer certificate is normally referred to the public key certificate of a CA. It may also be referred to any public key certificate.
It resides in web browser ,any end point which makes outbound connections to other end points . CA root cetificate should be at this end point as well as the public key certificate of server. A signer certificate only contains the public key  of that particular CA. It is used to decrypt the hash of certificate  encrypted with private key of that particular CA. If the decrypted hash of certificate and actual hash of certificate calculated at the receiving end point are found to be same. That means the certificate  has not been tampered and the signature of certificate is valid.
If you are using CA signed certificates , then you don't have to do the additional task of importing the public key certificate to the client everytime you add a new certificate at the server end point. (You are accessing the server with multiple domain names) .Its enough that you have the signer certificate of CA at the client.
But if you are using the self signed certificates , then you have to everytime import the public key certificate of the server to the client whenever you add a new certificate at the server end point. In case when your client is browser then you will get a message to import it. In cases when your client is not a browser but its a Java  application, a webservice , a LDAP , JMS application etc. then your configuration will not work .So , it would be the administrator responsibility to import the public key certificate of the server at the client's end point whenever self signed certificates are used.
Is it possible for hash to be same for two different messages?
No, its not possible.

What is a X509 certificate?
Its a standard structure of a certificate . Common file extensions for a X509 certificate are .p12, .cer , crt , .der etc.
 All the certificates we deal in with while using websphere are X509 certificates .

What is a encryption algorithm?
An encryption  algorithm is used to encrypt the data .

What is a signature algorithm?
A signature algorithm is used to generate the signature by encrypting the hash of data (data can be a certificate or actual data) by applying the private key of a Signer (Certificate Authority). So, its a combination of hash and asymmetric key algorithm.

What is CA’s signature of a Public key certificate?
CA signature of a certificate is Encrypt(private key)[ hash(Public key certificate)] where encryption is applied to the hash of certificate also known as Digest using the private key.

What is a root certificate?
A root certificate is the one which is at the top of certificate chain .Suppose certificate A is signed by CA certificate B which is signed by certificate C. So certificate C is a root certificate . Certificate C is signed by Certificate C only .That means Root certificates are self signed certificates.Client needs to have root certificates .In the above example , if a web browser possess the root certificate C .Then it can also accept a certificate signed by CA certificate B.

Why does browser does not throw an exception when it finds the certificate presented by the server is CA signed?
This is because the browser already  has CA signer certs imported into it .Browser installable itself comes with  CA signer certs loaded into it.

What are the validations done when client receives the public key certificate from server during its first communication with server?

Checking the expiration date of certificate.
Matching the the subject name(Distinguished name, DN or Common Name, CN) of the public key certificate with domain name of the website.
Checking whether certificate is from trusted CA and then validating the signature of the certificate.

What is a keystore?
A keystore stores all kind of certificates. It may also be referred as key database.

What is a truststore?
A trustore is also a keystore.
A truststore is mainly referred to that keystore on the client which  contains all the signer certificates(public key) of the servers which intend to make connections with the client .For a connection to be successful , the public key of the certificate on the server should be at the client because when a client makes a connection to the server, it  sends randomly generated data encrypted with  public key which is decrypted by server with the private key.If the client does not have the public key certificate of server , the ssl handshake fails.
If you are using CA signed certificates , then you don't have to do the additional task of importing the public key certificate to the client everytime you add a new certificate at the server end point. (You are accessing the server with multiple domain names) .Its enough that you have the signer certificate of CA at the client.

But if you are using the self signed certificates , then you have to everytime import the public key certificate of the server to the client whenever you add a new certificate at the server end point. In case when your client is browser then you will get a message to import it. In cases when your client is not a browser but its a Java application, a webservice , a LDAP , JMS application etc. then your configuration will not work .So , it would be the administrator responsibility to import the public key certificate of the server at the client's end point whenever self signed certificates are used.

What is an inbound connection?
In case of client to server communication , the request with reference to client is outbound and with reference to server is inbound.
A connection coming to an end point is an inbound connection for that end point.This end point is the server.This should have the private key to decrypt the data coming from other end point.
Client and server are decided as a result of their first communication . The end point which initiates the connection and request a response from other end point is referred to as client. The other end point is referred to as server . Though during the course of communication , they keep on changing their roles.

What is an outbound connection?
A connection going to other end point B from an end point  A is an outbound connection for end point A.
That means end point A is  client in case of outbound connection .End point A should be having the public key certificate part of the server's personal certificate.
Client and server are decided as a result of their first communication . The end point which initiates the connection and request a response from other end point is referred to as client. The other end point is referred to as server . Though during the course of communication , they keep on changing their roles.

What is the default password for WebSphere default keystore ,truststore, plugin-key.kdb  files?
WebAS

What is a sniffer?
Sniffer is a software(with hardware) that can intercept traffic over a part of network.

What is phishing ?
Counterfeiting an actual website to a fake website with wrong intentions is phishing.

What are MD5 , SHA?
MD5(Message Digest 5 )
SHA ( Secure HASH algorithm) are hash functions to generate hash.

Why do we use Hash algorithms?
Hashing algorithms are a one-way encryption, i.e. it is impossible to derive the message from the digest. The main reasons for producing a message digest are:
The message integrity being sent is preserved.Any message alteration will immediately be detected.
The digital signature will be applied to the digest, which is usually considerably smaller than the message itself.
Hashing algorithms are much faster than any encryption algorithms (asymmetric or symmetric).
Hashing algorithms are also called as thumbprint algorithms. And the hash of data is also called as thumbprint.

What is a CSR ?
CSR is certificate signing request which is either signed by self  or  send to be signed by CA.
This has all the details like Common Name , Organization name , Country , duration of validity , key size etc . including the public key . A CSR is created by the entity which intends to use the signed certificate in future.

Why do we use digital signature?
A digital signature is mainly used for proving identity. A digital signature can be used with any kind of message, whether it is encrypted or not.
Authentication:Proving Identity is a use of ssl . An encrypted hash of data when decrypted with public key is a match to the hash of actual data.That confirms that hash of data was only encrypted with owner of private key.That means that data has been send by owner of the private key or signed by owner of the private key in case when data itself is certificate.
Message Integrity:An encrypted hash of data when decrypted with public key is a match to the hash of actual data.That confirms that data was not tampered in middle of the network communication.
Digital signature is used to add the CA signature to a public key certificate request. Note that public key certificate is not encrypted .
Digital signature is used to add the signature to a data. Data can be encrypted or sent as it as after attaching the signature .Public key is attached to data which is required for decryption of data if encrypted and to validate the signature .
In case when two separate key pairs are generated for encrypting the data and producing the signature .Then in that case two public key needs to be attached while sending the request.
In the above case when CA is the one which is signing the document , then one public key needs to be attached only for decrypting the data , the other public key is already known to the client.

It may also be possible that key pairs are generated at receiver's end and send to sender before he wants to transmit a confidential information to receiver .Then in that  case sender  uses the receiver's public key to encrypt the data.

How do you create a CSR?
 CSR stands for certificate signing request.
A key pair is generated by specifying the name of algorithm , key size .The generated  public key in the previous step is used to  the create the CSR.
Some of the software's like ikeyman hide the first step of generating key pair and just one step is needed to  create CSR where you specify the CN , size of key (e.g. 1024bit ,2048 bit) and few other details . CN(Common Name)  is the most important field of all which should match with domain name of the site.

What is TLS?
A successor to SSL.

Give some example tools for certificate management.
ikeyman provided with IBM websphere products, openssl , keytool - an utility provided by java language .
These are few of the softwares that can be used for certificate management .These tools can create key database files, create new certificate request , create renewal certificate request , create self signed certificates , export certificates , import certificates etc.

What is a CRL?
CRL is certificate revocation list . A certificate can be revoked if its private key has been compromised or for some other reason.After the revocation of certificate by CA , the CRL must be made available to all users or a mechanism should be put in place to check whether the certificate has been revoked or not . CRL's are updated by CA's but the implementation of CRL's is not widely supported and there is no full proof solution for this .Checking a certificate against a CRL is not the responsibility of SSL protocol.Authority using the certificate has to apply the new certificate after the previous certificate has been revoked.

Can we  use the same asymmetric key pair for encryption as well as  signing?
We should not use the same key pair for encryption and signing because if one key gets stolen then other is still safe.There are some mathematical reasons also for the same for which you have to dig more into mathematics of cryptography.

Can you determine the private key as you already know the public key ?
For a a cryptographic algorithm to be sound , it should not be feasible to deduce the private key from the knowledge of public key.

What is kerberos?
Kerberos provide symmetric-key distribution and management.

Give some examples of some asymmetric key algorithms and symmetric key algorithms.
RSA, DSA are asymmetric key algorithms.
DES and triple-DES are symmetric key algorithms.

Saturday, April 14, 2012

Strange Theories


I am putting down some strange theories that came to my mind sometimes ago.

1. Theory of living objects.
In this world , everything is living ,only the senses differ. A television broadcasts information , a bulb gives light , a tap gives water, a car moves  . Those are their senses .They are human made but they are living.What we can do is see, listen, touch,smell and we have got a nervous system that interprets.These are our senses.

2.Thoughts are living objects too.
Thoughts are like living objects .They are born, live their life and  die.

3.Theory of imperfection
Whatever we humans measure may not be  perfectly correct .
There could be several errors in measurements of time , size and  shape.Our eyes may not be showing the actual object but a different object with different colors , size and shape.

4.Theory of self realization
We may have not recognized some of our senses like a human brain transmitting signals to each other and acting like radio. There could be even more senses we are yet to discover about self.

5.This one continues from theory of imperfection
We may have used the wrong methods to invent our history.It  may be only  partially  correct.

6.  Continued from Theory of living objects.
Earth is a living object . We are parasites living inside earth.

7.Theory of dreams
Dream could be someone's else real  life.
This one formed the basis of a famous Hollywood movie Matrix.

8.Theory of creation
Thought is the element which forms the  basis of creation.Everything converts to other like a thought converts into a book.We are born because of some thoughts.

9.Theory of time
A second can be a long period for an observer while an hour can be a short period for other observer. Same period of time can be differently felt by two observers.
This one seems similar to theory of relativity by Einstein where two entities moving with high velocity comparable to the velocity of light experience time differently.

Now there are two philosophical thoughts
10.The same thought  which is liked by someone  can be disliked by  other because he could have reasons of its own.

11. Desire never makes you happy, its the imagination that makes you happy..Desires have no end.Imagination forms the basis of happiness.

Last one is too good. Do you agree?



Sunday, April 8, 2012

Food we eat

I think I am eating good food because I am having brown bread with boiled eggs .


This is summer time and its very hot here . Whether its sunday or monday or its summer or winter , you can have eggs anytime.Thats what they show in television.

So, Am I eating good food .Is eating brown bread really healthy or having boiled eggs in summers is so good.

Think a while and whats your answer .

My answer is definitely NO.

I believe in what I feel to believe .

Everyday you read something that chocolates are good for hearts and some other day you read they are bad for something and so on .I believe that chocolates may not be good for teeth but they are not bad for health if eaten in acceptable quantities . Off course they are sweet .This is what I feel to believe and this is what I experience .

A packaged fruit juice can never be good as juice which is sold on stalls .Some would say its not hygienic and so on . But I would say , its any day better than a packaged juice .To add an extra caution , you can ask stall owner not to add ice , sugar/salt and ask him to prepare the juice before you .And then have the fresh juice and experience the refreshment it brings. This feel ,you are never going to get while having a packaged juice.

On the one hand , science and technology are advancing so fast but on the other hand , we are becoming more selfish everyday .We don't care about others .We are not even bothered about the food what others will eat . Farmers are adding chemicals to speed up the growth of vegetables , big companies are doing every business tactic to sell their products , science is also helping big businesses to promote their products . A diet product may not be healthy , A premium beer bottle may not be premium , Chatni's served with Dosa in a good reputed restaurant may be one day old .You never know .

Eat with Caution !