<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9103055959089500483</id><updated>2012-02-13T10:03:14.490-08:00</updated><category term='Innovation'/><category term='jokes'/><category term='Online Education'/><category term='Bhaktamar'/><category term='spiritual'/><category term='Thread'/><category term='favorite vedio'/><category term='abstract Class'/><category term='Pointer'/><category term='Function Pointer'/><category term='Interface'/><category term='Women on Career Break'/><category term='Operator Overloading'/><category term='C Basics'/><category term='Storage Class Specifier'/><category term='C#'/><category term='C++'/><category term='Story'/><category term='Telecom news'/><category term='Gujarat'/><category term='General'/><category term='Sealed Class'/><category term='Polymorphism'/><category term='Programming Application Concepts'/><category term='Examplary Life'/><category term='Code Optimization'/><category term='Wireless Telecommunication'/><category term='thought'/><category term='renewable energy'/><category term='Operating System'/><category term='OCR'/><category term='India'/><category term='Health'/><title type='text'>par excellence - beyond comparison</title><subtitle type='html'>My blog is like my diary. Here I am sharing my day to day experience and positive emotions/thoughts/creativity.

My favorite quotes)
• Life is like a coin you may spend it in many ways, but you can spend it only once!!!

• Time management is a Life Management

• Readers are the Leaders. )</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>88</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-5596001126145934238</id><published>2010-04-29T14:26:00.000-07:00</published><updated>2010-05-14T05:46:38.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operator Overloading'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Operator Overloading</title><content type='html'>When an operator is overloaded, none of its original meaning is lost. It simply means that a new operation relative to a specific class is defined.&lt;br /&gt;To overload an operator, you must define what that operation means relative to the class that it is applied to. To do this you create an &lt;strong&gt;operator function&lt;/strong&gt;, which defines its action. The general form of a member operator function is&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;type classname&lt;span class="operator"&gt;::&lt;/span&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;#&lt;span class="operator"&gt;(&lt;/span&gt;arg&lt;span class="operator"&gt;-&lt;/span&gt;list&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;   // operation defined relative to the class&lt;br /&gt;&lt;/span&gt;&lt;span class="operator"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;This program overloads the + operators relative to the &lt;strong&gt;Complex&lt;/strong&gt; class:&lt;/span&gt; from &lt;a href = "http://msdn.microsoft.com/en-us/library/5tk49fh2(VS.71).aspx" &gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class = "fullpost"&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// operator_overloading.cpp&lt;br /&gt;// compile with: /EHsc&lt;br /&gt;&lt;/span&gt;&lt;span class="pre"&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;using namespace&lt;/span&gt; std&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; Complex&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;br /&gt;   Complex&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt; double&lt;/span&gt; r&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; double&lt;/span&gt; i&lt;span class="operator"&gt; ) :&lt;/span&gt; re&lt;span class="operator"&gt;(&lt;/span&gt;r&lt;span class="operator"&gt;),&lt;/span&gt; im&lt;span class="operator"&gt;(&lt;/span&gt;i&lt;span class="operator"&gt;) {}&lt;/span&gt;&lt;br /&gt;   Complex&lt;span class="keyword"&gt; operator&lt;/span&gt;&lt;span class="operator"&gt;+(&lt;/span&gt; Complex&lt;span class="operator"&gt; &amp;amp;&lt;/span&gt;other&lt;span class="operator"&gt; );&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;   void&lt;/span&gt; Display&lt;span class="operator"&gt;( ) {&lt;/span&gt;   cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; re&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; ", "&lt;/span&gt;&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; im&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; endl&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;private&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;   double&lt;/span&gt; re&lt;span class="operator"&gt;,&lt;/span&gt; im&lt;span class="operator"&gt;;&lt;br /&gt;};&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt; &lt;br /&gt;// Operator overloaded using a member function&lt;br /&gt;&lt;/span&gt;Complex Complex&lt;span class="operator"&gt;::&lt;/span&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="operator"&gt;+(&lt;/span&gt; Complex&lt;span class="operator"&gt; &amp;amp;&lt;/span&gt;other&lt;span class="operator"&gt; )&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt; Complex&lt;span class="operator"&gt;(&lt;/span&gt; re&lt;span class="operator"&gt; +&lt;/span&gt; other&lt;span class="operator"&gt;.&lt;/span&gt;re&lt;span class="operator"&gt;,&lt;/span&gt; im&lt;span class="operator"&gt; +&lt;/span&gt; other&lt;span class="operator"&gt;.&lt;/span&gt;im&lt;span class="operator"&gt; );&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt; &lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;   Complex a&lt;span class="operator"&gt; =&lt;/span&gt; Complex&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="float"&gt; 1.2&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="float"&gt; 3.4&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt;   Complex b&lt;span class="operator"&gt; =&lt;/span&gt; Complex&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="float"&gt; 5.6&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="float"&gt; 7.8&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt;   Complex c&lt;span class="operator"&gt; =&lt;/span&gt; Complex&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="float"&gt; 0.0&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="float"&gt; 0.0&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   c&lt;span class="operator"&gt; =&lt;/span&gt; a&lt;span class="operator"&gt; +&lt;/span&gt; b&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;   c&lt;span class="operator"&gt;.&lt;/span&gt;Display&lt;span class="operator"&gt;();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;friend Operator Functions:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;It is possible for an operator function to be a &lt;strong&gt;friend&lt;/strong&gt; of a class rather than a member. since &lt;strong&gt;friend&lt;/strong&gt; functions are not members of a class, they do not have the implied argument &lt;strong&gt;this.&lt;/strong&gt; Therefore, when a &lt;strong&gt;friend &lt;/strong&gt;is used to overload an operator, both operands are passed when overloading binary operators and a single operand is passed when overloading unary operators.&lt;br /&gt;The only operators that cannot use friend functions are &lt;strong&gt;=, ( ), [ ], &lt;/strong&gt;and &lt;strong&gt;-&gt;&lt;/strong&gt;. The rest can use either member or friend functions to implement the specified operation relative to its class.&lt;br /&gt;As &lt;strong&gt;friend&lt;/strong&gt; overloaded function require two operand then we can do &lt;em&gt;object + int&lt;/em&gt; addition or &lt;em&gt;int + object&lt;/em&gt; using &lt;strong&gt;friend +operator &lt;/strong&gt;overloading.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-5596001126145934238?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/5596001126145934238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=5596001126145934238' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5596001126145934238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5596001126145934238'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/operator-overloading.html' title='Operator Overloading'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8395976693884411085</id><published>2010-04-28T07:18:00.000-07:00</published><updated>2010-05-14T05:48:42.937-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++ Interview Questions: 2</title><content type='html'>&lt;span style="color:#660000;"&gt;What is Friend function? Can derived class inherit friend function too?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is possible for a nonmember function to have access to the private members of a class by declaring it as a friend of the class.&lt;br /&gt;For example, here frd( ) is declared to be a friend of the class cl:&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="keyword"&gt;class&lt;/span&gt; cl&lt;span class="operator"&gt; {&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;  friend&lt;/span&gt;&lt;span class="type"&gt; void&lt;/span&gt; frd&lt;span class="operator"&gt;();&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;};&lt;/span&gt; &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;One reason that friend functions are allowed in C++ is to accommodate situations in which, for the sake of efficiency.&lt;br /&gt;In below example The same_color( ) function is defined as&lt;br /&gt;&lt;br /&gt;&lt;span class = "fullpost"&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// Return true if line and box have same color.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; same_color&lt;span class="operator"&gt;(&lt;/span&gt;line l&lt;span class="operator"&gt;,&lt;/span&gt; box b&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  if&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;color&lt;span class="operator"&gt;==&lt;/span&gt;b&lt;span class="operator"&gt;.&lt;/span&gt;color&lt;span class="operator"&gt;)&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;  &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the same_color( ) function needs access to the private parts of both line and box to perform its task efficiently. Being a friend of each class grants it this access privilege. Further, notice that because same_color( ) is not a member, no scope resolution operator or class name is used in its definition.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;#include &amp;lt;conio.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; line&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;class&lt;/span&gt; box&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; color&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // color of box&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; upx&lt;span class="operator"&gt;,&lt;/span&gt; upy&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // upper left corner&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; lowx&lt;span class="operator"&gt;,&lt;/span&gt; lowy&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // lower right corner&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;friend&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; same_color&lt;span class="operator"&gt;(&lt;/span&gt;line l&lt;span class="operator"&gt;,&lt;/span&gt; box b&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; c&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; define_box&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; x1&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y1&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; x2&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y2&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; show_box&lt;span class="operator"&gt;();&lt;br /&gt;} ;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;class&lt;/span&gt; line&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; color&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; startx&lt;span class="operator"&gt;,&lt;/span&gt; starty&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; len&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;friend&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; same_color&lt;span class="operator"&gt;(&lt;/span&gt;line l&lt;span class="operator"&gt;,&lt;/span&gt; box b&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; c&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; define_line&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; x&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; l&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; show_line&lt;span class="operator"&gt;();&lt;br /&gt;} ;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;// Return true if line and box have same color.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; same_color&lt;span class="operator"&gt;(&lt;/span&gt;line l&lt;span class="operator"&gt;,&lt;/span&gt; box b&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;color&lt;span class="operator"&gt;==&lt;/span&gt;b&lt;span class="operator"&gt;.&lt;/span&gt;color&lt;span class="operator"&gt;)&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; box&lt;span class="operator"&gt;::&lt;/span&gt;set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; c&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;color&lt;span class="operator"&gt; =&lt;/span&gt; c&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; line&lt;span class="operator"&gt;::&lt;/span&gt;set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; c&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;color&lt;span class="operator"&gt; =&lt;/span&gt; c&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; box&lt;span class="operator"&gt;::&lt;/span&gt;define_box&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; x1&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y1&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; x2&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y2&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;upx&lt;span class="operator"&gt; =&lt;/span&gt; x1&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;upy&lt;span class="operator"&gt; =&lt;/span&gt; y1&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;lowx&lt;span class="operator"&gt; =&lt;/span&gt; x2&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;lowy&lt;span class="operator"&gt; =&lt;/span&gt; y2&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; box&lt;span class="operator"&gt;::&lt;/span&gt;show_box&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;textcolor&lt;span class="operator"&gt;(&lt;/span&gt;color&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;upx&lt;span class="operator"&gt;,&lt;/span&gt; upy&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;for&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;i&lt;span class="operator"&gt;=&lt;/span&gt;upx&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;&amp;lt;=&lt;/span&gt;lowx&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++)&lt;/span&gt; cprintf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"-"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;upx&lt;span class="operator"&gt;,&lt;/span&gt; lowy&lt;span class="operator"&gt;-&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;for&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;i&lt;span class="operator"&gt;=&lt;/span&gt;upx&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;&amp;lt;=&lt;/span&gt;lowx&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++)&lt;/span&gt; cprintf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"-"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;upx&lt;span class="operator"&gt;,&lt;/span&gt; upy&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;for&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;i&lt;span class="operator"&gt;=&lt;/span&gt;upy&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;&amp;lt;=&lt;/span&gt;lowy&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++) {&lt;/span&gt;&lt;br /&gt;cprintf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;upx&lt;span class="operator"&gt;,&lt;/span&gt; i&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;lowx&lt;span class="operator"&gt;,&lt;/span&gt; upy&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;for&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;i&lt;span class="operator"&gt;=&lt;/span&gt;upy&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;&amp;lt;=&lt;/span&gt;lowy&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++) {&lt;/span&gt;&lt;br /&gt;cprintf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;lowx&lt;span class="operator"&gt;,&lt;/span&gt; i&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; line&lt;span class="operator"&gt;::&lt;/span&gt;define_line&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; x&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; l&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;startx&lt;span class="operator"&gt; =&lt;/span&gt; x&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;starty&lt;span class="operator"&gt; =&lt;/span&gt; y&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;len&lt;span class="operator"&gt; =&lt;/span&gt; l&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; line&lt;span class="operator"&gt;::&lt;/span&gt;show_line&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;textcolor&lt;span class="operator"&gt;(&lt;/span&gt;color&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gotoxy&lt;span class="operator"&gt;(&lt;/span&gt;startx&lt;span class="operator"&gt;,&lt;/span&gt; starty&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;for&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;i&lt;span class="operator"&gt;=&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;&amp;lt;&lt;/span&gt;len&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++)&lt;/span&gt; cprintf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"-"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;box b&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;line l&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;b&lt;span class="operator"&gt;.&lt;/span&gt;define_box&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;10&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 10&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 15&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 15&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;b&lt;span class="operator"&gt;.&lt;/span&gt;set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;b&lt;span class="operator"&gt;.&lt;/span&gt;show_box&lt;span class="operator"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;define_line&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 10&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;show_line&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span class="operator"&gt;(!&lt;/span&gt;same_color&lt;span class="operator"&gt;(&lt;/span&gt;l&lt;span class="operator"&gt;,&lt;/span&gt; b&lt;span class="operator"&gt;))&lt;/span&gt; cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "Not the same.\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\nPress a key."&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;getch&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;// now, make line and box the same color&lt;br /&gt;&lt;/span&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;define_line&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 10&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;set_color&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;l&lt;span class="operator"&gt;.&lt;/span&gt;show_line&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;same_color&lt;span class="operator"&gt;(&lt;/span&gt;l&lt;span class="operator"&gt;,&lt;/span&gt; b&lt;span class="operator"&gt;))&lt;/span&gt; cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "Are the same color.\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; There are two important restrictions that apply to friend functions.&lt;br /&gt;1) A derived class does not inherit &lt;strong&gt;friend&lt;/strong&gt; functions.&lt;br /&gt;2) friend functions may not have a storage-class specifier.&lt;br /&gt;That is, they may not be declared as &lt;strong&gt;static&lt;/strong&gt; or &lt;strong&gt;extern&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;What is Inline function? How do you decide to make function inline?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;one very important C++ feature not found in C is the inline function. An inline function is a function whose code is expanded inline at the point at which it is called instead of actually being called.&lt;br /&gt;This is much like a parameterized function-like macro in C, but more flexible.&lt;br /&gt;consider the following example code for Inline function.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; myclass&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; get_i&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; put_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; j&lt;span class="operator"&gt;);&lt;br /&gt;} ;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;inline&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; myclass&lt;span class="operator"&gt;::&lt;/span&gt;get_i&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;inline&lt;/span&gt;&lt;span class="type"&gt; void&lt;/span&gt; myclass&lt;span class="operator"&gt;::&lt;/span&gt;put_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; j&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;i&lt;span class="operator"&gt; =&lt;/span&gt; j&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;myclass s&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;s&lt;span class="operator"&gt;.&lt;/span&gt;put_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;10&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; s&lt;span class="operator"&gt;.&lt;/span&gt;get_i&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you compile this version of the program and compare it to a compiled version of the program in which inline is removed, the inline version is several bytes smaller. Also, calls to get_i( ) and put_i( ) will execute faster.&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; It is important to understand that, technically, inline is a &lt;em&gt;request&lt;/em&gt;, &lt;em&gt;not a command&lt;/em&gt;, to the compiler to generate inline code. There are various situations that can prevent the compiler from complying with the request. For example, some compilers will not inline a function if it contains a &lt;strong&gt;loop&lt;/strong&gt;, a &lt;strong&gt;switch&lt;/strong&gt;, or a &lt;strong&gt;goto&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;The second way to create an inline function is to define the code to a function inside a class declaration.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; cl&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// automatic inline functions&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; get_i&lt;span class="operator"&gt;() {&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt; i&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; put_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; j&lt;span class="operator"&gt;) {&lt;/span&gt; i&lt;span class="operator"&gt; =&lt;/span&gt; j&lt;span class="operator"&gt;; }&lt;br /&gt;} ;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8395976693884411085?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8395976693884411085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8395976693884411085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8395976693884411085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8395976693884411085'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/c-interview-questions-2.html' title='C++ Interview Questions: 2'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-6469752760381376153</id><published>2010-04-28T06:55:00.000-07:00</published><updated>2010-05-14T05:50:30.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++ Interview questions:1</title><content type='html'>&lt;span style="color:#660000;"&gt;Can you explain the mechanism that if I pass the object to a function then it is a call by value or call by ref?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Passing an Object to a function is call by value type.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Then will it call consturctor everytime when you pass an object as a parameter?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Objects may be passed to functions in just the same way that any other type of variable can. Objects are passed to functions through the use of the standard call-by- value mechanism. This means that a copy of an object is made when it is passed to a function. But when a copy of an object is generated because it is passed to a function, the object's constructor function is not called. However, when the copy of the object inside the function is destroyed, its destructor function is called.&lt;br /&gt;&lt;br /&gt;&lt;span class = "fullpost"&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;Take an example code for passing an object to a function.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; myclass&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;  int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;br /&gt;  myclass&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; n&lt;span class="operator"&gt;);&lt;br /&gt;  ~&lt;/span&gt;myclass&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;  void&lt;/span&gt; set_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; n&lt;span class="operator"&gt;) {&lt;/span&gt;i&lt;span class="operator"&gt;=&lt;/span&gt;n&lt;span class="operator"&gt;;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;  int&lt;/span&gt; get_i&lt;span class="operator"&gt;() {&lt;/span&gt;&lt;span class="flow"&gt;return&lt;/span&gt; i&lt;span class="operator"&gt;;}&lt;br /&gt;};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;myclass&lt;span class="operator"&gt;::&lt;/span&gt;myclass&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; n&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;  i&lt;span class="operator"&gt; =&lt;/span&gt; n&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;  cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "Constructing "&lt;/span&gt;&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; i&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;myclass&lt;span class="operator"&gt;::~&lt;/span&gt;myclass&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;  cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "Destroying "&lt;/span&gt;&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; i&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; f&lt;span class="operator"&gt;(&lt;/span&gt;myclass ob&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;  myclass o&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  f&lt;span class="operator"&gt;(&lt;/span&gt;o&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;  cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "This is i in main: "&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;  cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; o&lt;span class="operator"&gt;.&lt;/span&gt;get_i&lt;span class="operator"&gt;() &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;  return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; f&lt;span class="operator"&gt;(&lt;/span&gt;myclass ob&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;  ob&lt;span class="operator"&gt;.&lt;/span&gt;set_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "This is local i: "&lt;/span&gt;&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; ob&lt;span class="operator"&gt;.&lt;/span&gt;get_i&lt;span class="operator"&gt;();&lt;/span&gt;&lt;br /&gt;  cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;  &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;This program produces this output:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Constructing 1&lt;br /&gt;This is local i: 2&lt;br /&gt;Destroying 2&lt;br /&gt;This is i in main: 1&lt;br /&gt;Destroying 1&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note 1:&lt;/strong&gt; By default, when a copy of an object is made, a bitwise copy occurs. This means that the new object is an exact duplicate of the original.&lt;br /&gt;The fact that an exact copy is made can, at times, be a source of trouble.&lt;br /&gt;it is possible to prevent this type of problem by defining the copy operation relative to your own classes by creating a special type of constructor called a &lt;em&gt;copy constructor. &lt;/em&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note 2:&lt;/strong&gt;When an object is returned by a function, a temporary object is automatically created, which holds the return value. It is this object that is actually returned by the function. After the value has been returned, this object is destroyed. The destruction of this temporary object may cause unexpected side effects in some situations. For example, if the object returned by the function has a destructor that frees dynamically allocated memory, that memory will be freed even though the object that is receiving the return value is still using it.&lt;br /&gt;&lt;br /&gt;to overcome this problem that involve overloading the assignment operator and defining a copy constructor.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;&lt;strong&gt;Can I copy one object to another? How?&lt;br /&gt;&lt;/strong&gt;&lt;span style="color:#000000;"&gt;Yes.&lt;br /&gt;1) using assignment operator&lt;br /&gt;2) it is possible to overload the assignment operator and define some other assignment procedure.&lt;br /&gt;&lt;br /&gt;Note: By default, all data from one object is assigned to the other by use of a bit-by-bit copy.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;myclass ob1&lt;span class="operator"&gt;,&lt;/span&gt; ob2&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;ob2&lt;span class="operator"&gt; =&lt;/span&gt; ob1&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // assign data from ob1 to ob2  &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;When to use "." and when to use "-&gt;" while using pointers in C++?&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#660000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To access a member of an object when using the actual object itself, you use the dot ( . ) operator.&lt;br /&gt;To access a specific member of an object when using a pointer to the object, you must use the arrow operator (-&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; myclass&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; set_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; n&lt;span class="operator"&gt;) {&lt;/span&gt;i&lt;span class="operator"&gt; =&lt;/span&gt; n&lt;span class="operator"&gt;;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; show_i&lt;span class="operator"&gt;();&lt;br /&gt;};&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; myclass&lt;span class="operator"&gt;::&lt;/span&gt;show_i&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; i&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;myclass ob&lt;span class="operator"&gt;, *&lt;/span&gt;p&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // declare an object and pointer to it&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;ob&lt;span class="operator"&gt;.&lt;/span&gt;set_i&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt; // access ob directly&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;ob&lt;span class="operator"&gt;.&lt;/span&gt;show_i&lt;span class="operator"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;p&lt;span class="operator"&gt; = &amp;amp;&lt;/span&gt;ob&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // assign p the address of ob&lt;br /&gt;&lt;/span&gt;p&lt;span class="operator"&gt;-&amp;gt;&lt;/span&gt;show_i&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="comment"&gt; // access ob using pointer&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-6469752760381376153?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/6469752760381376153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=6469752760381376153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6469752760381376153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6469752760381376153'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/c-interview-questions1.html' title='C++ Interview questions:1'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-23593623792069452</id><published>2010-04-28T05:52:00.000-07:00</published><updated>2010-04-28T06:50:24.844-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Classes, Structure and Union are related</title><content type='html'>&lt;strong&gt;&lt;span style="color:#660000;"&gt;Classes and Structures Are Related&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Classes&lt;/strong&gt; and &lt;strong&gt;Structure&lt;/strong&gt; are very similer.The only difference is that by default the members of a &lt;strong&gt;class&lt;/strong&gt; are private while, by default, the members of a &lt;strong&gt;struct&lt;/strong&gt; are public. According to the formal C++ syntax, a struct defines a class type.&lt;br /&gt;In fact, with one exception, they are interchangeable because the C++ struct can include data and the code that manipulates that data in the same way that a class can.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;For the most part, C++ programmers use &lt;strong&gt;class&lt;/strong&gt; when defining an object that contains both code and data. They use &lt;strong&gt;struct&lt;/strong&gt; when defining a data-only object. (That is, struct is usually used in a way that is compatible with C-style structures.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;Unions and Classes Are Related&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;A &lt;strong&gt;union&lt;/strong&gt; is essentially a &lt;strong&gt;structure&lt;/strong&gt; in which all elements are stored in the same location. A union can contain constructor and destructor functions as well as member and &lt;strong&gt;friend&lt;/strong&gt; functions. Like a &lt;strong&gt;structure&lt;/strong&gt;, &lt;strong&gt;union&lt;/strong&gt; members are public by default.&lt;br /&gt;It is important to understand that, like a structure, a union declaration in C++ defines a class-type.&lt;br /&gt;There are several restrictions that must be observed when you use C++ unions.&lt;br /&gt;1) A union cannot inherit any other classes of any type.&lt;br /&gt;2) A union cannot be a base class.&lt;br /&gt;3) A union cannot have virtual member functions.&lt;br /&gt;4) No &lt;strong&gt;static&lt;/strong&gt; variables can be members of a union.&lt;br /&gt;5) A union cannot have as a member any object that overloads the = operator.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;span style="color:#660000;"&gt;&lt;strong&gt;Anonymous Union:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;An &lt;em&gt;anonymous union&lt;/em&gt; is a union that has neither a tag name nor any objects specified in its declaration. Also, global anonymous unions must be specified as static. Anonymous unions may not contain member functions. Finally, anonymous unions cannot include private or protected members.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; just because C++ gives unions greater power and flexibility does not mean that you have to use it. In cases where you simply need a C-style union, you are free to use one in that manner. However, in cases where you can encapsulate a union along with the routines that manipulate it, you add considerable structure to your program.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-23593623792069452?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/23593623792069452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=23593623792069452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/23593623792069452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/23593623792069452'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/classes-structure-and-union-are-related.html' title='Classes, Structure and Union are related'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-2075693216567917572</id><published>2010-04-23T09:17:00.000-07:00</published><updated>2010-04-23T09:24:07.071-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming Application Concepts'/><title type='text'>Virtual Address Space.</title><content type='html'>Every process is given its very own virtual address space. For 32-bit processes, this address space is 4 GB, since a 32-bit pointer can have any value from from 0 to (2^32)-1&lt;br /&gt;&lt;br /&gt;For 64-bit processes, this address space is 16 EB (exabytes), since a 64-bit pointer can have any value from 0 to (2^64) - 1&lt;br /&gt;Since every process receives its very own private address space, when a thread in a process is running, that thread can access memory that belongs only to its process. &lt;br /&gt;&lt;br /&gt;Virtual Address Space Mapping (partitioned) in 32-bit processor.&lt;br /&gt;&lt;br /&gt;VAS 1      |---vvvv-------vvvvvv---vvvv----vv---v----vvv--|&lt;br /&gt;mapping        ||||       ||||||   ||||    ||   |    |||&lt;br /&gt;file bytes     app1 app2  kernel   user   system_page_file&lt;br /&gt;mapping             ||||  ||||||   ||||       ||   |&lt;br /&gt;VAS 2      |--------vvvv--vvvvvv---vvvv-------vv---v------|&lt;br /&gt;&lt;br /&gt;Source: Wikipedia and my summary notes from my diary.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-2075693216567917572?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/2075693216567917572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=2075693216567917572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2075693216567917572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2075693216567917572'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/virtual-address-space.html' title='Virtual Address Space.'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4614156891338943803</id><published>2010-04-23T08:55:00.000-07:00</published><updated>2010-04-23T09:07:19.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Application Concepts'/><title type='text'>Thread Synchronization With Kernel Objects : 3</title><content type='html'>After Events, Now we will discuss Semaphore and Mutex Kernel Objects.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Semaphore Kernel Objects&lt;/strong&gt;&lt;br /&gt;Semaphore kernel objects are used for resource counting. &lt;br /&gt;&lt;br /&gt;Let's say that I'm developing a server process in which I have allocated a buffer that can hold client requests. I've hard-coded the size of the buffer so that it can hold a maximum of five client requests at a time. If a new client attempts to contact the server while five requests are outstanding, the new client is turned away with an error indicating that the server is busy and the client should try again later. When my server process initializes, it creates a thread pool consisting of five threads, each thread ready to process individual client requests as they come in.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Initially, no clients have made any requests, so my server doesn't allow any of the threads in the pool to be schedulable. However, if three client requests come in simultaneously, three threads in the pool should be schedulable. You can handle this monitoring of resources and scheduling of threads very nicely using a semaphore: the maximum resource count is set to 5 since that is the size of my hard-coded buffer. The current resource count is initially set to 0 since no clients have made any requests. As client requests are accepted, the current resource count is incremented&lt;br /&gt;&lt;br /&gt;The rules for a semaphore are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) If the current resource count is greater than 0, the semaphore is signaled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) If the current resource count is 0, the semaphore is nonsignaled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) The system never allows the current resource count to be negative.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4) The current resource count can never be greater than the maximum resource count.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Win32 APIs for semaphore object.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;CreateSemaphore()//.....//API to create semaphore object.&lt;br /&gt;OpenSemaphore()//.....// open semaphore object.&lt;br /&gt;ReleaseSemaphore()//......//Release semaphore object.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mutex kernel Object&lt;/strong&gt;&lt;br /&gt;Mutex kernel objects ensure that a thread has mutual exclusive access to a single resource. &lt;br /&gt;A mutex object contains a usage count, a thread ID, and a recursion counter. Mutexes behave identically to critical sections, but mutexes are kernel objects, while critical sections are user-mode objects. This means that mutexes are slower than critical sections.&lt;br /&gt;thread can specify a timeout value while waiting to gain access to a resource.&lt;br /&gt;&lt;br /&gt;The thread ID identifies which thread in the system currently owns the mutex, &lt;br /&gt;and the recursion counter indicates the number of times that this thread owns the mutex.Typically, they are used to guard a block of memory that is accessed by multiple threads.&lt;br /&gt;&lt;br /&gt;The rules for a mutex are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) If the thread ID is 0 (an invalid thread ID), the mutex is not owned by any thread and is signaled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) If the thread ID is nonzero, a thread owns the mutex and the mutex is nonsignaled.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Win32 APIs for Mutex Kernel Object.&lt;/strong&gt;&lt;br /&gt;CreateMutex()//.......API to create mutex object.&lt;br /&gt;&lt;br /&gt;OpenMutex()//......API to open mutex object.&lt;br /&gt;&lt;br /&gt;ReleaseMutex()//....API to release mutex object.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4614156891338943803?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4614156891338943803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4614156891338943803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4614156891338943803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4614156891338943803'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/thread-synchronization-with-kernel_2028.html' title='Thread Synchronization With Kernel Objects : 3'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8752442200382599699</id><published>2010-04-23T07:36:00.000-07:00</published><updated>2010-04-23T08:52:52.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Application Concepts'/><title type='text'>Thread Synchronization With Kernel Objects : 2</title><content type='html'>&lt;strong&gt;Event Kernel Object.&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;There are two different types of event objects: manual-reset events and auto-reset events. &lt;br /&gt;When a manual-reset event is signaled, all threads waiting on the event become schedulable. &lt;br /&gt;When an auto-reset event is signaled, only one of the threads waiting on the event becomes schedulable.&lt;br /&gt;Events are most commonly used when one thread performs initialization work and then signals another thread to perform the remaining work.&lt;br /&gt;The event is initialized as nonsignaled, and then after the thread completes its initial work, it sets the event to signaled. &lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;At this point, another thread, which has been waiting on the event, sees that the event is signaled and becomes schedulable. &lt;br /&gt;This second thread knows that the first thread has completed its work.&lt;br /&gt;For example, you in your mobile application, you are getting an incoming call.&lt;br /&gt;You have created an event for that. &lt;br /&gt;&lt;br /&gt;There are set of WIN32 APIs for event kernel object.&lt;br /&gt;CreateEvent(...); // API to Create Event &lt;br /&gt;OpenHandle(...); // API to get Event Handles &lt;br /&gt;SetEvent(...); // API to put an event in signaled state. &lt;br /&gt;ResetEvent(...); // API to put an event in non signaled state. &lt;br /&gt;CloseHandle(...); // API to close Event Handles&lt;br /&gt;&lt;br /&gt;One Practicle example: In our mobile application, when we are on call, (incoming, outgoing, 2nd call (one call is already on hold etc). You need to write such functionality into thread. so, that while one call is in process, user can not accept another call before finishing that call or put it on hold. but all these things to be properly designed else you may loose control on your functionality.&lt;br /&gt;&lt;br /&gt;First of all, you need to create specific threads and events.&lt;br /&gt;&lt;br /&gt;// Create an Auto Reset Event which automatically reset to Non Signalled state after being signalled&lt;br /&gt;IncomingCallEvent&lt;br /&gt;// Create a Thread Which will wait for the events to occur &lt;br /&gt;ON_CALL (here switch case....incoming call, outgoing call, 2nd call (one call is already on hold) etc....you must have specified)&lt;br /&gt;// Signal the event &lt;br /&gt;SetEvent ( hEvent );  (pass appropriate event based on switch-case ...here guass you are passing IncomingCallEvent)&lt;br /&gt;// Wait for the Thread to Die &lt;br /&gt;WaitForSingleObject ( hThrd, INFINITE ); and then close both handle (event and thread)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// Standard include headers&lt;br /&gt;&lt;/span&gt;&lt;span class="pre"&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt; #include &amp;lt;iostream&amp;gt; u&lt;br /&gt;&lt;/span&gt;sing&lt;span class="keyword"&gt; namespace&lt;/span&gt; std&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;DWORD WINAPI ON_CALL&lt;span class="operator"&gt; (&lt;/span&gt; LPVOID n&lt;span class="operator"&gt; )&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"Thread Instantiated........."&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// Get the handler to the event for which we need to wait in // this thread.&lt;br /&gt;&lt;/span&gt;HANDLE hEvent&lt;span class="operator"&gt; =&lt;/span&gt; OpenEvent&lt;span class="operator"&gt; (&lt;/span&gt; EVENT_ALL_ACCESS&lt;span class="operator"&gt; ,&lt;/span&gt;&lt;span class="bool"&gt; false&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="string"&gt; "IncomingCallEvent"&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span class="operator"&gt; ( !&lt;/span&gt;hEvent&lt;span class="operator"&gt; ) {&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt;&lt;span class="operator"&gt; -&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// wait for an event to occur&lt;br /&gt;&lt;br /&gt;// Wait for the Event&lt;br /&gt;&lt;/span&gt;WaitForSingleObject&lt;span class="operator"&gt; (&lt;/span&gt; hEvent&lt;span class="operator"&gt;,&lt;/span&gt; INFINITE&lt;span class="operator"&gt; );&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// No need to Reset the event as its become non signaled as soon as&lt;br /&gt;// some thread catches the event.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"Got The signal......."&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;CloseHandle&lt;span class="operator"&gt;(&lt;/span&gt;hEvent&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"End of the CALL......"&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt; int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// Create an Auto Reset Event which automatically reset to&lt;br /&gt;// Non Signalled state after being signalled&lt;br /&gt;&lt;/span&gt;HANDLE hEvent&lt;span class="operator"&gt; =&lt;/span&gt; CreateEvent&lt;span class="operator"&gt; (&lt;/span&gt; NULL&lt;span class="operator"&gt; ,&lt;/span&gt;&lt;span class="bool"&gt; false&lt;/span&gt;&lt;span class="operator"&gt; ,&lt;/span&gt;&lt;span class="bool"&gt; false&lt;/span&gt;&lt;span class="operator"&gt; ,&lt;/span&gt;&lt;span class="string"&gt; "IncomingCallEvent"&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span class="operator"&gt; ( !&lt;/span&gt;hEvent&lt;span class="operator"&gt; )&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt;&lt;span class="operator"&gt; -&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// Create a Thread Which will wait for the events to occur&lt;br /&gt;&lt;/span&gt;DWORD Id&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;HANDLE hThrd&lt;span class="operator"&gt; =&lt;/span&gt; CreateThread&lt;span class="operator"&gt; (&lt;/span&gt; NULL&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;, (&lt;/span&gt;LPTHREAD_START_ROUTINE&lt;span class="operator"&gt;)&lt;/span&gt;ON_CALL&lt;span class="operator"&gt; ,&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;,&amp;amp;&lt;/span&gt;Id&lt;span class="operator"&gt; );&lt;br /&gt;if( !&lt;/span&gt;hThrd&lt;span class="operator"&gt; )&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;CloseHandle&lt;span class="operator"&gt; (&lt;/span&gt;hEvent&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt;&lt;span class="operator"&gt; -&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;// Signal the event&lt;br /&gt;&lt;/span&gt;SetEvent&lt;span class="operator"&gt; (&lt;/span&gt; hEvent&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt;Wait&lt;span class="flow"&gt; for&lt;/span&gt; the Thread to Die&lt;br /&gt;WaitForSingleObject&lt;span class="operator"&gt; (&lt;/span&gt; hThrd&lt;span class="operator"&gt;,&lt;/span&gt; INFINITE&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt;CloseHandle&lt;span class="operator"&gt; (&lt;/span&gt; hThrd&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt;CloseHandle&lt;span class="operator"&gt; (&lt;/span&gt; hEvent&lt;span class="operator"&gt; );&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"End of Main ........"&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One more example I can explain. When we are writing word document, that time we have grammer check, spelling check, word count check functionality.&lt;br /&gt;such functionality if we want to write then we can create seperate threads for respected functionalities and set appropriate event.&lt;br /&gt;It can be either manual reset or auto rest as per the requirement.&lt;br /&gt;&lt;br /&gt;Ideally, they all threads will get CPU time and access the memory block. Notice that all three threads will access the memory in a read-only fashion. This is the only reason why all three threads can run simultaneously.  &lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8752442200382599699?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8752442200382599699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8752442200382599699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8752442200382599699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8752442200382599699'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/thread-synchronization-with-kernel_23.html' title='Thread Synchronization With Kernel Objects : 2'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-6869457330700912905</id><published>2010-04-23T05:06:00.000-07:00</published><updated>2010-04-23T05:10:13.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Application Concepts'/><title type='text'>Thread Synchronization With Kernel Objects:1</title><content type='html'>In previous post we saw how to synchronize threads using mechanisms that allow your threads to remain in user mode. The wonderful thing about user-mode synchronization is that it is very fast. &lt;br /&gt;While user-mode thread synchronization mechanisms offer great performance, they do have limitations, and for many applications they simply do not work. &lt;br /&gt;1) For example, the interlocked family of functions operates only on single values and never places a thread into a wait state. &lt;br /&gt;2) You can use critical sections to place a thread in a wait state, but you can use them only to synchronize threads contained within a single process. &lt;br /&gt;3) You can easily get into deadlock situations with critical sections because you cannot specify a timeout value while waiting to enter the critical section.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Now lets see how we can synchornize threads using kernel objects.kernel objects are far more versatile than the user-mode mechanisms.the only bad side to kernel objects is their performance.&lt;br /&gt;calling thread must transition from user mode to kernel mode. This transition is costly: it takes about 1000 CPU cycles &lt;br /&gt;For thread synchronization, each of these kernel objects is said to be in a signaled or nonsignaled state. The toggling of this state is determined by rules that Microsoft has created for each object.&lt;br /&gt;For example, process kernel objects are always created in the nonsignaled state. When the process terminates, the operating system automatically makes the process kernel object signaled. Once a process kernel object is signaled, it remains that way forever; its state never changes back to nonsignaled.&lt;br /&gt;A process kernel object is nonsignaled while the process is running, and it becomes signaled when the process terminates. &lt;br /&gt;If you want to write code that checks whether a process is still running, all you do is call a function that asks the operating system to check the process object's Boolean value. &lt;br /&gt;Threads can put themselves into a wait state until an object becomes signaled.&lt;br /&gt;The following kernel objects can be in a signaled or nonsignaled state:&lt;br /&gt;1) Processes&lt;br /&gt;2) Threads&lt;br /&gt;3) Jobs&lt;br /&gt;4) Files&lt;br /&gt;5) Console Input&lt;br /&gt;6) File change notifications&lt;br /&gt;7) Events&lt;br /&gt;8) Waitable timers&lt;br /&gt;9) Semaphores&lt;br /&gt;10) Mutexes&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wait Functions&lt;/strong&gt;&lt;br /&gt;In my previous experience application development, I was using these wait functions. there wer 6 threads for galileo receiver to run simulteneously and feed the data to the receiver input. &lt;br /&gt;There are two wait functions.&lt;br /&gt;1) Here's an example of how to call WaitForSingleObject with a timeout value other than INFINITE:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;DWORD dw&lt;span class="operator"&gt; =&lt;/span&gt; WaitForSingleObject&lt;span class="operator"&gt;(&lt;/span&gt;hProcess&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 5000&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;switch&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;dw&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_OBJECT_0&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // The process terminated.&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_TIMEOUT&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // The process did not terminate within 5000 milliseconds.&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_FAILED&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // Bad call to function (invalid handle?)&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2) example using WaitForMultipleObjects function.&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;HANDLE h&lt;span class="operator"&gt;[&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;];&lt;/span&gt;&lt;br /&gt;h&lt;span class="operator"&gt;[&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;] =&lt;/span&gt; hProcess1&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;h&lt;span class="operator"&gt;[&lt;/span&gt;&lt;span class="int"&gt;1&lt;/span&gt;&lt;span class="operator"&gt;] =&lt;/span&gt; hProcess2&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;h&lt;span class="operator"&gt;[&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;] =&lt;/span&gt; hProcess3&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;DWORD dw&lt;span class="operator"&gt; =&lt;/span&gt; WaitForMultipleObjects&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; h&lt;span class="operator"&gt;,&lt;/span&gt; FALSE&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 5000&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;switch&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;dw&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;   case&lt;/span&gt; WAIT_FAILED&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // Bad call to function (invalid handle?)&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_TIMEOUT&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // None of the objects became signaled within 5000 milliseconds.&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_OBJECT_0&lt;span class="operator"&gt; +&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // The process identified by h[0] (hProcess1) terminated.&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_OBJECT_0&lt;span class="operator"&gt; +&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // The process identified by h[1] (hProcess2) terminated.&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; &lt;br /&gt;   case&lt;/span&gt; WAIT_OBJECT_0&lt;span class="operator"&gt; +&lt;/span&gt;&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;      // The process identified by h[2] (hProcess3) terminated.&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;      break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Source: Summary note from my diary (I learnt these concepts long back)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-6869457330700912905?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/6869457330700912905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=6869457330700912905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6869457330700912905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6869457330700912905'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/thread-synchronization-with-kernel.html' title='Thread Synchronization With Kernel Objects:1'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-6766928134667931684</id><published>2010-04-23T05:00:00.000-07:00</published><updated>2010-04-23T05:06:03.275-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Application Concepts'/><title type='text'>Thread Synchronization in User Mode:2</title><content type='html'>&lt;strong&gt;Critical Sections:&lt;/strong&gt;&lt;br /&gt;A critical section is a small section of code that requires exclusive access to some shared resource before the code can execute. This is a way to have several lines of code "atomically" manipulate a resource. By atomic, I mean that the code knows that no other thread will access the resource.system will not schedule any other threads that want to access the same resource until your thread leaves the critical section.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;pre&gt;CRITICAL_SECTION g_cs&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;DWORD WINAPI ThreadFun1&lt;span class="operator"&gt;(&lt;/span&gt;PVOID pvParam&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; while&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt; {&lt;/span&gt;&lt;br /&gt;  EnterCriticalSection&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_cs&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;  //......write code. do manipulation (use global resource)&lt;br /&gt;&lt;/span&gt;  LeaveCriticalSection&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_cs&lt;span class="operator"&gt;);&lt;br /&gt; }&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;            return&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;DWORD WINAPI ThreadFun2&lt;span class="operator"&gt;(&lt;/span&gt;PVOID pvParam&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; while&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt; {&lt;/span&gt;&lt;br /&gt;  EnterCriticalSection&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_cs&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;  //......write code. do manipulation (use global resource)&lt;br /&gt;&lt;/span&gt;  LeaveCriticalSection&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_cs&lt;span class="operator"&gt;);&lt;br /&gt; }&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;           return&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;allocate a CRITICAL_SECTION data structure, g_cs, and then wrapp any code that touches the shared resource.&lt;br /&gt;Notice that I passed the address of g_cs in all calls to EnterCriticalSection and LeaveCriticalSection.&lt;br /&gt;CRITICAL_SECTION is defined in WinNT.h.&lt;br /&gt;Normally CRITICAL_SECTION structures are allocated as global variables.&lt;br /&gt;CRITICAL_SECTION structures can be allocated as local variables or dynamically allocated from a heap.&lt;br /&gt;There are just two requirements. The first is that all threads that want to access the resource must know the address of the CRITICAL_SECTION structure that protects the resource. You can get this address to these threads using any mechanism you like. The second requirement is that the members within the CRITICAL_SECTION structure be initialized before any threads attempt to access the protected resource.&lt;br /&gt;CRITICAL_SECTION structure is initialized by calling VOID InitializeCriticalSection(PCRITICAL_SECTION pcs);&lt;br /&gt;CRITICAL_SECTION structure can be clean up by calling VOID DeleteCriticalSection(PCRITICAL_SECTION pcs);&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Don't Hold Critical Sections for a Long Time&lt;/strong&gt;&lt;br /&gt;When a critical section is held for a long time, other threads might enter wait states, which will hurt your application's performance.&lt;br /&gt;It's impossible to tell how much time the window procedure requires for processing the WM_SOMEMSG message—it might be a few milliseconds or a few years. During that time, no other threads can gain access to the g_s structure. It's better to write the code as follows:&lt;br /&gt;&lt;pre&gt;SOMESTRUCT g_s&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;CRITICAL_SECTION g_cs&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DWORD WINAPI SomeThread&lt;span class="operator"&gt;(&lt;/span&gt;PVOID pvParam&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   EnterCriticalSection&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_cs&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;   SOMESTRUCT sTemp&lt;span class="operator"&gt; =&lt;/span&gt; g_s&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;   LeaveCriticalSection&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_cs&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;   // Send a message to a window.&lt;br /&gt;&lt;/span&gt;   SendMessage&lt;span class="operator"&gt;(&lt;/span&gt;hwndSomeWnd&lt;span class="operator"&gt;,&lt;/span&gt; WM_SOMEMSG&lt;span class="operator"&gt;, &amp;amp;&lt;/span&gt;sTemp&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;   return&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This code saves the value in sTemp, a temporary variable. You can probably guess how long the CPU requires to execute this line—only a few CPU cycles. Immediately after the temporary variable is saved, LeaveCriticalSection is called because the global structure no longer needs to be protected.&lt;br /&gt;other threads are stopped from using the g_s structure for only a few CPU cycles instead of for an unknown amount of time.&lt;br /&gt;&lt;br /&gt;Source: Summary note from my diary.(when I learnt these concepts long back.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-6766928134667931684?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/6766928134667931684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=6766928134667931684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6766928134667931684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6766928134667931684'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/thread-synchronization-in-user-mode2.html' title='Thread Synchronization in User Mode:2'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-9078034132264351924</id><published>2010-04-23T04:49:00.000-07:00</published><updated>2010-04-23T05:10:26.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Application Concepts'/><title type='text'>Thread Synchronization in User Mode:1</title><content type='html'>All threads in the system must have access to system resources such as heaps, serial ports, files, windows, and countless others. If one thread requests exclusive access to a resource, other threads cannot get their work done.&lt;br /&gt;Threads need to communicate with each other in two basic situations:&lt;br /&gt;When you have multiple threads accessing a shared resource in such a way that the resource does not become corrupt&lt;br /&gt;When one thread needs to notify one or more other threads that a specific task has been completed.&lt;br /&gt;&lt;br /&gt;Windows offers many facilities to make thread synchronization easy.&lt;br /&gt;&lt;span class = "fullpost"&gt;&lt;br /&gt;atomic access: A big part of thread synchronization has to do with atomic access—a thread's ability to access a resource with the guarantee that no other thread will access that same resource at the same time. Let's look at a simple example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// Define a global variable.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;long&lt;/span&gt; g_x&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DWORD WINAPI ThreadFunc1&lt;span class="operator"&gt;(&lt;/span&gt;PVOID pvParam&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;   g_x&lt;span class="operator"&gt;++;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;   return&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DWORD WINAPI ThreadFunc2&lt;span class="operator"&gt;(&lt;/span&gt;PVOID pvParam&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;   g_x&lt;span class="operator"&gt;++;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;   return&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;MOV EAX&lt;span class="operator"&gt;, [&lt;/span&gt;g_x&lt;span class="operator"&gt;]       ;&lt;/span&gt; Thread&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt; Move&lt;span class="int"&gt; 0&lt;/span&gt; into a&lt;span class="keyword"&gt; register&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;INC EAX&lt;span class="operator"&gt;              ;&lt;/span&gt; Thread&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt; Increment the&lt;span class="keyword"&gt; register&lt;/span&gt; to&lt;span class="float"&gt; 1.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;MOV EAX&lt;span class="operator"&gt;, [&lt;/span&gt;g_x&lt;span class="operator"&gt;]       ;&lt;/span&gt; Thread&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt; Move&lt;span class="int"&gt; 0&lt;/span&gt; into a&lt;span class="keyword"&gt; register&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;INC EAX&lt;span class="operator"&gt;              ;&lt;/span&gt; Thread&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt; Increment the&lt;span class="keyword"&gt; register&lt;/span&gt; to&lt;span class="float"&gt; 1.&lt;/span&gt;&lt;br /&gt;MOV&lt;span class="operator"&gt; [&lt;/span&gt;g_x&lt;span class="operator"&gt;],&lt;/span&gt; EAX&lt;span class="operator"&gt;       ;&lt;/span&gt; Thread&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt; Store&lt;span class="int"&gt; 1&lt;/span&gt; back in g_x&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;MOV&lt;span class="operator"&gt; [&lt;/span&gt;g_x&lt;span class="operator"&gt;],&lt;/span&gt; EAX&lt;span class="operator"&gt;       ;&lt;/span&gt; Thread&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt; Store&lt;span class="int"&gt; 1&lt;/span&gt; back in g_x&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If the code executes this way, the final value in g_x is 1—not 2 as you expect! This is pretty scary.&lt;br /&gt;To solve the problem above, we need something simple. We need a way to guarantee that the incrementing of the value is done atomically—that is, without interruption. The interlocked family of functions provides the solution we need.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// The long variable shared by many threads&lt;br /&gt;&lt;/span&gt;LONG g_x&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Incorrect way to increment the long&lt;br /&gt;&lt;/span&gt;g_x&lt;span class="operator"&gt;++;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Correct way to increment the long&lt;br /&gt;&lt;/span&gt;InterlockedExchangeAdd&lt;span class="operator"&gt;(&amp;amp;&lt;/span&gt;g_x&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;interlocked functions assert a hardware signal on the bus that prevents another CPU from accessing the same memory address.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-9078034132264351924?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/9078034132264351924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=9078034132264351924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/9078034132264351924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/9078034132264351924'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/thread-synchronization-in-user-mode.html' title='Thread Synchronization in User Mode:1'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-789968788597081605</id><published>2010-04-21T12:10:00.000-07:00</published><updated>2010-05-14T05:52:14.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='abstract Class'/><category scheme='http://www.blogger.com/atom/ns#' term='Sealed Class'/><title type='text'>Abstract and Sealed Class</title><content type='html'>The&lt;strong&gt; abstract &lt;/strong&gt;keyword enables you to create classes and class members that are incomplete and must be implemented in a derived class.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;sealed&lt;/strong&gt; keyword enables you to prevent the inheritance of a class or certain class members that were previously marked virtual. &lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; abstract&lt;span class="keyword"&gt; class&lt;/span&gt; A&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;    // Class members here.&lt;br /&gt;&lt;/span&gt;&lt;span class="operator"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;An abstract class cannot be instantiated. The purpose of an abstract class is to provide a common definition of a base class that multiple derived classes can share. For example, a class library may define an abstract class that is used as a parameter to many of its functions, and require programmers using that library to provide their own implementation of the class by creating a derived class.&lt;br /&gt;&lt;br /&gt;Abstract classes may also define abstract methods. This is accomplished by adding the keyword abstract before the return type of the method. For example:&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; abstract&lt;span class="keyword"&gt; class&lt;/span&gt; A&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt; abstract&lt;span class="type"&gt; void&lt;/span&gt; DoWork&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A sealed class cannot be used as a base class. For this reason, it cannot also be an abstract class. Sealed classes prevent derivation. Because they can never be used as a base class,&lt;br /&gt;A class member, method, field, property, or event, on a derived class that is overriding a virtual member of the base class can declare that member as sealed. This negates the virtual aspect of the member for any further derived class.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="keyword"&gt;public class&lt;/span&gt; D&lt;span class="operator"&gt; :&lt;/span&gt; C&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt; sealed override&lt;span class="type"&gt; void&lt;/span&gt; DoWork&lt;span class="operator"&gt;() { }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-789968788597081605?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/789968788597081605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=789968788597081605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/789968788597081605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/789968788597081605'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/abstract-and-sealed-class.html' title='Abstract and Sealed Class'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7650525573580077455</id><published>2010-04-21T11:25:00.000-07:00</published><updated>2010-05-14T05:53:32.118-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Interface'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='abstract Class'/><title type='text'>Interface and abstract class</title><content type='html'>Sometimes it is simple and helpful to define a class that does nothing but defines a standardised interface that can be used by other classes to make sure the implementation follows a standard set of input and output paramaters. Also this approach results in faster code runs and more maintainable code.&lt;br /&gt;&lt;br /&gt;An interface is a reference type that is somewhat similar to an abstract base class that consists of only abstract members. When a class derives from an interface, it must provide an implementation for all the members of the interface. A class can implement multiple interfaces even though it can derive from only a single direct base class.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;An interface has the following properties:&lt;/strong&gt;&lt;br /&gt;An interface is like an abstract base class: any non-abstract type inheriting the interface must implement all its members.&lt;br /&gt;An interface cannot be instantiated directly.&lt;br /&gt;Interfaces can contain events, indexers, methods and properties.&lt;br /&gt;Interfaces contain no implementation of methods.&lt;br /&gt;Classes and structs can inherit from more than one interface.&lt;br /&gt;An interface can itself inherit from multiple interfaces.&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include&amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;using namespace&lt;/span&gt; std&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;//Shape is an Interface Class. No data and everything pure virtual&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;class&lt;/span&gt; Shape&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="keyword"&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;virtual&lt;/span&gt;&lt;span class="type"&gt; void&lt;/span&gt; Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;) =&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;virtual&lt;/span&gt;&lt;span class="type"&gt; void&lt;/span&gt; Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;) =&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;//Note, no data&lt;br /&gt;&lt;/span&gt;&lt;span class="operator"&gt;};&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;//Derived class - Inherits Shape as Public&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;class&lt;/span&gt; Rectangle&lt;span class="operator"&gt; :&lt;/span&gt;&lt;span class="keyword"&gt; public&lt;/span&gt; Shape&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;private&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; someData&lt;span class="operator"&gt;;&lt;br /&gt;};&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;//Derived class - Inherits Shape as Public&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;class&lt;/span&gt; Triangle&lt;span class="operator"&gt; :&lt;/span&gt;&lt;span class="keyword"&gt; public&lt;/span&gt; Shape&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;private&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; someData&lt;span class="operator"&gt;;&lt;br /&gt;};&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;Rectangle r&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;Triangle t&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"\n\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;r&lt;span class="operator"&gt;.&lt;/span&gt;Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt;4&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;r&lt;span class="operator"&gt;.&lt;/span&gt;Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt;4&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;t&lt;span class="operator"&gt;.&lt;/span&gt;Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt;4&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;t&lt;span class="operator"&gt;.&lt;/span&gt;Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt;4&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"\n\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; Rectangle&lt;span class="operator"&gt;::&lt;/span&gt;Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"\nThe Area of Rectangle for length = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;length&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" and\&lt;br /&gt;breadth = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;breadth&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" is "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;(&lt;/span&gt;length&lt;span class="operator"&gt; *&lt;/span&gt; breadth&lt;span class="operator"&gt;)&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; Rectangle&lt;span class="operator"&gt;::&lt;/span&gt;Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"\nThe Perimeter of Rectangle for length = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;length&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" and\&lt;br /&gt;breadth = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;breadth&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" is "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt; * (&lt;/span&gt;length&lt;span class="operator"&gt; +&lt;/span&gt; breadth&lt;span class="operator"&gt;)&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; Triangle&lt;span class="operator"&gt;::&lt;/span&gt;Area&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"\nThe Area of Triangle for length = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;length&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" and\&lt;br /&gt;breadth = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;breadth&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" is "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;(&lt;/span&gt;length&lt;span class="operator"&gt; *&lt;/span&gt; breadth&lt;span class="operator"&gt;)/&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; Triangle&lt;span class="operator"&gt;::&lt;/span&gt;Perimeter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; length&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; breadth&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"\nThe Perimeter of Triangle for length = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;length&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" and\&lt;br /&gt;breadth = "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;breadth&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;" is "&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;(&lt;/span&gt;length&lt;span class="operator"&gt; *&lt;/span&gt; breadth&lt;span class="operator"&gt;)/&lt;/span&gt;&lt;span class="int"&gt;3&lt;/span&gt;&lt;span class="operator"&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In the above example, Shape class is an 'abstract class'. All the interfaces are 'pure interfaces'. It contains no data. The derived classes now have to define the interace functions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br /&gt;The Area of Rectangle for length = 3 and breadth = 4 is 12.&lt;br /&gt;The Perimeter of Rectangle for length = 3 and breadth = 4 is 14&lt;br /&gt;The Area of Triangle for length = 3 and breadth = 4 is 6&lt;br /&gt;The Perimeter of Triangle for length = 3 and breadth = 4 is 4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Difference between Abstract class and Interface.&lt;/strong&gt;&lt;br /&gt;1).Interface have only signature. whereas Abstract class have signature and definition both r allow.&lt;br /&gt;2). Interface have not allow modifier access. whereas Abstract class are allowed modifier access.&lt;br /&gt;3).Thurogh the Interface we can create the Multiple Inheritance whereas Abstract class are not allow the Multiple Inheritance.&lt;br /&gt;4).Interface is slower compare Abstract class.&lt;br /&gt;&lt;br /&gt;Reference: Interface Entity vs. Abstract class can refer &lt;a href= "http://www.codeproject.com/KB/cs/abstractsvsinterfaces.aspx"&gt; code project's article.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;source:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms173156.aspx"&gt;MSDN &lt;/a&gt;&lt;br /&gt;&lt;a href="http://advancedcppwithexamples.blogspot.com/search/label/Interface%20Class"&gt;Advance C++ blog &lt;/a&gt;&lt;br /&gt;&lt;a href="http://interviews.c-sharpcorner.com/Answer/Answers.aspx?QuestionId=267&amp;amp;MajorCategoryId=1&amp;amp;MinorCategoryId=16"&gt;Interview Corner &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7650525573580077455?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7650525573580077455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7650525573580077455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7650525573580077455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7650525573580077455'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/interface.html' title='Interface and abstract class'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7158197383693483947</id><published>2010-04-21T10:34:00.000-07:00</published><updated>2010-05-14T05:54:32.108-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Polymorphism'/><title type='text'>Polymorphism</title><content type='html'>Polymorphism is often referred to as the third pillar of object-oriented programming, after encapsulation and inheritance. Polymorphism is a Greek word that means &lt;strong&gt;"many-shaped"&lt;/strong&gt; or is characterized by the phrase &lt;strong&gt;"one interface, multiple methods."&lt;/strong&gt; and it has two distinct aspects:&lt;br /&gt;&lt;br /&gt;At run time, objects of a derived class may be treated as objects of a base class in places such as method parameters and collections or arrays. When this occurs, the object's declared type is no longer identical to its run-time type.&lt;br /&gt;&lt;br /&gt;Base classes may define and implement virtualmethods, and derived classes can override them, which means they provide their own definition and implementation. At run-time, when client code calls the method, the CLR looks up the run-time type of the object, and invokes that override of the virtual method. Thus in your source code you can call a method on a base class, and cause a derived class's version of the method to be executed.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Virtual methods enable you to work with groups of related objects in a uniform way. For example, suppose you have a drawing application that enables a user to create various kinds of shapes on a drawing surface. You do not know at compile time which specific types of shapes the user will create. However, the application has to keep track of all the various types of shapes that are created, and it has to update them in response to user mouse actions. You can use polymorphism to solve this problem in two basic steps:&lt;br /&gt;Create a class hierarchy in which each specific shape class derives from a common base class.&lt;br /&gt;Use a virtual method to invoke the appropriate method on any derived class through a single call to the base class method.&lt;br /&gt;First, create a base class called Shape, and derived classes such as Rectangle, Circle, and Triangle. Give the Shape class a virtual method called Draw, and override it in each derived class to draw the particular shape that the class represents. Create a List&lt;Shape&gt; object and add a Circle, Triangle and Rectangle to it. To update the drawing surface, use a foreach loop to iterate through the list and call the Draw method on each Shape object in the list. Even though each object in the list has a declared type of Shape, it is the run-time type (the overridden version of the method in each derived class) that will be invoked. &lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="keyword"&gt;public class&lt;/span&gt; Shape&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;    // A few example members&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;    public&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; X&lt;span class="operator"&gt; {&lt;/span&gt; get&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt; private&lt;/span&gt; set&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; Y&lt;span class="operator"&gt; {&lt;/span&gt; get&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt; private&lt;/span&gt; set&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; Height&lt;span class="operator"&gt; {&lt;/span&gt; get&lt;span class="operator"&gt;;&lt;/span&gt; set&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; Width&lt;span class="operator"&gt; {&lt;/span&gt; get&lt;span class="operator"&gt;;&lt;/span&gt; set&lt;span class="operator"&gt;; }&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt; &lt;br /&gt;    // Virtual method&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;    public virtual&lt;/span&gt;&lt;span class="type"&gt; void&lt;/span&gt; Draw&lt;span class="operator"&gt;()&lt;br /&gt;    {&lt;/span&gt;&lt;br /&gt;        Console&lt;span class="operator"&gt;.&lt;/span&gt;WriteLine&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Performing base class drawing tasks"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt; &lt;br /&gt;class&lt;/span&gt; Circle&lt;span class="operator"&gt; :&lt;/span&gt; Shape&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt; override&lt;span class="type"&gt; void&lt;/span&gt; Draw&lt;span class="operator"&gt;()&lt;br /&gt;    {&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;        // Code to draw a circle...&lt;br /&gt;&lt;/span&gt;        Console&lt;span class="operator"&gt;.&lt;/span&gt;WriteLine&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Drawing a circle"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;        base&lt;span class="operator"&gt;.&lt;/span&gt;Draw&lt;span class="operator"&gt;();&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; Rectangle&lt;span class="operator"&gt; :&lt;/span&gt; Shape&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt; override&lt;span class="type"&gt; void&lt;/span&gt; Draw&lt;span class="operator"&gt;()&lt;br /&gt;    {&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;        // Code to draw a rectangle...&lt;br /&gt;&lt;/span&gt;        Console&lt;span class="operator"&gt;.&lt;/span&gt;WriteLine&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Drawing a rectangle"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;        base&lt;span class="operator"&gt;.&lt;/span&gt;Draw&lt;span class="operator"&gt;();&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; Triangle&lt;span class="operator"&gt; :&lt;/span&gt; Shape&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    public&lt;/span&gt; override&lt;span class="type"&gt; void&lt;/span&gt; Draw&lt;span class="operator"&gt;()&lt;br /&gt;    {&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;        // Code to draw a triangle...&lt;br /&gt;&lt;/span&gt;        Console&lt;span class="operator"&gt;.&lt;/span&gt;WriteLine&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Drawing a triangle"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;        base&lt;span class="operator"&gt;.&lt;/span&gt;Draw&lt;span class="operator"&gt;();&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt; &lt;br /&gt;class&lt;/span&gt; Program&lt;span class="operator"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;    static&lt;/span&gt;&lt;span class="type"&gt; void&lt;/span&gt; Main&lt;span class="operator"&gt;(&lt;/span&gt;string&lt;span class="operator"&gt;[]&lt;/span&gt; args&lt;span class="operator"&gt;)&lt;br /&gt;    {&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;        // Polymorphism at work #1: a Rectangle, Triangle and Circle&lt;br /&gt;        // can all be used whereever a Shape is expected. No cast is&lt;br /&gt;        // required because an implicit conversion exists from a derived &lt;br /&gt;        // class to its base class.&lt;br /&gt;&lt;/span&gt;        System&lt;span class="operator"&gt;.&lt;/span&gt;Collections&lt;span class="operator"&gt;.&lt;/span&gt;Generic&lt;span class="operator"&gt;.&lt;/span&gt;List&lt;span class="operator"&gt;&amp;lt;&lt;/span&gt;Shape&lt;span class="operator"&gt;&amp;gt;&lt;/span&gt; shapes&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="keyword"&gt; new&lt;/span&gt; System&lt;span class="operator"&gt;.&lt;/span&gt;Collections&lt;span class="operator"&gt;.&lt;/span&gt;Generic&lt;span class="operator"&gt;.&lt;/span&gt;List&lt;span class="operator"&gt;&amp;lt;&lt;/span&gt;Shape&lt;span class="operator"&gt;&amp;gt;();&lt;/span&gt;&lt;br /&gt;        shapes&lt;span class="operator"&gt;.&lt;/span&gt;Add&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;new&lt;/span&gt; Rectangle&lt;span class="operator"&gt;());&lt;/span&gt;&lt;br /&gt;        shapes&lt;span class="operator"&gt;.&lt;/span&gt;Add&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;new&lt;/span&gt; Triangle&lt;span class="operator"&gt;());&lt;/span&gt;&lt;br /&gt;        shapes&lt;span class="operator"&gt;.&lt;/span&gt;Add&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;new&lt;/span&gt; Circle&lt;span class="operator"&gt;());&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt; &lt;br /&gt;        // Polymorphism at work #2: the virtual method Draw is&lt;br /&gt;        // invoked on each of the derived classes, not the base class.&lt;br /&gt;&lt;/span&gt;        foreach&lt;span class="operator"&gt; (&lt;/span&gt;Shape s in shapes&lt;span class="operator"&gt;)&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;            s&lt;span class="operator"&gt;.&lt;/span&gt;Draw&lt;span class="operator"&gt;();&lt;br /&gt;        }&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt; &lt;br /&gt;        // Keep the console open in debug mode.&lt;br /&gt;&lt;/span&gt;        Console&lt;span class="operator"&gt;.&lt;/span&gt;WriteLine&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Press any key to exit."&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;        Console&lt;span class="operator"&gt;.&lt;/span&gt;ReadKey&lt;span class="operator"&gt;();&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;}&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br /&gt;    Drawing a rectangle&lt;br /&gt;    Performing base class drawing tasks&lt;br /&gt;    Drawing a triangle&lt;br /&gt;    Performing base class drawing tasks&lt;br /&gt;    Drawing a circle&lt;br /&gt;    Performing base class drawing tasks&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7158197383693483947?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7158197383693483947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7158197383693483947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7158197383693483947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7158197383693483947'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/polymorphism-is-often-referred-to-as.html' title='Polymorphism'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-3157855530653556259</id><published>2010-04-20T06:33:00.001-07:00</published><updated>2010-04-20T08:04:37.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='Pointer'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Pointer to Function (Alternative to switch-case)</title><content type='html'>In previous post, we have seen &lt;em&gt;Function pointer&lt;/em&gt;. Even though a function is not a variable, it still has a physical location in memory that can be assigned to a pointer. A function's address is the entry point of the function. Because of this, a function pointer can be used to call a function&lt;br /&gt;&lt;br /&gt;For example, in an accounting program, you may be presented with a menu that has 20 or more selections.The most common way is to use a switch statement. However, in applications that demand the highest performance, there is a better way. An array of pointers can be created with each pointer in the array containing the address of a function. The selection made by the user is decoded and is used to index into the pointer array, causing the proper function to be executed. &lt;span style="color:#660000;"&gt;This method can be very fast--much faster than the &lt;strong&gt;switch&lt;/strong&gt; method.&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;However, in applications that demand the highest performance, there is a better way. An array of pointers can be created with each pointer in the array containing the address of a function. The selection made by the user is decoded and is used to index into the pointer array, causing the proper function to be executed. This method can be very fast--much faster than the switch method.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="type"&gt;void&lt;/span&gt; enter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;),&lt;/span&gt; del&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;),&lt;/span&gt; review&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;),&lt;/span&gt; quit&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; menu&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt;&lt;span class="operator"&gt; (*&lt;/span&gt;options&lt;span class="operator"&gt;[])(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;) = {&lt;/span&gt;&lt;br /&gt;enter&lt;span class="operator"&gt;,&lt;/span&gt;&lt;br /&gt;del&lt;span class="operator"&gt;,&lt;/span&gt;&lt;br /&gt;review&lt;span class="operator"&gt;,&lt;/span&gt;&lt;br /&gt;quit&lt;span class="operator"&gt;&lt;br /&gt;} ;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;//Notice how the menu( ) function automatically returns the proper index into the pointer array:&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;i&lt;span class="operator"&gt; =&lt;/span&gt; menu&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="comment"&gt; /* get user's choice */&lt;/span&gt;&lt;span class="operator"&gt;&lt;br /&gt;&lt;br /&gt;(*&lt;/span&gt;options&lt;span class="operator"&gt;[&lt;/span&gt;i&lt;span class="operator"&gt;])();&lt;/span&gt;&lt;span class="comment"&gt; /* execute it */&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt; menu&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;char&lt;/span&gt; ch&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;do&lt;/span&gt;&lt;span class="operator"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"1. Enter\n"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"2. Delete\n"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"3. Review\n"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"4. Quit\n"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Select a number: "&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;ch&lt;span class="operator"&gt; =&lt;/span&gt; getche&lt;span class="operator"&gt;();&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\n"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="flow"&gt; while&lt;/span&gt;&lt;span class="operator"&gt;(!&lt;/span&gt;strchr&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"1234"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; ch&lt;span class="operator"&gt;));&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt; ch&lt;span class="operator"&gt;-&lt;/span&gt;&lt;span class="int"&gt;49&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; /* convert to an integer equivalent */&lt;/span&gt;&lt;span class="operator"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; enter&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"In enter."&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; del&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"In del."&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; review&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"In review."&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; quit&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"In quit."&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;exit&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The program works like this. The menu is displayed, and the user enters the number of the selection desired. Since the number is in ASCII, 49 (the decimal value of 0) is subtracted from it in order to convert it into a binary integer. This value is then returned to main( ) and is used as an index to options, the array of function pointers. &lt;strong&gt;Next, the call to the proper function is executed.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Using arrays of function pointers is very common, not only in interpreters and compilers but also in database programs, because often these programs provide a large number of options and efficiency is important.&lt;br /&gt;&lt;br /&gt;Source: C++ Complete Reference.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-3157855530653556259?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/3157855530653556259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=3157855530653556259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3157855530653556259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3157855530653556259'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/pointer-to-function-alternative-to.html' title='Pointer to Function (Alternative to switch-case)'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-866181987358944682</id><published>2010-04-20T01:14:00.000-07:00</published><updated>2010-04-20T08:03:48.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function Pointer'/><category scheme='http://www.blogger.com/atom/ns#' term='Pointer'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Function Pointer</title><content type='html'>A &lt;strong&gt;function pointer&lt;/strong&gt; is a variable that stores the address of a function that can later be called through that function pointer.&lt;br /&gt;function pointers is setting up "&lt;strong&gt;listener&lt;/strong&gt;" or "&lt;strong&gt;callbac&lt;/strong&gt;k" functions that are invoked when a particular event happens. The function is called, and this notifies your code that something of interest has taken place.&lt;br /&gt;&lt;br /&gt;Why would you ever write code with callback functions? You often see it when writing code using someone's library. One example is when you're writing code for a a graphical user interface (GUI). Most of the time, the user will interact with a loop that allows the mouse pointer to move and that redraws the interface. Sometimes, however, the user will click on a button or enter text into a field. These operations are "events" that may require a response that your program needs to handle. How can your code know what's happening? Using Callback functions! The user's click should cause the interface to call a function that you wrote to handle the event.&lt;br /&gt;&lt;br /&gt;To get a sense for when you might do this, consider what might happen if you were using a GUI library that had a "create_button" function. It might take the location where a button should appear on the screen, the text of the button, and a function to call when the button is clicked. Assuming for the moment that C (and C++) had a generic "function pointer" type called function, this might look like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="type"&gt;void&lt;/span&gt; create_button&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; x&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; y&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="keyword"&gt; const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;text&lt;span class="operator"&gt;,&lt;/span&gt; function callback_func&lt;span class="operator"&gt; );&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Whenever the button is clicked, callback_func will be invoked. Exactly what callback_func does depends on the button; this is why allowing the create_button function to take a function pointer is useful.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt; my_int_func&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; x&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;    printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt; "%d\n"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; x&lt;span class="operator"&gt; );&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;    void&lt;/span&gt;&lt;span class="operator"&gt; (*&lt;/span&gt;foo&lt;span class="operator"&gt;)(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;    /* the ampersand is actually optional */&lt;/span&gt;&lt;br /&gt;    foo&lt;span class="operator"&gt; = &amp;amp;&lt;/span&gt;my_int_func&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;       /* call my_int_func (note that you do not need to write (*foo)(2) ) */&lt;/span&gt;&lt;br /&gt;       foo&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;       /* but if you want to, you may */&lt;/span&gt;&lt;span class="operator"&gt;&lt;br /&gt;       (*&lt;/span&gt;foo&lt;span class="operator"&gt;)(&lt;/span&gt;&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt; );&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;    return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Example of check numeric value using function pointer.&lt;br /&gt;&lt;/span&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="pre"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; check&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;a&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;b&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt;&lt;span class="operator"&gt; (*&lt;/span&gt;cmp&lt;span class="operator"&gt;) (&lt;/span&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *,&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;     const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *));&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; int&lt;/span&gt; numcmp&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;a&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="keyword"&gt; const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;b&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;  char&lt;/span&gt; s1&lt;span class="operator"&gt;[&lt;/span&gt;&lt;span class="int"&gt;80&lt;/span&gt;&lt;span class="operator"&gt;],&lt;/span&gt; s2&lt;span class="operator"&gt;[&lt;/span&gt;&lt;span class="int"&gt;80&lt;/span&gt;&lt;span class="operator"&gt;];&lt;/span&gt;&lt;br /&gt;  gets&lt;span class="operator"&gt;(&lt;/span&gt;s1&lt;span class="operator"&gt;);&lt;/span&gt;&lt;br /&gt;  gets&lt;span class="operator"&gt;(&lt;/span&gt;s2&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;  if&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;isalpha&lt;span class="operator"&gt;(*&lt;/span&gt;s1&lt;span class="operator"&gt;))&lt;/span&gt;&lt;br /&gt;     check&lt;span class="operator"&gt;(&lt;/span&gt;s1&lt;span class="operator"&gt;,&lt;/span&gt; s2&lt;span class="operator"&gt;,&lt;/span&gt; strcmp&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  else&lt;/span&gt;&lt;br /&gt;     check&lt;span class="operator"&gt;(&lt;/span&gt;s1&lt;span class="operator"&gt;,&lt;/span&gt; s2&lt;span class="operator"&gt;,&lt;/span&gt; numcmp&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;   return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; check&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;a&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;b&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt;&lt;span class="operator"&gt; (*&lt;/span&gt;cmp&lt;span class="operator"&gt;) (&lt;/span&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *,&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;     const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *))&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;  printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Testing for equality.\n"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  if&lt;/span&gt;&lt;span class="operator"&gt;(!(*&lt;/span&gt;cmp&lt;span class="operator"&gt;) (&lt;/span&gt;a&lt;span class="operator"&gt;,&lt;/span&gt; b&lt;span class="operator"&gt;))&lt;/span&gt; printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Equal"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  else&lt;/span&gt; printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"Not equal"&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt; numcmp&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;a&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="keyword"&gt; const&lt;/span&gt;&lt;span class="type"&gt; char&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;b&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  if&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;atoi&lt;span class="operator"&gt;(&lt;/span&gt;a&lt;span class="operator"&gt;)==&lt;/span&gt;atoi&lt;span class="operator"&gt;(&lt;/span&gt;b&lt;span class="operator"&gt;))&lt;/span&gt;&lt;span class="flow"&gt; return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;  else return&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can often &lt;strong&gt;avoid the need for explicit function pointers&lt;/strong&gt; by using virtual functions. For instance, you could write a sorting routine that takes a pointer to a class that provides a &lt;strong&gt;virtual function &lt;/strong&gt;called compare:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;Benefits of Function Pointers&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Function pointers provide a way of passing around instructions for how to do something&lt;br /&gt;You can write flexible functions and libraries that allow the programmer to choose behavior by passing function pointers as arguments&lt;br /&gt;This flexibility can also be achieved by using classes with virtual functions&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;1) http://www.cprogramming.com/tutorial/function-pointers.html&lt;br /&gt;2) C++ reference fourth edition&lt;br /&gt;3) MSDN&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-866181987358944682?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/866181987358944682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=866181987358944682' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/866181987358944682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/866181987358944682'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/function-pointer.html' title='Function Pointer'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-673887166549133840</id><published>2010-04-19T09:35:00.000-07:00</published><updated>2010-04-20T08:03:26.626-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage Class Specifier'/><title type='text'>Storage Class Specifier</title><content type='html'>&lt;strong&gt;&lt;span style="color:#660000;"&gt;What is storage class specifer?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There are four storage class specifiers supported by C. They are&lt;br /&gt;extern&lt;br /&gt;static&lt;br /&gt;register&lt;br /&gt;auto&lt;br /&gt;&lt;br /&gt;These tell the compiler how the variable that follows should be stored.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;extern variable:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Because C allows separately compiled modules of a large program to be linked together to speed up compilation and aid in the management of large projects, there must be some way of telling all the files about the global variables required by the program. The solution is to declare all of your globals in one file and use extern declarations in the other&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;extern statements are declarations, but not definitions. They simply tell the compiler that a definition exists elsewhere in the program.&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt;File&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt; x&lt;span class="operator"&gt;,&lt;/span&gt;y&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; fun1&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;   x&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="int"&gt; 22&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;pre&gt;File&lt;span class="int"&gt; 2&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;extern&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; x&lt;span class="operator"&gt;,&lt;/span&gt;y&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; fun2&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;   y&lt;span class="operator"&gt; =&lt;/span&gt; x&lt;span class="operator"&gt;/&lt;/span&gt;&lt;span class="int"&gt;2&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Although &lt;strong&gt;extern &lt;/strong&gt;variable declarations can occur inside the same file as the global declaration, they are not necessary. If the C compiler encounters a variable that has not been declared, the compiler checks whether it matches any of the global variables. If it does, the compiler assumes that the global variable is the one being referenced.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;static variable:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;static local variable&lt;/span&gt;.&lt;/em&gt;&lt;br /&gt;When&lt;strong&gt; static &lt;/strong&gt;is applied to a local variable it causes the compiler to create permanent storage for it in much the same way that it does for a global variable.&lt;br /&gt;When modifying a data member in a class declaration, the &lt;strong&gt;static&lt;/strong&gt; keyword specifies that one copy of the member is shared by all instances of the class. When modifying a member function in a class declaration, the static keyword specifies that the function accesses only static members.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// static1.cpp&lt;br /&gt;&lt;/span&gt;&lt;span class="pre"&gt;#include &lt;iostream&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;using namespace&lt;/span&gt; std&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt; showstat&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; curr&lt;span class="operator"&gt; )&lt;br /&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;static&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; nStatic&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // Value of nStatic is retained // between each function call&lt;br /&gt;&lt;/span&gt;nStatic&lt;span class="operator"&gt; +=&lt;/span&gt; curr&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &lt;/span&gt;&lt;span class="string"&gt;"nStatic is "&lt;/span&gt;&lt;span class="operator"&gt; &lt;&lt; &lt;/span&gt;nStatic&lt;span class="operator"&gt; &lt;&lt; &lt;/span&gt;endl&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt; int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt; for&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; i&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt; &amp;lt;&lt;/span&gt;&lt;span class="int"&gt; 5&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++ )&lt;/span&gt;&lt;br /&gt;showstat&lt;span class="operator"&gt;(&lt;/span&gt; i&lt;span class="operator"&gt; );&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;output:&lt;/span&gt;&lt;br /&gt;nStatic is 0&lt;br /&gt;nStatic is 1&lt;br /&gt;nStatic is 3&lt;br /&gt;nStatic is 6&lt;br /&gt;nStatic is 10 &lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;static global variable:&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;When the specifier &lt;strong&gt;static&lt;/strong&gt; is applied to a global variable, it instructs the compiler to create a global variable that is known only to the &lt;em&gt;file&lt;/em&gt; in which the static global variable is declared.&lt;br /&gt;This means that even though the variable is global, other routines in other files may have no knowledge of it or alter its contents directly;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;Register Variable:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The &lt;strong&gt;register&lt;/strong&gt; specifier requests the compiler to store a variable declared with this modifier in a manner that allows the fastest access time possible. For integers and characters, this typically means in the register of the CPU rather than in memory, where normal variables are stored.&lt;br /&gt;&lt;br /&gt;In Borland C++, the &lt;strong&gt;register&lt;/strong&gt; specifier may be applied to local variables and to the formal parameters in a function.&lt;br /&gt;You cannot apply &lt;strong&gt;register&lt;/strong&gt; to global variables.&lt;br /&gt;Also, because a &lt;strong&gt;register&lt;/strong&gt; variable may be stored in a register of the CPU, you cannot obtain the address of a register variable. (This restriction applies only to C, and not C++.)&lt;br /&gt;&lt;br /&gt;In general, operations on &lt;strong&gt;register&lt;/strong&gt; variables occur much faster than on variables stored in main memory. In fact, when the value of a variable is actually held in the CPU, no memory access is required to determine or modify its value. This makes register variables ideal for loop control.&lt;br /&gt;&lt;br /&gt;It is important to understand that the &lt;strong&gt;register &lt;/strong&gt;specifier is just a request to the compiler, which the compiler is free to ignore. However, in general, you can count on at least two register variables of type &lt;strong&gt;char&lt;/strong&gt; or &lt;strong&gt;int&lt;/strong&gt; actually being held in a CPU &lt;strong&gt;register&lt;/strong&gt; for any one function. Additional register variables will be optimized to the best ability of the compiler.&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-673887166549133840?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/673887166549133840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=673887166549133840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/673887166549133840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/673887166549133840'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/storage-class-specifier.html' title='Storage Class Specifier'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-3057626768547211446</id><published>2010-04-19T06:42:00.000-07:00</published><updated>2010-04-20T08:02:59.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='C Basics'/><title type='text'>C, C++ fundamentals, interview questions.</title><content type='html'>&lt;span style="color:#660000;"&gt;&lt;strong&gt;What is difference between interpreter and a compiler?&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;An interpreter&lt;/strong&gt; reads the source code of your program one line at a time, performs the specific instructions containted in that line. and then gets the next line.&lt;br /&gt;&lt;strong&gt;A compiler&lt;/strong&gt; reads the entire program and converts it into object code, which is translation of the program source code into a form that can be directly executed by the computer.&lt;br /&gt;object code is also called binary code or machine code. once a program is compiled, a line of source code is no longer meaningful in the execution of the program.&lt;br /&gt;&lt;em&gt;For example, BASIC is usually interpreted and C is usually compiled.&lt;br /&gt;&lt;/em&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;A C Program's Memory Map&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;A compiled C program creates and uses four logically distinct regions of memory that serve specific functions. The first region is the memory that actually holds the code of your program. The next region is the memory where global variables are stored. The remaining two regions are the stack and the heap. The stack is used for a great many things while your program executes. It holds the return address of function calls, arguments to functions, and local variables. It is also used to save the current state of the CPU. The heap is a region of free memory, which your program can use via C's dynamic allocation functions, for things like linked lists and trees.&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 164px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5461843959204714850" border="0" alt="" src="http://1.bp.blogspot.com/_jeYO6OeMsY0/S8xeJI8CmWI/AAAAAAAAHo4/qFCb8LKjzPU/s400/C_Memory_Map.jpg" /&gt;&lt;br /&gt;fig (a): Conceptual Memory Map of C.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;General Terms and defenition to understand C, C++ basics&lt;/span&gt;.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Source Code&lt;/td&gt;&lt;td&gt;The text of a program that you can read; commonly thought of as the program. The source code is input into the compiler.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Object code &lt;/td&gt;&lt;td&gt;Translation of the source code of a program into machine code. Object code is the input to the linker.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Linker&lt;/td&gt;&lt;td&gt;A program that links separately compiled functions together into one program. It combines the functions in the standard C library with the code that you wrote. The output of the linker is an executable program.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Library&lt;/td&gt;&lt;td&gt;The file containing the standard functions that can be used by your program. These functions include all I/O operations as well as other useful routines.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;&lt;strong&gt;Variable, Constant, Operator and Expression&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;Variables and constants are manipulated by operators to form expressions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;What is identifier?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The names that are used for variables, functions, labels, and various other user-defined objects are called &lt;em&gt;identifiers&lt;/em&gt;.&lt;br /&gt;for ex. count, test123, high_balance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;what is data type?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;there are five basic data type in C:&lt;br /&gt;character, integer, floating point, double floating point, and valueless.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;What is type modifier?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Excepting type void, the basic data types may have various modifiers preceding them. A modifier is used to alter the meaning of the base type to fit the needs of various situations more precisely. The list of modifiers is shown here:&lt;br /&gt;signed&lt;br /&gt;unsigned&lt;br /&gt;long&lt;br /&gt;short&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;All Possible Combinations of the Basic Types and Modifiers for 32-Bit Word Sizes&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Bit Width&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;char&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;-128 to 127&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;unsigned char&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0 to 255&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;signed char&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;-128 to 127&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;int&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;-32768 to 32767&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;unsigned int&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0 to 655365&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;signed int&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:85%;color:#333333;"&gt;-32768 to 32767&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;signed int&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;-32768 to 32767&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;unsigned short int&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0 to 655365&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;signed short int&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;-32768 to 32787&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;long int&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;-2147483648 to 2147483647 &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;unsigned long int&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0 to 4294967295&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;signed long int&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;-2147483648 to 2147483647&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;float&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;3.4E - 38 to 3.4E + 48&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;double&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;1.7E-308 to 1.7E+308&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;long double&lt;/td&gt;&lt;td&gt;80&lt;/td&gt;&lt;td&gt;3.4E-4932 to 1.1E+4932&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The difference between signed and unsigned integers is in the way the high-order bit of the integer is interpreted. If a signed integer is specified, then the compiler will generate code that assumes the high-order bit of an integer is to be used as a sign flag. If the sign bit is 0, then the number is positive; if it is 1, then the number is negative.&lt;br /&gt;&lt;br /&gt;-127 : 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1&lt;br /&gt;127 : 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;what is access modifiers?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;C has two type modifiers that are used to control the ways in which variables may be accessed or modified. These modifiers are called &lt;strong&gt;const&lt;/strong&gt; and &lt;strong&gt;volatile&lt;/strong&gt;.&lt;br /&gt;Variables of type const may not be changed during execution by your program. For example,&lt;br /&gt;&lt;em&gt;const int a; &lt;/em&gt;&lt;br /&gt;will create an integer variable called &lt;strong&gt;a&lt;/strong&gt; that cannot be modified by your program. It can, however, be used in other types of expressions.&lt;br /&gt;&lt;br /&gt;The modifier volatile is used to tell the compiler that a variable's value can be changed in ways not explicitly specified by the program.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;volatile&lt;/strong&gt; keyword is a type qualifier used to declare that an object can be modified in the program by something such as the operating system, the hardware, or a concurrently executing thread.&lt;br /&gt;a variable or object declared with the volatile keyword may be modified externally from the declaring object. Variables declared to be volatile will not be optimized by the compiler because the compiler must assume that their values can change at any time.&lt;br /&gt;For example,&lt;br /&gt;if 0x30 is assumed to be the address of a port that is changed by external conditions only. then you use const and voletile togather.&lt;br /&gt;&lt;br /&gt;const volatile unsigned char *port=0x30;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;&lt;strong&gt;What is local variable and where it is stored?&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Variables that are declared inside a function are called local variables. One of the most important things to understand about local variables is that they exist only while the block of code in which they are declared is executing. That is, a local variable is created upon entry into its block and destroyed upon exit. keyword &lt;strong&gt;auto&lt;/strong&gt; (optional) also you can use to declare local variable.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here, the local variable &lt;strong&gt;s&lt;/strong&gt; is known only within the &lt;strong&gt;if&lt;/strong&gt; code block. Since &lt;strong&gt;s&lt;/strong&gt; is known only within the &lt;strong&gt;if&lt;/strong&gt; block, it may not be referenced elsewhere--not even in other parts of the function that contains it.&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;storage for local variables is on the stack. The fact that the stack is a dynamic and changing region of memory explains why local variables cannot, in general, hold their values between function calls.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;What is global variable? Can local variable and global have variable same name? If yes, then which variable function code will refer?&lt;br /&gt;where global variable storage?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Unlike local variables, &lt;em&gt;global variables&lt;/em&gt; are known throughout the entire program and may be used by any piece of code. Also, they will hold their values during the entire execution of the program.&lt;br /&gt;&lt;br /&gt;if a global variable and a local variable have the same name, all references to that name inside the function where the local variable is declared refer to the local variable and have no effect on the global variable. This is a convenient benefit. However, forgetting this can cause your program to act very strangely, even though it "looks" correct.&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Storage for global variables is in a fixed region of memory set aside for this purpose by the compiler. Global variables are very helpful when the same data is used in many functions in your program. You should avoid using unnecessary global variables, however, for three reasons:&lt;br /&gt;1. They take up memory the entire time your program is executing, not just when they are needed.&lt;br /&gt;2. Using a global variable where a local variable will do makes a function less general because it relies on something that must be defined outside itself.&lt;br /&gt;3. Using a large number of global variables can lead to program errors because of unknown, and unwanted, side effects.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-3057626768547211446?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/3057626768547211446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=3057626768547211446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3057626768547211446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3057626768547211446'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/c-c-fundamentals-interview-questions.html' title='C, C++ fundamentals, interview questions.'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jeYO6OeMsY0/S8xeJI8CmWI/AAAAAAAAHo4/qFCb8LKjzPU/s72-c/C_Memory_Map.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7863895361050983195</id><published>2010-04-14T04:23:00.000-07:00</published><updated>2010-04-14T08:43:13.882-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Operating System'/><title type='text'>Thread Basics</title><content type='html'>After Process, Few basics about Thread. This is my summary note from my diary: Source: Programming Application for Microsoft Windows by Jeffrey Richter.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Thread Introduction.&lt;/strong&gt;&lt;br /&gt;Like a process kernel object and an address space, a thread consists of two components:&lt;br /&gt;A kernel object that the operating system uses to manage the thread. The kernel object is also where the system keeps statistical information about the thread.&lt;br /&gt;A thread stack that maintains all the function parameters and local variables required as the thread executes code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How exactly Process and Thread works:&lt;/strong&gt;&lt;br /&gt;When a thread calls CreateProcess, the system creates a process kernel object with an initial usage count of 1. This process kernel object is not the process itself but a small data structure that the operating system uses to manage the process—process kernel object as a small data structure that consists of statistical information about the process. The system then creates a virtual address space for the new process and loads the code and data for the executable file and any required DLLs into the process's address space.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The system then creates a thread kernel object (with a usage count of 1) for the new process's primary thread. Like the process kernel object, the thread kernel object is a small data structure that the operating system uses to manage the thread. This primary thread begins by executing the C/C++ run-time startup code, which eventually calls your WinMain, wWinMain, main, or wmain function. If the system successfully creates the new process and primary thread, CreateProcess returns TRUE.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Points to know about Thread:&lt;/strong&gt;&lt;br /&gt;Every thread must have an entry-point function where it begins execution.&lt;br /&gt;Entry-point function for primary thread: main, wmain, WinMain, or wWinMain.&lt;br /&gt;&lt;br /&gt;If you want to create a secondary thread in your process, it must also have an entry-point function, which should look something like this:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;DWORD WINAPI ThreadFunc(PVOID pvParam){&lt;br /&gt;DWORD dwResult = 0;.&lt;br /&gt;.......&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;em&gt;.......&lt;br /&gt;return(dwResult);&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;Thread function can perform any task you want it to. Ultimately, thread function will come to an end and return. At this point, your thread stops running, the memory for its stack is freed, and the usage count of your thread's kernel object is decremented. If the usage count becomes 0, the thread kernel object is destroyed. Like process kernel objects, thread kernel objects always live at least as long as the thread they are associated with, but the object might live well beyond the lifetime of the thread itself.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;Unlike a primary thread's entry-point function, which must be named &lt;em&gt;main, wmain, WinMain,&lt;/em&gt; or&lt;em&gt; wWinMain&lt;/em&gt;, a thread function can have any name. In fact, if you have multiple thread functions in your application, you have to give them different names or the compiler/linker will think that you've created multiple implementations for a single function.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;Thread function must return a value, which becomes the thread's exit code.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;Thread function (and really all functions) should try to use function parameters and local variables as much as possible. When you use static and global variables, multiple threads can access the variables at the same time, potentially corrupting the variables' contents. However, parameters and local variables are created on the thread's stack and are therefore far less likely to be corrupted by another thread.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Terminating a Thread&lt;/strong&gt;&lt;br /&gt;A thread can be terminated in four ways:&lt;br /&gt;&lt;span style="color:#660000;"&gt;The thread function returns. (This is highly recommended.)&lt;/span&gt;&lt;br /&gt;&lt;em&gt;VOID ExitThread(DWORD dwExitCode);&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;This function terminates the thread and causes the operating system to clean up all of the operating system resources that were used by the thread. However, your C/C++ resources (such as C++ class objects) will not be destroyed. For this reason, it is much better to simply return from your thread function instead of calling ExitThread yourself.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;The thread kills itself by calling the ExitThread function. (Avoid this method.)&lt;/span&gt;&lt;br /&gt;&lt;em&gt;BOOL TerminateThread(&lt;br /&gt;HANDLE hThread,&lt;br /&gt;DWORD dwExitCode);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Unlike ExitThread, which always kills the calling thread, TerminateThread can kill any thread. The hThread parameter identifies the handle of the thread to be terminated. When the thread terminates, its exit code becomes the value you passed as the dwExitCode parameter. Also, the thread's kernel object has its usage count decremented.&lt;br /&gt;A well-designed application never uses this function because the thread being terminated receives no notification that it is dying. The thread cannot clean up properly and it cannot prevent itself from being killed. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;A thread in the same or in another process calls the TerminateThread function. (Avoid this method.)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The ExitProcess and TerminateProcess functions terminate threads. The difference is that these functions terminate all the threads contained in the process being terminated. Also, since the entire process is being shut down, all resources in use by the process are guaranteed to be cleaned up.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some Thread Internals&lt;/strong&gt; : &lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 123px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5459953821230131682" border="0" alt="" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/S8WnEoR1aeI/AAAAAAAAHow/3HCmnRjF8CM/s320/Threads_Internal.jpg" /&gt;&lt;br /&gt;A call to CreateThread causes the system to create a thread kernel object. This object has an initial usage count of 2.&lt;br /&gt;Other properties of the thread's kernel object are also initialized: the suspension count is set to 1, the exit code is set to STILL_ACTIVE (0x103), and the object is set to the nonsignaled state.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Once the kernel object has been created, the system allocates memory, which is used for the thread's stack. This memory is allocated from the process's address space since threads don't have an address space of their own.&lt;/p&gt;&lt;p&gt;The system then writes two values to the upper end of the new thread's stack.The first value written to the stack is the value of the pvParam parameter that you passed to CreateThread. Immediately below it is the pfnStartAddr value that you also passed to CreateThread.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Each thread has its own set of CPU registers, called the thread's context. The context reflects the state of the thread's CPU registers when the thread last executed. The set of CPU registers for the thread is saved in a CONTEXT structure (defined in the WinNT.h header file). &lt;/p&gt;&lt;p&gt;The CONTEXT structure is itself contained in the thread's kernel object.&lt;br /&gt;The instruction pointer and stack pointer registers are the two most important registers in the thread's context.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;When the thread's kernel object is initialized, the CONTEXT structure's stack pointer register is set to the address of where pfnStartAddr was placed on the thread's stack. The instruction pointer register is set to the address of a function called BaseThreadStart. This function is contained inside the Kernel32.dll module&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7863895361050983195?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7863895361050983195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7863895361050983195' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7863895361050983195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7863895361050983195'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/after-process-few-basics-about-thread.html' title='Thread Basics'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jeYO6OeMsY0/S8WnEoR1aeI/AAAAAAAAHow/3HCmnRjF8CM/s72-c/Threads_Internal.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7098211882073258663</id><published>2010-04-09T02:31:00.001-07:00</published><updated>2010-04-09T02:35:52.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='India'/><category scheme='http://www.blogger.com/atom/ns#' term='Telecom news'/><title type='text'>India's billion-dollar 3G auction set to open</title><content type='html'>Since last few months, specialist in Mobile telecommunication were talking about India should go for 3G or 4G?&lt;br /&gt;&lt;br /&gt;Finally an auction set to open on Friday, India's mobile firms will bid billions of dollars to provide superfast third generation (3G) service in the country's booming cellular market.&lt;br /&gt;&lt;br /&gt;The government is hoping to reap around eight billion dollars from the sale of 3G airwaves and a follow-up auction of broadband wireless access spectrum in what will be the largest such sale in recent years.&lt;br /&gt;&lt;br /&gt;"The major operators will bid aggressively. It will be very important for them to win 3G slots to retain their high-end subscribers," said Kunal Bajaj, managing director at telecoms consulting firm BDA Connect.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The starting price has been set at 780 million dollars for pan-India 3G licences but analysts expect the bidding to go much higher because of the scramble for spectrum in the congested market, which has over a dozen players.&lt;br /&gt;&lt;br /&gt;"The bids should be double (the base price)," forecast Romal Shetty, executive director for telecommunications at KPMG?s Indian unit.&lt;br /&gt;&lt;br /&gt;Nine of the cellular firms plan to bid for 3G spectrum in the world's fastest-growing mobile market.&lt;br /&gt;&lt;br /&gt;3G allows mobile phone users to surf the Internet, video conference and download music, video and other content at a much faster pace than the current second-generation or 2G service.&lt;br /&gt;&lt;br /&gt;Top mobile operators such as Bharti Airtel and Reliance Communications will be in the fray as the bidding progresses over several days, with foreign-backed Vodafone Essar and Tata DoCoMo also in the running.&lt;br /&gt;&lt;br /&gt;The addition of 3G is seen as giving a major boost to a mobile market already growing by 15 to 20 million subscribers a month. Mobile subscribers totalled 545 million at last count.&lt;br /&gt;&lt;br /&gt;But for at least the first year, the main focus for phone companies is expected to be on improving call quality.&lt;br /&gt;&lt;br /&gt;JPMorgan said in a report the bidding could "stretch balance sheets" of mobile companies that have already been undermined by fierce tariff battles which have reduced calling costs to less than a cent a minute and hit revenues.&lt;br /&gt;&lt;br /&gt;India, a country of 1.2 billion people, is playing catch-up as it is the biggest major economy not to have widespread 3G services.&lt;br /&gt;&lt;br /&gt;The country is following in the footsteps of fellow emerging market giant China, which started offering 3G services last year.&lt;br /&gt;&lt;br /&gt;Even if India's government gets eight billion dollars for the airwaves, the sum will come nowhere near the 19 billion raised by the US government two years ago and the 35billion earned by Britain in 2000.&lt;br /&gt;&lt;br /&gt;Source: Yahoo News&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7098211882073258663?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7098211882073258663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7098211882073258663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7098211882073258663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7098211882073258663'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/indias-billion-dollar-3g-auction-set-to.html' title='India&apos;s billion-dollar 3G auction set to open'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-404605237979541190</id><published>2010-04-07T02:58:00.001-07:00</published><updated>2010-04-07T03:09:34.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operating System'/><title type='text'>Process</title><content type='html'>Long back after graduation, when I started learning programming, I learnt OS concepts. Here just sharing few important points from my diary about process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;A process is usually defined as an instance of a running program and consists of two components:&lt;br /&gt;1) A kernel object that the operating system uses to manage the process. The kernel object is also where the system keeps statistical information about the process.&lt;br /&gt;2) An address space that contains all the executable or DLL module's code and data. It also contains dynamic memory allocations such as thread stacks and heap allocations.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How Process and Thread work for any Application&lt;/strong&gt;&lt;br /&gt;For a process to accomplish anything, it must have a thread that runs in its context; this thread is responsible for executing the code contained in the process's address space. In fact, a single process might contain several threads, all of them executing code "simultaneously" in the process's address space. To do this, each thread has its own set of CPU registers and its own stack.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;Each process has at least one thread that executes code in the process's address space. If there were no threads executing code in the process's address space, there would be no reason for the process to continue to exist, and the system would automatically destroy the process and its address space.&lt;br /&gt;For all of these threads to run, the operating system schedules some CPU time for each thread.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How OS load any application or run GUI or CUI application?&lt;/strong&gt;&lt;br /&gt;Notepad, Calculator , Wordpad are GUI-based application.&lt;br /&gt;CUI-based applications are contained within a window on the screen, the window contains only text. The command shell - cmd.exe is a CUI based application.&lt;br /&gt;&lt;br /&gt;When there is any application project has been created, that time the integrated environment sets up various linker switches so that the linker embeds the proper type of subsystem in the resulting executable. This linker switch is /SUBSYSTEM:CONSOLE for CUI application and&lt;br /&gt;/SUBSYSTEM:WINDOWS for GUI application.&lt;br /&gt;When user runs an application, the OS header looks inside the executable image's header and grabs this subsystem value.&lt;br /&gt;If the value indicates a CUI-based application, the loader automatically ensures that a text console window is created for the application. If the value indicates a GUI-based application, the loader doesn't create the console window and just loads the application. Once the application starts running, the operating system doesn't care what type of UI your application has.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How Any Window Application Starts running?&lt;/strong&gt;&lt;br /&gt;Windows application must have an entry-point function that is called when the application starts running. There are four possible entry-point functions:&lt;br /&gt;&lt;em&gt;WinMain, wWinMain, main, wmain.&lt;/em&gt;&lt;br /&gt;The operating system doesn't actually call the entry-point function you write. Instead, it calls a C/C++ run-time startup function. This function initializes the C/C++ run-time library so that you can call functions such as malloc and free. It also ensures that any global and static C++ objects that you have declared are constructed properly before your code executes.&lt;br /&gt;The linker is responsible for choosing the proper C/C++ run-time startup function when it links your executable. If the /SUBSYSTEM:WINDOWS linker switch is specified, the linker expects to find either a WinMain or wWinMain function.it chooses either the WinMainCRTStartup or wWinMainCRTStartup function (Startup fn embedded in your executable), respectively.&lt;br /&gt;Likewise, if the /SUBSYSTEM:CONSOLE linker switch is specified, the linker expects to find either a main or wmain function and chooses either the mainCRTStartup or wmainCRTStartup function (Startup fn embedded in your executable), respectively. &lt;br /&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;strong&gt;Project settings&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;New Windows/Visual C++ developers commonly make is to accidentally select the wrong project type when they create a new project. For example, a developer might create a new Win32 Application project but create an entry-point function of main. When building the application, the developer will get a linker error because a Win32 Application project sets the /SUBSYSTEM:WINDOWS linker switch but no WinMain or wWinMain function exists.&lt;br /&gt;to solve this Click on the Link tab of the Project Settings dialog box and change the /SUBSYSTEM:WINDOWS switch to /SUBSYSTEM :CONSOLE. This is an easy way to fix the problem;&lt;br /&gt;C/C++ run-time startup functions do basically the same thing. for that code for the four startup functions in the CRt0.c file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Process Instance:&lt;/strong&gt;&lt;br /&gt;Every executable or DLL file loaded into a process's address space is assigned a unique instance handle. Your executable file's instance is passed as (w)WinMain's first parameter, hinstExe. The handle's value is typically needed for calls that load resources. For example, to load an icon resource from the executable file's image, you need to call this function:&lt;br /&gt;&lt;em&gt;HICON LoadIcon(&lt;br /&gt;HINSTANCE hinst,&lt;br /&gt;PCTSTR pszIcon);&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;Similarly we can always get and set, Process Instance Handle, Process's Previous Instance Handle, Process's Command Line, Process Environment variables, Process's Error Mode, Process's current drive and directory, Process's current directories, System Version etc. by using set of function calls&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Source: Programming Application for Microsoft Window (by Jeffrey Richter), OS basics book (Engg. Syllabus)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-404605237979541190?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/404605237979541190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=404605237979541190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/404605237979541190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/404605237979541190'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/process.html' title='Process'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-5932094617390119592</id><published>2010-04-01T02:36:00.000-07:00</published><updated>2010-04-20T08:02:05.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operator Overloading'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Overloading new and delete</title><content type='html'>From my diary:&lt;br /&gt;&lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;Was developing a &lt;em&gt;galileoRx &lt;/em&gt;class where in many parameters need to allocate and free memory of different size. Naturally for one or two variables it is just a new and delete simple syntax code.&lt;br /&gt;But, here many parameters, my code was not readable and on top of that everytime, &lt;strong&gt;size_t&lt;/strong&gt; I need to give according to the array size for different variables.&lt;br /&gt;&lt;em&gt;This problem we can solve using operator overloading. (new and delete overloading)&lt;br /&gt;&lt;/em&gt;I cannot give example of my own code here. (That is illegal)&lt;br /&gt;But here, one sample code to explain how to do &lt;strong&gt;operator overloading&lt;/strong&gt; using &lt;strong&gt;new&lt;/strong&gt; and &lt;strong&gt;delete&lt;/strong&gt;.&lt;br /&gt;The skeletons for the functions that overload &lt;strong&gt;new&lt;/strong&gt; and &lt;strong&gt;delete&lt;/strong&gt; are shown here:&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;// Allocate an object.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;&lt;span class="keyword"&gt;operator new&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;size_t size&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;/* Perform allocation. Throw bad_alloc on failure.&lt;br /&gt;Constructor called automatically. */&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt; pointer_to_memory&lt;span class="operator"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;span class="comment"&gt;// Delete an object.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="keyword"&gt; operator delete&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;p&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;/* Free memory pointed to by p.&lt;br /&gt;Destructor called automatically. */&lt;/span&gt;&lt;span class="operator"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The type &lt;strong&gt;size_t&lt;/strong&gt; is a defined type capable of containing the largest single piece of memory that can be allocated. (&lt;strong&gt;size_t&lt;/strong&gt; is essentially an unsigned integer.) The parameter size will contain the number of bytes needed to hold the object being allocated. This is the amount of memory that your version of &lt;strong&gt;new&lt;/strong&gt; must allocate. The overloaded &lt;strong&gt;new&lt;/strong&gt; function must return a pointer to the memory that it allocates, or throw a &lt;strong&gt;bad_alloc&lt;/strong&gt; exception if an allocation error occurs.&lt;br /&gt;The &lt;strong&gt;delete&lt;/strong&gt; function receives a pointer to the region of memory to be freed. It then releases the previously allocated memory back to the system. When an object is deleted, its destructor is automatically called.&lt;br /&gt;&lt;em&gt;The &lt;/em&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;em&gt; and &lt;/em&gt;&lt;strong&gt;delete&lt;/strong&gt;&lt;em&gt; operators may be overloaded globally so that all uses of these operators call your custom versions.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;div style="BACKGROUND: #ffe3ff"&gt;&lt;span class="pre"&gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;#include &amp;lt;new&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;using namespace&lt;/span&gt; std&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;class&lt;/span&gt; loc&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;int&lt;/span&gt; longitude&lt;span class="operator"&gt;,&lt;/span&gt; latitude&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span class="operator"&gt;:&lt;/span&gt;&lt;br /&gt;loc&lt;span class="operator"&gt;() {}&lt;/span&gt;&lt;br /&gt;loc&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; lg&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; lt&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;longitude&lt;span class="operator"&gt; =&lt;/span&gt; lg&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;latitude&lt;span class="operator"&gt; =&lt;/span&gt; lt&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; show&lt;span class="operator"&gt;() {&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; longitude&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; " "&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt; latitude&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;&lt;span class="keyword"&gt;operator new&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;size_t size&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt;&lt;span class="keyword"&gt; operator delete&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;p&lt;span class="operator"&gt;);&lt;br /&gt;};&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;// new overloaded relative to loc.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;loc&lt;span class="operator"&gt;::&lt;/span&gt;&lt;span class="keyword"&gt;operator new&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;size_t size&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;p&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "In overloaded new.\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;p&lt;span class="operator"&gt; =&lt;/span&gt; malloc&lt;span class="operator"&gt;(&lt;/span&gt;size&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span class="operator"&gt;(!&lt;/span&gt;p&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;bad_alloc ba&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;throw&lt;/span&gt; ba&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt; p&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;&lt;br /&gt;// delete overloaded relative to loc.&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt; loc&lt;span class="operator"&gt;::&lt;/span&gt;&lt;span class="keyword"&gt;operator delete&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="operator"&gt; *&lt;/span&gt;p&lt;span class="operator"&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "In overloaded delete.\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;free&lt;span class="operator"&gt;(&lt;/span&gt;p&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="type"&gt;&lt;br /&gt;&lt;br /&gt;int&lt;/span&gt;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;loc&lt;span class="operator"&gt; *&lt;/span&gt;p1&lt;span class="operator"&gt;, *&lt;/span&gt;p2&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;try&lt;/span&gt;&lt;span class="operator"&gt; {&lt;/span&gt;&lt;br /&gt;p1&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="keyword"&gt; new&lt;/span&gt; loc&lt;span class="operator"&gt; (&lt;/span&gt;&lt;span class="int"&gt;10&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;&lt;span class="int"&gt; 20&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="flow"&gt; catch&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;bad_alloc xa&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "Allocation error for p1.\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;try&lt;/span&gt;&lt;span class="operator"&gt; {&lt;/span&gt;&lt;br /&gt;p2&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="keyword"&gt; new&lt;/span&gt; loc&lt;span class="operator"&gt; (-&lt;/span&gt;&lt;span class="int"&gt;10&lt;/span&gt;&lt;span class="operator"&gt;, -&lt;/span&gt;&lt;span class="int"&gt;20&lt;/span&gt;&lt;span class="operator"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;span class="flow"&gt; catch&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;bad_alloc xa&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;br /&gt;cout&lt;span class="operator"&gt; &amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt; "Allocation error for p2.\n"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 1&lt;/span&gt;&lt;span class="operator"&gt;;;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;p1&lt;span class="operator"&gt;-&amp;gt;&lt;/span&gt;show&lt;span class="operator"&gt;();&lt;/span&gt;&lt;br /&gt;p2&lt;span class="operator"&gt;-&amp;gt;&lt;/span&gt;show&lt;span class="operator"&gt;();&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;&lt;br /&gt;delete&lt;/span&gt; p1&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;delete&lt;/span&gt; p2&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;&lt;br /&gt;&lt;br /&gt;return&lt;/span&gt;&lt;span class="int"&gt; 0&lt;/span&gt;&lt;span class="operator"&gt;;&lt;br /&gt;}&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Output from&lt;span class="keyword"&gt; this&lt;/span&gt; program is shown here&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In overloaded&lt;span class="keyword"&gt; new&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;In overloaded&lt;span class="keyword"&gt; new&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="int"&gt;&lt;br /&gt;10 20&lt;/span&gt;&lt;span class="operator"&gt;&lt;br /&gt;-&lt;/span&gt;&lt;span class="int"&gt;10&lt;/span&gt;&lt;span class="operator"&gt; -&lt;/span&gt;&lt;span class="int"&gt;20&lt;/span&gt;&lt;br /&gt;In overloaded&lt;span class="keyword"&gt; delete&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;In overloaded&lt;span class="keyword"&gt; delete&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When &lt;strong&gt;new&lt;/strong&gt; and &lt;strong&gt;delete&lt;/strong&gt; are for a specific class, the use of these operators on any other type of data causes the original &lt;strong&gt;new&lt;/strong&gt; or &lt;strong&gt;delete&lt;/strong&gt; to be employed. The overloaded operators are only applied to the types for which they are defined. This means that if you add this line to the &lt;strong&gt;main( ), &lt;/strong&gt;the default &lt;strong&gt;new&lt;/strong&gt; will be executed:&lt;br /&gt;&lt;br /&gt;sample code ref: C++ complete reference (4rth edition)&lt;pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-5932094617390119592?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/5932094617390119592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=5932094617390119592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5932094617390119592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5932094617390119592'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/04/overloading-new-and-delete.html' title='Overloading new and delete'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4218688185123286285</id><published>2010-03-22T09:11:00.000-07:00</published><updated>2010-03-23T02:37:57.688-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wireless Telecommunication'/><title type='text'>PLMN Supporting CS and PS services (using GPRS and EPS) and interfaces</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_jeYO6OeMsY0/S6eXNU-9qAI/AAAAAAAAHmk/6oqKjClHVX4/s1600-h/PLMN_Basic.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 123px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5451492129182164994" border="0" alt="" src="http://4.bp.blogspot.com/_jeYO6OeMsY0/S6eXNU-9qAI/AAAAAAAAHmk/6oqKjClHVX4/s320/PLMN_Basic.jpg" /&gt;&lt;/a&gt; As shown in above figure, PLMN is logically divided into core and access network.&lt;br /&gt;&lt;br /&gt;CN is further divided into CS domain, PS domain and IM Subsystem while AN is divided into BSS (if GSM) or UTRAN (known as RAN) or E-UTRAN.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some basic functionality of these network, domain and entities are as below.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;CS domain:&lt;/strong&gt;&lt;br /&gt;A "CS type of connection" is a connection for which dedicated network resources are allocated at the connection establishment and released at the connection release.&lt;br /&gt;The entities specific to the CS domain are: MSC, GMSC, VLR.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PS domain:&lt;/strong&gt;&lt;br /&gt;A "PS type of connection" transports the user information using autonomous concatenation of bits called packets: each packet can be routed independently from the previous one.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;CS and PS domains are overlapping, i.e. they contain some common entities. A PLMN can implement only one domain or both domains.&lt;br /&gt;&lt;br /&gt;The entities specific to the PS domain are the GPRS specific entities, i.e. SGSN and GGSN and EPS specific entities, i.e. PDN GW, S-GW, MME, SGSN.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IMS:&lt;/strong&gt;&lt;br /&gt;The IM subsystem comprises all CN elements for provision of IP multimedia services comprising audio, video, text, chat, etc. and a combination of them delivered over the PS domain. The entities related to IMS are CSCF, MGCF, MRF, etc.&lt;br /&gt;To enable communication to a mobile station the network must know where this mobile station is located. This information is stored in a function named location register.&lt;br /&gt;The location register is handled by the following entities.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;The Home Location Register (HLR).&lt;/strong&gt;&lt;br /&gt;The Home Location Register (HLR) is the location register to which a mobile subscriber is assigned for record purposes such as subscriber information. For EPS, the HLR functionality is provided via HSS.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;The Visitor Location Register (VLR).&lt;/strong&gt;&lt;br /&gt;The Visitor Location Register (VLR) is the location register for Circuit Switched (CS) services, other than the HLR, used by an MSC to retrieve information for, e.g. handling of calls to or from a roaming mobile station currently located in its area.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;The Serving GPRS Support Node (SGSN).&lt;/strong&gt;&lt;br /&gt;The location register function in the SGSN stores subscription information and location information for Packet Switched (PS) services for each subscriber registered in the SGSN.&lt;br /&gt;The SGSN is needed only in a PLMN which supports PS Domain with GERAN or UTRAN access.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;The Gateway GPRS Support Node (GGSN).&lt;/strong&gt;The location register function in the GGSN stores subscriber information and routeing information (needed to tunnel packet data traffic destined for a GPRS MS to the SGSN where the MS is registered) for each subscriber for which the GGSN has at least one PDP context active.&lt;br /&gt;The GGSN is needed only in a PLMN which supports GPRS with GERAN or UTRAN access.&lt;br /&gt;&lt;br /&gt;-&lt;strong&gt; The Mobility Management Entity (MME).&lt;/strong&gt;&lt;br /&gt;The location register function in the MME stores subscription information and location information for Packet Switched (PS) services for each subscriber registered in the MME for EPS.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;The Packet Data Network Gateway (PDN GW).&lt;/strong&gt;&lt;br /&gt;The location register function in the PDN GW stores subscriber information and routeing information (needed to tunnel packet data traffic destined for an EPS UE to the Serving GW, where the UE is registered in the MME, in the SGSN or in the 3GPP AAA server in case of non-3GPP access) for each subscriber for which the PDN-GW has at least one PDN connection active.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig (b) is showing PLMN supporting CS and PS services (using GPRS and EPS) and interfaces for that service support.&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 332px; DISPLAY: block; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5451494851718557698" border="0" alt="" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/S6eZrzOOMAI/AAAAAAAAHms/a2ChfkhsaX0/s400/PLMN_Supporting+CS+and+PS+services.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;reference: 3gpp: TS 23.002 v9.2.0&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4218688185123286285?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4218688185123286285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4218688185123286285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4218688185123286285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4218688185123286285'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/03/plmn-supporting-cs-and-ps-services.html' title='PLMN Supporting CS and PS services (using GPRS and EPS) and interfaces'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jeYO6OeMsY0/S6eXNU-9qAI/AAAAAAAAHmk/6oqKjClHVX4/s72-c/PLMN_Basic.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4658765034809069586</id><published>2010-03-22T07:07:00.000-07:00</published><updated>2010-03-22T07:51:03.102-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wireless Telecommunication'/><title type='text'>PLMN: Public Land Mobile Network</title><content type='html'>A Public Land Mobile Network (PLMN) is established and operated by an administration or Recognized Private Operating Agency (RPOA) for the specific purpose of providing land mobile telecommunications service services to the public. A PLMN may be regarded as an extension of networks (e.g. ISDN, corporate and public PDNs, etc);&lt;br /&gt;&lt;span class="fullpost"&gt;It is a collection of MSCs areas in CS domain and SGSN areas for GPRS and SGSN or MME areas for EPC in PS domain within a common numbering plan (e.g. same National Destination Code) and a common routing plan.&lt;br /&gt;&lt;br /&gt;The MSCs are the functional interfaces between the fixed networks and a PLMN for call set-up in CS domain. The GGSN and the SGSN are the func&lt;a href="http://2.bp.blogspot.com/_jeYO6OeMsY0/S6d7lwIdxyI/AAAAAAAAHmM/CBNQ3m7qECI/s1600-h/PLMN_Rel_99.jpg"&gt;&lt;/a&gt;tional interfaces between the fixed networks and a PLMN for packet transmission in GPRS PS domain. In case of EPC PS Domain, the PDN-GW, Serving-GW and the SGSN and the MME are the functional interfaces between the fixed networks and a PLMN for packet transmission. &lt;br /&gt;&lt;br /&gt;Functionally the PLMNs may be regarded as independent telecommunications entities even though different PLMNs may be interconnected through the ISDN/PSTN and PDNs for forwarding of calls or network information. A similar type of interconnection may exist for the interaction between the MSCs/SGSNs/MMEs of one PLMN.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_jeYO6OeMsY0/S6d8A2XoXnI/AAAAAAAAHmU/b9oPDuo66U0/s1600-h/PLMN_Rel_99.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 274px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5451462227991748210" border="0" alt="" src="http://1.bp.blogspot.com/_jeYO6OeMsY0/S6d8A2XoXnI/AAAAAAAAHmU/b9oPDuo66U0/s320/PLMN_Rel_99.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;fig a- overall Idle mode process. (release - 1999 )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="fullpost"&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_jeYO6OeMsY0/S6d8wgGfyiI/AAAAAAAAHmc/2AOrKERZAGI/s1600-h/PLMN_Rel_09.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 254px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5451463046648023586" border="0" alt="" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/S6d8wgGfyiI/AAAAAAAAHmc/2AOrKERZAGI/s320/PLMN_Rel_09.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig b - overall Idle mode process (Release -09)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;General description in idle mode.&lt;br /&gt;&lt;/strong&gt;When MS is switched on, it attempts to make contacts with PLMN, the perticular PLMN to be contacted may be automatically or manually.&lt;br /&gt;The MS looks for a suitable cell of chosen PLMN and chooses that cell to provide available services, and tunes to it's control panel. the choosing is known as "camping on cell". the MS then register it's presense in the registration area of choosen cell if necessary by means of LR (Location registrar), GPRS attach or IMSI attach procedure.&lt;br /&gt;If the MS looses coverage of the cell, or find a more suitable cell, it reselects on to most suitable cell of selected PLMN and camps on that cell. if the new cell is in new registration area, an LR request is performed. If MS looses a coverage of PLMN, either a new PLMN is selected or availabe PLMN information is given to user, so, that manual selection can be made.&lt;br /&gt;&lt;br /&gt;Idle mode tasks can be sub divided into 4 processes as per rel - 1999 and 5 processes as per rel 09.&lt;br /&gt;1) PLMN selection&lt;br /&gt;2) CSG selection (UTRAN and E-UTRAN selection)&lt;br /&gt;3) Cell selection and reselection&lt;br /&gt;4) Location registration&lt;br /&gt;5) CTS fix part selection (A/Gb mode only)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References:&lt;br /&gt;&lt;/strong&gt;TS 23.122 NAS function related to MS (Mobile station) in idle mode&lt;br /&gt;TS 23.002 v9.2.0&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4658765034809069586?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4658765034809069586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4658765034809069586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4658765034809069586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4658765034809069586'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/03/plmn-public-land-mobile-network.html' title='PLMN: Public Land Mobile Network'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jeYO6OeMsY0/S6d8A2XoXnI/AAAAAAAAHmU/b9oPDuo66U0/s72-c/PLMN_Rel_99.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-1016051464466080414</id><published>2010-03-07T05:57:00.000-08:00</published><updated>2010-03-07T06:01:39.606-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='favorite vedio'/><title type='text'>No Arms, No Legs, No Worries</title><content type='html'>&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ciYk-UwqFKA&amp;hl=en_GB&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ciYk-UwqFKA&amp;hl=en_GB&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-1016051464466080414?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/1016051464466080414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=1016051464466080414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1016051464466080414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1016051464466080414'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/03/no-arms-no-legs-no-worries.html' title='No Arms, No Legs, No Worries'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-6596214274609854790</id><published>2010-03-04T07:59:00.000-08:00</published><updated>2010-03-08T10:12:16.354-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Women on Career Break'/><title type='text'>Women On Career Break</title><content type='html'>As a woman, I understand how difficult it is to manage your professional career. 80% women work force take career break for their family life balance. and most of them find it very difficult to return back to work force. Here I was finding ways to get back to work at Leeds(UK) and in India.&lt;br /&gt;My general observation is in India there is very less support for such professional women who took career break. Also, if some support is there then that is limited to city like Mumbai, Pune.&lt;br /&gt;In my opinion more Institution and organization should start such program. where in experienced work force can gain confidence for come back after career break.&lt;br /&gt;&lt;br /&gt;Here few details I searched from Internet for such programs for professional women.&lt;br /&gt;I will keep on adding such details here whenever I will come across such news or information.&lt;br /&gt;&lt;br /&gt;GE India to hire women scientists after career break&lt;br /&gt;More at : &lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://www.thaindian.com/newsportal/business/ge-india-to-hire-women-scientists-after-career-break_10070222.html#ixzz0hDfAY1r7&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tata Group’s ’Second Career’ opportunity for women&lt;br /&gt;More at :&lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://www.business-standard.com/india/news/tata-group%20s-%20second-career%20-opportunity-for-women/316309/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Welcome to the Daphne Jackson Trust Online... UK&lt;br /&gt;(The Daphne Jackson Trust enables scientists, engineers and IT specialists to return to work after career breaks )&lt;br /&gt;More at : &lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://www.daphnejackson.org/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Women Scientists Programs -India&lt;br /&gt;More at : &lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://dst.gov.in/scientific-programme/women-scientists.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;felloship for science research in India for women:&lt;br /&gt;More at: &lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://www.serc-dst.org/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Research fellowship by Indian Govt.&lt;br /&gt;More at: &lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://www.serc-dst.org/ &amp;amp; http://www.serc-dst.org/new.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Career break from Research @Leeds University&lt;br /&gt;More at: &lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;https://elgg.leeds.ac.uk/researchstaf/weblog/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Women scientist fellowship scheme- India&lt;br /&gt;More at: &lt;a href="http://www.dstwosbari.org/"&gt;&lt;span style="font-size:100%;"&gt;http://www.dstwosbari.org/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Women on career break: good profile on linkedIn&lt;br /&gt;&lt;a href="http://www.blogger.com/"&gt;&lt;span style="font-size:100%;"&gt;http://uk.linkedin.com/in/melissaweir&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-6596214274609854790?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/6596214274609854790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=6596214274609854790' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6596214274609854790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6596214274609854790'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/03/women-on-career-break.html' title='Women On Career Break'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7039156254735008986</id><published>2010-02-18T03:29:00.000-08:00</published><updated>2010-02-26T09:37:10.670-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Story'/><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>મેનેજમેન્ટનું પંચતંત્ર</title><content type='html'>&lt;span style="color:#333399;"&gt;એક સરકસમાં વાંદરો-વાંદરી પરણી ગયાં. થોડા સમય પછી વાંદરીને સારા દિવસો જવા લાગ્યા. સરકસના પ્રાણી ડોક્ટરે વાંદરીને તપાસીને પૂછ્યું, ‘કેવું બાળક જોઇએ-છોકરો કે છોકરી?’&lt;br /&gt;પ્રસૂતાએ જવાબ આપ્યો, ‘તેના પગ સાઇકલ ચલાવવા જેટલા લાંબા હોય અને માથું તોપના નાળચામાં સમાઇ શકે તેવું હોય એમ કરજો. પછી છોકરો હોય કે છોકરી તેનો કોઇ ફેર પડતો નથી.’-&lt;br /&gt;&lt;span style="color:#663366;"&gt;કથાબોધ :કર્મચારી પુરુષ છે કે સ્ત્રી તે મહત્વનું નથી. જે કામ તેને સોંપાયું છે તે બરાબરકરે છે કે નહીં તે વાત અગત્યની છે...&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;આજકાલ મેનેજમેન્ટની બોલબાલા છે. જેમ જૂના જમાનામાં ધર્મ પાસે બધા પ્રશ્નોના ઉકેલ હતા તેમ આજે મેનેજમેન્ટ વિજ્ઞાન પાસે જગતનાં તમામ દુ:ખોનો રામબાણ ઇલાજ છે. જેમ ધર્મ કહેતો કે ગરીબી માટે માણસનાં કર્મો જવાબદાર છે, તેમ મેનેજમેન્ટ કહે છે કે ગરીબી એ મેનેજેરિયલ પ્રોબ્લેમ છે.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#660000;"&gt;જૂના જમાનામાં કોઇ બાવો પોતાને ઇશ્વરની કક્ષા સુધી પહોંચાડી દેતો તેમ એક વાર મેનેજમેન્ટની કંઠી બાંઘ્યા પછી કેટલાયે માણસો મેનેજમેન્ટ ગુરુ બની&lt;br /&gt;જાય છે, સૂંઠને ગાંગડે ગાંધી થઇ જાય છે. જેમ જૂના જમાનામાં પંચતંત્ર હતું તેમ આધુનિક જમાનામાં મેનેજમેન્ટ પાસે ‘કેસ સ્ટડી’ છે. તો જોઇએ પંચતંત્રના&lt;br /&gt;સ્વરૂપમાં કેટલાંક કેસલેટ્સ એટલે કે લઘુ કથાનકો.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;બાદશાહ અકબરના દરબારમાં ઘોડાનો સોદાગર ઘોડા વેચવા આવ્યો. બે ઘોડી અદ્દલ સરખી દેખાય. સોદાગર કહે, ‘આમાં એક મા છે ને બીજી દીકરી છે. જો તમે કહી આપો કે મા કઇ અને દીકરી કઇ તો એક ઘોડી પર બીજી ફ્રીમા આપી દઉ.’ &lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;ભલભલા અશ્વનિષ્ણાતો કહી ન શક્યા. છેવટે બાદશાહે બિરબલને જવાબ શોધવા કહ્યું.&lt;br /&gt;બિરબલે બંને ઘોડીને ખૂબ દોડાવી. પછી બંનેની પીઠ પર હાથ મૂકતાં એકને પસીનો થયો હતો, બીજાને નહોતો થયો.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000099;"&gt;બીરબલે કહ્યું, ‘પસીનો છે તે મા છે, પસીનો નથી તે દીકરી છે.’ અકબર બાદશાહને એક ઘોડી મફત મળી.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#663366;"&gt;(કથાબોધ : સોદાગરે ઘોડીના ભાવ બમણા કરી પછી એક પર એક ફ્રી આપવાની વાત કરી. વેચાણની આ યોજનામાં ગ્રાહકને બમણો સંતોષ મળે છે, એક પોતે બુદ્ધિમાન હોવાનો ગર્વ થાય છે. બે, તેને એક ઘોડી મફત મળી તેમ લાગે છે.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;&gt; રાજાની ભેંસ વિયાણી ને પાડો જન્મ્યો. રાણીને પાડો જોવાનું મન થયું તેથી પહેલા માળે જનાનખાનામાં નરબચ્ચાંને લાવવાનો હુકમ કર્યો. દાસી તાજા&lt;br /&gt;જન્મેલા પાડાને માવજતથી પહેલે માળે લઇ ગઇ. પછી રાણીને બચ્ચું ગમી જતાં તેને રોજ એક વાર ઉપર લાવવું તેવો હુકમ કર્યો.&lt;br /&gt;આ નિયમિત ક્રમમાં બચ્ચું અલમસ્ત પાડો બની ગયું, છતાં ક્રમ ચાલુ રહ્યો. એક વાર રાજાના દરબારમાં એક પહેલવાન આવ્યો. તેણે પડકાર ફેંક્યો કે તે સૌથી વધુ વજન ઊચકી શકે છે. તેની સામે રાજાના બધા પહેલવાનો હારી ગયા.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;રાજા મૂંઝાયો ત્યારે રાણી મદદે આવી. તેણે પાડાવાળી વાત કહી પહેલવાનને પાડો ઊચકીને એક માળ ચડી જવાનો પડકાર ફેંકવા સલાહ આપી.&lt;br /&gt;બીજે દિવસે દરબારમાં રાજાએ પહેલવાનને પડકાર ફેંક્યો. પહેલવાને મહા મહેનતે પાડાને ઊચક્યો તો ખરો, પરંતુ દાદર ન ચડી શક્યો. ત્યાં દાસી આવી,&lt;br /&gt;પાડાને ઊચકીને પહેલે માળે સડસડાટ ચડી ગઇ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#663366;"&gt;(કથાબોધ : રોજના મહાવરાથી સામાન્ય કારીગરો જે મુશ્કેલ કામ કરી શકે છે, તે નિષ્ણાતો કરી શકતા નથી. દરેક ઉદ્યોગ સંગઠને વ્યૂહાત્મક કામના&lt;br /&gt;મહાવરાવાળા કારીગરો તૈયાર કરવા જોઇએ. તેમના વડે હરીફને જીતી શકાય.)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;એક કુંભાર પાસે એક ગધેડો હતો, જે માલવહનનું કામ કરતો. કુંભાર તેને ખૂબ મારતો અને પૂરું ખાવાનું ન આપતાં બિચારો માયકાંગલો બની ગયો હતો. એક હૃષ્ટપુષ્ટ ગધેડાએ તેને પૂછ્યું, ‘તું આ શેઠને છોડી કેમ નથી દેતો?&lt;br /&gt;&lt;br /&gt;માયકાંગલા ગધેડાએ જવાબ આપ્યો, ‘શેઠ તેની એકની એક તોફાની દીકરીને કહ્યા કરે છે કે તે બહુ તોફાન કરશે તો તેને મારી સાથે પરણાવી દેશે. હું એ&lt;/span&gt; &lt;span style="color:#000099;"&gt;દિવસની રાહમાં આ બધું સહન કરી લઉ છું. પછી તો શેઠની બધી મિલકત મારી જ છે ને!’&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;span style="color:#663366;"&gt;(કથાબોધ: કારીગરો કામ કરે તે માટે પ્રેરણા (મોટીવેશન) અથવા પોષણ (ઇન્સેન્ટિવ) અપાય છે.. પ્રેરણા શાબ્દીક પ્રોત્સાહન છે, જ્યારે પોષણ એ&lt;br /&gt;ભૌતિક વસ્તુ આપીને કરાય છે. ડાહ્યા લોકો ઇન્સેન્ટિવથી કામ કરે છે, ગધેડાઓ પ્રેરણાથી કામ કરે છે.)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;&gt; રવિવારને દિવસે સિંહ તેની બોડ બહાર સુસ્તાતો હતો. પસાર થતાં એક શિયાળે પૂછ્યું, ‘સમય કહેશો? મારી ઘડિયાળ બગડી ગઇ છે.’&lt;br /&gt;સમય કહેતાં સિંહે કહ્યું, ‘હું તમારી ઘડિયાળ રિપેર કરી દઇશ.’&lt;br /&gt;શંકા દર્શાવતાં શિયાળે કહ્યું, ‘આ યંત્રરચના અઘરી છે. વળી તમારો હાથ લાગતાં ઊલટી વધારે બગડી જશે.’&lt;br /&gt;સિંહે કહ્યું, ‘લાવો તો ખરા, હું રિપેરિંગની ગેરંટી આપું છું.’&lt;br /&gt;ઘડિયાળ લઇને સિંહ બોડમાં અલોપ થઇ ગયો. થોડી વાર પછી રિપેર થઇને બરાબર ચાલતી ઘડિયાળ સાથે પાછો ફર્યો.&lt;br /&gt;શિયાળ આદર સાથે નવાઇ પામ્યો. સિંહ પાછો સુસ્તાવા લાગ્યો.&lt;br /&gt;&lt;br /&gt;થોડી વારમાં એક વરુ આવ્યું. તેણે સિંહને પૂછ્યું, ‘મારું ટીવી બગડી ગયું છે તેથી હું તમારે ત્યાં વન ડે મેચ જોઇ શકું?’&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#660000;"&gt;સિંહે કહ્યું, ‘લાવો તમારું ટીવી રિપેર કરી આપું.’&lt;br /&gt;વરુએ કહ્યું, ‘સિંહને તે વળી ટીવી રિપેર કરતાં આવડતું હશે?’&lt;br /&gt;સિંહે વળતાં કહ્યું, ‘પ્રયત્ન કરવામાં વાંધો શું છે?’&lt;br /&gt;વરુ ટીવી લઇ આવ્યો.&lt;br /&gt;ટીવી લઇને સિંહ બોડમાં અલોપ થઇ ગયો. થોડી વારે રિપેર થયેલું ટીવી લઇને પાછો આવ્યો.&lt;br /&gt;વરુ નવાઇ પામ્યું અને રાજી થયું.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;હવે ગુફાની અંદરનું દ્રશ્ય જુઓ. એક ખૂણામાં નાના અને બુદ્ધિશાળી સસલાઓ બેઠા હતા અને સાધન-સરંજામની મદદથી ફ્રીઝ, ટીવી, વોશિંગ મશીન વગેરે રિપેર કરતા હતા. સામેના ખૂણામાં એક સિંહ પોતાના પંજા ચાટતો બેઠો હતો.&lt;br /&gt;&lt;br /&gt;(કથાબોધ : કોઇ બુદ્ધુ માણસને પ્રગતિ કરતો જોઇ તમને નવાઇ લાગે ત્યારે તેના અનુચરો તરફ જોવું, તે બધા બુદ્ધિશાળી હશે. જે મેનેજરના કારીગરો કુશળ&lt;br /&gt;હોય તે મેનેજરને લાયકાત વિના પણ બઢતી મળે છે. પાઠ નંબર બે, સસલાને મારીને ખાઇ જવા કરતાં તેમની પાસે કામ લેવાથી વધારે ફાયદો થાય છે.)&lt;br /&gt;&lt;br /&gt;એક સસલો તેની બોડ બહાર બેઠોબેઠો કમ્પ્યૂટર પર કામ કરતો હતો. ત્યાંથી પસાર થતા એક શિયાળે પૂછ્યું, ‘શું કરો છો?’&lt;br /&gt;સસલાએ જવાબ આપ્યો, ‘ધંધામાં શિયાળને કઇ રીતે મારી પાડવો તે અંગે પ્રોજેક્ટ રિપોર્ટ બનાવું છું.’&lt;br /&gt;શિયાળે કહ્યું, ‘સસલો તે કદી શિયાળને મારી શકે?’ ‘વિશ્વાસ ન બેસતો હોય તો આવો મારા દરમાં’ સસલાએ આમંત્રણ આપ્યું.&lt;br /&gt;બંને અંદર ગયા. થોડી વારમાં સસલો શિયાળના હાડકાંનો ટુકડો ચાટતો બહાર આવ્યો.&lt;br /&gt;&lt;br /&gt;થોડી વાર પછી ત્યાંથી વરુ પસાર થયો. સસલો કમ્પ્યૂટર પર કામ કરતો હતો. વરુએ પૂછ્યું, ‘શું કરો છો?’ સસલાએ જવાબ આપ્યો, ‘ધંધામાં વરુને કઇ રીતે&lt;br /&gt;ખતમ કરવો તે અંગે પ્રોજેક્ટ રિપોર્ટ બનાવું છું.’&lt;br /&gt;&lt;br /&gt;વરુએ કહ્યું, ‘સસલો તે કદી વરુને મારી શકે?’ ‘વિશ્વાસ ન બેસતો હોય તો આવો મારા દરમાં.’ સસલાએ આમંત્રણ આપ્યું.&lt;br /&gt;બંને અંદર ગયા. થોડી વારમાં સસલો વરુના હાડકાંનો ટુકડો ચાટતાં બહાર આવ્યો.&lt;br /&gt;&lt;br /&gt;છેલ્લે એક રીંછ આવ્યું. કમ્પ્યૂટર પર કામ કરતાં સસલાને પૂછ્યું, ‘શું કરો છો?’ સસલાએ જવાબ આપ્યો, ‘ધંધામાં રીંછને કઇ રીતે પતાવી દેવો તે અંગે&lt;br /&gt;પ્રોજેક્ટ રિપોર્ટ બનાવું છું.’&lt;br /&gt;રીંછે કહ્યું, ‘સસલાની શી મજાલ કે તે રીંછને પતાવી દઇ શકે?’ ‘વિશ્વાસ ન બેસતો હોય તો આવો મારા દરમાં.’ સસલાએ આમંત્રણ આપ્યું.&lt;br /&gt;બંને અંદર ગયા. અંદર એક ડાલામથ્થો સિંહ પંજા ચાટતો બેઠો હતો.&lt;br /&gt;&lt;br /&gt;(કથાબોધ : તમારી તાકાત કેટલી છે તે મહત્વનું નથી. ધંધામાં પાર્ટનર કોણ છે તે મહત્વનું છે.)&lt;br /&gt;&lt;br /&gt;એક નિરીશ્વરવાદી (ભગવાનમાં ન માનનાર) જંગલમાંથી પસાર થતાં ભૂલો પડ્યો.&lt;br /&gt;આમતેમ અટવાતો હતો ત્યાં પાંચ બચ્ચાં સાથે એક ભૂખી રીંછણ આવી ચડી.&lt;br /&gt;&lt;br /&gt;માણસને જોઇને રીંછણ ઘુઘવાટા કરવા લાગી. તે વિકરાળ હતી, તેના નહોર ચપ્પુ જેવા તીક્ષ્ણ હતા.&lt;br /&gt;&lt;br /&gt;ડરનો માર્યો માણસ દોડવા લાગ્યો.&lt;br /&gt;&lt;br /&gt;રીંછણ પાછળ દોડી. ગભરાયેલા માણસથી બોલાઇ ગયું, ‘હે ભગવાન, બચાવ.’&lt;br /&gt;&lt;br /&gt;આકાશમાં ગડગડાટી થઇ. ઈશ્વર બોલ્યા, ‘તમે નિરીશ્વરવાદીઓએ મને ગાંડો કરી નાખ્યો છે. આમ તો મને માનતા નથી ને પાછી મારી મદદ માગો છો?’&lt;br /&gt;&lt;br /&gt;‘હું ભૂલ કબૂલ કરું છું, પણ આ ઉંમરે હવે વિચાર બદલવો શક્ય નથી.&lt;br /&gt;પણ રીંછણ નાની વયની છે, ભગવાન, તેના વિચાર બદલીને તેને આસ્તિક બનાવી દો તો હું બચી જાઉ,’ નિરીશ્વરવાદી બોલ્યો.&lt;br /&gt;&lt;br /&gt;ઈશ્વરે કહ્યું, ‘તથાસ્તુ.’&lt;br /&gt;&lt;br /&gt;થોડે દૂર રહેલી રીંછણ નજીક આવી, માણસનું ગળું દબોચીને બોલી, ‘આજનું ભોજન આપવા બદલ ઈશ્વરનો ખુબ ખુબ આભાર !&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;source: fwd email from Mahesh Shah&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7039156254735008986?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7039156254735008986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7039156254735008986' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7039156254735008986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7039156254735008986'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/02/blog-post_18.html' title='મેનેજમેન્ટનું પંચતંત્ર'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-1474288838891296689</id><published>2010-02-03T09:43:00.000-08:00</published><updated>2010-02-03T12:08:20.921-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wireless Telecommunication'/><title type='text'>Next-Generation Network Business Positioning</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_jeYO6OeMsY0/S2nSX3mB_gI/AAAAAAAAHcc/StjaBxUaa6s/s1600-h/NGN.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 248px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5434105732901502466" border="0" alt="" src="http://4.bp.blogspot.com/_jeYO6OeMsY0/S2nSX3mB_gI/AAAAAAAAHcc/StjaBxUaa6s/s400/NGN.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;Figure a: NGN layers and their “new wave” services.&lt;br /&gt;&lt;br /&gt;figure (a) is showing a map of next generation network by layer, the new services each layer supports, and the delivery mechanism to a segmented market. If we start at the top, the standard telecoms market segmentation distinguishes consumers from business customers. The business sector is then, in its turn, further segmented into global enterprises, large national corporates and small to medium enterprises (SMEs). Sometime “small” is distinguished from “medium” in this last category.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 236px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5434109475943385554" border="0" alt="" src="http://2.bp.blogspot.com/_jeYO6OeMsY0/S2nVxvgwidI/AAAAAAAAHck/sLoFXiexK9Q/s400/NGN_services.bmp" /&gt;&lt;br /&gt;&lt;br /&gt;figure (b) : Near-future services and the value network.&lt;br /&gt;&lt;br /&gt;The next-generation network enables a combination of connectivity, communications and application services to be provided for the corporate and SME sectors. Connectivity services include various kinds of VPN and leased lines, while communications services include voice over IP, e-mail, instant messaging, video-conferencing, and contact centers. Application services include application and Web hosting, data storage and backup, and value-added services such as security.&lt;br /&gt;&lt;br /&gt;From a carrier point of view, despite their aspirations to value-added services, they believe in their hearts that most of their revenues will come from telecoms services annuities. They forbid their professional services arm from shopping around to their competitors, and throw their SI services in as a cut-price sweetener, or even for free, to clinch a deal. The professional services division is perpetually confronted by the dilemma: am I a profit center, or am I a customer operations cost center? They would like to be the former, but those carrier instincts keep pushing them to the latter position.&lt;br /&gt;&lt;br /&gt;A further advantage of targeted, just-in-time investment in NGN components is that costs are likely to be lower. Most NGN technology is software, which is market-priced by the vendors (marginal cost being close to zero). The incumbents are forcing through their NGN programs for strategic reasons, and in the process paying some/most of the vendors’ development bills. But a small alternate operator should be able to bid prices down a few years out, at a point when NGN “new wave” services finally become real.&lt;br /&gt;&lt;br /&gt;source: Business Strategies for the Next-Generation Network by Nigel Seel&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-1474288838891296689?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/1474288838891296689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=1474288838891296689' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1474288838891296689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1474288838891296689'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/02/next-generation-network-business.html' title='Next-Generation Network Business Positioning'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jeYO6OeMsY0/S2nSX3mB_gI/AAAAAAAAHcc/StjaBxUaa6s/s72-c/NGN.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4800802358571051715</id><published>2010-02-03T01:17:00.000-08:00</published><updated>2010-02-03T01:19:22.001-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Story'/><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><category scheme='http://www.blogger.com/atom/ns#' term='spiritual'/><title type='text'>પ્રીસ્ક્રીપ્શન</title><content type='html'>ડોક્ટરે છેલાને બહાર બેસવા કહ્યું. ડોસો દેવની મૂર્તિ સામે બેઠો હોય એમ ડોક્ટરને કરગરી પડ્યો. બારણા બ્હાર ફીક્કી નજર નાખીને ડોસાએ ધીમેથી પૂછ્યું : ‘દાગતર સા’બ, ઈને ખઈ રોગ (ક્ષય રોગ) તો નથ્ય ને ?’&lt;br /&gt;ડૉક્ટરનો હકાર સાંભળીને ડોસાના પગ ભાગી ગયા. ધ્રૂજતે હાથે પ્રીસ્ક્રીપ્શન લઈને તે દીકરા પાસે આવ્યો. શિશિરના પાંદડા જેવો એનો ચહેરો જોઈને ડોસો એને ‘ઉઠ બેટા’ એટલું પણ ન કહી શક્યો. બન્ને ઘેર આવ્યા. પાછલી પછીતે છાણાં થાપતી છેલાની મા દોડી આવી. ડોસાનું પડી ગયેલું મ્હોં જોઈને એની ઘરડી આંખનો ખૂણો ભીનો થયો. &lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;ડોસો ત્યાં ઝાઝું ન ટકી શક્યો. ઘરમાં જઈ થોડુંક ઊભો રહ્યો અને બારણા પાછળથી લાકડી લઈને….. ‘ફકર્ય ચંત્યા ન કરતી…’ એમ બબડતો બબડતો પરસાળમાં આવ્યો. ઘરમાં ફૂટી કોડી ય નહોતી. દવા વગર છેલો નહીં બચે. આજે ચુંગી સળગાવવાનું પણ મન થતું નહોતું. પાંગેથ પર છેલાની મા બેઠી હતી. ઘેટું બેઠું હોય એવી ગરીબ. અચાનક ડોસાને ઈલાજ સૂઝ્યો. ખીંટીએથી કેડિયું ઉતાર્યું, પહેર્યું. પછેડીને છેડે પ્રીસ્ક્રીપ્શન બાંધ્યું અને વાડા પાસે આવ્યો. એને ઝાંપલી આગળ ઊભેલો જોઈને ઘેટાં બેંબેં કરવા લાગ્યાં. ડોસે વાડામાંથી નબળાં જોઈને બારેક ઘેટાં કાઢ્યાં. અને તેમને લઈને નીકળી પડ્યો….&lt;br /&gt;&lt;br /&gt;ધૂળિયા રસ્તા પરથી સડક પર પગ મૂકતાં જ તે દાઝ્યો. સૂરજ માથે ચડતો હતો. એ ઘણીવાર શહેરમાં ઘરવખરી લેવા જતો. કતલખાના પાસેથી ઘણીવાર ગુજર્યો હતો અને તેની આંખમાં ખુન્નસ ઝલપાતું. એ ઘેટાં લઈને છેક કતલખાનાના ઝાંપા આગળ આવી ઊભો. ઝાંપે ઊભેલા માણસને કગર્યો.&lt;br /&gt;‘એ બાપલિયા, ઘર્યે સોકરો ખઈમાં રિબાય સે, પાંહે દવા લાવ્યાનો પૈસો નથ્ય, આ….’ ઘેટાં ભણી જોઈને એણે નજર વાળી લીધી. ઘેટાં છેક વાડેથી પૂંઠે પૂંઠે આવ્યા અને કોણ જાણે શીય મરવાની ગંધ આવી કે ઝાંપો જોઈને ચૂપ થઈ ગયાં. સોદો નક્કી થયો. ડોસે પછેડીને છેડે બાંધેલું પ્રીસ્ક્રીપ્શન કાઢ્યું, એના પર દુ:ખી હાથ ફેરવી જોયું અને પછી એક એક ઘેટાને નજરમાં ભરી લીધું.&lt;br /&gt;&lt;br /&gt;બધાંને અંદર ધકેલવા એણે ડાંગ ઊંચકી. એકેય ઘેટું ઝાંપાની અંદર પેસવા તૈયાર ન થયું. જિંદગીમાં પહેલીવાર ડોસાએ આ અચરજ દીઠું. ‘મુઆ સેંમાડે હતાં ત્યાણે તો બેંબાકરો કરી મેલતાં’તાં, ને નખ્ખોદિયાંને અસાનક આ શું હુઝ્યું કે ચૂપ થઈ ગયાં !’ પોતાને ડચૂરો ભરાય એ રીતે એણે ડાંગ વીંઝી. ભયાનક શાંતિ બારેય ઘેટાં પર તોળાઈ રહી. અંદરથી બીજા ત્રણ-ચાર જણ ડાંગો લઈ લઈને હડી આવ્યા ત્યારે તો ડોસાની આંખો લગભગ પલળી જ ગઈ ! ‘રહેવા દો…..રહેવા દો….ઈયાંને….’ બોલતો બોલતો એ જ ઘેટાં પહેલાં કતલખાનામાં પેઠો. અંદર ખુલ્લા ચોકમાં લીમડીનું ઝાડ હતું. એના છાંયા નીચે જઈને ડોસો ઊભો. સીમના વૃક્ષ નીચે ઊભો હોય એમ એણે ‘હિયોહ’ કર્યું. તોય એકે ઘેટું અંદર ન પેઠું. એને રડવું આવે એવી ખીજ ચડી. ઝાંપા લગી તે આવે તે પહેલાં પેલા માણસો બચારાં પર તૂટી પડ્યા. ઘેટાં બેંબાકરો કરવા મંડ્યા. ડોસો ઘડીક લીમડી નીચે ને ઘડીક ઝાંપા તરફ આવે-જાય, ને છેવટે ડાંગોની તડી સહી ન જતાં બચારાં ઘેટાંને લાગ્યું કે આના કરતાં તો મોત સારું. બાપડાં બધાંય એક એક કતલખાનામાં પેઠાં. બાપ વગરનાં છોકરાં જેવાં ઘેટાંને લીમડા નીચે આવતાં ડોસાને સીમની ખુલ્લાશ સાંભરી. બધાંય એની ચોતરફ. બધાંય જાણે એને વળગી પડ્યાં.&lt;br /&gt;&lt;br /&gt;….ને અચાનક ડોસે રાડ પાડી અને તે ઝાંપા બ્હાર નીકળી પડ્યો. ‘હિયોહ’ કરતો લગભગ બોલી ઊઠ્યો, ‘એકને સારું બારેયને ગરદન નથ્ય મારવો…’ ક્ષણવારમાં તો બધાંય ઘેટાં ખુલ્લી સડક પર આવી ઊભાં. એક તો દોડી ગયું છેક આગળ… મુક્તિનો આનંદ એમનાં ગળામાં ઘૂંટાવા લાગ્યો. આ જોઈને ડોસે થોડેક છેટે જઈને આગલા ઘેટાને ઊંચકી લીધું. મરવાના વાંકે ખાટલીમાં સૂતેલા છેલાને ઊંચકતો હોય એમ એને બચીઓ કરી. પછી શુંય સૂઝ્યું કે પછેડીને છેડે બાંધેલું પ્રીસ્ક્રીપ્શન કાઢીને ફાડી નાખ્યું અને નાક લૂછતો લૂછતો ઘરની વાટે ચડી ગયો…&lt;br /&gt;&lt;br /&gt;source : read gujarati&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4800802358571051715?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4800802358571051715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4800802358571051715' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4800802358571051715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4800802358571051715'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/02/blog-post_03.html' title='પ્રીસ્ક્રીપ્શન'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4937173377498183371</id><published>2010-02-02T01:53:00.000-08:00</published><updated>2010-02-02T01:56:45.367-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><category scheme='http://www.blogger.com/atom/ns#' term='spiritual'/><title type='text'>મૌનનો મહિમા - ગાંધીજી</title><content type='html'>સત્યના શોધકે મૌન રહેવું જોઈએ એવું મને ઘણી વાર લાગ્યું છે. ધારેલાં પરિણામ લાવવાની મૌનની અદ્દભુત શક્તિનો મને પરિચય છે. દક્ષિણ આફ્રિકામાં હું એક ટ્રેપિસ્ટ સાધુઓનો મઠ જોવા ગયો હતો. તેમાંના ઘણાખરા મૌનવ્રતધારી મુનિ હતા. મેં મઠના વડાને આવું વ્રત ધારણ કરનારાઓનો આશય શો છે તે પૂછ્યું અને તેમણે કહ્યું કે તે સ્પષ્ટ છે. ‘આપણે બધા નબળા માનવી જીવો છીએ. ઘણી વાર આપણે શું બોલીએ છીએ તેનું આપણને ભાન હોતું નથી. આપણે કાયમ બોલ બોલ કર્યા કરીએ તો આપણા અંત:કરણમાંથી ઊઠતો શાંત ઝીણો અવાજ આપણે કાને નહીં પડે.’ એ કીમતી પાઠનો મર્મ હું સમજ્યો. મૌનના રહસ્યનો મને પરિચય છે.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;અનુભવે મને એ પણ બતાવ્યું છે કે સત્યના પૂજારીએ મૌનનું સેવન કરવું ઘટે છે. જાણ્યેઅજાણ્યે પણ મનુષ્ય ઘણી વેળા અતિશયોક્તિ કરે છે અથવા જે કહેવા યોગ્ય હોય તે છુપાવે કે જુદી રીતે કહે છે. આવાં સંકટોમાંથી બચવાને ખાતર પણ અલ્પભાષી થવું આવશ્યક છે. થોડું બોલનાર વગર વિચાર્યે નહીં બોલે; પોતાના દરેક શબ્દને તોળશે. ઘણી વેળા માણસ બોલવાને અધીરો બને છે. ‘મારે પણ બોલવું છે’ એવી ચિઠ્ઠી ક્યા પ્રમુખને નહીં મળી હોય ? પછી તેને વખત આપવામાં આવ્યો હોય તે તેને સારુ પૂરતો નથી થતો. વધારે બોલવા દેવાની માગણી કરે છે, ને છેવટે રજા વિના પણ બોલ્યા કરે છે ! આ બધાના બોલવાથી જગતને લાભ થયેલો ભાગ્યે જ જોવામાં આવે છે. તેટલા વખતનો ક્ષય થયેલો તો સ્પષ્ટ જોઈ શકાય છે.&lt;br /&gt;&lt;br /&gt;આ વસ્તુનો વિચાર કરીએ છીએ ત્યારે એમ લાગ્યા વિના રહેતું નથી કે આપણે ક્રોધથી ભરેલાં માનવીઓ જો મૌનની ઉપયોગિતા સમજીએ તો જગતની લગભગ અડધી આપત્તિ ઓછી થઈ જાય. આધુનિક સુધારો આવી પડ્યો તે પહેલાં ચોવીસ કલાકમાંથી પાંચ-છ કલાક તો શાંતિના આપણને મળતા જ હતા. આધુનિક સુધારાએ આપણને રાતનો દિવસ કરતાં ને સુવર્ણસમ શાંતિને બદલે પાર વિનાનાં હોહા ને શોરબકોર કરતાં શીખવ્યું. આપણે આપણા પ્રવૃત્તિમય જીવનમાં દિવસમાં ઓછામાં ઓછા બે કલાક પણ એકાંતમાં ગાળી શકીએ અને એ પરમ મૌનનો અવાજ સાંભળી શકીએ તો કેવું સારું ! એ ઈશ્વરી રેડિયો તો હંમેશાં વાગી જ રહ્યો છે, માત્ર એ સાંભળવા માટે આપણા કાન ને મન તૈયાર કરવાં રહે છે. પણ એ રેડિયો મૌન વિના સંભળાય એવો નથી.&lt;br /&gt;&lt;br /&gt;ખ્રિસ્તી સંત ટેરેસાએ મૌનના સુંદર પરિણામનું સરસ વર્ણન કરતાં કહ્યું છે : ‘તમારી બધી ઈન્દ્રિયો એકદમ ભેગી મળીને એકતાન બનતી તમને લાગશે; મધમાખો મધપૂડામાં પાછી ફરીને મધ બનાવવાનું કામ કરવા પુરાઈ રહે એના જેવી એ લાગશે : અને આને સારુ તમારે પ્રયત્ન કે કાળજી નહીં કરવા પડે. આમ તમારો આત્મા પોતા પ્રત્યે જે બળજબરી કરે તેનું સુફળ ઈશ્વર તેને આપે છે; અને તેને ઈન્દ્રિયો પર એટલું પ્રભુત્વ આપે છે કે એ આત્મા જ્યારે સ્વસ્થ, અંતર્મુખ થવા માગે ત્યારે એક નિશાની કરતાંવેંત ઈન્દ્રિયો એનું માની જાય છે ને બાહ્ય વસ્તુઓ પરથી પાછી વળીને અંતર્મુખ બની જાય છે. સંકલ્પનું બળ પહેલી વાર અજમાવતી વખતે તે જલદી જલદી પાછી ફરે છે. આખરે, એવા ઘણા પ્રયત્ન પછી, ઈશ્વર એ ઈન્દ્રિયોને સંપૂર્ણ સમત્વ અને સંપૂર્ણ નિદિધ્યાસનની સ્થિતિએ પહોંચાડે છે.’&lt;br /&gt;&lt;br /&gt;એ મૌન મારા શરીર તેમ જ આત્માને બંનેને આવશ્યક થઈ પડ્યું છે. મૂળ તો મનનો બોજો હળવો કરવાને એ લીધેલું. વળી મારે લખવાને સારુ વખત જોઈતો હતો. પણ કેટલાક વખત સુધી મૌન રાખ્યા પછી મેં એની આધ્યાત્મિક ઉપયોગિતા જોઈ. મારા મનમાં એકદમ ઝબકારાની પેઠે ઊગી આવ્યું કે એ વખતે હું ઈશ્વરપ્રણિધાન સારામાં સારું કરી શકું છું અને હવે મને લાગે છે કે મૌન મારે સારુ સ્વભાવસિદ્ધ વસ્તુ છે. મારા જેવા સત્યના શોધકને સારુ મૌન મોટી મદદરૂપ થાય છે. મૌનની સ્થિતિમાં આત્માને પોતાનો રસ્તો વધારે સ્પષ્ટ દેખાય છે અને પહેલાં મનની પકડમાંથી સરી જતું તેમ જ ભ્રામક ભાસનારું ઓગળીને સ્ફટિક જેવું સાફ સૂઝવા લાગે છે. આપણું જીવન સત્યની લાંબી તેમ જ કઠણ ખોજના સ્વરૂપનું છે અને આત્માને પોતાના સંપૂર્ણ ઉચ્ચ સ્વરૂપને પામવાને અંતરની નિરાંત ને આરામની જરૂર રહે છે.&lt;br /&gt;&lt;br /&gt;Source: ‘સત્ય એ જ ઈશ્વર છે’ by Gandhiji&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4937173377498183371?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4937173377498183371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4937173377498183371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4937173377498183371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4937173377498183371'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/02/blog-post.html' title='મૌનનો મહિમા - ગાંધીજી'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-3918973777297820320</id><published>2010-01-27T07:33:00.000-08:00</published><updated>2010-01-27T09:00:04.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='India'/><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><category scheme='http://www.blogger.com/atom/ns#' term='favorite vedio'/><title type='text'>Nandan Nilekani's ideas for India's future</title><content type='html'>Ideas that have arrived.&lt;br /&gt;Ideas in Progress&lt;br /&gt;Ideas in conflict&lt;br /&gt;Ideas in anticipation&lt;br /&gt;&lt;br /&gt;Sudden relocation to UK lead me to think many things about India. And I came across Nandan Nilekani’s book - Imagine India in Dec 2008.&lt;br /&gt;Here I am just sharing his speech about India at TED 2009. Hope you will enjoy these thoughts and Ideas about India:)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I love my India :)&lt;/strong&gt; &lt;br /&gt;&lt;strong&gt;I miss my India :(&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2cYDyMnL4M8&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/2cYDyMnL4M8&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-3918973777297820320?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/3918973777297820320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=3918973777297820320' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3918973777297820320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3918973777297820320'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/nandan-nilekanis-ideas-for-indias.html' title='Nandan Nilekani&apos;s ideas for India&apos;s future'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-1399970755066990875</id><published>2010-01-26T08:17:00.000-08:00</published><updated>2010-01-27T04:44:01.602-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='favorite vedio'/><category scheme='http://www.blogger.com/atom/ns#' term='Innovation'/><title type='text'>Digital World + Physical World :)</title><content type='html'>Pranav Mistry: The thrilling potential of SixthSense technology.&lt;br /&gt;&lt;br /&gt;At TEDIndia, Pranav Mistry demos several tools that help the physical world interact with the world of data -- including a deep look at his SixthSense device and a new, paradigm-shifting paper "laptop." In an onstage Q&amp;A, Mistry says he'll open-source the software behind SixthSense, to open its possibilities to all.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;About Pranav Mitry:&lt;/strong&gt;&lt;br /&gt;Pranav Mistry is the inventor of SixthSense, a wearable device that enables new interactions between the real world and the world of data&lt;br /&gt;&lt;br /&gt;&lt;!--copy and paste--&gt;&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/PranavMistry_2009I-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PranavMistry-2009I.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=685&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=pranav_mistry_the_thrilling_potential_of_sixthsense_tec;year=2009;theme=new_on_ted_com;theme=a_taste_of_tedindia;theme=tales_of_invention;theme=the_creative_spark;theme=design_like_you_give_a_damn;theme=what_s_next_in_tech;theme=ted_under_30;event=TEDIndia+2009;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/PranavMistry_2009I-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PranavMistry-2009I.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=685&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=pranav_mistry_the_thrilling_potential_of_sixthsense_tec;year=2009;theme=new_on_ted_com;theme=a_taste_of_tedindia;theme=tales_of_invention;theme=the_creative_spark;theme=design_like_you_give_a_damn;theme=what_s_next_in_tech;theme=ted_under_30;event=TEDIndia+2009;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;em&gt;small note:&lt;/em&gt; I am proud of Pranav and Proud of our college NIT. we were in a same batch (different engineering stream)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-1399970755066990875?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/1399970755066990875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=1399970755066990875' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1399970755066990875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1399970755066990875'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/digital-world-physical-world.html' title='Digital World + Physical World :)'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8261527179986458613</id><published>2010-01-25T01:56:00.000-08:00</published><updated>2010-01-29T07:58:29.359-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Examplary Life'/><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Examplary Life</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_jeYO6OeMsY0/S11rHRDqGCI/AAAAAAAAHbA/7NOfjEPRhBY/s1600-h/mdravid.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 176px;" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/S11rHRDqGCI/AAAAAAAAHbA/7NOfjEPRhBY/s200/mdravid.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5430614498260686882" /&gt;&lt;/a&gt;&lt;br /&gt;નાનપણથી સંઘર્ષ કરીને જેણે ઉંમરના આઠ દાયકા વિતાવ્યા હોય એવી મહિલા 81મા વર્ષે શું કરતી હોય, એવો પ્રશ્ન જો કોઈને પૂછીએ તો એવો જવાબ મળે કે આ ઉંમરે મહિલા બહુબહુ તો પ્રભુભજનમાં સમય વ્યતિત કરતી હોય, સવારસાંજ દેવદર્શને જતી હોય, પોતાનાં પૌત્રો-દૌહિત્રોને રમાડતી હોય અને એ રીતે સમય પસાર કરતી હોય – પણ જો વાત મંદાકિનીબેન દ્રવિડની હોય તો તેમને આ બધું બહુ ઓછું લાગુ પડે છે. સામાન્યપણે 81મા વર્ષે સ્ત્રી જે કંઈ કરતી હોય કે કરી શકતી હોય તેના કરતાં તેઓ કંઈક જુદું જ કરી રહ્યાં છે અને તેઓ જે કંઈ કરી રહ્યાં છે અને કરી શક્યાં છે એ જોઈને માત્ર તેમની ઉંમરની જ નહિ, તેમનાથી ઘણી નાની ઉંમરની મહિલાઓને પણ તેમની ભારોભાર ઈર્ષ્યા આવે તેવું છે. ગયા વર્ષે મંદાકિની દ્રવિડને પૂણે યુનિવર્સિટીએ પી.એચ.ડી.ની ડિગ્રી એનાયત કરી છે.&lt;br /&gt;&lt;br /&gt;આ ઉંમરે પી.એચ.ડી. થવું એનો અર્થ શો એ ભાગ્યે જ કોઈને સમજાવવું પડે તેમ છે. તેઓ પોતે આ સિદ્ધિને એક જંગ જીતવા સમાન ગણાવે છે. કારણ કે આ ઉંમરે પી.એચ.ડી. થવું કેટલું મુશ્કેલ હોઈ શકે એ કહાણી તેમની પાસેથી સાંભળીએ તો જ ખ્યાલ આવે. &lt;span class="fullpost"&gt;&lt;br /&gt;તેઓ આ થિસિસ તૈયાર કરતાં હતાં એ દરમ્યાન જ તેમના એકમાત્ર પુત્રનું અવસાન થયું હતું. થિસિસ યુનિવર્સિટીમાં સબમીટ કર્યા પછી વાઈવા આપ્યા બાદ પણ જાણે એવું લાગતું હતું કે યુનિવર્સિટીનો નિર્ણય આવતાં જાણે યુગો સુધી રાહ જોવી પડશે. મંદાકિનીના કહેવા મુજબ તેમણે 2006માં પોતાનો થિસિસ સબમિટ કર્યો હતો અને 2008ની 8 એપ્રિલે વાઈવા લેવાયો હતો. એ પછી બે માસ વીતી જવા છતાં યુનિવર્સિટી તરફથી કોઈ હિલચાલ ન થતાં ગયા 2008ના જૂનના અંતે તેમણે કંટાળીને બૉર્ડ ઑફ કૉલેજ ઍન્ડ યુનિવર્સિટી ડેવલપમેન્ટના ડિરેક્ટરને એક પત્ર લખ્યો. પછી તેમને જાણવા મળ્યું હતું કે યુનિવર્સિટીમાં સંબંધિત કલાર્કની આળસને કારણે તેમનું કામ ખોરંભે પડ્યું હતું. ડિરેક્ટરને જેવો પત્ર મળ્યો કે તરત આદેશો છૂટ્યા અને મંદાકિની દ્રવિડના થિસિસને માન્ય રાખીને તેમને પી.એચ.ડી.ની ડિગ્રી એનાયત કરવાનો નિર્ણય લેવાઈ ગયો.&lt;br /&gt;&lt;br /&gt;મંદાકિની દ્રવિડે તેમનાં ગાઈડ સુનંદા કૌશિકના માર્ગદર્શન હેઠળ ‘મેડિકલ ઍન્ડ સાઈકિયાટ્રિક સોશિયલ પ્રેક્ટિશનર્સ પ્રોસેસ ઍન્ડ એનાલિસિસ’ વિષય પર થિસિસ લખ્યો છે અને વધુ મહત્વની વાત એ છે કે આખો થિસિસ તેમના અંગત અનુભવો પર આધારિત છે અને તેમાંનો એક ફકરો પણ કોઈ સંદર્ભ સામગ્રીમાંથી લેવાયો નથી. આજે પૂણે સ્થિત એન્જિનિયરિંગ અને એનર્જી કંપની ‘થર્મેક્સ’ સાથે કન્સલ્ટન્ટ તરીકે સેવા આપતાં મંદાકિની કહે છે, ‘મારા ચાલીસ વર્ષના અનુભવોને કારણે થિસિસ પૂરો થઈ શક્યો. મેં જે કંઈ કામ કર્યું છે એ સંપૂર્ણ અધિકૃત છે અને મારાં ગાઈડના સતત પ્રોત્સાહનને કારણે એ બધું શક્ય બની શક્યું છે. તેમણે જ મને કહ્યું કે મારી પાસે જે અનુભવો છે તે કાગળ પર ઊતરવા જોઈએ, જેથી નવી પેઢીને તે કામમાં આવી શકે અને તેમના માટે માર્ગદર્શન રૂપ બની શકે. એટલે આ કામ કરતી વખતે મારી ઉંમર તેમાં જરાય અવરોધક બની નહોતી કારણ કે મારી પાસે જે અનુભવોનું ભાથું છે અને જે કંઈ મારા દિમાગમાં છે એ બધું જ કાગળ પર અવતર્યું છે.’&lt;br /&gt;&lt;br /&gt;આફત અને ઉંમર દઢ સંકલ્પને કશું કરી શકતાં નથી એનું મંદાકિની દ્રવિડ જીવંત ઉદાહરણ બની ગયાં છે. પરિસ્થિતિને આધિન કે નસીબમાં માંડ્યું છે તેમ માનીને જીવવાનું તેમણે કદી મંજૂર રાખ્યું નહિ. તેમણે ક્યા સંજોગોમાંથી પસાર થઈને આ સિદ્ધિ મેળવી અને કેવો કેવો સંઘર્ષ કર્યો એ જાણ્યા પછી આ વાત વધુ સારી રીતે સમજી શકાય.&lt;br /&gt;&lt;br /&gt;મંદાકિની માત્ર તેર વર્ષનાં હતાં ત્યારે પિતાનું અવસાન થતાં એમને માથે ઘણી મોટી જવાબદારી આવી પડી હતી. લગભગ સાતેક દાયકા પહેલાંના સમાજમાં એક ગરીબ પરિવારની કિશોરીની કલ્પના કરી જુઓ. માતા, બે નાના ભાઈઓ, દાદી અને કાકી એ બધાંનો આધાર આ તેર વર્ષની છોકરી હતી. એ કમાય તો કુટુંબ ખાઈ શકે એવી સ્થિતિ હતી. આથી એણે સ્થાનિક જિલ્લા કલેકટરની કચેરીમાં નોકરી કરવાનું શરૂ કર્યું. ભણવાનું ચાલુ રાખવાની તીવ્ર ઈચ્છા હોવા છતાં તેણે શાળાને તિલાંજલિ આપવી પડી. એકાદ વર્ષ તો મહિનાના 25 રૂપિયાના પગારે એણે નોકરી કરી. તેની મહેનત જોઈને તેના મામા પ્રભાવિત થયા. તેમણે થોડી આર્થિક મદદ કરવા માંડી એટલે મંદાકિનીએ ફરી ભણવાનું શરૂ કર્યું. એમ કરતાં કરતાં એમણે મેટ્રિકની પરીક્ષા પાસ કરી. 1945નું એ વર્ષ હતું. તેઓ 16 વર્ષનાં થઈ ચૂક્યાં હતાં એટલે તેમનાં લગ્ન કરી દેવાયાં. તેમનો પતિ હથિયારોની ફેકટરીમાં કામ કરતો હતો. આ લગ્નજીવનના પરિપાક રૂપે 1949માં તેઓ એક પુત્રનાં માતા બન્યાં. તેનું નામ દિલીપ રખાયું. દરમ્યાનમાં તેમના લગ્નજીવનની નાવ સતત હાલકડોલક થતી રહેતી હતી. પુત્રની માતા બન્યા પછી પણ લગ્નજીવનનું ગાડું કોઈ રીતે થાળે પડે એવું ન લાગતાં છૂટાછેડા લઈ લીધા.&lt;br /&gt;&lt;br /&gt;1949ના એ વર્ષે જ તેમણે પૂણેની સાસુન હોસ્પિટલમાં જુનિયર કારકુનની નોકરી મેળવી લીધી. તેઓ નોકરીએ જતાં ત્યારે બાળકની સંભાળ દાદી અને માતા રાખતાં. હોસ્પિટલમાં દર્દીઓની પથારીની વ્યવસ્થા સંભાળવાનું કામ કરવા સાથે તેમણે ફરી ભણવાનું ચાલુ કર્યું અને એસ.એન.ડી.ટી. યુનિવર્સિટીમાંથી અંગ્રેજી સાહિત્ય સાથે સ્થાતક થયાં. હોસ્પિટલમાં પોતાના કામ દરમ્યાન તેઓ દર્દીઓની વેદના અને એકલતાના જગતમાં વધુ ઊંડા ઊતર્યાં. તેને એમ થતું કે આ દર્દીઓની માનસિક સ્થિતિનો વિચાર કરવો જોઈએ. માત્ર એમના માટે એલોપથી દવાઓ જ પૂરતી નથી. એ પછી એમણે માનસિક બીમારીથી પીડાતા દર્દીઓના જીવનમાં રસ લેવા માંડ્યો. 1959માં તેમણે બે વર્ષની રજા લીધી અને મુંબઈમાં ટાટા ઈન્સ્ટિટ્યૂટ ઑફ સોશિયલ સાયન્સીઝમાંથી માસ્ટરની ડિગ્રી મેળવી. 1962માં ફરી પાછાં દર્દીઓની વચ્ચે આવેલાં મંદાકિનીને લાગ્યું કે માનસિક રીતે બીમાર દર્દીઓના કિસ્સાઓમાં પશ્ચિમના સિદ્ધાંતો ભારતીય પ્રશ્નોનો પૂરી રીતે ઉકેલ આપી શકે તેમ નથી. એથી તેમણે માનસિક રીતે બીમાર દર્દીઓને કેવી સારવાર આપવી જોઈએ એ વિષે સંશોધન શરૂ કર્યું. તેમના સંપર્કમાં જે દર્દીઓ આવતા તેમની સામાજિક અને પારિવારિક સ્થિતિઓનો પણ તેઓ અભ્યાસ કરતાં ગયાં. તેમના ધ્યાનમાં એવી ઘણી બાબતો આવતી ગઈ જે દર્દીની જે તે બીમારી સાથે દેખીતી રીતે સીધી સંકળાયેલી ન લાગતી હોય પણ કોઈક સ્તરે તે માટે જવાબદાર તો હોય જ.&lt;br /&gt;&lt;br /&gt;મંદાકિનીએ 1964માં ગરીબ દર્દીઓને બ્લડ ડોનેશન અને આર્થિક તથા દવાઓની મદદ કરી શકાય તે માટે ‘સોસાયટી ઑફ ધ ફ્રેન્ડઝ ઑફ સાસુન હોસ્પિટલ’ની સ્થાપના કરી. હોસ્પિટલે તેના માટે જરૂરી જગ્યાની વ્યવસ્થા કરી આપી અને કેટલાક સામાજિક કાર્યકરોએ તેને માટે ફંડ ઊભું કરવા ચેરિટી કાર્યક્રમોનું આયોજન કર્યું અને દાતાઓ પાસે ટહેલ નાંખી. 1965માં ફુલબ્રાઈટ સ્કોલરશિપ મળતાં મંદાકિની છ મહિના અમેરિકા ગયાં. ત્યાં કેલિફોર્નિયામાં ખૂબ સારા પગારે તેમને નોકરીની ઓફર થઈ, પણ તેનો ઈન્કાર કરીને તેઓ સાસુન હોસ્પિટલમાં પરત આવી ગયાં. હોસ્પિટલમાં નવજાત બાળકોને તરછોડી જવાના કિસ્સા વધી રહ્યા છે એ ધ્યાન પર આવતાં 1974માં એક અનાથાલય અને દત્તક કેન્દ્ર ‘શ્રી વત્સ’ શરૂ કરવા તેમણે હોસ્પિટલના સત્તાવાળાઓને સમજાવ્યા. સાસુન હોસ્પિટલમાં મંદાકિની દ્રવિડની સેવાઓની અને પ્રવૃત્તિઓની એવી સુવાસ ફેલાયલી છે કે તેમના વિચારને તરત અમલમાં મૂકી દેવાય છે. આજે ‘શ્રીવત્સ’ પૂણેનું એક અગ્રણી દત્તક કેન્દ્ર બની ગયું છે.&lt;br /&gt;&lt;br /&gt;સાસુન હોસ્પિટલમાંથી 1985માં તેઓ નિવૃત્ત થયાં પછી પાર્ટ ટાઈમ કન્સલ્ટન્ટ તરીકે થર્મેક્સમાં જોડાયાં. કંપનીનાં ચેરપર્સન અનુ આગાએ તેમને કહી દીધું છે કે જ્યાં સુધી તેમની ઈચ્છા હોય ત્યાં સુધી તેઓ તેમનું આ કામ ચાલુ રાખી શકે છે. આજે આ કામ કરતાં પણ તેમને લગભગ અઢી દાયકા થવા આવ્યા છે. થર્મેક્સમાં પાર્ટ ટાઈમ જોડાવા સાથે મંદાકિની મુક્તાંગન રિહેબિલિટેશન સેન્ટર ફોર ડ્રગ એડિક્સ, કોઢવા, લેપ્રસી હોસ્પિટલ અને સંજીવની હોસ્પિટલ સાથે પણ કામ કરતાં રહ્યાં. એ દરમ્યાન કંપનીના સેંકડો કર્મચારીઓના દારૂની લતથી માંડીને અનેકવિધ પ્રશ્નો ઉકેલવામાં તેઓ મદદરૂપ થતાં રહ્યાં છે. સુનંદા કૌશિક મંદાકિનીનાં સહાધ્યાયી રહી ચૂક્યાં છે. મંદાકિની 40 વર્ષનો જે અનુભવ ધરાવે છે તેનો ભાવિ પેઢીને પણ લાભ મળે તે માટે થિસિસ લખવા તેમને પ્રેર્યાં. પોતાનું કામ ચાલુ રાખવા સાથે આ નવું કામ પણ શરૂ કરી દીધું. એ દરમ્યાન 2002માં તેમના પુત્રનો કેન્સરે ભોગ લીધો. પુત્રના કસમયના મોતે તેમને હચમચાવી દીધાં, પણ થોડા જ સમયમાં સ્વસ્થ થઈ ફરી દિવસે થર્મેક્સનું કામ અને રાત્રે થિસિસનું કામ કરવામાં લાગી ગયાં.&lt;br /&gt;&lt;br /&gt;તેમનાં ગાઈડ સુનંદા કહે છે, ’81 વર્ષની ઉંમરે કોઈ આવું થકવી નાખનારું કામ કઈ રીતે કરી શકે એ ખરેખર નવાઈની વાત છે, પણ મંદાકિની દ્રવિડ આ કામ કરીને અનેક લોકો માટે પ્રેરણાસ્ત્રોત બની ગયાં છે. આ થિસિસમાં માનસિક રીતે બીમાર દર્દીઓની સંભાળના સંદર્ભમાં બાબતો તેમણે આવરી લીધી છે તે એટલી મહત્વની છે કે એક દિવસ એવો પણ આવશે કે આ થિસિસનું વાચન વિદ્યાર્થીઓ માટે ફરજિયાત બનાવી દેવાશે.’&lt;br /&gt;&lt;br /&gt;આજે તેમની પુત્રવધૂ અને બે દૌહિત્રી 24 વર્ષીય સોનિયા અને 20 વર્ષીય મિતાલી મુંબઈમાં રહે છે. જીવનભર બીજાઓને ઉપયોગી થનારી આ મહિલા મંદાકિની દ્રવિડને 81 વર્ષની ઉંમરે એકલતા સાલે છે ખરી ? – જવાબમાં તેઓ કહે છે, જરાય નહિ. મને મારી જ કંપની પૂરતી છે.&lt;br /&gt;Source:&lt;a href="http://www.readgujarati.com/2010/01/25/anokhi-siddhi/"&gt;&lt;span style="font-size:78%;"&gt;Read Gujarati&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8261527179986458613?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8261527179986458613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8261527179986458613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8261527179986458613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8261527179986458613'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/examplary-life.html' title='Examplary Life'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jeYO6OeMsY0/S11rHRDqGCI/AAAAAAAAHbA/7NOfjEPRhBY/s72-c/mdravid.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-3007809296008627943</id><published>2010-01-21T01:57:00.000-08:00</published><updated>2010-01-21T02:07:42.134-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><title type='text'>EATING FRUIT - Guide</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_jeYO6OeMsY0/S1gnZtBqYuI/AAAAAAAAHa0/Uka7CJJ292o/s1600-h/fruits.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 140px;" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/S1gnZtBqYuI/AAAAAAAAHa0/Uka7CJJ292o/s200/fruits.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5429132673331913442" /&gt;&lt;/a&gt;&lt;br /&gt;We all think eating fruits means just buying fruits, cutting it and just popping it into our mouths. It's not as easy as you think It's important to know how and when to eat..&lt;br /&gt;&lt;br /&gt;What is the correct way of eating fruits?&lt;br /&gt;IT MEANS NOT EATING FRUITS AFTER YOUR MEALS! - FRUITS SHOULD BE EATEN ON AN EMPTY STOMACH.&lt;br /&gt;&lt;br /&gt;If you eat fruit on an empty stomach, it will play a major role to detoxify your system, supplying you with a great deal of energy for weight loss and other life activities.&lt;br /&gt;&lt;br /&gt;FRUIT IS THE MOST IMPORTANT FOOD - Let's say you eat two slices of bread and then a slice of fruit.. The slice of fruit is ready to go straight through the stomach into the intestines, but it is prevented from doing so.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;In the meantime the whole meal rots and ferments and turns to acid.. The minute the fruit comes into contact with the food in the stomach and digestive juices, the entire mass of food begins to spoil.&lt;br /&gt;So please eat your fruits on an empty stomach or before your meals! You have heard people complaining - every time I eat water-melon I burp, when I eat durian (fruit from Asia with a foul smell yet delicious flavor) my stomach bloats up, when I eat a banana I feel like running to the toilet etc. - actually all this will not arise if you eat the fruit on an empty stomach. The fruit mixes with the putrefying other food and produces gas and hence you will bloat!&lt;br /&gt;&lt;br /&gt;Graying hair, balding, nervous outburst, and dark circles under the eyes - all these will not happen if you take fruits on an empty stomach..&lt;br /&gt;&lt;br /&gt;There is no such thing as some fruits, like orange and lemon are acidic, because all fruits become alkaline in our body, according to Dr. Herbert Shelton who did research on this matter. If you have mastered the correct way of eating fruits, you have the Secret of beauty, longevity, health, energy, happiness and normal weight.&lt;br /&gt;When you need to drink fruit juice - drink only fresh fruit juice, NOT from the cans.. Don't even drink juice that has been heated up. Don't eat cooked fruits because you don't get the nutrients at all. You only get to taste.&lt;br /&gt;Cooking destroys all the vitamins.&lt;br /&gt;&lt;br /&gt;But eating a whole fruit is better than drinking the juice. If you should drink the juice, drink it mouthful by mouthful slowly, because you must let it mix with your saliva before swallowing it.&lt;br /&gt;&lt;br /&gt;You can go on a 3-day fruit fast to cleanse your body. Just eat fruits and drink fruit juice throughout the 3 days and you will be surprised when your friends tell you how radiant you look!&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;KIWI:&lt;/span&gt; Tiny but mighty. This is a good source of potassium, magnesium, vitamin E &amp;amp; fiber. Its vitamin C content is twice that of an orange.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;APPLE:&lt;/span&gt; An apple a day keeps the doctor away? Although an apple has a low vitamin C content, it has antioxidants &amp;amp; flavonoid which enhances the activity of vitamin C thereby helping to lower the risks of colon cancer, heart attack &amp;amp; stroke.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;STRAWBERRY:&lt;/span&gt; Protective Fruit. Strawberries have the highest total antioxidant power among major fruits &amp;amp; protect the body from cancer-causing, blood vessel-clogging free radicals.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;ORANGE:&lt;/span&gt; Sweetest medicine, eating 2 to 4 oranges a day may help keep colds away, lower cholesterol, prevent &amp;amp; dissolve kidney stones as well as lessens the risk of colon cancer.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;WATERMELON:&lt;/span&gt; Coolest thirst quencher. Composed of 92% water, it is also packed with a giant dose of glutathione, which helps boost our immune system. They are also a key source of lycopene - the cancer fighting oxidant. Other nutrients found in watermelon are vitamin C &amp;amp; Potassium.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;GUAVA &amp;amp; PAPAYA:&lt;/span&gt; Top awards for vitamin C. They are the clear winners for their high vitamin C content. Guava is also rich in fiber, which helps prevent constipation. Papaya is rich in carotene; this is good for your eyes.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Drinking Cold water after a meal = Cancer! Can you believe this??&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For those who like to drink cold water, this article is applicable to you.&lt;br /&gt;&lt;br /&gt;It is nice to have a cup of cold drink after a meal. However, the cold water will solidify the oily stuff that you have just consumed. It will slow down the digestion.. Once this 'sludge' reacts with the acid, it will break down and be absorbed by the intestine faster than the solid food. It will line the intestine. Very soon, this will turn into fats and lead to cancer. It is best to drink hot soup or warm water after a meal.&lt;br /&gt;&lt;br /&gt;A cardiologist says if everyone who gets this mail sends it to 10 people, you can be sure that we'll save at least one life. Read this...It could save your life!&lt;br /&gt;&lt;br /&gt;source: one fw email :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-3007809296008627943?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/3007809296008627943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=3007809296008627943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3007809296008627943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3007809296008627943'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/eating-fruit-guide.html' title='EATING FRUIT - Guide'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jeYO6OeMsY0/S1gnZtBqYuI/AAAAAAAAHa0/Uka7CJJ292o/s72-c/fruits.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7207868176290823858</id><published>2010-01-21T01:47:00.000-08:00</published><updated>2010-01-21T01:54:06.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>નીતિનાશને માર્ગે  (ભાગ:1) - ગાંધીજી</title><content type='html'>[રોજ સવારના અખબારથી લઈને રસ્તા પરના હોર્ડિંગો અને છેક રાત્રી સુધીના ટીવી કાર્યક્રમો સુધી આપણી આંખમાં એવા ઉતેજક દ્રશ્યો નજરે પડે છે જે મનને ક્ષુબ્ધ અથવા વિચલિત તો કરે જ છે સાથે સાથે એટલી હદ સુધી નબળું બનાવી મુકે છે કે આપણને લાગે છે કે ‘આ બધું તો આમ જ હોય !’ પ્રતિકાર કરવાની વાત તો બાજુએ, અજાણતાં જ એનો સ્વીકાર થઈ જાય છે ! પરિણામે સમાજનું માનસિક સ્વાસ્થ્ય કથળતું જાય છે. આ પ્રકારની નાજુક બાબતોમાં મહાપુરુષોની આંગળી પકડીને ચાલવું વધારે હિતાવહ છે. યુવાનોને આ બાબતે યોગ્ય માર્ગદર્શન મળે અને તેઓ તેજસ્વી તેમજ ઊર્જાવાન બને એ માટે ‘યંગ ઈન્ડિયા’ નામના સામાયિકમાં ગાંધીજી એક કોલમ લખતા હતા. તેમના લેખો પરથી ‘નીતિનાશને માર્ગે’ નામનું પુસ્તક 1921 માં પ્રકાશિત થયું હતું. પુસ્તક પ્રાપ્તિની વિગત લેખના અંતે આપવામાં આવી છે. – તંત્રી. ]&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;[1] સંયમને શાની જરૂર હોય ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;એક વિવાહ કરવાને ઉમેદવાર થઈ રહેલ ભાઈ મને લખે છે કે : ‘આપ લખો છો કે સંયમના પાલનમાં એકને બીજાની સંમતિની જરૂર ન હોય – શું આ વધારે પડતું નથી ? પત્નીને પણ પોતાના જ્ઞાનમાં ભાગી બનાવી શકે ત્યાં સુધી તો રાહ જોવી જોઈએ ને ? આપનો લેખ ‘પતિનું કર્તવ્ય’ ફરી ફરી વાંચ્યા છતાં હજી ખુલાસો જોઈએ છે. હું હજી અવિવાહિત છું. લગ્ન થોડા વખત પછીથી છે. આપની પાસેથી ખુલાસો મેળવવા લખું છું.’&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;એ ભાઈને મેં લખ્યું કે : ‘જે સંયમને બીજાની સંમતિની જરૂર હોય તે સંયમ ન ટકી શકે એવો મારો અનુભવ છે. સંયમને જરૂર કેવળ અંતર્નાદની જ હોય છે. સંયમનું જોર હૃદયબળ ઉપર રહેલું છે અને જે સંયમ જ્ઞાનમય અને પ્રેમમય હોય છે, તેની છાપ આસપાસના વાતાવરણ ઉપર પડ્યા વિના રહેતી જ નથી. છેવટે વિરોધ કરનાર પણ અનુકૂળ થાય છે. આવું પતિપત્નીને વિષે પણ છે. પત્ની તૈયાર ન હોય ત્યાં સુધી જો પતિએ રોકાવાપણું હોય, અને જ્યાં સુધી પતિ તૈયાર ન હોય ત્યાં સુધી પત્નીએ રોકાવાપણું હોય, તો ઘણે ભાગે બંને ભોગપાશમાંથી છૂટી જ નહીં શકે. ઘણા દાખલાઓમાં જ્યાં સંયમને સારુ એકબીજાના ઉપર આધાર રખાય છે ત્યાં છેવટે તે ભાંગી પડે છે. તેનું કારણ જ આ મોળાશ છે. વધારે ઊંડે ઊતરીને આપણે તપાસીએ તો માલૂમ પડશે કે જ્યારે એકબીજાની કે બીજાની કે બીજીની સંમતિથી રાહ જુએ છે, ત્યારે ત્યાં સંયમની ખરી તૈયારી નથી અથવા તેને સારુ ખરેખરી ધગશ નથી. તેથી જ નિષ્કુળાનંદે લખ્યું છે કે, ‘ત્યાગ ન ટકે રે વૈરાગ વિના.’ વૈરાગને જો રાગના સાથની જરૂર હોઈ શકે તો સંયમ પાળવા ઈચ્છનારને ન ઈચ્છનારની સંમતિની જરૂર હોય.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;[2] કામરોગનું નિવારણ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;વિવાહ વિષેના થર્સ્ટન નામે લેખકના નવા પુસ્તકના મુખ્ય ભાગનો અનુવાદ પરિશિષ્ટમાં છાપ્યો છે તેનું ધ્યાનપૂર્વક મનન દરેક સ્ત્રીપુરુષ કરે એ ઈચ્છવાજોગ છે. આપણામાં પંદર વર્ષના બાળકથી માંડી પચાસ વર્ષના પુરુષમાં અને બાળક અથવા તેથી નાની વયની બાળાથી માંડી પચાસ વર્ષ લગીની સ્ત્રીમાં એવી કલ્પના રહેલી છે કે વિષયભોગ વિના રહી જ ન શકાય. તેથી બંને એની માટે લાલાયિત રહે છે. એકબીજાનો વિશ્વાસ નથી કરતાં અને સ્ત્રીને જોતાં પુરુષ વિષયભોગની દષ્ટિએ આકર્ષિત થઈ જાય છે અને સ્ત્રી પુરુષને જોઈને તેવી થઈ જાય છે. આથી કેટલાક રિવાજો એવા પડી ગયા છે કે જેથી સ્ત્રીપુરુષો નમાલાં, રોગી ને નિરુત્સાહી જોવામાં આવે છે, ને આપણી જિંદગી મનુષ્યને ન શોભે એવી હલકી થઈ પડી છે.&lt;br /&gt;&lt;br /&gt;વાસ્તવિક રીતે મનુષ્યમાં વિવેકબુદ્ધિ હોવાથી તેનામાં પશુના કરતાં વધારે ત્યાગશક્તિ ને સંયમ હોવાં જોઈએ. છતાં પશુ નરમાદાની મર્યાદાનો પ્રકૃતિનો જેટલો કાયદો પાળે છે એટલો મનુષ્ય નથી પાળતો, એ આપણે રોજ અનુભવીએ છીએ. શાસ્ત્રો તો પોકારીને કહે છે કે વિષયભોગ કેવળ પ્રજોત્પત્તિને માટે જ કરાય. આ આજ્ઞાનું ઉલ્લંઘન પ્રતિક્ષણ કરવામાં આવે છે, અને રોગો થાય ત્યારે એનાં બીજાં કારણો શોધવામાં આવે છે ! વિવાહ એક મિત્રતા છે. સ્ત્રીપુરુષ સુખદુ:ખનાં સાથી બને છે, પણ વિવાહ થયા એટલે પહેલી જ રાત્રે દંપતિએ ભોગમાં આળોટીને જિંદગી બરબાદ કરવાનો પાયો ન ખોદવો જોઈએ.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;[3] કામ કેમ જિતાય ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;વિકારને જીતવાનો પ્રયત્ન કરનાર એક વાચકે મને લખ્યું કે : ‘આપની ‘સત્યના પ્રયોગો’ વાંચી. આપે કોઈ પણ બાબત છૂપી રાખી નથી તેથી હું પણ આપની આગળ કંઈ છૂપું રાખવા માંગતો નથી. આપની ‘નીતિનાશને માર્ગે’ ચોપડી પણ વાંચી, તેથી વિષયોને જીતવાનું ખાસ કારણ મળ્યું. પરંતુ આ વિષયવાસના એવી ખરાબ છે કે સ્વામી વિવેકાનંદ કે સ્વામી રામકૃષ્ણ પરમહંસના ગ્રંથો વાંચવાનું ચાલુ હોય ત્યારે કાબૂમાં રહે છે પરંતુ જેવું વાંચન બંધ થયું કે પાછું એ ભૂત મન પર સવાર થઈ જાય છે. આંખ, નાક, કાન કે જિહ્વાને તો જીતી શકાય પણ એ સિવાયની જે ઈન્દ્રિય છે એ તો કાબૂમાં જ નથી રહેતી. હું સાત્વિક આહાર રાખું છું, એક વખત જમું છું, રાત્રે દૂધ પર જ રહું છું છતાં કોણ જાણે કેમ આ વિકારો અને એના વિચારો કેમેય કર્યા નાબૂદ થતા નથી. એનું કારણ મને સમજાતું નથી. મને આપના ‘નવજીવન’ અખબાર દ્વારા જવાબ આપશો. ઘણા વખતથી આપને પૂછવામાં સંકોચ થતો હતો, પરંતુ આપના આત્મવૃત્તાંતની ચોપડી વાંચ્યા પછી લાગ્યું કે સદમાર્ગે જવામાં જે મુશ્કેલીઓ જણાય તે પૂછવામાં શરમ ન રાખવી જોઈએ.’&lt;br /&gt;&lt;br /&gt;મેં એ ભાઈને લખ્યું : ‘જે સ્થિતિ આપની છે તે ઘણાઓની છે. કામને જીતવો મુશ્કેલ છે, અશક્ય નથી. પણ જે કામને જીતે છે એ સંસારને જીતે છે અને તરે છે એવો ઈશ્વરનો કોલ છે. આ બાબતમાં ધીરજની જરૂર છે. અભ્યાસમાં જેટલી ધીરજની જરૂર હોય એના કરતાં અનેકગણી ધીરજની જરૂર આ બાબતમાં છે. આ તો થઈ ધીરજની વાત. પણ કામને જીતવાના ઉપચાર વિષે પણ આપણે એટલા જ ઉદાસીન રહીએ છીએ. સામાન્ય રોગને મટાડવા માટે અનેક ડૉક્ટરો પાસે જઈએ છીએ પરંતુ આ કામરૂપી મહારોગ માટે આપણે કોઈ ઉપચાર કરતા નથી. હકીકતે તો આપણને આ વિકારો મટાડવાની ખરા દિલથી ઈચ્છા જ નથી. શિથિલતાને આપણે સ્વીકારી લીધી છે. એ વાત સાચી છે કે નિરાહારી વ્યક્તિના વિકારો શમે છે પરંતુ અંતે તો આત્મદર્શન વિના આસક્તિ જતી નથી. પણ તેથી કંઈ નિરાહાર રહેતાં થાકવું નહીં. મન, વચન અને કાયાનો સહયોગ હોવો જોઈએ. એ હોય તો વિકારો શાંત થાય જ. પણ નિરાહારના પહેલાં બીજાં પગલાં ઘણાં બાકી છે. એ લેવાતાં વિકારો શાંત નહીં થાય તો ઢીલા તો પડશે જ. ભોગવિલાસના પ્રસંગમાત્રનો ત્યાગ કરવો જોઈએ. એ પ્રત્યે અભાવ કેળવવો જોઈએ. એવા ચિત્રો અને સાહિત્યથી દૂર રહેવું જોઈએ જે આપણામાં રહેલી આ વૃત્તિઓને ઉત્તેજે. જે જે વસ્તુથી વિકાર ઉત્પન્ન થાય તેનો ત્યાગ કરવો જોઈએ.&lt;br /&gt;&lt;br /&gt;આહારનો પ્રશ્ન આને અંગે બહુ વિચારવા જેવો છે. એ ક્ષેત્ર અણખેડાયેલું છે. મારી માન્યતા એવી છે કે વિકારોને શાંત કરવા ઈચ્છનારે ઘીદૂધનો ઓછો ઉપયોગ કરવો જોઈએ. ફળો અને ઘણી લીલોતરી વગરરાંધેલી ખાઈ શકાય. મીઠાઈમસાલા વગેરેનો સર્વથા ત્યાગ કરવો જોઈએ. આટલું સૂચવ્યાં છતાં હું જાણું છું કે, ખોરાકથી જ કંઈ બ્રહ્મચર્યની પૂરી રક્ષા થઈ શકતી નથી. પણ વિકારોત્તેજક ખોરાકને ખાતાં છતાં માણસ જો બ્રહ્મચર્યના પાલનની આશા રાખે તો એ વ્યર્થ છે.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;[4] વ્યક્તિસ્વાતંત્ર્યની દલીલ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;બ્રહ્મચર્યનો તાત્કાલિક લાભ યુવાનો વધારે જોઈ શકશે. સ્મૃતિ સ્થિર અને સંગ્રાહક બને છે, બુદ્ધિ તેજસ્વી અને ફલવતી બને છે. સંકલ્પશક્તિ બળવાન બને છે અને તેના ચારિત્ર્યમાં એવો રણકાર આવી જાય છે જેવો ભોગવિલાસમાં જીવનારના સ્વપ્નમાંયે ન હોય. એની દષ્ટિ જ એવી પલટાઈ જાય છે કે પોતાની આસપાસની વસ્તુઓ પણ તેને ઈશ્વરરૂપ ભાસે છે. સંયમિત જીવન જીવનાર યુવકના આનંદ, ઉલ્લાસ, પ્રસન્નતાયુક્ત આત્મશ્રદ્ધા ક્યાં અને વિષયોના દાસ બનેલા વ્યક્તિના અશાંતિ અને ઉન્માદ ક્યાં ? ભોગોના વિચારોમાં ડૂબેલો માનવી આંતરિક રીતે નબળો પડતો જાય છે. ક્યાં બ્રહ્મચારીનું સુદ્રઢ નિરોગી શરીર અને ક્યાં સ્વેચ્છાચારીનું સડેલું, રોગધામ શરીર !&lt;br /&gt;&lt;br /&gt;એક સમાજશાસ્ત્રના વિદ્વાન આ બાબતે એમ કહે છે : ‘સમાજજીવન જ એવી અખંડ-સજીવ-વસ્તુ છે જેમાં સ્વતંત્ર અને વ્યક્તિગત કહેવાય એવી એકે પ્રવૃત્તિ નથી. ગમે તે કાર્ય કરીએ તેનો પડઘો અજાણી અને અકલ્પ્ય દિશાઓમાં ફેલાય છે. મનુષ્યના મનુષ્યત્વમાં જ તેનું સામાજિક હોવાપણું રહેલું છે. એકેય એવું ક્ષેત્ર નથી – ધર્મ, રાજ્ય, સમાજ – કે જેમાં વ્યક્તિના કાર્યની અસર આખા સમાજ પર પડતી ન હોય. માણસના દરેક કાર્યની અસર આખા સમાજ પર પડતી હોય છે, પછી ભલે ને એ કાર્ય ગમે એટલું ગુપ્ત કેમ ન હોય. જો માણસને અમુક સંજોગોમાં રસ્તા પર થૂંકવાની છૂટ ન હોય તો તેને તેના વીર્યને જ્યાં ત્યાં વાપરવાની છૂટ શી રીતે હોઈ શકે ? એ કાર્ય જેટલું મહત્વનું છે તેટલી જ સમષ્ટિના ઉપર એની વધારે અસર પડે છે. એક યુવક અને યુવતી ભલે ને એમ માને કે એક ઓરડામાં ભરાઈને તેઓ મોજમજા માટે જે કૃત્ય કરે તેની સાથે જગતનો કશો સંબંધ નથી; એમ માનવું એ નાદાની છે. દેશ-દેશ પ્રજા-પ્રજાને માનવતાનું અખંડ તત્વ એવી રીતે બાંધી લે છે કે ગમે તેટલું ગુપ્ત કાર્ય ગમે તેવી અભેદ્ય દીવાલોને ભેદીને અને ગમે તેવી વિશાળ સીમાઓને ઓળંગીને બહાર નીકળશે. ગર્ભાધાન અટકાવવાનો અને વિષયભોગને ખાતર જ પોતાના વીર્યનો ઉપયોગ કરવાનો હક પ્રતિપાદન કરનાર યુવાન ઈચ્છાએ કે અનિચ્છાએ સમાજમાં અવ્યવસ્થા અને કુસંપનાં બીજ વેરે છે. મનુષ્ય પોતાના કૃત્યની જવાબદારીમાંથી ખસી નહીં જાય એ વાત ઉપર જ આખું સમાજનું મંડાણ મંડાયેલું છે. તે માણસ પોતાની જવાબદારીમાંથી નીકળી જઈને સમાજની વ્યવસ્થાને છિન્નભિન્ન કરે છે, અને સમાજનો ચોર બને છે.’&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;[5] ઉપસંહાર&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;મિ.હેર નામના વ્યક્તિએ આ બાબતો વિશે ઘણી સુંદર વાતો લખી છે. તેઓ કહે છે કે : ‘નિરંકુશ વિષયાસક્તિથી કેટલું ભયંકર નુકશાન થાય છે એ આપણે વિચારવાનો વિષય છે. પ્રજોત્પતિનું વેર મરણમાં વળે છે. વિષયભોગના મૂળમાં જ મરણોન્મુખ ગતિ રહેલી છે – પુરુષની ભોગની ક્રિયામાં અને સ્ત્રીઓમાં સંતતિપ્રસુતિની ક્રિયામાં. સંયમિત જીવન જીવનાર માણસ વીર્યવાન, પ્રાણવાન અને નીરોગી હોય છે. આંતરિક શક્તિનો કેવળ ભોગમાં વ્યય થાય તો ધીમે ધીમે શરીરના અવયવોની શક્તિ ઘટશે અને ધીમે ધીમે શરીરનો નાશ જ થતો જશે.’ આ લેખક સંતતિનિયમનના સાધનોની પણ વિરુદ્ધ છે. તેઓ લખે છે કે : ‘એ સાધનોને પરિણામે પોતાનો સંયમ રાખવાની શક્તિ ઘટશે અને વિવાહિત જીવનમાં બુઢાપાની અશક્તિ આવે અને વિષયેચ્છા બંધ થાય ત્યાં સુધી ભોગોને તૃપ્ત કરવાનું ચાલુ રખાય છે. લગ્નની બહાર પણ એની દુષ્ટ અસરો તો પહોંચ્યા વિના રહેવાની નથી જ – એનાથી અનિયમિત અને નિરંકુશ વ્યભિચારોનું દ્વાર ઉઘડે છે અને આવા વ્યભિચાર તો આધુનિક ઉદ્યોગ, સમાજશાસ્ત્ર અને રાજકાજની દષ્ટિએ અતિશય ભયંકર છે. એટલું જ કહેવું બસ થશે કે ગર્ભનિરોધક ઉપાયો લગ્ન બાદ અતિશય સંભોગ અને અવિવાહિત દશામાં વ્યભિચાર સહેલો કરી મૂકે છે અને મારી શરીરશાસ્ત્રની ઉપરની દલીલો સાચી હોય તો તેમાં વ્યષ્ટિ અને સમષ્ટિને પારાવાર હાનિ રહેલી છે.’&lt;br /&gt;&lt;br /&gt;મૉ. બ્યૂરો પોતાના પુસ્તકને જે વાક્યથી ઉપસંહાર કરે છે તે દરેક યુવકે પોતાના હૃદયમાં કોતરી રાખવા જેવું છે : ‘ભાવી સંયમી અને સતપ્રતિષ્ઠિત પ્રજાઓને જ હાથ છે.&lt;br /&gt;[કુલ પાન : 109. કિંમત રૂ. 10. પ્રાપ્તિસ્થાન : નવજીવન પ્રકાશન મંદિર, અમદાવાદ-14 તેમજ અન્ય તમામ ગાંધીસાહિત્યના પુસ્તક વેચાણકેન્દ્રો પરથી પ્રાપ્ય.]&lt;br /&gt;&lt;br /&gt;You can read the same post from:&lt;br /&gt;http://www.readgujarati.com/2010/01/20/niti-nash/&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7207868176290823858?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7207868176290823858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7207868176290823858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7207868176290823858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7207868176290823858'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/1.html' title='નીતિનાશને માર્ગે  (ભાગ:1) - ગાંધીજી'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-169014745826691751</id><published>2010-01-21T01:44:00.000-08:00</published><updated>2010-01-21T01:55:35.900-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Story'/><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>વિદુરનીતિનો જન્મ</title><content type='html'>રાતોરાત ફેરફાર કરી નાખી, પાછી લોકમતની ગર્વિષ્ઠ મિથ્યા વાતો કરનારાઓની ઘણી ઘણી વાત કહી જાય છે, વિદુરનીતિની જન્મકથા. એ જન્મકથા આવી છે :&lt;br /&gt;&lt;br /&gt;ધૃતરાષ્ટ્રને લાગ્યું કે બાર વર્ષના વનવાસને અંતે હવે પ્રગટ થઈને પાંડવો પોતાની વાત રજૂ કરવાના છે ત્યારે એમને મનાવવા માટે એમની પાસે મોકલ્યા. ધૃતરાષ્ટ્રે એમને કહેવરાવ્યું કે, ગમે તેમ તોય તમે પાંડુને કુંતિ જેવાના પુત્ર છો. તમારી પાસે તમારી સજ્જનતા છે. તમારું પરાક્રમ પણ તમારું જ છે. તમે આવતી કાલે ગમે ત્યાં રાજ જમાવી શકશો. દુર્યોધન અત્યંત હઠાગ્રહી છે. કોઈનુંય કહ્યું માને તેવો નથી. આવે સમયે જે સમજે તે સહે, એ એક જ રસ્તો છે – ધૃતરાષ્ટ્રનો આ સંદેશો સંજયે પાંડવોને કહ્યો. પણ પોતાની વાત ન્યાયની હોવા છતાં, સામો માણસ માને તેમ નથી માટે વાત છોડી દેવી એ સજ્જનતા ગણાય કે નિર્માલ્યતા એની ગડભાંગમાં પાંડવો પડી ગયા.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;છેવટે યુધિષ્ઠિરે બધાની વતી જવાબ વાળ્યો : ‘સામ, દામ, ભેદ અને દંડ એ ચાર રસ્તા ન્યાયના છે. અમારે દામથી ન્યાય લેવો નથી. ભેદ જોઈતો નથી. સામથી માત્ર ન્યાયનું હોય તેટલું જ લેવું છે. પણ જ્યારે સામ કામ આપતો નથી ત્યારે જે દંડ લેતો નથી તે અન્યાયીને વધારે અન્યાયી અને જોહુકમીમાં માનનારો બનાવે છે. અને છેવટે એક દિવસ તો એને દંડ હાથમાં લેવો જ પડે છે. માટે તમે જઈને કહેજો કે પાંડવો સમાધાનમાં માને છે. પણ ન્યાયને ભોગે, સત્યને એક તરફ રાખીને, સમાધાન કરનારો માત્ર મૂર્ખ નથી, દુર્જન પણ છે; કારણ કે, એ દુર્જનતાને ઉત્તેજન આપે છે. પૈસા આપીને લૂંટારાને પાછો હાંકનારો જેમ મૂર્ખાઈની પરિસીમા બતાવે છે તેવી જ આ વાત છે. એટલે સમાધાન સૌથી પ્રથમ એમના દ્વારા જ કરવું છે. પણ એમ ન થાય તો પાંડવો દંડનીતિ ગ્રહણ કરવાના છે એ પણ નિશ્ચિત છે.’&lt;br /&gt;&lt;br /&gt;આ સંદેશો લઈને સંજય ધૃતરાષ્ટ્રની પાસે ગયો. પણ એ હસ્તિનાપુર પહોંચ્યો ત્યારે સાંજ પડી ગઈ હતી. એણે વિચાર કર્યો કે અત્યારે રાજાને સંદેશો આપવા જતાં અર્થનો અનર્થ થશે. એક તો એની ઊંઘ ઊડી જશે. બીજું, કદાચ દુર્યોધનને અત્યારે જ બોલાવશે. એમાંથી તો વાત વધારે હઠે ચડશે. એટલે એને સવારે સંદેશો આપવો વધારે યોગ્ય છે. બે પક્ષ વચ્ચે જે સંદેશા-વ્યવહાર ચલાવે છે તેણે હંમેશાં સમયની વધારેમાં વધારે માવજત કરવાની હોય છે. એકનો એક સંદેશો સવારે આપો ને રાત્રે આપો એમાં હાથી-ઘોડાનો ફેર છે. જો કે પાંડવોએ તો તત્કાલ સંદેશો આપવાનું કહ્યું છે, પણ મારી ફરજ છે કે સંદેશો સવારે આપવો. તે ધૃતરાષ્ટ્ર પાસે ગયો ત્યારે ધૃતરાષ્ટ્રે પૂછ્યું :&lt;br /&gt;‘સંજય, શું સંદેશો છે ? પાંડવો માનશે કે નહિ ? કે પછી સર્વનાશનો પંથ હશે ?’&lt;br /&gt;‘મહારાજ ! પાંડવોએ સંદેશો આપ્યો છે, પણ એ સંદેશો સવારે આપવા જેવો છે !’&lt;br /&gt;‘અશુભ છે ?’&lt;br /&gt;‘ના, અશુભ પણ નથી…. ને શુભ પણ નથી. બેમાંથી એ શું થશે – તેનો આધાર આપણા ઉપર છે.’&lt;br /&gt;‘તો પછી કહેવામાં શો વાંધો છે ?’&lt;br /&gt;‘મહારાજ ! સંદેશાનેય પોતાનો સમય હોય છે. હું તમને સવારે કહીશ.’&lt;br /&gt;&lt;br /&gt;આટલું કહીને સંજય તો ઘેર ગયો. પણ એણે કોઈ સંદેશો ન કહ્યો; એટલે રાજા ધૃતરાષ્ટ્રનું મન ઉલટાનું ચગડોળે ચડ્યું. એને થયું કે આ વાતનો શું મર્મ છે તે વિદુર કહી શકશે. એટલે વિદુરજીને બોલાવ્યા. વિદુરજી સંજયની વાતને તરત સમજી ગયા. ભાવિ મહાન યુદ્ધની આગાહી એ સંદેશામાં એમણે જોઈ લીધી. પણ હવે પોતાનું એક કર્તવ્ય બનતું હતું. જ્યારે પોતે સમજી શક્યા છે કે યુદ્ધ આવી રહ્યું છે ત્યારે એમણે ધૃતરાષ્ટ્રને છેલ્લેછેલ્લો ઉપદેશ આપી દેવાનો ધર્મ બજાવવાનો હતો. કોઈ સમજે કે ન સમજે, માને કે ન માને, એમની પાસે જે હતું તે એમણે આપવું જ રહ્યું. એ વખતે રાતને સમયે ધૃતરાષ્ટ્રને વિદુરજીએ શાંત રીતે ન્યાય અને સત્યની વાતનો ઉપદેશ આપ્યો. તમામ સંબંધો કરતાં સત્ય વધુ બળવાન છે એ વાત કહી. પુત્રપ્રેમ પણ સત્યની આડે આવે ત્યારે એ પુત્રપ્રેમ નથી એવી જે અદ્દભુત વાણી કહી – તે વાણી એ જ વિદુરનીતિ.&lt;br /&gt;&lt;br /&gt;વિદુરનીતિનો જન્મ આ પ્રમાણે પુત્રમોહમાં પડેલા માણસને સત્ય આપવા માટે થયો હતો; હઠાગ્રહીને સત્ય સમજાવવા માટે થયો હતો. હઠાગ્રહ એ સત્યાગ્રહ નથી કે ન્યાય નથી, સત્ય નથી કે બળ પણ નથી એ બતાવવા માટે થયો હતો. હઠાગ્રહ એ હઠાગ્રહ છે. એ દુર્જનતા છે. એ હઠાગ્રહને રાજનીતિમાં જે પોષે છે કે વશ થાય છે તે છેવટે પ્રજાનો જ નાશ નોતરે છે.&lt;br /&gt;source :http://www.readgujarati.com&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-169014745826691751?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/169014745826691751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=169014745826691751' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/169014745826691751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/169014745826691751'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/blog-post_21.html' title='વિદુરનીતિનો જન્મ'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-9205969570947142757</id><published>2010-01-08T05:20:00.000-08:00</published><updated>2010-01-08T05:22:15.157-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Keep the spark - PartII</title><content type='html'>However, there are four storms in life that will threaten to completely put out the flame. These must be guarded against. These are disappointment, frustration, unfairness and loneliness of purpose.&lt;br /&gt;These are disappointment, frustration, unfairness and loneliness of purpose.&lt;br /&gt;Disappointment will come when your effort does not give you the expected return. If things don't go as planned or if you face failure. Failure is extremely difficult to handle, but those that do come out stronger. What did this failure teach me? is the question you will need to ask. You will feel miserable. You will want to quit, like I wanted to when nine publishers rejected my first book. &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Some IITians kill themselves over low grades – how silly is that? But that is how much failure can hurt you. But it's life. If challenges could always be overcome, they would cease to be a challenge. And remember - if you are failing at something, that means you are at your limit or potential. And that's where you want to be.&lt;br /&gt;Disappointment's cousin is frustration, the second storm. Have you ever been frustrated? It happens when things are stuck. This is especially relevant in India. From traffic jams to getting that job you deserve, sometimes things take so long that you don't know if you chose the right goal. After books, I set the goal of writing for Bollywood, as I thought they needed writers. I am called extremely lucky, but it took me five years to get close to a release. Frustration saps excitement, and turns your initial energy into something negative, making you a bitter person. How did I deal with it? A realistic assessment of the time involved – movies take a long time to make even though they are watched quickly, seeking a certain enjoyment in the process rather than the end result – at least I was learning how to write scripts, having a side plan – I had my third book to write and even something as simple as pleasurable distractions in your life - friends, food, travel can help you overcome it. Remember, nothing is to be taken seriously. Frustration is a sign somewhere, you took it too seriously.&lt;br /&gt;Unfairness - this is hardest to deal with, but unfortunately that is how our country works. People with connections, rich dads, beautiful faces, pedigree find it easier to make it – not just in Bollywood, but everywhere. And sometimes it is just plain luck. There are so few opportunities in India, so many stars need to be aligned for you to make it happen. Merit and hard work is not always linked to achievement in the short term, but the long term correlation is high, and ultimately things do work out. But realize, there will be some people luckier than you. In fact, to have an opportunity to go to college and understand this speech in English means you are pretty damm lucky by Indian standards. Let's be grateful for what we have and get the strength to accept what we don't. I have so much love from my readers that other writers cannot even imagine it. However, I don't get literary praise. It's ok. I don't look like Aishwarya Rai, but I have two boys who I think are more beautiful than her. It's ok. Don't let unfairness kill your spark.&lt;br /&gt;Finally, the last point that can kill your spark is isolation. As you grow older you will realize you are unique. When you are little, all kids want Ice cream and Spiderman. As you grow older to college, you still are a lot like your friends. But ten years later and you realize you are unique. What you want, what you believe in, what makes you feel, may be different from even the people closest to you. This can create conflict as your goals may not match with others. . And you may drop some of them. Basketball captains in college invariably stop playing basketball by the time they have their second child. They give up something that meant so much to them. They do it for their family. But in doing that, the spark dies. Never, ever make that compromise. Love yourself first, and then others. &lt;br /&gt;There you go. I've told you the four thunderstorms - disappointment, frustration, unfairness and isolation. You cannot avoid them, as like the monsoon they will come into your life at regular intervals. You just need to keep the raincoat handy to not let the spark die.&lt;br /&gt;I welcome you again to the most wonderful years of your life. If someone gave me the choice to go back in time, I will surely choose college. But I also hope that ten years later as well, your eyes will shine the same way as they do today. That you will Keep the Spark alive, not only through college, but through the next 2,500 weekends. And I hope not just you, but my whole country will keep that spark alive, as we really need it now more than any moment in history. And there is something cool about saying - I come from the land of a billion sparks.&lt;br /&gt;Thank You!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-9205969570947142757?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/9205969570947142757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=9205969570947142757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/9205969570947142757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/9205969570947142757'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2010/01/keep-spark-partii.html' title='Keep the spark - PartII'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-5171342475157066643</id><published>2009-12-08T03:34:00.000-08:00</published><updated>2009-12-08T03:38:10.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Keep the Spark - Part I</title><content type='html'>- Chaten Bhagat&lt;br /&gt;Inaugural Speech for the new batch at the Symbiosis BBA program 2008&lt;br /&gt;&lt;br /&gt;Good Morning everyone and thank you for giving me this chance to speak to you. This day is about you. You, who have come to this college, leaving the comfort of your homes (or in some cases discomfort), to become something in your life. I am sure you are excited. There are few days in human life when one is truly elated. The first day in college is one of them. When you were getting ready today, you felt a tingling in your stomach. What would the auditorium be like, what would the teachers be like, who are my new classmates – there is so much to be curious about. I call this excitement, the spark within you that makes you feel truly alive today. Today I am going to talk about keeping the spark shining. Or to put it another way, how to be happy most, if not all the time.&lt;br /&gt;&lt;br /&gt;Where do these sparks start? I think we are born with them. My 3-year old twin boys have a million sparks. A little Spiderman toy can make them jump on the bed. They get thrills from creaky swings in the park. A story from daddy gets them excited. They do a daily countdown for birthday party â€“ several months in advance â€“ just for the day they will cut their own birthday cake.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;I see students like you, and I still see some sparks. But when I see older people, the spark is difficult to find. That means as we age, the spark fades. People whose spark has faded too much are dull, dejected, aimless and bitter. Remember Kareena in the first half of Jab We Met vs the second half? That is what happens when the spark is lost. So how to save the spark? &lt;br /&gt;&lt;br /&gt;Imagine the spark to be a lampâ€™s flame. The first aspect is nurturing – to give your spark the fuel, continuously. The second is to guard against storms.&lt;br /&gt;To nurture, always have goals. It is human nature to strive, improve and achieve full potential. In fact, that is success. It is what is possible for you. It isn't any external measure – a certain cost to company pay package, a particular car or house.&lt;br /&gt;Most of us are from middle class families. To us, having material landmarks is success and rightly so. When you have grown up where money constraints force everyday choices, financial freedom is a big achievement. &lt;br /&gt;&lt;br /&gt;Â But it isnâ€™t the purpose of life. If that was the case, Mr Ambani would not show up for work. Shah Rukh Khan would stay at home and not dance anymore. Steve Jobs wonâ€™t be working hard to make a better iPhone, as he sold Pixar for billions &lt;br /&gt;&lt;br /&gt;They do it because it makes them happy. They do it because it makes them feel alive. Just getting better from current levels feels good. If you study hard, you can improve your rank. If you make an effort to interact with people, you will do better in interviews. If you practice, your cricket will get better. You may also know that you cannot become Tendulkar, yet. But you can get to the next level. Striving for that next level is important.&lt;br /&gt;Nature designed with a random set of genes and circumstances in which we were born. To be happy, we have to accept it and make the most of natureâ€™s design. Are you? Goals will help you do that.&lt;br /&gt;&lt;br /&gt;I must add, donâ€™t just have career or academic goals. Set goals to give you a balanced, successful life. I use the word balanced before successful. Balanced means ensuring your health, relationships, mental peace are all in good order. &lt;br /&gt;&lt;br /&gt;There is no point of getting a promotion on the day of your breakup. There is no fun in driving a car if your back hurts. Shopping is not enjoyable if your mind is full of tensions.&lt;br /&gt;You must have read some quotes – Life is a tough race, it is a marathon or whatever. No, from what I have seen so far, life is one of those races in nursery school. Where you have to run with a marble in a spoon kept in your mouth. If the marble falls, there is no point coming first. Same with life, where health and relationships are the marble. Your striving is only worth it if there is harmony in your life. Else, you may achieve the success, but this spark, this feeling of being excited and alive, will start to die.&lt;br /&gt;&lt;br /&gt;Â One last thing about nurturing the spark – donâ€™t take life seriously. One of my yoga teachers used to make students laugh during classes. One student asked him if these jokes would take away something from the yoga practice. The teacher said – donâ€™t be serious, be sincere. This quote has defined my work ever since. Whether its my writing, my job, my relationships or any of my goals. I get thousands of opinions on my writing everyday. There is heaps of praise, there is intense criticism. If I take it all seriously, how will I write? Or rather, how will I live? Life is not to be taken seriously, as we are really temporary here. We are like a pre-paid card with limited validity. If we are lucky, we may last another 50 years. And 50 years is just 2,500 weekends. Do we really need to get so worked up? Itâ€™s ok, bunk a few classes, goof up a few interviews, fall in love. We are people, not programmed devices.&lt;br /&gt;&lt;br /&gt;Iâ€™ve told you three things – reasonable goals, balance and not taking it too seriously that will nurture the spark. However, there are four storms in life that will threaten to completely put out the flame. These must be guarded against. These are disappointment, frustration, unfairness and loneliness of purpose.&lt;br /&gt;&lt;br /&gt;stay tuned for partII :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-5171342475157066643?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/5171342475157066643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=5171342475157066643' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5171342475157066643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5171342475157066643'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/12/keep-spark-part-i.html' title='Keep the Spark - Part I'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-5310057131033283167</id><published>2009-12-01T04:39:00.001-08:00</published><updated>2009-12-01T05:13:12.558-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Purpose of Life</title><content type='html'>An educated girl, especially when she is a good human being, and visionary with god gifted women emotions, always can find purpose of life, not for her self, but for other people also and can contribute to society in a real sense.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Dr. Neha Vakharia: &lt;/span&gt;&lt;a href="http://2.bp.blogspot.com/_jeYO6OeMsY0/SxUQKW5hxcI/AAAAAAAAHOY/srPqc0S3evI/s1600/Neha1.jpg"&gt;&lt;span style="color:#660000;"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 200px; FLOAT: right; HEIGHT: 153px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5410248297487123906" border="0" alt="" src="http://2.bp.blogspot.com/_jeYO6OeMsY0/SxUQKW5hxcI/AAAAAAAAHOY/srPqc0S3evI/s400/Neha1.jpg" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;She has a fragile body, an anxious body language, agitated voice. If you look at this small bundle of energy, you won’t believe what she has done in and with her life.&lt;br /&gt;First and foremost, she is an M.B.B.S. doctor. She had joined Oasis when she was a student and she says that Oasis added important values of humanity and selfless services in her training as a doctor.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Right from beginning, in every Oasis camp and gathering, like many other youths, she used to share her dreams of serving the poor of India and other third world countries. Mother Theresa was her ideal. But unlike many others, her passion to serve was so authentic that it only grew with time. After completing her studies, equipped by the lofty idealism of making life more meaningful by service to humanity, she joined a private hospital at Vadodara. But she felt some guilt pinching, the biting of conscience-that she was not doing the right thing by serving the rich when poor people were so under privileged.&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;As part of some “crazy” experiments facilitated by Oasis, she went to stay in slums for about 1 to 2 months to experience their living conditions. The experience in her words, “This exposure brought me closer to the reality of millions of underprivileged people of our country. They would share from whatever was in their home even if they were not sure about where the next meal would come from. I was astonished to see the greatness of their heart despite their poverty and felt ashamed of the poverty of my heart. While staying amongst them, I also witnessed the amount of physical abuse, mental torture, hard life, ill health, humiliation etc a poor Indian&lt;/span&gt;&lt;/em&gt; &lt;span style="color:#000099;"&gt;&lt;em&gt;woman has to undergo. At the same time I felt proud of them as I could see them as tough warriors balancing between being a mother, loyal wife and most hard working, earning member of families.”&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;Of course, Neha left her job. It was adieu for life time. After getting married, she had to shift to Bangalore where she promptly started health service centers in the slums around her area. While working there for years in a dedicated way, she realized that people were visiting her centers again and again with the same illnesses. She also observed that many patients suffered from severe liver or lung diseases leading to early death. All these experiences compelled her to introspect. She had to find out some solutions and interventions at an early, tender age. Thus Oasis, ASHA – Adolescent Students’ Health Alternative- was born.&lt;br /&gt;The help from volunteers slowly brought out another component of this activity viz. involvement of Women/housewives for educating these underprivileged slum children. Today, Neha and her core team of extremely talented and dedicated women friends are teaching health classes as a year round supplementary course to hundreds of students in municipality schools. “ASHA of Oasis” has spread to Surat in Gujarat and is dreaming to reach more and more children in different cities in the coming years.&lt;br /&gt;Was all this easy? The answer is obvious - serious illness, fragile health, social pressures for traditional career, and with all human weaknesses, she did this. How? With her sense of gratitude for everything, with her unflinching passion-come what may-, and her dedication that’s so overpowering, life had to bow to her.&lt;br /&gt;What gives her so much of strength? Swami Vivekananda’s philosophy has been life long inspiration for Neha- &lt;span style="color:#000099;"&gt;&lt;em&gt;“It is only with great fortune and immense grace of God that you have got the opportunity to serve the ignorant, diseased and suffering humanity. If you dedicate yourself completely in a selfless way, you realize the unlimited power within you.”&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;Neha says, &lt;span style="color:#000099;"&gt;&lt;em&gt;“I have no regret whatsoever about leaving the conventional career and serving poor people like this. I never cared for earning and being wealthy. Having millions of rupees in my account, has no comparison with what I have got today in my heart. I have a definite, important role to play through Oasis Movement, I have been able to recognize my mission and for that I feel very happy, very grateful to Oasis and God.”&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;Imagine a few more such educated youths emulating Neha’s example in future. Imagine them working for educating billions of children of our country. Thank you Neha for living your dream!&lt;br /&gt;From OASIS Blog: &lt;a href="http://www.oasiswebsite.com/asha/index.php"&gt;http://www.oasiswebsite.com/asha/index.php&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-5310057131033283167?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/5310057131033283167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=5310057131033283167' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5310057131033283167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5310057131033283167'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/12/purpose-of-life.html' title='Purpose of Life'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jeYO6OeMsY0/SxUQKW5hxcI/AAAAAAAAHOY/srPqc0S3evI/s72-c/Neha1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8273930042504775790</id><published>2009-11-14T04:48:00.000-08:00</published><updated>2009-11-14T04:50:10.432-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Story'/><title type='text'>Lateral Thinking</title><content type='html'>Many years ago in a small Indian village, a farmer had the misfortune of owing a large sum of money to a village moneylender. The Moneylender, who was old and ugly, fancied the farmer's beautiful Daughter. So he proposed a bargain. He said he would forgo the farmer's debt if he could marry his Daughter. Both the farmer and his daughter were horrified by the proposal. So the cunning money-lender suggested that they let providence decide the matter. He told them that he would put a black pebble and a white pebble into an empty money bag. Then the girl would have to pick one pebble from the bag. &lt;br /&gt;  &lt;br /&gt;1) If she picked the black pebble, she would become his wife and her father's debt would be forgiven. &lt;br /&gt;2) If she picked the white pebble she need not marry him and her father's debt would still be forgiven. &lt;br /&gt;3) But if she refused to pick a pebble, her father would be thrown into jail. &lt;br /&gt;&lt;br /&gt;They were standing on a pebble strewn path in the farmer's field. As they talked, the moneylender bent over to pick up two pebbles. &lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;As he picked them up, the sharp-eyed girl noticed that he had picked up two Black pebbles and put them into the bag. He then asked the girl to pick a pebble from the bag. &lt;br /&gt;Now, imagine that you were standing in the field. What would you have done if you were the girl? If you had to advise her, what would you have told her? Careful analysis would produce three possibilities: &lt;br /&gt;  &lt;br /&gt;1. The girl should refuse to take a pebble. &lt;br /&gt;&lt;br /&gt;2. The girl should show that there were two black pebbles in the bag and expose the money-lender as a cheat. &lt;br /&gt;&lt;br /&gt;3. The girl should pick a black pebble and sacrifice herself in order to save her father from his debt and imprisonment. &lt;br /&gt;&lt;br /&gt;Take a moment to ponder over the story. The above story is used with The hope that it will make us appreciate the difference between lateral And logical thinking. &lt;br /&gt;&lt;br /&gt;The girl's dilemma cannot be solved with traditional logical thinking. Think of the consequences if she chooses the above logical answers. What would you recommend to the Girl to do? Well, here is what she did.... &lt;br /&gt;&lt;br /&gt;The girl put her hand into the moneybag and drew out a pebble. Without looking at it, she fumbled and let it fall onto the pebble-strewn path where it immediately became lost among all the other pebbles. "Oh, how clumsy of me," she said. "But never mind, if you look into the Bag for the one that is left, you will be able to tell which pebble I picked." Since the remaining pebble is black, it must be assumed that she had picked the white one. And since the money-lender dared not admit his dishonesty, the girl changed what seemed an impossible situation into an extremely advantageous one. &lt;br /&gt;&lt;br /&gt;MORAL OF THE STORY: Most complex problems do have a solution. It is only that we don't attempt to think. Sometimes it’s not making the best what’s available rather it’s making the best of what’s not available. Out of the box thinking is what will do the trick. &lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8273930042504775790?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8273930042504775790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8273930042504775790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8273930042504775790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8273930042504775790'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/11/lateral-thinking.html' title='Lateral Thinking'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7310122028636514515</id><published>2009-11-08T14:06:00.000-08:00</published><updated>2009-12-16T01:30:30.309-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Exemplary Life. Not by words, but by Deeds.</title><content type='html'>Just two, three good incident to share from my life..&lt;br /&gt;It is more of touchy things I came across and both this incidents are touchy just by deed not by words.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#330000;"&gt;Incident I:&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#330000;"&gt;This is about Ushaben and Ramanbhai. &lt;/span&gt;Both are husband –wife.&lt;br /&gt;They are doing house cleaning things in few houses in our apartment, but live a wonderful, exemplary life. Hmm..surprised ? how?&lt;br /&gt;&lt;br /&gt;They have not taken any training about time management or character Ethic. But still they just live these in their day to day life.&lt;br /&gt;&lt;br /&gt;My mom met Ramanbhai on the occasion of my marriage; he was so simple, and nice to talk with. Mummy asked him to help her during marriage days, because Barart was coming from Nagpur and it is really difficult to manage everything alone at home. Amazing, he has done everything so nicely. If guest in one room do chai-pani, he immediately clean the room. &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Wash the utensils and keep it properly. When guest finish with bath in the morning, he will clean both the bathroom and then wash cloths. He will arrange bed in all room in the night on time even without insturction. Each small thing at home, he was doing by himself just like a daughter or a mother does take care of a house cleaning things. We really admired his honesty, and his work. Then mom asked him about to help her in daily work. Generally my mom always like to do everything by her own, just because she wants everyhing on time.&lt;br /&gt;He said yes and then both husband –wife daily come on time, never be late by even 10 minute. Ramanbhai come at sharp 10:00am in the morning, start brooming, and then exact after 10 minutes Ushaben comes and start wiping. and then Ushaben do clothwashing and then either Ramanbhai or Ushaben come at 12:00pm to clean the utentials. they manage 7 to 8 houses by 2 0'clock and then they just go home.&lt;br /&gt;&lt;br /&gt;Both husband and wife, come on time, do their work so nicely and just leave with a smile, by telling “Ba, hu jau chhu :)”….even if they may not able to come some day, they will inform in a prior with reason.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#330000;"&gt;Touchy things are&lt;/span&gt;&lt;br /&gt;1)Both as a husband and wife has an amazing tuning in their work.&lt;br /&gt;2)Honest with their work.&lt;br /&gt;3)Punctual in their work.&lt;br /&gt;4)They are carrying their self so nicely with confident that, no one can imagine that they are doing cleaning things. One day Ushaben told me, actually it is our hard luck that we couldn’t study and we are here from village just to earn bread and butter, but it doesn’t mean that we should live life like a servant. We are happy internally, so it must reflect on our face.&lt;br /&gt;5)They respect their work because they are earning bred, butter out of it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#330000;"&gt;Que:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;1) Are we really respecting our work? From which we are earning bread and butter?&lt;br /&gt;2) Are we honest with our work?&lt;br /&gt;3) Are we really happy internally? Can't we make someone’s day special just by throwing a smile?&lt;br /&gt;4) Are we punctual in our work?&lt;br /&gt;5) Do we really have such nice tuning with our partner?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#330000;"&gt;Incident II:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;In Leeds(UK), we went to Pratishthä, there were a lunch after the ceremony. This is very common in India.&lt;br /&gt;But the different thing, What I noticed was after lunch, one person was cleaning the Hall, he is a CEO of a one very big company, he is a phd holder in his academic. but rather then doing social deal with people in Temple and doing marketing of his high profile, he was busy to clean the Hall of temple and collecting plates and putting them in dustbin. after seeing this, gradually we all joined him and cleaned the Hall and then left for the home.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#330000;"&gt;Que:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;1) Are we really respecting each small work?&lt;br /&gt;2) Are we really maintaining such a high dignity in temple, where in we are just a common lay man in front of GOD, not CEO or anything?&lt;br /&gt;3) Can we detach our professional tag from us when we enter into Temple?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7310122028636514515?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7310122028636514515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7310122028636514515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7310122028636514515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7310122028636514515'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/11/exemplary-life-not-by-words-but-by.html' title='Exemplary Life. Not by words, but by Deeds.'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-5920623683707070905</id><published>2009-09-14T07:51:00.000-07:00</published><updated>2010-01-27T05:08:06.713-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><category scheme='http://www.blogger.com/atom/ns#' term='spiritual'/><title type='text'>AHIMSA IN CRISIS. A PAINFUL OBSERVATION</title><content type='html'>I regard veganism (pure Vegetarianism) as a matter of "lifestyle," "diet" "health" (except the health of my Atma) or anything less than a fundamental commitment of the individual to Ahimsa. Veganism represents a crucial and necessary step in the Atma turning away from the violence of the material world. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I do not think that the concept of Anekantavada gives us a "free pass” to say that veganism is a matter of option or choice. There are very few clear principles in Jain Dharma that admit of no exception despite  the general recognition that truth is often a complex matter: inflicting intentional suffering and death on innocent, multi-sensed  mobile creatures is one of those principles. And there can be no doubt that *all* animal products involve suffering, torment, distress, and death. Indeed, denying that is on the same level as denying gravity. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Unfortunately, Jainism as a general matter has not embraced veganism.  Indeed, I had the honor of giving the keynote talk at an event celebrating Gurudev Chitrabhanu Ji's birthday. The event was held this past Saturday, August 1. One of the issues that came up was that Gurudev lost many followers when he started talking about veganism. How very sad. People accept that Gurudev is a great spiritual leader--until he tells them that their ice cream or ghee is Himsa. As someone raised in the Christian tradition, I always found it sad that so many Christians accepted what Christ said--until it came to something that they wanted to do. Chitrabhanu Ji was once considered one of the most important figures in modern Jainism. And he has lost followers to raita and ice cream and wool! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The fact that we are not embracing veganism is not only a problem in itself, but it is increasingly making flesh eating a matter of “choice," "opinion," "lifestyle"--a matter for more "free passes" under Anekantavada. An increasing number of Jains are turning to flesh/meat eating and more Jains are now investing in and owning stores and shops that sell flesh/meat products. I have seen statements that the number of Jains consuming flesh is rising in both the U.S. and the U.K. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apparently, more and more Jains are accepting that these issues are all just matters of personal opinion and not fundamental moral doctrine. More and more Jains are using Anekantavada as an excuse for moral relativism. Anekantavada means only that truth is complicated; it does not mean that there is no truth because everything is relative to the whim of the individual. Indeed, if Anekantavada means moral relativism and denies that there are any clear moral truths, then Jainism collapses and loses all meaning. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I gave a lecture on animal ethics/veganism at Princeton University last winter. One of the students agreed with me that all animal products involved suffering and death but he pointed out that Jains did not reject dairy so Jain Dharma was arbitrary on the point of Ahimsa and Ahimsa means whatever the individual thinks it means. The student (who was not a Jain) made a correct observation: we are behaving inconsistently on this issue. Others see this; why don't we? &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Jainism is the religion of Ahimsa. And Ahimsa is very clear. The fact that many Jains have not traditionally embraced veganism is now bearing its fruit. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this age of relentless narcissism and materialism, it is quite natural that the failure to reject all violence against nonhumans will lead to more violence against nonhumans given that there is no logical distinction between flesh and dairy, ghee, raita, milk, wool, etc. And that will only facilitate acceptance of violence toward humans as well. That is precisely what is happening. We are living in a time of &lt;br /&gt;&lt;br /&gt;unparalleled violence in conduct, speech, and thought. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The principle of Ahimsa is in crisis. Whether we realize it or not, we are facing a significant challenge to restore Ahimsa as the central doctrine of Jain Dharma and to give it clear, normative meaning. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If any of you are members of the Young Jains in the U.S. or U.K. and are inclined to post this on their lists that would be fine with me. It is my view that we need to get a discussion going and that the young Jains are key to this. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If I have offended anyone, Micchami Dukkadam, Micchami Dukkadam, &lt;br /&gt;&lt;br /&gt;Micchami Dukkadam. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gary L. Francione&lt;br /&gt;&lt;br /&gt;Distinguished Professor of Law&lt;br /&gt;&lt;br /&gt;Rutgers University, USA  &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-5920623683707070905?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/5920623683707070905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=5920623683707070905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5920623683707070905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5920623683707070905'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/09/ahimsa-in-crisis-painful-observation.html' title='AHIMSA IN CRISIS. A PAINFUL OBSERVATION'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8131600645222210947</id><published>2009-09-14T07:39:00.000-07:00</published><updated>2009-09-14T07:41:05.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Philosophical but True</title><content type='html'>1 . ATTITUDE IS WHAT LIFE IS ALL ABOUT.......&lt;br /&gt;SOLDIER : SIR WE ARE SURROUNDED FROM ALL SIDES BY ENEMIES , MAJOR : EXCELLENT ! WE CAN ATTACK IN ANY DIRECTION.&lt;br /&gt;&lt;br /&gt;2. EVERY ONE KNOWS ABOUT ALEXANDER GRAHAM BELL WHO INVENTED THE TELEPHONE, BUT HE NEVER MADE A CALL TO HIS FAMILY. BECAUSE, HIS WIFE AND DAUGHTER WERE DEAF. THAT'S LIFE " LIVE FOR OTHERS " .&lt;br /&gt;&lt;br /&gt;3. THE WORST IN LIFE IS "ATTACHMENT " IT HURTS WHEN YOU LOSE IT. THE BEST THING IN LIFE IS " LONELINESS " BECAUSE IT TEACHES YOU EVERYTHING AND, WHEN YOU LOSE IT, YOU GET EVERYTHING.&lt;br /&gt;&lt;br /&gt;4. LIFE IS NOT ABOUT THE PEOPLE WHO ACT TRUE TO YOUR FACE ........ IT'S ABOUT THE PEOPLE WHO REMAIN TRUE BEHIND YOUR BACK .&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;5. IF AN EGG IS BROKEN BY AN OUTSIDE FORCE....... .A LIFE ENDS. IF AN EGG BREAKS FROM WITHIN...... .LIFE BEGINS. GREAT THINGS ALWAYS BEGIN FROM WITHIN .&lt;br /&gt;&lt;br /&gt;6. IT'S BETTER TO LOSE YOUR EGO TO THE ONE YOU LOVE. THAN TO LOSE THE ONE YOU LOVE ....... BECAUSE OF EGO .&lt;br /&gt;&lt;br /&gt;7. A RELATIONSHIP DOESN'T SHINE BY JUST SHAKING HANDS AT THE BEST OF TIMES. BUT IT BLOSSOMS BY HOLDING FIRMLY IN CRITICAL SITUATIONS .&lt;br /&gt;&lt;br /&gt;8. HEATED GOLD BECOMES ORNAMENTS. BETTED COPPER BECOMES WIRES. DEPLETED STONE BECOMES STATUE. SO, THE MORE PAIN YOU GET IN YOUR LIFE THE MORE VALUABLE YOU BECOME.&lt;br /&gt;&lt;br /&gt;9. WHEN YOU TRUST SOMEONE TRUST HIM COMPLETELY WITHOUT ANY DOUBT....... ....... AT THE END YOU WOULD GET ONE OF THE TWO : EITHER A LESSON FOR YOUR LIFE OR A VERY GOOD PERSON .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10. WHY WE HAVE SO MANY TEMPLES , IF GOD IS EVERYWHERE ? A WISE MAN SAID : AIR IS EVERYWHERE , BUT WE STILL NEED A FAN TO FEEL IT .&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8131600645222210947?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8131600645222210947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8131600645222210947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8131600645222210947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8131600645222210947'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/09/philosophical-but-true.html' title='Philosophical but True'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8839440941293291796</id><published>2009-08-14T11:58:00.000-07:00</published><updated>2009-08-14T12:01:07.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Beautiful Sentiments:)</title><content type='html'>Its really beautiful sentiments which I came across through one forwarded email.&lt;br /&gt;&lt;br /&gt;Hope you will also enjoy it and will help you to cure your negative emotions. :)&lt;br /&gt;&lt;br /&gt;&lt;a title="View Beautiful Sentiments on Scribd" href="http://www.scribd.com/doc/18598337/Beautiful-Sentiments" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Beautiful Sentiments&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_883873554117968" name="doc_883873554117968" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=18598337&amp;access_key=key-1hpeel1usxwyq8v8vqot&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=18598337&amp;access_key=key-1hpeel1usxwyq8v8vqot&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_883873554117968_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8839440941293291796?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8839440941293291796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8839440941293291796' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8839440941293291796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8839440941293291796'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/08/beautiful-sentiments.html' title='Beautiful Sentiments:)'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8184339422755021082</id><published>2009-07-09T08:50:00.000-07:00</published><updated>2009-07-09T09:13:03.578-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='India'/><title type='text'>Better India Better World</title><content type='html'>Was googling today something and came across one good book to understand all my questions related to our responsibility for our country. and what can be the answers? We are youth of our nation and have more responsibilities on our shoulders. This book is pending in my list to read and to become more responsible for my nation.&lt;br /&gt;Just sharing with you the abstract…..This book is written by N.R.Murty. (Icon of present India.)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Better India Better World:&lt;/span&gt;&lt;br /&gt;With one of the highest GDP growth rates in the world and an array of recent achievements in technology, industry and entrepreneurship, India strides confidently towards the future. But, in the world's largest democracy, not everyone is equally fortunate. More than 300 million Indians are still prey to hunger, illiteracy and disease, and 51 per cent of India's children are still undernourished.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;What will it take for India to bridge this great divide? When will the fruits of development reach the poorest of the poor, and wipe the tears from the eyes of every man, woman and child, as Mahatma Gandhi had dreamt? And how should this, our greatest challenge ever, be negotiated?&lt;br /&gt;&lt;br /&gt;In this extraordinarily inspiring and visionary book, N.R. Narayana Murthy, who pioneered, designed and executed the Global Delivery Model that has become the cornerstone of India's success in information technology services outsourcing, shows us that a society working for the greatest welfare of the greatest number — samasta jananam sukhino bhavantu — must focus on two simple things: values and good leadership. Drawing on the remarkable Infosys story and the lessons learnt from the two decades of post-reform India, Narayana Murthy lays down the ground rules that must be followed if future generations are to inherit a truly progressive nation.&lt;br /&gt;&lt;br /&gt;Built on Narayana Murthy's lectures delivered around the world, A Better India : A Better World is a manifesto for the youth, the architects of the future, and a compelling argument for why a better India holds the key to a better world.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Review comments of this book:&lt;br /&gt;‘Narayana Murthy is a role model for millions of Indians. An iconic figure in the country, he is widely respected and looked up to not only for his business leadership but also for his ethics and personal conduct. He represents the face of the new, resurgent India to the world. I am sure this collection of his speeches will inform, inspire and guide many in the years to come.’&lt;br /&gt;—Manmohan Singh, Prime Minister of India&lt;br /&gt;&lt;br /&gt;‘Narayana Murthy overcame many obstacles and demonstrated that it is possible to create a world-class, values-driven company in India. Through his vision and leadership Murthy sparked a wave of innovation and entrepreneurship that changed the way we view ourselves and how the world views India. In this collection of his speeches, he delivers a timely message about the importance of values and leadership in business.’&lt;br /&gt;—Bill Gates, Chairman of the Board, Microsoft Corporation&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8184339422755021082?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8184339422755021082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8184339422755021082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8184339422755021082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8184339422755021082'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/07/better-india-better-world.html' title='Better India Better World'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-1879470550218860935</id><published>2009-07-05T07:38:00.000-07:00</published><updated>2009-07-09T06:06:58.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wireless Telecommunication'/><title type='text'>LTE Introduction</title><content type='html'>&lt;span style="color:#660000;"&gt;Beyond 3G.&lt;br /&gt;&lt;/span&gt;As we have seen in previous series of wireless telecommunication topics; After GSM(Global System for mobile communication)(2G) , HSPA is a 3G evolution of GSM supporting high-speed data transmissions using WCDMA technology.&lt;br /&gt;&lt;br /&gt;In order to meet the continued traffic growth demands, an extensive effort has been underway in the 3G Partnership Project (3GPP) to develop a new standard for the evolution of GSM/HSPA technology towards a packet-optimized system referred to as Long-Term Evolution (LTE).&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Goal:&lt;br /&gt;&lt;/span&gt;The goal of the LTE standard is to create specifications for a new radio-access technology geared to higher data rates, low latency and greater spectral efficiency. The spectral efficiency target for the LTE system is three to four times higher than the current HSPA system.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;In parallel, new network architecture is designed with the goal to support packet-switched traffic with seamless mobility, quality of service and minimal latency.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;LTE Introduction&lt;br /&gt;&lt;/span&gt;While HSPA (High Speed Packet Access) and HRPD(High Rate Packet Data) systems were being developed and deployed, IEEE 802 LMSC (LAN/MAN Standard Committee) introduced the IEEE 802.16e standard for mobile broadband wireless access. The 802.16e standard employed a different access technology named OFDMA (orthogonal frequency division multiple access) and claimed better data rates and spectral efficiency than that provided by industry group named by WiMAX. (Mobile WiMAX also employed a similar network architecture based on IP Protocols.&lt;br /&gt;&lt;br /&gt;The Introduction to Mobile WiMAX led both 3GPP and 3GPP2 to develop their own version of beyond 3G system based on OFDMA(Orthogonal Frequency Multiple Access) technology and network architecture similar to that in Mobile WiMAX. The beyond 3G system in 3GPP is called evolved universal terrestrial radio access (evolved UTRA) and is also widely referred to as LTE (Long-Term Evolution) while 3GPP2’s version is called UMB (ultra mobile broadband).&lt;br /&gt;All three beyond 3G systems namely Mobile WiMAX, &lt;a name="IDX-372F5DE60-701E-48D2-B52E-132763011CF"&gt;&lt;/a&gt;&lt;a name="22"&gt;&lt;/a&gt;LTE and UMB meet IMT-2000 requirements and hence they are also part of IMT-2000 family of standards.&lt;br /&gt;&lt;br /&gt;Now Stay tuned for Air Interface, Protocols, and Network Architecture for LTE. :)&lt;br /&gt;&lt;br /&gt;reference:&lt;br /&gt;1) Wikipedia,&lt;br /&gt;2) couple of web search and blogs.&lt;br /&gt;3) F. Khan, "LTE for 4G Mobile Broadband - Air Interface Technologies and Performance", Cambridge University Press, 2009&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-1879470550218860935?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/1879470550218860935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=1879470550218860935' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1879470550218860935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1879470550218860935'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/07/lte-basics.html' title='LTE Introduction'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7552439955083815133</id><published>2009-06-30T14:31:00.000-07:00</published><updated>2009-06-30T14:34:27.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Story'/><title type='text'>THE 4 WIVES</title><content type='html'>There was a rich merchant who had 4 wives. He loved the 4th wife the most and adorned her with rich robes and treated her to delicacies. He took great care of her and gave her nothing but the best.&lt;br /&gt;He also loved the 3rd wife very much. He's very proud of her and always wanted to show off her to his friends. However, the merchant is always in great fear that she might run away with some other men.&lt;br /&gt;He too, loved his 2nd wife. She is a very considerate person, always patient and in fact is the merchant's confidante. Whenever the merchant faced some problems, he always turned to his 2nd wife and she would always help him out and tide him through difficult times.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Now, the merchant's 1st wife is a very loyal partner and has made great contributions in maintaining his wealth and business as well as taking care of the household. However, the merchant did not love the first wife and although she loved him deeply, he hardly took notice of her.&lt;br /&gt;One day, the merchant fell ill. Before long, he knew that he was going to die soon. He thought of his luxurious life and told himself, "Now I have 4 wives with me. But when I die, I'll be alone. How lonely I'll be!"&lt;br /&gt;Thus, he asked the 4th wife, "I loved you most, endowed you with the finest clothing and showered great care over you. Now that I'm dying, will you follow me and keep me company?" "No way!" replied the 4th wife and she walked away without another word.&lt;br /&gt;The answer cut like a sharp knife right into the merchant's heart. The sad merchant then asked the 3rd wife, "I have loved you so much for all my life. Now that I'm dying, will you follow me and keep me company?" "No!" replied the 3rd wife. "Life is so good over here! I'm going to remarry when you die!" The merchant's heart sank and turned cold.&lt;br /&gt;He then asked the 2nd wife, "I always turned to you for help and you've always helped me out. Now I need your help again. When I die, will you follow me and keep me company?" "I'm sorry, I can't help you out this time!" replied the 2nd wife. "At the very most, I can only send you to your grave." The answer came like a bolt of thunder and the merchant was devastated.&lt;br /&gt;&lt;br /&gt;Then a voice called out : "I'll leave with you. I'll follow you no matter where you go." The merchant looked up and there was his first wife. She was so skinny, almost like she suffered from malnutrition. Greatly grieved, the merchant said, "I should have taken much better care of you while I could have!"&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Actually, we all have 4 wives in our lives&lt;/span&gt;&lt;br /&gt;a. The 4th wife is our body.&lt;br /&gt;No matter how much time and effort we lavish in making it look good, it'll leave us when we die.&lt;br /&gt;b. Our 3rd wife ? Our possessions, status and wealth. When we die, they all go to others.&lt;br /&gt;c. The 2nd wife is our family and friends. No matter how close they had been there for us when we're alive, the furthest they can stay by us is up to the grave.&lt;br /&gt;d. The 1st wife is in fact our soul, often neglected in our pursuit of material, wealth and sensual pleasure. Guess what? It is actually the only thing that follows us wherever we go. Perhaps it's a good idea to cultivate and strengthen it now rather than to wait until we're on our deathbed to lament&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7552439955083815133?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7552439955083815133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7552439955083815133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7552439955083815133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7552439955083815133'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/4-wives.html' title='THE 4 WIVES'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-6961137494396655087</id><published>2009-06-28T03:00:00.000-07:00</published><updated>2009-06-28T03:02:41.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>ન-નામી</title><content type='html'>મૂર્ખને મુક્તિ મળે, એ પણ નકામી હોય છે એની આઝાદી તો ઈચ્છાની ગુલામી હોય છે દૃશ્ય જે દેખાય છે, એવું જ છે, એવું નથી આપણી દૃષ્ટિમાં પણ ક્યારેક ખામી હોય છે.આંખના કાંઠે તો બસ બે-ચાર બિન્દુ ઊભરે મનના દરિયે જ્યારે એક આખી ત્સુનામી હોય છે સૂર્ય શો હું, આથમીને, સત્ય એ સમજી શક્યો માત્ર ઉગતા સૂર્યને સૌની સલામી હોય છે નામ પાછળ જિંદગીભર દોડવું એળે જશે આખરે જે જાય છે એ તો “ન-નામી” હોય છે&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-6961137494396655087?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/6961137494396655087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=6961137494396655087' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6961137494396655087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6961137494396655087'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/blog-post.html' title='ન-નામી'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-404749754592828960</id><published>2009-06-20T10:39:00.000-07:00</published><updated>2009-06-20T10:46:26.974-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><title type='text'>The danger of plastic bags.</title><content type='html'>Came across one forwarded email about plastic bag usage data. and what is danger about it. so, just sharing it with you all.&lt;br /&gt;Hope you will like this information.&lt;br /&gt;&lt;a title="View TheDangersof_PlasticBags on Scribd" href="http://www.scribd.com/doc/16616167/TheDangersofPlasticBags" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;TheDangersof_PlasticBags&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_514564439766537" name="doc_514564439766537" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=16616167&amp;access_key=key-1y7gj36r9ddxqmbqi5j2&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=16616167&amp;access_key=key-1y7gj36r9ddxqmbqi5j2&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_514564439766537_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-404749754592828960?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/404749754592828960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=404749754592828960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/404749754592828960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/404749754592828960'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/danger-of-plastic-bags.html' title='The danger of plastic bags.'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8741237306733964410</id><published>2009-06-20T10:36:00.000-07:00</published><updated>2009-06-20T10:38:48.418-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><title type='text'>soft drink awareness</title><content type='html'>Came across forwarded email. which shows some data on soft drink awareness.&lt;br /&gt;so, just sharing it with you.&lt;br /&gt;Hope you will like this information.&lt;br /&gt;&lt;br /&gt;&lt;a title="View Soft Drinks Awareness on Scribd" href="http://www.scribd.com/doc/16615842/Soft-Drinks-Awareness" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Soft Drinks Awareness&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_601178074459074" name="doc_601178074459074" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=16615842&amp;access_key=key-2r40xk3rnoin6r10ob3&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=16615842&amp;access_key=key-2r40xk3rnoin6r10ob3&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_601178074459074_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8741237306733964410?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8741237306733964410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8741237306733964410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8741237306733964410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8741237306733964410'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/soft-drink-awareness.html' title='soft drink awareness'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-2688552012540020061</id><published>2009-06-12T12:14:00.000-07:00</published><updated>2009-06-12T13:16:13.932-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='favorite vedio'/><title type='text'>India In a world map through knowledge</title><content type='html'>This is a worth watching documentary on IIT (Indian Institute of Technology).&lt;br /&gt;I am sure you will enjoy this :)&lt;br /&gt;&lt;br /&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-8833138111563450865&amp;hl=en&amp;fs=true" style="width:400px;height:326px" allowFullScreen="true" allowScriptAccess="always" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-2688552012540020061?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/2688552012540020061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=2688552012540020061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2688552012540020061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2688552012540020061'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/india-in-world-map-through-knowledge.html' title='India In a world map through knowledge'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-6185022119248322831</id><published>2009-06-10T06:43:00.000-07:00</published><updated>2010-06-23T06:32:50.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Story'/><title type='text'>Human life and self deception.</title><content type='html'>Here in UK (Leeds) luckily met &lt;a href="http://en.wikipedia.org/wiki/Kantilal_Mardia"&gt;&lt;span style="font-size:100%;"&gt;Prof K.V.Mardia&lt;/span&gt;&lt;/a&gt;. who is a statistician by profession and has passion for Jainism. He has written “Scientific foundation of Jainism” in 1990 and now he is working on his next book about “Negative emotions management”. This story is written in Hemachandra’s Parsistaparavan. Which Prof. k.v.mardia has mentioned in his book with pictures as well.&lt;br /&gt;&lt;br /&gt;I heard such stories in my childhood. So, just wanted to have that in my diary(blog). I am sure this will help you for your spiritual life journey.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Human life and self deception.&lt;br /&gt;&lt;/span&gt;Jainism is full of illustrative parables to depict it’s ideas.The story of the blind men and the elephant as used to express Anekantvad (the holistic principle) is well known.&lt;br /&gt;Here I will share one another story which is also an eye opener when we are blindly running after something.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Story:&lt;br /&gt;&lt;/span&gt;Once upon a time there was a man who was traveling with a party which happened to pass through a thick forest full of wild beasts and robbers. In the middle of the forest, they were attacked by a band of these robbers. The party fled for their lives in all directions; the man became separated from the group and lost his way.&lt;br /&gt;&lt;br /&gt;When he looked back to see where he was, he saw a mad elephant running furiously towards him. He realized that if he did not find shelter, he would be killed instantly by the elephant. Noticing a well, he thought, “This elephant is sure to kill me, but I may perhaps save my self by jumping into this well”.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;So he jumped into the well, grasping one of the branches of a banyan tree which overhung it. At the bottom of the well, the man saw a huge python ready to swallow him should he fall and at the bottom, on the four sides of the well, he could see four cobras hissing at him.&lt;br /&gt;&lt;br /&gt;Two rats, one white and one black, were eating away the branch of the banyan tree that supported him. At the top of this branch there was a beehive with bees circling around him. The elephant stood on the brink of the well, and as it tried to capture the man with its mighty trunk, it caused the branch to move to and fro causing some drops of honey to fall on the man’s lips.&lt;br /&gt;&lt;br /&gt;At that moment, a monk happened to arrive on the opposite side of the wall to the elephant and offered to help rescue the man from the well. However, the man seemed to be momentarily satisfied with the situation whilst he had the sweet taste of honey on his lips.&lt;br /&gt;&lt;br /&gt;He did not realize that the branch of the tree would be eaten away by the rats and then he would have no support at all or the whole tree would be uprooted by the elephant and he would fall down to swallowed by the python.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Symbolism and Interpretation:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This whole drama is symbolic of the delusional state of man. The forest is the cycle of birth and death, and the man in the forest is the ordinary worldly man. The mad elephant is that ran after him is death. The well is his earthly life; the python is the symbol of the lowest state of existence (Hell). The four cobras are the symbols of Anger, Greed, Ego, and Deceit (the four main passions).&lt;br /&gt;The two rats , white and black , represent time, the bright and dark halves of the lunar month, which exhaust his earthly span. The monk represents the true religion. The branch of the banyan tree represent the short duration of his earthly life.&lt;br /&gt;&lt;br /&gt;The bees in the hive are organs of the senses and the honey drops represent sensuous pleasures.&lt;br /&gt;&lt;br /&gt;So, the whole drama comes down to this: the common man, ignoring the fact that his life may be cut off at any time by death, satisfies himself by enjoying sensuous pleasures and is oblivious to the truths offered by philosophy: he is being influenced by Anger, Greed, Ego and Deceit.&lt;br /&gt;&lt;br /&gt;In a modern context, this parable warns against self indulgence in a very broad sense. The warning includes keeping away from top negatives such as smoking, drugs, and anything sparked by Anger, Greed, Ego and Deceit. It emphasizes that the true solution exists in “religiousness”.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-6185022119248322831?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/6185022119248322831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=6185022119248322831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6185022119248322831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/6185022119248322831'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/human-life-and-self-deception.html' title='Human life and self deception.'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8323730931789758579</id><published>2009-06-05T01:31:00.000-07:00</published><updated>2009-06-05T01:44:20.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><title type='text'>Better Life. :-)</title><content type='html'>Today, One of my friend Amit Tyagi, has mentioned his google talk caption with the url &lt;a href="http://whatyouwant.in/show_want.php?id=830"&gt;http://whatyouwant.in/show_want.php?id=830&lt;/a&gt;. for better life...Nice to know about it and check how exactly we are living our life.&lt;br /&gt;I am sure you will enjoy this and will improve in your life style :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Health:&lt;br /&gt;&lt;/span&gt;1. Drink plenty of water.&lt;br /&gt;2. Eat breakfast like a king, lunch like a prince and dinner like a beggar.&lt;br /&gt;3. Eat more foods that grow on trees and plants and eat less food that is manufactured in plants.&lt;br /&gt;4. Live with the 3 E's -- Energy, Enthusiasm, and Empathy.&lt;br /&gt;5. Make time to practice meditation, yoga, and prayer.&lt;br /&gt;6. Play more games.&lt;br /&gt;7. Read more books than you did in 2008.&lt;br /&gt;8. Sit in silence for at least 10 minutes each day.&lt;br /&gt;9. Sleep for 7 hours.&lt;br /&gt;10. Take a 10-30 minutes walk every day. And while you walk, smile.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Personality:&lt;br /&gt;&lt;/span&gt;11. Don't compare your life to others'. You have no idea what their journey is all about.&lt;br /&gt;12. Don't have negative thoughts or things you cannot control. Instead invest your energy in the positive present moment.&lt;br /&gt;13. Don't over do. Keep your limits.&lt;br /&gt;14. Don't take yourself so seriously. No one else does.&lt;br /&gt;15. Don't waste your precious energy on gossip.&lt;br /&gt;16. Dream more while you are awake.&lt;br /&gt;17. Envy is a waste of time. You already have all you need.&lt;br /&gt;18. Forget issues of the past. Don't remind your partner with his/her mistakes of the past. That will ruin your present happiness.&lt;br /&gt;19. Life is too short to waste time hating anyone. Don't hate others.&lt;br /&gt;20. Make peace with your past so it won't spoil the present.&lt;br /&gt;21. No one is in charge of your happiness except you.&lt;br /&gt;22. Realize that life is a school and you are here to learn. Problems are simply part of the curriculum that appear and fade away like algebra class but the lessons you learn will last a lifetime.&lt;br /&gt;23. Smile and laugh more.&lt;br /&gt;24. You don't have to win every argument. Agree to disagree.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Society:&lt;br /&gt;&lt;/span&gt;25. Call your family often.&lt;br /&gt;26. Each day give something good to others.&lt;br /&gt;27. Forgive everyone for everything.&lt;br /&gt;28. Spend time with people over the age of 70 &amp;amp; under the age of 6.&lt;br /&gt;29. Try to make at least three people smile each day.&lt;br /&gt;30. What other people think of you is none of your business.&lt;br /&gt;31. Your job won't take care of you when you are sick. Your friends will. Stay in touch.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Life:&lt;br /&gt;&lt;/span&gt;32. Do the right thing!&lt;br /&gt;33. Get rid of anything that isn't useful, beautiful or joyful.&lt;br /&gt;34. GOD heals everything.&lt;br /&gt;35. However good or bad a situation is, it will change.&lt;br /&gt;36. No matter how you feel, get up, dress up and show up.&lt;br /&gt;37. The best is yet to come.&lt;br /&gt;38. When you awake alive in the morning, thank GOD for it.&lt;br /&gt;39. Your Inner most is always happy. So, be happy.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8323730931789758579?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8323730931789758579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8323730931789758579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8323730931789758579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8323730931789758579'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/06/better-life.html' title='Better Life. :-)'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-737777162950949718</id><published>2009-05-29T07:25:00.001-07:00</published><updated>2009-05-29T07:43:41.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Believing in your Dreams</title><content type='html'>In one forwarded email; I came across one good article on "Believing in your dreams".&lt;br /&gt;By seeing the background image, I recalled my friend Ankita, who gave me one greeting card on my birthday on 1997.&lt;br /&gt;It was quoted with "Our destiney is in our own hand". On turning point of my career, that card always helped me to motivate my self in each and every stage in life then.&lt;br /&gt;&lt;br /&gt;Here, Just want to have collection of such good things in my dairy (blog), I am mentioning main points here.&lt;br /&gt;&lt;br /&gt;This is written by Marcia Wieder.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Part I:&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#660000;"&gt;Believing in your dreams&lt;/span&gt;&lt;br /&gt;1) Never neutral&lt;br /&gt;2) The Big Three&lt;br /&gt;3) The BUT Theory&lt;br /&gt;4) Dealing with Dought&lt;br /&gt;5) It's a choice&lt;br /&gt;6) Overcoming Fear&lt;br /&gt;7) The Challenge of Change&lt;br /&gt;8) The impossible dream&lt;br /&gt;9) Creating a new belief&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Part II:&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#660000;"&gt;Tapping your inner wisdom&lt;/span&gt;&lt;br /&gt;1) Believe Anything is possible&lt;br /&gt;2) Connect to your intuition&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;3) Ask simple questions&lt;br /&gt;4) Experience New Ways of being&lt;br /&gt;5) Appreciate your Abundance&lt;br /&gt;6) Open your spirit&lt;br /&gt;7) Share your gift with others&lt;br /&gt;8) Let your intuition guide you&lt;br /&gt;9) Trust your self&lt;br /&gt;10) Insights&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-737777162950949718?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/737777162950949718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=737777162950949718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/737777162950949718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/737777162950949718'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/blog-post.html' title='Believing in your Dreams'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-8345891836706417140</id><published>2009-05-20T01:03:00.000-07:00</published><updated>2009-05-20T09:49:51.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thought'/><title type='text'>Birthday</title><content type='html'>On my birthday yesterday. Yes, first time I was out of India. No Derasar nothing...One Mandir is there which is far away; so will go there on weekend. (first time in my life on my birthday I missed to go to Derasar. &lt;br /&gt;Rest, I did 2 Samayik yesterday. and will do one daily now.&lt;br /&gt;I recalled all kids of parikrama and Prayed for all of them for their bright future.&lt;br /&gt;Prayed for who ever I know that they are stuck somewhere in their life. Remembered maximum people came across in my life. recalled thier good things and deeds and their contribution to the society.&lt;br /&gt;Recalled people Whom I never ever met but still thier thoughts and deed attracted me; I prayed for them as well.&lt;br /&gt;In short yesterday I came more close to my self. did lot's of chintan+manan.&lt;br /&gt;Read couple of things. Observed my self closely about pre married life and post married life. overall whole day was very busy with my self. &lt;br /&gt;&lt;br /&gt;I guess vision for life is different at different time and in different situation. (at different age)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-8345891836706417140?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/8345891836706417140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=8345891836706417140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8345891836706417140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/8345891836706417140'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/birthday.html' title='Birthday'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4579848677719582172</id><published>2009-05-19T06:06:00.000-07:00</published><updated>2009-05-19T11:44:16.717-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jokes'/><title type='text'>Jokes</title><content type='html'>These Jokes I have recevied as a one forwarded email from my friend Manish(&lt;a href="http://www.layers7.blogspot.com/"&gt;Express Yourself!&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Doctor to patient: You will die within 2 hours. Do you want to see any one before you die?&lt;br /&gt;Patient: Yes. A good doctor..&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Sardar: My mobile bill how much?&lt;br /&gt;Call centre girl: sir, just dial 123to know current bill status&lt;br /&gt;Sardar: Stupid, not CURRENT BILL my MOBILE BILL.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Q: How do you make a sardarji laugh on Saturday?&lt;br /&gt;A: Tell him a joke on Wednesday.&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Wife-Oye ji, Sunte Ho,Utho Utho,Raat ke 2 baje he.&lt;br /&gt;Husband- itni rat ko Q...Uthaya Mujhe&lt;br /&gt;Wife-Aap neend ki goli Lena to bhul Hi gaye..!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Santa : "Ek litre gaaye{cow} Ka Dhoodh Dena."&lt;br /&gt;Banta : "Lekin Tumhara Bartan To Bahut Chhota Hai."&lt;br /&gt;Santa :"Theek He To Fir BAKRI Ka De de.."&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Interviewer&gt;To bataiye PANI ke bina Insan kaise Marega?&lt;br /&gt;Sardar&gt;PANI nai hoga to Insan Tairega kaise? Aur Tairega nahi to doob jayega!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Sardar: I think that girl is deaf..&lt;br /&gt;Friend: How do u know?&lt;br /&gt;Sardar: I told I Love her, but she said her chappals are new&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Friend: I got a brand new Ford IKON for my wife!&lt;br /&gt;Sardar: Wow!!! That's an unbelievable exchange offer!!!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Teacher: Which is the oldest animal in world?&lt;br /&gt;Sardar: ZEBRA&lt;br /&gt;Teacher: How?&lt;br /&gt;Sardar: Bcoz it is Black &amp;amp; White&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Sardar: Miss, Do u called 2 my mobile?&lt;br /&gt;Teacher: Me? No, why?&lt;br /&gt;Sardar: Yesterday I saw in my mobile- “1 Miss Call".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Judge: Don't U have shame? It is d 3rd time U R coming to court.&lt;br /&gt;Sardar to judge: U R coming daily, don't U have shame?&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Question: "Should Women have Children after 35?"&lt;br /&gt;Smart Sardar Replied: "No!&lt;br /&gt;35 Children R More than Enough!!"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sir: What is difference between Orange and Apple?&lt;br /&gt;Sardar: Color of Orange is orange, but color of Apple is not APPLE.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Sardar attending an interview in Software Company.&lt;br /&gt;Manager: Do U know MS Office?&lt;br /&gt;Sardar: If U give me the address I will go there sir.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Sardar in airplane going 2 Bombay .. While its landing he shouted: " Bombay ... Bombay "&lt;br /&gt;Air hostess said: "B silent."&lt;br /&gt;Sardar: "Ok. Ombay. Ombay"&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Sardar got a sms from his girl friend:&lt;br /&gt;"I MISS YOU"&lt;br /&gt;Sardarji replied:&lt;br /&gt;"I Mr YOU" !!.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Sardar: Doctor! My Son swallowed a key&lt;br /&gt;Doctor: When?&lt;br /&gt;Sardar: 3 Months Ago&lt;br /&gt;Dr:Wat were u doing till now?&lt;br /&gt;Sardar: We were using duplicate key &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Why Sardar opens his lunch box in the middle of the road???&lt;br /&gt;Just 2 confirm whether he is going to or coming back from the office....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Son: papa, 4+3 kithne hai?&lt;br /&gt;Sardar: ullu ke patthe gadhe idiot naalaayak besharam tujhe kuch nahi aathaa? Jaa andhar se CALCULATOR le ke Aa..&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;After finishing MBBS Sardar started his practice. He Checked 1st Patient's Eyes, Tongue &amp;amp; Ears By Torch &amp;amp; Finallly Said:&lt;br /&gt;"Torch is okay"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Sardar1: Oye, what will happen if electricity is not discovered?&lt;br /&gt;Sardar2: Nothing, we must watch TV in candle light.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Teacher: "What is common between JESUS, KRISHNA , RAM, GANDHI and BUDHA?"&lt;br /&gt;Sardar: "All are born on government holidays...!!!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4579848677719582172?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4579848677719582172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4579848677719582172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4579848677719582172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4579848677719582172'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/jokes.html' title='Jokes'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-3890600378196909016</id><published>2009-05-19T05:24:00.000-07:00</published><updated>2009-05-19T05:34:30.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='India'/><title type='text'>Imagining India: Ideas for the New Century</title><content type='html'>By Nandan Nilekani, "Imagining India: Ideas for the New Century"&lt;br /&gt;&lt;br /&gt;When this book published I read these points in Times Of India.&lt;br /&gt;Today I came across that article on internet. so, just wanted it in my dairy (blog) . I hope you will enjoy &lt;a title="India" href="http://en.wikipedia.org/wiki/India"&gt;Indian&lt;/a&gt; &lt;a class="mw-redirect" title="Software" href="http://en.wikipedia.org/wiki/Software"&gt;software&lt;/a&gt; entrepreneur's view and vision for India in coming year.&lt;br /&gt;&lt;br /&gt;Speaker: Mr Nandan Nilekani&lt;br /&gt;Co-Chairman, Infosys Technologies Limited&lt;br /&gt;&lt;br /&gt;One of the reasons I wrote the book was that I used to talk to people all over the world who would ask me very searching questions about India. They would ask; why do you have so many billionaires on the Forbes list and so many poor people, such beautiful university campuses and such large slums, you have this high-tech industry with so many highly qualified engineers and the world’s largest pool of uneducated children, why is it that you seem to live in the 17th century and the 21st century at the same time? These were questions that I really couldn’t answer. This book is in some sense my own voyage, figuring out why India is the way it is.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The other thing that struck me was that books on India are often on a particular discipline. Economists write about the economy of India, sociologists about the caste system, political scientists about different politics and governance, and environmentalists about environment issues. I felt that none of them really capture the entirety of India in a really wholistic manner. So this is a book that spans all of these different dimensions, that is the only way you can really describe the complexity of a country like India.&lt;br /&gt;&lt;br /&gt;I also felt like many books concentrate on events and end up becoming historical or on personalities and end up becoming biographies. I thought the true way to look at India was through the frame of ideas. I believe that changes in ideas in India are responsible for what is happening today. When I looked at the patterns of ideas I noticed that there are some that have changed radically over the past 60 years and those I believe are at the root of the vitality, energy and growth that you see in India today. I also found ideas that were agreed upon and yet were not being implemented. And then I found ideas that we argue deeply about, issues that India is gridlocked about, ideological disputes.&lt;br /&gt;&lt;br /&gt;I found that if India is going to go on and progress and prosper it must anticipate ideas. It must look at what is happening in the West today, look at some of the challenges there are elsewhere and perhaps learn from those challenges and choose a different path.&lt;br /&gt;&lt;br /&gt;I found there were six things that have changed India dramatically. To give some sense of the change it can be seen in terms of economic growth: in the 1960s India was growing at the rate of 3.5% per year and this rate of growth was called the ‘Hindu rate of growth’. At that time the population was growing at 2% a year. If the economy is growing at 3.5% and the population is growing at 2% it takes 45 years to double your per capita income. Today India is growing at 8-9%, in the face of the global economic crisis growth rates have dropped to 6% and may drop even more, but when we get beyond this crisis I do believe that will go up as the fundamentals are in place. So if the economy grows at 8-9% and today the population is growing at a lesser 1.5%, your per capita income doubles every 10 years. It is this acceleration of the rate of change that is at the root of India’s opportunities and its challenges.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Demographic Dividend&lt;br /&gt;&lt;/span&gt;There are 6 factors that led to this acceleration and huge upsurge in dynamism. The first is that India has vastly changed its view of its population. There was a time in the 60s and 70s when the population was seen as a burden, but today in modern India we think of our population as human capital. Human capital is really what drives the economy, drives the world, and drives progress. This notion of people as an asset rather than a liability is a huge change is perception which is responsible for some of the changes that you see. This change in perception coincides with India achieving a demographic dividend. A demographic dividend comes but once in the history of a country when you have a large number of people at the working age of 15-65, and relatively less people who are old or young. At the peak of India’s demographic dividend it will have four people working for every one to support. When you have a demographic dividend you also have a cycle of economic growth: you have more people who are working thereby more who have savings, more savings means more investment, and more investment means more economic growth.&lt;br /&gt;&lt;br /&gt;India is doubly unique as is the only large country in the world to be having its demographic dividend, which means it will be the only young country in an ageing world. Thirty years back India and China were at the same level but because China implemented a one-child policy they accelerated their demographic dividend. China will start ageing by 2015 leaving the path clear for India as the only young country in this world. That opens up huge opportunities.&lt;br /&gt;China does have growth rates significantly higher over the last 30 years but we must also remember that China has reached its demographic dividend by massive social engineering. China will have 400 million old people by 2020 and that will be a huge burden. In the next thirty years as China starts ageing and India’s young become productive, India has the potential of growing (in percentage terms) faster than China.&lt;br /&gt;&lt;br /&gt;At the same time a demographic dividend is only engaged when the people are productive: they are healthy, educated, have roads to go to school, lights to study at night, and markets to get jobs. If you don’t do it right, a demographic dividend can go the other way. You have all these people with aspirations that have been unleashed by the media; by television, the internet and mobile phones. If they have nowhere to go the same young people who can contribute so hugely to the economy can become disgruntled, resentful, divisive and violent. A demographic dividend can become a demographic disaster. India has the choice. For this reason the election becomes all the more relevant.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Entrepreneurship&lt;br /&gt;&lt;/span&gt;The second big idea that has changed is Indian attitudes towards entrepreneurship. In the 1940s and 50s the Indian state had a very suspicious view of entrepreneurs. It did not believe that entrepreneurs should have a large role in society and Indian entrepreneurship was not really given free reign. Instead of focusing on improving products and creating customer value entrepreneurs instead focused on getting licences from government. Today being an entrepreneur has changed dramatically, India has become a global player. I call this phenomenon ‘from Bombay plan to Bombay Club to Bombay house.’&lt;br /&gt;&lt;br /&gt;In 1944 the leaders of Indian business came out with ‘the Bombay plan’ saying the state must have a large role in the economy, that private capital in India is too young and immature to build this newly independent country. So it goes back to the businessmen themselves who wanted huge state and public funding. In 1992 we had something called ‘the Bombay club’, a group of businessman who met in Bombay after the economic reforms of 1991. They observed that from living 50 years in a closed economy India hadn’t learned to compete, that India shouldn’t open up its borders and allow global capital and global trade to come or Indian capital would get wiped out. The Bombay club was about protectionism.&lt;br /&gt;Today we have ‘the Bombay house’ spirit which is what I call the headquarters of Tata, a global group, more than 50% of whose revenue comes from outside India, who are very comfortable with global competition. This, in some sense, is a metaphor for the change in Indian culture; from someone who wants a large role for the state, to someone who wanted a lot of protection, to someone who is eager and willing to compete with global competition.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Technology&lt;br /&gt;&lt;/span&gt;The third change in the Indian mind is the attitude towards technology. In the 1960s computer was a bad word in India. They were believed to be job-eating machines. As late as the 1980s when the central bank came out with a report on bank computerisation they did not even use the word computer in their report, they called them ‘ledger posting machines’. When they wanted to employ more powerful versions of these ledger posting machines they called them ‘advanced ledger posting machines’. They were worried that the unions of the day would react violently to the news of computers in the bank industry.&lt;br /&gt;&lt;br /&gt;Today, however, we live in a country where 8-10 million mobile phones are sold every month. 99% of those phones are pre-pay which means they are bought by people who don’t have a credit history, they don’t have credit cards. For 40% of those mobile phones the average recharge is less than 10 rupees which is just a few pence. That little mobile phone of a computer has become a symbol of empowerment for the poor of India. They get access to services, prices, so many things.This is the third big change: the change of seeing technology as something intimidating and job displacing to something empowering and equalising.&lt;br /&gt;The tech sector contributes around 50 million dollars in exports for India which is about 5% of GDP. There is no question that it is getting increasingly sophisticated, solutions and products are developing. I believe this trend will continue, and India will continue to be one of the world’s favourite places for technological products and services in the coming years.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Education &lt;/span&gt;&lt;br /&gt;The fourth change is the attitude towards English. For many years Indians had a very ambivalent attitude, they believed we should all talk in Indian languages and so forth. Today, with outsourcing and globalisation, it is very clear that knowledge of English is essential for Indians participating in the global economy. English has become an aspirational language. Even the poor are sending their children to English speaking schools.&lt;br /&gt;&lt;br /&gt;The good news is that India is spending more on education than ever before. The Tenth Plan which ended in 2007 gave the allocation for education at around 7.5%. In The Eleventh Plan which is now running it is 19%. 3 billion dollars a year in taxes is given to primary and secondary education. We need both primary education through programmes creating better schools and the reform of higher education. The problem is too big to sequence; you must do it on both fronts.&lt;br /&gt;For higher education I think the problem is excessive regulation. You cannot start a university, increase fees, change faculty salaries or change the course content. The system requires deregulation which allows excellence and inclusion, and also allows for private universities to be brought in.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Globalisation&lt;br /&gt;&lt;/span&gt;The fifth big thing I believe is that the Indian mindset has become far more comfortable with globalisation. In the 1940s and 50s Indians were scared of globalisation, they had just gained independence, so were building all sorts of barriers against globalisation. Today as Indian companies, workers and students go abroad globalisation is being seen as something they can take advantage of.&lt;br /&gt;&lt;br /&gt;Now there is far less fear of foreign investment. There are still some sectors where domestic entrepreneurs prevent foreign investment from coming in but I think that is changing. By and large there is far more receptivity.&lt;br /&gt;When India started globalising, those participants in the Indian economy who had the skills to contribute to the economy did well: those who were educated and knew English. Those who were not part of that were left behind. I think this has definitely exacerbated inequalities. We need to reduce those inequalities by expanding opportunities to these people. They must have the same access to schools, food and water.&lt;br /&gt;I think NRIs [Non Resident Indians] are a very important part of the equation. And it has to do with the change in the Indian mindset. When Indians were not comfortable with globalisation they viewed Indians who left the borders as a brain drain. Today, as Indians become pro-globalisation, NRIs becomes a strategic asset and so in our eyes can contribute by knowledge, capital, entrepreneurship, and building a brand. I think that there’s a dramatic shift and both the people and the government are now very much open to globalisation.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Democracy&lt;br /&gt;&lt;/span&gt;The sixth big thing is democracy. Again in the 1950s and 60s democracy was an elite concept, a set of London-educated lawyers came up with the idea. Today we see with the elections that democracy is rooted in the people. 740 million people are voting in this election, it will take a month and over one million voting machines. It is really a grand spectacle.&lt;br /&gt;&lt;br /&gt;I think certainly there are many challenges on the democratic front. Externally there is terrorism and internally there are the Maoists in central India. However, the election is reasonably peaceful; 740 million voters, 100 million new young voters, and average turnout at around 60%. The combination of parties that will come into power on May 16th will have a peaceful transition.&lt;br /&gt;These six factors: entrepreneurship, demographics, globalisation, IT, English, and democracy, all contribute to India’s growth. At the same time India faces many challenges for implementation. For example; primary education, full literacy, infrastructure, urbanisation and single markets all have a long way to go. These are simple ideas and there is no argument, they must be implemented. There should also be reforms in higher education, labour (there is the complex challenge of creating jobs), and the issue of affirmative action: how do we address centuries of social exclusion and redress the balance?&lt;br /&gt;&lt;br /&gt;Micro-financing has been a success, although it is not the only factor. Today there are probably less than 50 million people benefiting from micro-financing, but it is one of the instruments for financial inclusion which is happening. The banks are now trying to open low cost accounts using technology and biometrics to reduce transaction costs. I don’t see India using micro-finance in the same way as China and Africa, we are not organised enough for that!&lt;br /&gt;&lt;br /&gt;India has the potential to grow at 6-8% for years to come but then it must deal with the challenges of prosperity. We must look at the challenges from the West. There are two broad sets of challenges. One is when the population starts ageing. While the population is young we must design a healthcare system so when the country ages it does not become a huge burden. How do you create a system of social insurance and social entitlements which work right now for the younger population, but&lt;br /&gt;again don’t create a huge burden when the population ages? Here we can learn from what happened in the developed countries if there is a different way of designing health and social security.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Social Security and Infrastructure&lt;/span&gt;&lt;br /&gt;Historically India has not had any social security or any kind of social insurance beyond employees of the government who get a pension and those in the organised private sector who have formal jobs. The vast majority of people have no social benefits. It is very clear from the Western experience that creating a massive entitlement programme based on defined benefits can be hugely crippling. Look at the United States, their unfunded liabilities for social security is about 50 trillion dollars. You can’t have a defined benefits system for 1 billion people. The government launched ‘the new pension system’ in 2004. It was first extended to government servants and is now available to the public. I think we can leapfrog certain things and build very modern systems to provide social insurance.&lt;br /&gt;&lt;br /&gt;Infrastructure is a big challenge and the base is undesirable. To give you a sense of capital, the Indian economy is over a trillion dollars in size and the savings rate is about 35%. Around 350 billion dollars are saved every year whilst the foreign capital that comes in is only around 10-15 billion dollars. The role of foreign capital in the Indian economy is actually quite marginal. The government had an ambitious plan to spend 500 billion dollars on infrastructure. Although a lot of private investment will be hampered by the liquidity crisis, most of the money is still tax generated.&lt;br /&gt;I think infrastructure will happen, it has become very salient. It is reflected in our political slogans. About thirty years back our political slogans had ‘food, clothing and shelter’, but today’s slogans are ‘power, water and roots’. The manifestos say ‘broadband for all’. These are all examples of the fact that infrastructure has become very politically salient. So while it won’t be at the base of change, as you see in China, this election depends on it.&lt;br /&gt;The other big challenge that India faces is what to do with energy and the environment because it is unlikely that India will be able to continue with rapid growth using the same hydro-carbon methods that is has used for the past 200 years. If India grows at 8% a year, it doubles every 10 years, which means by 2050 it will have gone up 16 times. Historically, there is a linear relationship between growth in income and growth in greenhouse gas emission. Clearly India can’t have its emissions going up 16 times. Therefore it must create a low carbon economy that allows its people to enjoy the lifestyle benefits of economic growth without causing environmental damage. We do not yet know what the solution is but India will have to do it.&lt;br /&gt;&lt;br /&gt;Some states have been more dynamic than others although some of the laggard states are now catching up. For example Bihar now has a chief minister who in some sense is more progressive than the south Indian states that have historically been seen as progressive. Gujarat in terms of reforms and economic dynamism has done a lot as has Andhra Pradesh. I think the competition between states, and pressure from the people within the state for a better life will drive the growth phenomenon.&lt;br /&gt;&lt;br /&gt;My basic thesis is that India is at a very critical juncture. It can either engage its demographic dividend or lose it. It can address the challenges of population and poverty. It can also avoid long term challenges by looking at issues elsewhere to create a wonderful country in the 21st century.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-3890600378196909016?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/3890600378196909016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=3890600378196909016' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3890600378196909016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3890600378196909016'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/imagining-india-ideas-for-new-century.html' title='Imagining India: Ideas for the New Century'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-4867290758438899230</id><published>2009-05-18T07:14:00.000-07:00</published><updated>2009-05-18T07:16:12.123-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><title type='text'>Dr Hinohara's Perspective</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_jeYO6OeMsY0/ShFtlkXffCI/AAAAAAAAGFs/AjK4-_d-wfY/s1600-h/fl20060108x1a.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 272px;" src="http://1.bp.blogspot.com/_jeYO6OeMsY0/ShFtlkXffCI/AAAAAAAAGFs/AjK4-_d-wfY/s400/fl20060108x1a.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5337167525595544610" /&gt;&lt;/a&gt;&lt;br /&gt;At the age of 97 years, Shigeaki Hinohara is one of the world's longest-serving physicians and educators. Hinohara's magic touch is legendary: Since 1941 he has been healing patients at St. Luke's International Hospital in Tokyo and teaching at St. Luke's College of Nursing.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;After World War II, he envisioned a world-class hospital and college springing from the ruins of Tokyo; thanks to his pioneering spirit and business savvy, the doctor turned these institutions into the nation's top medical facility and nursing school. Today he serves as chairman of the board of trustees at both organizations.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Always willing to try new things, he has published around 150 books since his 75th birthday, including one "Living Long, Living Good" that has sold more than 1.2 million copies. As the founder of the New Elderly Movement, Hinohara encourages others to live a long and happy life, a quest in which no role model is better than the doctor himself.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Here are some of his views:&lt;br /&gt;&lt;br /&gt;Energy comes from feeling good, not from eating well or sleeping a lot. We all remember how as children, when we were having fun, we often forgot to eat or sleep. I believe that we can keep that attitude as adults, too. It's best not to tire the body with too many rules such as lunchtime and bedtime.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All people who live long regardless of nationality, race or gender share one thing in common: None are overweight.  For breakfast I drink coffee, a glass of milk and some orange juice with a tablespoon of olive oil in it. Olive oil is great for the arteries and keeps my skin healthy. Lunch is milk and a few cookies, or nothing when I am too busy to eat. I never get hungry because I focus on my work. Dinner is veggies, a bit of fish and rice, and, twice a week, 100 grams of lean meat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Always plan ahead. My schedule book is already full until 2014, with lectures and my usual hospital work. In 2016 I'll have some fun, though: I plan to attend the Tokyo Olympics!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is no need to ever retire, but if one must, it should be a lot later than 65. The current retirement age was set at 65, half a century ago, when the average life-expectancy in Japan was 68 years and only 125 Japanese were over 100 years old. Today, Japanese women live to be around 86 and men 80, and we have 36,000 centenarians in our country. In 20 years we will have about 50,000 people over the age of 100.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Share what you know. I give 150 lectures a year, some for 100 elementary-school children, others for 4,500 business people. I usually speak for 60 to 90 minutes, standing, to stay strong.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Music and animal therapy. When a doctor recommends you take a test or have some surgery, ask whether the doctor would suggest that his or her spouse or children go through such a procedure. Contrary to popular belief, doctors can't cure everyone. So why cause unnecessary pain with surgery? I think music and animal therapy can help more than most doctors imagine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To stay healthy, always take the stairs and carry your own stuff. I take two stairs at a time, to get my muscles moving.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pain is mysterious, and having fun is the best way to forget it. If a child has a toothache, and you start playing a game together, he or she immediately forgets the pain. Hospitals must cater to the basic need of patients: We all want to have fun. At St. Luke's we have music and animal therapies, and art classes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Don't be crazy about amassing material things. Remember: You don't know when your number is up, and you can't take it with you to the next place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hospitals must be designed and prepared for major disasters, and they must accept every patient who appears at their doors. We designed St. Luke's so we can operate anywhere: in the basement, in the corridors, in the chapel. Most people thought I was crazy to prepare for a catastrophe, but on March 20, 1995, I was unfortunately proven right when members of the Aum Shinrikyu religious cult launched a terrorist attack in the Tokyo subway. We accepted 740 victims and in two hours figured out that it was sarin gas that had hit them. Sadly we lost one person, but we saved 739 lives.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Science alone can't cure or help people. Science lumps us all together, but illness is individual. Each person is unique, and diseases are connected to their hearts. To know the illness and help people, we need liberal and visual arts, not just medical ones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Learn from life's incidents. On March 31, 1970, when I was 59 years old, I boarded the Yodogo, a flight from Tokyo to Fukuoka. It was a beautiful sunny morning, and as Mount Fuji came into sight, the plane was hijacked by the Japanese Communist League-Red Army Faction. I spent the next four days handcuffed to my seat in 40-degree heat. As a doctor, I looked at it all as an experiment and was amazed at how the body slowed down in a crisis.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Find a role model and aim to achieve even more than they could ever do. My father went to the United States in 1900 to study at Duke University in North Carolina. He was a pioneer and one of my heroes. Later I found a few more life guides, and when I am stuck, I ask myself how they would deal with the problem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Retirement and contribution to society. It is wonderful to live long. Until one is 60 years old, it is easy to work for one's family and to achieve one's goals. But in our later years, we should strive to contribute to society. Since the age of 65, I have worked as a volunteer. I still put in 18 hours seven days a week and love every minute of it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-4867290758438899230?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/4867290758438899230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=4867290758438899230' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4867290758438899230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/4867290758438899230'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/dr-hinoharas-perspective.html' title='Dr Hinohara&apos;s Perspective'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jeYO6OeMsY0/ShFtlkXffCI/AAAAAAAAGFs/AjK4-_d-wfY/s72-c/fl20060108x1a.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7428153359375881627</id><published>2009-05-12T03:47:00.000-07:00</published><updated>2009-05-12T03:49:15.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renewable energy'/><title type='text'>U.S. Solar Company To Build Plants In India</title><content type='html'>MUMBAI - U.S. renewable energy company Signet Solar is investing $2 billion to set up manufacturing operations in India over the next 10 years. &lt;br /&gt;&lt;br /&gt;Palo Alto, Calif.-based Signet Solar will start constructing the first of three planned factories to produce solar photovoltaic modules in early 2008. The company is still scouting for a location. &lt;br /&gt;&lt;br /&gt;“We are talking to state governments and considering the infrastructure-readiness of various locations. We’ll take a decision in two to three months. It’s likely to be located in a SEZ [special economic zone] as we’re export-focused,” said Signet Solar CEO Rajeeva Lahri.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Earlier this year, the government announced a semiconductor policy under which it will incur 20% of the capital expenditure if companies set up in special economic zones and 25% if they come up elsewhere. The minimum investment limit for the benefits is $570 million. &lt;br /&gt;&lt;br /&gt;Privately held Signet Solar, which was founded in 2006, is talking to investors in India and abroad to raise capital for its plans. “We’re looking at a mix of private equity, debt and government incentives for manufacturing in India,” Lahri told reporters in New Delhi Thursday. &lt;br /&gt;&lt;br /&gt;The firm will target power plants, rural electrification and irrigation and large commercial units in India. The plant will initially have a capacity of 60 megawatt that will expand to 1 gigawatt annually over 10 years. “I think in India we have not realized the potential of solar energy here. It is a huge market and its demand is only going to grow,” Lahri said. &lt;br /&gt;&lt;br /&gt;Signet Solar is also setting up a manufacturing plant in Dresden, Germany. Worldwide solar photovoltaic installations grew at an annual rate of nearly 40% in the last five years, and increasing demand is expected to sustain growth for a while, the firm said in a press release.&lt;br /&gt;&lt;br /&gt;India’s government wants to produce 10% of its growing energy needs from renewable sources by 2012. At present, over 5% of power comes from renewable energy. &lt;br /&gt;&lt;br /&gt;Both India and China, where energy consumption has surged because of rapid industrialization, came under fire in a recent S&amp;P report for their reliance on carbon-intensive fuels to meet energy needs (See: “ Coal Still King In India And China”). &lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7428153359375881627?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7428153359375881627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7428153359375881627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7428153359375881627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7428153359375881627'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/us-solar-company-to-build-plants-in.html' title='U.S. Solar Company To Build Plants In India'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-1628620328073460111</id><published>2009-05-12T03:34:00.000-07:00</published><updated>2009-05-12T03:37:05.345-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renewable energy'/><title type='text'>Pegasus plans Rs 200 crore semiconductor plant in Ahmedabad</title><content type='html'>To manufacture white LED lighting systems.&lt;br /&gt;&lt;br /&gt;In what could provide an impetus to energy conservation and reduce power costs, Ahmedabad-based Pegasus Semiconductors Pvt. Ltd. is setting up a manufacturing plant on the outskirts of the city for white light emitting diode (LEDs) semi-conductor chips.&lt;br /&gt;&lt;br /&gt;At an investment of around Rs 200 crore, the plant is set to commission within two years.&lt;br /&gt;&lt;br /&gt;White LEDs, which are prominent in western countries, offer better lumens per watt than incandescent bulb and compact fluorescent lamp (CFL).&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;However, currently white LED semi-conductor chips have to be imported in India from abroad. Once commissioned, the company will probably become the first manufacturer of such chips, said Sudhindra Tatti, president of Pegasus Semiconductors Pvt. Ltd.&lt;br /&gt;&lt;br /&gt;The upcoming plant will begin assembling atleast 1,000-odd white LED light systems per month and subsequently ramp up the volume once the manufacturing activities begin. The company's operations will also be part-funded by Gujarat Venture Finance Limited (GVFL), which has expressed its desire to invest in the project.&lt;br /&gt;&lt;br /&gt;Tatti said that while currently the market for white LEDs is only for early adapters looking for aesthetic application, the company will target rural as well as urban households for solar lighting systems.&lt;br /&gt;&lt;br /&gt;"Once the market begins to understand and accept the benefits of white LEDs as against its conventional alternatives, we will have to manufacture atleast a million semi-conductor chips per month," he added.&lt;br /&gt;&lt;br /&gt;"Initially, we plan to manufacture solar lighting systems consisting white LED technology and later introduce conventional energy based systems. White LEDs help save 2-3 times of energy as compared to other alternatives. They also reduce design cost for lighting systems, making them more affordable," said Tatti.&lt;br /&gt;&lt;br /&gt;To begin with, the company is piloting these lighting systems at college campuses and intends to target public buildings, street lighting and households later on.&lt;br /&gt;&lt;br /&gt;Source: http://www.business-standard.com/india/storypage.php?autono=331413&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-1628620328073460111?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/1628620328073460111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=1628620328073460111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1628620328073460111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/1628620328073460111'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/pegasus-plans-rs-200-crore.html' title='Pegasus plans Rs 200 crore semiconductor plant in Ahmedabad'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-5573107536322130592</id><published>2009-05-12T03:25:00.000-07:00</published><updated>2009-05-12T03:38:31.264-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renewable energy'/><title type='text'>IIM-A grads give a lukewarm response to entrepreneurship; but all mint gold in the end</title><content type='html'>Ahmedabad It is a fact that very few students who pass out of the Indian Institute of Management, Ahmedabad (IIM-A), opt for entrepreneurship. This year only eight students of the total 281 who graduated, opted for entrepreneurship. But those who have done so are all pursuing a success path. &lt;br /&gt;IIM-A Director Samir Barua says: “There is a policy by the name of ‘Placement Holiday’ at IIM-A wherein ex-students, who have opted for entrepreneurship, can approach the institute for placements. But not a single application has been made under the scheme till now, indicating the success of the entrepreneurship ventures.” &lt;br /&gt;&lt;br /&gt;The start-ups have also been as diverse as they possibly can be. &lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Rohit Shankar and Nikhil Vaswani, who passed out of IIM-A in 2006, operated a pilot fitness centre at Gandhinagar for over a year, before starting their first wellness centre, ‘Wellocity’, in the heart of western Ahmedabad in February 2008. After a year of operations, it has 600 active members, with an 80 per cent renewal rate. Rohit adds: “We will soon come up with another centre in Rajkot. Diversification into ‘Healthy Food Joints’ and ‘Corporate Parks’ is also in the pipeline.” &lt;br /&gt;&lt;br /&gt;Another IIM-A graduate, who is helping Gujaratis to remain healthy is Sidharth Jaiswal, a 2008 pass out. He started his joint, ’Juice’, where 69 certified organic and natural drinks are served. “We are also working in ‘Organic Farming’ with farmers from Gujarat and Bihar, and taking care of front-end as well as back-end operations of the business,” Sidharth says. His plans include opening ‘Juice’ outlets in Mumbai, Gurgaon and Delhi soon. &lt;br /&gt;&lt;br /&gt;It is not only the service industry that has attracted IIM-A graduates. Akshat Khare and Sudhindra Tatti, both 2007 pass-outs, started a company, ‘Pegasus Semiconductors’, which manufactures Solar Energy powered LED Lighting Systems, both for homes and streets. &lt;br /&gt;&lt;br /&gt;“Our USP is the price which is about two times lower then the conventional solar lighting systems,” Akshat says. Recently, Pegasus has started operating its own manufacturing facility in Gandhinagar, employing 12 people. Another successful venture includes ‘Mantis Technologies’, a provider for online ticketing platform for the bus industry in India using Software As A Service (SAAS) model, and ‘Bipler’, an Internet media company aiming to provide quality entertainment content. &lt;br /&gt;&lt;br /&gt;The foremost reason for the low rate of entrepreneurship ventures from IIM-A, according to these brave-hearts is that the incubation centre at IIM-A supports only technology-related ventures. &lt;br /&gt;&lt;br /&gt;“This leaves a big chunk of those who want to establish something new at the grassroots or in the service industry, out of the loop,” says Sidharth. &lt;br /&gt;&lt;br /&gt;Akshat adds, “Factors like high opportunity cost, the high risk involved and earlier returns also aids the decision.” Another trend observed is that some graduates believe that a certain amount of work experience is essential before starting their own ventures. So they just delay their entrepreneurship ambitions by a few years.&lt;br /&gt;&lt;br /&gt;Source:http://www.expressindia.com/latest-news/iima-grads-give-a-lukewarm-response-to-entrepreneurship-but-all-mint-gold-in-the-end/434618/&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-5573107536322130592?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/5573107536322130592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=5573107536322130592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5573107536322130592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/5573107536322130592'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/iim-grads-give-lukewarm-response-to.html' title='IIM-A grads give a lukewarm response to entrepreneurship; but all mint gold in the end'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-7706388056587519855</id><published>2009-05-12T02:59:00.000-07:00</published><updated>2009-05-12T03:40:24.667-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renewable energy'/><title type='text'>Solar Power Charges Amdavadis</title><content type='html'>I read an article about the solar power charges.  It will be good.  We will have less electricity to use.  As we use less electricity,  our bill will be less too.&lt;br /&gt;&lt;br /&gt;Imagine a house running only on solar energy. From water heater to every light bulb. This thought could turn into a reality soon, with a sharp rise in number of takers for this alternative and green power source.   &lt;br /&gt;&lt;br /&gt;Advanced solar appliances have become popular among educational institutes and corporate houses to generate thermal and electric energy. &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;School of Solar Energy, a constituent of Pandit Deen Dayal Petroleum University in Gandhinagar is researching photovoltaic cell – a device that directly converts sunlight into electricity which could bring down the cost of using solar energy. They are not alone. Indian Institute of Management in city (IIM-A )has installed solar street lights in the campus, Intas Biopharma has started with a borocell solar heating panel for their kitchen facilities and even Ahmedabad Municipal Corporation has plans for solar powered street lights in AMC gardens. &lt;br /&gt;&lt;br /&gt;General Manager (projects- engineering) of Intas Biopharma, Satish Kolte says, “Not only is solar energy an environment-friendly option, it also cuts on costs in the long run. We started with this solar prototype two months ago in our kitchen and so far, it has given good results.” &lt;br /&gt;&lt;br /&gt;“We will be using solar energy in all our upcoming plants. We believe industries can tap into this freely available large source of energy,” adds Kolte. &lt;br /&gt;&lt;br /&gt;Recently, Gujarat government also announced Solar Power. &lt;br /&gt;&lt;br /&gt;Policy, 2009, to promote solar power generation as an alternative source of energy. &lt;br /&gt;&lt;br /&gt;Satish Deshpande, a solar power expert, has been using solar energy in his home since the last 12 years and now prefers to cook his lunch in his solar concentrator. Deshapande says, “It makes economic sense to embrace it.” &lt;br /&gt;&lt;br /&gt;Akshat Khare, a young entrepreneur has started a solar-based lighting system to promote the use of solar energy. “We have installed solar streetlights at IIM-A, SEWA and at other organizations in city,” he says. –The Times of India&lt;br /&gt;&lt;br /&gt;http://timesofindia.indiatimes.com/Cities/Ahmedabad/Solar-power-charges-Amdavadis/articleshow/4452492.cms&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-7706388056587519855?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/7706388056587519855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=7706388056587519855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7706388056587519855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/7706388056587519855'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/solar-power-charges-amdavadis.html' title='Solar Power Charges Amdavadis'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-605544835464350832</id><published>2009-05-06T07:09:00.000-07:00</published><updated>2009-06-01T07:50:42.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wireless Telecommunication'/><title type='text'>UMTS Architecture</title><content type='html'>&lt;span style="color:#660000;"&gt;Reading summary of UMTS Architecture.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_jeYO6OeMsY0/SgGcsNBdzhI/AAAAAAAAGEk/Ogk7zfg_lJg/s1600-h/UMTS+Basic+Architecture.JPG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 200px; FLOAT: left; HEIGHT: 189px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5332715717007363602" border="0" alt="" src="http://1.bp.blogspot.com/_jeYO6OeMsY0/SgGcsNBdzhI/AAAAAAAAGEk/Ogk7zfg_lJg/s200/UMTS+Basic+Architecture.JPG" /&gt;&lt;/a&gt;The UMTS architecture comprises three parts (or domains):&lt;br /&gt;1) Core network&lt;br /&gt;2) Access network&lt;br /&gt;3) User equipment. (Mobile device used to access UMTS services)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#660000;"&gt;fig (a) High Level UMTS Architecture. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;span style="color:#000000;"&gt;The user equipment has a radio interface to the access network. The access network manages access to the core network for all authorized users within its coverage area. The core network provides the central switching, transmission and service provisioning functions required to provide UMTS services.&lt;br /&gt;&lt;br /&gt;The access network and core network communicate by the Iu interface. The access network and the user equipment communicate by the Uu interface.&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;User equipment has two components:&lt;br /&gt;&lt;/span&gt;1) Mobile Equipment (ME). The ME is the terminal itself. It performs all radio transmission, reception and processing functions.&lt;br /&gt;2) UMTS Subscriber Identity Module (USIM). A removeable card which uniquely identifies a &lt;a href="http://3.bp.blogspot.com/_jeYO6OeMsY0/SgGdBBQnpAI/AAAAAAAAGEs/74FlXyfzjDA/s1600-h/UMTS+Ref+Model.JPG"&gt;&lt;/a&gt;UMTS user for authentication purposes, holds subscription-related information and provides&lt;br /&gt;additional security features.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;ACCESS Network:&lt;br /&gt;&lt;/span&gt;The access network is known as the UMTS Terrestrial Radio Access Network (UTRAN) and performs the following functions:&lt;br /&gt;1) Radio resource management&lt;br /&gt;2) Call set up and handover&lt;br /&gt;3) User access to the core network.&lt;br /&gt;The UTRAN performs a similar role to the Base Station Subsystem (BSS) in GSM.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;A UTRAN contains the following network entities:&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#993399;"&gt;1) Radio Network Subsystem (RNS)&lt;br /&gt;&lt;/span&gt;The RNS is an abstract term that collectively defines the entities which manage the resources and transmission/reception for a particular set of cells.&lt;br /&gt;Each RNS contains:&lt;br /&gt;i) One Radio Network Controller (RNC).&lt;br /&gt;ii) One or more Node Bs. Each Node B controls multiple UMTS cells.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;2) Radio Network Controller (RNC)&lt;br /&gt;&lt;/span&gt;The Radio Network Controller (RNC) controls the allocation and use of the radio resources in an RNS and performs most of the intelligent processing for the UTRAN. Each RNC controls one or more Node Bs.&lt;br /&gt;RNC functions include:&lt;br /&gt;i) Assigning and releasing radio channels. These may be locally controlled by the RNC or controlled from a neighbouring RNC&lt;br /&gt;ii) Monitoring and maintaining connection quality&lt;br /&gt;iii) Handover control&lt;br /&gt;vi) Operations and maintenance:&lt;br /&gt;- Configuration management&lt;br /&gt;- Alarm and fault reporting&lt;br /&gt;- Performance monitoring.&lt;br /&gt;v) Macro diversity combining and splitting functions.&lt;br /&gt;Most UTRAN functions are performed by the Radio Network Controller (RNC) entity.&lt;br /&gt;&lt;span style="color:#993399;"&gt;3) Node B.&lt;/span&gt;&lt;br /&gt;Node Bs are logical nodes that are responsible for radio transmission and reception between the User Equipment (UE) and UMTS cells.&lt;br /&gt;1) One Node B serves multiple cells&lt;br /&gt;2) Each Node B is controlled by one RNC&lt;br /&gt;3) Node Bs can support Frequency Division Duplexing (FDD), Time Division Duplexing (TDD) or dual-mode operation.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Core Network:&lt;br /&gt;&lt;/span&gt;The UMTS core network is responsible for:&lt;br /&gt;1) Transmission and switching&lt;br /&gt;2) User management&lt;br /&gt;3) User services provisioning&lt;br /&gt;4) Interworking with external networks.&lt;br /&gt;The core network provides integrated support for packet and circuit switched traffic.&lt;br /&gt;Most UMTS core networks are likely to evolve from an existing network infrastructure (GSM, PDN, N-ISDN, B-ISDN).&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;Services&lt;/span&gt; supported by the UMTS core network include: &lt;a href="http://3.bp.blogspot.com/_jeYO6OeMsY0/SgG3ycf-ZFI/AAAAAAAAGFM/sNepfEdbRLw/s1600-h/UMTS+Ref+Model.JPG"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 305px; FLOAT: right; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5332745511055025234" border="0" alt="" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/SgG3ycf-ZFI/AAAAAAAAGFM/sNepfEdbRLw/s400/UMTS+Ref+Model.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;1) Voice&lt;br /&gt;2) Universal messaging (integrated email, voicemail, SMS)&lt;br /&gt;3) Video&lt;br /&gt;4) Wireless internet access&lt;br /&gt;5) File transfer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;Interworking &lt;/span&gt;is supported to:&lt;br /&gt;1) PSTN&lt;br /&gt;2) GSM&lt;br /&gt;3) N-ISDN&lt;br /&gt;4) IP&lt;br /&gt;&lt;span style="font-size:85%;color:#660000;"&gt;fig(b): UMTS Reference model&lt;br /&gt;&lt;/span&gt;The core network is logically divided into a circuit switching domain and a packet switching domain. The network entities are grouped into functional areas accordingly:&lt;br /&gt;1) Entities to support packet-switched services&lt;br /&gt;2) Entities to support circuit-switched services&lt;br /&gt;3) Entities common to packet and circuit-switched services. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;Packet switching entities:&lt;br /&gt;&lt;/span&gt;1) Serving GPRS Support Node (3G-SGSN)&lt;br /&gt;2) Gateway GPRS Support Node (3G-GGSN)&lt;br /&gt;3) Domain Name Server (DNS)&lt;br /&gt;4) Dynamic Host Configuration Protocol (DHCP) server&lt;br /&gt;5) Firewall&lt;br /&gt;6) Packet charging gateway.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#993399;"&gt;Circuit switching entities:&lt;br /&gt;&lt;/span&gt;1) Mobile Switching Center (3G-MSC)&lt;br /&gt;2) Gateway MSC (GMSC)&lt;br /&gt;3) Visitor Location Register (VLR).&lt;br /&gt;&lt;span style="color:#993399;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#993399;"&gt;Shared packet and circuit switching entities:&lt;br /&gt;&lt;/span&gt;1) Home Location Register (HLR)&lt;br /&gt;2) Authentication Center (AuC)&lt;br /&gt;3) Equipment Identity Register (EIR).&lt;br /&gt;Separation of the circuit switching and packet switching domains is also achieved by separate logical interfaces between the core network and the UTRAN:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#993399;"&gt;Other areas that can be considered as part of the core network include:&lt;/span&gt;&lt;br /&gt;1) Network management systems (such as billing and provisioning, and service management)&lt;br /&gt;2) Operations and Maintenance Center (OMC). &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 229px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5332719403601289042" border="0" alt="" src="http://3.bp.blogspot.com/_jeYO6OeMsY0/SgGgCyp831I/AAAAAAAAGFE/kRa-5yEwleY/s400/UMTS+implementation+example.JPG" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="color:#660000;"&gt;&lt;span style="font-size:85%;"&gt;fig(c): UMTS Implementation on an existing GSM&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Overview of soft handover in UMTS (unlike of GSM):&lt;br /&gt;&lt;/span&gt;Macro diversity refers to the capability of a UMTS UE to receive signals from more than one cell and vice versa - multiple cells can receive the signal from a UE. The cells can be controlled by different Node Bs.&lt;br /&gt;&lt;br /&gt;A UE can be connected simultaneously to two or more cells, providing a multi-path communication channel. User data is split and carried over several channels.&lt;br /&gt;Macro diversity has two advantages:&lt;br /&gt;1) Sending the data across multiple channels reduces the impact of interference in any one path, providing improved overall connection quality&lt;br /&gt;2) It allows seamless handover of the UE between currently connected cells (“soft” handover). In soft handover the UE always keeps at least one active connection to one of the cells, so&lt;br /&gt;the radio path does not have to be dropped and reconnected (as is required in GSM).&lt;br /&gt;The RNC manages the data splitting/combining and handover function across the multiple paths.&lt;br /&gt;The RNC performs a similar function to the Base Station Controller (BSC) in GSM networks, but has more intelligence.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-605544835464350832?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/605544835464350832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=605544835464350832' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/605544835464350832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/605544835464350832'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/reading-summary-of-umts-architecture.html' title='UMTS Architecture'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jeYO6OeMsY0/SgGcsNBdzhI/AAAAAAAAGEk/Ogk7zfg_lJg/s72-c/UMTS+Basic+Architecture.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-3073138228758550438</id><published>2009-05-06T05:58:00.000-07:00</published><updated>2009-05-20T01:15:00.042-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Telecom news'/><title type='text'>India's Biggest Roll Out of 3G to Boost Mobile Broadband</title><content type='html'>&lt;p&gt;Europe : Ericsson is using its WCDMA/HSPA technology to help BSNL, India's second largest telecom operator, achieve India's biggest simultaneous launch of 3G services to date, across 11 leading cities. The commercial launch of much awaited 3G services in India will allow consumers to experience enriched communications including rich voice, video and data services.&lt;br /&gt;&lt;br /&gt;The successful launch of 3G services in India's across multiple cities in Northern and Eastern parts of India brings 3G access to more than 15 million people and will help in driving quicker uptake of 3G services to a wide customer base.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;As part of its roll-out strategy, BSNL plans to launch 3G services using WCDMA/HSPA technology across more than 700 cities in the first phase. Ericsson is BSNL's strategic partner for 3G roll-out in over 400 of these cities.&lt;/p&gt;&lt;p&gt;for more detail:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.3g.co.uk/PR/March2009/Indias_Biggest_Roll_Out_of_3G_to_Boost_Mobile_Broadband.html"&gt;http://www.3g.co.uk/PR/March2009/Indias_Biggest_Roll_Out_of_3G_to_Boost_Mobile_Broadband.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-3073138228758550438?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/3073138228758550438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=3073138228758550438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3073138228758550438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/3073138228758550438'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/indias-biggest-roll-out-of-3g-to-boost.html' title='India&apos;s Biggest Roll Out of 3G to Boost Mobile Broadband'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-2150851004116659069</id><published>2009-05-06T02:11:00.000-07:00</published><updated>2009-05-12T03:51:07.371-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jokes'/><title type='text'>Sardar Jokes :-)</title><content type='html'>&lt;p&gt;&lt;span style="color:#660000;"&gt;Singh IS KING&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;Interviewer: what is your birth date? Sardar: 13th October Which year? Sardar: Oye ullu ke pathe _ _ _ EVERY YEAR&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Manager asked to sardar at an interview. Can you spell a word that has more than 15 letters in it? Sardar replied: -P-O-S-T-B-O-X.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After returning back from a foreign trip, sardar asked his wife, Do I look like a foreigner? Wife: No! Why? Sardar: In London a lady asked me Are you a foreigner?&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;One tourist from U.S.A. asked to Sardar: Any great man born in this  village??? Sardar: no sir, only small Babies!!!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Lecturer: write a note on Gandhi Jayanthi So Sardar writes, "Gandhi was a great man, but I don't know who is Jayanthi.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;When sardar was traveling with his wife in an auto, the driver  adjusted mirror. Sardar shouted, "You are trying to see my wife? Sit back. I will drive.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Interviewer: just imagine you are in 3rd floor, it caught fire  and how will you escape? Sardar: its simple. I will stop my imagination!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Boss: Where were you born?Sardar: Punjab..Boss: which part?Sardar: Kya which part? Whole body born in Punjab.&lt;/span&gt;                                                                        &lt;/p&gt;&lt;p&gt; 2 sardar were fixing a bomb in a car. Sardar 1: What would you do if the bombexplodes while fixing. Sardar 2: Dont worry, I have one more. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Sardar: What is the name of your car?Lady: I forgot the name, but is starts with "T".Sardar: Oye Kamaal ki gaadi hai, Tea se start hoti hai. Hamaara gaadi petrol se start hoti hai. &lt;/span&gt;&lt;/p&gt;&lt;span style="color:#660000;"&gt;&lt;p&gt;&lt;br /&gt;&lt;/span&gt;Sardar joined new job. 1st day he worked till late evening on the computer. Boss was happy and asked what you did till evening.Sardar: Keyboard alphabets were not in order, so I made it alright.&lt;br /&gt;&lt;span style="color:#660000;"&gt;Museum Administrator: That's a 500-year-old statue u've broken.Banta: Thanks God! I thought it was a new one.&lt;/span&gt;&lt;/p&gt;&lt;span style="color:#660000;"&gt;&lt;p&gt;&lt;br /&gt;&lt;/span&gt;At the scene of an accident a man was crying: O God! I have lost my hand, oh!Santa: Control yourself. Don't cry. See that man. He has lost his head. Is he crying? &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Banta: U cheated me.Shopkeeper: No, I sold a good radio to u.Banta: Radio label shows Made in Japan but radio says this is all India Radio! &lt;/span&gt;&lt;/p&gt;&lt;span style="color:#660000;"&gt;&lt;p&gt;&lt;br /&gt;&lt;/span&gt;In an interview, Interviewer: How does an electric motor run?Santa: Dhhuuuurrrrrrrrrr. .....Inteviewer shouts: Stop it.Santa: Dhhuurrrr dhup dhup dhup... &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Tourist: Whose skeleton is that?Santa: Tipu's skeleton.Tourist: Who's that smaller skeleton next to it?Santa: That was Tipu's skeleton when he was child &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-2150851004116659069?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/2150851004116659069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=2150851004116659069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2150851004116659069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2150851004116659069'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/sardar-jokes.html' title='Sardar Jokes :-)'/><author><name>Hiral Shah</name><uri>http://www.blogger.com/profile/01959054676276898182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9103055959089500483.post-2572487986846452693</id><published>2009-05-03T03:51:00.000-07:00</published><updated>2009-05-03T03:54:48.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gujarat'/><title type='text'>Be Very Proud to be a GUJARATI</title><content type='html'>Our State of GUJARAT,  Situated in western India and bordering Pakistan ,  Gujarat is among India 's most prosperous states.&lt;br /&gt;&lt;br /&gt;Its per capita GDP is 2.4 times the Indian average.&lt;br /&gt;&lt;br /&gt;Gujarat 's GDP growth rate is 10.6% and India can not achieve 8 percent Growth rate without Gujarat getting closer to 12% growth rate.&lt;br /&gt;&lt;br /&gt;If it was a nation it would have been 67th richest nation in the world above many European and Asian economies like Taiwan and Ukraine .&lt;br /&gt;&lt;br /&gt;Gujarat holds many records in India for economic development:&lt;br /&gt;20% of India 's Industrial Output&lt;br /&gt;80% of India 's Diamond Production&lt;br /&gt;9% of India 's Mineral Production&lt;br /&gt;50% of India 's Natural GasProduction&lt;br /&gt;54% of India 's Crude Oil Production&lt;br /&gt;22% of India 's exports&lt;br /&gt;24% of India 's textile production&lt;br /&gt;45% of India 's pharmaceuticalproducts&lt;br /&gt;35% of India 's Sponge Iron Production&lt;br /&gt;47% of India 's petrochemical Production&lt;br /&gt;&lt;br /&gt;The world's largest ship breaking yard is in Gujarat near Bhavnagar at Alang.&lt;br /&gt;&lt;br /&gt;Reliance Petroleum Limited, one of the group companies of Reliance Industries Limited founded by Dhirubhai Ambani operates the oil refinery at Jamnagar which is the world's largest grass roots refineries.&lt;br /&gt;&lt;br /&gt;Gujarat ranks first nationwide in gas-based thermal electricity generation with national market share of over 8% and second nationwide in nuclear electricity generation with national market share of over 1%.&lt;br /&gt;Over 20% of the S&amp;amp;P CNX 500 conglomerates have corporate offices in Gujarat&lt;br /&gt;&lt;br /&gt;Over 35% of the stock market wealth of India is with Gujarati People.&lt;br /&gt;&lt;br /&gt;In recent Forbes magazine list of 10 richest Indian people four are Gujarati - Mukesh Ambani, Anil Ambani, Azim Premji and Tulsi Tanti Over 60% of Indian Population in North America is Gujarati.&lt;br /&gt;&lt;br /&gt;An average income of a Gujarati family in North America is three times more than the average income of an American family.&lt;br /&gt;&lt;br /&gt;Gujarat is having the longest sea shore compared to any other Indian state&lt;br /&gt;&lt;br /&gt;Gujarat is having the highest no. of operating airports in India (Total 12).&lt;br /&gt;&lt;br /&gt;India 's 16% of Investment are from Gujarat ..&lt;br /&gt;&lt;br /&gt;Gujarat is having highest no. of vegetarian people compared to any other state in India ..&lt;br /&gt;&lt;br /&gt;The first ALL VEG PIZZA-HUT was opened in Ahmedabad&lt;br /&gt;&lt;br /&gt;Ahmedabad the commercial capital of Gujarat is the seventh largest city in India ..&lt;br /&gt;&lt;br /&gt;Surat is the fastest growing city in the world.&lt;br /&gt;&lt;br /&gt;Gandhinagar is the Greenest Capital City in whole Asia&lt;br /&gt;&lt;br /&gt;Indian Institute of Management, Ahmedabad(IIMA) is Asia's 1st and world's 45th ranked management college located in Ahmedabad, Gujarat .&lt;br /&gt;&lt;br /&gt;Gujarat is the safest state as the Crime rate of it is 8.2 which is the least in India even after considering 2002 communal riots, stated by India Today 2005 report.&lt;br /&gt;&lt;br /&gt;Gujarat is having least crime against women among all Indian states (excluding Goa ) where AP is 1st, Delhi is 2nd , Bihar is 3rd , Zarakhand is 4th and UP is 5th.&lt;br /&gt;&lt;br /&gt;Ahmedabad which is the seventh largest city in India is the lowest in crime rate among all Tier-I and Tier-II cities of India as per National Crime Records Bureau (NCRB) report.&lt;br /&gt;&lt;br /&gt;Ahmedabad is ranked 2nd in Real Estate - Ahead of Bangalore ,Chennai, Hyderabad , Mumbai &amp;amp; Delhi..&lt;br /&gt;&lt;br /&gt;Ahmedabad is ranked 3rd in Policy Initiatives - Ahead of Bangalore, Chennai, Calcutta , Mumbai &amp;amp; Delhi.&lt;br /&gt;&lt;br /&gt;Ahmedabad is ranked 4th in Manpower - Ahead of Bangalore ,Chennai, Mumbai &amp;amp; Delhi.&lt;br /&gt;&lt;br /&gt;Percent of man-days lost in Gujarat due to labor strike are lowest in country - just 0.52%&lt;br /&gt;&lt;br /&gt;It is the first state to implement the BOT law for encouraging private sector participation&lt;br /&gt;&lt;br /&gt;The first state to have to fully functional LNG terminal&lt;br /&gt;&lt;br /&gt;Gujarat has 33 approved SEZs&lt;br /&gt;&lt;br /&gt;Gujarat is the first state to interconnect 20 rivers&lt;br /&gt;&lt;br /&gt;It is the first state to provide uninterrupted 24hr 2 phase electricity to all villages&lt;br /&gt;&lt;br /&gt;It is the only state with statewide gas grid&lt;br /&gt;&lt;br /&gt;It is currently implementing statewide water distribution grid that will connect all 14,000 villages and all cities)&lt;br /&gt;&lt;br /&gt;It has largest e-governance network in Asia Pacific&lt;br /&gt;&lt;br /&gt;Its agricultural production has been increased four-fold in five years (from USD 2 Billion in 2001-2002 to 7.5 Billion in 2005-2006)&lt;br /&gt;&lt;br /&gt;In every corner of Gujarat , within the range of 25 KMs there is a development going on.&lt;br /&gt;&lt;br /&gt;Operation WHITE FLOOD (MILK) was initiated in Gujarat by Dr. Kurien which took India in 1998 (may be 1999) to become highest milk producer in the world.&lt;br /&gt;&lt;br /&gt;Consumption of GOLD in Gujarat is highest in India ..&lt;br /&gt;&lt;br /&gt;Largest number of immigration &amp;amp; emigration is done from Gujarat ..&lt;br /&gt;&lt;br /&gt;Also highest Numbers of passports are issued from Gujarat .&lt;br /&gt;&lt;br /&gt;Baroda gas project - bringing natural gas to every home - More than 35 years ago they installed pipelines to bring natural gas to every kitchen. I think that was an amazing feat.&lt;br /&gt;&lt;br /&gt;AMUL - NDDB &amp;amp; Dr. Kurian - another achievement for Gujarat - it was just fantastic to see how they collected milk early morning from every village in Gujarat . The villagers would line up at 3 in the morning at the milk collection centers!!! What a sight!&lt;br /&gt;&lt;br /&gt;According to a recent study by the Reserve Bank of India, the country's central bank, Gujarat stood first in the country with investments of US$17.8 billion in 2006-07 or 25.8% of India 's total investment of $69 billion during the year.The southern state of Andhra Pradesh stood a distant second having attracted $6.1 billion in 2006-07.&lt;br /&gt;&lt;br /&gt;Gujarat moved up from second place in 2005-06 having tripled its investments in a year..&lt;br /&gt;&lt;br /&gt;A report in Times of India describes the Gulf of Kutch as India 's ' Gulf of Riches '. Four top business houses - Reliance Industries, Essar Group, Adani Group and Tata Group, have invested about $34 billion along the Gulf of Kutch's 700-kilometer long coastline. Other corporate, which had invested over $3.26 billion since the 2001 earthquake have investments worth another $19.5 billion in the pipeline.&lt;br /&gt;&lt;br /&gt;Ten special economic zones (SEZs) near Jamnagar , a 4000-megawatt power project and five private shipyards are coming up. And massive expansion is being undertaken of the Mundra and Kandla ports.&lt;br /&gt;&lt;br /&gt;Gujarat's 41 ports handle 80% of India 's port traffic and 20% of its cargo. It is estimated that by 2015, Gujarat's ports will handle 39% of India 's cargo.&lt;br /&gt;&lt;br /&gt;Not only has Gujarat unseated Maharashtra as India 's number one investment destination but also, it is threatening to dislodge Mumbai, Maharashtra 's capital and the financial and business capital of India, as the trade gateway to the country.&lt;br /&gt;&lt;br /&gt;Mundra port where Indian Oil Corporation and Hindustan Petroleum are setting up giant oil storage capacities has already emerged as India 's largest private oil storage tank farm.&lt;br /&gt;&lt;br /&gt;Sixty percent of India 's coal imports enter via Mundra port. Mundra's importance is likely to soar further with the completion of mega power plants being set up by Adanis and Tatas.&lt;br /&gt;&lt;br /&gt;The volume of cargo handled by Mundra and Kandla ports alone has outstripped that handled by Mumbai's ports - the Mumbai Port Trust and the Jawaharlal Nehru Port Trust.&lt;br /&gt;&lt;br /&gt;And now Gujarat is nursing ambitions of dislodging Mumbai as India 's financial hub. Its government recently announced the setting up of an international financial services center, the Gujarat International Finance Tech-City with an investment outlay of $6 billion in Ahmedabad.&lt;br /&gt;&lt;br /&gt;Forbes Magazine published list of Top 20 Self-Made Business-Men from Asia . The list includes 6 men from India and out of 6 three are Gujarati - Tulsi Tanti, Gautam Adani and Uday Kotak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9103055959089500483-2572487986846452693?l=par-excellence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://par-excellence.blogspot.com/feeds/2572487986846452693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9103055959089500483&amp;postID=2572487986846452693' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2572487986846452693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9103055959089500483/posts/default/2572487986846452693'/><link rel='alternate' type='text/html' href='http://par-excellence.blogspot.com/2009/05/be-very-proud-to-be-gujarati.html' title='Be Very Prou
