<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUMMQno-cCp7ImA9WxBbEU8.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282</id><updated>2010-03-09T14:01:23.458+05:30</updated><title>OpenGuru.org</title><subtitle type="html">Me and My experiments..</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.openguru.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.openguru.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/open_guru" /><feedburner:info uri="open_guru" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUQBQ3kyfSp7ImA9WxBVFE8.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-4236933035286768199</id><published>2010-02-17T22:50:00.001+05:30</published><updated>2010-02-17T22:52:32.795+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-17T22:52:32.795+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="Downloads" /><category scheme="http://www.blogger.com/atom/ns#" term="Nokia Qt" /><category scheme="http://www.blogger.com/atom/ns#" term="Colors" /><category scheme="http://www.blogger.com/atom/ns#" term="Files" /><title>Dark Knight - My Qt Creator Dark Color scheme</title><content type="html">Here is my own Dark color scheme for Qt Creator. I have named it as Dark Knight. &lt;img alt=":P" src="http://i242.photobucket.com/albums/ff193/raghunayak/ae.gif" title=":P" /&gt;&lt;br /&gt;
&lt;br /&gt;
See the screenshot below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_83rFGRVzkps/S3wfV3LRx-I/AAAAAAAABuA/59esUd44C38/s1600-h/Qt%20Creator%20-%20Dark%20Knight.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/_83rFGRVzkps/S3wfV3LRx-I/AAAAAAAABuA/59esUd44C38/s640/Qt%20Creator%20-%20Dark%20Knight.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
To use this color scheme, &lt;a bitly="BITLY_PROCESSED" href="http://www.mediafire.com/?n0oydi5ddnk"&gt;download this XML file&lt;/a&gt; and follow following steps.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;How to install:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Goto the Qt Creator setting directory, which is&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Documents and Settings\ &amp;lt;&lt;i&gt;user name&amp;gt;&lt;/i&gt;&amp;nbsp;\Application Data\Nokia\qtcreator&lt;/code&gt; under Microsoft Windows XP (replace &amp;lt;&lt;i&gt;user name&lt;/i&gt;&amp;gt; with your login name)&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
~/.config/Nokia\qtcreator&lt;/code&gt; under Linux.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Goto the directory named styles.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Place the downloaded XML file in this directory.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;How to change the color scheme in Qt Creator:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Goto Fonts &amp;amp; Colors settings.&lt;br /&gt;
(To open, go through Tools-&amp;gt;Options-&amp;gt;Text Editor-&amp;gt;Font &amp;amp; Colors)&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Scroll down and select the new color scheme named Dark Knight.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Press OK.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Enjoy. &lt;img alt=":)" src="http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif" title=":)" /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_83rFGRVzkps/S3wdG-4f-ZI/AAAAAAAABt8/OXOZ7ldrR2M/s800/Qt%20Creator%20-%20Color%20Scheme.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://3.bp.blogspot.com/_83rFGRVzkps/S3wdG-4f-ZI/AAAAAAAABt8/OXOZ7ldrR2M/s400/Qt%20Creator%20-%20Color%20Scheme.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Note:&lt;/b&gt; As Qt Creator is in active development, above mentioned steps may not work with future version of Qt Creator.&lt;br /&gt;
&lt;br /&gt;
I hope you people like it. Suggestions &amp;amp; comments are welcome.&lt;br /&gt;
&lt;br /&gt;
Technorati tags: &lt;a bitly="BITLY_PROCESSED" class="tag" href="http://www.technorati.com/tag/OpenGuru.org" rel="tag"&gt;OpenGuru.org weblog&lt;/a&gt;, &lt;a bitly="BITLY_PROCESSED" class="tag" href="http://www.technorati.com/tag/Qt+Creator" rel="tag"&gt;Qt Creator&lt;/a&gt;, &lt;a bitly="BITLY_PROCESSED" class="tag" href="http://www.technorati.com/tag/Dark+Color+Scheme" rel="tag"&gt;Dark Color Scheme&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-4236933035286768199?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h_5wCA_ourOqRv3qkwUuAK7O3iM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h_5wCA_ourOqRv3qkwUuAK7O3iM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h_5wCA_ourOqRv3qkwUuAK7O3iM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h_5wCA_ourOqRv3qkwUuAK7O3iM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/KgO78mTX6Y0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/4236933035286768199/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=4236933035286768199&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/4236933035286768199?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/4236933035286768199?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/KgO78mTX6Y0/dark-knight-my-qt-creator-dark-color.html" title="Dark Knight - My Qt Creator Dark Color scheme" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_83rFGRVzkps/S3wfV3LRx-I/AAAAAAAABuA/59esUd44C38/s72-c/Qt%20Creator%20-%20Dark%20Knight.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:point>12.971606 77.594376</georss:point><feedburner:origLink>http://www.openguru.org/2010/02/dark-knight-my-qt-creator-dark-color.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMMQnk_eip7ImA9WxBbEU8.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-9074810441439182212</id><published>2010-02-12T12:05:00.039+05:30</published><updated>2010-03-09T14:01:23.742+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-09T14:01:23.742+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Install" /><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Unix" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>How To: Compile MICO-CORBA in SUN Solaris</title><content type="html">Here are the steps to download, build and install the &lt;a href="http://www.mico.org/"&gt;MICO COBRA&lt;/a&gt; under SUN Solaris machine.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href=http://www.mico.org/down.html&gt;Download MICO CORBA&lt;/a&gt;.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Open the terminal window in the directory where you kept the downloaded archive file.&lt;br /&gt;
&lt;li&gt;Extract the content of the downloaded archive.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
gzip -dc mico-*.tar.gz | tar -xf –&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
And if you are using GNU tar utility (if not installed already, get it from &lt;a href=http://www.sunfreeware.com/&gt;SUN Freeware website&lt;/a&gt;.) then&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
tar -zxvf mico-*.tar.gz&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;Run the configure script.&lt;br /&gt;
&lt;br /&gt;
You can set many parameters through the command line arguments to the configure script. Such parameters are, install directory, Qt directory etc. Check INSTALL.txt file for more information on the list of command line arguments.&lt;br /&gt;
&lt;br /&gt;
Here are my arguments to the configure script&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./configure --with-qt=/sect/package/qt/ --prefix=/sect/package/mico-corba/&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Here I have enabled the support for Qt (which is installed in =/sect/package/qt/ directory) and I have indicated that I am planning to install MICO into /sect/package/mico-corba directory.&lt;br /&gt;
&lt;br /&gt;
Read INSTALL.txt for more information on this.&lt;br /&gt;
&lt;br /&gt;
Note: When I used one of configure script argument named --enable-final switch, I ended with compilation errors under Solaris. If you are also getting compilation errors, Check if you have used this switch. As per document this switch won’t work under HP-UX. I guess this is applicable to all Unices.&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Run the make tool.&lt;br /&gt;
Issue make command for this.&lt;br /&gt;
&lt;code&gt;make&lt;/code&gt;&lt;br /&gt;
or if you have GNU make installed (or install it from &lt;a href=http://www.sunfreeware.com/&gt;SUN Freeware website&lt;/a&gt;)&lt;br /&gt;
&lt;code&gt;gmake&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Install the MICO CORBA&lt;br /&gt;
Issue the following command in terminal to install MICO to configured directory(if any set while configure script) or to the default directory.&lt;br /&gt;
&lt;code&gt;make install&lt;/code&gt;&lt;br /&gt;
or&lt;br /&gt;
&lt;code&gt;gmake install&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Update the environmental variables to include MICO install directory.&lt;br /&gt;
Before you can compile, link and execute your first CORBA application, you need to setup the environmental variables correctly.&lt;br /&gt;
&lt;br /&gt;
Add /sect/package/mico-corba to your PATH environment variable.&lt;br /&gt;
In Bash&lt;br /&gt;
&lt;code&gt;PATH=$pATH:/sect/pckage/mico-corba/bin&lt;/code&gt;&lt;br /&gt;
And in csh&lt;br /&gt;
&lt;code&gt;setenv PATH /sect/package/mico-corba/bin:$PATH&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Also modify LD_LIBRARY_PATH to properly link with MICO libraries.&lt;br /&gt;
&lt;code&gt;LD_LIBRARY_PATH=$LD_LIBRARY_PAT:/sect/package/mico-corba/lib&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
If required modify the Bash Profile file to set these environment variable at start-up.&lt;br /&gt;
&lt;br /&gt;
Or you can run Solaris &lt;b&gt;crle&lt;/b&gt; command once and add MICO lib directory in it.(Recommended method)&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;crle -u -l /sect/package/mico-corba/lib&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;br /&gt;
That's all.&lt;br /&gt;
&lt;br /&gt;
Please leave a comment if this post was useful to you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-9074810441439182212?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C40U0RWHgJpIa_Z09Y8im0Nup-M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C40U0RWHgJpIa_Z09Y8im0Nup-M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C40U0RWHgJpIa_Z09Y8im0Nup-M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C40U0RWHgJpIa_Z09Y8im0Nup-M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/5G8kTohEIrk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/9074810441439182212/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=9074810441439182212&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/9074810441439182212?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/9074810441439182212?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/5G8kTohEIrk/how-to-compile-mico-corba-in-sun.html" title="How To: Compile MICO-CORBA in SUN Solaris" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:point>12.971606 77.594376</georss:point><feedburner:origLink>http://www.openguru.org/2010/02/how-to-compile-mico-corba-in-sun.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08FSXc5eSp7ImA9WxBWEEw.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-634837344037693635</id><published>2009-11-28T16:21:00.029+05:30</published><updated>2010-02-01T13:40:18.921+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-01T13:40:18.921+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programs" /><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="Applications Qt" /><title>Qt: The best way to set the Application version</title><content type="html">Whenever we develop any application one of the basic stuff which we need to decide is the application version number. Historically the application version number format is one of the hot topics where many lengthy wars/debates have happened.&lt;br /&gt;
&lt;br /&gt;
This post is NOT about the application version number format to use, instead in this post I would be concentrating how to set and use the application version number information in a Qt project.&lt;br /&gt;
&lt;br /&gt;
If this post is on any use to you, please leave a comment. &lt;img src="http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif" alt=":)" title=":)" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;First way:&lt;/i&gt; Defining the version information within the application source code&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The application version can be set as through the string constant or preprocessor Macro defined in some header file.&lt;br /&gt;
&lt;br /&gt;
I have used this method many times before.&lt;br /&gt;
&lt;br /&gt;
Also, here once you create the QApplication object, you can set this application version to QApplication object and ignore this constant/Macro defined from then on. Whenever you need the application version you can directly get it from qApp global QApplication object.&lt;br /&gt;
&lt;br /&gt;
You can use following APIs&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;QString applicationVersion()&lt;/b&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;void setApplicationVersion(const QString &amp; version)&lt;/b&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;i&gt;Second way:&lt;/i&gt; Defining the version information within the Qt project file.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You can use Qt QMake Macro named VERSION to define the Application version.&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
VERSION = 1.0&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
The good thing with this QMake Macro is that, it automatically creates the .rc file under Microsoft Windows and you can see the application version number from Windows Explorer by right clicking on the executable.&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.zooomr.com/photos/openguru/8594724/" title="Photo Sharing"&gt;&lt;img src="http://static.zooomr.com/images/8594724_bbe96f113d_o.png" width="387" height="527" alt="AppVersion" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
What I do is that, I use preprocessor Macro defined through Qt project file to pass application version number to code.&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# The application version&lt;br /&gt;
VERSION = 1.0&lt;br /&gt;
&lt;br /&gt;
# Define the preprocessor macro to get the application version in our application.&lt;br /&gt;
DEFINES += APP_VERSION=\\\"$$VERSION\\\"&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Note: &lt;b&gt;\\\"&lt;/b&gt; is important! Without them, the Macro is taken as a double constant instead of string constant.&lt;br /&gt;
&lt;br /&gt;
Now use the Macro APP_VERSION in your code just like any other preprocessor Macro.&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&lt;pre&gt;    QApplication app(argc, argv);

    // Setting the Application version
    app.setApplicationVersion(APP_VERSION);
&lt;/pre&gt;&lt;br /&gt;
Similarly you can set the Application date also.&lt;br /&gt;
&lt;br /&gt;
You can browse the sample Qt project @ My &lt;a href="http://code.google.com/p/nayak/source/browse/#svn/trunk/sample_programs/Qt/AppVersion"&gt;Google code page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Technorati tags: &lt;a class="tag" href="http://www.technorati.com/tag/OpenGuru.org" rel="tag"&gt;OpenGuru.org weblog&lt;/a&gt;, &lt;a class="tag" href="http://www.technorati.com/tag/Qt" rel="tag"&gt;Qt&lt;/a&gt;, &lt;a class="tag" href="http://www.technorati.com/tag/Application+version" rel="tag"&gt;Application version&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-634837344037693635?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VxA3isDl8lWSM1SOVz-rRhGIygY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VxA3isDl8lWSM1SOVz-rRhGIygY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VxA3isDl8lWSM1SOVz-rRhGIygY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VxA3isDl8lWSM1SOVz-rRhGIygY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/uylongPj5LU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/634837344037693635/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=634837344037693635&amp;isPopup=true" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/634837344037693635?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/634837344037693635?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/uylongPj5LU/blog-post.html" title="Qt: The best way to set the Application version" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><georss:point>12.971606 77.594376</georss:point><feedburner:origLink>http://www.openguru.org/2009/11/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQMQHw5eip7ImA9WxNUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-3154545835288417819</id><published>2009-10-28T23:24:00.002+05:30</published><updated>2009-11-01T23:13:01.222+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-01T23:13:01.222+05:30</app:edited><title>C++ Gyan of the day: Friend class and Inheritance</title><content type="html">Check if the following code snippet is proper.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- Generator: GNU source-highlight 2.11.1
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite --&gt;&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;&lt;span class="comment"&gt;/*&lt;/span&gt;
&lt;span class="comment"&gt; * Copyright (C) 2009 Raghavendra Nayak&lt;/span&gt;
&lt;span class="comment"&gt; *&lt;/span&gt;
&lt;span class="comment"&gt; * This program is free software: you can redistribute it and/or modify&lt;/span&gt;
&lt;span class="comment"&gt; * it under the terms of the GNU General Public License as published by&lt;/span&gt;
&lt;span class="comment"&gt; * the Free Software Foundation, either version 3 of the License, or&lt;/span&gt;
&lt;span class="comment"&gt; * (at your option) any later version.&lt;/span&gt;
&lt;span class="comment"&gt; *&lt;/span&gt;
&lt;span class="comment"&gt; * This program is distributed in the hope that it will be useful,&lt;/span&gt;
&lt;span class="comment"&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;
&lt;span class="comment"&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;/span&gt;
&lt;span class="comment"&gt; * GNU General Public License for more details.&lt;/span&gt;
&lt;span class="comment"&gt; *&lt;/span&gt;
&lt;span class="comment"&gt; * You should have received a copy of the GNU General Public License&lt;/span&gt;
&lt;span class="comment"&gt; * along with this program.  If not, see &lt;/span&gt;&lt;span class="url"&gt;&amp;lt;http://www.gnu.org/licenses/&amp;gt;&lt;/span&gt;&lt;span class="comment"&gt;.&lt;/span&gt;
&lt;span class="comment"&gt; */&lt;/span&gt;

&lt;span class="comment"&gt;// Program to explain the Friend class and inheritance&lt;/span&gt;

&lt;span class="preproc"&gt;#include&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="string"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;
&lt;span class="preproc"&gt;#include&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="string"&gt;&amp;lt;cstdlib&amp;gt;&lt;/span&gt;

&lt;span class="comment"&gt;////////////////////////////////////////////////////////////////////////////////&lt;/span&gt;

&lt;span class="keyword"&gt;class&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="classname"&gt;someClass&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span class="symbol"&gt;:&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="type"&gt;void&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="function"&gt;printData&lt;/span&gt;&lt;span class="symbol"&gt;()&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="normal"&gt;        std&lt;/span&gt;&lt;span class="symbol"&gt;::&lt;/span&gt;&lt;span class="normal"&gt;cout&lt;/span&gt;&lt;span class="symbol"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"The value of m_data is "&lt;/span&gt;&lt;span class="symbol"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="normal"&gt;m_data&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="cbracket"&gt;}&lt;/span&gt;
&lt;span class="keyword"&gt;private&lt;/span&gt;&lt;span class="symbol"&gt;:&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt;&lt;span class="normal"&gt; m_data&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;

&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="comment"&gt;// declare BaseClass as the friend class to this class&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="keyword"&gt;friend&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="keyword"&gt;class&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="classname"&gt;BaseClass&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="cbracket"&gt;}&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;

&lt;span class="comment"&gt;////////////////////////////////////////////////////////////////////////////////&lt;/span&gt;

&lt;span class="keyword"&gt;class&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="classname"&gt;BaseClass&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span class="symbol"&gt;:&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="type"&gt;@brief&lt;/span&gt;&lt;span class="comment"&gt; The BaseClass constructor.&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="function"&gt;BaseClass&lt;/span&gt;&lt;span class="symbol"&gt;()&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="normal"&gt;        std&lt;/span&gt;&lt;span class="symbol"&gt;::&lt;/span&gt;&lt;span class="normal"&gt;cout&lt;/span&gt;&lt;span class="symbol"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"In BaseClass constructor.&lt;/span&gt;&lt;span class="specialchar"&gt;\n&lt;/span&gt;&lt;span class="string"&gt;"&lt;/span&gt;
&lt;span class="normal"&gt;                 &lt;/span&gt;&lt;span class="symbol"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"Setting the m_data to 10.&lt;/span&gt;&lt;span class="specialchar"&gt;\n&lt;/span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="normal"&gt;        &lt;/span&gt;&lt;span class="comment"&gt;// set m_data to 10&lt;/span&gt;
&lt;span class="normal"&gt;        m_someClassObject&lt;/span&gt;&lt;span class="symbol"&gt;.&lt;/span&gt;&lt;span class="normal"&gt;m_data &lt;/span&gt;&lt;span class="symbol"&gt;=&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="number"&gt;10&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="normal"&gt;        &lt;/span&gt;&lt;span class="comment"&gt;// print the set value using printData method.&lt;/span&gt;
&lt;span class="normal"&gt;        m_someClassObject&lt;/span&gt;&lt;span class="symbol"&gt;.&lt;/span&gt;&lt;span class="function"&gt;printData&lt;/span&gt;&lt;span class="symbol"&gt;();&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="cbracket"&gt;}&lt;/span&gt;
&lt;span class="keyword"&gt;protected&lt;/span&gt;&lt;span class="symbol"&gt;:&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="usertype"&gt;someClass&lt;/span&gt;&lt;span class="normal"&gt; m_someClassObject&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="cbracket"&gt;}&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;

