<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6286908420471011044</id><updated>2012-02-15T21:33:20.436-08:00</updated><category term='C++'/><category term='Random'/><category term='iPhone'/><category term='World'/><category term='Graphics'/><category term='Mac OS'/><category term='C'/><category term='Objective-C'/><category term='Swig'/><category term='Tips'/><category term='Code generation'/><category term='Windows'/><category term='Tutorials'/><category term='Open Source'/><title type='text'>nXgenesis</title><subtitle type='html'>We care. We innovate</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3160498312794237749</id><published>2011-08-29T20:05:00.000-07:00</published><updated>2011-08-29T20:06:50.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code generation'/><title type='text'>Javascript Wrapping dump</title><content type='html'>&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://sites.google.com/site/soubok2/javascript"&gt;Wrapping effort&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="https://developer.mozilla.org/En/SpiderMonkey/FOSS"&gt;SpiderMondey All Links: C++ and JS&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://spiderape.sourceforge.net/why/"&gt;SWIG and JS opinion&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://developer.apple.com/mac/library/documentation/Carbon/Reference/WebKit_JavaScriptCore_Ref/index.html"&gt;Webkit: JavaScriptCore Framework Reference&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://will.thimbleby.net/script/"&gt;Scripting with JavaScript in Cocoa&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://gitorious.org/%7EAndersBakken/webkit/andersbakkens-webkit/commits/hybrid"&gt;Webkit: See this!&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://developer.apple.com/mac/library/documentation/Cocoa/Reference/WebKit/Protocols/WebScripting_Protocol/Reference/Reference.html"&gt;Webkit: WebScripting Protocol Reference&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://parmanoir.com/Sidestepping_JavascriptCore%27s_JSEvaluateScript"&gt;Sidestepping JavascriptCore's JSEvaluateScript&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://lists.apple.com/archives/Webkitsdk-dev/2008/Jun/msg00056.html"&gt;Re: Passing a JavaScript callback to a WebKit plug-in&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.netmite.com/android/mydroid/external/webkit/JavaScriptCore/API/testapi.c"&gt;external/webkit/JavaScriptCore/API/testapi.c&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.pubbs.net/200908/webkit/21297-webkit-dev-jsc-callback-functions-returning-exception-what-should-be-the-jsvalueref-return.html"&gt;[webkit-dev] JSC: Callback functions returning exception, what should be the JSValueRef return?&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.mail-archive.com/webkit-help@lists.webkit.org/msg00161.html"&gt;[webkit-help] Issues while calling JS Callback functions from C++&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://old.nabble.com/JSObjectMakeFunction-question-td23814690.html"&gt;Old Nabble - Webkit - JSObjectMakeFunction question&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://parmanoir.com/Taming_JavascriptCore_within_and_without_WebView"&gt;Must SEE: Taming JavascriptCore within and without WebView&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.softpedia.com/get/Programming/Coding-languages-Compilers/js2cpp.shtml"&gt;Download js2cpp 1.05.01 Free - JavaScript to C++ compiler - Softpedia&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="https://lists.webkit.org/pipermail/webkit-dev/2008-December/005984.html"&gt;[webkit-dev] JavaScriptCore: Accessing things created in C from script&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://trac.yorba.org/browser/webkit/vendor/40351/JavaScriptCore/API/tests/testapi.c?rev=3"&gt;/webkit/vendor/40351/JavaScriptCore/API/tests/testapi.c – Yorba&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.pubbs.net/200905/webkit/125611-webkit-dev-jsclasscreate-amp-jsobjectsetproperty-question.html"&gt;[webkit-dev] JSClassCreate &amp;amp; JSObjectSetProperty question&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="https://lists.webkit.org/pipermail/webkit-dev/2009-January/006417.html"&gt;GOOD: [webkit-dev] Extending webkit javascript&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://blog.puremedia-online.de/2009/08/20/javascript-summed-up-3-type-checking/"&gt;JavaScript summed up #3: Type checking — puremedia&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://programming.top54u.com/post/Creating-Javascript-Enum-values.aspx"&gt;Creating Javascript Enum values&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.rahulsingla.com/blog/2010/02/enums-in-javascript-part-2"&gt;Enums in Javascript - Part 2 | rahulsingla.com&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://stackoverflow.com/questions/130396/are-there-constants-in-javascript"&gt;Are there constants in Javascript? - Stack Overflow&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://www.javascriptkata.com/2007/03/28/how-to-write-constants-in-javascript/"&gt;GOOD Constants: Nice Article and Comments&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;a href="http://ejohn.org/blog/javascript-method-overloading/#postcomment"&gt;John Resig - JavaScript Method Overloading&lt;/a&gt; 			&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://blog.phpbuero.de/?p=17"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;twoBirds AJAX Development Blog » Blog Archive » Comment on John Resigs method overloading&lt;/span&gt;&lt;/a&gt; 		&lt;/dt&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3160498312794237749?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3160498312794237749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3160498312794237749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3160498312794237749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3160498312794237749'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2011/08/javascript-wrapping-dump.html' title='Javascript Wrapping dump'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2769494085341181234</id><published>2011-05-31T15:51:00.001-07:00</published><updated>2011-05-31T15:51:32.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Perl</title><content type='html'>Essential perl tutorial &lt;a href="http://cslibrary.stanford.edu/108/EssentialPerl.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2769494085341181234?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2769494085341181234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2769494085341181234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2769494085341181234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2769494085341181234'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2011/05/perl.html' title='Perl'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3261102125860506214</id><published>2011-04-12T09:15:00.001-07:00</published><updated>2011-04-12T09:15:57.156-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Computers Know How?</title><content type='html'>&lt;div&gt;1) Computer Architecture basics&lt;/div&gt;&lt;div&gt;2) Operating Systems basics&lt;/div&gt;&lt;div&gt;3) Different operating systems: MacOS, Ubuntu, Redhat, Knoppix, Windows, IndLinux&lt;/div&gt;&lt;div&gt;4) System level software on different OS's&lt;/div&gt;&lt;div&gt;5) Applications and development on different OS's&lt;/div&gt;&lt;div&gt;6) Networks - how computers collaborate&lt;/div&gt;&lt;div&gt;7) Use of computers for solving real world problems in different fields - medicine, art, science,psychology,physics,chemistry,maths&lt;/div&gt;&lt;div&gt;(This involves enhancing capabilities of computers in different ways - networks, OS, Computer Architecture)&lt;/div&gt;&lt;div&gt;(Making development easier with programming languages)&lt;/div&gt;&lt;div&gt;(Designing algorithms that leverage the computer resources in the best way)&lt;/div&gt;&lt;div&gt;8) Computing machines which are variations of PC's like robots, phones, smart phones, gadgets (all above points apply to such machines. And really point number 7 is the one where mobile industry will be going)&lt;/div&gt;&lt;div&gt;9) Categories of applications - Databases, Browsers etc etc.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3261102125860506214?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3261102125860506214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3261102125860506214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3261102125860506214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3261102125860506214'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2011/04/computers-know-how.html' title='Computers Know How?'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-6907835674063766297</id><published>2011-04-12T09:08:00.001-07:00</published><updated>2011-04-12T09:08:36.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>const or not</title><content type='html'>&lt;div&gt;To tell if a variable is const or not, you need to look at the right-most occurrence of the const qualifier (that appears before the variable name). If the right-most const occurs after all other type modifiers (such as pointers), then the variable is const. Otherwise, it is not.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are some examples of const declarations :&lt;/div&gt;&lt;div&gt;const char a; // A constant character&lt;/div&gt;&lt;div&gt;char const b; // A constant character (the same)&lt;/div&gt;&lt;div&gt;char *const c; // A constant pointer to a character&lt;/div&gt;&lt;div&gt;const char *const d; // A constant pointer to a constant character&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is an example of a declaration that is not const:&lt;/div&gt;&lt;div&gt;const char *e; // A pointer to a constant character. The pointer may be modified.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this case, the pointer e can change---it's only the value being pointed to that is read-only&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-6907835674063766297?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/6907835674063766297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=6907835674063766297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6907835674063766297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6907835674063766297'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2011/04/const-or-not.html' title='const or not'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2708652039606023525</id><published>2011-03-28T09:13:00.001-07:00</published><updated>2011-04-12T09:09:45.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Python</title><content type='html'>http://www.korokithakis.net/tutorials/python&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2708652039606023525?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2708652039606023525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2708652039606023525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2708652039606023525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2708652039606023525'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2011/03/python.html' title='Python'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8181121902687563225</id><published>2011-03-18T09:00:00.001-07:00</published><updated>2011-04-12T09:02:54.799-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Code generation'/><title type='text'>ccache</title><content type='html'>http://www.rootninja.com/install-ccache-to-build-code-faster/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8181121902687563225?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8181121902687563225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8181121902687563225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8181121902687563225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8181121902687563225'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2011/03/ccache.html' title='ccache'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2316950539687834478</id><published>2010-10-09T19:35:00.000-07:00</published><updated>2010-10-09T19:37:05.939-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Open Source Misc</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Arial, Tahoma, Helvetica, FreeSans, sans-serif;font-size:100%;color:#444444;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;List of free and open source software packages on Wikipedia &lt;a href="http://en.wikipedia.org/wiki/List_of_free_and_open_source_software_packages"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2316950539687834478?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2316950539687834478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2316950539687834478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2316950539687834478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2316950539687834478'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/10/open-source-software-list-on-wikipedia.html' title='Open Source Misc'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-1928932004515100529</id><published>2010-09-16T11:28:00.000-07:00</published><updated>2011-04-12T09:03:30.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Generating SSH key pair</title><content type='html'>Generating ssh key pair on MacOS X &lt;a href="http://kb.siteground.com/article/How_to_generate_an_SSH_key_pair_in_Mac_OS.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-1928932004515100529?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/1928932004515100529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=1928932004515100529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1928932004515100529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1928932004515100529'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/09/generating-ssh-key-pair.html' title='Generating SSH key pair'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-863502447561333822</id><published>2010-07-31T08:21:00.001-07:00</published><updated>2010-07-31T08:22:14.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Memory management</title><content type='html'>Memory management in different programming languages &lt;a href="http://www.memorymanagement.org/articles/lang.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-863502447561333822?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/863502447561333822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=863502447561333822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/863502447561333822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/863502447561333822'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/07/memory-management.html' title='Memory management'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3151367021665657390</id><published>2010-07-02T08:50:00.000-07:00</published><updated>2010-07-09T06:22:36.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='World'/><title type='text'>Languages</title><content type='html'>Discover Sanskrit &lt;a href="http://sanskrit.farfromreal.com/"&gt;here&lt;/a&gt;&lt;br /&gt;History of English &lt;a href="http://www.englishclub.com/english-language-history.htm"&gt;here&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3151367021665657390?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3151367021665657390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3151367021665657390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3151367021665657390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3151367021665657390'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/07/language-sanskrit.html' title='Languages'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7032745290199845267</id><published>2010-07-01T07:16:00.001-07:00</published><updated>2011-03-09T07:52:53.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><title type='text'>Mac OS</title><content type='html'>Programming on Mac OS: &lt;a href="http://osxbook.com/book/bonus/ancient/whatismacosx//programming.html"&gt;Nice Article&lt;/a&gt;&lt;div&gt;Dejal free and useful apps: &lt;a href="http://www.dejal.com/"&gt;here&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/6286908420471011044-7032745290199845267?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7032745290199845267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7032745290199845267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7032745290199845267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7032745290199845267'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/07/mac-os.html' title='Mac OS'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2347880515138559911</id><published>2010-07-01T06:59:00.000-07:00</published><updated>2011-04-12T09:12:21.009-07:00</updated><title type='text'>Objective-C in SWIG</title><content type='html'>Coming soon. For now, check the Objective C module for SWIG.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2347880515138559911?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2347880515138559911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2347880515138559911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2347880515138559911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2347880515138559911'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/07/objective-c-in-swig.html' title='Objective-C in SWIG'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7555059966391053081</id><published>2010-06-25T07:44:00.000-07:00</published><updated>2011-04-12T09:05:05.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Javascript and C++</title><content type='html'>http://flusspferd.org/&lt;br /&gt;http://www.cs.unm.edu/~cello/jsgen/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7555059966391053081?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7555059966391053081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7555059966391053081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7555059966391053081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7555059966391053081'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/06/javascript-and-c.html' title='Javascript and C++'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8366793876447413236</id><published>2010-06-25T06:32:00.000-07:00</published><updated>2011-04-12T09:05:21.141-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><title type='text'>Graphics and Image Processing</title><content type='html'>Image Processing Fundamentals Video &lt;a href="http://www.slideworld.com/slideshow.aspx/digital-image-processing-ppt-ppt-image-processing-ppt-2765362"&gt;here&lt;/a&gt;&lt;br /&gt;Luminous Landscape &lt;a href="http://luminous-landscape.com/"&gt;here&lt;/a&gt;&lt;br /&gt;BRDF models good &lt;a href="http://www.yaldex.com/open-gl/ch14lev1sec3.html"&gt;here&lt;/a&gt;&lt;br /&gt;Rendering &lt;a href="http://computersight.com/software/simulating-light-inside-rendering-technology/"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8366793876447413236?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8366793876447413236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8366793876447413236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8366793876447413236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8366793876447413236'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/06/graphics-and-image-processing.html' title='Graphics and Image Processing'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-9213930562038121810</id><published>2010-06-25T05:50:00.001-07:00</published><updated>2011-04-12T09:09:03.635-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Algorithms and programming</title><content type='html'>http://www.topcoder.com/tc?module=Static&amp;amp;d1=tutorials&amp;amp;d2=alg_index&lt;br /&gt;http://www.codechef.com/&lt;br /&gt;http://blog.i.ndigo.com.br/2009/11/the-nature-of-a-programming-language/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-9213930562038121810?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/9213930562038121810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=9213930562038121810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/9213930562038121810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/9213930562038121810'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/06/algorithms-and-programming.html' title='Algorithms and programming'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2491065195379655730</id><published>2010-06-24T04:24:00.000-07:00</published><updated>2011-04-12T09:02:24.995-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Links: Knowledge, business and Innovation</title><content type='html'>http://www.ted.com/talks/elizabeth_gilbert_on_genius.html&lt;br /&gt;http://video.google.com/videoplay?docid=1181750045682633998#&lt;br /&gt;http://video.forbes.com/top-shows/breakout&lt;br /&gt;http://www.youtube.com/education?b=400&lt;br /&gt;http://www.howstuffworks.com&lt;br /&gt;http://www.techventuresource.org/&lt;br /&gt;http://www.leadershape.org/resources/books.asp?flash=true&lt;br /&gt;http://www.enterpriseminnesota.org/Magazine-eNewsletter/Enterprise-Minnesota-Magazine/2007-Special/The-Year-in-Tech.aspx&lt;br /&gt;http://www.quickmba.com/entre/&lt;br /&gt;http://www.businessplans.org/directory.html&lt;br /&gt;http://www.socialedge.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2491065195379655730?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2491065195379655730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2491065195379655730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2491065195379655730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2491065195379655730'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/06/links-knowledge-business-and-innovation.html' title='Links: Knowledge, business and Innovation'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2790375244375955897</id><published>2010-06-04T06:15:00.001-07:00</published><updated>2011-04-12T09:17:56.045-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Programming languages one must learn</title><content type='html'>http://www.myelin.co.nz/notes/kent-pitman-languages.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2790375244375955897?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2790375244375955897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2790375244375955897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2790375244375955897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2790375244375955897'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/06/programming-languages-one-must-learn.html' title='Programming languages one must learn'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3850517367395583347</id><published>2010-06-01T05:45:00.000-07:00</published><updated>2011-04-12T08:57:57.161-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code generation'/><title type='text'>SWIG Execution model (Taken from SWIG docs)</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;An integrated C preprocessor reads a collection of configuration files and the specified interface file into memory.  The preprocessor performs the usual functions including macro expansion and file inclusion.   However, the preprocessor also performs some  transformations of the interface.  For instance, &lt;tt&gt;#define&lt;/tt&gt; statements are sometimes  transformed into &lt;tt&gt;%constant&lt;/tt&gt;&lt;/span&gt; declarations.  In addition, information related to  file/line number tracking is inserted. &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A C/C++ parser reads the preprocessed input and generates a full parse tree of all of the SWIG directives and C declarations found. The parser is responsible for many aspects of the system including renaming, declaration annotation, and template expansion.  However, the  parser does not produce any output nor does it interact with the target language module as it runs.  SWIG is not a one-pass compiler. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A type-checking pass is made. This adjusts all of the C++ typenames  to properly handle namespaces, typedefs, nested classes, and other issues related to  type scoping. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A semantic pass is made on the parse tree to collect information related to properties of the C++ interface.  For example, this pass would determine whether or not a class allows a default constructor. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A code generation pass is made using a specific target language module.  This phase is responsible for generating the actual wrapper code.  All of SWIG's user-defined modules are invoked during this latter stage of compilation. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3850517367395583347?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3850517367395583347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3850517367395583347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3850517367395583347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3850517367395583347'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/06/swig-execution-model-taken-from-swig.html' title='SWIG Execution model (Taken from SWIG docs)'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-1571068686065298176</id><published>2010-05-31T06:48:00.000-07:00</published><updated>2011-04-12T08:56:18.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Javascript</title><content type='html'>Javascript w3schools &lt;a href="http://www.w3schools.com/js/default.asp"&gt;tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.phpied.com/3-ways-to-define-a-javascript-class/"&gt;3 ways&lt;/a&gt; to define a Javascript class&lt;br /&gt;Classes, Inheritance, Objects in Javascript &lt;a href="http://www.academa.si/?content=http://www.academa.si/html/articles/js/professionalJavaScript/implementingJavaScriptInheritance.htm"&gt;here&lt;/a&gt;, &lt;a href="http://www.simplysolutions.com/articles/javascript/javascript.html"&gt;here&lt;/a&gt; and &lt;a href="http://everything2.com/title/JavaScript+objects"&gt;here&lt;/a&gt;&lt;br /&gt;Object oriented javascript &lt;a href="http://weblogs.asp.net/saurabhnijhawan/archive/2009/11/11/object-oriented-javascript-using-prototype-object.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163419.aspx"&gt;here&lt;/a&gt;&lt;br /&gt;Javascript passing by value or by reference &lt;a href="http://snook.ca/archives/javascript/javascript_pass"&gt;here&lt;/a&gt;&lt;br /&gt;A nice &lt;a href="http://www.nakedjavascript.com/tag/squirrelfishextreme"&gt;post&lt;/a&gt; enlisting major javascript engines.&lt;div&gt;A &lt;a href="http://parmanoir.com/Taming_JavascriptCore_within_and_without_WebView"&gt;little&lt;/a&gt; about JavaScriptCore framework&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-1571068686065298176?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/1571068686065298176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=1571068686065298176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1571068686065298176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1571068686065298176'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/05/javascript.html' title='Javascript'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-1001181080734193886</id><published>2010-05-04T10:09:00.000-07:00</published><updated>2010-05-04T10:10:55.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Startup ...</title><content type='html'>A cozy Read: &lt;a href="http://www.opazazzyzen.com/2010/05/the-life-of-a-startup-founders-significant-other/"&gt;Life of a startup-founders-significant-other&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-1001181080734193886?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/1001181080734193886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=1001181080734193886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1001181080734193886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1001181080734193886'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/05/startup.html' title='Startup ...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7575161616747937831</id><published>2010-02-25T21:59:00.000-08:00</published><updated>2011-04-12T08:48:59.422-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>How to Install MacOS from DMG</title><content type='html'>A very nice tutorial on &lt;a href="http://gwhiz.wordpress.com/2006/09/21/installing-leopard-from-dmg/"&gt;installing MacOS X from DMG&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7575161616747937831?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7575161616747937831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7575161616747937831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7575161616747937831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7575161616747937831'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/02/how-to-install-macos-from-dmg.html' title='How to Install MacOS from DMG'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-5127802166332658527</id><published>2010-02-16T11:41:00.000-08:00</published><updated>2010-02-16T11:43:48.182-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C/C++ and Linker</title><content type='html'>A Beginner's guide to linkers &lt;a href="http://www.lurklurk.org/linkers/linkers.html"&gt;here&lt;/a&gt; by David Drysdale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-5127802166332658527?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/5127802166332658527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=5127802166332658527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5127802166332658527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5127802166332658527'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/02/cc-and-linker.html' title='C/C++ and Linker'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4290857430298084777</id><published>2010-02-11T10:30:00.000-08:00</published><updated>2010-05-28T07:33:18.307-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Object oriented design: Why?</title><content type='html'>&lt;div&gt;A great &lt;a href="http://www.codeproject.com/KB/architecture/odftp.aspx"&gt;article&lt;/a&gt; by David Veeneman on code project.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-4290857430298084777?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4290857430298084777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4290857430298084777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4290857430298084777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4290857430298084777'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/02/object-oriented-design-why.html' title='Object oriented design: Why?'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-254302694673596310</id><published>2010-02-11T10:08:00.000-08:00</published><updated>2010-02-11T10:13:50.423-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Wirth's Law</title><content type='html'>&lt;div style="text-align: justify;"&gt;Wirth's law in computing was made popular by Niklaus Wirth in 1995. The law states:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;Software gets slower faster than hardware gets faster&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;or  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;Software is slowing faster than hardware is accelerating.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hardware is clearly getting faster over time, and some of that development is quantified by &lt;a href="http://en.wikipedia.org/wiki/Moore%27s_law"&gt;Moore's law&lt;/a&gt;; Wirth's law points out that this does not imply that work is actually getting done faster. Programs tend to get bigger and more complicated over time, and sometimes programmers even rely on Moore's law to justify writing slow code, thinking that it won't be a problem because the hardware will get faster anyway.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As an example of Wirth's law, one can observe that the time it takes to boot a modern PC with a modern operating system is usually no less than the time it took to boot a PC five or ten years ago.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-254302694673596310?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/254302694673596310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=254302694673596310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/254302694673596310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/254302694673596310'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/02/wirths-law.html' title='Wirth&apos;s Law'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7945485856231025735</id><published>2009-11-30T12:30:00.000-08:00</published><updated>2011-04-12T08:45:46.679-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><title type='text'>Changing default header comments in Xcode</title><content type='html'>Simple, and easy.... Go to: /Developer/Library/XCode/File Templates and modify  the templates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7945485856231025735?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7945485856231025735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7945485856231025735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7945485856231025735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7945485856231025735'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/changing-default-header-comments-in.html' title='Changing default header comments in Xcode'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-188458445279105726</id><published>2009-11-07T21:42:00.001-08:00</published><updated>2009-11-07T21:44:33.340-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code generation'/><title type='text'>Lex &amp; Yacc - A Compact Guide!</title><content type='html'>Download a compact guide to Lex &amp;amp; Yacc &lt;a href="http://epaperpress.com/lexandyacc/index.html"&gt;here&lt;/a&gt;. Thanks to Tom Niemann at epaperpress.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-188458445279105726?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/188458445279105726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=188458445279105726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/188458445279105726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/188458445279105726'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/lex-yacc-compact-guide.html' title='Lex &amp; Yacc - A Compact Guide!'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-1822573654011557648</id><published>2009-11-07T14:21:00.000-08:00</published><updated>2011-05-16T20:03:21.293-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Swig'/><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Google summer of code, 2009</title><content type='html'>&lt;div style="text-align: justify;"&gt;My awesome experience with the Google Summer of Code(GSoC) program, 2009 ended recently.  I worked with &lt;a href="http://www.swig.org/"&gt;swig&lt;/a&gt;, an open source software development tool that connects programs written in C and C++ with a variety of high-level programming languages. The GSoC program is an incredible opportunity for students to work and associate with world class open source organizations. And not to miss, the association with Google - what else you need? Well, you also get one year ACM membership, lucrative stipend, and a cool Google T-Shirt.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It's different experience working on an open source project. Open communication, tremendous support, a 'cool'  way to develop software and experienced people around you - people who believe that software like food is more enjoyable when it is available for free. I felt all this while working on swig. Working for swig in the Google Summer of Code program provides an incredible opportunity for students with interest in code generation, programming languages and interoperability. Great support from the project owners  - especially William and Olly and not to forget the support you get from mentors like Jan Jezabek.  The project is well documented and you get a good support to quick start development. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For the swig GSoC, 2009 project descriptions link &lt;a href="http://socghop.appspot.com/org/home/google/gsoc2009/swig"&gt;here&lt;/a&gt;, and my project &lt;a href="http://www.dabeaz.com/cgi-bin/wiki.pl?ObjectiveCSupport"&gt;wiki&lt;/a&gt;. The project also finds a mention at Google Open Source Blog &lt;a href="http://googland.blogspot.com/2009/11/g-swig-second-summer-of-code.html"&gt;here&lt;/a&gt;. The branch source can be found &lt;a href="https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-ashishs99/"&gt;here&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&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/6286908420471011044-1822573654011557648?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/1822573654011557648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=1822573654011557648' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1822573654011557648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1822573654011557648'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/google-summer-of-code-2009.html' title='Google summer of code, 2009'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2776113428225127763</id><published>2009-11-07T14:15:00.000-08:00</published><updated>2009-11-28T13:05:57.134-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><category scheme='http://www.blogger.com/atom/ns#' term='Swig'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Swig and the Objective-C support</title><content type='html'>&lt;div style="text-align: justify;"&gt;I am currently working to add the support for Objective-C as a target language to swig, an open source 'Wrapper and Interface' generator for bridging the gap between C++ and numerous supported languages.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For details of the project, refer to the project &lt;a href="http://www.dabeaz.com/cgi-bin/wiki.pl?ObjectiveCSupport"&gt;wiki&lt;/a&gt;.  The project source, in early stages of development, is available &lt;a href="https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-ashishs99/"&gt;here&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/6286908420471011044-2776113428225127763?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2776113428225127763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2776113428225127763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2776113428225127763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2776113428225127763'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/swig-and-objective-c-support.html' title='Swig and the Objective-C support'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8718830862516874069</id><published>2009-11-06T11:32:00.001-08:00</published><updated>2010-05-24T02:53:43.640-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Starting with the web ...</title><content type='html'>A good basic mysql tutorial &lt;a href="http://www.troubleshooters.com/codecorn/mysql/basictutorial.htm"&gt;here&lt;/a&gt; and &lt;a href="http://www.devshed.com/c/a/MySQL/Beginning-MySQL-Tutorial/"&gt;here&lt;/a&gt;&lt;div&gt;Article: &lt;a href="http://www.devshed.com/c/a/Apache/Apache-and-the-Internet/"&gt;Apache and the internet&lt;/a&gt;&lt;/div&gt;&lt;div&gt;The Apache definitive &lt;a href="http://download.unsada.ac.id/wp-content/uploads/2009/06/apache-definitive-guide.pdf"&gt;guide&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Link to &lt;a href="http://www.webdesignerdepot.com/2009/03/8-tips-to-design-a-charity-website/"&gt;Web-Designer-Depot&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;Start with &lt;a href="http://www.w3schools.com/js/default.asp"&gt;Javascript&lt;/a&gt; at w3schools&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8718830862516874069?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8718830862516874069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8718830862516874069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8718830862516874069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8718830862516874069'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/starting-with-web.html' title='Starting with the web ...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4736016585740033748</id><published>2009-11-04T12:50:00.000-08:00</published><updated>2009-11-04T12:56:28.150-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Maximus ...</title><content type='html'>&lt;div style="text-align: justify;"&gt;[An article written by Varinder, my friend,. This has got him a Dell laptop in reward from Microsoft :) Posted here, with some tweaking,  keep afresh the memories of wonderful time we two have spent together in producing quality software..... ]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Make .NET windows work with C++! It would give users more native looking user interface, and programmers a better platform for rapid application development... seems logical&lt;/span&gt; - I thought. I was excited with the overall idea of Maximus - A project which would allow Clients developed in .NET to communicate to and fro with a C++ application. The challenges involved in this endeavor were apparent:  Handling of function calls, function pointers, delegates, events from .NET to C++ and vice-versa was a pretty complex task and so was re-using the .NET controls in MFC environment.&lt;br /&gt;&lt;br /&gt;After days of exploring, I could only find few solutions: Definition files, PInvoke methods, Extern methods... and certainly I could not find any solution for hosting .NET controls in MFC environment. Though, the existing approaches provided solutions - really? but they seemed non-appealing to me. &lt;span style="font-style: italic;"&gt;Why? &lt;/span&gt;--- because I did not want to settle for an approach which was not object oriented given our large code base and all of the advantages Object Oriented Programming provides in this regard. A thorough research led to a solution which was simple and flexible and which provided us with the platform to tackle all the above challenges. I followed two approaches for designing a generic interface class, implementing the well know industry set patterns. With this all the above key areas were handled in objective manner. The solution was generic and it provided with an opportunity to develop a Code Generator in Perl which would generate stub class for implementation.&lt;br /&gt;&lt;br /&gt;The other challenge was invocation of the .NET windows in MFC environment which was solved by writing a generic library in .NET which perfectly simulates the native palettes/non-dialog window in MFC environment. The approached(s) used are not only a boost for the .NET world, but we have opened many doors for those who are reluctant to code in C, C++ but love to code in .NET. and for all this, the development environment was VS 2005.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-4736016585740033748?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4736016585740033748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4736016585740033748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4736016585740033748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4736016585740033748'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/maximus.html' title='Maximus ...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3312620048251014801</id><published>2009-10-20T13:29:00.000-07:00</published><updated>2011-04-12T08:56:37.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Notes: Makefiles</title><content type='html'>&lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;Why we need Makefiles? &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Make program can be called easily from a shell script or a cron job thus we can automate the build process using Make. Instructions for the Make program are stored in a text file which contains commands that must be processed by Make. This file is normally called makefile or Makefile. As a convention, GNU programs named their makefile; Makefile because it is easy to see. If you give it another name, just make sure you include the option –f to make command for e.g.: if you have a makefile named myMakeFile then the command we used to instruct make to process that file is:  &lt;i&gt;Make –f myMakeFile&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Makefile Structure&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;A makefile consists of target, dependencies and command(s) section. Dependencies are things or source code needed to make a target, Target is usually an executable or object filename. Commands are needed to make the target. Following is the simple description of the makefile:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Target: dependencies&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;command &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;command&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;Comments&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; comments are put using #&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Variables in Makefiles&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; Use variables for short writing and for making future modifications easier.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Defining a Variable: $VAR=value (By convention all uppercase letters are used for variable name)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Using a Variable: $(VAR)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Two kinds of Variables:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(a) Recursively expanded variable&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;TOP=/home/project&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;SRC=$(TOP)/SRC&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Here SRC is expanded first by expanding TOP. This type of variable is not suitable for the following command&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;CC=gcc –o&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;CC=$(CC) –o2&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;This is an endless loop&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(b) Simply expanded variable:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;To overcome above problem we can use this kind of variable as&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;CC: =gcc –o&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;CC+=$(CC) –o2&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;A Simple Example&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;------------mainfile.o ------------mainfile.c&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;|&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;|&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Myprog ---------&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;|&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;|&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;-------------math.o---------------math.c&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Above graph shows the relationship &amp;amp; dependencies among files that are used to make executable Myprog.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;If we type “make myprog” at the command prompt; make will walk the above graph to find all the dependencies that have to be changed, then walk back (against the arrows) updating targets until it rebuilds Myprog. Consider the following target present in a makefile.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Myprog: mainfile.o math.o&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Cc –o Myprog mainfile.o math.o&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;When we give the command “make Myprog” following steps are performed in order: mainfile.o and math.o are checked to see if they are up-to-date. If they are up-to-date and Myprog is newer then these files, make will assume that myprogdoesn’t need to be rebuilt. Otherwise it will make sure that each of these files is up-to-date by finding the rules which define their dependencies(go to 4). After 3,make will execute the command on the second line to update Myprog.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;More on makefiles&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;1. Not all targets used by “make” are files to be built. Some are merely named lists of other targets to be built. A common example is the target “all”. This is often the first target in a makefile (because make takes the first target in the makefile as its “default” if no target is specified on the command line) and is usually just a list of dependencies which do the actual file building.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;2. Make recognizes each command line by a tab character. The commands within the a rule are executed by make whenever make determines that the target must be rebuilt&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;3. test: -mkdir ./test&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;cp myproj test &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Placing – sign tells make to continue processing the remaining command lines even if this command line fails.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;4. VAR= abc don’t give the space before abc.some make programs will take this as a part of a string.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;The command section of a makefile rule may recursively call “make”. In case our project contains sub-directories and a different makefile for each of them. For example if we have&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;------------------udp&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;|&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Project---------&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;|&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;------------------Tcp&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;And separate makefiles for each of the three folders. Top-level makefile (in project) will be like&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;all:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(cd Udp; make all)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(cd Tcp; make all)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;clean:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(cd Udp; make clean)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(cd Tcp; make clean)&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;More&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For a complete tutorial on Make and makefiles link &lt;a href="http://www.eng.hawaii.edu/Tutor/Make/index.html"&gt;here&lt;/a&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3312620048251014801?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3312620048251014801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3312620048251014801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3312620048251014801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3312620048251014801'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/10/my-notes-on-makefiles.html' title='Notes: Makefiles'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4440370064499318182</id><published>2009-10-20T13:19:00.000-07:00</published><updated>2011-04-12T08:54:41.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Mico contribution</title><content type='html'>&lt;div&gt;My Contribution to Mico &lt;a href="http://www.mail-archive.com/search?l=mico-devel%40mico.org&amp;amp;q=Ashish+Kumar+Sharma"&gt;here&lt;/a&gt; and &lt;a href="http://www.mico.org/pipermail/mico-announce/2008/000033.html"&gt;here&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/6286908420471011044-4440370064499318182?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4440370064499318182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4440370064499318182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4440370064499318182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4440370064499318182'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/10/mico.html' title='Mico contribution'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8009993332284660212</id><published>2009-10-19T11:56:00.000-07:00</published><updated>2011-05-16T19:53:17.830-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Version Contol and Commands</title><content type='html'>Version control with &lt;a href="http://svnbook.red-bean.com/en/1.0/index.html"&gt;subversion(svn)&lt;br /&gt;&lt;/a&gt;Version control with &lt;a href="http://mercurial.selenic.com/wiki/QuickStart"&gt;Mercurial&lt;/a&gt;&lt;br /&gt;Git for Subversion users &lt;a href="http://www.ibm.com/developerworks/opensource/library/l-git-subversion-1/index.html"&gt;here&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://ariejan.net/2007/07/04/how-to-resolve-subversion-conflicts/"&gt;How to resolve subversion conflicts&lt;/a&gt; by Ariejan.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8009993332284660212?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8009993332284660212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8009993332284660212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8009993332284660212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8009993332284660212'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/10/subversion.html' title='Version Contol and Commands'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8534890646539386892</id><published>2009-09-09T12:14:00.000-07:00</published><updated>2009-11-04T13:07:04.779-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Serial ports communication</title><content type='html'>Introduction to serial ports communication: &lt;a href="http://www.taltech.com/TALtech_web/resources/intro-sc.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8534890646539386892?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8534890646539386892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8534890646539386892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8534890646539386892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8534890646539386892'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/09/serial-ports-communication.html' title='Serial ports communication'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8036076495071900734</id><published>2009-08-31T09:51:00.001-07:00</published><updated>2009-11-04T13:07:56.256-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Setting PATH on MacOS X</title><content type='html'>Simple but sometimes we forget to set path 'permanently' on our MacOS X machine: here is the command: sudo vi /etc/paths&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8036076495071900734?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8036076495071900734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8036076495071900734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8036076495071900734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8036076495071900734'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/08/setting-path-on-macos-x.html' title='Setting PATH on MacOS X'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2641870844260175188</id><published>2009-08-13T11:51:00.000-07:00</published><updated>2009-08-13T11:53:52.659-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Platform independent Threading in C++</title><content type='html'>&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;Nice set of C++ classes for Threads, Mutexes and more. Find &lt;a href="http://www.codeguru.com/cpp/cpp/cpp_managed/threads/article.php/c14447"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2641870844260175188?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2641870844260175188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2641870844260175188' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2641870844260175188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2641870844260175188'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/08/platform-independent-threading-in-c.html' title='Platform independent Threading in C++'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2242976593470863083</id><published>2009-08-10T10:01:00.000-07:00</published><updated>2009-08-10T17:38:00.657-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Auto tools, Automake, Autoconf</title><content type='html'>An Introduction to GNU &lt;a href="http://gnu.cs.pu.edu.tw/software/automake/manual/html_node/Autotools-Introduction.html#Autotools-Introduction"&gt;Autotools&lt;/a&gt;&lt;br /&gt;Autoconf &lt;a href="http://www.gnu.org/software/hello/manual/autoconf/Autoconf-Macro-Index.html"&gt;Macro Index&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and the complete doc on &lt;a href="http://gnu.cs.pu.edu.tw/software/automake/manual/html_node/index.html#Top"&gt;Automake&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/6286908420471011044-2242976593470863083?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2242976593470863083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2242976593470863083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2242976593470863083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2242976593470863083'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/08/autoconf.html' title='Auto tools, Automake, Autoconf'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8534733124578862721</id><published>2009-08-08T14:07:00.000-07:00</published><updated>2009-10-27T11:46:12.952-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>MacOS X ...</title><content type='html'>&lt;div&gt;MacOS X system architecture &lt;a href="http://developer.apple.com/macosx/architecture/index.html"&gt;diagram&lt;/a&gt; at Apple's site.&lt;/div&gt;Looking for open source  packages for MacOS X and iPhone? link &lt;a href="http://www.opensource.apple.com/"&gt;here&lt;/a&gt;&lt;div&gt;... and the quintessential &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; site&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-8534733124578862721?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8534733124578862721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8534733124578862721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8534733124578862721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8534733124578862721'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/08/macos-x-and-opensource.html' title='MacOS X ...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3518069875325649188</id><published>2009-08-01T09:46:00.001-07:00</published><updated>2009-08-01T09:48:13.696-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><title type='text'>Exception handling in Cocoa</title><content type='html'>A great &lt;a href="http://macdevcenter.com/pub/a/mac/2007/07/31/understanding-exceptions-and-handlers-in-cocoa.html"&gt;article&lt;/a&gt; on exception handling in cocoa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3518069875325649188?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3518069875325649188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3518069875325649188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3518069875325649188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3518069875325649188'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/08/exception-handling-in-cocoa.html' title='Exception handling in Cocoa'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7243299751865026884</id><published>2009-07-31T13:40:00.000-07:00</published><updated>2010-08-05T07:44:26.165-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++ tutorials</title><content type='html'>A good sweet C++ language tutorial by Juan Soulie &lt;a href="http://www.cplusplus.com/doc/tutorial/"&gt;here&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Collection of C++ programming language &lt;a href="http://www.cs.wustl.edu/%7Eschmidt/C++/"&gt;tutorials&lt;/a&gt; by Prof. Douglas C. Schmidt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.newty.de/fpt/index.html"&gt;Function pointers &lt;/a&gt;tutorial by Lars Haendel&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.newty.de/jakubik/callback.html"&gt;Callbacks in C++&lt;/a&gt; by Paul Jakubik&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A great article on &lt;a href="http://www.possibility.com/Cpp/const.html"&gt;const-correctness &lt;/a&gt;in C++&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7243299751865026884?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7243299751865026884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7243299751865026884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7243299751865026884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7243299751865026884'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/07/c-tutorial.html' title='C++ tutorials'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-6446607848577035848</id><published>2009-07-31T12:22:00.000-07:00</published><updated>2011-04-12T08:53:45.141-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Want to improve your memory?</title><content type='html'>Interesting read: &lt;a href="http://health.howstuffworks.com/10-ways-to-improve-memory.htm"&gt;Top 10 ways to increase your memory?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-6446607848577035848?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/6446607848577035848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=6446607848577035848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6446607848577035848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6446607848577035848'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/07/increase-your-memory.html' title='Want to improve your memory?'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-6869417374909421005</id><published>2009-07-30T17:31:00.000-07:00</published><updated>2009-11-04T13:03:55.570-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Google and Microsoft</title><content type='html'>Good read &lt;a href="http://computer.howstuffworks.com/google-microsoft.htm"&gt;Will Google Destroy Microsoft?&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-6869417374909421005?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/6869417374909421005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=6869417374909421005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6869417374909421005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6869417374909421005'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/07/google-and-microsoft.html' title='Google and Microsoft'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-2168262454652544655</id><published>2009-07-25T22:26:00.000-07:00</published><updated>2011-04-12T08:45:09.076-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Determining the Vptr address</title><content type='html'>The location of Vptr, pointer to the virtual table, for a class with virtual functions, depends upon the compiler implementation. To determine the address of vptr for your compiler, link to devX tip &lt;a href="http://www.devx.com/tips/Tip/14876"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-2168262454652544655?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/2168262454652544655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=2168262454652544655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2168262454652544655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/2168262454652544655'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/07/determining-vptr-address.html' title='Determining the Vptr address'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4081034551257298101</id><published>2009-06-24T16:52:00.001-07:00</published><updated>2010-07-01T07:14:06.446-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><title type='text'>Objective-C , Cocoa, and More</title><content type='html'>&lt;div&gt;&lt;div style="text-align: left;"&gt;Checkout this very basic "C" tutorial by  Scott Stevenson: &lt;a href="http://cocoadevcentral.com/articles/000081.php"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Short (quick) &lt;a href="http://cocoadevcentral.com/d/learn_objectivec/"&gt;tutorial&lt;/a&gt; for Cocoa programmers: &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Very nice Objective-C &lt;a href="http://www.otierney.net/objective-c.html"&gt;tutorial&lt;/a&gt; by Tristan O’Tierney:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Nice &lt;a href="http://www.linuxjournal.com/article/6009"&gt;article&lt;/a&gt; at linux journal&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Apple's &lt;a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf"&gt;Objective-C 2.0 tutorial&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Objective-C &lt;a href="http://en.wikipedia.org/wiki/Objective-C"&gt;wiki&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cocoa &lt;a href="http://en.wikipedia.org/wiki/Cocoa_%28API%29"&gt;wiki&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Compiling Objective-C on command line &lt;a href="http://www.w3style.co.uk/compiling-objective-c-without-xcode-in-os-x"&gt;here&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://developer.apple.com/tools/unittest.html"&gt;Unit testing&lt;/a&gt; with Objective C&lt;br /&gt;&lt;br /&gt;Easy to understand &lt;a href="http://memo.tv/memory_management_with_objective_c_cocoa_iphone"&gt;Memory management&lt;/a&gt; in Objective-C&lt;br /&gt;&lt;br /&gt;Detecting memory leaks with the &lt;a href="http://clang-analyzer.llvm.org/"&gt;Clang static analyzer&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://kosmaczewski.net/projects/objective-c-rest-client/"&gt;Objective-C rest client&lt;/a&gt; by Adrian.&lt;br /&gt;&lt;br /&gt;Find FAQ on Objective-C &lt;a href="http://thaesofereode.info/clocFAQ/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last, Google's &lt;a href="http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml"&gt;Objective-C style guide&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and &lt;a href="http://cocoadevcentral.com/articles/000083.php"&gt;Cocoa Style for Objective-C  &lt;/a&gt;at CocoaDevCentral.&lt;/div&gt;&lt;div&gt;&lt;br /&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/6286908420471011044-4081034551257298101?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4081034551257298101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4081034551257298101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4081034551257298101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4081034551257298101'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/06/objective-c-tutorials.html' title='Objective-C , Cocoa, and More'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-5537723587150998984</id><published>2009-02-03T09:31:00.000-08:00</published><updated>2010-06-03T02:30:56.552-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>vi editor commands</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modes&lt;/span&gt;&lt;br /&gt;esc             Enter vi Command mode&lt;br /&gt;i               Enter vi Insert mode&lt;br /&gt;a               Enter vi Append mode&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Saving, Exiting and Quitting&lt;/span&gt;&lt;br /&gt;vi filename     Open file&lt;br /&gt;view filename   Open in read only mode&lt;br /&gt;:wq             Exit vi and save changes&lt;br /&gt;q!              Exit vi without saving changes&lt;br /&gt;:w              Saves the current file without quitting&lt;br /&gt;:e!             Return to last saved version of file&lt;br /&gt;:r              Copies (reads) filename after cursor in file&lt;br /&gt;              currently editing&lt;br /&gt;vi -r filename  Recover a session&lt;br /&gt;:n,yw           Write lines n thru y to new filename&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Counts&lt;/span&gt;&lt;br /&gt;A number preceding any vi command tells vi to repeat that command that many times.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Moving around in vi&lt;/span&gt;&lt;br /&gt;h               Move cursor left one character&lt;br /&gt;j               Move cursor down one line&lt;br /&gt;k               Move cursor up up one line&lt;br /&gt;l               Move cursor right one character&lt;br /&gt;H               Move cursor to 1st line of screen&lt;br /&gt;L               Move cursor to last line of screen&lt;br /&gt;M               Move cursor to middle of screen&lt;br /&gt;CTRL b          Move cursor back one screen&lt;br /&gt;CTRL f          Move cursor forward one screen&lt;br /&gt;^               Move cursor to the 1st char of the line&lt;br /&gt;$               Move cursor to the last char of the line&lt;br /&gt;+               Move cursor to the 1st char of next line&lt;br /&gt;-               Move cursor to the last char of prev line&lt;br /&gt;)               Move cursor to the next sentence&lt;br /&gt;(               Move cursor to the previous sentence&lt;br /&gt;}               Move cursor to the next paragraph&lt;br /&gt;{               Move cursor to the previous paragraph&lt;br /&gt;G               Move to the last line in the file&lt;br /&gt;xG              Move to line x&lt;br /&gt;:#              Move to line #&lt;br /&gt;:$              Move to last line of file&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inserting and Deleting&lt;/span&gt;&lt;br /&gt;r               Replace character under cursor with next character typed&lt;br /&gt;R               Keep replacing character until [esc] is hit&lt;br /&gt;i               Insert before cursor&lt;br /&gt;a               Append after cursor&lt;br /&gt;A               Append at end of line&lt;br /&gt;O               Open line above cursor and enter append mode&lt;br /&gt;x               Delete character under cursor&lt;br /&gt;dd              Delete line under cursor&lt;br /&gt;dw              Delete word under cursor&lt;br /&gt;db              Delete word before cursor&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Copying and Putting&lt;/span&gt;&lt;br /&gt;yy             (yank)'Copies' line which may then be put by the&lt;br /&gt;             p(put)command.Precede with a count for multiple lines.&lt;br /&gt;P               Brings back previous deletion or yank of lines, words, or characters&lt;br /&gt;             before cursor.&lt;br /&gt;p               Brings back previous deletion or yank of lines, words, or characters&lt;br /&gt;             after cursor.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Find Commands&lt;/span&gt;&lt;br /&gt;?               Find a word going backwards&lt;br /&gt;/               Find a word going forwards&lt;br /&gt;f               Find a character on the line under the cursor going forward&lt;br /&gt;F               Find a character on the line under the cursor going backwards&lt;br /&gt;t               Find a character on the current line going forward and stop one character before it&lt;br /&gt;T               Find a character on the current line going backward and stop one character before it&lt;br /&gt;;               Repeat last f, F, t, T&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Miscellaneous Commands&lt;/span&gt;&lt;br /&gt;.               Repeat last command&lt;br /&gt;u               Undoes last command issued&lt;br /&gt;U               Undoes all commands on one line&lt;br /&gt;xp              Deletes first character and inserts after second (swap)&lt;br /&gt;J               Join current line with the next line&lt;br /&gt;^G              Display current line number&lt;br /&gt;set:all         Show all available options&lt;br /&gt;set:nu          Show line numbers&lt;br /&gt;%               If at one parenthesis, will jump to its mate&lt;br /&gt;:.,ns /string// Remove string from cursor's current line to line n&lt;br /&gt;:.,ns /t1/t2/   Replace text with new text from cursor's current line to line n&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;ex Commands&lt;/span&gt;&lt;br /&gt;Any commands form the line editor ex can be issued upon entering line mode. To enter: type ':' To exit: press[return] or [esc].&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-5537723587150998984?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/5537723587150998984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=5537723587150998984' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5537723587150998984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5537723587150998984'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2010/02/vi-editor-commands.html' title='vi editor commands'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-5238995568364416217</id><published>2008-11-17T07:57:00.000-08:00</published><updated>2009-11-28T13:05:08.992-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Links I refer to...</title><content type='html'>&lt;div&gt;&lt;a href="http://www.mario-konrad.ch/"&gt;Mario Konrad&lt;/a&gt; Homepage.&lt;/div&gt;&lt;div&gt;&lt;a href="http://betterexplained.com/"&gt;Better-Explained &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/6286908420471011044-5238995568364416217?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/5238995568364416217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=5238995568364416217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5238995568364416217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5238995568364416217'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/links-i-refer-to.html' title='Links I refer to...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-5263533360859850386</id><published>2008-11-17T07:49:00.000-08:00</published><updated>2010-07-01T07:15:06.779-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><title type='text'>iPhone development</title><content type='html'>Some good links to start with the iPhone development:&lt;div&gt;&lt;a href="http://www.webdesignerdepot.com/2009/05/how-to-get-started-with-iphone-dev/"&gt;how-to-get-started?&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://memo.tv/memory_management_with_objective_c_cocoa_iphone"&gt;Memory management&lt;/a&gt; in Objective-C/Cocoa/iPhone&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-5263533360859850386?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/5263533360859850386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=5263533360859850386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5263533360859850386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5263533360859850386'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/11/iphone-development.html' title='iPhone development'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4940332329500672086</id><published>2008-02-02T11:05:00.000-08:00</published><updated>2010-02-02T11:07:16.063-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Important Unix Commands [from Archives]</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Command &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Description&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;adduser&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Add a new user&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;arch&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Print machine architecture&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;awk&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Find and Replace text within file(s)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bc&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;An arbitrary precision calculator language&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cal&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display a calendar&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cat&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Concatenate files and print on the standard output&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;chdir&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Change working directory&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;chgrp &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Change the group ownership of files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;chkconfig&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Tool for maintaining the /etc/rc[0-6].d directory hierarchy&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;chmod&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Change the access permissions of files and directories&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;chown&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Change the user and group ownership of files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;chroot&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Change root directory&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cksum&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Print CRC checksum and byte counts&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;clear&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Clear terminal screen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cmp&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Compare two files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;comm&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Compare two sorted files line by line&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cp&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Copy one or more files to another location&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cron&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Daemon to execute scheduled commands&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;crontab&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Schedule a command to run at a later time&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;csplit&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Split a file into context-determined pieces&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cut&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Divide a file into several parts&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;date&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display or change the date &amp;amp; time&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dc&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Desk Calculator&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dd&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Data Dump - Convert and copy a file&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;df&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display free disk space&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;diff&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display the differences between two files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;diff3&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Show differences among three files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dir&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Briefly list directory contents&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dircolors&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Colour setup for `ls'&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dirname&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Convert a full pathname to just a path&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;du&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Estimate file space usage&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;echo&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display message on screen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ed&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A line-oriented text editor (edlin)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;egrep&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Search file(s) for lines that match an extended expression&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;eject&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Eject CD-ROM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;env&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display, set, or remove environment variables&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;expand&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Convert tabs to spaces&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;expr&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Evaluate expressions&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;factor&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Print prime factors&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;false&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Do nothing, unsuccessfully&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;fdformat&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Low-level format a floppy disk&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;fdisk&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Partition table manipulator for Linux&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;fgrep&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Search file(s) for lines that match a fixed string&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;find&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Search for files that meet a desired criteria&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;fmt&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Reformat paragraph text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;fold&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Wrap text to fit a specified width&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;format&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Format disks or tapes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;free&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Display memory usage&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;fsck&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Filesystem consistency check and repair&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-4940332329500672086?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4940332329500672086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4940332329500672086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4940332329500672086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4940332329500672086'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2008/02/important-unix-commands-from-archives.html' title='Important Unix Commands [from Archives]'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-8890288986023712001</id><published>2008-01-21T05:56:00.000-08:00</published><updated>2009-07-04T00:06:59.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Top System and Application Dlls</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_OYqLmhB1gqM/R5WEaqkD2iI/AAAAAAAAAQs/m_BdvvIr788/s1600-h/DllError.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158174541859772962" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_OYqLmhB1gqM/R5WEaqkD2iI/AAAAAAAAAQs/m_BdvvIr788/s400/DllError.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_OYqLmhB1gqM/R5WD76kD2hI/AAAAAAAAAQk/9RShxISIkfg/s1600-h/DllError.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: left"&gt;Did you encounter the similar message box(es) for your application? or Does it make you wonder why your simple test client is making using of '&lt;span style="FONT-WEIGHT: bold"&gt;this&lt;/span&gt;' particular dll? After all, there is plethora of system and application dlls present on your Windows machine.&lt;br /&gt;&lt;br /&gt;If answer to any of the above question is &lt;span style="FONT-WEIGHT: bold"&gt;Yes !&lt;/span&gt; then do check the link &lt;a href="http://www.liutilities.com/products/wintaskspro/dlllibrary/application/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The link provides you with the detailed information for almost all of the system and application dlls present or likely to be present on the Windows machine along with the common errors encountered when your machine lacks any of them. I have found this link very handy in my routine programming tasks on Windows. And I think this would be really helpful for any of us - "We - the programmers" !&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/6286908420471011044-8890288986023712001?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/8890288986023712001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=8890288986023712001' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8890288986023712001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/8890288986023712001'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2008/01/top-system-and-application-dlls.html' title='Top System and Application Dlls'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OYqLmhB1gqM/R5WEaqkD2iI/AAAAAAAAAQs/m_BdvvIr788/s72-c/DllError.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7933731896274412061</id><published>2007-11-18T05:06:00.000-08:00</published><updated>2009-06-25T08:53:50.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Rules: virtual base class and more...</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;There is more to know about virtual base classes; in addition to the standard c++ rule: &lt;em&gt;virtual base classes are constructed before all non-virtual base classes.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Final Classes in C++ &lt;/strong&gt;- an incomplete implementation&lt;br /&gt;The following code shows the "incomplete" implementation of final classes in c++ The name Final is taken from Java's terminology for a class which cannot be inherited or derived further. Here is the listing.&lt;br /&gt;&lt;br /&gt;class A&lt;br /&gt;{&lt;br /&gt;private:&lt;br /&gt;A() { } // constructor is private, so only friend class can call it.&lt;br /&gt;friend class FinalA;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;class FinalA: public A&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;FinalA() {} // implicitly calls A's constructor successfully.&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;class Derived : FinalA&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;Derived() {}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Before we jump into the explanation, let us make note of another side effect of virtual base classes - the intent for this article.As a c++ programmer you need to know this: &lt;em&gt;virtual base class's constructor is directly invoked by the most-derived class's constructor&lt;/em&gt;. I will elucidate this rule with the help of the listing shown above.Here is the play-by-play for above code:&lt;br /&gt;&lt;br /&gt;class A's constructor is private so only friend class of A can call it. FinalA is one such class which happens to be a friend class for A and also derives from A. Friend class in fine but why derivation? Ok, the intention here is to suppress the derivation of class A and we intend to achieve this via another class which gets exposed to the user as a Final class. We name this class FinalA indicating that this is a Final class and hence cannot be derived further.&lt;br /&gt;&lt;br /&gt;Wait! Are we missing something? ... Ya! ... but before we go for the missing part, try running the following code along with the listing above.&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;Derived objDerived; //success&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;You should be able to compile and run this program successfully. The only statement in the code creates an object of class Derived. The constructors are called in sequence A(): FinalA(): Derived() or in other words the initialization list for class D invokes the FinalA's constructor first and FinalA's initialization list invokes A's constructor first.&lt;br /&gt;&lt;br /&gt;But it isn't the output we want. We want to suppress the derivation of FinalA and for this we want that the compiler should give an error when it encounters the statement: Derived objDerived; Here is how we achieve this.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The "Complete" Final class implementation&lt;/strong&gt;&lt;br /&gt;Replace the FinalA class declaration with the code below:&lt;br /&gt;&lt;br /&gt;class FinalA: virtual public A&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;FinalA() {}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;The only change we have here is that class A is now the virtual base class for FinalA. Coming back to our earlier note &lt;em&gt;virtual base class's constructor is directly invoked by the most-derived class's constructor&lt;/em&gt;; this is one of the special rules a compiler implements so that a virtual base class sub object occurs only once in an instance - the very famous &lt;strong&gt;diamond&lt;/strong&gt; problem.&lt;br /&gt;&lt;br /&gt;For our new implementation, A is a virtual base class. This means that the initialization list of class D will now directly invoke A's constructor honoring the rule above. But in our implementation A's constructor is private and only FinalA has the right to access it which means that D has no access to A's constructor. Thus, for the statement, Derived objDerived; compiler will flag an error "A's constructor is not accessible" - the output we wanted for our Final class implementation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;virtual base classes and inheritance offer a set of rules which every c++ programmar should be aware of. Specifically:&lt;br /&gt;&lt;em&gt;virtual base classes are constructed before all non-virtual base classes.&lt;br /&gt;virtual base class's constructor is directly invoked by the most-derived class's constructor.&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7933731896274412061?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7933731896274412061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7933731896274412061' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7933731896274412061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7933731896274412061'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/11/rules-virtual-base-class-and-side.html' title='Rules: virtual base class and more...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7620948745305489563</id><published>2007-10-27T02:28:00.000-07:00</published><updated>2009-11-04T13:08:22.569-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Mac OS X Leopard unveils...</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;Wait for Apple's latest operating System Mac OS X Leopard is finally over. Apple claims it to be the major release in its Mac OS X series with more then 300 new features. Particularly features such as Spaces, Quick Look and improved Finder with an option to browse files with Cover Flow makes it an impressive release. There is lot for developers with Xcode 3.0, XRay and Objective C 2.0. Life goes more better with iLife. Have a look at some of the Leopard &lt;a href="http://www.apple.com/macosx/features/"&gt;features&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7620948745305489563?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7620948745305489563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7620948745305489563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7620948745305489563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7620948745305489563'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/10/mac-os-x-leopard.html' title='Mac OS X Leopard unveils...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-6725070072911550018</id><published>2007-03-05T06:48:00.000-08:00</published><updated>2009-08-02T11:01:55.257-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code generation'/><title type='text'>Building a Simple Code Generator... Part II</title><content type='html'>&lt;div align="justify"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-weight: bold;font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;continued...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;The "only" important part&lt;/strong&gt;&lt;br /&gt;Now, Here is the "only" important part of the article. Complete perl code for our simple generator along with the sample input and the output:&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;strong&gt;Sample Input&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;As expained in part I of this article, the sample input for our code generator consists of custom language defined as given below:&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&amp;lt;class Name=Sample Access=public&amp;gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&amp;lt;function Name=Show Return=void Access=public&amp;gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&amp;lt;data Name=var Type=int Access=private&amp;gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&amp;lt;data Name=var Type=int Access=private&amp;gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&amp;lt;data Name=var Type=int Access = private&amp;gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&amp;lt;/class&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Source Code&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;Here is the complete "Perl" source code for our simple code generator. This can very easily be extended to form a full fledged code generator for any custom language of choice as input.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;#-------------------------------------------&lt;br /&gt;# MAIN ENTRY&lt;br /&gt;#-------------------------------------------&lt;br /&gt;$inFile = "input.txt";&lt;br /&gt;&lt;br /&gt;if(! -r $inFile)&lt;br /&gt;{&lt;br /&gt;print "Can not read input file: $inFile\n";&lt;br /&gt;exit 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;%Classes;&lt;br /&gt;&amp;amp;MakeStructures($inFile);&lt;br /&gt;$TargetFolder = "Generated";&lt;br /&gt;&lt;br /&gt;if(! -d $TargetFolder)&lt;br /&gt;{&lt;br /&gt;mkdir $TargetFolder;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;print "Generating html file in in $TargetFolder\n";&lt;br /&gt;&amp;GenCS;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;#-------------------------------------------&lt;br /&gt;# SUBROUTINES&lt;br /&gt;#-------------------------------------------&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;sub TextInterp #2 Interpolate text to output file CURRFILE, stripping leader to |&lt;br /&gt;{&lt;br /&gt;my $lines = $_[0];&lt;br /&gt;$lines =~ s/^\s*\|//gm;&lt;br /&gt;print CURRFILE $lines;&lt;br /&gt;1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub MakeStructures&lt;br /&gt;{&lt;br /&gt;local ($filename) = @_;&lt;br /&gt;printf STDOUT "Loading $filename\n";&lt;br /&gt;local $state = 0;&lt;br /&gt;local $name = undef;&lt;br /&gt;local $lineno = 0;&lt;br /&gt;&lt;br /&gt;# States:&lt;br /&gt;# 0 Looking...&lt;br /&gt;# 1 In Class&lt;br /&gt;# 2 In Function&lt;br /&gt;&lt;br /&gt;open FILE, $filename or die "ERROR: Can't open $filename\n";&lt;br /&gt;while($line = &lt;file&gt;)&lt;br /&gt;{&lt;br /&gt;$line =~ s/[&lt;&gt;]//g;&lt;br /&gt;next unless ($line =~ /^class/ or $line =~ /^function/ or $line =~ /^data/);&lt;br /&gt;chop($line);&lt;br /&gt;if($line =~ /^class/)&lt;br /&gt;{&lt;br /&gt;$keyWordString = $';&lt;br /&gt;$keyWordString =~ s/^\s*//;&lt;br /&gt;&amp;MakeClass;&lt;br /&gt;next;&lt;br /&gt;}&lt;br /&gt;elsif($line =~ /^function/)&lt;br /&gt;{&lt;br /&gt;$keyWordString = $';&lt;br /&gt;$keyWordString =~ s/^\s*//;&lt;br /&gt;&amp;MakeFunction;&lt;br /&gt;next;&lt;br /&gt;}&lt;br /&gt;elsif($line =~ /^data/)&lt;br /&gt;{&lt;br /&gt;$keyWordString = $';&lt;br /&gt;$keyWordString =~ s/^\s*//;&lt;br /&gt;&amp;MakeData;&lt;br /&gt;next;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;next;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub MakeClass&lt;br /&gt;{&lt;br /&gt;my %attributes = split /[\s=]/, $keyWordString;&lt;br /&gt;$name = $attributes{Name};&lt;br /&gt;$Classes{$name} = {};&lt;br /&gt;$Classes{$name}{NAME} = $name;&lt;br /&gt;$Classes{$name}{ACCESS} = $attributes{Access};;&lt;br /&gt;$state = 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub MakeFunction&lt;br /&gt;{&lt;br /&gt;return if($state != 1);&lt;br /&gt;my %attributes = split /[\s=]/, $keyWordString;&lt;br /&gt;$functionname = $attributes{Name};&lt;br /&gt;if(!defined $Classes{$name}{FUNCTIONS})&lt;br /&gt;{&lt;br /&gt;$Classes{$name}{FUNCTIONS} = {}; # hash of function definitions&lt;br /&gt;}&lt;br /&gt;$Classes{$name}{FUNCTIONS}{$functionname}{NAME} = $attributes{Name};&lt;br /&gt;$Classes{$name}{FUNCTIONS}{$functionname}{RETURN} = $attributes{Return};&lt;br /&gt;$Classes{$name}{FUNCTIONS}{$functionname}{ACCESS} = $attributes{Access};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub MakeData&lt;br /&gt;{&lt;br /&gt;return if($state != 1);&lt;br /&gt;my %attributes = split /[\s=]/, $keyWordString;&lt;br /&gt;$dataname = $attributes{Name};&lt;br /&gt;if(!defined $Classes{$name}{DATA})&lt;br /&gt;{&lt;br /&gt;$Classes{$name}{DATA} = {}; # hash of data definitions&lt;br /&gt;}&lt;br /&gt;$Classes{$name}{DATA}{$dataname}{NAME} = $attributes{Name};&lt;br /&gt;$Classes{$name}{DATA}{$dataname}{TYPE} = $attributes{Type};&lt;br /&gt;$Classes{$name}{DATA}{$dataname}{ACCESS} = $attributes{Access}; &lt;/file&gt;&lt;/div&gt;&lt;div align="justify"&gt;}&lt;br /&gt;&lt;br /&gt;sub GenCS&lt;/div&gt;&lt;div align="justify"&gt;{&lt;/div&gt;&lt;div align="justify"&gt;$temp = $inFile;&lt;/div&gt;&lt;div align="justify"&gt;$temp =~ s/\.txt/\.cs/g; &lt;/div&gt;&lt;div align="justify"&gt;print "===== making $TargetFolder/$temp\n";&lt;br /&gt;$CURRFILE = "&gt;$TargetFolder/$temp"; &lt;/div&gt;&lt;div align="justify"&gt;open CURRFILE or die "can't open $CURRFILE\n";&lt;br /&gt;foreach $key (keys %Classes) &lt;/div&gt;&lt;div align="justify"&gt;{ &lt;/div&gt;&lt;div align="justify"&gt;my $classname = $Classes{$key}{NAME}; &lt;/div&gt;&lt;div align="justify"&gt;my $access = $Classes{$key}{ACCESS}; &lt;/div&gt;&lt;div align="justify"&gt;TextInterp &lt;&lt;eof&gt; &lt;/eof&gt;&lt;/div&gt;&lt;div align="justify"&gt;$access class $classname &lt;/div&gt;&lt;div align="justify"&gt;{&lt;/div&gt;&lt;div align="justify"&gt;EOF&lt;/div&gt;&lt;div align="justify"&gt;foreach $funct (keys %{$Classes{$key}{FUNCTIONS}}) &lt;/div&gt;&lt;div align="justify"&gt;{&lt;/div&gt;&lt;div align="justify"&gt;my $functionname = $Classes{$key}{FUNCTIONS}{$funct}{NAME};&lt;/div&gt;&lt;div align="justify"&gt;my $returnType = $Classes{$key}{FUNCTIONS}{$funct}{RETURN};&lt;/div&gt;&lt;div align="justify"&gt;my $funcAccess = $Classes{$key}{FUNCTIONS}{$funct}{ACCESS}; &lt;/div&gt;&lt;div align="justify"&gt;TextInterp &lt;&lt;eof&gt; &lt;/eof&gt;&lt;/div&gt;&lt;div align="justify"&gt;$funcAccess $returnType $functionname();&lt;/div&gt;&lt;div align="justify"&gt;EOF &lt;/div&gt;&lt;div align="justify"&gt;}&lt;/div&gt;&lt;div align="justify"&gt;foreach $data (keys %{$Classes{$key}{DATA}}) &lt;/div&gt;&lt;div align="justify"&gt;{ &lt;/div&gt;&lt;div align="justify"&gt;my $dataname = $Classes{$key}{DATA}{$data}{NAME}; &lt;/div&gt;&lt;div align="justify"&gt;my $type = $Classes{$key}{DATA}{$data}{TYPE}; &lt;/div&gt;&lt;div align="justify"&gt;my $dataaccess = $Classes{$key}{DATA}{$data}{ACCESS}; &lt;/div&gt;&lt;div align="justify"&gt;TextInterp &lt;&lt;eof&gt; &lt;/eof&gt;&lt;/div&gt;&lt;div align="justify"&gt;$dataaccess $type $dataname;&lt;/div&gt;&lt;div align="justify"&gt;EOF &lt;/div&gt;&lt;div align="justify"&gt;} &lt;/div&gt;&lt;div align="justify"&gt;TextInterp &lt;&lt;eof&gt; &lt;/eof&gt;&lt;/div&gt;&lt;div align="justify"&gt;}&lt;/div&gt;&lt;div align="justify"&gt;EOF&lt;br /&gt;}&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;# EOF end of file&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;Following listing shows the output of the simple code generator for given sample input shown above.As noted for each tag/attribute in the input we have a corresponding C# construct as output.For details refer to part I of this article.&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;public class Sample&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;{&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;public void Show();&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;int var;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;}&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Always trust "Copy-Paste"&lt;/span&gt;&lt;br /&gt;Coming back, Code generation has one distinct advantage. In today's software world of rapid application development, or as we call it with its new name - agile development, Code Generation techniques provide a way to produce quality code in relatively less time. From writing data entry code to cross-language integration, the mechanical &amp;amp; sought after ctrl-c &amp;amp; ctrl-v method could be replaced by Code Generation with similar benefits.The code produced is ultra consistent - much cleaner and simpler to change. Simply modify the generator and crank out a new version of the source code.In addition, the code produced is relatively less buggy as more of the debugging happens once i.e while developing the generator itself and most important programmers are free to concentrate on the areas of development that deserve their brainpower.&lt;br /&gt;&lt;br /&gt;In summary, Code Generation is "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Programming for Programmers&lt;/span&gt;" and is one of the important techniques a programmer should know as an adjunct to one's skill set. Good Luck !&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.softwarereality.com/programming/code_generation.jsp"&gt;http://www.softwarereality.com/programming/code_generation.jsp&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.codegeneration.net/tiki-index.php?page=ModelsIntroduction"&gt;http://www.codegeneration.net/tiki-index.php?page=ModelsIntroduction&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-6725070072911550018?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/6725070072911550018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=6725070072911550018' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6725070072911550018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6725070072911550018'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/03/building-simple-code-generator-part-ii.html' title='Building a Simple Code Generator... Part II'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-7196007820174071270</id><published>2007-03-04T00:12:00.000-08:00</published><updated>2009-08-02T11:01:55.257-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code generation'/><title type='text'>Building a Simple Code Generator...Part I</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;Microsoft didn't know that a basic feature of "copy &amp;amp; paste" will be the most widely used feature in its operating system. From novel computer users to proficient computer programmers this feature has helped everyone to accomplish their job. I do not support the maxim "&lt;em&gt;Programming is a waste, always trust copy paste&lt;/em&gt;" but I am not against it either. Especially “&lt;em&gt;always trust copy paste&lt;/em&gt;”. I’ll come to this point at the end of this article. But let's concentrate upon one of the most notoriously famous concept in the software world "&lt;strong&gt;Code Generation&lt;/strong&gt;”. Instead of giving my points on the never ending debate "&lt;em&gt;Code Generation is useful or not?... It's a design smell.&lt;/em&gt;" I would rather try to give a brief idea of how it can be put into use.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Code Generator&lt;/strong&gt;&lt;br /&gt;Here is the definition of a Code Generator: &lt;strong&gt;A code generator reads your project meta-data and churns out well-formed source code to a specific set of design patterns&lt;/strong&gt;. In simple words - "A Code generator is a software tool that reads the text from input files, interprets it, arranges the text in desired form and gives us the text output". This "text" could be:&lt;br /&gt;a) The source code written in any programming language: C,C++,C#,Java etc.&lt;br /&gt;b) Code written in any scripting language or markup language HTML, XML etc.&lt;br /&gt;c) Any custom language of choice.&lt;br /&gt;d) ascii/non-ascii text in any natural language&lt;br /&gt;&lt;br /&gt;With this intent, Code generation can be thought of as code conversion from one language to another or code rearrangement within the same language.&lt;br /&gt;&lt;br /&gt;In developing any Code Generator, there are some basic steps that can serve as guidelines:&lt;br /&gt;a) Recognizing the given source and required output language&lt;br /&gt;b) Recognizing the meta-data and patterns in the source&lt;br /&gt;c) Finalizing the output template or design&lt;br /&gt;d) Choosing the programming language for code generation - parsing and generating - support for string manipulation. Support for containers. Map&lt;br /&gt;&lt;br /&gt;I will try to demonstrate these steps with the help of a simple code generator.&lt;br /&gt;This simple generator takes as input a custom defined language as a .txt file, searches for specific patterns in the input text and produces a .cs file -where there is a C# construct corresponding to each pattern in the input language.&lt;br /&gt;&lt;br /&gt;Specifically for input such as:&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;class Name=Sample Access=public&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;function Name=Show Return=void Access=public&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;data Name=var Type=int Access=private&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;/class&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It produces the following C# class as output:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;public class Sample&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;public void Show()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;private int var;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So here we go:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Analyzing the given source and output language&lt;/strong&gt;&lt;br /&gt;The first step in writing any code generator is to analyze the input language and output language. Pragmatically, it is not always possible to take any language as input and generate code in any language of choice. For our simple generator, the input language is a custom defined language similar to HTML in representation. Each language tag denotes the beginning of a new programming construct with attributes specifying the properties for that construct. The output language for our code generator is C sharp.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Recognizing the patterns in the input source&lt;/strong&gt;&lt;br /&gt;The cardinal step in designing a code generator is to recognize the patterns in the input text and required output text. For example, in our custom language, the tag &lt;span class="Apple-style-span" style="font-style: italic;"&gt;class&lt;/span&gt; signifies the beginning of the class specification and the attributes &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Name&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Access&lt;/span&gt; specify the properties for this class i.e. &lt;class access="public" name="Sample"&gt;specifies a class named &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Sample&lt;/span&gt; with &lt;span class="Apple-style-span" style="font-style: italic;"&gt;public&lt;/span&gt; access. The corresponding class declaration line in C# would be: &lt;span class="Apple-style-span" style="font-style: italic; "&gt;public class Sample. &lt;span class="Apple-style-span" style="font-style: normal; "&gt;Noting the patterns in the input and recognizing how a different rendering can lead to the desired output is quintessential in determining the feasibility of the generation. Languages which differ in representation but have identical building blocks can be converted almost completely. On the other hand, for languages, with completely different building blocks, the input text in one language cannot be entirely converted to the output text in output language.For example, our custom language cannot be entirely converted to languages which do not support the concepts of classes (Although some improvisation can almost always be achieved).&lt;/span&gt;&lt;/span&gt;&lt;/class&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;class access="public" name="Sample"&gt;&lt;strong&gt;Finalizing the output template or design&lt;/strong&gt;&lt;br /&gt;Before we begin to code for Code Generator, it is imperative to come at the final required Design in the form of a template. With the template in mind, we know which constructs to parse in the input language and at what level of granularity. Given the template for the output, the only job that remains after this is to break the input constructs to a granular level and render or combine the resulting pieces or tokens to match the template. For our generator, the required template is a corresponding C# class declaration for the input class specification.&lt;/class&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;class access="public" name="Sample"&gt;&lt;strong&gt;Writing a Code Generator&lt;/strong&gt;&lt;br /&gt;Code Generator can be written to essentially perform a sequence of three to four tasks:&lt;/class&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;class access="public" name="Sample"&gt;1) Define a formal grammar to match the recognized patterns - the patterns to be searched.&lt;br /&gt;2) Parse the input source for our recognized patterns by matching the input text with our grammar i.e determine its grammatical structure with respect to a given formal grammar.&lt;br /&gt;3) Store the matched patterns by breaking them into logical constructs with the required granularity i.e mostly in some intermediate form and with the help of data structures such as lists &amp;amp; maps.&lt;br /&gt;4) Render the intermediate form so that the output conforms to our required template and design.&lt;/class&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;class access="public" name="Sample"&gt;Choosing the right programming language for writing generator is critically important. The language of choice should provide constructs to help in parsing, constructs for matching patterns &amp;amp; string manipulation and support for containers - lists, maps etc. From the available languages of choice, scripting languages such as Perl, Ruby, Python provide inbuilt support for matching and manipulating patterns. High level programming languages such as C,C++, Java and C# also provide parsing capabilities by giving inbuilt support in the language or in the form of libraries. C++ libraries such as Boost, Regex++ provide good support for parsers and generators. C# has an inbuilt regular expression engine which although is in its nascent stages, provides good support for code generation.&lt;br /&gt;&lt;br /&gt;In the second part of this article, I'll provide the implementation details(basically the only important part i.e source code) of our simple code generator using &lt;strong&gt;perl&lt;/strong&gt; as our language of choice.&lt;br /&gt;&lt;/class&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;class access="public" name="Sample"&gt;&lt;br /&gt;&lt;strong&gt;Continued...&lt;/strong&gt;&lt;br /&gt;&lt;/class&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/p&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-7196007820174071270?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/7196007820174071270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=7196007820174071270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7196007820174071270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/7196007820174071270'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/07/building-simple-code-generator.html' title='Building a Simple Code Generator...Part I'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-5824797187441372048</id><published>2007-02-22T06:53:00.000-08:00</published><updated>2009-06-25T08:54:39.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>const, volatile and optimization</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Volatile is a type Qualifier which tells the compiler that variable immediately to my left can be changed by factors which are beyond the control of my program.A graphics memory location for example.There is an interesting effect of using volatile on const members which is worth knowing.I tried to explore how using volatile with const can affect compiler optimization. Take an example of another type qualifier const and look at the sample program given below:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;int var;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;const int const_a = 10;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;const int volatile volatile_a = 12;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//Assigning constant to some variable.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;var = const_a;&lt;br /&gt;//Assigning a const volatile to some variable.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;var = volatile_a;&lt;br /&gt;return 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;I actually ran the code with vc7 and saw the disassembly for the two assignment statements through Visual studio.&lt;br /&gt;1) var = const_a;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;2) var = volatile_a;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;The disassembler output for these two statements is shown below:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;var = const_a;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;0041238C mov dword ptr [var],0Ah&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;var = volatile_a;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;00412393 mov eax,dword ptr [volatile_a]&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;00412396 mov dword ptr [var],eax&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;If we try to look at the disassembly, In case of first assignment it just moves the value 10(0AH) to the memory location of var. This happens because const_a is a constant variable and its value will not change through out the life time of the process. As an optimization, compiler therefore chooses not to generate load and store instructions for such an assignment. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;However,In the second statement since we have declared it as volatile,this optimization is not done and instead compiler follows the usual 2 step process for this assignment. i.e it first loads the contents of volatile_a to register eax and then stores the value to the memory location [var].&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Interestingly these optimizations happen even in the debug mode(with optimization disabled). So make sure you use volatile only if your variable can be changed beyond your program's control to have the benefit of atleast one microinstruction.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-5824797187441372048?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/5824797187441372048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=5824797187441372048' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5824797187441372048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5824797187441372048'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/10/const-volatile-and-optimization.html' title='const, volatile and optimization'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-1125473884672030939</id><published>2006-12-25T00:16:00.000-08:00</published><updated>2011-04-12T08:47:48.427-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Trick: Un-Sharing the lost Network Folder</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Sometimes on Windows, we confront an annoying situation where we have a shared network folder, we want to Un-Share it, but we are unable to locate the folder on disk. Ofcourse you can go to Computer Management console to get the path from the list of shared folders, But there is another "tricky" way. Suppose you have a shared-folder name “Videos”. You can see it in your network explorer window but cannot locate it on disk. But you want to un-share it. To do this:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;1) Simply create a folder with the name “Videos” anywhere on disk and then try to share it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;2) When you click “ok” you will receive an error dialog indicating that share name already exists - with full disk path for the shared folder.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Go. Un-share It!!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-1125473884672030939?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/1125473884672030939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=1125473884672030939' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1125473884672030939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1125473884672030939'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2006/12/trick-un-sharing-lost-network-folder.html' title='Trick: Un-Sharing the lost Network Folder'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4055639926178851629</id><published>2006-11-12T02:02:00.000-08:00</published><updated>2009-11-04T13:04:11.187-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Google Error !</title><content type='html'>&lt;span style="font-size:100%;"&gt;This is how an error with Google looks like :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_OYqLmhB1gqM/R24y8akD2eI/AAAAAAAAAN4/N8Bd254_jj4/s1600-h/logo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_OYqLmhB1gqM/R24y8akD2eI/AAAAAAAAAN4/N8Bd254_jj4/s400/logo.png" alt="" id="BLOGGER_PHOTO_ID_5147107437635164642" border="0" /&gt;&lt;/a&gt; Oops!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sorry, your web browser is not yet supported.&lt;br /&gt;&lt;br /&gt;Our programming wizards tried their darndest to get Google Page Creator to work with as many browsers as possible. But alas, even the most expert practitioners of web sorcery must sleep now and again, lest their JavaScript magic run dry.&lt;br /&gt;&lt;br /&gt;So, for now, you'll need either to download a new version of Firefox or download a new version of Internet Explorer (Windows only), and then come right back.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-4055639926178851629?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4055639926178851629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4055639926178851629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4055639926178851629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4055639926178851629'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/12/google-error.html' title='Google Error !'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OYqLmhB1gqM/R24y8akD2eI/AAAAAAAAAN4/N8Bd254_jj4/s72-c/logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-6108471330789637886</id><published>2006-10-28T14:42:00.000-07:00</published><updated>2009-11-04T13:04:46.879-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Corba Related links ...</title><content type='html'>&lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.omg.org/gettingstarted/corbafaq.htm"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;CORBA FAQ&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.omg.org/gettingstarted/orb_basics.htm"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;ORB Basics&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://adorb.sourceforge.net/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;AdORB - CORBA ORB for Mac OS X&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.omg.org/gettingstarted/omg_idl.htm"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;OMG IDL&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://ostatic.com/searchtag/system+administration/project/1/Category/distributed+computing/Category/corba"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Browse Software | OStatic&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://newsgroups.derkeiler.com/Archive/Comp/comp.object.corba/2007-03/msg00058.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Re: Corba and Objective C in Windows platform&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://linas.org/linux/corba.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Linux DCE, CORBA and DCOM Guide&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_11.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Objective-C GNUstep Base Programming Manual: Objective-C Java and C++&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://patriot.net/%7Etvalesky//freecorba.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;The Free CORBA page&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www2.computer.org/portal/web/csdl/doi/10.1109/2.762811"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Digital Library&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://docs.huihoo.com/corba/oo_object_request_brokers.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Cetus Links: 18,512 Links on Objects and Components / CORBA ORBs&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://wso2.org/library/2807"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Exposing CORBA Services as Web Services - Introduction to the Axis2 CORBA Module | WSO2 Oxygen Tank&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.xs4all.nl/%7Eirmen/comp/CORBA_vs_SOAP.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Web Services/SOAP and CORBA&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://objectmix.com/object/195559-how-expose-corba-service-web-service.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;How to expose a CORBA Service as a Web Service - Application Development Forum&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 30, 230);font-family:Times;font-size:16px;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://sourceforge.net/projects/starws/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;SourceForge.net: StarWebService&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 30, 230);font-family:Times,serif;" &gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-6108471330789637886?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/6108471330789637886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=6108471330789637886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6108471330789637886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/6108471330789637886'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/10/corba-related-links.html' title='Corba Related links ...'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-3978173671173973663</id><published>2006-10-16T23:14:00.000-07:00</published><updated>2009-08-02T11:01:55.257-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>Sending pointer types with C structs  in a Message based protocol.</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;There is an interesting problem in designing a Message-Based(request-response) protocol using C structs.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;Suppose you want to design a message protocol in which the your send/receive functions take void* as parameter, so that you can send and receive C structures that both client and server understand.For example you should be able to marshal the following C-struct as byte array and then retrieve it at the other end:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;struct Message&lt;/span&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;char* messageName;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;char* messageParams;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;/div&gt;&lt;div style="font-style: italic;" align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;Problem is that when you use such a structure containg pointers and transmit the struct through Send, then only the memory address stored in the respective variable would be sent, instead ofthe value.Ofcourse, you can use char[XYZ] in place of char* but in that way you could end up passing a lot of memory even when it is not required.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;To tackle this, there is a simple marshalling/demarshalling scheme that takes care of the problem:&lt;br /&gt;&lt;br /&gt;1) Since we need to send the data which is variable in size it is appropriate to divide ourmessage body (payload) into two parts.A fixed-part payload followed by a variable part.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;2) Basic value types are kept in the fixed part.For pointer types of varied length such as a string or an arraykeep the offset in the fixed part and data in the variable part.This offset can be used for locating the string or array in the variable part of the message. For arrays further,information such as no of elements,type can be kept in the fixed part along with the offset.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;3) In this way we end up defining a 2-part message in a buffer of size equal to fixed part plus variable part which can be send using socket api's.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;4) A similar unmarshalling procedure will be required at the receiver end for obtaining the appropriate structs from the fixed part and variable part. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;The solution provides us with the ability to use pointer types in C structs in our custom protocol.However,you have to take care of byte swapping in case your client,server are on different platforms. &lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;This is taken from my discussion at ITToolbox. Check out the complete thread at&lt;br /&gt;&lt;a href="http://c.ittoolbox.com/groups/technical-functional/cpp-l/message-protocol-1139711?cv=expanded"&gt;http://c.ittoolbox.com/groups/technical-functional/cpp-l/message-protocol-1139711?cv=expanded&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-3978173671173973663?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/3978173671173973663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=3978173671173973663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3978173671173973663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/3978173671173973663'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/10/sending-pointer-types-with-c-structs-in.html' title='Sending pointer types with C structs  in a Message based protocol.'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4171362525523886347</id><published>2006-10-05T01:42:00.000-07:00</published><updated>2011-04-12T08:48:41.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Determining byte order at run time</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Different machine architectures sometimes store multi-byte numbers using different byte orders i.e most-significant first (Big Endian) or least-significant first (Little-Endian). For example, Intel's 80x86 processors and their clones are little endian. Sun's SPARC, Motorola's PowerPC families are all big endian. This difference in byte order can cause problems if a computer unknowingly tries to read binary data written in the opposite format from a shared memory location or file.In order to determine the byte order at run time we can use the following code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;short int mbNumber = 0x0001;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;char *byte = (char *) &amp;amp;mbNumber;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;if(byte[0])&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;  //Little-Endian&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-4171362525523886347?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4171362525523886347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4171362525523886347' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4171362525523886347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4171362525523886347'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2006/10/determining-byte-order-at-run-time.html' title='Determining byte order at run time'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-1011296147106362320</id><published>2006-09-15T05:30:00.000-07:00</published><updated>2009-06-25T09:05:44.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>The private-public-ctor-dtor &amp; virtual tumult</title><content type='html'>&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Here is my first technical blog .This is taken from the document I wrote during my initial days as an ingenuous C++ programmer. This, I think would be really helpful for C++ beginners and may help some prospective job seekers as well. I have done some fine-tuning but the content remains the same. So forgive me for any mistakes you find.I will be glad to hear about any suggestions you have.Please leave a comment and I will update the article in due time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The tumult&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Time to time we often confuse overselves and the interviewers with the ctor, dtor,public, private and virtual errata. Yes I am talking about the constructors, destructors, access specifiers and the virtual keyword when used together.In this article, I will try to explain the different ways in which these keywords affect the object creation of a class.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Basic Setup&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;For discusion,&lt;/span&gt;&lt;span style="font-size:100%;"&gt;I have used the basic setup of classes shown below.A is a specification of the class which has an add function, a ctor, a dtor and a friend class declaration. ChildA is the derived class of A and FriendOfA, as the name suggests, is the friend class of class A(i.e it can access it's private members).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;private:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;friend class FriendOfA; //allow FriendOfA to access my private members.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A() {} //ctor&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;~A() {} //dtor&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;int add(int a, int b) // a function&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return a + b;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;class FriendOfA&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;static A* getNewA()&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return new A(); // creating new object of A&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;class ChildA : public A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ChildA() {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;"virtual" function and the Abstract Class&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;An Abstract class is one which cannot be instantiated. For making a class A as an abstract class, make one of the functions as pure virtual.This, you can do by declaring a function as virtual with virtual keyword and using a "=0" initializer following the function name. Declaration of such a class(A) goes like:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;virtual int add(int a, int b) = 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;cout &lt;&lt;"Some compilers permit this"; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Some compilers will actually permit you to write the defintion body for such a function as in A above, but they will not be called in any case since you are not allowed to create an object of A and being a virtual function you will always be directed to derived class version(The only possible case is to use A:: from inside some function of derived class) Compiler will enforce the abstraction in every possible case here and you will not be able to create an object of the class A either through main or through friend classes, you will however be able to make the objects of the derived classes if they implement every pure virtual function declared in the base class.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class FriendOfA&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;static A* getNewA()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return new A(); // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;class ChildA : public A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;int add(int a, int b)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;cout &lt;&lt;"Derived class add function"; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A objA; // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A *pA = new A(); //error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ChildA objChildA; //success&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This is a true way of making abstract classes.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;"virtual"-"Destructor" and the Abstract Class&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;As above, You can also make the destructor as pure virtual.Using pure virtual destructor for making abstract classes has another advantage. A case when you will prefer to give implementation of a number of functions in the base class itself and/or don't want every derived class to implement a pure virtual function in the base abstract class. In this case, we can make destructor of A as pure virtual. As a result no derived class has a headache of giving any pure virtual implementation because compiler adds the definition of destructors by default. And since our base class A includes a pure virtual dtor, it is abstract as required.This technique can be used to implement the strategy where you want every class to derived from some base abstract class having lot of functionality. Like our object class in C# or java.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;"Private"-"Constructor" and the Abstract Class&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Another possible solution of preventing object creation for class A is to make its constructor private.Only friend classes will be able to create the objects.You will not be able to make object of A from main directly and moreover you will not be able to create derived class objects.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;private:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A() {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;class ChildA : public A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;private:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ChildA() {} // error. A's constructor is not accessible&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A objA; // error. A's constructor is not accessible&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A *pA = new A(); // error. A's constructor is not accessible&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A *ppA = FriendOfA::getNewA(); // success&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;"Private"-"Destructor" and the Abstract Classes&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A's instantiation can also be suppressed by making its destructor private. You will not be able to create the object(local) of A directly through main.This is because wherever you create A's object compiler will tend to se whether it can destruct it safely.If dtor is private it can't do that so it will flag an error.For the same reason you will not be able to create derived class objects. Note that In this case obviously compiler will not flag error if A is created on heap.But again this would be not be complete. You will not be able to delete this object. Thus deleting pA will give compiler error since delete implicitly calls A's dtor and it is private.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A objA; // error. A's dtor is not accessible&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A *pA = new A(); //success&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A *ppA = FriendOfA::getNewA(); // success&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//delete pA; // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//delete ppA; // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;You can use this feature for allowing object creation only on dynamic storage i.e heap. Technique most commonly used with smart pointers for refcounted objects. Also see "Preventing object creation on Stack".&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;"Private"-"Constructor/Destructor" and the Final Classes&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;You can also use the above two setups for implementing final classes in C++ i.e classes which cannot be inherited. Make ctor/dtor private and then create a class deriving from A(say FinalA) which also happens to be the friend class of A. Since FinalA is a friend class of A. It can call the A's ctor/dtor and hence can be instantiated. Any other class deriving from FinalA cannot call the ctor/dtor and hence cannot be instantiated. This is shown below:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;private:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;~A() { } // Destructor is private, so only friend class can call it.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;friend class FinalA;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class FinalA: virtual public A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;~FinalA() {} //implicitly calls A's dtor successfully.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;class Derived : Final A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;~Derived() {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;FinalA objFinalA; // success&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Derived objDerived; // error, A's dtor is not accessible to this Derived class.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Private"-"new"/"delete"-Preventing object creation on heap&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;For preventing creation of class A objects on heap (and allowing just static/local objects), Just give dummy implementation for operator new, new[], delete, delete[] and make them private.It will flag an error during any new statement encountered. You can however, call the global new/delete operators in case you want to allow the creation from friend classes.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;private:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;friend class FriendOfA;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;void * operator new(size_t size)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return ::operator new(size); // call global operator new&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;void * operator new[](size_t size)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return ::operator new[](size); // call global operator new[]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;void operator delete(void *p)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;::delete p; // call global operator delete&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;void operator delete[](void *p)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;::delete[] p; // call global operator delete[]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;void draw()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;cout&lt;&lt;"Inside A,draw function"&lt;&lt;endl; class="" parr="new" pa="FriendOfA::getNewA();"&gt;draw(); &lt;/endl;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;class FriendOfA&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;static A * getNewA()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return new A;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;static void destroyA(A* pA)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;delete pA;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A* pArr = new A[12]; //error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A* pA = FriendOfA::getNewA();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;pA-&gt;draw();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//delete pA; // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//delete[] pArr; // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;FriendOfA::destroyA(pA);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;return 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;However, there are a number of pros and cons with this implementation which i leave to the reader for self-exploration.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;"Private"-"Destructor"-Preventing object creation on Stack&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;For preventing creation of static or local Objects of class A, make the destructor private. In this way you can create such objects only on heap. Obviously, you won't be able to destroy the object with delete from main. To do so, you have to call some public funtion say destroy which internally calls "delete this". Some guys do not recommend this. But this is ok if you use it judiciously: Make sure you don't make any subsequent call to the object from main after destroy, or call any member function after delete this.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;class A&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;private:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;~A() {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;public:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;void destroy()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;delete this;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;};&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;int main()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//A objA; // error. A's dtor is not accessible&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A *pA = new A(); //success&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;//delete pA; // error&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;FriendOfA::destroyA(pA); // object of A is dead. don't ! make further calls.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;This technique along with smart pointers is frequently used in applications for providing Reference Counting mechanism.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-1011296147106362320?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/1011296147106362320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=1011296147106362320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1011296147106362320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/1011296147106362320'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2007/10/private-public-constructor-destructor.html' title='The private-public-ctor-dtor &amp; virtual tumult'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-5390741571140633437</id><published>2005-10-28T15:10:00.000-07:00</published><updated>2009-10-28T15:17:49.243-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows: Command shortcuts II</title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 16px/normal Georgia; text-align: right; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 16px/normal Georgia; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 16px/normal Georgia; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Access &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ccess.cpl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Chat &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;winchat&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Excel &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;excel&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Frontpage &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;frontpg&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Movie Maker &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;moviemk&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Paint &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;mspaint&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Powerpoint &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;powerpnt&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Microsoft Word &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;winword&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Minesweeper Game &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;winmine&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Netmeeting &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;     &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;conf&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Notepad &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;     &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;notepad&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;On Screen Keyboard &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;osk&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Outlook Express &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;msimn&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Performance Monitor &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;perfmon&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Pinball Game &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;pinball&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Power Configuration &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;powercfg.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Printers and Faxes &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;control printers&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Printers Folder &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;printers&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Registry Editor &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;regedit&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Remote Desktop &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;mstsc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Security Center &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;wscui.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Services &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;services.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Shared Folders &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;fsmgmt.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Shuts Down Windows &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;shutdown&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Sounds and Audio &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;mmsys.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Spider Solitare Card Game &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;spider&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;System Configuration Utility &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;msconfig&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;System Information &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;msinfo32&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;System Properties &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;sysdm.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Task Manager &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;taskmgr&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;TCP Tester &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;tcptest&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Telnet Client &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;telnet&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;User Account Management &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;nusrmgr.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Utility Manager &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;utilman&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Address Book &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;wab&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Firewall &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;firewall.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Magnifier &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;magnify&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Management&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Infrastructure &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;wmimgmt.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Media Player &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Messenger &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;msmsgs&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows Version&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(to show which version of windows) winver&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Windows XP Tour Wizard &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;tourstart&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Wordpad &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;write&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="text-align: left;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 16px/normal Georgia; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 16px/normal Georgia; text-align: right; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6286908420471011044-5390741571140633437?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/5390741571140633437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=5390741571140633437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5390741571140633437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/5390741571140633437'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/10/windows-command-shortcuts-ii.html' title='Windows: Command shortcuts II'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6286908420471011044.post-4697274071710899786</id><published>2005-10-28T14:47:00.000-07:00</published><updated>2009-10-28T15:18:04.386-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows: Command shortcuts I</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Add/Remove Programs &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;appwiz.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Administrative Tools &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;control admintools&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Adobe Photoshop  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;photoshop&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Automatic Updates &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;wuaucpl.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Bluetooth Transfer Wizard &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;fsquirt&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Calculator &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;calc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Character Map &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;charmap&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Check Disk Utility &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;chkdsk&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Clipboard Viewer &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;clipbrd&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Command Prompt &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;cmd&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Computer Management &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;compmgmt.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Control Panel   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;control&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Date and Time Properties &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;timedate.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Device Manager &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;devmgmt.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Disk Cleanup Utility &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;cleanmgr&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Disk Defragment &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;dfrg.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Disk Management &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;diskmgmt.msc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Disk Partition Manager &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;diskpart&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Display Properties &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;control desktop&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Display Properties &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;desk.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Driver Verifier Utility &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;verifier&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Findfast &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;findfast.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Firefox   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;firefox&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Folders Properties &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;control folders&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fonts &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;control fonts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fonts Folder &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;fonts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Free Cell Card Game &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;freecell&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hearts Card Game &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;mshearts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Help and Support   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;helpctr&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Internet Explorer   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;iexplore&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Internet Properties &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;inetcpl.cpl&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;IP Configuration&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ipconfig&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Java Control Panel &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;javaws&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Logs You Out Of Windows &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;logoff&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/b&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/6286908420471011044-4697274071710899786?l=nxgenesis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nxgenesis.blogspot.com/feeds/4697274071710899786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6286908420471011044&amp;postID=4697274071710899786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4697274071710899786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6286908420471011044/posts/default/4697274071710899786'/><link rel='alternate' type='text/html' href='http://nxgenesis.blogspot.com/2009/10/windows-shortcuts.html' title='Windows: Command shortcuts I'/><author><name>Ashish</name><uri>http://www.blogger.com/profile/04312697530880113058</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OYqLmhB1gqM/Smvo_8GgPgI/AAAAAAAABQc/4qzFX2LIWi0/S220/b.jpg'/></author><thr:total>0</thr:total></entry></feed>