&lt;span class="comment"&gt;////////////////////////////////////////////////////////////////////////////////&lt;/span&gt;

&lt;span class="keyword"&gt;class&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="classname"&gt;DerivedClass&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="symbol"&gt;:&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span class="normal"&gt; BaseClass &lt;/span&gt;&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span class="symbol"&gt;:&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="comment"&gt;/// &lt;/span&gt;&lt;span class="type"&gt;@brief&lt;/span&gt;&lt;span class="comment"&gt; The DerivedClass constructor.&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="function"&gt;DerivedClass&lt;/span&gt;&lt;span class="symbol"&gt;()&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="normal"&gt;        std&lt;/span&gt;&lt;span class="symbol"&gt;::&lt;/span&gt;&lt;span class="normal"&gt;cout&lt;/span&gt;&lt;span class="symbol"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"In DerivedClass constructor.&lt;/span&gt;&lt;span class="specialchar"&gt;\n&lt;/span&gt;&lt;span class="string"&gt;"&lt;/span&gt;
&lt;span class="normal"&gt;                 &lt;/span&gt;&lt;span class="symbol"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="string"&gt;"Setting the m_data to 20.&lt;/span&gt;&lt;span class="specialchar"&gt;\n&lt;/span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="normal"&gt;        &lt;/span&gt;&lt;span class="comment"&gt;// set m_data to 20&lt;/span&gt;
&lt;span class="normal"&gt;        m_someClassObject&lt;/span&gt;&lt;span class="symbol"&gt;.&lt;/span&gt;&lt;span class="normal"&gt;m_data &lt;/span&gt;&lt;span class="symbol"&gt;=&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="number"&gt;20&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="normal"&gt;        &lt;/span&gt;&lt;span class="comment"&gt;// print the set value using printData method.&lt;/span&gt;
&lt;span class="normal"&gt;        m_someClassObject&lt;/span&gt;&lt;span class="symbol"&gt;.&lt;/span&gt;&lt;span class="function"&gt;printData&lt;/span&gt;&lt;span class="symbol"&gt;();&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="cbracket"&gt;}&lt;/span&gt;
&lt;span class="cbracket"&gt;}&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;

&lt;span class="type"&gt;int&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="function"&gt;main&lt;/span&gt;&lt;span class="symbol"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="comment"&gt;/*argc*/&lt;/span&gt;&lt;span class="symbol"&gt;,&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="type"&gt;char&lt;/span&gt;&lt;span class="normal"&gt; &lt;/span&gt;&lt;span class="symbol"&gt;*&lt;/span&gt;&lt;span class="comment"&gt;/*argv*/&lt;/span&gt;&lt;span class="symbol"&gt;[])&lt;/span&gt;
&lt;span class="cbracket"&gt;{&lt;/span&gt;
&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="usertype"&gt;DerivedClass&lt;/span&gt;&lt;span class="normal"&gt; derivedClassObject&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;

&lt;span class="normal"&gt;    &lt;/span&gt;&lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span class="normal"&gt; EXIT_SUCCESS&lt;/span&gt;&lt;span class="symbol"&gt;;&lt;/span&gt;
&lt;span class="cbracket"&gt;}&lt;/span&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;br /&gt;
If you try to compile this, you will end up with compilation errors. the reason is in the comments.&lt;br /&gt;
&lt;br /&gt;
Technorati tags: &lt;a class="tag" href="http://www.technorati.com/tag/OpenGuru.org" rel="tag"&gt;OpenGuru.org weblog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-3154545835288417819?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O8GilgVD_g9h4BOE-ojxqywehOQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O8GilgVD_g9h4BOE-ojxqywehOQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O8GilgVD_g9h4BOE-ojxqywehOQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O8GilgVD_g9h4BOE-ojxqywehOQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/R3eg-R_jZEo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/3154545835288417819/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=3154545835288417819&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3154545835288417819?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3154545835288417819?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/R3eg-R_jZEo/c-gyan-of-day-friend-class-and.html" title="C++ Gyan of the day: Friend class and Inheritance" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.openguru.org/2009/10/c-gyan-of-day-friend-class-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04DRn45fCp7ImA9WxBWEEw.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-3466290384620081660</id><published>2009-06-18T22:21:00.001+05:30</published><updated>2010-02-01T13:42:57.024+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-01T13:42:57.024+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal New" /><category scheme="http://www.blogger.com/atom/ns#" term="Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Rants" /><category scheme="http://www.blogger.com/atom/ns#" term="Bugs" /><title>A big sigh of relief</title><content type="html">After 1.5 years, finally launchpad team has fixed the bug with launchpad which I had filed in launchpad itself.&lt;br /&gt;
&lt;br /&gt;
Well, I cannot explain the feeling of relief you get, when you finally see the bug reported by you being marked as fixed!!&lt;br /&gt;
&lt;br /&gt;
Time for a nice dinner and some sleep.. &lt;img src="http://i242.photobucket.com/albums/ff193/raghunayak/az.gif" alt="drink!" title="drink!" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Links:&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://bugs.launchpad.net/launchpad-registry/+bug/155334"&gt;Launchpad Bug report&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-3466290384620081660?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DYcv4oAypo96BLj8R0xeqHoX2Js/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DYcv4oAypo96BLj8R0xeqHoX2Js/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DYcv4oAypo96BLj8R0xeqHoX2Js/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DYcv4oAypo96BLj8R0xeqHoX2Js/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/y5kVgpTCrnk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/3466290384620081660/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=3466290384620081660&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3466290384620081660?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3466290384620081660?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/y5kVgpTCrnk/big-sigh-of-relief.html" title="A big sigh of relief" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:point>12.971606 77.594376</georss:point><feedburner:origLink>http://www.openguru.org/2009/06/big-sigh-of-relief.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABQn8zeCp7ImA9WxNaFE0.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-5814124232528462188</id><published>2009-05-12T23:17:00.002+05:30</published><updated>2009-11-28T16:25:53.180+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T16:25:53.180+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample programs" /><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="FSF" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="programs" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Source File" /><category scheme="http://www.blogger.com/atom/ns#" term="GPL" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="Free Softwares" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithms" /><title>C Language: Program to check given character string for palindrome</title><content type="html">A palindrome is a word, phrase, number or other sequence of units that can be read the same way in either direction. Eg: Katak, 121 etc&lt;br /&gt;
&lt;br /&gt;
Following C program shows the simple way check, if the given character string is a palindrome or not.&lt;br /&gt;
&lt;br /&gt;
Following code is available under GNU General Public License v3 or above.&lt;br /&gt;
&lt;pre&gt;&lt;span class="comment"&gt;/*
 * Copyright (c) 2009 Raghavendra Nayak
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

/*
 * C program to reverse given string, and to check whether it is a palindrome.
 */&lt;/span&gt;&lt;span class="pre"&gt;

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
&lt;/span&gt;&lt;span class="comment"&gt;
/**
 * @brief function to return the given string length.
 * @param[in] string the input string.
 * @return the string length.
 */&lt;/span&gt;&lt;span class="type"&gt;
unsigned int&lt;/span&gt; get_string_length&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;string&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="type"&gt;
    int&lt;/span&gt; string_length&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;

    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; string&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; &amp;amp;&amp;amp;&lt;/span&gt; string&lt;span class="operator"&gt;[&lt;/span&gt;i&lt;span class="operator"&gt;] !=&lt;/span&gt;&lt;span class="char"&gt; '\n'&lt;/span&gt;&lt;span class="operator"&gt;; ++&lt;/span&gt;i&lt;span class="operator"&gt;)
        ++&lt;/span&gt;string_length&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&gt;
    return&lt;/span&gt; string_length&lt;span class="operator"&gt;;
}&lt;/span&gt;&lt;span class="comment"&gt;

/**
 * @brief function to reverse the given string.
 * @param[in] string the input string.
 * @param[out] rev_string the reversed string would be placed in this variable.
 * @return none.
 */&lt;/span&gt;&lt;span class="type"&gt;
void&lt;/span&gt; reverse&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;in_string&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;rev_string&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; j&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;
    unsigned int&lt;/span&gt; length&lt;span class="operator"&gt;;&lt;/span&gt;

    length&lt;span class="operator"&gt; =&lt;/span&gt; get_string_length&lt;span class="operator"&gt;(&lt;/span&gt;in_string&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;

    for&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;i&lt;span class="operator"&gt; =&lt;/span&gt; length&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; j&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;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;, ++&lt;/span&gt;j&lt;span class="operator"&gt;)&lt;/span&gt;
        rev_string&lt;span class="operator"&gt;[&lt;/span&gt;j&lt;span class="operator"&gt;] =&lt;/span&gt; in_string&lt;span class="operator"&gt;[&lt;/span&gt;i&lt;span class="operator"&gt;];&lt;/span&gt;&lt;span class="comment"&gt;

    /* mark the end of string */&lt;/span&gt;
    rev_string&lt;span class="operator"&gt;[&lt;/span&gt;j&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="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="keyword"&gt;
    const&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; max_size&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="int"&gt; 100&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;
    int&lt;/span&gt; string_length&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="type"&gt;

    char&lt;/span&gt; string&lt;span class="operator"&gt;[&lt;/span&gt;max_size&lt;span class="operator"&gt;];&lt;/span&gt;&lt;span class="type"&gt;
    char&lt;/span&gt; reverse_string&lt;span class="operator"&gt;[&lt;/span&gt;max_size&lt;span class="operator"&gt;];&lt;/span&gt;

    printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nPlease enter input string: "&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;
    /* Note: we are not using gets, because gets is deprecated and can be
       dangerous. */&lt;/span&gt;
    fgets&lt;span class="operator"&gt;(&lt;/span&gt;string&lt;span class="operator"&gt;,&lt;/span&gt; max_size&lt;span class="operator"&gt;,&lt;/span&gt; stdin&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;

    /* remove any new line from input string,
       if fgets has put '\n' at the end of string */&lt;/span&gt;
    string_length&lt;span class="operator"&gt; =&lt;/span&gt; get_string_length&lt;span class="operator"&gt;(&lt;/span&gt;string&lt;span class="operator"&gt;);&lt;/span&gt;
    string&lt;span class="operator"&gt;[&lt;/span&gt;string_length&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;

    /* get the reversed string */&lt;/span&gt;
    reverse&lt;span class="operator"&gt;(&lt;/span&gt;string&lt;span class="operator"&gt;,&lt;/span&gt; reverse_string&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="comment"&gt;

    /* now compare */&lt;/span&gt;&lt;span class="flow"&gt;
    if&lt;/span&gt;&lt;span class="operator"&gt; (!&lt;/span&gt;strcmp&lt;span class="operator"&gt;(&lt;/span&gt;string&lt;span class="operator"&gt;,&lt;/span&gt; reverse_string&lt;span class="operator"&gt;)) {&lt;/span&gt;
        printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nEntered string = %s, reversed string = %s."
               "\n%s = %s, hence %s is a palindrome.\n"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;
               string&lt;span class="operator"&gt;,&lt;/span&gt; reverse_string&lt;span class="operator"&gt;,&lt;/span&gt; string&lt;span class="operator"&gt;,&lt;/span&gt; reverse_string&lt;span class="operator"&gt;,&lt;/span&gt; string&lt;span class="operator"&gt;);
    }&lt;/span&gt;&lt;span class="flow"&gt; else&lt;/span&gt;&lt;span class="operator"&gt; {&lt;/span&gt;
        printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nEntered string = %s, reversed string = %s."
               "\n%s != %s, hence %s is not a palindrome.\n"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt;
               string&lt;span class="operator"&gt;,&lt;/span&gt; reverse_string&lt;span class="operator"&gt;,&lt;/span&gt; string&lt;span class="operator"&gt;,&lt;/span&gt; reverse_string&lt;span class="operator"&gt;,&lt;/span&gt; string&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;/pre&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Links:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Palindrome"&gt;Wikipedia article on palindrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/nayak/source/browse/#svn/trunk/sample_programs/c/c_lab"&gt;Browse this source code at Google Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-5814124232528462188?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PYzMA18BnnMmEVm2laG9j5Q8Z10/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PYzMA18BnnMmEVm2laG9j5Q8Z10/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PYzMA18BnnMmEVm2laG9j5Q8Z10/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PYzMA18BnnMmEVm2laG9j5Q8Z10/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/uewA4jYGexU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/5814124232528462188/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=5814124232528462188&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5814124232528462188?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5814124232528462188?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/uewA4jYGexU/c-language-program-to-check-given.html" title="C Language: Program to check given character string for palindrome" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><georss:point>12.971606 77.594376</georss:point><feedburner:origLink>http://www.openguru.org/2009/05/c-language-program-to-check-given.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04HQHoyfip7ImA9WxJTEkg.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-8530276024167845588</id><published>2009-04-19T16:16:00.000+05:30</published><updated>2009-04-20T23:55:31.496+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-20T23:55:31.496+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Hacks" /><category scheme="http://www.blogger.com/atom/ns#" term="SCM" /><category scheme="http://www.blogger.com/atom/ns#" term="SVN" /><category scheme="http://www.blogger.com/atom/ns#" term="GIT" /><title>How To: Create your own local SVN repository in GNU/Linux</title><content type="html">This article tell you about creating your own local SVN repository in your GNU/Linux box.&lt;br /&gt;
&lt;br /&gt;
Even though I personally like git, I like the SVN's idea of having all your code safe somewhere in a remote server!&lt;br /&gt;
&lt;br /&gt;
I personally do a lot of coding, and several times I have lost my precious programs/codes due to some stupid mistakes I did or because I don't backup my code very often. Keeping a plain backup your code is a pain, having you to maintain several copies of them, based on their version.&lt;br /&gt;
&lt;br /&gt;
Hence, several times I felt that, oh God, if at all I had my own SVN server somewhere?&lt;br /&gt;
&lt;br /&gt;
So, today finally tried to create my own SVN server, and voila, in less than 5 minutes, my own SVN server was up and running! I never had thought that creating your own SVN server was a such easy task.&lt;br /&gt;
&lt;br /&gt;
If you people are looking for the same, this article is for you!&lt;br /&gt;
&lt;br /&gt;
Here is a step by step procedure to create your own SVN server.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;Install SVN package.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You need to have subversion package installed.&lt;br /&gt;
&lt;br /&gt;
If you don't have it, install it using command&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sudo apt-get install subversion&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Create a SVN repository.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Next step is to create a SVN repository. First decide where you want to store your repository data? I kept my SVN repository in my home directory, so that it also gets backed up with my home directory backup. So, You can also do the same or store your SVN repository in any other place of your choice.&lt;br /&gt;
&lt;br /&gt;
Use following command to create your own SVN repository in your home directory.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;svnadmin create ~/my_svn_repo&lt;/code&gt;&lt;br /&gt;
This command will create a directory named &lt;i&gt;'my_svn_repo in'&lt;/i&gt; your home directory, with SVN's repository data inside it.&lt;br /&gt;
&lt;br /&gt;
If you want to store your SVN repository somewhere else, replace&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;'~/my_svn_repo'&lt;/code&gt; &lt;br /&gt;
with your selected directory path.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Change the SVN configuration for repository access.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You need to configure the SVN to tell it about the read and write access to your repository.&lt;br /&gt;
&lt;br /&gt;
For this goto &lt;em&gt;'conf'&lt;/em&gt; directory present inside your SVN repository directory.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;cd ~/my_svn_repo/conf&lt;/code&gt;&lt;br /&gt;
now open the file named &lt;i&gt;svnserve.conf&lt;/i&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;vi svnserve.conf&lt;/code&gt; &lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;gedit svnserve.conf&lt;/code&gt;&lt;br /&gt;
and edit the file.&lt;br /&gt;
&lt;br /&gt;
un-comment following lines (remove # from the beginning of the line.)&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;anon-access = read&lt;br /&gt;
auth-access = write&lt;/code&gt;&lt;br /&gt;
These lines tell about the read and write access to your SVN repository. &lt;em&gt;'anon-access = read'&lt;/em&gt; means anonymous users can read your SVN data. &lt;br /&gt;
&lt;br /&gt;
The possible values are 'read', 'write' and 'none'. The default value 'read' should be OK, as its a local repository. However, if your machine is in a network, you may want to change it to 'none' . ie;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;anon-access = none&lt;/code&gt;&lt;br /&gt;
The second line &lt;em&gt;'auth-access = write'&lt;/em&gt; tells about the access rights of the authorized users. The default value of &lt;em&gt;'write'&lt;/em&gt; should be OK and it means authorized users can read/write back the data to the SVN repository.&lt;br /&gt;
&lt;br /&gt;
Below are some possible configurations;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The default configuration&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;# anonymous users can only read the repository&lt;br /&gt;
anon-access = read&lt;br /&gt;
&lt;br /&gt;
# authenticated users can both read and write&lt;br /&gt;
auth-access = write&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Restricted configuration&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;# anonymous users aren't allowed&lt;br /&gt;
anon-access = none&lt;br /&gt;
&lt;br /&gt;
# authenticated users can both read and write&lt;br /&gt;
auth-access = write&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure the Authorization.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
un-comment following lines from the &lt;em&gt;'svnserve.conf'&lt;/em&gt; file opened in previous step.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;password-db = passwd&lt;/code&gt;&lt;br /&gt;
This tells the SVN to read the user name and password from the file named &lt;em&gt;'passwd'&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Setup the username and password.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Open the file name &lt;em&gt;'passwd'&lt;/em&gt; present inside &lt;em&gt;'conf'&lt;/em&gt; directory of your SVN repository directory.&lt;br /&gt;
&lt;br /&gt;
Now un-comment the following lines.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;harry = harryssecret&lt;br /&gt;
sally = sallyssecret&lt;/code&gt;&lt;br /&gt;
This line tells the authorized user's name ans password. You can also add your username and password to this list. like&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;raghu = mypassword&lt;/code&gt; &lt;br /&gt;
or use existing username and password such as &lt;em&gt;'sally'&lt;/em&gt; and &lt;em&gt;&lt;del datetime="2009-04-19T09:04:59+00:00"&gt;'billy'&lt;/del&gt;&lt;/em&gt;, oops.. &lt;em&gt;'harry'&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start the daemon process.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Now enter following command to start the SVN daemon process.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;svnserve -d --root ~/my_svn_repo/&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;that's it. you can now checkout your own local SVN repository like any other SVN repository. Just use following URL to access your local SVN repository.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;svn://localhost&lt;/code&gt;&lt;br /&gt;
example: &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;svn co svn://localhost my_svn_works&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Creating SVN directory structure:&lt;/strong&gt;&lt;em&gt;(optional)&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Like the SVN's general convention, I recommend you to create 3 different directories. They are &lt;em&gt;trunk&lt;/em&gt;, &lt;em&gt;tags&lt;/em&gt; and &lt;em&gt;branches&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
use following command to create them&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;svn mkdir branches tags trunk&lt;/code&gt;&lt;br /&gt;
now commit them to SVN.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;svn commit&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Making your SVN daemon process to start automatically with system.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The steps given above will start the daemon process, however if you restart your system, again you need to manually start the daemon process. Otherwise you can add a script to start the daemon process automatically with your system.&lt;br /&gt;
&lt;br /&gt;
For this, You need to add a script to your /etc/init.d/&lt;br /&gt;
&lt;br /&gt;
use following command to do it&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;echo "svnserve -d --root /home/raghunayak/my_svn_repo/" &amp;gt;&amp;gt; run_svnd &amp;amp;&amp;amp; chmod +x run_svnd &amp;amp;&amp;amp; sudo mv run_svnd /etc/init.d &amp;amp;&amp;amp; sudo update-rc.d run_svnd defaults&lt;/code&gt;&lt;br /&gt;
In this command replace &lt;em&gt;'/home/raghunayak/my_svn_repo'&lt;/em&gt; with with your SVN repository path.&lt;br /&gt;
&lt;br /&gt;
To remove this startup script enter following command.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sudo update-rc.d -f run_svnd remove &amp;amp;&amp;amp; sudo rm /etc/init.d/run_svnd&lt;/code&gt;&lt;br /&gt;
If you like this article, please leave a comment.. &lt;img src="http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif" alt=":)" title=":)" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-8530276024167845588?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/X3nZc3Oxnci76-9CHfs6CEdu7jc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X3nZc3Oxnci76-9CHfs6CEdu7jc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/X3nZc3Oxnci76-9CHfs6CEdu7jc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X3nZc3Oxnci76-9CHfs6CEdu7jc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/gLNvI1PJpmM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/8530276024167845588/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=8530276024167845588&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/8530276024167845588?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/8530276024167845588?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/gLNvI1PJpmM/how-to-create-your-own-local-svn.html" title="How To: Create your own local SVN repository in GNU/Linux" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/how-to-create-your-own-local-svn.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYDRXc9eip7ImA9WxJTEkg.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-6154614272662634167</id><published>2009-04-19T13:29:00.001+05:30</published><updated>2009-04-21T00:32:54.962+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-21T00:32:54.962+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CMake" /><category scheme="http://www.blogger.com/atom/ns#" term="CPP" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample programs" /><category scheme="http://www.blogger.com/atom/ns#" term="OOP" /><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Source File" /><category scheme="http://www.blogger.com/atom/ns#" term="Tech Recipes" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="MIT License" /><category scheme="http://www.blogger.com/atom/ns#" term="Questionnaire" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><title>New Category - Tech Recipe</title><content type="html">I have just created a new post category named Tech Recipes. From today on wards I would be posting some new articles under this category.&lt;br /&gt;
&lt;br /&gt;
In this category I would be asking some technical questions to you people, with the answer. The questions are most likely to be programming language related, with some exceptions. I hope these questionnaire would be very useful to the people, who are preparing for interviews or just want to improve their hold in programming languages.&lt;br /&gt;
&lt;br /&gt;
So, Keep watching this space for more on this..&lt;br /&gt;
&lt;p xmlns="" class="zoundry_raven_tags"&gt;&lt;br /&gt;
&lt;!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --&gt;&lt;br /&gt;
&lt;span class="ztags"&gt;&lt;span class="ztagspace"&gt;Technorati&lt;/span&gt; : &lt;a href="http://www.technorati.com/tag/Tech+Recipe" class="ztag" rel="tag"&gt;Tech Recipe&lt;/a&gt; &lt;a href="http://www.technorati.com/tag/Questionnaire" class="ztag" rel="tag"&gt;Questionnaire&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="ztags"&gt;&lt;span class="ztagspace"&gt;Del.icio.us&lt;/span&gt; : &lt;a href="http://del.icio.us/tag/Tech%20Recipe" class="ztag" rel="tag"&gt;Tech Recipe&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/Questionnaire" class="ztag" rel="tag"&gt;Questionnaire&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="ztags"&gt;&lt;span class="ztagspace"&gt;Zooomr&lt;/span&gt; : &lt;a href="http://www.zooomr.com/search/photos/?q=Tech%20Recipe" class="ztag" rel="tag"&gt;Tech Recipe&lt;/a&gt;, &lt;a href="http://www.zooomr.com/search/photos/?q=Questionnaire" class="ztag" rel="tag"&gt;Questionnaire&lt;/a&gt; &lt;/span&gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;span class="ztags"&gt;&lt;span class="ztagspace"&gt;Flickr&lt;/span&gt; : &lt;a href="http://www.flickr.com/photos/tags/Tech%20Recipe" class="ztag" rel="tag"&gt;Tech Recipe&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/tags/Questionnaire" class="ztag" rel="tag"&gt;Questionnaire&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-6154614272662634167?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/304GZYUfrQ1nHbRGcsL5E5_iYAA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/304GZYUfrQ1nHbRGcsL5E5_iYAA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/304GZYUfrQ1nHbRGcsL5E5_iYAA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/304GZYUfrQ1nHbRGcsL5E5_iYAA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/cSXIGT_W8cY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/6154614272662634167/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=6154614272662634167&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/6154614272662634167?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/6154614272662634167?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/cSXIGT_W8cY/new-category-tech-recipe.html" title="New Category - Tech Recipe" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/new-category-tech-recipe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUEQX0zfip7ImA9WxJREUg.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-3131367335472559681</id><published>2009-04-15T01:13:00.000+05:30</published><updated>2009-05-12T23:46:40.386+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-12T23:46:40.386+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample programs" /><category scheme="http://www.blogger.com/atom/ns#" term="FSF" /><category scheme="http://www.blogger.com/atom/ns#" term="License" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample Code" /><category scheme="http://www.blogger.com/atom/ns#" term="programs" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Source File" /><category scheme="http://www.blogger.com/atom/ns#" term="GPL" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="MIT License" /><category scheme="http://www.blogger.com/atom/ns#" term="Free Softwares" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><title>New License</title><content type="html">I have changed the license used for sample codes. Most of the new sample codes are now released under more permissive &lt;a href="http://www.opensource.org/licenses/mit-license.html"&gt;MIT license&lt;/a&gt;, rather than copyleft &lt;a href="http://www.opensource.org/licenses/gpl-2.0.php"&gt;GNU license&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I hope this change would help many people. &lt;br /&gt;
&lt;br /&gt;
- Raghu Nayak&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;
I have again changed the code license. I have re-licensed all my programs/source code under GNU General Public License version 3 or above (at your option).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Reasons or motivations behind this change:&lt;/strong&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Freedoms of the user:&lt;/strong&gt;&lt;br /&gt;
I actually spend a lot of effort while coding or programming, and I really want my effort to be useful to someone! At the same time, I really don't want someone to take my code and convert it into a proprietary trap, thereby killing all user freedoms. I really want to protect the basic rights or the freedoms of the user, and this can be ensured only with GNU GPL.&lt;/li&gt;
&lt;li&gt;The recent acquisition of SUN Microsystem by Oracle had a strong influence on my decision. I really Thank GOD that, MySQL code is available under GNU GPL. So, even if Oracle kills it, somebody will fork it.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gnu.org/philosophy/x.html"&gt;This article&lt;/a&gt;, which I saw in &lt;a href="http://www.gnu.org/"&gt;GNU website&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;So, I am sorry to all those who wanted to integrate use my code with their proprietary code. I am sorry, but this action was necessary to protect the basic freedom, on which I have strong belief.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;- Raghu Nayak&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-3131367335472559681?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vgYb8xjf0hS_-8pXfSXh12PCpGQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vgYb8xjf0hS_-8pXfSXh12PCpGQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vgYb8xjf0hS_-8pXfSXh12PCpGQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vgYb8xjf0hS_-8pXfSXh12PCpGQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/DbcoOy1DMn0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/3131367335472559681/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=3131367335472559681&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3131367335472559681?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3131367335472559681?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/DbcoOy1DMn0/new-license.html" title="New License" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:point>12.971606 77.594376</georss:point><feedburner:origLink>http://www.openguru.org/2009/04/new-license.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QGSXk-fSp7ImA9WxJREUk.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-4350920976027657913</id><published>2009-04-13T00:06:00.000+05:30</published><updated>2009-05-12T22:58:48.755+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-12T22:58:48.755+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Applications" /><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="CMake" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><category scheme="http://www.blogger.com/atom/ns#" term="Free Softwares" /><title>CMake: Detecting Platform/Operating Systems, Compiler Information</title><content type="html">I was searching for this information from last three days. Finally I found the CMake syntax to write the platform specific code inside CMakeLists.txt.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Detecting the Operating System:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
CMake actually defines several variables to identify the platform information. These variables will be assigned with the values based on the platform, operating system etc.&lt;br /&gt;
&lt;br /&gt;
For example, In CMake version 2.6 following Variables are present to identify the Operating System Type.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;UNIX&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE on all UNIX-like OS's, including Apple OS X and CygWin&lt;br /&gt;
&lt;strong&gt;WIN32&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE on Windows, including CygWin&lt;br /&gt;
&lt;strong&gt;APPLE&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE on Apple systems. Note: Having this variable value set to TRUE does not necessarily mean that Operating System is Mac OS X. It only means that in the C/C++ header file __APPLE__ Macro is defined. Use the alternate method of detecting Operating System type, mentioned below instead.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;For GNU/Linux:&lt;/strong&gt; There is NO Variable for GNU/Linux. ie; IF(LINUX) does NOT work. Use the alternative method mentioned below instead.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Alternative method to detect to Operating System:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
CMake version 2.6 defines 2 different variables, which can be used to detect the Operating System preciously. They are,&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
CMAKE_SYSTEM&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the complete system name, e.g. "Linux-2.4.22", "FreeBSD-5.4-RELEASE" or "Windows 5.1"&lt;br /&gt;
&lt;strong&gt;CMAKE_SYSTEM_NAME&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the short system name, e.g. "Linux", "FreeBSD" or "Windows"&lt;br /&gt;
&lt;br /&gt;
These variables can be used to detect the Operating System.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Example:&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")&lt;br /&gt;
# Mac OS X specific code&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET(OperatingSystem "Mac OS X")&lt;br /&gt;
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
for detecting Mac OS X&lt;br /&gt;
&lt;br /&gt;
and for Linux&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")&lt;br /&gt;
# Linux specific code&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET(OperatingSystem "Linux")&lt;br /&gt;
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Detecting the compiler:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Following variables can be used to detect the compilers.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;MINGW&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE when using the MinGW compiler in Windows&lt;br /&gt;
&lt;strong&gt;MSYS&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE when using the MSYS developer environment in Windows&lt;br /&gt;
&lt;strong&gt;BORLAND&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE on Windows when using a Borland compiler&lt;br /&gt;
&lt;strong&gt;WATCOM&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE on Windows when using the Open Watcom compiler&lt;br /&gt;
&lt;strong&gt;MSVC, MSVC_IDE, MSVC60, MSVC70, MSVC71, MSVC80, CMAKE_COMPILER_2005, MSVC90&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft compiler&lt;br /&gt;
&lt;strong&gt;CMAKE_COMPILER_IS_GNUCC&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE if the compiler is a variant of gcc&lt;br /&gt;
&lt;strong&gt;CMAKE_COMPILER_IS_GNUCXX&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE if the compiler is a variant of g++&lt;br /&gt;
&lt;strong&gt;CYGWIN&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is TRUE on Windows when using the CygWin version of cmake&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Detecting the System Processor:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Following variable can be used to detect the processor family.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;CMAKE_SYSTEM_PROCESSOR&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the processor name (e.g. "Intel(R) Pentium(R) M processor 2.00GHz")&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Example usage:&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Mac OS X specific code&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET(OperatingSystem "Mac OS X")&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF(${CMAKE_SYSTEM_PROCESSOR } MATCHES "Intel")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Intel Mac OS X specific code&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET(Processor "Intel")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF(${CMAKE_SYSTEM_PROCESSOR } MATCHES "Intel")&lt;br /&gt;
&lt;br /&gt;
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;Links:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vtk.org/Wiki/CMake_Useful_Variables#System_.26_Compiler_Information"&gt;CMake wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-4350920976027657913?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LBFKJvoHgqTO-EF6iQe88nY1DFk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LBFKJvoHgqTO-EF6iQe88nY1DFk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LBFKJvoHgqTO-EF6iQe88nY1DFk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LBFKJvoHgqTO-EF6iQe88nY1DFk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/gQfFpKJjKcs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/4350920976027657913/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=4350920976027657913&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/4350920976027657913?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/4350920976027657913?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/gQfFpKJjKcs/cmake-detecting-platformoperating.html" title="CMake: Detecting Platform/Operating Systems, Compiler Information" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/cmake-detecting-platformoperating.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAFSH4yeip7ImA9WxVaFU4.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-5788239569249576330</id><published>2009-04-12T13:38:00.000+05:30</published><updated>2009-04-12T17:15:19.092+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-12T17:15:19.092+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Hacks" /><title>How To: Fix shared library load problem in GNU/Linux</title><content type="html">I recently started learning/using &lt;a href="http://code.google.com/p/googletest/"&gt;Google C++ Testing framework&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I compiled and installed Google testing framework as per the instruction. But still I wasn't able to run the sample applications compiled by me.&lt;br /&gt;&lt;br /&gt;Whenever I run them, I used to get following error.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;error while loading shared libraries: libgtest.so.0: cannot open shared object file: No such file or directory&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But I had installed Google test framework properly. The install script had properly placed the libgtest.so.0 into /usr/local/lib&lt;br /&gt;&lt;br /&gt;So, to check which all shared library are failed to load, I issued following command&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ldd a.out&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and the output was&lt;br /&gt;&lt;br /&gt;&lt;code&gt;raghunayak@raghu-desktop:~/google_test/samples$ ldd a.out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libgtest.so.0 =&amp;gt; not found&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x00002b2897d75000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libm.so.6 =&amp;gt; /lib/libm.so.6 (0x00002b2898080000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x00002b2898301000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libc.so.6 =&amp;gt; /lib/libc.so.6 (0x00002b2898510000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib64/ld-linux-x86-64.so.2 (0x00002b2897b57000)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Which showed that, only libraries placed in /usr/local/lib are failed to load. This gave me a hint that, /usr/local/lib is not the ld library search path.&lt;br /&gt;&lt;br /&gt;To confirm this, I entered following command, which lists all the libraries that ld can load.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ldconfig -p&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This confirmed that, /usr/local/lib is indeed missing from ld library search path.&lt;br /&gt;&lt;br /&gt;So, to include /usr/local/lib into the ld library search path, I typed following into the terminal.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;after this, I typed&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ldd a.out&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and this time the ld was able to properly find the library gtest.so.0 placed in '/usr/local/lib'&lt;br /&gt;&lt;br /&gt;&lt;code&gt;raghunayak@raghu-desktop:~/google_test/samples$ ldd a.out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libgtest.so.0 =&amp;gt; /usr/local/lib/libgtest.so.0 (0x00002ae54f520000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libstdc++.so.6 =&amp;gt; /usr/lib/libstdc++.so.6 (0x00002ae54f772000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libm.so.6 =&amp;gt; /lib/libm.so.6 (0x00002ae54fa7d000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libgcc_s.so.1 =&amp;gt; /lib/libgcc_s.so.1 (0x00002ae54fcfe000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libc.so.6 =&amp;gt; /lib/libc.so.6 (0x00002ae54ff0d000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib64/ld-linux-x86-64.so.2 (0x00002ae54f302000)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;After this I was able to run samples without any problems. &lt;img src="http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif" alt=":)" title=":)" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Temporary Solution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Temporary solution is to add '/usr/local/lib' into the environmental variable named LD_LIBRARY_PATH&lt;br /&gt; &lt;br /&gt;so, the solution is to add /usr/local/lib into the enviornment variable named LD_LIBRARY_PATH, by typing&lt;br /&gt;&lt;br /&gt;You can do this by typing&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Permanent solution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;permanent solution is to modify the file /etc/ld.so.conf and add the path /usr/local/lib into it.&lt;br /&gt;&lt;br /&gt;You can do it manually by typing&lt;br /&gt;&lt;br /&gt;$ sudo gedit /etc/ld.so.conf&lt;br /&gt;&lt;br /&gt;or type following into the terminal&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ sudo bash -c 'echo /usr/local/lib &amp;gt;&amp;gt; /etc/ld.so.conf ' &amp;amp;&amp;amp;  sudo ldconfig&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;P.S.: I think GNU/Linux distributions by default should include /usr/local/lib in /etc/ld.so.conf or at-least the install script of the libraries should have this intelligence.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-5788239569249576330?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tc54p7OmC8mbCZFju6Rwylw3so8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tc54p7OmC8mbCZFju6Rwylw3so8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tc54p7OmC8mbCZFju6Rwylw3so8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tc54p7OmC8mbCZFju6Rwylw3so8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/1eMnn61t_Pg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/5788239569249576330/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=5788239569249576330&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5788239569249576330?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5788239569249576330?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/1eMnn61t_Pg/how-to-fix-shared-library-load-problem.html" title="How To: Fix shared library load problem in GNU/Linux" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/how-to-fix-shared-library-load-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcDQHYyeSp7ImA9WxJTGUk.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-6407048881134979165</id><published>2009-04-11T10:46:00.000+05:30</published><updated>2009-04-28T23:54:31.891+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T23:54:31.891+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample programs" /><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample Code" /><category scheme="http://www.blogger.com/atom/ns#" term="programs" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Source File" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="MIT License" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithms" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><title>C Language: Program to find if a given number is prime</title><content type="html">Following sample program shows how to find, if the given input number is prime or not.&lt;br /&gt;
&lt;br /&gt;
This code is released under the terms of GNU General Public License.&lt;br /&gt;
&lt;pre&gt;&lt;span class="comment"&gt;/*
 * Copyright (C) 2009 Raghavendra Nayak
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
 */&lt;/span&gt;&lt;span class="pre"&gt;

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
&lt;/span&gt;&lt;span class="comment"&gt;
/**
 * @brief function to check if the given number is prime.
 *
 * This function returns 1 if the given number is a prime number,
 * otherwise returns 0.
 *
 * @param[in] number    input number to check for prime number.
 * @return  1: if the @sa number is a prime number;
 *          0: otherwise.
 *
 * Note: This function uses a loop to find the factorial.
 */&lt;/span&gt;&lt;span class="type"&gt;
unsigned short&lt;/span&gt; is_prime_number&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; number&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="comment"&gt;

    /* Trivial case 1: number 1, 0 numbers are not prime numbers */
    /* -ve numbers are not natural numbers */&lt;/span&gt;&lt;span class="flow"&gt;
    if&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;number&lt;span class="operator"&gt; &amp;lt;=&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;
        return&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;

    /* Trivial case 2: even numbers are not prime numbers */&lt;/span&gt;&lt;span class="flow"&gt;
    if&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;number&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; 0&lt;/span&gt;&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;number&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; 1&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;/span&gt;&lt;span class="comment"&gt;

    /* here, number is is odd and number &amp;gt;= 3 */
    /* Try to divide number by every odd number i, starting from 3 */&lt;/span&gt;&lt;span class="flow"&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; 3&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; 2&lt;/span&gt;&lt;span class="operator"&gt;) {&lt;/span&gt;&lt;span class="comment"&gt;
        /* We only have to try i up to the squre root of number */&lt;/span&gt;&lt;span class="flow"&gt;
        if&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;i&lt;span class="operator"&gt; &amp;gt;&lt;/span&gt; number&lt;span class="operator"&gt;/&lt;/span&gt;i&lt;span class="operator"&gt;)&lt;/span&gt;&lt;span class="flow"&gt;
            break&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt;

        /* Now, we have i &amp;lt;= number/i &amp;lt; number */
        /* If number is divisible by i, number is not prime */&lt;/span&gt;&lt;span class="flow"&gt;
        if&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;number&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;&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="comment"&gt;
    /* number has no integer factor in the range (1, number), and thus is prime */&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="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;/span&gt;&lt;span class="type"&gt;
    int&lt;/span&gt; number&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;
    unsigned short&lt;/span&gt; prime_number&lt;span class="operator"&gt;;&lt;/span&gt;

    printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nEnter the input number: "&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;
    scanf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"%d"&lt;/span&gt;&lt;span class="operator"&gt;, &amp;amp;&lt;/span&gt;number&lt;span class="operator"&gt;);&lt;/span&gt;

    prime_number&lt;span class="operator"&gt; =&lt;/span&gt; is_prime_number&lt;span class="operator"&gt;(&lt;/span&gt;number&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;

    if&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;prime_number&lt;span class="operator"&gt;) {&lt;/span&gt;
        printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nInput number %d is a prime number.\n"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; number&lt;span class="operator"&gt;);
    }&lt;/span&gt;&lt;span class="flow"&gt; else&lt;/span&gt;&lt;span class="operator"&gt; {&lt;/span&gt;
        printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nInput number %d is not a prime number.\n"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; number&lt;span class="operator"&gt;);
    }&lt;/span&gt;&lt;span class="flow"&gt;
    return&lt;/span&gt; EXIT_SUCCESS&lt;span class="operator"&gt;;
}&lt;/span&gt;&lt;/pre&gt;To download the project click &lt;a href="http://www.mediafire.com/?mlymxdng52j"&gt;here&lt;/a&gt;. or you can visit Google code project at &lt;a href="http://code.google.com/p/nayak"&gt;http://code.google.com/p/nayak&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Building the project:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can build this project using any of the following method.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;code&gt;$ gcc is_prime_number.c -o is_prime_number&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ make&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ cmake . &amp;amp;&amp;amp; make&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;First method requires you to have gcc installed.&lt;br /&gt;
Second method requires you to have gcc along with the GNU make installed.&lt;br /&gt;
Third method requires you to have cmake along with GNU make.&lt;br /&gt;
&lt;br /&gt;
To execute the compiled binary issue following command.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;$ ./is_prime_number&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-6407048881134979165?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M2cM97pAg9bDXW2B3sBmYNdAkSc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M2cM97pAg9bDXW2B3sBmYNdAkSc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M2cM97pAg9bDXW2B3sBmYNdAkSc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M2cM97pAg9bDXW2B3sBmYNdAkSc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/nWS0K41iMGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/6407048881134979165/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=6407048881134979165&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/6407048881134979165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/6407048881134979165?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/nWS0K41iMGc/c-language-program-to-find-if-given.html" title="C Language: Program to find if a given number is prime" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/c-language-program-to-find-if-given.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcERXw-fCp7ImA9WxJTGUk.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-8265704626191228839</id><published>2009-04-11T09:47:00.001+05:30</published><updated>2009-04-28T23:53:24.254+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T23:53:24.254+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample Code" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Source File" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Sample programs" /><category scheme="http://www.blogger.com/atom/ns#" term="MIT License" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithms" /><title>C Language: finding factorial of a number using looping</title><content type="html">Following sample program shows how to find the factorial of a number using looping.&lt;br /&gt;
&lt;br /&gt;
This code is released under the terms of GNU General Public License.&lt;br /&gt;
&lt;pre&gt;&lt;span class="comment"&gt;/*
 * Copyright (C) 2009 Raghavendra Nayak
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
 */&lt;/span&gt;&lt;span class="pre"&gt;

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
&lt;/span&gt;&lt;span class="comment"&gt;
/**
* @brief function to find the factorial of a number.
*
* This function returns number! (the factorial of number).
* For negative number, number! is defined to be 1.
*
* @param[in] number    the number for which you want to find the factorial.
* @return  The factorial of the @sa number.
*
* Note: This function uses a loop to find the factorial.
*/&lt;/span&gt;&lt;span class="type"&gt;
int&lt;/span&gt; factorial&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;span class="type"&gt; int&lt;/span&gt; number&lt;span class="operator"&gt;)
{&lt;/span&gt;&lt;span class="type"&gt;
int&lt;/span&gt; result&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="type"&gt;
int&lt;/span&gt; i&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="flow"&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; 1&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt; &amp;lt;=&lt;/span&gt; number&lt;span class="operator"&gt;;&lt;/span&gt; i&lt;span class="operator"&gt;++) {&lt;/span&gt;
result&lt;span class="operator"&gt; *=&lt;/span&gt; i&lt;span class="operator"&gt;;
}&lt;/span&gt;&lt;span class="flow"&gt;
return&lt;/span&gt; result&lt;span class="operator"&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;/span&gt;&lt;span class="type"&gt;
int&lt;/span&gt; number&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="type"&gt;
int&lt;/span&gt; factorial_of_number&lt;span class="operator"&gt;;&lt;/span&gt;

printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nEnter the input number: "&lt;/span&gt;&lt;span class="operator"&gt;);&lt;/span&gt;

scanf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"%d"&lt;/span&gt;&lt;span class="operator"&gt;, &amp;amp;&lt;/span&gt;number&lt;span class="operator"&gt;);&lt;/span&gt;

factorial_of_number&lt;span class="operator"&gt; =&lt;/span&gt; factorial&lt;span class="operator"&gt;(&lt;/span&gt;number&lt;span class="operator"&gt;);&lt;/span&gt;

printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nInput number is: %d"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; number&lt;span class="operator"&gt;);&lt;/span&gt;
printf&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\nFactorial of %d or %d! is %d\n"&lt;/span&gt;&lt;span class="operator"&gt;,&lt;/span&gt; number&lt;span class="operator"&gt;,&lt;/span&gt; number&lt;span class="operator"&gt;,&lt;/span&gt; factorial_of_number&lt;span class="operator"&gt;);&lt;/span&gt;&lt;span class="flow"&gt;

return&lt;/span&gt; EXIT_SUCCESS&lt;span class="operator"&gt;;
}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
To download the project click &lt;a href="http://www.mediafire.com/?wspimfmtay0"&gt;here&lt;/a&gt;. or you can visit Google code project at &lt;a href="http://code.google.com/p/nayak"&gt;http://code.google.com/p/nayak&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Building the project:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can build this project using any of the following method.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;code&gt;$ gcc factorial.c -o factorial&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ make&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ cmake . &amp;amp;&amp;amp; make&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;First method requires you to have gcc installed.&lt;br /&gt;
Second method requires you to have gcc along with the GNU make installed.&lt;br /&gt;
Third method requires you to have cmake along with GNU make.&lt;br /&gt;
&lt;br /&gt;
To execute the compiled binary issue following command.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;$ ./factorial&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-8265704626191228839?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ph0hQxI-LNwrWt6RzMrFC_CrUdc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ph0hQxI-LNwrWt6RzMrFC_CrUdc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ph0hQxI-LNwrWt6RzMrFC_CrUdc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ph0hQxI-LNwrWt6RzMrFC_CrUdc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/gOzaaln_qlQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/8265704626191228839/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=8265704626191228839&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/8265704626191228839?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/8265704626191228839?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/gOzaaln_qlQ/c-finding-factorial-of-number-using.html" title="C Language: finding factorial of a number using looping" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/c-finding-factorial-of-number-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cERn0zfCp7ImA9WxVaEkw.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-4024504010852708747</id><published>2009-04-08T23:53:00.001+05:30</published><updated>2009-04-08T23:53:27.384+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-08T23:53:27.384+05:30</app:edited><title /><content type="html">Currently working on command line parsing utility for my project. This is released under Apache v2 license.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-4024504010852708747?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/F2MPZFHZUeihSCwvd4Ay7OvZgug/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F2MPZFHZUeihSCwvd4Ay7OvZgug/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/F2MPZFHZUeihSCwvd4Ay7OvZgug/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F2MPZFHZUeihSCwvd4Ay7OvZgug/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/aOUcci171JU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/4024504010852708747/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=4024504010852708747&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/4024504010852708747?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/4024504010852708747?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/aOUcci171JU/currently-working-on-command-line.html" title="" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/04/currently-working-on-command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQER3k-fip7ImA9WxVUEE8.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-5173742558630668718</id><published>2009-03-14T16:28:00.001+05:30</published><updated>2009-03-14T16:28:26.756+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-14T16:28:26.756+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Applications" /><category scheme="http://www.blogger.com/atom/ns#" term="FSF" /><category scheme="http://www.blogger.com/atom/ns#" term="Experiments" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="Hacks" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><category scheme="http://www.blogger.com/atom/ns#" term="Free Softwares" /><title>Mac OS X - Show hidden files in Finder</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I have created a simple application, which can be used to show/hide the hidden files in Mac OS X - Finder.&lt;br/&gt;&lt;br/&gt;&lt;img style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://img357.imageshack.us/img357/2645/finderru6.png'/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;Requirements:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;I have tested this application in Mac OS X - Leopard but it should work with Mac OS X - Tiger also.&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;Usage:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Just launch the application named "Show Hidden Files in Finder"&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;Download Links:&lt;/span&gt;&lt;br/&gt;&lt;ul&gt;&lt;li&gt;To download this Application &lt;a target='_blank' href='http://www.mediafire.com/?xdjrvyujnm4'&gt;click here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Download the source code of this application from &lt;a target='_blank' href='http://www.mediafire.com/?9gmgom2ozdt'&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Download both source code and the Application from &lt;a target='_blank' href='http://www.mediafire.com/?ztj2vli1msm'&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Source code released under the terms of GNU GPLv3 or above.&lt;br/&gt;&lt;br/&gt;Enjoy.. &lt;img title='drink!' alt='drink!' src='http://i242.photobucket.com/albums/ff193/raghunayak/az.gif'/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=eb528686-dc93-48cf-a103-6d6eb60a1d1a' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class='technorati-tags'&gt;&lt;a rel='tag' href='http://technorati.com/tag/Apple'&gt;Apple&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Applications'&gt;Applications&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Development'&gt;Development&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Experiments'&gt;Experiments&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Free%20Softwares'&gt;Free Softwares&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/FSF'&gt;FSF&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Hacks'&gt;Hacks&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Mac'&gt;Mac&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/OpenSource'&gt;OpenSource&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-5173742558630668718?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IYl1DG7ShMGl0nGPdNFVbRtxGm8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IYl1DG7ShMGl0nGPdNFVbRtxGm8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IYl1DG7ShMGl0nGPdNFVbRtxGm8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IYl1DG7ShMGl0nGPdNFVbRtxGm8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/9tcaIisDjyk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/5173742558630668718/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=5173742558630668718&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5173742558630668718?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5173742558630668718?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/9tcaIisDjyk/mac-os-x-show-hidden-files-in-finder.html" title="Mac OS X - Show hidden files in Finder" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/03/mac-os-x-show-hidden-files-in-finder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMRn45cCp7ImA9WxVVF00.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-5566824853811643413</id><published>2009-03-10T23:48:00.001+05:30</published><updated>2009-03-10T23:49:47.028+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-10T23:49:47.028+05:30</app:edited><title>Qt Creator: My New IDE</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Oh man..&lt;br/&gt;&lt;br/&gt;&lt;img style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://lh3.ggpht.com/_83rFGRVzkps/SbatMR0_L1I/AAAAAAAABD0/l4XfBGlrSWg/%5BUNSET%5D.png?imgmax=800'/&gt;From the day Nokia has &lt;a href='http://labs.trolltech.com/blogs/2009/03/03/qt-45-hits-the-virtual-shelves/'&gt;released&lt;/a&gt; their light weight IDE named &lt;a href='http://www.qtsoftware.com/products/appdev/developer-tools/developer-tools'&gt;Qt Creator&lt;/a&gt;, I am just mad about it!&lt;br/&gt;&lt;br/&gt;Its awesome.. Its very fast.. Its very lightweight.. It just works!&lt;br/&gt;&lt;br/&gt;Actually I don't have words to explain my happiness.. &lt;br/&gt;&lt;br/&gt;This is the IDE for which I was waiting for, since age..&lt;br/&gt;&lt;br/&gt;Qt Creator rocks!!! &lt;img src='http://i242.photobucket.com/albums/ff193/raghunayak/ay.gif' alt='Thumbs up!' title='Thumbs up!'/&gt;&lt;br/&gt;&lt;br/&gt;P.S.: FYI, Qt Creator has just replaced Komodo Edit as my default code editor.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=4fa3bdf3-de98-4521-bcef-c7fa10a6d8c5' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-5566824853811643413?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OOHMnD3ios3ZvGem_BASc7-LfaI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OOHMnD3ios3ZvGem_BASc7-LfaI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OOHMnD3ios3ZvGem_BASc7-LfaI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OOHMnD3ios3ZvGem_BASc7-LfaI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/x7ybGfs2-94" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/5566824853811643413/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=5566824853811643413&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5566824853811643413?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5566824853811643413?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/x7ybGfs2-94/qt-creator-my-new-ide.html" title="Qt Creator: My New IDE" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/03/qt-creator-my-new-ide.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BQ347eyp7ImA9WxVVF00.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-5044849306428920322</id><published>2009-03-10T23:12:00.001+05:30</published><updated>2009-03-10T23:12:32.003+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-10T23:12:32.003+05:30</app:edited><title>My new project: iDoubt</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Hi All,&lt;br/&gt;&lt;br/&gt;I am pleased announce about my new open source project named iDoubt.&lt;br/&gt;&lt;br/&gt;I know the project name would sound like &lt;span style='font-style: italic;'&gt;lame &lt;/span&gt;to you. Still trust me, the application itself is kind of cool. &lt;img title=':D' alt=':D' src='http://i242.photobucket.com/albums/ff193/raghunayak/ag.gif'/&gt;&lt;br/&gt;&lt;br/&gt;More information about the project is coming soon.. &lt;img title=':)' alt=':)' src='http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif'/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-5044849306428920322?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/n7YkxojPvos2S8AdEwqnwFhH7bg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n7YkxojPvos2S8AdEwqnwFhH7bg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/n7YkxojPvos2S8AdEwqnwFhH7bg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n7YkxojPvos2S8AdEwqnwFhH7bg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/jFSCKVcySXo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/5044849306428920322/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=5044849306428920322&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5044849306428920322?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/5044849306428920322?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/jFSCKVcySXo/my-new-project-idoubt.html" title="My new project: iDoubt" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/03/my-new-project-idoubt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8CQXw4fCp7ImA9WxVVF00.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-6529542654696914914</id><published>2009-03-09T16:08:00.000+05:30</published><updated>2009-03-10T23:27:40.234+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-10T23:27:40.234+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Site Info" /><category scheme="http://www.blogger.com/atom/ns#" term="Blog" /><title>I am back!</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I am back after a very long break.&lt;img title=':)' alt=':)' src='http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif'/&gt; (5 months break, to be precise!)&lt;br/&gt;&lt;br/&gt;Actually, around 7 months back I switched my company. This switch made me so busy that, I had no time at-all for this blog. So, this switch was the major reason behind my long break.&lt;br/&gt;&lt;br/&gt;Anyways, After this switch, now I have even more experiences and experiments to share with you people..&lt;br/&gt;&lt;br/&gt;Now expect even more from me.. (Only if I don't take such a long break again, which I won't due to this bloody economic recession.&lt;img title=';)' alt=';)' src='http://i242.photobucket.com/albums/ff193/raghunayak/ad.gif'/&gt;)&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=50005a89-9c11-4224-ba51-a810f6764ea1' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-6529542654696914914?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FLMydJMMdxaC057RgPqvU5qv9Fc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FLMydJMMdxaC057RgPqvU5qv9Fc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FLMydJMMdxaC057RgPqvU5qv9Fc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FLMydJMMdxaC057RgPqvU5qv9Fc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/ytN_q9YsEcE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/6529542654696914914/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=6529542654696914914&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/6529542654696914914?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/6529542654696914914?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/ytN_q9YsEcE/i-am-back.html" title="I am back!" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2009/03/i-am-back.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCR3w_eSp7ImA9WxRWEEQ.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-3761691354361284491</id><published>2008-10-26T16:27:00.000+05:30</published><updated>2008-10-27T13:27:46.241+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-27T13:27:46.241+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CPP" /><category scheme="http://www.blogger.com/atom/ns#" term="OOP" /><title>C++ - Why constructor method can not be virtual</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;In my previous post I explained the need of an virtual destructor. Today let me explain why the constructor method can not be virtual.&lt;br/&gt;&lt;br/&gt;For this first let me explain what is a constructor method and what is the use of constructor method.&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;Constructor Method: &lt;/span&gt;Constructor is a method which is used to construct an object and/or optionally initialize its data members.&lt;br/&gt;&lt;br/&gt;So, main use of constructor method is to construct and return the object of the class which we intend to construct.&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;Virtual Method&lt;/span&gt;: The virtual method/function is used for run time polymorphism. With the virtual method, the actual method which will be called is decided at the run time depending based upon the type of the object which is used to call the method.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Now if the constructor method was an virtual method, then the constructor which is going to be called would be decided at the run time. ie; the object which you may construct may not be the object of the class whose object you intended to create!&lt;br/&gt;&lt;br/&gt;This is why constructor method can not be virtual.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p class='scribefire-powered'&gt;Powered by &lt;a href='http://www.scribefire.com/'&gt;ScribeFire&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-3761691354361284491?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fONpG304pJ0zOvNQPnRINZ6qW_I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fONpG304pJ0zOvNQPnRINZ6qW_I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fONpG304pJ0zOvNQPnRINZ6qW_I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fONpG304pJ0zOvNQPnRINZ6qW_I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/YrrL2AYn6tA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/3761691354361284491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=3761691354361284491&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3761691354361284491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/3761691354361284491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/YrrL2AYn6tA/c-why-constructor-method-can-not-be.html" title="C++ - Why constructor method can not be virtual" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2008/10/c-why-constructor-method-can-not-be.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGQXY4eyp7ImA9WxdWE0s.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-2512674396958760440</id><published>2008-07-06T22:17:00.001+05:30</published><updated>2008-07-06T23:15:20.833+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-06T23:15:20.833+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="programs" /><category scheme="http://www.blogger.com/atom/ns#" term="CPP" /><category scheme="http://www.blogger.com/atom/ns#" term="XCode" /><category scheme="http://www.blogger.com/atom/ns#" term="Source File" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><title>C++ Sample Code - 01</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;C++ Sample Code - 01&lt;br /&gt;Skill Level: &lt;span style='font-style: italic;'&gt;Intermediate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This sample explains the need of the virtual functions. Scroll down for the download links.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="comment"&gt;//============================================================================&lt;br /&gt;// Name        : Sample-01.cpp&lt;br /&gt;// Author      : Raghavendra Nayak&lt;br /&gt;// Version     :&lt;br /&gt;// Date        : 07-June-2008&lt;br /&gt;// Copyright   : (c) 2008, Raghavendra Nayak. All rights reserved.&lt;br /&gt;// Description : Sample C++ program. This sample explains the need of&lt;br /&gt;//                 virtual functions.&lt;br /&gt;//============================================================================&lt;br /&gt;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;/*&lt;br /&gt; * This program is free software: you can redistribute it and/or modify&lt;br /&gt; * it under the terms of the GNU General Public License as published by&lt;br /&gt; * the Free Software Foundation, either version 3 of the License, or&lt;br /&gt; * (at your option) any later version.&lt;br /&gt; *&lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt; *&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt; * along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Case: 01&lt;br /&gt; * Please note that, in this program by default we don't use virtual functions,&lt;br /&gt; * due to which always base class functions are called!&lt;br /&gt; *&lt;br /&gt; * To change this behavior define the value of the macro USE_VIRTUAL_FUNC as 1.&lt;br /&gt; * This will add "virtual" to the base class function prototype.&lt;br /&gt; *&lt;br /&gt; * ie; virtual void setData(int inData);&lt;br /&gt; *&lt;br /&gt; * After this, you will notice that, proper functions are called..&lt;br /&gt; *&lt;br /&gt; * Case: 02&lt;br /&gt; * Also, note that, virtual functions are hierarchical, ie, if the very first base&lt;br /&gt; * class is virtual, all the subsequent derived classes will automatically get that&lt;br /&gt; * property.&lt;br /&gt; *&lt;br /&gt; * ie, In this example, myClassC inherits from myClassB and if you&lt;br /&gt; * define USE_VIRTUAL_FUNC as 1 . This will add virtual keyword to the functions&lt;br /&gt; * of myClassA (Base class).&lt;br /&gt; *&lt;br /&gt; * After this, when you call setData/getData functions, you will see that proper&lt;br /&gt; * functions are called!&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Conclusions:&lt;br /&gt; *&lt;br /&gt; * 01. If you don' use virtual functions, always base call functions are called.&lt;br /&gt; * (When called through base class pointer/reference).&lt;br /&gt; *&lt;br /&gt; * 02. virtual functions are hierarchical, if the base class has virtual property,&lt;br /&gt; * all the derived classes automatically get that property..&lt;br /&gt; */&lt;/span&gt;&lt;span class="pre"&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="comment"&gt;&lt;br /&gt;/*&lt;br /&gt; * Define the value of this macro to 1 to use virtual functions&lt;br /&gt; */&lt;/span&gt;&lt;span class="pre"&gt;&lt;br /&gt;#define USE_VIRTUAL_FUNC        0&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;class&lt;/span&gt; myClassA&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&gt;protected&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; myData&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="pre"&gt;&lt;br /&gt;#if USE_VIRTUAL_FUNC&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;        virtual&lt;/span&gt;&lt;span class="pre"&gt;&lt;br /&gt;#endif //USE_VIRTUAL_FUNC&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;        void&lt;/span&gt; setData&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; inData&lt;span class="operator"&gt;)&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                std&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;"\nWe are in myClassA setData"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;                myData&lt;span class="operator"&gt; =&lt;/span&gt; inData&lt;span class="operator"&gt;;&lt;br /&gt;        }&lt;/span&gt;&lt;span class="pre"&gt;&lt;br /&gt;#if USE_VIRTUAL_FUNC&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;        virtual&lt;/span&gt;&lt;span class="pre"&gt;&lt;br /&gt;#endif //USE_VIRTUAL_FUNC&lt;br /&gt;&lt;/span&gt;&lt;span class="type"&gt;        int&lt;/span&gt; getData&lt;span class="operator"&gt;()&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;                std&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;"\nWe are in myClassA getData"&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; myData&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; myClassB&lt;span class="operator"&gt; :&lt;/span&gt;&lt;span class="keyword"&gt; public&lt;/span&gt; myClassA&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&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; setData&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; inData&lt;span class="operator"&gt;)&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;                std&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;"\nWe are in myClassB setData"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                myData&lt;span class="operator"&gt; =&lt;/span&gt; inData&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; getData&lt;span class="operator"&gt;()&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;                std&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;"\nWe are in myClassB getData"&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; myData&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; myClassC&lt;span class="operator"&gt; :&lt;/span&gt;&lt;span class="keyword"&gt; public&lt;/span&gt; myClassA&lt;span class="operator"&gt; {&lt;/span&gt;&lt;span class="keyword"&gt;&lt;br /&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; setData&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; inData&lt;span class="operator"&gt;)&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;                std&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;"\nWe are in myClassC setData"&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                myData&lt;span class="operator"&gt; =&lt;/span&gt; inData&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; getData&lt;span class="operator"&gt;()&lt;br /&gt;        {&lt;/span&gt;&lt;br /&gt;                std&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;"\nWe are in myClassC getData"&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; myData&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;&lt;span class="keyword"&gt; main&lt;/span&gt;&lt;span class="operator"&gt; (&lt;/span&gt;&lt;span class="type"&gt;int&lt;/span&gt; argc&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;&lt;span class="keyword"&gt; const&lt;/span&gt; argv&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; option&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;        std&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;"\nWhich case you want to run ? [1/2] : "&lt;/span&gt;&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        std&lt;span class="operator"&gt;::&lt;/span&gt;cin&lt;span class="operator"&gt;&amp;gt;&amp;gt;&lt;/span&gt;option&lt;span class="operator"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;        myClassA&lt;span class="operator"&gt; *&lt;/span&gt;myObjPointer&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;option&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;                myObjPointer&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="keyword"&gt; new&lt;/span&gt; myClassB&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // Case: 01&lt;br /&gt;&lt;/span&gt;&lt;span class="flow"&gt;        else&lt;/span&gt;&lt;br /&gt;                myObjPointer&lt;span class="operator"&gt; =&lt;/span&gt;&lt;span class="keyword"&gt; new&lt;/span&gt; myClassC&lt;span class="operator"&gt;;&lt;/span&gt;&lt;span class="comment"&gt; // Case: 02&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;        &lt;br /&gt;        myObjPointer&lt;span class="operator"&gt;-&amp;gt;&lt;/span&gt;setData&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;        myObjPointer&lt;span class="operator"&gt;-&amp;gt;&lt;/span&gt;getData&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;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Downloads Links:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a target='_blank' href='http://www.mediafire.com/?zvdjlev0dln'&gt;XCode project&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a target='_blank' href='http://www.mediafire.com/?tn1qqmn32td'&gt;Eclipse project&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a target='_blank' href='http://www.mediafire.com/?lzb14xxnxph'&gt;Source file&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-2512674396958760440?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rmo2YjsPsrAXXNXGRcj52wMZ5Vo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rmo2YjsPsrAXXNXGRcj52wMZ5Vo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rmo2YjsPsrAXXNXGRcj52wMZ5Vo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rmo2YjsPsrAXXNXGRcj52wMZ5Vo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/gvhG9Xks7wU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/2512674396958760440/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=2512674396958760440&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/2512674396958760440?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/2512674396958760440?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/gvhG9Xks7wU/c-sample-code-01.html" title="C++ Sample Code - 01" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2008/07/c-sample-code-01.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYMR3k9fyp7ImA9WxdWE0g.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-7623493048521428702</id><published>2008-07-06T19:27:00.001+05:30</published><updated>2008-07-06T19:36:26.767+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-06T19:36:26.767+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Site Info" /><category scheme="http://www.blogger.com/atom/ns#" term="News" /><category scheme="http://www.blogger.com/atom/ns#" term="Blog" /><title>Thank You..</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Here is the list of few websites/projects, which has helped me in many ways. This is just a small way to say "&lt;span style='font-style: italic; font-weight: bold;'&gt;Thank You&lt;/span&gt;" to them.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.zooomr.com'&gt;&lt;img border='0' src='http://openguru.wordpress.com/files/2008/07/zooomr_logo.png'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title='Free File Hosting' href='http://www.mediafire.com'&gt;&lt;img border='0' alt='MediaFire - Free File Hosting Made Simple' src='http://www.mediafire.com/free_file_hosting/234x60.gif'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://imageshack.us'&gt;&lt;img border='0' src='http://imageshack.us/img/imageshackbanner.gif'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Projects:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.gnu.org/'&gt;&lt;img border='0' src='http://openguru.wordpress.com/files/2008/07/gnu-head-sm.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.ubuntu.com'&gt;&lt;img border='0' src='http://openguru.wordpress.com/files/2008/07/ubuntu_button_alt_180x59.png'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.eclipse.org/'&gt;&lt;img border='0' src='http://openguru.wordpress.com/files/2008/07/logo_eclipse.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.cgsecurity.org/wiki/TestDisk'&gt;&lt;img border='0' src='http://openguru.wordpress.com/files/2008/07/testdisk-logo.gif' style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.cgsecurity.org/wiki/TestDisk'&gt;TestDisk, Data Recovery&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-7623493048521428702?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NVJ4qPZXC5rv7zDpkbBugaN5fSo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NVJ4qPZXC5rv7zDpkbBugaN5fSo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NVJ4qPZXC5rv7zDpkbBugaN5fSo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NVJ4qPZXC5rv7zDpkbBugaN5fSo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/7Iamc4rCL-8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/7623493048521428702/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=7623493048521428702&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/7623493048521428702?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/7623493048521428702?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/7Iamc4rCL-8/thank-you.html" title="Thank You.." /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2008/07/thank-you.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQFQX4-eyp7ImA9WxdWEEo.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-7460790559892462570</id><published>2008-07-03T12:20:00.001+05:30</published><updated>2008-07-03T14:08:30.053+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-03T14:08:30.053+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title>Using Mac OS X frameworks with eclipse IDE</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;If you are a Mac OS X programmer, you must be aware of frameworks.&lt;br/&gt;&lt;br/&gt;If you are like me, who like to use Eclipse than XCode, You can link your programs to the proper frameworks by following steps..&lt;br/&gt;&lt;br/&gt;Skill Level: &lt;span style='font-style: italic;'&gt;Intermediate&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;step 01: Open your Eclipse project.&lt;br/&gt;step 02: Right click on your project, select the &lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;properties&lt;/span&gt;"&lt;/span&gt;.&lt;br/&gt;step 03: Now go to &lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;C/C++ Build&lt;/span&gt;"&lt;/span&gt;-&amp;gt;&lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;Setting&lt;/span&gt;"&lt;/span&gt;.&lt;br/&gt;step 04: Go to the &lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;Tool Settings&lt;/span&gt;"&lt;/span&gt; tab.&lt;br/&gt;step 05: Select the &lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;Miscellaneous&lt;/span&gt;"&lt;/span&gt; settings, under &lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;Mac OS X C++ Linker&lt;/span&gt;"&lt;/span&gt;.&lt;br/&gt;step 06: You will see a text box with title &lt;span style='font-style: italic;'&gt;"&lt;span style='font-weight: bold;'&gt;Linker Flags&lt;/span&gt;"&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Check the following screenshot..&lt;br/&gt;&lt;br/&gt;&lt;a href='http://img60.imageshack.us/my.php?image=eclipsesettingsj7.png' target='_blank'&gt;&lt;img border='0' src='http://img60.imageshack.us/img60/5882/eclipsesettingsj7.th.png'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Step 07: Enter your framework names here.. Precede your framework name with &lt;span style='font-style: italic;'&gt;“&lt;span style='font-weight: bold;'&gt;-framework&lt;/span&gt;”&lt;/span&gt; flag.&lt;br/&gt;&lt;br/&gt;Eg: If you want to link with Carbon framework, then enter it as &lt;code style='font-style: italic;'&gt;-framework carbon&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;If you want to link with more than one framework add them in the same line using space to separate them..&lt;br/&gt;Eg: &lt;code style='font-style: italic;'&gt;-framework carbon -framework opengl&lt;/code&gt;&lt;br/&gt;Step 08: Click on Apply to apply the new build settings..&lt;br/&gt;&lt;br/&gt;If you like this post, please leave a comment.. &lt;img src='http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif' alt=':-)'/&gt;&lt;br/&gt;&lt;br/&gt;Technorati Tags: &lt;a rel='tag' href='http://technorati.com/tag/Mac%20OS%20X' class='performancingtags'&gt;Mac OS X&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/How%20To' class='performancingtags'&gt;How To&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Programming%20Tips' class='performancingtags'&gt;Programming Tips&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Eclipse%20C++' class='performancingtags'&gt;Eclipse C++&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Frameworks' class='performancingtags'&gt;Frameworks&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-7460790559892462570?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DiPzU-Mx_4XjgNSJsF8UG5JGglQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DiPzU-Mx_4XjgNSJsF8UG5JGglQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DiPzU-Mx_4XjgNSJsF8UG5JGglQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DiPzU-Mx_4XjgNSJsF8UG5JGglQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/KnJEXXm6-AU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/7460790559892462570/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=7460790559892462570&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/7460790559892462570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/7460790559892462570?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/KnJEXXm6-AU/using-mac-os-x-frameworks-with-eclipse.html" title="Using Mac OS X frameworks with eclipse IDE" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.openguru.org/2008/07/using-mac-os-x-frameworks-with-eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYCRn84cCp7ImA9WxdXEUk.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-7725570549570469599</id><published>2008-06-21T22:29:00.001+05:30</published><updated>2008-06-22T20:36:07.138+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-22T20:36:07.138+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Site Info" /><category scheme="http://www.blogger.com/atom/ns#" term="FSF" /><category scheme="http://www.blogger.com/atom/ns#" term="News" /><title>New License</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Well, I have been searching for a software license that fits well into my requirement, and I think that, finally I've found one! &lt;img alt=':-)' src='http://i242.photobucket.com/albums/ff193/raghunayak/ab.gif'/&gt;&lt;br /&gt;&lt;br /&gt;It's the new GNU GPL v3 license.&lt;br /&gt;&lt;br /&gt;From now onwards, all the samples/projects found in this website will be released under GNU-GPLv3 or above license.&lt;br /&gt;&lt;br /&gt;You people are free to contribute your samples/codes to this website, provided that you use a compatible license. Which you can get by adding "or later" clause to GPL license.&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://www.mediafire.com/?xq0znwydbjd'&gt;Here&lt;/a&gt; is the document, which helped me in selecting GPLv3 over the GPLv2.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a class='performancingtags' href='http://technorati.com/tag/License' rel='tag'&gt;License&lt;/a&gt;, &lt;a class='performancingtags' href='http://technorati.com/tag/GPL%20v3' rel='tag'&gt;GPL v3&lt;/a&gt;, &lt;a class='performancingtags' href='http://technorati.com/tag/GPLv2%20vs%20GPLv3' rel='tag'&gt;GPLv2 vs GPLv3&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-7725570549570469599?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_9mARrC3ELFTQfwz4sZfRO-sVSA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_9mARrC3ELFTQfwz4sZfRO-sVSA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_9mARrC3ELFTQfwz4sZfRO-sVSA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_9mARrC3ELFTQfwz4sZfRO-sVSA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/Pv5o_mgO59I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/7725570549570469599/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=7725570549570469599&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/7725570549570469599?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/7725570549570469599?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/Pv5o_mgO59I/new-license.html" title="New License" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2008/06/new-license.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQASHo7fyp7ImA9WxdSFkw.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-2972460253831963868</id><published>2008-05-24T12:45:00.001+05:30</published><updated>2008-05-24T12:45:49.407+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-24T12:45:49.407+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="Blog" /><title>New contents are coming soon..</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Soon I will write and explain OpenGL, C/C++ and other stuffs here..&lt;br/&gt;&lt;br/&gt;Stay tuned..&lt;br/&gt;&lt;br/&gt;Technorati Tags: &lt;a rel='tag' href='http://technorati.com/tag/C++' class='performancingtags'&gt;C++&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/OpenGL' class='performancingtags'&gt;OpenGL&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/Sample%20Code' class='performancingtags'&gt;Sample Code&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-2972460253831963868?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/24v1kb9yFjbaPFNG5A-roPnJbZU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/24v1kb9yFjbaPFNG5A-roPnJbZU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/24v1kb9yFjbaPFNG5A-roPnJbZU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/24v1kb9yFjbaPFNG5A-roPnJbZU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/j99-rxXP_l4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/2972460253831963868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=2972460253831963868&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/2972460253831963868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/2972460253831963868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/j99-rxXP_l4/new-contents-are-coming-soon.html" title="New contents are coming soon.." /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.openguru.org/2008/05/new-contents-are-coming-soon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMGQnY7eip7ImA9WxdWEEo.&quot;"><id>tag:blogger.com,1999:blog-7326126297097900282.post-8468046197298390818</id><published>2008-05-24T12:32:00.001+05:30</published><updated>2008-07-03T13:53:43.802+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-03T13:53:43.802+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="How To" /><title>How to Change __MyCompanyName__ of XCode, once and for all</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;If you're sick of getting __MyCompanyName__ automatically in copyright notice of all your XCode source files, You can set the XCode default  company name for copyright notice as follows..&lt;br/&gt;&lt;br/&gt;This is damn simple..&lt;br/&gt;&lt;br/&gt;Go to /Applications/Utilities and open Terminal.app and enter the following code there..&lt;br/&gt;&lt;code&gt;&lt;br/&gt;defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ "ORGANIZATIONNAME" = "put_your_company_name_here";}'&lt;br/&gt;&lt;br/&gt;&lt;/code&gt;For eg:&lt;br/&gt;&lt;br/&gt;Here is the line which I entered..&lt;br/&gt;&lt;br/&gt;&lt;code&gt;defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ "ORGANIZATIONNAME" = "Raghavendra Nayak";}'&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;I have tried this with XCode 3.0 but this should work with older version of XCode as well..&lt;br/&gt;&lt;br/&gt;If you want to do the same thing, other way around, check &lt;a href='http://lists.apple.com/archives/Projectbuilder-users/2003/Aug/msg00259.html'&gt;this page&lt;/a&gt; at Apple mailing list.&lt;br/&gt;&lt;br/&gt;Technorati Tags: &lt;a rel='tag' href='http://technorati.com/tag/Apple%20XCode' class='performancingtags'&gt;Apple XCode&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/__MyCompanyName__' class='performancingtags'&gt;__MyCompanyName__&lt;/a&gt;, &lt;a rel='tag' href='http://technorati.com/tag/How%20To' class='performancingtags'&gt;How To&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7326126297097900282-8468046197298390818?l=www.openguru.org' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q0k2AHZI84V8zoOJ87ZB6p9p-c8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q0k2AHZI84V8zoOJ87ZB6p9p-c8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q0k2AHZI84V8zoOJ87ZB6p9p-c8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q0k2AHZI84V8zoOJ87ZB6p9p-c8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/open_guru/~4/hCeks34zQMY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.openguru.org/feeds/8468046197298390818/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7326126297097900282&amp;postID=8468046197298390818&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/8468046197298390818?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7326126297097900282/posts/default/8468046197298390818?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/open_guru/~3/hCeks34zQMY/how-to-change-mycompanyname-of-xcode.html" title="How to Change __MyCompanyName__ of XCode, once and for all" /><author><name>Raghu Nayak</name><uri>http://www.blogger.com/profile/09482260632395506802</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17950521987709191974" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.openguru.org/2008/05/how-to-change-mycompanyname-of-xcode.html</feedburner:origLink></entry></feed>
