<?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-6025089615285380514</id><updated>2011-11-24T21:45:54.109-08:00</updated><category term='improve'/><category term='copy-paste'/><category term='error-messages'/><category term='protocol'/><category term='tools'/><category term='books'/><category term='sshmenu'/><category term='collaboration'/><category term='development'/><category term='ping'/><category term='applied'/><category term='apt-get'/><category term='getting-started'/><category term='cartoons'/><category term='problem-solving'/><category term='service'/><category term='using'/><category term='analogy'/><category term='backtrack'/><category term='xmind'/><category term='push'/><category term='configuration'/><category term='stopped-working'/><category term='valgrind'/><category term='resources'/><category term='traceroute'/><category term='multi-hop'/><category term='c++'/><category term='loader'/><category term='anti-patterns'/><category term='compress'/><category term='viewing'/><category term='jerry-weinberg'/><category term='Httrack'/><category term='scripting'/><category term='packages'/><category term='table'/><category term='techniques'/><category term='RFC'/><category term='stripped-binary'/><category term='wizard'/><category term='do&apos;s'/><category term='qualities'/><category term='java'/><category term='theme'/><category term='freemind'/><category term='success'/><category term='example'/><category term='FOSS'/><category term='putty'/><category term='format'/><category term='bcvi'/><category term='core-dump'/><category term='wireshark'/><category term='fedora-core-14'/><category term='networking'/><category term='wordpress'/><category term='cheat-sheet'/><category term='GPL'/><category term='reborn'/><category term='ctags'/><category term='masterpiece'/><category term='internals'/><category term='desktop'/><category term='user-space'/><category term='pyramid'/><category term='linux-tools'/><category term='time-machine'/><category term='delicious'/><category term='source-forge'/><category term='command-line'/><category term='creat-file'/><category term='design'/><category term='network'/><category term='coding-horror'/><category term='framework'/><category term='ubuntu'/><category term='blogging'/><category term='gerald-weinberg'/><category term='error'/><category term='open-source'/><category term='compiler'/><category term='rationale'/><category term='google'/><category term='Unix'/><category term='tcpdump'/><category term='list'/><category term='search-everything'/><category term='speed-up'/><category term='ask-questions'/><category term='template'/><category term='Oracle'/><category term='application'/><category term='understanding'/><category term='GUI'/><category term='long-road'/><category term='KVM'/><category term='programmer'/><category term='remote-editing'/><category term='mastery'/><category term='plugin'/><category term='compilation'/><category term='delta-debugging'/><category term='RSS-feed'/><category term='karl-fogel'/><category term='services'/><category term='mindmap'/><category term='code'/><category term='productivity'/><category term='multiple-entries'/><category term='OOAD'/><category term='learning'/><category term='website-mirror'/><category term='comments'/><category term='result-oriented'/><category term='record-what-you-learn'/><category term='recovery'/><category term='memcpy'/><category term='knowledge'/><category term='tag-file'/><category term='get-answers'/><category term='netstat'/><category term='basic'/><category term='gdb'/><category term='exuberant-ctags'/><category term='howto'/><category term='remote'/><category term='don&apos;ts'/><category term='strategies'/><category term='ssh'/><category term='xslt'/><category term='indexing'/><category term='under-the-hood'/><category term='utils'/><category term='improving'/><category term='book-review'/><category term='andreas-zeller'/><category term='memcheck'/><category term='kernel'/><category term='browsing'/><category term='computer-programming'/><category term='beginner'/><category term='Stub'/><category term='install'/><category term='stacktrace'/><category term='path'/><category term='multi-threaded'/><category term='media-wiki'/><category term='documentation'/><category term='C'/><category term='plug-in'/><category term='peopleware'/><category term='code-reading'/><category term='douglas-comer'/><category term='craftsman'/><category term='crawl'/><category term='projects'/><category term='process-oriented'/><category term='art'/><category term='subscribe'/><category term='dvd'/><category term='step-by-step'/><category term='library'/><category term='Administration'/><category term='insight'/><category term='project-management'/><category term='stackoverflow'/><category term='firefox'/><category term='clipboard-manager'/><category term='psychology'/><category term='source-code'/><category term='RSS'/><category term='tips'/><category term='top10'/><category term='vim'/><category term='eclipse'/><category term='mailing-list'/><category term='review'/><category term='chmProcessor'/><category term='utility'/><category term='backup'/><category term='chm'/><category term='media-packer'/><category term='notes'/><category term='operating-system'/><category term='open-file'/><category term='technical'/><category term='refactoring'/><category term='save'/><category term='usage'/><category term='links'/><category term='firefox-4-beta-8'/><category term='tips-n-tricks'/><category term='SIGBUS'/><category term='google-gadget'/><category term='small-bites'/><category term='file-systems'/><category term='multiple-profiles'/><category term='tutorials'/><category term='craft'/><category term='software'/><category term='STL'/><category term='chunking'/><category term='html'/><category term='maintainance'/><category term='why'/><category term='automation'/><category term='syntopical-learning'/><category term='backtrace'/><category term='examples'/><category term='articles'/><category term='mmap'/><category term='wiki'/><category term='dll'/><category term='file-manager'/><category term='linker'/><category term='debugging'/><category term='connection'/><category term='useful'/><category term='study-notes'/><category term='in-depth'/><category term='address-out-of-bounds'/><category term='reverse-debugging'/><category term='collection'/><category term='knowledge-pyramid'/><category term='assembly'/><category term='forum'/><category term='updation'/><category term='port-forwarding'/><category term='form'/><category term='CDT'/><category term='download'/><category term='emotions'/><category term='python'/><category term='comparison'/><category term='browser'/><category term='__Excellent'/><category term='RARP'/><category term='internet'/><category term='windows'/><category term='apprenticeship-patterns'/><category term='papers'/><category term='database'/><category term='linux'/><category term='tech'/><category term='research'/><category term='team-work'/><category term='translation'/><category term='tool'/><category term='patterns'/><category term='programming'/><category term='multiple-processes'/><category term='configure'/><category term='WYNOT'/><category term='how-to'/><category term='blog'/><category term='book'/><category term='options'/><category term='experiences'/><category term='mindmapping'/><category term='add-ons'/><category term='crash-dump-analysis'/><category term='mind-map'/><category term='share-what-you-learn'/><category term='drupal'/><category term='features'/><category term='custom-language'/><category term='star-uml'/><category term='article'/><category term='failure'/><category term='apprenticeship'/><category term='profiling'/><title type='text'>Tech Talkies</title><subtitle type='html'>Where I talk about my "personal itch" in Programming and Computers</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>73</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-3569412876557516128</id><published>2011-07-28T06:52:00.000-07:00</published><updated>2011-07-28T01:10:11.557-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='internals'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='under-the-hood'/><category scheme='http://www.blogger.com/atom/ns#' term='translation'/><category scheme='http://www.blogger.com/atom/ns#' term='in-depth'/><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='__Excellent'/><title type='text'>Good Articles on Internals of C++ and Unix</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;"C a glorified assembler" or "C a generalized assembler"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Actually I only really started understanding C when I understood 2 things about it.&lt;br /&gt;1) Anything you code in C finally translates to assembly language.&lt;br /&gt;2) How your compiler interacts with the O.S. loading/linking mechanism.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;A) C as a glorified assembler:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;You can easily test this.&lt;br /&gt;Use the 'gcc --save-temps ' feature of your gcc compiler to see the assembly language output.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;C program to assembly code translation&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;C program&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/i&gt;&lt;i&gt;extern int printf(const char *, ...)&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;printf( "Hello, World!\n");&lt;br /&gt;&amp;nbsp;return 0;&lt;br /&gt;}&lt;/i&gt;&lt;br /&gt;#Retain temporary intermediate files generated during preproc, compiling, assembling etc.&lt;br /&gt;&lt;i&gt;gcc --save-temps test.c&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;Pseudo-Assembly (see link for more accurate example)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;.data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # data section starts at say 0x100&lt;br /&gt;msg ds "Hello, World!\n"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # define string with label as msg and content as "Hello, World!\n"&lt;br /&gt;&lt;br /&gt;.text&lt;br /&gt;push sp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # save the current stack pointer&lt;br /&gt;push msg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # push the function parameter onto stack&lt;br /&gt;call _printf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # make the library call&lt;br /&gt;ret&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # essentially return 0 as errorvalue to bash/cmd.exe&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/i&gt;&lt;br /&gt;Since the C language is portable from one platform to another it kind-of acts like a virtual machine (without byte-code generation of-course). &lt;br /&gt;The same C program will compile on different machine-compiler pairs to the specific assembly language and O.S. of the platform in question.&lt;br /&gt;&lt;br /&gt;This makes for&amp;nbsp; chip/hardware specific assembly(Intel x86 or Motorola or ARM ...) portability.&lt;br /&gt;&lt;br /&gt;Refer:&lt;br /&gt;&lt;a href="http://www.eventhelix.com/RealtimeMantra/Basics/CToAssemblyTranslation.htm"&gt;&lt;i&gt;C to Assembly Translation Article from EventHelix&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;B) Interaction with O.S. loader/linker/virtual-memory:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;The specific C compiler would also link the O.S. specific C runtime properly.&lt;br /&gt;&lt;br /&gt;So gcc which is a portable compiler would link in.&lt;br /&gt;a) mingw C runtime on Win32&lt;br /&gt;b) linux C runtime on Linux.&lt;br /&gt;&lt;br /&gt;The same C program would also convert to correct assembly/runtime on &lt;br /&gt;Watcom C++, Visual C++ compiler, AIX, HP/UX compilers etc.&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;a) &lt;a href="http://en.wikipedia.org/wiki/C_standard_library"&gt;printf() comes from the C Standard Library&lt;/a&gt;&lt;br /&gt;b) &lt;a href="http://en.wikipedia.org/wiki/Runtime_library"&gt;C runtime library contains the startup code which executes before and after main&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Refer:&lt;br /&gt;1) &lt;a href="http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801/?ciid=eb08b3f1eee02110b3f1eee02110275d6e10RCRD"&gt;C++ runtime environments on HP-UX&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://techtalkies.blogspot.com/2007/07/good-articles-on-internals-of-c-and.html"&gt;Internals of C/C++ compiler implementations&lt;/a&gt;&lt;br /&gt;3) &lt;a href="http://www.nobugs.org/developer/win32/debug_crt_heap.html"&gt;How to use debug C runtime to debug your application&lt;/a&gt;&lt;br /&gt;4) &lt;a href="http://www.osdever.net/tutorials/view/writing-a-kernel-in-c"&gt;How to write a minimal Kernel in C&lt;/a&gt; (a very simple Hello world program which also describes the libc C runtime library)&lt;br /&gt;5) &lt;a href="http://book.opensourceproject.org.cn/kernel/kernel3rd/opensource/0596005652/understandlk-chp-10.html"&gt;Understanding System Calls&lt;/a&gt;&lt;br /&gt;Note:&lt;br /&gt;The C standard library calls like open(), close(), putc(), getc() etc actually just forward the call to O.S. system calls in the linux kernel. The C runtime actually maps a stdlibrarycall to an interrupt vector i.e. system call index number in a lookup table. Then it uses a software interrupt to call the system call (transfers from user mode to kernel mode and back)&lt;br /&gt;&lt;br /&gt;---- &lt;br /&gt;&lt;br /&gt;These are a set of articles that take a look at what happens inside C, C++, Unix internals as we compile and run our programs. The info here is invaluable to debug compile errors, runtime errors and memory issues. You can go through these in your spare time. Take a print out to read in your spare time and go through these articles.&lt;br /&gt;&lt;br /&gt;0.&lt;a href="http://docs.hp.com/en/B2355-90655/ch02.html"&gt;What Happens When You Compile and Link a Program&lt;/a&gt;&lt;br /&gt;1.&lt;a href="http://www.geekronomicon.com/?q=node/68"&gt;What a Compiler Turns Your C Code Into &lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_pluslang_virtual_base_classes.asp"&gt;Virtual Base Classes Implementation&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://en.wikipedia.org/wiki/Name_mangling"&gt;How the C++ compiler mangles/decorates function names&lt;br /&gt;&lt;/a&gt;4. &lt;a href="http://users.actcom.co.il/%7Echoo/lupg/tutorials/unix-memory/unix-memory.html"&gt;Unix And C-C++ Runtime Memory Management For Programmers&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/6025089615285380514-3569412876557516128?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/3569412876557516128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2007/07/good-articles-on-internals-of-c-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3569412876557516128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3569412876557516128'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2007/07/good-articles-on-internals-of-c-and.html' title='Good Articles on Internals of C++ and Unix'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6035103078893216458</id><published>2011-07-13T06:39:00.000-07:00</published><updated>2011-07-13T06:39:21.793-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bcvi'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-hop'/><category scheme='http://www.blogger.com/atom/ns#' term='remote-editing'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='sshmenu'/><title type='text'>Remotely editing files with ssh, sshmenu, bcvi and vim</title><content type='html'>&lt;h2 style="font-weight: normal;"&gt; &lt;/h2&gt;&lt;strong style="font-weight: normal;"&gt;No need to install your favourite vim settings etc on the remote server just use bcvi to start gvim on your workstation. &lt;br /&gt;It uses scp internally to create an editing session from workstation to server&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://sshmenu.sourceforge.net/articles/transparent-mulithop.html" target="_blank" title="External link to  http://sshmenu.sourceforge.net/articles/transparent-mulithop.html "&gt; Transparent multi-hop ssh &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://sshmenu.sourceforge.net/setup/" target="_blank" title="External link to  http://sshmenu.sourceforge.net/setup/ "&gt; sshmenu setup howto &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://sshmenu.sourceforge.net/articles/bcvi/" target="_blank" title="External link to  http://sshmenu.sourceforge.net/articles/bcvi/ "&gt; Remotely editing files with bcvi and vim &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://vim.wikia.com/wiki/Editing_remote_files_via_scp_in_vim" target="_blank" title="External link to  http://vim.wikia.com/wiki/Editing_remote_files_via_scp_in_vim "&gt; Editing remote files in vim via scp &lt;/a&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6035103078893216458?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6035103078893216458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/07/remotely-editing-files-with-ssh-sshmenu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6035103078893216458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6035103078893216458'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/07/remotely-editing-files-with-ssh-sshmenu.html' title='Remotely editing files with ssh, sshmenu, bcvi and vim'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6329138690442399915</id><published>2011-07-13T06:00:00.000-07:00</published><updated>2011-07-13T06:00:15.099-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exuberant-ctags'/><category scheme='http://www.blogger.com/atom/ns#' term='browsing'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='ctags'/><category scheme='http://www.blogger.com/atom/ns#' term='source-code'/><category scheme='http://www.blogger.com/atom/ns#' term='tag-file'/><category scheme='http://www.blogger.com/atom/ns#' term='custom-language'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><title type='text'>Browsing XSLT with Vim by adding a Custom Language to Ctags</title><content type='html'>&lt;h2&gt; XSLT Source Code Browsing with Vim and Ctags&lt;/h2&gt;&lt;h3&gt; Creating a tags file&lt;/h3&gt;1) Test out the regular-expressions for your custom language: &lt;br /&gt;&lt;pre&gt;$&amp;gt; egrep 'pattern' *.xsl&lt;/pre&gt;2) Copy-paste custom language with the above regular-expressions into ~/.ctags.&lt;br /&gt;&lt;pre&gt;$&amp;gt; vi ~/.ctags&lt;br /&gt;--langdef=EXSLT&lt;br /&gt;--langmap=EXSLT:.xsl&lt;br /&gt;--regex-EXSLT=/&lt;xsl:variable[ \t]+name="\&amp;quot;([-a-zA-Z0-9_]+)\&amp;quot;/\1/v,variable/i&amp;lt;br"&gt;--regex-EXSLT=/&lt;func:function[ \t]+name="\&amp;quot;([-a-zA-Z0-9_:]+)\&amp;quot;/\1/f,function/i&amp;lt;br"&gt;--regex-EXSLT=/&lt;xsl:template[ \t]+match="\&amp;quot;([/-a-zA-Z0-9_:]+)\&amp;quot;/\1/t,template/i&amp;lt;br"&gt;$&amp;gt; cd srcdir&lt;br /&gt;$&amp;gt; ctags -R *&lt;br /&gt;$&amp;gt; vi ./tags        #check for tag-entries containing the search patterns&lt;br /&gt;$&amp;gt; vi test.xsl     #Use Ctrl-] to jump from a pattern usage to its definition, Ctrl-T to jump back&lt;/xsl:template[&gt;&lt;/func:function[&gt;&lt;/xsl:variable[&gt;&lt;/pre&gt;Note: &lt;br /&gt;1) Above solution for templates only uses xpath of match="xyz".&lt;br /&gt;The search-key for the template (displays taglist for templates with same xpath).&lt;br /&gt;Potentially a template is uniquely identifiable using match AND mode:&lt;br /&gt;&lt;template match="xpath" mode="one"&gt;&lt;br /&gt;Solution: Choose from multiple results of taglist (Or) &lt;br /&gt;Use '*' and '#' to forwards/backward search in current or other opened files.&lt;br /&gt;2) ctags will work with exslt functions:&lt;br /&gt;&lt;func:function name="myns:foo"&gt;&lt;br /&gt;3) ctags will work with xslt variables (displays taglist for variables with same name):&lt;br /&gt;&lt;xsl:variable name="user"&gt;&lt;br /&gt;4) The ( and ) are used to create a tag-entry in tags file where \1 is the matching keyword.&lt;br /&gt;5) &lt;a class="externalLink" href="http://ctags.sourceforge.net/EXTENDING.html" target="_blank" title="External link to  http://ctags.sourceforge.net/EXTENDING.html "&gt; Extending Ctags for a new language &lt;/a&gt; requires C coding and is a different cup of tea totally.&lt;br /&gt;&lt;hr /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://stackoverflow.com/questions/6466928/is-there-a-ctags-like-tool-for-browsing-navigating-xslt-code-in-vim" target="_blank" title="External link to  http://stackoverflow.com/questions/6466928/is-there-a-ctags-like-tool-for-browsing-navigating-xslt-code-in-vim "&gt; My question on Browsing XSLT with Ctags and Vim &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://stackoverflow.com/questions/2502955/how-can-i-generate-a-tags-file-for-groovy-classes-for-use-in-vim-emacs" target="_blank" title="External link to  http://stackoverflow.com/questions/2502955/how-can-i-generate-a-tags-file-for-groovy-classes-for-use-in-vim-emacs "&gt; Adding ActionScript language using Ctags and TList in vim &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://www.zeusedit.com/zforum/viewtopic.php?t=3367" target="_blank" title="External link to  http://www.zeusedit.com/zforum/viewtopic.php?t=3367 "&gt; Adding Clipper language to Ctags on Zeus &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://vim.wikia.com/wiki/Browsing_programs_with_tags" target="_blank" title="External link to  http://vim.wikia.com/wiki/Browsing_programs_with_tags "&gt; Creating and Browsing with Ctags files in Vim &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://vimdoc.sourceforge.net/htmldoc/usr_29.html#29.1" target="_blank" title="External link to  http://vimdoc.sourceforge.net/htmldoc/usr_29.html#29.1 "&gt; Vim documentation on Using Ctags &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a class="externalLink" href="http://www.arl.wustl.edu/%7Efredk/Courses/Docs/vim/if_cscop.html#csto" target="_blank" title="External link to http://www.arl.wustl.edu/~fredk/Courses/Docs/vim/if_cscop.html#csto "&gt; Vim documentation on Using CScope &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://www.pnotepad.org/docs/howto/tag_custom_languages" target="_blank" title="External link to  http://www.pnotepad.org/docs/howto/tag_custom_languages "&gt; Adding custom languages to Ctags with langdef/langmap at pnotepad &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://pwet.fr/man/linux/commandes/posix/ctags" target="_blank" title="External link to  http://pwet.fr/man/linux/commandes/posix/ctags "&gt; ctags tag format for C and FORTRAN mini explanation &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://ctags.sourceforge.net/EXTENDING.html" target="_blank" title="External link to  http://ctags.sourceforge.net/EXTENDING.html "&gt; Howto extend Ctags using a language extension &lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h3&gt;Other languages&lt;/h3&gt;&lt;a class="externalLink" href="http://stackoverflow.com/questions/4477322/how-to-make-vim-ctags-works-for-modern-javascript" target="_blank" title="External link to  http://stackoverflow.com/questions/4477322/how-to-make-vim-ctags-works-for-modern-javascript "&gt; Make ctags work with modern javascript &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://weblogs.asp.net/george_v_reilly/archive/2009/03/24/exuberant-ctags-and-javascript.aspx" target="_blank" title="External link to  http://weblogs.asp.net/george_v_reilly/archive/2009/03/24/exuberant-ctags-and-javascript.aspx "&gt; modern javascript langdef and langmap for ctags &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://www.linuxdocs.org/HOWTOs/Vim-HOWTO-6.html#ss6.1" target="_blank" title="External link to  http://www.linuxdocs.org/HOWTOs/Vim-HOWTO-6.html#ss6.1 "&gt; Shell script to Generate Ctags for Embedded SQL &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://www.linuxdocs.org/HOWTOs/Vim-HOWTO-6.html#ss6.2" target="_blank" title="External link to  http://www.linuxdocs.org/HOWTOs/Vim-HOWTO-6.html#ss6.2 "&gt; Shell script to generate Ctags for Javascript, Korn and Bourne Shells &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://hackage.haskell.org/package/hasktags" target="_blank" title="External link to  http://hackage.haskell.org/package/hasktags "&gt; Haskell tags generator download &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://scie.nti.st/2006/12/22/how-to-add-css-support-to-ctags" target="_blank" title="External link to  http://scie.nti.st/2006/12/22/how-to-add-css-support-to-ctags "&gt; How to compile in CSS support to Ctags &lt;/a&gt;&lt;/xsl:variable&gt;&lt;/func:function&gt;&lt;/template&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6329138690442399915?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6329138690442399915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/07/browsing-xslt-with-vim-by-adding-custom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6329138690442399915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6329138690442399915'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/07/browsing-xslt-with-vim-by-adding-custom.html' title='Browsing XSLT with Vim by adding a Custom Language to Ctags'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2898399015433229073</id><published>2011-07-11T07:16:00.000-07:00</published><updated>2011-07-11T07:19:18.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emotions'/><category scheme='http://www.blogger.com/atom/ns#' term='apprenticeship-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='psychology'/><category scheme='http://www.blogger.com/atom/ns#' term='problem-solving'/><category scheme='http://www.blogger.com/atom/ns#' term='success'/><category scheme='http://www.blogger.com/atom/ns#' term='process-oriented'/><category scheme='http://www.blogger.com/atom/ns#' term='anti-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='result-oriented'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><category scheme='http://www.blogger.com/atom/ns#' term='computer-programming'/><title type='text'>Apprenticeship Patterns: Patterns and Anti-Patterns of Problem-Solving</title><content type='html'>&lt;b&gt;The Intellectual Side of Problem-Solving:&lt;/b&gt;&lt;br /&gt;(Borrowing heavily from AI terminology) &lt;br /&gt;Imagine a 3D Cube containing the start-state, the goal-state, the problem-space and the solution-paths.&lt;br /&gt;You're essentially scanning a problem space for a solution i.e. a combination of sub-steps which finally lead to goal.&lt;br /&gt;1) Explore the problem space first i.e. try out things&lt;br /&gt;2) Identify what worked or is promising and extend the branches into the sub-problem spaces&lt;br /&gt;3) Recurse over the sub-branches until you've covered enough of the problem-space.&lt;br /&gt;4) If the volume of the problem-space is vast it may help to BackTrack from Goal towards the problem state.&lt;br /&gt;&lt;br /&gt;This reduces the volume of problem-space to be probed for possible solution-paths. This is known an "Alph-Beta" Pruning of the (Decision??) Tree.&lt;br /&gt;//TODO: Add Diagram of 3D Problem Space and Decision(??) Tree.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In Nature, Lightning follows a very similar method of Back-Tracking.&lt;br /&gt;It seeks out the easiest path between cloud and ground through an insulating volume of air.&lt;br /&gt;Actually there is an initial weak backtracking path from ground to cloud, followed later by a strong return path.&lt;br /&gt;//TODO: Add picture of Lightning fingers&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Emotional Side of Problem-Solving:&lt;/b&gt;&lt;br /&gt;Basicially we must first ask "Why" is problem-solving so important?&lt;br /&gt;Not all problems we face are life-threatening to require immediate attention.&lt;br /&gt;So then what is it that makes solving them so important in the first place.&lt;br /&gt;&lt;br /&gt;Refer:&lt;br /&gt;1) Psychology of Computer Programming by Gerald Weinberg&lt;br /&gt;2) Emotional Intelligence &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Experience - coming to terms with "immediate failures" vs. "future pay-offs" &lt;/b&gt;&lt;br /&gt;1) Try out many things to get a better solution or a solution which appeals to your way of doing things.&lt;br /&gt;2) All the things you try won't/can't succeed at least immediately.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Mostly many of these "dead-end branches" are just waiting for the right time to flower. You're actually building up a fund of ideas and efforts which will help you overcome some other obstacle.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Example: &lt;br /&gt;&amp;nbsp;&amp;nbsp; Unix was a result of dissatisfaction with implementing Multics which itself was a replacement for some other O.S.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Ken Thompson went on to implement ideas for distributed O.S in CODA, Plan9 etc. 30-40 years later these lessons learned and 'the-roads-tried-but-not-taken' have resulted in writing a 'go' language.&lt;br /&gt;&amp;nbsp;&amp;nbsp; It's used in Google which puts those same ideas refined over time into concrete working programs.&lt;br /&gt;&lt;br /&gt;3) Watching my son getting frustrated when his cycle got stuck in a corner. &lt;br /&gt;&amp;nbsp;&amp;nbsp; He'd start screaming and banging the cycle into the wall.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Beating it with red-face and small fists. &lt;br /&gt;&amp;nbsp;&amp;nbsp; The tears of frustration and incomprehension as to why the universe conspired against his cycling.&lt;br /&gt;&lt;br /&gt;4) This felt so much like my own frustration with my own efforts.&lt;br /&gt;&amp;nbsp;&amp;nbsp; The perceived low return-on-investment of the "meagre" results.&lt;br /&gt;&amp;nbsp;&amp;nbsp; So many ideas half-implemented, unimplemented and ALL the wonderful things not even attempted i.e. 'the-road-not-taken'.&lt;br /&gt;&amp;nbsp;&amp;nbsp; The universe almost conspiring to thwart each hope and attempt at magically succeeding at all things.&lt;br /&gt;&lt;br /&gt;5) Frustrations comes from other people's expectations. &lt;br /&gt;&amp;nbsp;&amp;nbsp; And more so our own awareness of not "measuring-up" to their and our own expectations.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Perfectionism adds heavily to an already sticky situation.&lt;br /&gt;&amp;nbsp;&amp;nbsp; A feeling that time is running out. &lt;br /&gt;&amp;nbsp;&amp;nbsp; The impending joining of ranks with washed-out oldies. &lt;br /&gt;&amp;nbsp;&amp;nbsp; A feeling of helplessness and hopelessness that things can't/won't change no matter what.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; Unable to leave coding and unwilling to change to management (manipulating people not machines).&lt;br /&gt;&amp;nbsp;&amp;nbsp; Fear of becoming obsolete, of not living up-to the dreams, hopes and self-expectation built up over the years.&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Patterns: The Middle Path between the Emotional and Intellectual Sides of Problem-Solving&lt;/b&gt;&lt;br /&gt;&lt;i&gt;"Why patterns work?!!"&lt;/i&gt; AKA &lt;i&gt;"All I needed to know about Patterns I learned in Kindergarten"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Patterns force you to Think and NOT concentrate so much on the Feeling part (which is the cause of frustration)&lt;br /&gt;a) Read, understand, see how the Pattern fits the Problem. &lt;br /&gt;b) Re-evaluate the problem itself.&lt;br /&gt;c) Try carrying out/coding the Pattern.&lt;br /&gt;d) Customizing the Pattern to the situation.&lt;br /&gt;e) Utilize your Feeling side by reflecting on aesthetics as pattern application is a very qualitative activity.&lt;br /&gt;&lt;br /&gt;Patterns are primarily a set of ready-made formulas (cookbook-style) for successful problem-solving.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Raise Flagging Hopes:&lt;/b&gt;&lt;br /&gt;These are also sufficiently magic-endowed by hearing good things from others etc. This helps you get over the inertia of hopelessness or feeling stuck at a problem. &lt;u&gt;&lt;i&gt;"Who knows this just might work - I've nothing to lose."&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Abstract the problem solving process.&lt;/b&gt;&lt;br /&gt;De-personalise the problem takes the bite out of it.&lt;br /&gt;If the trial fails it's just the Pattern failing NOT you. &lt;br /&gt;You're fore-warned to try out different patterns for different circumstances.&lt;br /&gt;So you just try some other Pattern or just do something else.&lt;br /&gt;Since the Pattern comes from outside, you give yourself time to understand it.&lt;br /&gt;This is the crucial part where you become accepting of time and effort to customize the Pattern to your particular situation.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclusion: &lt;/b&gt;&lt;br /&gt;Patterns are very effective Devices for Distraction from Result and Focus onto Process instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2898399015433229073?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2898399015433229073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/07/patterns-and-anti-patterns-of-problem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2898399015433229073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2898399015433229073'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/07/patterns-and-anti-patterns-of-problem.html' title='Apprenticeship Patterns: Patterns and Anti-Patterns of Problem-Solving'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2736797421441363745</id><published>2011-07-01T00:41:00.000-07:00</published><updated>2011-07-01T01:31:53.730-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='port-forwarding'/><category scheme='http://www.blogger.com/atom/ns#' term='recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='connection'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='error-messages'/><category scheme='http://www.blogger.com/atom/ns#' term='putty'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>How-to Repair an Oracle Database using Putty, SQL Developer GUI and some trial-and-error</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I had a problem earlier when I made some changes to the test/dev DB and didn't know how to revert back to correct state.&lt;br /&gt;&lt;br /&gt;Issue:&lt;br /&gt;I couldn't delete a row in a table containing incorrect data as the row's primary key was acting as a foreign key in some other table. If I deleted this row it would violate the integrity of the other table(s).&lt;br /&gt;&lt;br /&gt;Process: &lt;br /&gt;So I took a backup of the entire DB (just in case I needed it&amp;nbsp; and I did need it!!).&lt;br /&gt;Dropped the constraints, deleted all the related rows (or something like that)&lt;br /&gt;Recreated the constraints and the DB was restored to correct state.&lt;br /&gt;In the process I learned quite a bit about DB's.&lt;br /&gt;&lt;br /&gt;Tried out individual commands in the GUI.&lt;br /&gt;Then copied multiple commands into a script.&lt;br /&gt;Ran the scripts, corrected any errors till I got a working script.&lt;br /&gt;Liberally used transaction and rollback to help in the trial-and-error process.&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;I don't remember the specific details but basically &lt;br /&gt;I used a GUI DB browser (SQL Developer) to connect to a Remote DB by port forwarding from my Unix machine.&lt;br /&gt;&lt;br /&gt;Working with command-line client is ok if you're really good at it and know all the command syntax etc.&lt;br /&gt;But using a GUI browser really speeds things up as it can manage things  like transactions, rollback etc all at the click of a button.&lt;br /&gt;&lt;br /&gt;Database GUI SQL Developer allows you to &lt;br /&gt;+ Try out individual commands (with rollback) to see if you're getting the right results.&lt;br /&gt;+ Copy paste small commands into a bigger sql script (with start transaction at start and commit or rollback at script end)&lt;br /&gt;+ Browse a remote DB in GUI mode using a DB connection (using ssh tunnel), &lt;br /&gt;+ backup the entire database (for safety)&lt;br /&gt;+ maybe try out things on a local database first, before attempting the same on the actual DB.&lt;br /&gt;&lt;br /&gt;You can export the original DB. Import into a local DB. Try out the operations to check it works.&lt;br /&gt;It may also help to create try out your modifications on a duplicate DB  on remote machine instead of touching the problematic DB directly.&lt;br /&gt;&lt;br /&gt;1) SQL Developer Setup and Tunneling (port forwarding) instructions are available here. &lt;br /&gt;http://www.cs.tau.ac.il/~boim/courses/databases2009/slides/moreinfo/connection-guide.htm#_Toc150420090&lt;br /&gt;http://www.madirish.net/?article=152&lt;br /&gt;2) You may need to tweak a few things on your Unix machine to get the tunnel working though. &lt;br /&gt;3) Finding somebody in your/other teams who's good at Databases will be a big help. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Local person who can see what the problem is and give quick suggestion is always better.&lt;br /&gt;4) Searching on error messages would help find howto's for fixing the problem.&lt;br /&gt;5) Search error messages in forums like stackoverflow.com will help to quickly find the info or relevant links.&lt;br /&gt;&lt;br /&gt;HTH.&lt;br /&gt;----&lt;br /&gt;&lt;b&gt;Oracle SQL Developer&lt;/b&gt; &lt;br /&gt;&lt;h2&gt;&lt;/h2&gt;&lt;a href="http://download.oracle.com/docs/cd/E12151_01/doc.150/e12152.pdf"&gt; PDF - Oracle SQL Developer User Guide &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://en.wikipedia.org/wiki/Oracle_SQL_Developer" target="_blank" title="External link to  http://en.wikipedia.org/wiki/Oracle_SQL_Developer "&gt; Oracle SQL Developer at wikipedia &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://st-curriculum.oracle.com/tutorial/SQLDeveloper/index.htm" target="_blank" title="External link to  http://st-curriculum.oracle.com/tutorial/SQLDeveloper/index.htm "&gt; Oracle SQL Developer Tutorial &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://hodentek.blogspot.com/2008/12/oracle-sql-developer-tool-15-with-sql.html" target="_blank" title="External link to  http://hodentek.blogspot.com/2008/12/oracle-sql-developer-tool-15-with-sql.html "&gt; Connecting Oracle SQL Developer to MS SQL Server &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://hodentek.blogspot.com/2008/02/how-to-export-query-results-from-oracle.html" target="_blank" title="External link to  http://hodentek.blogspot.com/2008/02/how-to-export-query-results-from-oracle.html "&gt; How-to Export Tables/Entire DB with Oracle SQL Developer &lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;b&gt;Oracle SQL*Plus command line interface (CLI)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://www.orafaq.com/wiki/SQL*Plus_FAQ" target="_blank" title="External link to  www.orafaq.com/wiki/SQL*Plus_FAQ "&gt;SQL*Plus CLI FAQ&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.lorentzcenter.nl/awcourse/oracle/server.920/a90842/ch13.htm"&gt;SQL*Plus CLI command reference&lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://www.sql-plus.com/" target="_blank" title="External link to  http://www.sql-plus.com/ "&gt; SQL*Plus Tutorial &lt;/a&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/6025089615285380514-2736797421441363745?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2736797421441363745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/07/how-to-repair-oracle-database-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2736797421441363745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2736797421441363745'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/07/how-to-repair-oracle-database-using.html' title='How-to Repair an Oracle Database using Putty, SQL Developer GUI and some trial-and-error'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7411768171705967414</id><published>2011-06-23T10:30:00.000-07:00</published><updated>2011-06-23T10:30:42.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collection'/><category scheme='http://www.blogger.com/atom/ns#' term='operating-system'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Network and SysAdmin, Scripting, Debugging, O.S. Books</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if !mso]&gt;&lt;img src="http://img2.blogblog.com/img/video_object.png" style="background-color: #b2b2b2; " class="BLOGGER-object-element tr_noresize tr_placeholder" id="ieooui" data-original-id="ieooui" /&gt; &lt;style&gt;st1\:*{behavior:url(#ieooui) }&lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;}&lt;/style&gt; &lt;![endif]--&gt;  &lt;br /&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;[System Administration]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365347&amp;amp;sr=1-1"&gt;&lt;b&gt;UNIX and Linux System Administration Handbook (4th Edition)&lt;/b&gt;&lt;/a&gt; by Evi Nemeth, Garth Snyder, &lt;a href="http://www.blogger.com/Trent-R.-Hein/e/B001IGFJ5Q/ref=sr_ntt_srch_lnk_1?qid=1308365347&amp;amp;sr=1-1"&gt;Trent R. Hein&lt;/a&gt; and Ben Whaley (Jul 24, 2010) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-Administration-Handbook-Evi-Nemeth/dp/0130084662/ref=cm_lmf_tit_1_rsrssi1"&gt;Linux Administration Handbook&lt;/a&gt; by Trent R. Hein&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Essential-System-Administration-Third-Frisch/dp/0596003439/ref=sr_1_7?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365347&amp;amp;sr=1-7"&gt;Essential System Administration, Third Edition&lt;/a&gt; by Æleen Frisch (Aug 15, 2002) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-System-Administration-White-Papers/dp/B00007FYHK/ref=sr_1_35?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365715&amp;amp;sr=1-35"&gt;Linux System Administration White Papers: A Compilation of Technical Documents for System Administrators&lt;/a&gt; by &lt;a href="http://www.blogger.com/Olaf-Kirch/e/B000APEZFG/ref=sr_ntt_srch_lnk_35?qid=1308365715&amp;amp;sr=1-35"&gt;Olaf Kirch&lt;/a&gt;, Eric Raymond and Lars W. Wirzenius (Sep 20, 1999) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-Nutshell-Ellen-Siever/dp/0596154488/ref=sr_1_15?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365529&amp;amp;sr=1-15"&gt;Linux in a Nutshell&lt;/a&gt; by &lt;a href="http://www.amazon.com/Ellen-Siever/e/B000APQAVS/ref=sr_ntt_srch_lnk_15?qid=1308365529&amp;amp;sr=1-15"&gt;Ellen Siever&lt;/a&gt;, &lt;a href="http://www.amazon.com/Stephen-Figgins/e/B001ITTRD8/ref=sr_ntt_srch_lnk_15?qid=1308365529&amp;amp;sr=1-15"&gt;Stephen Figgins&lt;/a&gt;, &lt;a href="http://www.amazon.com/Robert-Love/e/B001ILFKVE/ref=sr_ntt_srch_lnk_15?qid=1308365529&amp;amp;sr=1-15"&gt;Robert Love&lt;/a&gt; and Arnold Robbins (Sep 29, 2009)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;======================&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;[Network Administration]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-Network-Administrators-Guide-Bautts/dp/0596005482/ref=sr_1_14?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365529&amp;amp;sr=1-14"&gt;Linux Network Administrator's Guide&lt;/a&gt; by &lt;a href="http://www.amazon.com/Tony-Bautts/e/B0034NIC5U/ref=sr_ntt_srch_lnk_14?qid=1308365529&amp;amp;sr=1-14"&gt;Tony Bautts&lt;/a&gt;, Terry Dawson and Gregor N. Purdy (Feb 10, 2005) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/LINUX-Network-Administrators-Guide-pages/dp/1441418776/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366080&amp;amp;sr=1-3"&gt;&lt;b&gt;LINUX Network Administrators Guide: 508 pages&lt;/b&gt;&lt;/a&gt; by Olaf Kirch and Terry Dawson (Jan 5, 2009) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Accidental-Administrator-Step---Step-Configuration/dp/1453689923/ref=sr_1_24?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365529&amp;amp;sr=1-24"&gt;The Accidental Administrator: Linux Server Step-by-Step Configuration Guide&lt;/a&gt; by &lt;a href="http://www.amazon.com/Don-R-Crawley/e/B003YR4XPY/ref=sr_ntt_srch_lnk_24?qid=1308365529&amp;amp;sr=1-24"&gt;Don R Crawley&lt;/a&gt; (Oct 27, 2010) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-TCP-IP-Network-Administration/dp/0130322202/ref=sr_1_8?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366297&amp;amp;sr=1-8"&gt;Linux TCP/IP Network Administration&lt;/a&gt; by &lt;a href="http://www.amazon.com/Scott-Mann/e/B001H6NLCU/ref=sr_ntt_srch_lnk_8?qid=1308366297&amp;amp;sr=1-8"&gt;Scott Mann&lt;/a&gt; (Jul 26, 2001)&lt;span&gt;&amp;nbsp; &lt;/span&gt;TCP/IP stack understand, configure and troubleshoot servers&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-Firewalls-3rd-Steve-Suehring/dp/0672327716/ref=cm_lmf_tit_11_rsrssi1"&gt;Linux Firewalls (3rd Edition)&lt;/a&gt;&lt;/b&gt; by Robert L. Ziegler&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-Networking-Cookbook-Carla-Schroder/dp/0596102488/ref=pd_sim_b_37"&gt;Linux Networking Cookbook&lt;/a&gt; by Carla Schroder &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Internet-Routing-Architectures-2nd-Halabi/dp/157870233X/ref=pd_sim_b_49"&gt;Internet Routing Architectures (2nd Edition)&lt;/a&gt; by Sam Halabi &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;========================&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;[Network and System Administration]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Practice-System-Network-Administration-Second/dp/0321492668/ref=sr_1_9?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366080&amp;amp;sr=1-9"&gt;The Practice of System and Network Administration, Second Edition&lt;/a&gt; by Thomas A. Limoncelli, &lt;a href="http://www.amazon.com/Christina-J.-Hogan/e/B001IGJN8K/ref=sr_ntt_srch_lnk_9?qid=1308366080&amp;amp;sr=1-9"&gt;Christina J. Hogan&lt;/a&gt; and &lt;a href="http://www.amazon.com/Strata-R.-Chalup/e/B001IGJN9E/ref=sr_ntt_srch_lnk_9?qid=1308366080&amp;amp;sr=1-9"&gt;Strata R. Chalup&lt;/a&gt; (Jul 15, 2007) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Red-Linux-Networking-System-Administration/dp/0764599496/ref=sr_1_24?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366350&amp;amp;sr=1-24"&gt;Red Hat Linux Networking and System Administration&lt;/a&gt; by &lt;a href="http://www.blogger.com/Terry-Collings/e/B001IQXJ9E/ref=sr_ntt_srch_lnk_24?qid=1308366350&amp;amp;sr=1-24"&gt;Terry Collings&lt;/a&gt; and &lt;a href="http://www.blogger.com/Kurt-Wall/e/B001IQZK00/ref=sr_ntt_srch_lnk_24?qid=1308366350&amp;amp;sr=1-24"&gt;Kurt Wall&lt;/a&gt; (Oct 21, 2005)&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;=====================&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;[Troubleshooting]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-Troubleshooting-Bible-Christopher-Negus/dp/076456997X/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366457&amp;amp;sr=1-1"&gt;Linux Troubleshooting Bible&lt;/a&gt; by Christopher Negus and Thomas Weeks (Jul 30, 2004) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-Debugging-Performance-Tuning-Techniques/dp/0131492470/ref=sr_1_2?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366457&amp;amp;sr=1-2"&gt;Linux® Debugging and Performance Tuning: Tips and Techniques&lt;/a&gt; by &lt;a href="http://www.blogger.com/Steve-Best/e/B001ITRPEG/ref=sr_ntt_srch_lnk_2?qid=1308366457&amp;amp;sr=1-2"&gt;Steve Best&lt;/a&gt; (Oct 20, 2005) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Debugging-Embedded-Linux-Digital-ebook/dp/B000P28W3U/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366457&amp;amp;sr=1-3"&gt;Debugging Embedded Linux (Digital Short Cut)&lt;/a&gt; by Christopher Hallinan (Aug 22, 2007)&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717/ref=pd_sim_b_43"&gt;Nmap Network Scanning: The Official Nmap Project Guide to Network and Security Scanning&lt;/a&gt; by Gordon Fyodor Lyon&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;Linux Troubleshooting for System Administrators and Power Users 2006&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;Ma&lt;a href="http://www.amazon.com/Malware-Analysts-Cookbook-DVD-Techniques/dp/0470613033/ref=pd_sim_b_28"&gt;lware Analyst's Cookbook and DVD: Tools and...&lt;/a&gt; by Michael Ligh &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441/ref=pd_sim_b_60"&gt;Hacking: The Art of Exploitation, 2nd Edition&lt;/a&gt; by Jon Erickson&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;----&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Wireshark-Network-Analysis-Official-Certified/dp/1893939995/ref=pd_sim_b_5"&gt;Wireshark Network Analysis: The Official Wiresh&lt;/a&gt;ark Certified Network Analyst Guide by Laura Chappell &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Art-Debugging-GDB-DDD-Eclipse/dp/1593271743/ref=pd_sim_b_16"&gt;The Art of Debugging with GDB, DDD, and Eclipse&lt;/a&gt; by Norman Matloff&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Network-Flow-Analysis-Michael-Lucas/dp/1593272030/ref=pd_sim_b_22"&gt;Network Flow Analysis&lt;/a&gt; by Michael W. Lucas&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Build-Your-Own-Security-Lab/dp/0470179864/ref=pd_sim_b_68"&gt;Build Your Own Security Lab: A Field Guide for Network Field Testing.&lt;/a&gt; by Michael Gregg&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;=====================&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;[Performance Tuning]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/System-Performance-Tuning-OReilly-Administration/dp/059600284X/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365026&amp;amp;sr=1-1"&gt;System Performance Tuning, 2nd Edition (O'Reilly System Administration)&lt;/a&gt; by &lt;a href="http://www.blogger.com/Gian-Paolo-D.-Musumeci/e/B001KDZQ6Y/ref=sr_ntt_srch_lnk_1?qid=1308365026&amp;amp;sr=1-1"&gt;Gian-Paolo D. Musumeci&lt;/a&gt; and Mike Loukides (Feb 2002) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Performance-Tuning-Servers-Sandra-Johnson/dp/0137136285/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365050&amp;amp;sr=1-1"&gt;Performance Tuning for Linux® Servers&lt;/a&gt; by &lt;a href="http://www.blogger.com/Sandra-K.-Johnson/e/B0034QCBHC/ref=sr_ntt_srch_lnk_1?qid=1308365050&amp;amp;sr=1-1"&gt;Sandra K. Johnson&lt;/a&gt;, Gerrit Huizenga and Badari Pulavarty (Jun 6, 2005) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Optimizing-Linux-Performance-Hands--Guide/dp/0131486829/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308366457&amp;amp;sr=1-3"&gt;Optimizing Linux® Performance: A Hands-On Guide to Linux® Performance Tools&lt;/a&gt; by &lt;a href="http://www.blogger.com/Phillip-G.-Ezolt/e/B001ITW17W/ref=sr_ntt_srch_lnk_3?qid=1308366457&amp;amp;sr=1-3"&gt;Phillip G. Ezolt&lt;/a&gt; (Mar 24, 2005)&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Red-Hat-Linux-Security-Optimization/dp/0764547542/ref=sr_1_9?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365050&amp;amp;sr=1-9"&gt;&lt;span style="font-weight: normal;"&gt;Red Hat Linux Security and Optimization&lt;/span&gt;&lt;/a&gt; by &lt;a href="http://www.blogger.com/Mohammed-J.-Kabir/e/B001IYX5ZY/ref=sr_ntt_srch_lnk_9?qid=1308365050&amp;amp;sr=1-9"&gt;Mohammed J. Kabir&lt;/a&gt; (Dec 1, 2001) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;======================&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;[RHCE]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Certified-Technician-Engineer-Administrators-Reference/dp/1615844309/ref=sr_1_18?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365529&amp;amp;sr=1-18"&gt;Red Hat® Certified Technician &amp;amp; Engineer (RHCT and RHCE) Training Guide and Administrator's Reference&lt;/a&gt; by &lt;a href="http://www.amazon.com/Asghar-Ghori/e/B002BLLBIG/ref=sr_ntt_srch_lnk_18?qid=1308365529&amp;amp;sr=1-18"&gt;Asghar Ghori&lt;/a&gt; (Aug 10, 2009) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;===================&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;[Scripting]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.amazon.com/Python-Unix-Linux-System-Administration/dp/0596515820/ref=sr_1_16?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365529&amp;amp;sr=1-16"&gt;Python for Unix and Linux System Administration&lt;/a&gt; by &lt;a href="http://www.amazon.com/Noah-Gift/e/B002BLY8F4/ref=sr_ntt_srch_lnk_16?qid=1308365529&amp;amp;sr=1-16"&gt;Noah Gift&lt;/a&gt; and Jeremy Jones (Aug 29, 2008) &lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Learning-bash-Shell-Programming-Nutshell/dp/0596009658/ref=cm_lmf_tit_2_rsrssi1"&gt;Learning the bash Shell: Unix Shell Programming (In a Nutshell (O'Reilly))&lt;/a&gt;&lt;/b&gt; by Bill Rosenblatt&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Practical-Guide-Commands-Editors-Programming/dp/0131367366/ref=sr_1_2?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365821&amp;amp;sr=1-2"&gt;&lt;b&gt;Practical Guide to Linux Commands, Editors, and Shell Programming, A (2nd Edition)&lt;/b&gt;&lt;/a&gt; by &lt;a href="http://www.amazon.com/Mark-G.-Sobell/e/B000APJW04/ref=sr_ntt_srch_lnk_2?qid=1308365821&amp;amp;sr=1-2"&gt;Mark G. Sobell&lt;/a&gt; (Nov 29, 2009) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-Command-Shell-Scripting-Second/dp/1118004426/ref=sr_1_5?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365821&amp;amp;sr=1-5"&gt;Linux Command Line and Shell Scripting Bible, Second Edition&lt;/a&gt; by &lt;a href="http://www.amazon.com/Richard-Blum/e/B001IODOO6/ref=sr_ntt_srch_lnk_5?qid=1308365821&amp;amp;sr=1-5"&gt;Richard Blum&lt;/a&gt; and Christine Bresnahan (Apr 12, 2011) &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Automating-Linux-System-Administration-Experts/dp/1430210591/ref=sr_1_8?s=books&amp;amp;ie=UTF8&amp;amp;qid=1308365347&amp;amp;sr=1-8"&gt;Automating Linux and Unix System Administration (Expert's Voice in Linux)&lt;/a&gt; by Nathan Campi and Kirk Bauer (Dec 24, 2008) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-Command-Shell-Scripting-Second/dp/1118004426/ref=cm_lmf_tit_3_rsrssi1"&gt;Linux Command Line and Shell Scripting Bible, Second Edition&lt;/a&gt;&lt;/b&gt; by Richard Blum&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Regular-Expressions-Cookbook-Jan-Goyvaerts/dp/0596520689/ref=pd_sim_b_44"&gt;Regular Expressions Cookbook&lt;/a&gt; by Jan Goyvaerts &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Perl-Best-Practices-Damian-Conway/dp/0596001738/ref=pd_sim_b_61"&gt;Perl Best Practices&lt;/a&gt; by Damian Conway&lt;/div&gt;&lt;div class="MsoNormal"&gt;===================&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;[Linux Operating System]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/0136006639/ref=pd_sim_b_41"&gt;Modern Operating Systems (3rd Edition)&lt;/a&gt; by Andrew S. Tanenbaum&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Professional-Linux-Kernel-Architecture-Programmer/dp/0470343435/ref=pd_sim_b_34"&gt;Professional Linux Kernel Architecture (Wrox...&lt;/a&gt; by Wolfgang Mauerer &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Understanding-Linux-Kernel-Third-Daniel/dp/0596005652/ref=pd_sim_b_4"&gt;Understanding the Linux Kernel, Third Edition&lt;/a&gt; by Daniel P. Bovet &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Understanding-Network-Internals-Christian-Benvenuti/dp/0596002556/ref=pd_sim_b_1"&gt;&lt;b&gt;Understanding Linux Network Internals&lt;/b&gt;&lt;/a&gt; by Christian Benvenuti&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-Kernel-Development-Robert-Love/dp/0672329468/ref=pd_sim_b_2"&gt;Linux Kernel Development (3rd Edition)&lt;/a&gt; by Robert Love&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;a href="http://www.amazon.com/Linux-System-Programming-Talking-Directly/dp/0596009585/ref=pd_sim_b_10"&gt;Linux System Programming: Talking Directly to the Kernel and C Library.&lt;/a&gt; by Robert Love &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Linux-Device-Drivers-Jonathan-Corbet/dp/0596005903/ref=pd_sim_b_11"&gt;&lt;b&gt;Linux Device Drivers, 3rd Edition&lt;/b&gt;&lt;/a&gt; by Jonathan Corbet &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038/ref=pd_sim_b_56"&gt;&lt;b&gt;Write Great Code: Volume 1: Understanding the Machine&lt;/b&gt;&lt;/a&gt; by Randall Hyde&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/IA-64-Linux-Kernel-Design-Implementation/dp/0130610143/ref=pd_sim_b_65"&gt;&lt;b&gt;IA-64 Linux Kernel: Design and Implementation&lt;/b&gt;&lt;/a&gt; by David Mosberger&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/x86-Instruction-Set-Architecture-Shanley/dp/0977087859/ref=pd_sim_b_19"&gt;&lt;b&gt;x86 Instruction Set Architecture&lt;/b&gt;&lt;/a&gt; by Tom Shanley &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Windows%C2%AE-Internals-Including-Windows-Developer/dp/0735625301/ref=pd_sim_b_25"&gt;Windows® Internals: Including Windows Server...&lt;/a&gt; by Mark Russinovich &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Guide-Kernel-Exploitation-Attacking-Core/dp/1597494860/ref=pd_sim_b_83"&gt;A Guide to Kernel Exploitation: Attacking the core.&lt;/a&gt; by Enrico Perla B.Sc. C&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/UNIX-Systems-Modern-Architectures-Multiprocessing/dp/0201633388/ref=pd_sim_b_67"&gt;UNIX® Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Developers.&lt;/a&gt; by Curt Schimmel &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;----&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;[Parallel and Multi threading]&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Synchronization-Algorithms-Concurrent-Programming-Taubenfeld/dp/0131972596/ref=pd_sim_b_57"&gt;Synchronization Algorithms and Concurrent Programming.&lt;/a&gt; by Gadi Taubenfeld &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Art-Concurrency-Monkeys-Parallel-Applications/dp/0596521537/ref=pd_sim_b_32"&gt;The Art of Concurrency: A Thread Monkey's Guide to Parallel Applications..&lt;/a&gt; by Clay Breshears &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Practice-Parallel-Programming-Sergey-Babkin/dp/1451536615/ref=pd_sim_b_54"&gt;The Practice of Parallel Programming&lt;/a&gt; by Sergey A. Babkin&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Professional-Multicore-Programming-Implementation-Developers/dp/0470289627/ref=pd_sim_b_71"&gt;Professional Multicore Programming: Design and Implementation for C++ Developers (Wrox).&lt;/a&gt; by Cameron Hughes &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;======================&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;[Enterprise]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Event-Driven-Architecture-Enables-Real-Time-Enterprise/dp/0321322118/ref=pd_sim_b_92"&gt;Event-Driven Architecture: How SOA Enables the Real Time Enterprise.&lt;/a&gt; by Hugh Taylor &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/SOA-Practice-Distributed-System-Design/dp/0596529554/ref=pd_sim_b_90"&gt;&lt;b&gt;SOA in Practice: The Art of Distributed System design.&lt;/b&gt;&lt;/a&gt; by Nicolai M. Josuttis&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Design-Patterns-Prentice-Service-Oriented-Computing/dp/0136135161/ref=pd_bxgy_b_text_c"&gt;&lt;b&gt;SOA Design Patterns (The Prentice Hall Service-Oriented Computing Series from Thomas Erl)&lt;/b&gt;&lt;/a&gt; by Thomas Erl Hardcover&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/SOA-Principles-Service-Design-Thomas/dp/0132344823/ref=pd_bxgy_b_text_b"&gt;SOA Principles of Service Design&lt;/a&gt; by Thomas Erl&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/ref=pd_sim_b_8"&gt;Enterprise Integration Patterns: Designing, Building and Deploying Messaging Solutions.&lt;/a&gt; by Gregor Hohpe&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;a href="http://www.amazon.com/Restful-Web-Services-Leonard-Richardson/dp/0596529260/ref=pd_sim_b_10"&gt;Restful Web Services&lt;/a&gt; by Leonard Richardson&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 5pt 0in;"&gt;=====================&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&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/6025089615285380514-7411768171705967414?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7411768171705967414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/06/network-and-sysadmin-scripting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7411768171705967414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7411768171705967414'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/06/network-and-sysadmin-scripting.html' title='Network and SysAdmin, Scripting, Debugging, O.S. Books'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6491707262891121278</id><published>2011-06-18T05:33:00.000-07:00</published><updated>2011-06-18T05:33:56.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valgrind'/><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='memcheck'/><title type='text'>Valgrind Cheat-Sheet Notes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Running Notes on Valgrind Memcheck quick-start &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Original document @ http://valgrind.org/docs/manual/quick-start.html&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;=======================================================&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;1) Compile your program with following options to gcc:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -g&amp;nbsp; //Debug mode&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -O0 //No optimization&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;valgrind --leak-check=yes myprog arg1 arg2&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--leak-check=yes &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;//default valgrind tool&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Turns on Memcheck profiling&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;2.6. Core Command-line Options&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;--tool=&lt;toolname&gt; [default: memcheck]&lt;/toolname&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Run the Valgrind tool called toolname, e.g. Memcheck, Cachegrind, etc.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;-q, --quiet&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Run silently, and only print error messages. Useful if you are running regression tests or have some other automated test machinery.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;-v, --verbose&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Be more verbose. NOTE: &lt;i&gt;&lt;u&gt;Repeating the option increases the verbosity level.&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dump extra information on various aspects of your program, such as: &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the shared objects loaded, &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the suppressions used, &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the progress of the instrumentation and execution engines and&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; warnings about unusual behaviour. &lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;-----------------------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--trace-children=&lt;yes|no&gt; [default: no] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is necessary for multi-process programs.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trace into sub-processes initiated via the fork/exec system calls.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--child-silent-after-fork=&lt;yes|no&gt; [default: no] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use to silence confusing XML output from child when --trace-children=yes is used.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--track-fds=&lt;yes|no&gt; [default: no] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print out a list of open file descriptors on exit. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Along with each file descriptor is printed a stack backtrace of where the file was opened and file/socket details like name etc.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--log-file=&lt;filename&gt; &lt;/filename&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send all of its messages to the specified &lt;b&gt;"filename.%p.%q{PerProc-EnvVariable}" &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;where %p=CurrentProcID and %q{UniquePerProcEnvVariable} is used to identify a process by the unique value of its &lt;b&gt;PerProc-EnvVariable.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; something like a ProcNumber maybe.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; used along with --trace-children=yes for multiprocess applications.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;[Error Related options:]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;These options are used by all tools that can report errors, e.g. Memcheck, but not Cachegrind.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--xml=&lt;yes|no&gt; [default: no] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; important parts of the output (e.g. tool error messages) will be in XML format rather than plain text&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the XML output will be sent to a different output channel than the plain text output &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i.e. you also must use one of --xml-fd, --xml-file or --xml-socket to specify where the XML is to be sent.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: the destination of the plain text output is controlled by &lt;b&gt;--log-fd&lt;/b&gt;, &lt;b&gt;--log-file&amp;nbsp; and --log-socket&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;--xml-file=&lt;filename&gt;&lt;/filename&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies that Valgrind should send its XML output to the specified file. It must be used in conjunction with --xml=yes.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--demangle=&lt;yes|no&gt; [default: yes] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Supression files contain C++ function names in their mangled form so turn off mangling for supressions.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Turn on supressions for human readability.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--num-callers=&lt;number&gt; [default: 12]&lt;/number&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Use this if the stack trace is not big enough, to get more call-stack depth&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;number&gt; specifies the maximum number of entries shown in stack traces that identify program locations.&lt;/number&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errors are commoned up using only the top four function locations (the place in the current function, and that of its three immediate callers).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--error-limit=&lt;yes|no&gt; [default: yes] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When enabled, Valgrind stops reporting errors after 10,000,000 in total, or 1,000 different ones, have been seen.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--track-origins=yes&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Helps analyse the root cause of uses of uninitialised values. Otherwise you get generic messages like "Conditional jump or move depends on uninitialised value(s)"&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--error-exitcode=&lt;number&gt; [default: 0]&lt;/number&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies an alternative exit code to return if Valgrind reported any errors in the run &lt;i&gt;&lt;u&gt;(??as in #define TestSuiteFailed 100 in cppunit testcase??)&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... useful for using Valgrind as part of an automated test suite, since it makes it easy to detect test cases &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for which Valgrind has reported errors, just by inspecting return codes.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;--suppressions=&lt;filename&gt; [default: $PREFIX/lib/valgrind/default.supp]&lt;/filename&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies an extra file from which to read descriptions of errors to suppress. You may use up to 100 extra suppression files.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;--gen-suppressions=&lt;yes|no|all&gt; [default: no]&lt;/yes|no|all&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When set to yes, Valgrind will pause after every error shown and print the line:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ----&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Valgrind will print out a suppression for this error. You can then cut and paste it into a suppression file if you don't want to hear about the error in the future.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This option is particularly useful with C++ programs, as it prints out the suppressions with mangled names, as required.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; You may want to common up similar ones, by adding wildcards to function names, and by using frame-level wildcards. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The wildcarding facilities are powerful yet flexible, and with a bit of careful editing, you may be able to &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suppress a whole family of related errors with only a few suppressions. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... the -v option which prints out all used suppression records.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;--db-attach=&lt;yes|no&gt; [default: no]&lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When enabled, Valgrind will pause after every error shown and print the line:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ----&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--db-command=&lt;command&gt; [default: gdb -nw %f %p]&lt;/command&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify the debugger to use with the --db-attach command. The default debugger is GDB.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--read-var-info=&lt;yes|no&gt; [default: no]&lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memcheck gives more detailed description of illegal address in its output including variable declaration line/file and thread info.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--run-libc-freeres=&lt;yes|no&gt; [default: yes] &lt;/yes|no&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Force libc.so to free its private malloc's. These are normally NOT freed but fool valgrind into logging false positives. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: forcing call to libc-freeres() at the program exit MAY give problems with older buggy glibc versions.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;================================================================================================================&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;[Setting Default Options]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Note that Valgrind also reads options from three places:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; 1.&amp;nbsp;&amp;nbsp; The file ~/.valgrindrc&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; 2.&amp;nbsp;&amp;nbsp; The environment variable $VALGRIND_OPTS&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; 3.&amp;nbsp;&amp;nbsp; The file ./.valgrindrc&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;These are processed in the given order, before the command-line options. Options processed later override those processed earlier; for example, options in ./.valgrindrc will take precedence over those in ~/.valgrindrc.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Please note that the ./.valgrindrc file is ignored if it is marked as world writeable or not owned by the current user. This is because the ./.valgrindrc can contain options that are potentially harmful or can be used by a local attacker to execute code under your user account.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Any tool-specific options put in $VALGRIND_OPTS or the .valgrindrc files should be prefixed with the tool name and a colon. For example, if you want Memcheck to always do leak checking, you can put the following entry in ~/.valgrindrc:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;--memcheck:leak-check=yes&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;This will be ignored if any tool other than Memcheck is run. Without the memcheck: part, this will cause problems if you select other tools that don't understand --leak-check=yes.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;================================================================================================================&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;[Threading Support:]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;+&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "your program will use the native threading library, but Valgrind serialises execution so that only one (kernel) thread is running at a time.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; threaded apps run only on one CPU, even if you have a multiprocessor or multicore machine.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Valgrind doesn't schedule the threads itself. It merely ensures that only one thread runs at once, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using a simple locking scheme. The actual thread scheduling remains under control of the OS kernel."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;+&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "if you have some kind of concurrency, critical race, locking, or similar, bugs. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In that case you might consider using the tools Helgrind and/or DRD to track them down."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;"On Linux, Valgrind also supports direct use of the clone system call, futex and so on. clone is supported &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where either everything is shared (a thread) or nothing is shared (fork-like); partial sharing will fail. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Again, any use of atomic instruction sequences in shared memory between processes will not work reliably."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;+&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Valgrind has a fairly complete signal implementation. It should be able to cope with any POSIX-compliant use of signals."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Signal Handling:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;+&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "If your program dies as a result of a fatal core-dumping signal, Valgrind will generate its own core file (vgcore.NNNNN) containing your program's state."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "the core dumps do not include all the floating point register information. In the unlikely event that Valgrind itself crashes, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the operating system will create a core dump in the usual way."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Memory Footprint&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Memory consumption of your program is majorly increased whilst running under Valgrind. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is due to the large amount of administrative information maintained behind the scenes. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Another cause is that Valgrind dynamically translates the original executable. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Translated, instrumented code is 12-18 times larger than the original so you can easily end up with 50+ MB of translations when running (eg) a web browser."&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;==================================================================================================================&lt;/span&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Valgrind:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;memcheck,&amp;nbsp;&lt;/li&gt;&lt;li&gt;cachegrind,&amp;nbsp;&lt;/li&gt;&lt;li&gt;multi-threaded&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/aix/library/au-unix-strace.html"&gt;Valgrind Article on Memory Debugging and Profiling Howto&lt;br /&gt;Valgrind Howto&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt; &lt;/span&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/6025089615285380514-6491707262891121278?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://valgrind.org/docs/manual/quick-start.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6491707262891121278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/06/valgrind-cheat-sheet-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6491707262891121278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6491707262891121278'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/06/valgrind-cheat-sheet-notes.html' title='Valgrind Cheat-Sheet Notes'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-3935240501726856641</id><published>2011-06-06T03:09:00.000-07:00</published><updated>2011-06-06T03:09:10.802-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='peopleware'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='karl-fogel'/><title type='text'>Open Source Projects and PeopleWare</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Karl Fogel is one of Subversion maintainers. &lt;br /&gt;He shares his experience with Open Source in his online free book "Producing Open Source Software"&lt;br /&gt;Also Check out the video's at the bottom of the page.&lt;br /&gt;&lt;a class="externalLink" href="http://producingoss.com/" target="_blank" title="External link to  http://producingoss.com "&gt; Karl Fogel's online book on Producing Open Source Software &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://video.google.com/videoplay?docid=-4216011961522818645" target="_blank" title="External link to  http://video.google.com/videoplay?docid=-4216011961522818645 "&gt; Video - How Open Source Projects Survive Poisonous People (And You Can Too) &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://www.archive.org/details/kfogel-flats-2007-keynote" target="_blank" title="External link to  http://www.archive.org/details/kfogel-flats-2007-keynote "&gt; Video - Principles of Participation for Open-Information Communities by Karl Fogel at Google Talk &lt;/a&gt;&lt;br /&gt;&lt;a class="externalLink" href="http://youtube.com/watch?v=ZtYJoatnHb8" target="_blank" title="External link to  http://youtube.com/watch?v=ZtYJoatnHb8 "&gt; Podcast on distributed development by Ben and Fiz &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/6025089615285380514-3935240501726856641?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://guruduttmallapur.tiddlyspot.com/#[[Distributed%20Development]]' title='Open Source Projects and PeopleWare'/><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/3935240501726856641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/06/open-source-projects-and-peopleware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3935240501726856641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3935240501726856641'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/06/open-source-projects-and-peopleware.html' title='Open Source Projects and PeopleWare'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-3524537251375855656</id><published>2011-01-29T00:01:00.000-08:00</published><updated>2011-01-29T00:01:13.940-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='services'/><category scheme='http://www.blogger.com/atom/ns#' term='configure'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Useful Collection of Linux Server Tutorials to Configure Different Services</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="z19Dle" id="col-z134c3sxpoe4u54zl04chhyo5qmpdflwlng0k"&gt;&lt;span class="zo"&gt;1) &lt;a href="http://www.brennan.id.au/"&gt;Linux Home Server Howto&lt;/a&gt;: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="z19Dle" id="col-z134c3sxpoe4u54zl04chhyo5qmpdflwlng0k"&gt;&lt;span class="zo"&gt;A Superb collection of howtos which explain howto configure different  services like FTP, SSH, NTP etc.on linux. Gives very useful commands and  sample output to show how to get information, change settings, sample  config files and relevant amount of background information to make it  customizable for your specific needs.&lt;br /&gt;2) &lt;a href="http://www.linuxhomenetworking.com/"&gt;Linux Home Networking Quick Tutorials&lt;/a&gt;: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="z19Dle" id="col-z134c3sxpoe4u54zl04chhyo5qmpdflwlng0k"&gt;&lt;span class="zo"&gt;Similar super collection of tutorials on different aspects of networking on linux. &lt;br /&gt;&lt;br /&gt;Both these sites complement each other well and are more usable when used parallely.&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/6025089615285380514-3524537251375855656?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/3524537251375855656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/01/useful-collection-of-linux-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3524537251375855656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3524537251375855656'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/01/useful-collection-of-linux-server.html' title='Useful Collection of Linux Server Tutorials to Configure Different Services'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-4478821527583938541</id><published>2011-01-09T05:17:00.000-08:00</published><updated>2011-01-09T05:17:41.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valgrind'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='mailing-list'/><category scheme='http://www.blogger.com/atom/ns#' term='CDT'/><title type='text'>Valgrind website updation on Eclipse IDE integration via LinuxTools plugin suite</title><content type='html'>Request to update Valgrind&amp;nbsp; Frontend/GUIs page sent to Valgrind-Developer list.&lt;br /&gt;Contains useful info for anyone interested in GUI based debugging of C/C++ programs using Valgrind etc.&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="wmd-preview"&gt;&lt;pre&gt;Hi,&lt;br /&gt;&lt;br /&gt;This is regarding an updation to the "Valgrind Frontends/GUIs" page: &lt;br /&gt;&lt;a href="http://www.valgrind.org/downloads/guis.html" rel="nofollow" target="_top"&gt;http://www.valgrind.org/downloads/guis.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;LinuxTools is a GUI plugin suite to  integrate Valgrind into the Eclipse C++ &lt;br /&gt;CDT.&lt;br /&gt;Could you add an entry for this in "Valgrind Frontends/GUIs" page?&lt;br /&gt;&lt;br /&gt;As can be seen on forums like stackoverflow.com lots of people are interested in&lt;br /&gt;using Valgrind (and such other tools) from the Eclipse IDE but don't know&lt;br /&gt;how to go about doing it. Having an entry on Valgrind's pages would help out&lt;br /&gt;such people.&lt;br /&gt;&lt;br /&gt;Some useful links on usage of Valgrind with LinuxTools:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Website]&lt;/b&gt;&lt;br /&gt;This is the Eclipse Linux Tools website:&lt;br /&gt;&lt;a href="http://www.eclipse.org/linuxtools/index.php" rel="nofollow" target="_top"&gt;http://www.eclipse.org/linuxtools/index.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Valgrind support page:&lt;br /&gt;&lt;a href="http://www.eclipse.org/linuxtools/projectPages/valgrind/" rel="nofollow" target="_top"&gt;http://www.eclipse.org/linuxtools/projectPages/valgrind/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Usage]&lt;/b&gt;&lt;br /&gt;1) Valgrind User Guide (Wiki):&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Linux_Tools_Project/Valgrind/User_Guide" rel="nofollow" target="_top"&gt;http://wiki.eclipse.org/Linux_Tools_Project/Valgrind/User_Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) How-to configure Valgrind plugin of Eclipse (with Video Demos):&lt;br /&gt;&lt;a href="http://www.eclipse.org/linuxtools/projectPages/valgrind/" rel="nofollow" target="_top"&gt;http://www.eclipse.org/linuxtools/projectPages/valgrind/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3) How-to configure Callgrind plugin of Eclipse:&lt;br /&gt;&lt;a href="http://www.eclipse.org/linuxtools/projectPages/callgraph/" rel="nofollow" target="_top"&gt;http://www.eclipse.org/linuxtools/projectPages/callgraph/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4) How-to use Valgrind with Eclipse as an External Tool:&lt;br /&gt;&lt;a href="http://kapo-cpp.blogspot.com/2007/02/detecting-memory-leak.html" rel="nofollow" target="_top"&gt;http://kapo-cpp.blogspot.com/2007/02/detecting-memory-leak.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Download]&lt;/b&gt;&lt;br /&gt;Eclipse IDE for C/C++ Linux Developers &lt;br /&gt;(includes Incubating components like valgrind, gprof, systemtap etc) (120 MB): &lt;br /&gt;&lt;a href="http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html" rel="nofollow" target="_top"&gt;http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;[Installation]&lt;/b&gt;&lt;br /&gt;My blog post "Howto install Eclipse CDT for C++ programming on Linux":&lt;br /&gt;&lt;a href="http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html" rel="nofollow" target="_top"&gt;http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Gurudutt Mallapur.&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;i&gt;P.S.:&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Some history on the origin of this post: A mail I sent to the Valgrind Developer list on &lt;/i&gt;2010-10-07.&lt;br /&gt;&lt;div id="wmd-preview"&gt;&lt;span style="font-size: small;"&gt;It seems to be unanswered to date  and sits quietly in the archives  @http://thread.gmane.org/gmane.comp.debugging.valgrind.devel/12202.  I followed all the directions for submitting to the dev-list AFAIK. Though how it ended up in the debugging section I don't recollect.&lt;span style="font-size: small;"&gt;  Actually I tried mailing multiple times/ways but all I got was a  bounce-back message even after sending the mail from yahoo (disabling  html).&lt;/span&gt; Tried everything I could think of to get the message across ;-). Finally found the obituary of my post in the archives.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div id="wmd-preview"&gt;&lt;span style="font-size: small;"&gt;Conclusion: Anyway I'm glad I've got my own blog to capture this knowledge for anyone who needs it.&lt;/span&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/6025089615285380514-4478821527583938541?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/4478821527583938541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/01/valgrind-website-updation-on-eclipse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4478821527583938541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4478821527583938541'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/01/valgrind-website-updation-on-eclipse.html' title='Valgrind website updation on Eclipse IDE integration via LinuxTools plugin suite'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8814814071717935203</id><published>2011-01-02T02:16:00.000-08:00</published><updated>2011-01-02T02:16:36.928-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='qualities'/><category scheme='http://www.blogger.com/atom/ns#' term='programmer'/><title type='text'>Qualities of a Great Programmer</title><content type='html'>&lt;a href="http://alcor.concordia.ca/%7Esmw/home/resources/taxonomy.html"&gt;Types of Programmers (Beginner to Great)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8814814071717935203?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8814814071717935203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/01/qualities-of-great-programmer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8814814071717935203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8814814071717935203'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/01/qualities-of-great-programmer.html' title='Qualities of a Great Programmer'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-4698224415000367475</id><published>2011-01-02T02:00:00.000-08:00</published><updated>2011-01-02T02:06:10.813-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='file-systems'/><category scheme='http://www.blogger.com/atom/ns#' term='operating-system'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>Linux FileSystems</title><content type='html'>See Also:&lt;br /&gt;Wikipedia page on &lt;a href="http://en.wikipedia.org/wiki/List_of_file_systems" title="List of file systems"&gt;List of file systems&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.blogger.com/goog_1251436445"&gt;Wikipedia page on &lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Comparison_of_file_systems" target="_blank"&gt;comparison of file systems&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.howtogeek.com/howto/35676/how-to-choose-a-partition-scheme-for-your-linux-pc/" target="_blank"&gt;How to Choose a Partition Scheme for Your Linux PC&lt;/a&gt;(How-to-Geek)&lt;br /&gt;&lt;a href="http://www.howtogeek.com/howto/38125/htg-explains-what-is-the-linux-fstab-and-how-does-it-work/"&gt;How does the Linux fstab work&lt;/a&gt; (How-to-Geek)&lt;br /&gt;&lt;a href="http://www.howtogeek.com/howto/33552/htg-explains-which-linux-file-system-should-you-choose/"&gt;Which Linux FileSystem should you choose&lt;/a&gt; (How-to-Geek)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-4698224415000367475?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/4698224415000367475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2011/01/linux-filesystems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4698224415000367475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4698224415000367475'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2011/01/linux-filesystems.html' title='Linux FileSystems'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2355732486754723439</id><published>2010-12-28T04:44:00.000-08:00</published><updated>2010-12-28T04:44:19.119-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='command-line'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Howto Speed Up Your Work Using Linux Command Line Tools</title><content type='html'>See Also:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.catonmat.net/blog/bash-vi-editing-mode-cheat-sheet" title="Working Productively in Bash's Vi Command Line Editing Mode (with Cheat Sheet)"&gt;Working Productively in Bash's Vi Command Line Editing Mode&lt;/a&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/the-definitive-guide-to-bash-command-line-history" title="The Definitive Guide to Bash Command Line History"&gt;The Definitive Guide to Bash Command Line History&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/sed-stream-editor-cheat-sheet" title="Sed - UNIX Stream Editor - Cheat Sheet"&gt;Sed - UNIX Stream Editor - Cheat Sheet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/ed-unix-text-editor-cheat-sheet" title="Ed - Unix Text Editor - Cheat Sheet"&gt;Ed - Unix Text Editor - Cheat Sheet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/plain-text-versions-of-sed-ed-and-awk-cheat-sheets" title="Plain Text Versions of Sed, ed and AWK Cheat Sheets"&gt;Plain Text Versions of Sed, ed and AWK Cheat Sheets&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/unix-utilities-netcat" title="A Unix Utility You Should Know About: Netcat"&gt;A Unix Utility You Should Know About: Netcat&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/screen-terminal-emulator-cheat-sheet" title="Screen VT100/ANSI Terminal Emulator Cheat Sheet"&gt;Screen VT100/ANSI Terminal Emulator Cheat Sheet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/unix-utilities-pipe-viewer" title="A Unix Utility You Should Know About: Pipe Viewer"&gt;A Unix Utility You Should Know About: Pipe Viewer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/perls-special-variable-cheat-sheet" title="Perl Special Variable Cheat Sheet"&gt;Perl Special Variable Cheat Sheet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.catonmat.net/blog/unix-utilities-lsof" title="A Unix Utility You Should Know About: lsof"&gt;A Unix Utility You Should Know About: lsof&lt;/a&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2355732486754723439?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2355732486754723439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/howto-speed-up-your-work-using-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2355732486754723439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2355732486754723439'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/howto-speed-up-your-work-using-linux.html' title='Howto Speed Up Your Work Using Linux Command Line Tools'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8859299149698383616</id><published>2010-12-28T04:13:00.000-08:00</published><updated>2010-12-28T04:13:55.938-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple-profiles'/><title type='text'>Using Multiple User Profiles in FireFox</title><content type='html'>See Also:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/Profiles"&gt;Main Profiles Howto of Firefox&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/Managing%20profiles"&gt;Managing profiles&lt;/a&gt; how to create/delete new/old profiles. &lt;/li&gt;&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/Backing%20up%20your%20information"&gt;Backing up your information&lt;/a&gt; how to back-up/restore profiles and move profile info to a different folder/computer. &lt;/li&gt;&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/Recovering%20important%20data%20from%20an%20old%20profile"&gt;Recovering important data from an old profile&lt;/a&gt; describes what info is stored in the files in a profile and howto copy the files into a new profile. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8859299149698383616?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8859299149698383616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/using-multiple-user-profiles-in-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8859299149698383616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8859299149698383616'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/using-multiple-user-profiles-in-firefox.html' title='Using Multiple User Profiles in FireFox'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7772303771929438336</id><published>2010-12-28T03:43:00.000-08:00</published><updated>2010-12-28T03:50:06.273-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='step-by-step'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora-core-14'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox-4-beta-8'/><title type='text'>Howto Setup FireFox4 beta 8 on Linux Fedora Core 14</title><content type='html'>1) Backup your current Firefox 3 profiles&lt;br /&gt;tar -cvzf $HOME/mozilla-firefox-profiles-backup.tar.gz $HOME/.mozilla/firefox/&lt;br /&gt;&lt;br /&gt;2) Change to root user for below actions:&lt;br /&gt;&lt;br /&gt;3) Add repositories for downloading FireFox4 for FC14:&lt;br /&gt;yum --nogpgcheck install http://rpm.livna.org/livna-release.rpm http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm&lt;br /&gt;&lt;br /&gt;## Remi Dependency on Fedora 14 ##&lt;br /&gt;# These below repos didn't work out for me got error message saying system-release &amp;gt;=15 required for &lt;br /&gt;# rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-rawhide.noarch.rpm&lt;br /&gt;#rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-rawhide.noarch.rpm&lt;br /&gt;&lt;br /&gt;## Fedora 14 ##&lt;br /&gt;rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm&lt;br /&gt;&lt;br /&gt;Install Firefox4:&lt;br /&gt;yum --enablerepo=remi list firefox4&lt;br /&gt;yum --enablerepo=remi install firefox4&lt;br /&gt;&lt;br /&gt;Create different Profile for Firefox4:&lt;br /&gt;firefox --ProfileManager (Create 2 profiles "Default User" and "FF4")&lt;br /&gt;&lt;br /&gt;Start Firefox with FF4 profile using command:&lt;br /&gt;firefox4 -P FF4&lt;br /&gt;&lt;br /&gt;Or start Firefox 3.6.x with command:&lt;br /&gt;firefox -P 'Default User'&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;http://www.if-not-true-then-false.com/2010/install-firefox-4-on-fedora/&lt;br /&gt;http://www.fedorafaq.org/#installsoftware&lt;br /&gt;&lt;br /&gt;Note: Found what I needed was the above steps. Got most of them from these above 2 sources. Either of them singly didn't work out for me so clubbing together the total install steps into this post&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7772303771929438336?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7772303771929438336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/howto-setup-firefox4-beta-8-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7772303771929438336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7772303771929438336'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/howto-setup-firefox4-beta-8-on-linux.html' title='Howto Setup FireFox4 beta 8 on Linux Fedora Core 14'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8288805957999059661</id><published>2010-12-23T23:48:00.000-08:00</published><updated>2010-12-23T23:48:06.157-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='RFC'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Networking Protocol, RFC and Administration Links</title><content type='html'>&lt;a href="http://www.linuxhomenetworking.com/"&gt;Introduction to Network administration&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/POP3" style="font-weight: bold;"&gt;Email&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;1) &lt;/span&gt;Email Bible: &lt;span style="font-size: x-small;"&gt;&lt;a href="https://mail.google.com/mail/html/compose/static_files/goog_1694732889" target="_blank"&gt;Internet Email Protocols: A Developer's Guide &lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.amazon.com/Internet-Email-Protocols-Developers-Guide/dp/0201432889/ref=cm_cr_pr_product_top" target="_blank"&gt;[Paperback]&lt;/a&gt; by&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt; Kevin Jhonson&lt;br /&gt;2) Top-Down Overview: Wood, D (1999). &lt;a href="http://www.amazon.com/Programming-Internet-Mail-David-Wood/dp/1565924797/ref=pd_sim_b_1" target="_blank"&gt;Programming Internet Mail&lt;/a&gt;. O'Reilly &lt;br /&gt;3) Uses VB Source: Rhoton, J (1999). &lt;a href="http://www.amazon.com/Programmers-Guide-Internet-Mail-Technologies/dp/1555582125/ref=pd_sim_b_2" target="_blank"&gt;Programmer's Guide to Internet Mail: SMTP, POP, IMAP, and LDAP&lt;/a&gt; &lt;br /&gt;4) Totally NT Oriented: Hughes, L (1998). &lt;a href="http://www.amazon.com/Internet-Protocols-Standards-Implementation-Telecommunications/dp/0890069395/ref=cm_cr_pr_product_top" target="_blank"&gt;Internet e-mail Protocols, Standards and Implementation&lt;/a&gt;. Artech House Publishers&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;dl&gt;&lt;dt style="font-weight: bold;"&gt;Network Configuration&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html" target="_blank"&gt;Linux Network Configuration&lt;/a&gt;      &lt;/dt&gt;&lt;dt&gt;&lt;a href="http://www.linuxsecurity.com/docs/SecurityAdminGuide/SecurityAdminGuide.html" target="_blank"&gt;Linux Security Administrator's Guide&lt;/a&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href="http://tldp.org/guides.html" target="_blank"&gt;The Linux Documentation Project Guides&lt;/a&gt;      &lt;/dt&gt;&lt;dt&gt;&lt;a href="http://tldp.org/HOWTO/VPN-HOWTO/index.html" target="_blank"&gt;VPN HOWTO&lt;/a&gt;      &lt;/dt&gt;&lt;dt&gt;&lt;a href="http://tcpipguide.com/free/index.htm" target="_blank"&gt;___The TCP-IP Guide - Read Online Free&lt;/a&gt;      &lt;/dt&gt;&lt;dt&gt;&lt;a href="http://tcpipguide.com/toc.htm" target="_blank"&gt;___The TCP-IP Guide -- Table of Contents&lt;/a&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/dl&gt;&lt;span style="font-weight: bold;"&gt;RFC's:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/POP3" target="_blank"&gt;Post Office Protocol - Wikipedia, the free encyclopedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc1081" target="_blank"&gt;RFC 1081 - Post Office Protocol Version 3&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc2449.html" target="_blank"&gt;RFC 2449 - POP3 Extension Mechanism&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc2595" target="_blank"&gt;RFC 2595 - Using TLS with IMAP, POP3 and ACAP&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc2616" target="_blank"&gt;RFC 2616 - Hypertext Transfer Protocol -- HTTP-1.1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc2822.html" target="_blank"&gt;RFC 2822 - Internet Message Format&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc3164.html" target="_blank"&gt;RFC 3164 - The BSD Syslog Protocol&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc3207.html" target="_blank"&gt;RFC 3207 - SMTP Service Extension for Secure SMTP over Transport Layer Security&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc3507" target="_blank"&gt;RFC 3507 - Internet Content Adaptation Protocol (ICAP)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc5034" target="_blank"&gt;RFC 5034 - The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc5321" target="_blank"&gt;RFC 5321 - Simple Mail Transfer Protocol&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8288805957999059661?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8288805957999059661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/networking-protocol-rfc-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8288805957999059661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8288805957999059661'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/networking-protocol-rfc-and.html' title='Networking Protocol, RFC and Administration Links'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-4541173020921478265</id><published>2010-12-18T08:05:00.001-08:00</published><updated>2010-12-18T08:05:59.879-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RARP'/><category scheme='http://www.blogger.com/atom/ns#' term='douglas-comer'/><category scheme='http://www.blogger.com/atom/ns#' term='protocol'/><category scheme='http://www.blogger.com/atom/ns#' term='study-notes'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Study Notes RARP Protocol</title><content type='html'>&lt;div class="im"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 10pt;"&gt;Study Notes on Reverse Address Resolution Protocol: &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-size: 10pt;"&gt;(Reference Chapter 6: Internetworking with TCP/IP: Vol 1 Principles, Protocols and Architecture - 3rd Ed. by Douglas E. Comer)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;1) RARP is used by diskless machines which can't "remember" their IP address after a boot.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;They  send a physical-address (ex: ethernet NIC card's unique id) to RARP  server(s) which reply back with IP address for that particular physical  address.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Note:  A machine can query IP address for another machine by supplying that  machine's physical address. ?? Used by subnet routers to setup routing  tables for its children??&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;2) RARP uses only ethernet frames as it can't use IP/TCP protocols without an IP address. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;On getting hold of the IP address it uses TFTP for loading the boot image from the remote image server.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;3) &lt;u&gt;Request Message broadcast by QueryingMachine (to RARP server) as an Ethernet Frame:&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PREAMBLE, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SRC-ADDR=QueryingMachine-&lt;wbr&gt;&lt;/wbr&gt;physical-address, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DEST-ADDR=broadcast-physical-&lt;wbr&gt;&lt;/wbr&gt;address, &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FRAME-TYPE=RARP, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FRAME-DATA=(REQUEST, QueryingMachine-physical-&lt;wbr&gt;&lt;/wbr&gt;address, target-physical-address),&lt;span&gt;&amp;nbsp; &lt;/span&gt;//227 bits (28 Octets) long frame data&lt;/span&gt;&lt;/div&gt;&lt;div class="im"&gt;  &lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;CRC&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Note: &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a) The Ethernet Frame Header may be processed only by NIC card, so the the QueryingMachine-physical-&lt;wbr&gt;&lt;/wbr&gt;address is repeated in frame data so it's accessible to the O.S.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;b)  A QueryingMachine can also ask the RARP server to lookup a  target-machine's IP address by supplying the target-physical-address. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;In  such a case the target-physical-address would be different from  sender-physical-address. ??Could be used by subnet routers to setup  routing tables for its children??&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;Reference:Fig 2.8 for diagram of Ethernet Frame in Comer)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;u&gt;TODO: Need to cross-check how 2 physical addresses of 48 bits (6 octets) each can fit into the 227bits (28 octet) frame data&lt;/u&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;4) &lt;u&gt;Reply Message sent by RARP server to QueryingMachine as an Ethernet Frame:&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PREAMBLE, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SRC-ADDR=RARPServer-physical-&lt;wbr&gt;&lt;/wbr&gt;address, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DEST-ADDR=QueryingMachine-&lt;wbr&gt;&lt;/wbr&gt;physical-address, &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FRAME-TYPE=RARP, &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FRAME-DATA=(REPLY,&lt;wbr&gt;&lt;/wbr&gt;QueryingMachine-physical-&lt;wbr&gt;&lt;/wbr&gt;address, target-physical-address, target-IP-address),&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// ?? Used to update a subnetting routers routing table ??&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;CRC&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Note: &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;RARP server sends the target-IP-address to the QueryingMachine and NOT the target machine.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;??Could be used by subnet routers to setup routing tables for its children??&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;5) RARP REQUESTs are retryed by QueryingMachine&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a) Looping at periodic intervals to avoid server overload (used for critical remote boot situations)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;b) fixed number of retries to avoid network flooding. (used in non-critical remote boot situations)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;6) Flooding can occur in case of failed PrimaryServer. This is avoided as follows:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a) REQUEST flooding by QueryingMachine is avoided by Secondary Servers replying back only on the 2nd REQUEST.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;b)  REPLY flooding is avoided in case of failed Primary Server by Secondary  Servers replying back with randomly differing delays of REPLY.&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/6025089615285380514-4541173020921478265?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/4541173020921478265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/study-notes-rarp-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4541173020921478265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4541173020921478265'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/study-notes-rarp-protocol.html' title='Study Notes RARP Protocol'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7481103969459900650</id><published>2010-12-10T06:53:00.000-08:00</published><updated>2010-12-10T06:53:28.232-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comparison'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='wizard'/><category scheme='http://www.blogger.com/atom/ns#' term='table'/><title type='text'>Compare features of different wiki software</title><content type='html'>Looking for the right wiki to build up your own hobby/group/professional wiki?&lt;br /&gt;&lt;br /&gt;I was just looking for a small nifty wiki to use as a scratchpad to collect technical tid-bits for my work/learning. Didn't want to install/administer stuff but wanted to be able to link up the tid-bits as I found connections between them. Found good candidates Tiddlywiki/Twiki using &lt;a href="http://www.wikimatrix.org/"&gt;WikiMatrix&lt;/a&gt;'s comparison table.&lt;br /&gt;&lt;br /&gt;Too many wikis with differing features, limitations and target audiences make it tough to decide. You can easily end up spending a lot of time/effort in installing, administering, learning to use a wiki.&lt;br /&gt;&lt;br /&gt;WikiMatrix has a &lt;a href="http://www.wikimatrix.org/wizard.php"&gt;wiki comparison wizard&lt;/a&gt; which allows you to select a small set of options to figure out which wiki s/ws are closest to what you're looking for.&lt;br /&gt;Then it creates a comparison table with filterable feature-set to view only the features you're looking for in your dream wiki.&lt;br /&gt;&lt;br /&gt;The site also allows you to compare other things like blogs etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7481103969459900650?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7481103969459900650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/compare-features-of-different-wiki.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7481103969459900650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7481103969459900650'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/compare-features-of-different-wiki.html' title='Compare features of different wiki software'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8517450963399630942</id><published>2010-12-06T02:49:00.000-08:00</published><updated>2010-12-06T02:54:14.793-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='traceroute'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='tcpdump'/><category scheme='http://www.blogger.com/atom/ns#' term='wireshark'/><category scheme='http://www.blogger.com/atom/ns#' term='netstat'/><title type='text'>Network Debug Utilities</title><content type='html'>&lt;dl&gt;&lt;dt&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Networking:&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;tcpdump&lt;br /&gt;ping&lt;br /&gt;traceroute&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;span style="font-weight: bold;"&gt;netstat&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="http://tldp.org/LDP/nag/node77.html#SECTION007930000"&gt;Displaying Connections&lt;/a&gt; &lt;/dd&gt;&lt;dd&gt;&lt;a href="http://en.wikipedia.org/wiki/Netstat"&gt;Netstat - Wikipedia, the free encyclopedia&lt;/a&gt;   &lt;/dd&gt;&lt;/dl&gt;&lt;span style="font-weight: bold;"&gt;RFC's:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.faqs.org/rfcs/rfc821.html"&gt;&lt;span style="font-weight: bold;"&gt;SMTP&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html"&gt;HTTP&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.faqs.org/rfcs/rfc959.html"&gt;FTP&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;wireshark&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.wireshark.org/bibliography.html"&gt;wireshark bibliography, articles&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SysAdmin:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://lnag.sourceforge.net/downloads/LinuxNewbieAdministratorGuide.pdf"&gt;Linux Newbie Admin Guide&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://tldp.org/LDP/nag2/nag2.pdf"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6025089615285380514&amp;amp;postID=8517450963399630942"&gt;Linux Network Admin Guide&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.ibiblio.org/pub/Linux/docs/LDP/system-admin-guide/sag.pdf"&gt;Linux Sys Admin Guide&lt;/a&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8517450963399630942?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8517450963399630942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/network-debug-utilities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8517450963399630942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8517450963399630942'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/network-debug-utilities.html' title='Network Debug Utilities'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2329842721347979238</id><published>2010-12-01T11:21:00.000-08:00</published><updated>2010-12-01T11:21:31.555-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='compilation'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='Stub'/><category scheme='http://www.blogger.com/atom/ns#' term='dll'/><title type='text'>STUB: TechTalk: C++ : What happens during compilation?</title><content type='html'>&lt;div&gt;A) Phases of compilation:&lt;br /&gt;1) compiler,&lt;br /&gt;Process of compilation ,&lt;br /&gt;2) linker, linking, preprocessor, preprocessing, assembler, assembling, &lt;/div&gt;&lt;br /&gt;B) Different types of Outputs&lt;br /&gt;&lt;div&gt;1) object-file (.o/.obj),&lt;br /&gt;library(.a/.so (Linux), .lib/.dll - Windows),&lt;br /&gt;static-library (.a, .lib),&lt;br /&gt;dynamic-library(.so, .dll),&lt;br /&gt;name-mangling&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;G++:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;shared-object-file, --save-temps&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;b&gt;&lt;u&gt;VC++:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;release/debug,&lt;br /&gt;multi/single threaded,&lt;br /&gt;dll,&lt;br /&gt;importlibrary,&lt;br /&gt;.defs file,&lt;br /&gt;export/import symbols&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2329842721347979238?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2329842721347979238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2007/07/techtalk-c-what-happens-during.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2329842721347979238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2329842721347979238'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2007/07/techtalk-c-what-happens-during.html' title='STUB: TechTalk: C++ : What happens during compilation?'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8389345101718838761</id><published>2010-12-01T11:19:00.000-08:00</published><updated>2010-12-01T11:19:50.782-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KVM'/><category scheme='http://www.blogger.com/atom/ns#' term='user-space'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Linux KVM Kernel Virtual Machine</title><content type='html'>&lt;b&gt;Linux KVM&lt;/b&gt;: Linux Kernel Virtual Machine&lt;br /&gt;&lt;b&gt;&lt;i&gt;apt-get install -y kvm libvirt-bin ubuntu-vm-builder qemu bridge-utils &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;apt-get install -y ubuntu-virt-server ubuntu-virt-mgmt &lt;/i&gt;&lt;/b&gt;&lt;i&gt;#KVM server utils and management GUI &lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8389345101718838761?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8389345101718838761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/linux-kvm-kernel-virtual-machine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8389345101718838761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8389345101718838761'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/linux-kvm-kernel-virtual-machine.html' title='Linux KVM Kernel Virtual Machine'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6973996899106273754</id><published>2010-12-01T11:14:00.000-08:00</published><updated>2010-12-02T01:26:48.794-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='book-review'/><category scheme='http://www.blogger.com/atom/ns#' term='technical'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Reviews of Classic Technical Books</title><content type='html'>&lt;u&gt;&lt;b&gt;[Book Reviews]&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Technical:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2010/10/book-review-apprenticeship-patterns.html"&gt;Apprenticeship Patterns - Guidance for the aspiring software craftsman&lt;/a&gt; &lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2010/12/book-review-code-reading-open-source.html"&gt;Code Reading : The Open Source Perspective&lt;/a&gt;&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2010/12/bookreview-why-programs-fail-by-andreas.html"&gt;Why Programs Fail by Andreas Zeller&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Mash-ups:&lt;/u&gt; &lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2010/10/bookreview-hacking-firefox-more-than.html"&gt;Hacking FireFox : More than 150 hacks, mods and customizations&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Problem Solving:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2006/12/stub-how-to-solve-it-by-gregory-polya.html"&gt;How to Solve It by G. Polya&lt;/a&gt;&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2006/12/stub-how-to-solve-it-by-computer_12.html"&gt;How to Solve It by Computer by Dromey&lt;/a&gt;&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2006/12/stub-lateral-thinking-edward-de-bono.html"&gt;Lateral Thinking by Edward De Bono&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Soft Skills:&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2006/12/stub-how-to-win-friends-and-influence.html"&gt;How to Win Friends and Influence People by Dale Carnegie&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;BookReading:&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2006/04/how-to-choose-books.html"&gt;How To Choose Books&lt;/a&gt;&lt;br /&gt;&lt;a href="http://the-scroll-keeper.blogspot.com/2006/04/what-books-can-do-for-you.html"&gt;Why Read Books&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6973996899106273754?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6973996899106273754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/12/reviews-of-classic-technical-books.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6973996899106273754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6973996899106273754'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/12/reviews-of-classic-technical-books.html' title='Reviews of Classic Technical Books'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-5089089717791670747</id><published>2010-11-07T04:27:00.001-08:00</published><updated>2010-11-07T04:27:43.240-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='options'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='remote'/><category scheme='http://www.blogger.com/atom/ns#' term='gdb'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Remote Debugging with GDB</title><content type='html'>&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugging"&gt;Remote debugging&lt;/a&gt;:&lt;br /&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Connecting.html#Connecting"&gt;&lt;span style="text-decoration: underline;"&gt;Connecting to remote target&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) (gdb) target remote /dev/ttyb&lt;/span&gt;&amp;nbsp;&amp;nbsp; # serial-device&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) (gdb) target remote host:port&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) (gdb) target remote protocol:host:port&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) (gdb) target remote | middleman-command&amp;nbsp;&amp;nbsp;  # gdb talks to a middleman command&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;Transfer files&lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remote put hostfile targetfile&lt;/span&gt;&lt;br style="font-style: italic;" /&gt;  &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remote get targetfile hostfile&lt;/span&gt;&lt;br style="font-style: italic;" /&gt;  &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remote delete targetfile&lt;/span&gt;&lt;br /&gt;&lt;br style="font-style: italic;" /&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Target-Commands.html#load" style="font-style: italic;"&gt;load&lt;/a&gt;&lt;span style="font-style: italic;"&gt; filename &amp;nbsp;&amp;nbsp; &lt;/span&gt;# &amp;nbsp; this command is used instead of 'run' in case of remote debugging&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) break&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) step&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) continue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) detach&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) disconnect&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;a) &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Server.html#Server"&gt;Remote gdbserver&lt;/a&gt; on target with gdb on host (Need O.S. for this)&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;target&amp;gt; gdbserver /dev/com1 emacs foo.txt&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;target&amp;gt; gdbserver host:2345 emacs foo.txt&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;target&amp;gt; gdbserver --attach &lt;/span&gt;&lt;span style="font-style: italic;"&gt;/dev/com1&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;var style="font-style: italic;"&gt;pid&lt;/var&gt;&lt;span style="font-family: monospace;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Run a wrapper for the debugee program on the target-side&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; target&amp;gt; gdbserver --wrapper env LD_PRELOAD=libtest.so -- :2222 ./testprog&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Connect to the target gdbserver from my host gdb&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ gdb myprogram&lt;/span&gt;&lt;br style="font-style: italic;" /&gt; &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) target remote myhost:9999&lt;/span&gt;&lt;br style="font-style: italic;" /&gt; &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00007f215893ba60 in ?? () from /lib64/ld-linux-x86-64.so.2&lt;/span&gt;&lt;br style="font-style: italic;" /&gt; &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) b main&lt;/span&gt;&lt;br style="font-style: italic;" /&gt; &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) continue&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; # Send commands to gdbserver using the monitor command&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; monitor help&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &lt;/span&gt;# List the available monitor commands.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; monitor set debug 0 | 1&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &lt;/span&gt;# Disable or enable general debugging messages&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;monitor set remote-debug 0|1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Disable or enable debugging messages of the remote protocol &lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; monitor exit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; See Also: &lt;a accesskey="4" href="http://sourceware.org/gdb/download/onlinedocs/gdb/Remote-Configuration.html#Remote-Configuration"&gt;Remote Configuration&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; More in-depth internal look at &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Remote-Protocol.html#Remote-Protocol"&gt;Remote Protocol&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;b) &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Remote-Stub.html#Remote-Stub"&gt;Remote Stub:&lt;/a&gt;&lt;/span&gt;&amp;nbsp; Used on Embedded devices without an O.S.&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br /&gt;Blogs:&lt;br /&gt;1) http://blog.flameeyes.eu/2010/02/20/remote-debugging-with-gdb-part-2-gdb&lt;br /&gt;2) http://www.gentoo.org/proj/en/qa/backtraces.xml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-5089089717791670747?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/5089089717791670747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/11/remote-debugging-with-gdb.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5089089717791670747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5089089717791670747'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/11/remote-debugging-with-gdb.html' title='Remote Debugging with GDB'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6927449213210597779</id><published>2010-11-07T04:26:00.000-08:00</published><updated>2010-11-07T04:26:46.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='options'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-threaded'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple-processes'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='gdb'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Debugging Multiple Processes/Threads with GDB</title><content type='html'>&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Inferiors-and-Programs.html#Inferiors-and-Programs"&gt;Debugging multiple inferiors and programs&lt;/a&gt;&lt;br /&gt;Gdb allows you to debug multiple programs at once without exiting the process you're currently running.&lt;br /&gt;Gdb uses an inferior as a handle for a process. An inferior&amp;nbsp; is attachable/detachable from a process &lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info inferiors&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # display list of current inferiors.&lt;br /&gt;&lt;br /&gt;&lt;pre class="smallexample"&gt;&lt;span style="font-style: italic;"&gt;     (gdb) info inferiors&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;       Num  Description       Executable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;       2    process 2307      hello&lt;/span&gt;&lt;br /&gt;     * 1    process 3401      goodbye&lt;/pre&gt;&lt;span style="text-decoration: underline;"&gt;Switch to another inferior&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inferior infno&amp;nbsp;&amp;nbsp; &lt;/span&gt;# make inferior number infno the current inferior&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Loading multiple inferiors:&lt;/span&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;1) &amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;add-inferior [ -copies n ] [ -exec executable ] # n defaults to 1 and optional exec gives an empty inferior&lt;/span&gt;&lt;br /&gt;2) &amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;clone-inferior [ -copies n ] [ infno ]&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # n defaults to 1 and infno defaults to current inferior number&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;Ending the inferiority complex:&lt;br /&gt;&lt;/span&gt;remove-inferior infno&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Remove the empty inferior Note: Can't remove an inferior with a running assoc. process.&lt;br /&gt;detach-inferior infno&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # detaches from an inferior from assoc. process&lt;br /&gt;kill-inferiror infno&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; # kills the process attached to the inferior. It can be removed or re-attached to some process.&lt;br /&gt;&lt;hr style="height: 2px; width: 100%;" /&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Threads.html#Threads"&gt;&lt;span style="text-decoration: underline;"&gt;Debugging Multi-threaded Programs:&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info threads&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # displays thread info - thread number, thread-id,&amp;nbsp; stack frame summary&lt;br style="font-style: italic;" /&gt; &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; thread threadno&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; # make threadno as active current thread and shows stack frame summary&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Thread-Stops.html#Thread-Stops"&gt;Starting and Stopping Multi-thread Programs&lt;/a&gt;&lt;br /&gt;2 modes of debugging:&lt;br /&gt;1) All stop mode: aka 3 musketeers mode i.e. "All-for-one, One-for-all"&lt;br /&gt;2) Non-stop mode:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set target-async on|off&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;# Switch asynchronous mode.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show target-async&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &lt;/span&gt;# Show the current target-async setting.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;# suspend execution of the running program (whole process in all-stop, current thread in non-stop modes)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt -a&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt; # stop the whole program in non-stop mode&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6927449213210597779?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6927449213210597779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/11/debugging-multiple-processesthreads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6927449213210597779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6927449213210597779'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/11/debugging-multiple-processesthreads.html' title='Debugging Multiple Processes/Threads with GDB'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8678661628729558173</id><published>2010-10-30T04:07:00.000-07:00</published><updated>2010-11-02T10:21:19.413-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='knowledge'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='knowledge-pyramid'/><title type='text'>The Pyramid of Knowledge</title><content type='html'>Knowledge can be thought of as a Pyramid of Information, like the predator-prey biological pyramid or energy distribution in an ecosystem.&lt;br /&gt;&lt;br /&gt;Building the Knowledge Pyramid is like a "Fox and Hounds Paper Chase" so that the Walk-The-Long-Road on the Information Trail/Path becomes much easier.&lt;br /&gt;&lt;br /&gt;First need to categorize learning resources into 3 levels:&lt;br /&gt;1) Top-Down: Solution Space - What problems does this technology address and solve?&lt;br /&gt;2) Middle-Up/Down: Module level concepts like Manager code e.g. Virtual Filesystem Cache Manager, Storage Manager&lt;br /&gt;3) Bottom-Up:&lt;br /&gt;&lt;br /&gt;Search for Short-Intros materials like ppts, podcasts, pdfs, research papers, articles, blogs, videos, mindmaps, TOC&lt;br /&gt;Find the Gurus in the trade and their JourneyMan followers&lt;br /&gt;Subscribe to RSS Feeds to blogs by them&lt;br /&gt;1) JourneyMen in the domain like Yeshawant Kanetkar who explain things well to Apprentices (WalkInThePark Pattern)&lt;br /&gt;2) MasterCraftsMen in the domain like Stroustrup, Richter, Butenhof (WalkInTheForest Pattern)&lt;br /&gt;&lt;br /&gt;0) Blogs, articles or PPTs doing a system walk-through relating how various things and flows through the system&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; like "Gusatvo Duartes blogs on Operating Systems"&lt;br /&gt;1) General books to get a feel for the domain and common constraints, solutions, patterns and principles &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; like "Operating System Principles", "Distributed Systems: Principles and Paradigms"&lt;br /&gt;2) Applied Books using APIs, Frameworks &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; like"Linux System Programming", "Windows Application Programming by Richter"&lt;br /&gt;3) System/Sub-System Level books describing internals of APIs, Frameworks &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; like "Understanding the Linux Kernel", "MFC Internals"&lt;br /&gt;&lt;br /&gt;Categorizing Method Applied to Information Trail:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Follow most referred book/white-paper trail in collections like Bibliographies, Appendices, References etc. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This method works on any of the above 3 levels, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Example: &lt;br /&gt;&amp;nbsp;&amp;nbsp; Get generic Distributed domain book from amazon and follow Up/Down to higher/lower levels of Pyramid.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Distributed Systems: Principles and Paradigms" -&amp;gt; "C++ Network Programming" -&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) POSA2 (Basic Distributed Patterns)-&amp;gt; POSA3 (Resource Mgmt Patterns) - (Design Level Classics)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) Operating System -&amp;gt; "Operating System Principles" by Galvin -&amp;gt; "Understanding theLinux Kernel" by Bovet and Cesati&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) Module Level Concepts -&amp;gt; Caching Virtual FileSystems, Remoting Patterns -&amp;gt; Research Papers -&amp;gt; Classic Books referring to the Research Papers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) Networking -&amp;gt; "Programming the Sockets API" by Stevens -&amp;gt; ... -&amp;gt; "Linux Network Internals" (Implementation Level Classics)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;On a Related Note:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;A Concept Map can very nicely simulate such a Tree of knowledge.&lt;br /&gt;Hmmm....  kind of like the way WikiMindMap hierarchically orgranises a Wikipedia  article into a tree structure. So we can do the following to convert a  wiki/webpage into a concept map:&lt;br /&gt;1) Use WikiMindMap to convert wikipedia article into a Freemind MindMap and export it as a .mm file&lt;br /&gt;2) Use XMind to convert the .mm file into an XMind Concept Map which is shareable and editable with friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8678661628729558173?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8678661628729558173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/pyramid-of-knowledge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8678661628729558173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8678661628729558173'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/pyramid-of-knowledge.html' title='The Pyramid of Knowledge'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7219835624060224702</id><published>2010-10-30T04:05:00.000-07:00</published><updated>2010-12-06T22:50:16.584-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='small-bites'/><category scheme='http://www.blogger.com/atom/ns#' term='chunking'/><title type='text'>Howto Learn in Small Chunks - (Bite Sized Learning)</title><content type='html'>Many of the curious and interested people always end up saying at one time or another....&lt;br /&gt;"I've really wanted to learn more BUT I can't seem to find the time for it...."&lt;br /&gt;&lt;br /&gt;What happens to our time, after all as someone said "God gave each one of us 24 hours".&lt;br /&gt;So how is that some people seem to make so much more use of them than others?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apart from the solid block of time allocated for our salary-paying masters what's left of them?&lt;br /&gt;&lt;br /&gt;Waiting in queues for doctors, meetings to start, buses to show up.... these are the places we lose our free-time 24 hours.&lt;br /&gt;&lt;br /&gt;a) The main problem is these time-chunks are fragmented i.e. the free chunks occur in-between major tasks. We need some method to connect these small fragments together&lt;br /&gt;b) Mostly these free-time chunks are too small to do any significant work.&lt;br /&gt;c) Sometimes we cannot predict when we'll get these free minutes/hours. So we tend to browse stuff and use up these fragments of time.&lt;br /&gt;&lt;br /&gt;But there is a way that we can make full use of these time-chunks if we learn how to&lt;br /&gt;a) Learn in small chunks by finding bite-sized activities.&lt;br /&gt;b) Actively Record-What-You-Learn so that you can continue where you left off last time. This way the task switching overhead is minimized as you save your work every few minutes - kinda like saving that important file so you don't lose all your work when the computer hangs.&lt;br /&gt;&lt;br /&gt;1) Subscribe to RSS Feeds to blogs by Gurus in the trade and their followers (WalkInThePark, WalkInTheForest Patterns)&lt;br /&gt;2) Browse constantly using a phone/iPad to browse the net on idle time-chunks like waiting for the bus, doctor, queue etc.&lt;br /&gt;3) Keep a book handy for power-cuts, reading on bus etc. (Make sure that it's small enough and has big letters for easy reading). StudyTheClassics to avoid wasting time on useless stuff. Amazon ratings may not be the best guide at all times. A classic is normally referenced by many books even the time-waste ones. Utilize the bibliography at the end of most books.&lt;br /&gt;4) Learn Research-Techniques like Skimming, SpeedReading, Mindmapping on a book for quick outline of the book to be added in the book review.&lt;br /&gt;5) Capture the essence of what you understood by taking notes a book for quick reference later. &lt;br /&gt;&lt;br /&gt;Use the book fully - &lt;br /&gt;1) Annotate the TOC with educated guesses and already known-facts gathered from Short-Intros. Peek into topics which you can't explain well to yourself or to refresh/cross-check your memory.&lt;br /&gt;2) Categorize the bibliography into ShortIntros, Mid-Stuff, Adv-Stuff to build up your Knowledge Pyramid&lt;br /&gt;3) Keep incrementing your blog on the topic with all resources - links, notes, thoughts, questions.&lt;br /&gt;4) Keep Reviewing your blog to reduce/add TODOs:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; correct grammatical mistakes, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; add further links for later annotation, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanup and reorganize information,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; re-view the gathered information with a fresh eye,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; simplify, clarify, generalize, specify, elaborate, concise information,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; split of a huge post into different blog posts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (each post should not be more than 2 PageDowns for the reader)&lt;br /&gt;5) IMPORTANT: Blog should not be a place where information goes to die but a place where it comes alive.&lt;br /&gt;With each review and update it should spawn a new generation of Rise-From-The-Ashes-Phoenixes.&lt;br /&gt;6) You'll be surprised to see how much you can achieve in small bites spread across time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://bookshelved.org/cgi-bin/wiki.pl?HowToReadAndWhy"&gt;How to Read A Book And Why (from bookshelved wiki)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7219835624060224702?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7219835624060224702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-learn-in-small-chunks-bite-sized.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7219835624060224702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7219835624060224702'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-learn-in-small-chunks-bite-sized.html' title='Howto Learn in Small Chunks - (Bite Sized Learning)'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7306035608043960681</id><published>2010-10-30T04:01:00.000-07:00</published><updated>2010-10-30T04:01:27.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pyramid'/><category scheme='http://www.blogger.com/atom/ns#' term='syntopical-learning'/><category scheme='http://www.blogger.com/atom/ns#' term='knowledge'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='knowledge-pyramid'/><title type='text'>Useful Sections of a Syntopic Learning Post</title><content type='html'>0) Add a TODO section at the top for quickly scanning pending actions on the blog &lt;br /&gt;1) Build the Knowledge Pyramid one link at a time.&lt;br /&gt;2) Add Short-Intros: ppts, podcasts, pdfs, research papers, articles, blogs, videos, mindmaps, TOC, tutorials, sample-code, howtos, &lt;br /&gt;3) Add Mid-Stuff: guides, idioms, best-practises, FAQs, Gotchas, traps-and-pitfalls&lt;br /&gt;4) Add Adv-Stuff: Design-level stuff, Patterns etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7306035608043960681?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7306035608043960681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/useful-sections-of-syntopic-learning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7306035608043960681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7306035608043960681'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/useful-sections-of-syntopic-learning.html' title='Useful Sections of a Syntopic Learning Post'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7968275598154407517</id><published>2010-10-28T03:33:00.000-07:00</published><updated>2010-10-28T03:33:37.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delicious'/><category scheme='http://www.blogger.com/atom/ns#' term='freemind'/><category scheme='http://www.blogger.com/atom/ns#' term='mindmap'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='using'/><category scheme='http://www.blogger.com/atom/ns#' term='mindmapping'/><category scheme='http://www.blogger.com/atom/ns#' term='viewing'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='xmind'/><category scheme='http://www.blogger.com/atom/ns#' term='media-wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='google-gadget'/><title type='text'>Howto Capture Your Ideas and Knowledge into a MindMap using Freemind</title><content type='html'>&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;For some time now I’ve been using Freemind tool to make mindmaps to capture ideas and knowledge.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;I was pretty happy with Freemind the opensource and free mind mapping tool.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;It has some great features including exporting the mindmap into different formats - html, browsable java-applet, picture formats, flash file, pdf etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;What I'm really trying to do is to use and leverage my blog by adding browsable mind-maps.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;I've been somewhat successful in finding resources but still failing to get the last-mile work done.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Once I do this I'll be able to use mind-maps for sharing with others and allow them to edit my work too. Seems like the best bet right now is to move to wordpress plugin below:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;1) There is a &lt;a href="http://wordpress.org/extend/plugins/wp-freemind/"&gt;&lt;b&gt;Free Mind Viewer&lt;/b&gt; plugin for Wordpress&lt;/a&gt; which allows read-only browsing of your  mindmap file (not just an image). I’ve not been able to try it out yet  though.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;2) &lt;b&gt;XMind &lt;/b&gt;converts a Freemind mindmap into a  concept map. You can then upload and share it using a free XMind  account. Paid accounts also allow collaboration.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;3) &lt;b&gt;&lt;a href="http://www.wikimindmap.org/"&gt;WikiMindMap&lt;/a&gt;&lt;/b&gt;&amp;nbsp; converts any Wikipedia article into a mindmap for reading it visually.(Thanks to &lt;a href="http://dorai.wordpress.com/2007/07/10/wiki-mind-map/"&gt;dorai's log&lt;/a&gt; for this info)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;4) &lt;b&gt;DeliciousMind&lt;/b&gt; = Delicious (bookmarking) + Freemind&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.blainekendall.com/deliciousmind/"&gt;blainekendall.com - DeliciousMind = del.icio.us + FreeMind mindmap&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="https://api.del.icio.us/v1/posts/recent?count=10000"&gt;https://api.del.icio.us/v1/posts/recent?count=10000&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="https://www.odesk.com/jobs/Freemind-Mindmap-Embedded-Wordpress_%7E%7E59563dc22a07405c#reloaded"&gt;Freemind Mindmap Embedded In Wordpress - Web Development Jobs - oDesk&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://wordpress.org/extend/plugins/wp-freemind/"&gt;WordPress › Freemind Viewer « WordPress Plugins&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: small;"&gt;FreeMind Google Module/Gadget: (Requires you to have your own blog hosting)&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://rolandog.com/archives/2006/07/05/freemind-viewer-google-module/"&gt;Freemind Viewer Google Module – Rolando Garza&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://rolandog.com/archives/2006/07/05/dissecting-the-freemind-viewer/"&gt;Dissecting the Freemind Viewer – Rolando Garza&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://blog.yuriy.org/2008/03/freemind-flash-browser-google-gadget.html"&gt;yuriy.org: FreeMind Flash Browser Google Gadget&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://sites.google.com/site/rolandog02/placingafreemindmindmapusingobjectelements"&gt;placingafreemindmindmapusingobjectelements - rolandog02&lt;/a&gt;  &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Embedded_Mind_Maps"&gt;Embedding mind maps - FreeMind - free mind mapping software&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://drupal.org/project/freemind"&gt;Freemind | &lt;b&gt;drupal.org&lt;/b&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.mediawiki.org/wiki/Extension:FreeMind"&gt;Extension:FreeMind - &lt;b&gt;MediaWiki&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Embedded_Mind_Maps"&gt;&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Freemind_Collaboration_on_Windows"&gt;Freemind &lt;b&gt;Collaboration on Windows&lt;/b&gt; - FreeMind - free mind mapping software&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;&lt;b&gt;Freemind&lt;/b&gt;:&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page"&gt;Main Page - FreeMind - free mind mapping software&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Download"&gt;Download - FreeMind - free mind mapping software&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Asked_questions#Using"&gt;Using FreeMind - FreeMind FAQ&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Tutorial_effort"&gt;Tutorial effort - FreeMind - free mind mapping software&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Import_and_export_to_other_applications"&gt;Import and export - FreeMind - free mind mapping software&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Accessories"&gt;Accessories - FreeMind - free mind mapping software&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/FreeMind_0.9.0:_The_New_Features#Working_with_Attributes"&gt;FreeMind 0.9.0 The New Features&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/docs/features/0_8_0/Features%200.8.0.html"&gt;FreeMind 0.8.0 Features&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Asked_questions#Using"&gt;&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Asked_Questions"&gt;FreeMind FAQ&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Asked_Questions#To_view_the_toolbar_automatically_after_the_applet_starts"&gt;After the Applet Start - FreeMind FAQ&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Essays"&gt;Essays - FreeMind - free mind mapping software&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Stuff"&gt;Stuff - FreeMind - free mind mapping software&lt;/a&gt;  &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Mindmapping:&lt;/u&gt;&lt;/span&gt;&lt;/b&gt; &lt;span style="font-size: small;"&gt;Articles on general mindmapping concept and uses&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://internet-mind-reader.vista-files.org/"&gt;internet mind reader - Improves your thinking with free mind map and brainstorming software&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.mind-mapping.org/"&gt;Mindmapping, concept mapping and information organisation software&lt;/a&gt;  &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php?title=Stuff&amp;amp;diff=0&amp;amp;oldid=935#FreeMind_combined_with_Blogging"&gt;Freemind combined with blogging&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;[Note: This is a Work-in-Progress so subscribe to RSS feed for updates]&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7968275598154407517?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7968275598154407517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-capture-your-ideas-and-knowledge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7968275598154407517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7968275598154407517'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-capture-your-ideas-and-knowledge.html' title='Howto Capture Your Ideas and Knowledge into a MindMap using Freemind'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-3712770188173467658</id><published>2010-10-27T02:56:00.000-07:00</published><updated>2010-12-24T04:14:06.948-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reverse-debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='time-machine'/><category scheme='http://www.blogger.com/atom/ns#' term='gdb'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='backtrack'/><title type='text'>Howto do Reverse Debugging with GDB</title><content type='html'>&lt;a href="http://live.eclipse.org/node/723"&gt;Webinar on Reverse Debugging with DSF-GDB&lt;/a&gt;&lt;br /&gt;This webinar introduces the new DSF-GDB debugger integration that is  part of CDT 6.0.  It illustrates the recent GDB additions such as  Reverse debugging, Multi-Process and Non-stop multi-thread debugging.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceware.org/gdb/wiki/ProcessRecord"&gt;GDB Reverse Debugging Wiki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/gdb/news/reversible.html"&gt;GDB and Reverse Debugging&lt;/a&gt;&lt;br /&gt;&lt;a class="attachment nonexistent" href="http://sourceware.org/gdb/wiki/ProcessRecord?rename=GDB+Reverse+Debug+and+Process+Record+Target.pdf&amp;amp;action=AttachFile&amp;amp;ticket=004cc06da3.52c7dfbc1dd0128d4039c8a168ec9b50415a214f" title="Upload new attachment &amp;quot;GDB Reverse Debug and Process Record Target.pdf&amp;quot;"&gt;Presentation (PDF) on Internals of GDB Reverse Debug and Process Record Target&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tutorial/"&gt;GDB Reverse Debugging Tutorial&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-3712770188173467658?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/3712770188173467658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-do-reverse-debugging-with-gdb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3712770188173467658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3712770188173467658'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-do-reverse-debugging-with-gdb.html' title='Howto do Reverse Debugging with GDB'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-1588254410486104972</id><published>2010-10-26T22:42:00.001-07:00</published><updated>2011-01-09T05:26:56.664-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips-n-tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='strategies'/><category scheme='http://www.blogger.com/atom/ns#' term='techniques'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>[Stub] Debugging Strategies and Techniques</title><content type='html'>&lt;b&gt;&lt;u&gt;See Also:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;a href="http://www.cprogramming.com/debugging/debugging_strategy.html"&gt;C++ Debugging strategies and techniques&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.debugging-guide.com/"&gt;debugging-guide.com website &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.debugging-guide.com/books.html"&gt;Debugging Books&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.debugging-guide.com/links.html"&gt;Links on Debugging Resources&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.debugging-guide.com/tools.html"&gt;Tools For Debugging C/C++ software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-1588254410486104972?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/1588254410486104972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/debugging-strategies-and-techniques.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1588254410486104972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1588254410486104972'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/debugging-strategies-and-techniques.html' title='[Stub] Debugging Strategies and Techniques'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-5364627640115402776</id><published>2010-10-26T22:38:00.001-07:00</published><updated>2010-12-01T11:16:32.096-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usage'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='using'/><category scheme='http://www.blogger.com/atom/ns#' term='gdb'/><title type='text'>Howto Debug with GDB</title><content type='html'>&lt;b&gt;&lt;u&gt;See Also:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/aix/library/au-unix-strace.html"&gt;Fun with strace and gdb - article on ibmdeveloperworks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/aix/library/au-gdb.html"&gt;GNU project debugging with gdb - article on &lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/aix/library/au-gdb.html"&gt;ibmdeveloperworks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-5364627640115402776?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/5364627640115402776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-debug-with-gdb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5364627640115402776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5364627640115402776'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-debug-with-gdb.html' title='Howto Debug with GDB'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-5503355859159780218</id><published>2010-10-26T22:36:00.000-07:00</published><updated>2010-10-26T22:36:07.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='internals'/><category scheme='http://www.blogger.com/atom/ns#' term='loader'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='under-the-hood'/><category scheme='http://www.blogger.com/atom/ns#' term='linker'/><title type='text'>Under The Hood Look At Shared and Static Libraries, Linkers and Loaders</title><content type='html'>&lt;u&gt;&lt;b&gt;Linker Loader&lt;/b&gt;&lt;/u&gt; :&lt;br /&gt;&lt;a href="http://www.network-theory.co.uk/docs/gccintro/gccintro_18.html"&gt;Link order of libraries&lt;/a&gt; ,&lt;br /&gt;&lt;a href="http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html"&gt;Link options&lt;/a&gt; for gcc ld,&lt;br /&gt;&lt;a href="http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html"&gt;Yolinux Tutorial on Static, Shared Dynamic and Loadable Linux Libraries&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html"&gt;Shared Library How-to&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://www.akkadia.org/drepper/dsohowto.pdf"&gt;How-to write Shared Libraries by Ulrich Drepper&lt;/a&gt; (Redhat),&lt;br /&gt;&lt;a href="http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html"&gt;Cross Platform Shared Library How-to&lt;/a&gt; ,&lt;br /&gt;&lt;a href="http://www.faqs.org/docs/Linux-HOWTO/Program-Library-HOWTO.html"&gt;Program Library How-to&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://www.iecc.com/linker/"&gt;Linkers and Loaders online downloadable book&amp;nbsp;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-5503355859159780218?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/5503355859159780218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/under-hood-look-at-shared-and-static.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5503355859159780218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5503355859159780218'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/under-hood-look-at-shared-and-static.html' title='Under The Hood Look At Shared and Static Libraries, Linkers and Loaders'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7346744226647463364</id><published>2010-10-26T22:34:00.000-07:00</published><updated>2010-12-01T11:16:55.615-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='internals'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='under-the-hood'/><title type='text'>Howto Look Inside Executables, Libraries and Object Files</title><content type='html'>&lt;u&gt;&lt;b&gt;Object file commands&lt;/b&gt;&lt;/u&gt; :&lt;br /&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_strip.htm"&gt;strip&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_ld.htm"&gt;ld&lt;/a&gt;, &lt;br /&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_objdump.htm"&gt;objdump&lt;/a&gt;, &lt;br /&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_nm.htm"&gt;nm&lt;/a&gt; &lt;a href="http://linux.about.com/library/cmd/blcmdl1_objcopy.htm"&gt;,&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_objcopy.htm"&gt; objcopy&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.ksplice.com/category/computer-architecture/"&gt;Blog on How to Use Objdump to look inside Your Program&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxjournal.com/article/1060"&gt;Unix Tools for inspecting Object files (article on LinuxJournal),&lt;br /&gt;The ELF Object File Format by Dissection&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Category:Executable_file_formats"&gt;Wikipedia on Executable File Formats&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7346744226647463364?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7346744226647463364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/what-is-inside-executables-libraries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7346744226647463364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7346744226647463364'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/what-is-inside-executables-libraries.html' title='Howto Look Inside Executables, Libraries and Object Files'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8361569558591785733</id><published>2010-10-26T11:13:00.000-07:00</published><updated>2010-12-02T01:32:27.739-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resources'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Learning Python - Collection of Resources and Links</title><content type='html'>&lt;u&gt;&lt;/u&gt;&lt;br /&gt;&lt;a class="http" href="http://www.python.org/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Beginner:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a class="backlink" href="http://wiki.python.org/moin/BeginnersGuide?action=fullsearch&amp;amp;context=180&amp;amp;value=linkto%3A%22BeginnersGuide%22" rel="nofollow" title="Click to do a full-text search for this title"&gt;BeginnersGuide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/Download"&gt;BeginnersGuide/Download&lt;/a&gt; &lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/Overview"&gt;BeginnersGuide/Overview&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/HowToEditPythonCode"&gt;HowToEditPythonCode&lt;/a&gt; &lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/NonProgrammers"&gt;BeginnersGuide/NonProgrammers&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/Programmers"&gt;BeginnersGuide/Programmers&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://www.python.org/doc/faq/windows/#how-do-i-run-a-python-program-under-windows"&gt;How do I Run a Program Under Windows&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/PythonEditors"&gt;PythonEditors&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/Programmers?action=AttachFile&amp;amp;do=get&amp;amp;target=Cpp2Python.pdf"&gt;&lt;b&gt;BeginnersGuide&lt;/b&gt;/Programmers &lt;b&gt;(Cpp2Python.pdf)&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xminc.com/mt/archives/pythontut2.html"&gt;Good Presentation by a C guy on Python features&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/Programmers/SimpleExamples"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;Blogs:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://dorai.wordpress.com/resource-links/python-resources-home/python-learning-material"&gt;Dorai's blog post on Learning Python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;CookBooks:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://go2.wordpress.com/?id=725X1342&amp;amp;site=dorai.wordpress.com&amp;amp;url=http%3A%2F%2Fwww.voidspace.org.uk%2Fpython%2Frecipebook.shtml&amp;amp;sref=http%3A%2F%2Fdorai.wordpress.com%2Fresource-links%2Fpython-resources-home%2Fpython-learning-material%2F"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/BeginnersGuide/Programmers/SimpleExamples"&gt;&lt;b&gt;BeginnersGuide&lt;/b&gt;/Programmers/SimpleExamples&lt;/a&gt; &lt;br /&gt;&lt;a href="http://go2.wordpress.com/?id=725X1342&amp;amp;site=dorai.wordpress.com&amp;amp;url=http%3A%2F%2Fwww.voidspace.org.uk%2Fpython%2Frecipebook.shtml&amp;amp;sref=http%3A%2F%2Fdorai.wordpress.com%2Fresource-links%2Fpython-resources-home%2Fpython-learning-material%2F"&gt;Python Snippets and Recipes&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.lightbird.net/py-by-example/"&gt;Python by Example&lt;/a&gt;&lt;br /&gt;&lt;a href="http://the.taoofmac.com/static/tiddlygrimoire20050822.html"&gt;Common programming tasks in Python&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ginstrom.com/scribbles/2008/02/14/intermediate-python-pythonic-file-searches/"&gt;Pythonic File Searches&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Using Pythonic Idioms and Style:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Definition of "Pythonic" &lt;a href="http://www.wordiq.com/definition/Python_programming_language"&gt;here&lt;/a&gt; &lt;br /&gt;&lt;i&gt;&lt;u&gt;Presentations: &lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;a href="http://www.chrisarndt.de/talks/rupy/2008/output/slides.html"&gt;How to Write Pythonic" code by Christopher Arndt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://python.net/%7Egoodger/projects/pycon/2007/idiomatic/presentation.html"&gt;Presentation on "Code Like a Pythonista: Idiomatic Python" by David Goodger&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.omahapython.org/IdiomaticPython.html"&gt;Presentation on "Code Like a Pythonista: Idiomatic Python" (Crunchy Remix) by Jeff Hinrich&amp;nbsp;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://dorai.wordpress.com/2008/04/15/presentation-how-to-write-pythonic-code-made-with-python-tool-chain/"&gt;How to produce slides like above using Python tools&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.python.org/dev/peps/pep-0008/"&gt;Style Guide for Python Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://exploring-python-stdlib.blogspot.com/"&gt;My blog on Exploring the Python standard library source code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Books:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;a href="http://wiki.python.org/moin/IntroductoryBooks"&gt;IntroductoryBooks&lt;/a&gt;&lt;br /&gt;&lt;a class="reference external" href="http://wiki.python.org/moin/PythonBooks"&gt;Python books&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://openbookproject.net/thinkcs/python2e.php"&gt;How to think like a computer scientist with Python&lt;/a&gt;&lt;br /&gt;Bruce Eckel's community contributed book&lt;a href="http://bitbucket.org/BruceEckel/python-3-patterns-idioms"&gt;: Python 3 - Patterns &amp;amp; Idioms&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Version Issues:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;a class="backlink" href="http://wiki.python.org/moin/Python2orPython3?action=fullsearch&amp;amp;context=180&amp;amp;value=linkto%3A%22Python2orPython3%22" rel="nofollow" title="Click to do a full-text search for this title"&gt;Python2orPython3&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://docs.python.org/release/3.1.2/whatsnew/3.0.html"&gt;What's New in Python 3.0&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://docs.python.org/release/2.6.4/whatsnew/2.6.html"&gt;What's New in Python 2.6&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://docs.python.org/dev/whatsnew/2.7.html"&gt;What's New in Python 2.7&lt;/a&gt; &lt;br /&gt;&lt;a class="http" href="http://ptgmedia.pearsoncmg.com/imprint_downloads/informit/promotions/python/python2python3.pdf"&gt;Moving from Python 2 to Python3 (PDF)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://diveintopython3.org/porting-code-to-python-3-with-2to3.html"&gt;Porting Code to Python 3 with &lt;code&gt;2to3&lt;/code&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://diveintopython3.org/case-study-porting-chardet-to-python-3.html"&gt;Case Study: Porting &lt;code&gt;chardet&lt;/code&gt; to Python 3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Learning Resources:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://diveintopython3.org/installing-python.html"&gt;Installing Python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;MultiMedia:&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;&lt;a href="http://vimeo.com/groups/pyconireland/videos/14354395"&gt;Video on "Head First into Python 3"&lt;/a&gt;&lt;br /&gt;&lt;a class="reference external" href="http://www.python.org/doc/av/5minutes"&gt;5-minute videos on Python Capability&lt;/a&gt;&lt;br /&gt;&lt;a href="http://showmedo.com/videotutorials/series?name=pythonOzsvaldPyNewbieSeries"&gt;ShowMeDo Screencast of Python 2.5 Development on XP&lt;/a&gt;&lt;br /&gt;&lt;a class="selected" href="http://www.python.org/doc/av/"&gt;Audio/Visual Talks on Python&lt;/a&gt;&lt;br /&gt;&lt;a class="reference external" href="http://academicearth.org/courses/introduction-to-computer-science-and-programming"&gt;Introduction to Computer Science and Programming (videos from MIT course)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.awaretek.com/python/index.xml"&gt;Podcast Python411&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Python3:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_1620371399"&gt;"What an &lt;/a&gt;&lt;a href="http://www.blogger.com/goog_1620371399"&gt;IronPython&lt;/a&gt;&lt;a href="http://www.itworld.com/development/104506/python-3-and-ironpython"&gt; user should know about Python 3"&lt;/a&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/groups/pyconireland/videos/14354395"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://diveintopython3.org/whats-new.html"&gt;Python 3 focused version of Dive Into Python&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.comp.leeds.ac.uk/nde/papers/teachpy3.html"&gt;Teaching programming with Python 3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Python 3.1:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.python.org/ftp/python/3.1.2/python-3.1.2.msi"&gt;Setup&lt;/a&gt; &lt;br /&gt;&lt;a href="http://docs.python.org/py3k/"&gt;Documentation&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Python2.x:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="http" href="http://www.python.org/doc/current/tut/tut.html"&gt;Python Tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://diveintopython.org/"&gt;Dive Into Python&lt;/a&gt; &lt;br /&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans; font-size: x-small;"&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans;"&gt; &lt;a href="http://www.byteofpython.info/"&gt;A Byte of Python&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://hetland.org/writing/instant-python.html"&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans; font-size: x-small;"&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans; font-size: x-small;"&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans;"&gt;&lt;a href="http://hetland.org/writing/instant-python.html"&gt;Instant Python&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;a class="http" href="http://www.python.org/peps/pep-0008.html"&gt;&lt;/a&gt;&lt;br /&gt;Download Thinking in Python (Old) by Bruce Eckel &lt;a href="http://www.mindviewinc.com/downloads/TIPython.zip"&gt;here&lt;/a&gt; &lt;br /&gt;&lt;a class="http" href="http://www.razorvine.net/python/PythonForJavaProgrammers"&gt;Python for Java programmers&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans; font-size: x-small;"&gt;&lt;span style="font-family: verdana,tahoma,arial,helvetica,sans;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a class="http" href="http://openbookproject.net/thinkcs/python2e.php"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/MovingToPythonFromOtherLanguages"&gt;Moving to Python From Other Languages&lt;/a&gt; &lt;br /&gt;&lt;a class="http" href="http://dirtsimple.org/2004/12/python-is-not-java.html"&gt;Python is not Java&lt;/a&gt;&lt;br /&gt;&lt;u&gt; &lt;/u&gt;&lt;br /&gt;&lt;u&gt; &lt;/u&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/MovingToPythonFromPerl"&gt;MovingToPythonFromPerl&lt;/a&gt; &lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://openbookproject.net/pybiblio/practice/"&gt;Practice Problems for Python&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Reference:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a class="http" href="http://www.python.org/"&gt;Official Python website&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/" style="margin-top: 1.5em;"&gt;Python Wiki&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.blogger.com/goog_1620371449"&gt;&lt;/a&gt;&lt;a href="http://www.python.org/doc/faq/"&gt;Python 2.7 FAQ&lt;/a&gt;&lt;br /&gt;&lt;a href="http://docs.python.org/faq/windows"&gt;Python 2.7 Windows FAQ&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://rgruet.free.fr/PQR24/PQR2.4.html"&gt;Python Quick Reference&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://www.python.org/doc/current/ref/ref.html"&gt;Python Language Reference manual&lt;/a&gt;&lt;u&gt;&amp;nbsp;&lt;/u&gt;&lt;br /&gt;&lt;a class="http" href="http://www.python.org/doc/current/lib/lib.html"&gt;Python's Standard Library Reference manual&lt;/a&gt;&lt;br /&gt;&lt;a class="http" href="http://docs.python.org/modindex.html"&gt;Module Index&lt;/a&gt; of the Python docs&lt;br /&gt;Python's reply to Perl's CPAN: &lt;a class="http" href="http://www.python.org/pypi"&gt;Python Package Index (PYPI)&lt;/a&gt;&lt;br /&gt;&lt;a class="reference external" href="http://docs.python.org/extending/index.html#extending-index"&gt;&lt;i&gt;Extending and Embedding the Python Interpreter&lt;/i&gt;&lt;/a&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;a class="reference external" href="http://docs.python.org/c-api/index.html#c-api-index"&gt;&lt;i&gt;Python/C API Reference Manual&lt;/i&gt;&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;See Also:&lt;/u&gt;&lt;br /&gt;&lt;a class="http" href="http://www.linuxjournal.com/article.php?sid=3882"&gt;Eric S. Raymond article on moving to Python: 'Why Python?"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-8361569558591785733?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8361569558591785733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/learning-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8361569558591785733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8361569558591785733'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/learning-python.html' title='Learning Python - Collection of Resources and Links'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8521211803471788381</id><published>2010-10-26T08:52:00.000-07:00</published><updated>2010-12-04T09:03:42.050-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='source-forge'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='media-packer'/><category scheme='http://www.blogger.com/atom/ns#' term='dvd'/><category scheme='http://www.blogger.com/atom/ns#' term='utility'/><title type='text'>MediaPacker - Utility to help pack your DVDs and CDs to the brim</title><content type='html'>&lt;div class="display_post"&gt;&lt;a href="https://sourceforge.net/p/mediapacker/home/"&gt;Media Packer&lt;/a&gt; is meant to solve the following problems.&lt;br /&gt;1) Allow good-fit packing of DVDs, CDs with given set of directories/files.&lt;br /&gt;2)  Intention is to semi-automate (i.e. provide suggestions to users) or  fully automate the process of packing backup media such as DVD, CDs. &lt;br /&gt;3) To be developed in Python for portability and ease-of-extension&lt;br /&gt;&lt;br /&gt;InProgress:&lt;br /&gt;1) Display media space occupied by a folder structure (files and directories).&lt;br /&gt;&lt;a href="http://www.daniweb.com/forums/thread78629.html"&gt;File Size code snippet&lt;/a&gt;,&lt;br /&gt;&lt;i&gt;&amp;gt;&amp;gt;&amp;gt; import os&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; b= os.path.getsize("/path/isa_005.mp3")&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; b&lt;/i&gt;&lt;br /&gt;&lt;a href="http://docs.python.org/tutorial/inputoutput.html"&gt;File I/O tutorial&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&amp;gt;&amp;gt;&amp;gt; f = open( 'test.txt', 'at')&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; f.writelines( str(b))&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; f.close()&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; f = open( 'test.txt', 'rt' )&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; s = f.readlines()&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; s&lt;/i&gt;&lt;a href="http://code.activestate.com/recipes/86554-directory-size-lister-for-windows/"&gt;Directory Size Lister&lt;/a&gt;&lt;i&gt; (Check out the comments at end of blog to get info on )&lt;/i&gt;&lt;/div&gt;&lt;div class="display_post"&gt;&lt;strong&gt;Pydirstat.&lt;/strong&gt;  pydirstat is a really handy cross-platform, command-line way to generate information about disk usage. &lt;a href="http://developer.berlios.de/projects/pydirstat/" rel="nofollow"&gt;http://developer.berlios.de/projects/pydirstat/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Future features:&lt;br /&gt;1) Add catalog and search facility to uniquely identify each media, add tags for folders/files and  user comments.&lt;br /&gt;2) Allow collaboration and sharing of catalogs among friends to share useful files.&lt;br /&gt;3) Possibly use bit-torrent protocol for the sharing??&lt;br /&gt;&lt;br /&gt;To be released under GPL. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;See Also:&lt;/u&gt; &lt;br /&gt;&lt;a href="https://sourceforge.net/p/mediapacker/home/"&gt;MediaPacker sourceforge account&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/6025089615285380514-8521211803471788381?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/8521211803471788381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/mediapacker-utility-to-help-pack-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8521211803471788381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/8521211803471788381'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/mediapacker-utility-to-help-pack-your.html' title='MediaPacker - Utility to help pack your DVDs and CDs to the brim'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-3872388703530993961</id><published>2010-10-26T07:39:00.000-07:00</published><updated>2010-10-26T07:39:30.734-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='star-uml'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='plug-in'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='reborn'/><title type='text'>StarUml is dead (NOT)!! Long Live the Stars!!</title><content type='html'>&lt;a href="http://sourceforge.net/projects/staruml/"&gt;Star UML&lt;/a&gt; a very nice stable open-source design tool was &lt;a href="http://stackoverflow.com/questions/1397145/is-staruml-dead"&gt;suspected to be dead&lt;/a&gt;.&lt;br /&gt;The tool is downloaded quite heavily, but development seems to have been abandoned as of 2005 with a stable release version 5.0.&lt;br /&gt;&lt;br /&gt;But hey!! Just-a-minute, StarUML seems to have been rebooted as of (2010-July-19).&lt;br /&gt;Originally written in Delphi, looks like its being converted to an eclipse plug-in in java.&lt;br /&gt;Don't know how long it'll take to do the conversion though.&lt;br /&gt;Seems like there are two(?) developers working on it right now.&lt;br /&gt;Best of Luck to you. &lt;br /&gt;Anybody with experience in Eclipse plugins and Java wanna help?!!!&lt;br /&gt;&lt;br /&gt;&lt;div class="post-text"&gt;  Refer the project news and an announcement below:&lt;br /&gt;&lt;a href="http://sourceforge.net/news/?group_id=152825" rel="nofollow"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/staruml/forums/forum/510442/topic/3768161"&gt;Kick-off with Java-based StarUML Project&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/news/?group_id=152825" rel="nofollow"&gt;http://sourceforge.net/news/?group_id=152825&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-3872388703530993961?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/3872388703530993961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/staruml-is-dead-not-long-live-stars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3872388703530993961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3872388703530993961'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/staruml-is-dead-not-long-live-stars.html' title='StarUml is dead (NOT)!! Long Live the Stars!!'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2667982573026229208</id><published>2010-10-25T21:34:00.000-07:00</published><updated>2010-12-01T11:17:28.943-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delta-debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='andreas-zeller'/><title type='text'>Delta Debugging</title><content type='html'>&lt;u&gt;References:&lt;/u&gt; &lt;br /&gt;&lt;a href="http://delta.tigris.org/"&gt;Download Delta from delta.tigris.org&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&amp;amp;STORY=/www/story/03-17-2006/0004322465" target="_blank"&gt;&lt;i&gt;Why Programs Fail&lt;/i&gt; has won a Software Development Jolt Productivity Award!&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/eclipse/"&gt;Eclipse Plug-Ins - Software Engineering Chair (Prof. Zeller) - Saarland University&lt;/a&gt; &lt;br /&gt;&lt;a href="http://ddchange.martin-burger.de/wiki/moin.cgi/"&gt;DDchange - DDchangeWiki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Delta_Debugging"&gt;Delta Debugging article on Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/dd/"&gt;Delta Debugging articles by Andreas Zeller&lt;/a&gt;&lt;br /&gt;&lt;a href="http://delta.tigris.org/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/dd/"&gt;&lt;br /&gt;&lt;/a&gt; &lt;br /&gt;&lt;u&gt;See Also:&lt;/u&gt;&lt;br /&gt;&lt;a href="http://www.se-radio.net/2008/06/episode-101-andreas-zeller-on-debugging/"&gt;Episode 101: Podcast with Andreas Zeller on Debugging | Software Engineering Radio&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.se-radio.net/?s=andreas+zeller"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/zeller/Debugging-Debugging/Debugging-Debugging.mov"&gt;Video by Andreas Zeller on Debugging the Debugging activities&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=SzRqd4YeLlM"&gt;Video YouTube - Learning from Code History&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/softevo/"&gt;Mining Software Archives by Andreas Zeller&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/zeller/"&gt;About Andreas Zeller - S/W Engg. Chair at Saarland University&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/zeller/Debugging-Debugging/Debugging-Debugging.mov"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/zeller/Debugging-Debugging/Debugging-Debugging.mov"&gt;&lt;/a&gt;  &lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/publications/list/All"&gt;Publications by Prof. Andreas Zeller&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2667982573026229208?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2667982573026229208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/delta-debugging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2667982573026229208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2667982573026229208'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/delta-debugging.html' title='Delta Debugging'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7373271089650320458</id><published>2010-10-25T11:00:00.000-07:00</published><updated>2010-10-26T03:44:54.506-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stopped-working'/><category scheme='http://www.blogger.com/atom/ns#' term='delta-debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='techniques'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='WYNOT'/><category scheme='http://www.blogger.com/atom/ns#' term='andreas-zeller'/><title type='text'>Adv Debugging - My Program Worked Yesterday, but Not Today (WYNOT) by Andreas Zellar</title><content type='html'>Brief Notes of my understanding of on Delta Debugging as discussed in “&lt;a href="http://www.st.cs.uni-saarland.de/publications/files/zeller-esec-1999.pdf"&gt;Worked Yesterday, NOt Today&lt;/a&gt;" by &lt;a href="http://www.st.cs.uni-saarland.de/zeller/"&gt;Andreas Zeller&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;Note:&lt;/u&gt;&amp;nbsp; To understand the basic premise and constraints/approaches of Delta-Debugging referred to the pdf link to:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Analyse the tables/graphs carefully. (80% of the understanding comes from the example tables/graphs)&lt;/li&gt;&lt;li&gt; Connect the WYNOT talk with Andreas Zellar's &lt;a href="http://www.se-radio.net/2008/06/episode-101-andreas-zeller-on-debugging/"&gt;podcast&lt;/a&gt; on Software Engineering Radio.&lt;/li&gt;&lt;/ol&gt;&lt;u&gt;Problem: &lt;/u&gt;Yesterday's code works but Today's code doesn't. How do we find the change(s) which induces the test-case failure.&lt;br /&gt;&lt;u&gt;Context:&lt;/u&gt; Looking through the CVS history we find that N changes have been added since Yesterday.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Alternative:&lt;/u&gt; Normally we would need run the debugger to reproduce the failure and then try to collect information which induces it.&amp;nbsp; But this requires a programmer to interactively query the program state using a debugger.&lt;br /&gt;Can the debugging be automated without needing the programmer? &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Strategy:&lt;/u&gt; Delta Debugging using a test-case to reproduce the failure. &lt;br /&gt;&lt;u&gt;Data Method:&lt;/u&gt;&lt;br /&gt;Using the Scientific Method we can first try to reduce the Input Data in a binary search mechanism to isolate the minimum data which causes the failure.&lt;br /&gt;&lt;u&gt;Code Method:&lt;/u&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;u&gt;Simple Method:&lt;/u&gt; When failure is caused by a single change. We can try to isolate the change which causes the failure by doing a binary search through the change history. If there are N changes between Y(esterday) and T(oday) we test 'k/2'th change where 1 &amp;lt;= k &amp;lt;= N. We go on partitioning until we find a failure-free change. The latest failing change is the culprit. Complexity of this binary search is O (log N)&lt;/li&gt;&lt;li&gt;&lt;u&gt;Complex Method:&lt;/u&gt; When failure is caused by a combination of changes. Unfortunately it's Not always possible to use the Simple Method in the case when combination of changes cause the failure. In such a situation we need to identify at least 2 (or more) changes which together cause the failure.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Divide the change history into N changes&lt;/li&gt;&lt;li&gt;Group N changes into say 4 units i.e. N = N/4 * 4&lt;/li&gt;&lt;li&gt;Generate combinations with different units. &lt;/li&gt;&lt;li&gt;Test combinations for the failure.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Prune any units which don't participate in the failure at all.&lt;/li&gt;&lt;li&gt;Recursive above steps by sub-dividing the units above (quarters into octets and so on) until we finally we end up with minimal changes that reproduce the failure.&lt;/li&gt;&lt;/ul&gt;&lt;u&gt;Proposed Plans to Reduce to Reduce Computation and Avoid Inconsistent Configurations :&lt;/u&gt;&lt;br /&gt;a) Group related changes - changes on common date/file/variable are more likely to be related. Group them into a single unit to avoid dependency across units.&lt;br /&gt;b) Prune configurations when they're obvious dead-ends e.g. Where change dependency is chained all the way (Today) 10-&amp;gt;9-&amp;gt;8-&amp;gt;7-&amp;gt;6-&amp;gt;5-&amp;gt;4-&amp;gt;3-&amp;gt;2-&amp;gt;1 (Yesterday)&lt;br /&gt;c) Exclude changed code which is never executed.&lt;br /&gt;&lt;br /&gt;See Also:&lt;br /&gt;Pdf: &lt;a href="http://www.st.cs.uni-saarland.de/publications/files/zeller-esec-1999.pdf"&gt;"WYNOT - Worked Yesterday, NOt Today&lt;/a&gt;"&lt;br /&gt;&lt;a href="http://www.st.cs.uni-saarland.de/zeller/"&gt;Andreas Zeller&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.se-radio.net/2008/06/episode-101-andreas-zeller-on-debugging/"&gt;Podcast&lt;/a&gt; on Software Engineering Radio&lt;br /&gt;&lt;a href="http://techtalkies.blogspot.com/2010/10/delta-debugging.html"&gt;Delta Debugging&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7373271089650320458?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7373271089650320458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/my-program-worked-yesterday-but-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7373271089650320458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7373271089650320458'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/my-program-worked-yesterday-but-not.html' title='Adv Debugging - My Program Worked Yesterday, but Not Today (WYNOT) by Andreas Zellar'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7775278746090300078</id><published>2010-10-23T02:28:00.000-07:00</published><updated>2010-10-24T23:48:41.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='options'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='gdb'/><category scheme='http://www.blogger.com/atom/ns#' term='examples'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='cheat-sheet'/><title type='text'>Debugging with GDB's Cheat-Sheet of Commonly Used Options</title><content type='html'>&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/index.html"&gt;&lt;u&gt;&lt;b&gt;Gdb: &lt;/b&gt;&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Compilation.html#Compilation"&gt;Compiling a program for debugging:&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g++ -ggdb -O0 hello.cpp&lt;/span&gt;&amp;nbsp;&amp;nbsp; #&amp;nbsp;  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g++ -g3 -O0 hello.cpp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # -g3 compiles debugging info for preprocessor macros and no optimization&lt;br /&gt;&lt;br /&gt;Running a program under the debugger without arguments&lt;br /&gt;&lt;span style="font-style: italic;"&gt;$&amp;gt; gdb myProgram&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;  Setting the program arguments:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; a)&amp;nbsp; $&amp;gt; gdb --args myProgram&amp;nbsp; 10 20 30 40 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; b)&amp;nbsp; (gdb) start 10 20 30 40&amp;nbsp; # sets temporary breakpoint at main() and calls run.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; c)&amp;nbsp; (gdb) file myProgram&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) run&lt;/span&gt; &lt;span style="font-style: italic;"&gt;10 20 30 40&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; d)&amp;nbsp;&amp;nbsp; (gdb)&amp;nbsp; set args 10 20 30 40&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; (gdb) show args&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) run&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e) $&amp;gt; gdb myProgram core&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp; f) $&amp;gt; gdb -tui myProgram core&amp;nbsp; &lt;/span&gt;# start vim/emacs ide for debug session&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Input_002fOutput.html#Input_002fOutput"&gt;Redirect input/output&lt;/a&gt; of debugged program (inferior process):&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) file myProgram&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) run&amp;nbsp; &amp;lt; input.txt &amp;gt; myProgram.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Start debug session by Running a wrapper program to setup the environment for the debugged executable:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) set exec-wrapper env 'LD_PRELOAD=libtest.so'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) run&lt;br /&gt;&lt;br style="text-decoration: underline;" /&gt; &lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;  Quitting gdb:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a)&amp;nbsp; &lt;span style="font-style: italic;"&gt;quit&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;b) Ctrl-d&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;  Displaying source code:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; list&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp; displays 10 lines from current point in source code&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; list &lt;funcname&gt; &amp;nbsp;&amp;nbsp; # &amp;nbsp; displays 10 lines of the function&lt;br /&gt;&amp;nbsp;&amp;nbsp; list &lt;span style="font-weight: bold;"&gt;-&lt;/span&gt;10&amp;nbsp; &amp;nbsp;&amp;nbsp; # displays negative 10 lines i.e. above current point in source code.&lt;/funcname&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;   Printing information:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print iCount &lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; prints value of iCount variable&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print $eax &lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; prints value in eax register&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print my_func(10+2)&lt;/span&gt; &amp;nbsp;&amp;nbsp; # &amp;nbsp; prints the return value of myFunc(12)  &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf "%s\n" myPtr &lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; prints the string pointed to by myPtr&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Change variables:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;set&amp;nbsp; iCount=100&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Control-flow statements:&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;   Setting a breakpoint:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break main&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # &amp;nbsp; set breakpoint on a function&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break&amp;nbsp; myfile.cpp:10 &amp;nbsp;&amp;nbsp; # &amp;nbsp; set breakpoint on Filename:Linenumber&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Attach a conditional to a bnum where bnum is a &lt;span style="font-style: italic;"&gt;breakpoint, watchpoint or catchpoint&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cond bnum x != 0&lt;bnum&gt; &lt;boolean-expression&gt;&lt;/boolean-expression&gt;&lt;/bnum&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) step&amp;nbsp; [count]&lt;/span&gt;&amp;nbsp; # &amp;nbsp; step to next source level statement (includes entering into a function call)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) stepi&amp;nbsp; [count]&lt;/span&gt;&amp;nbsp; # &amp;nbsp; step to next machine level instruction (includes step-into a function call)&lt;br /&gt;&amp;nbsp;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; (gdb) next &amp;nbsp; [count]&amp;nbsp;&lt;/span&gt; # &amp;nbsp; step to next source level statement (stepping over a function call)&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt; &amp;nbsp;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; (gdb) nexti &amp;nbsp; [count]&amp;nbsp;&lt;/span&gt; # &amp;nbsp; step to next machine level instruction (stepping over a function call)&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Useful for reaching a function or skipping over a loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;(gdb) until [location]&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # continue execution until you reach the location. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) continue&amp;nbsp; [ignore-count]&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # continue execution with optional count to ignore a breakpoint&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) &lt;span style="font-style: italic;"&gt;call&amp;nbsp; add(10,20)&lt;/span&gt;&amp;nbsp;&amp;nbsp;  # call any function from gdb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb)&lt;span style="font-style: italic;"&gt; finish&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; # finish the current function and stop in calling function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) &lt;span style="font-style: italic;"&gt;return&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # force return to calling function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) &lt;span style="font-style: italic;"&gt;advance myfunc &amp;nbsp;&lt;/span&gt;  # jump to an &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Specify-Location.html#Specify-Location"&gt;arbitrary location&lt;/a&gt; in the program&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Autocomplete in gdb: (Press tab at end of word or alt+?)&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) break m(TAB&lt;tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;i&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/i&gt;)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) br 'myFun(TAB)&lt;tab&gt;&lt;tab&gt;&lt;/tab&gt;&lt;/tab&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) br 'myFun(Alt+?)&lt;alt&gt;&lt;alt&gt;&lt;/alt&gt;&lt;/alt&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) print 'mystruct.my&lt;/span&gt;&lt;span style="font-style: italic;"&gt;(Alt+?)&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;alt&gt;&lt;/alt&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;tab&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/tab&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; displays all members of mystruct&lt;br /&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Break-Commands.html#Break-Commands"&gt;&lt;span style="text-decoration: underline;"&gt;Break Command Lists:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; a)break 403 if x&amp;gt;0&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; commands&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; silent&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; printf "x is %d\n", x&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) &lt;span style="font-style: italic;"&gt;break myFunction&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; commands&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; silent&lt;/span&gt;&lt;span style="font-family: monospace; font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;set x = y + 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;  &lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;Stack frame operations:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; frame&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#display brief description of currently selected stack frame&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info frame&lt;/span&gt; &lt;span style="font-style: italic;"&gt;[addr]&lt;/span&gt; &amp;nbsp; #verbose description about stack frame&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; frame n&amp;nbsp;&amp;nbsp;&amp;nbsp; # select frame by number&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; frame addr&amp;nbsp; #&amp;nbsp; useful to select bug-corrupted frame by address rather than frame number&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;up (-)N&amp;nbsp;&amp;nbsp;&amp;nbsp; # move up by (-)N stack frames&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; down&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt; (-)N &amp;nbsp;&amp;nbsp;  # move down to (-)N stack frames downward&lt;span style="font-style: italic;"&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; backtrace [full (-)N] &lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; show function call-stack upto N depth&lt;span style="font-style: italic;"&gt;&lt;/span&gt;, Full shows locals also for current thread&lt;br /&gt;&lt;kbd style="font-style: italic;"&gt;&amp;nbsp; &lt;/kbd&gt;&lt;span style="font-style: italic;"&gt;thread apply all backtrace [full&lt;/span&gt;&amp;nbsp;  (-)N] # displays backtrace for all threads in a multi-threaded application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info args&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # display arguments of current stack frame&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info locals&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # display in-scope (static/auto) variables of current stack frame.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info catch&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # display info on exception handlers in current stack-frame&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;Automatic display of info:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info display&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;# lists the various auto displays&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display /fmt expression&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; disable|enable display dnum&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # forces output of all the enabled display-expressions&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration: underline;"&gt;Note:&lt;/span&gt; GDB automatically disables display of a local variable when it goes out of scope.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Examining Memory:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) (gdb) info line main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Line 9 of "hi.cpp" starts at pc 0x000c and ends at 0x0100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;  (gdb) &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Machine-Code.html#Machine-Code"&gt;disassemble&lt;/a&gt; /m 0x000c, &lt;span style="font-style: italic;"&gt;0x0100&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;  # /m = &lt;/span&gt;mixed source+assembly, /r = raw machine instructions&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br style="font-style: italic;" /&gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;b) &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;# n=Count, f=format (`&lt;samp&gt;&lt;span class="samp"&gt;x&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;d&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;u&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;o&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;t&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;a&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;c&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;f&lt;/span&gt;&lt;/samp&gt;', `&lt;samp&gt;&lt;span class="samp"&gt;s&lt;/span&gt;&lt;/samp&gt;'), units=(&lt;span style="font-weight: bold;"&gt;b&lt;/span&gt;yte=1, &lt;span style="font-weight: bold;"&gt;h&lt;/span&gt;alfword=2, &lt;span style="font-weight: bold;"&gt;w&lt;/span&gt;ord=4, &lt;span style="font-weight: bold;"&gt;g&lt;/span&gt;iant=8)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x /10s1 &amp;amp;myarray&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # print 10 bytes string of myarray&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Attach.html#Attach"&gt;Attaching to a running process&lt;/a&gt; by PID:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;attach 1234&lt;/span&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # attaches to external process by PID and stops it&amp;nbsp;  &lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; break myBuggyFunction&lt;/span&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp; # set break point&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &lt;/span&gt;&amp;nbsp;&amp;nbsp;  # continue execution of stopped process&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; detach &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; # gdb detaches from the running process. Can run/attach another process from hereon.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Kill-Process.html#Kill-Process"&gt;Kill the debugee process&lt;/a&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="text-decoration: underline;"&gt;Note:&lt;/span&gt;&amp;nbsp; a) If you exit &lt;/span&gt;&lt;span class="sc" style="font-style: italic;"&gt;gdb&lt;/span&gt;&lt;span style="font-style: italic;"&gt; while you have an attached process, you detach that process.  &lt;br /&gt;b) If you use the &lt;/span&gt;&lt;code style="font-style: italic;"&gt;run&lt;/code&gt;&lt;span style="font-style: italic;"&gt; command (while attached), you kill that process.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;c) &lt;/span&gt;By default, &lt;/span&gt;&lt;span class="sc" style="font-style: italic;"&gt;gdb&lt;/span&gt;&lt;span style="font-style: italic;"&gt; asks for confirmation if you try to do either of these things&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;kill&amp;nbsp;&amp;nbsp; &lt;/span&gt;# useful for a) recompile while retaining breakpoints b) switch to debugging the proc's core dump&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;a href="http://www.delorie.com/gnu/docs/gdb/gdb_8.html"&gt;Choose Files&lt;/a&gt;:&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;br /&gt;1) Take symbols from a.syms, execute a.out, use core, and attach to pid 1234&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gdb -symbols a.syms&amp;nbsp;&amp;nbsp; -exec a.out&amp;nbsp;&amp;nbsp; -core core&amp;nbsp;&amp;nbsp;&amp;nbsp; -pid 1234&lt;br /&gt;&lt;/span&gt;2) Take symbol-table from the executable, use core and attach to pid 1234&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gdb -se a.out &lt;/span&gt;&lt;span style="font-style: italic;"&gt;-core core -pid 1234&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;3) Standalone gdb commands to choose symbol-file, exec-file , core-file:&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; file progAndsym.out &lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; choose both symbol and executable files&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exec-file prog.out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbol-file&amp;nbsp; symbols.sym&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; core-file core.1234&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt; &lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Help.html#Help"&gt;Gdb help&lt;/a&gt;:&lt;br /&gt;&lt;/code&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) help command&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; b) apropos search-term&amp;nbsp;&amp;nbsp; # similar to apropos command to search based on search terms&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) info&amp;nbsp; # help on program being debugged &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; help info&amp;nbsp; #see what all commands are possible for info &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) set radix 10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; show radix &amp;nbsp;&amp;nbsp; # &amp;nbsp; display current gdb settings for radix&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; show&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; # &amp;nbsp; by default displays all current gdb settings &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; help show &amp;nbsp;&amp;nbsp; # &amp;nbsp; see what all commands are possible for show&lt;/span&gt;&lt;code&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="text-decoration: underline;"&gt; Saving GDB command history:&lt;/span&gt;&lt;/code&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set history filename fname&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set history save on|off &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;  Running shell or make commands:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) shell ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) make clean&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make all&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;  Logging gdb output:&lt;/span&gt;&lt;br /&gt;&lt;code style="font-style: italic;"&gt;&amp;nbsp; set logging on|off&lt;/code&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set logging file mygdb.log&lt;/span&gt;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-style: italic;"&gt;set logging overwrite on|off&lt;/span&gt; &amp;nbsp;&amp;nbsp; # &amp;nbsp; set append on/off&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set logging redirect on|off&lt;/span&gt; &amp;nbsp;&amp;nbsp; # &amp;nbsp; redirect output to logfile AND console&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show logging &lt;/span&gt;&amp;nbsp;&amp;nbsp; # &amp;nbsp; show current logging settings&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Get/Set GDB settings:&lt;/span&gt; # better to set/get environment variables through .profile/.login files.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) cd directory&amp;nbsp;&amp;nbsp;&amp;nbsp; # set current directory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pwd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) info proc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # displays current directory of debugged process at any time&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) (gdb) show paths&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) path directory&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) (gdb) show environment [varname]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (gdb) set environment varname [=value]&amp;nbsp;&amp;nbsp; &lt;/span&gt;#&amp;nbsp; set value as null if optinal value is missing&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;  (gdb) unset env varname&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7775278746090300078?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7775278746090300078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/debugging-with-gdbs-cheat-sheet-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7775278746090300078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7775278746090300078'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/debugging-with-gdbs-cheat-sheet-of.html' title='Debugging with GDB&apos;s Cheat-Sheet of Commonly Used Options'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6503181802477374426</id><published>2010-10-19T11:16:00.000-07:00</published><updated>2010-12-01T11:17:58.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stripped-binary'/><category scheme='http://www.blogger.com/atom/ns#' term='core-dump'/><category scheme='http://www.blogger.com/atom/ns#' term='crash-dump-analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='stacktrace'/><category scheme='http://www.blogger.com/atom/ns#' term='backtrace'/><title type='text'>Howto Debug a Core-Dump/Crash-Dump for a stripped binary from a production machine</title><content type='html'>&lt;u&gt;&lt;b&gt;Core dump Analysis:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;span class="plainlinksneverexpand"&gt;&lt;code&gt;&lt;a class="external text" href="http://www.kernel.org/doc/man-pages/online/pages/man5/core.5.html" rel="nofollow"&gt;core(5)&lt;/a&gt;&lt;/code&gt;&lt;/span&gt;– (Linux Programmer's Manual – File Formats)&lt;a href="http://en.wikipedia.org/wiki/Core_dump"&gt;&lt;br /&gt;Core Dump (Wikipedia)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_1391137326"&gt;Me&lt;/a&gt;&lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Memory_dump" title="Memory dump"&gt;mory dump (Wikipedia)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Call_stack"&gt;CallStack (Wikipedia)&lt;/a&gt;, &lt;br /&gt;&lt;a class="external text" href="http://www.rt-embedded.com/blog/archives/enabling-core-dumps-in-embedded-systems/" rel="nofollow"&gt;Enabling core dumps in embedded systems&lt;/a&gt;, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.drdobbs.com/tools/185300443"&gt;Dr Dobbs - Postmortem Debugging&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.drdobbs.com/architecture-and-design/227900186;jsessionid=IBM3DLOPFBN0HQE1GHRSKH4ATMY32JVN?pgno=2"&gt;Dr Dobbs - Post-Mortem Debugging Revisited&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Core_dump"&gt;Stackoverflow article (with comments) on core dump analysis on Solaris,&lt;/a&gt;&lt;a href="http://www.blogger.com/goog_1972548689"&gt; &lt;/a&gt;&lt;br /&gt;&lt;a href="http://sourceware.org/gdb/download/onlinedocs/gdb/Backtrace.html#Backtrace"&gt;Backtrace commands in GDB documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gentoo.org/proj/en/qa/backtraces.xml"&gt;Howto generate a Backtrace for Bug Reporting by Testers (from Gentoo doc)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Stack_buffer_overflow" title="Stack buffer overflow"&gt;Stack buffer overflow (Wikipedia)&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Segmentation_fault" title="Segmentation fault"&gt;Segmentation fault&lt;/a&gt; (SIG_SEGV, SIG_BUS)&lt;br /&gt;&lt;a class="external text" href="http://www.faqs.org/qa/qa-673.html" rel="nofollow"&gt;A FAQ: User contributed answers regarding the definition of a segmentation fault&lt;/a&gt;,&lt;br /&gt;&lt;a class="external text" href="http://c-faq.com/null/null1.html" rel="nofollow"&gt;A "null pointer" explained&lt;/a&gt;,&lt;br /&gt;&lt;a class="external text" href="http://www.rt-embedded.com/blog/archives/resolving-crashes-and-segmentation-faults/" rel="nofollow"&gt;Answer to: NULL is guaranteed to be 0, but the null pointer is not?&lt;br /&gt;Resolving crashes and segmentation faults&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Call_stack"&gt;What is the difference between a segmentation fault and a stack overflow?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Windows:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;a class="external text" href="http://www.dumpanalysis.org/" rel="nofollow"&gt;Crash dump analysis website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Books:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;cite&gt;Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems (by &lt;/cite&gt;David J. Agans)&lt;br /&gt;&lt;cite&gt;Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code (by &lt;/cite&gt;Bill Blunden)&lt;br /&gt;&lt;cite&gt;Debugging by Thinking&amp;nbsp;: A Multidisciplinary Approach&lt;/cite&gt; (by Robert C. Metzger&lt;cite&gt;)&lt;/cite&gt;&lt;br /&gt;&lt;cite&gt;Memory Dump Analysis Anthology, Volume 1&lt;/cite&gt;&lt;cite&gt;&amp;nbsp;&lt;/cite&gt; &lt;cite&gt;&lt;/cite&gt;(by Dmitry Vostokov)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6503181802477374426?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6503181802477374426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-debug-core-dump-for-stripped.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6503181802477374426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6503181802477374426'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-debug-core-dump-for-stripped.html' title='Howto Debug a Core-Dump/Crash-Dump for a stripped binary from a production machine'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6885632109554249577</id><published>2010-10-12T05:31:00.000-07:00</published><updated>2010-12-31T14:47:34.768-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='craftsman'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='long-road'/><category scheme='http://www.blogger.com/atom/ns#' term='craft'/><category scheme='http://www.blogger.com/atom/ns#' term='in-depth'/><category scheme='http://www.blogger.com/atom/ns#' term='apprenticeship'/><category scheme='http://www.blogger.com/atom/ns#' term='path'/><category scheme='http://www.blogger.com/atom/ns#' term='step-by-step'/><category scheme='http://www.blogger.com/atom/ns#' term='apprenticeship-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='insight'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='mastery'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Steps towards Technical Mastery</title><content type='html'>How do you know if you've become a Master in your field?&lt;br /&gt;&lt;br /&gt;Is there any method to learn things quickly in any field?&lt;br /&gt;How do you avoid stagnation and mediocrity after becoming competent in your field?&lt;br /&gt;How do you become a Master?&lt;br /&gt;&lt;br /&gt;Take software for example: How &lt;b&gt;&lt;u&gt;do&lt;/u&gt;&lt;/b&gt; you become a Master in it?&lt;br /&gt;&lt;br /&gt;These are exactly the questions which have been pushing me to seek answers.&lt;br /&gt;Well now that I've got some kind of grip on this quest I'm able to give some of the answers.&lt;br /&gt;Or at the very least point the way.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Short Answer&lt;/i&gt;: You'll know it when you get there!!&lt;br /&gt;&lt;i&gt;Long Answer: &lt;/i&gt;You'll see the Sign-Posts as you move towards achieving Mastery. Read on for the gory details.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;If you look around you'll see that every profession or hobby has its levels of competence:&lt;br /&gt;&lt;u&gt;Sport:&lt;/u&gt; &lt;i&gt;Club-side, Regional, National, Olympian&lt;/i&gt;&lt;br /&gt;&lt;u&gt;Writing:&lt;/u&gt;&amp;nbsp;&lt;i&gt; Beginner, Intermediate, Advanced, Master.&lt;/i&gt;&lt;br /&gt;&lt;u&gt;Martial-Arts:&lt;/u&gt;&amp;nbsp; &lt;i&gt;White-Belt, Brown-Belt, Black-Belt&lt;u&gt; &lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;Other Fields:&lt;/u&gt; Other classifications&lt;/i&gt;&lt;br /&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;&lt;/b&gt;&lt;/u&gt;The key is to know where you are and how to get to your goal.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Levels of Competence:&lt;/b&gt;&lt;/u&gt;&amp;nbsp; These levels seem to hold true for learning any craft.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Beginner&lt;/b&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Unconscious + Incompetent,&lt;/li&gt;&lt;li&gt;&lt;b&gt; Intermediate&lt;/b&gt;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Conscious + Incompetent, &lt;/li&gt;&lt;li&gt;&lt;b&gt; Advanced&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Conscious +&amp;nbsp;&amp;nbsp; Competent, &lt;/li&gt;&lt;li&gt;&lt;b&gt; Master&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unconscious +&amp;nbsp;&amp;nbsp; Competent&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;Thanks to Bob Bly's post:&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://bly.com/blog/general/the-4-levels-of-marketing-competence/"&gt;The 4 levels of Marketing Competence&lt;/a&gt; where he talks about the same things applied in Marketing&lt;/i&gt;&lt;i&gt;.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's interesting to note that a master grows from Unconsciously Incompetent to Unconsciously Competent.&lt;br /&gt;His insight becomes as unconscious as the beginner's lack of "sight". It has become a part of his nature.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Software:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;The Software Industry too (like other arts and industries) is recognizing these levels: &lt;br /&gt;&lt;i&gt;Apprentice, Journeyman, Master-Craftsman.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Critical Steps to Mastery&lt;/b&gt;&lt;/u&gt;:&lt;br /&gt;The book&lt;i&gt;, Apprenticeship Patterns - Guidance for the Aspiring Software Craftsman&lt;/i&gt;,&lt;br /&gt;talks about the path from Apprentice to Journey-Man, &lt;i&gt;the most critical stage in your path to Mastery.&lt;/i&gt;&lt;br /&gt;Written in simple and conversational style it does 2 important things:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Describes&lt;i&gt; &lt;/i&gt;this journey from Apprentice to Journey-Man and,&lt;/li&gt;&lt;li&gt;Collects the real-life pragmatic Experience into Learning Patterns.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;u&gt;&lt;b&gt;Applying the Patterns At Work And Play:&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;These Patterns are meant to guide people from beginner to higher levels.&lt;br /&gt;This book uses a general learning-based approach and gives advice on usage of the Patterns.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Combinations of Patterns:&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;To take a non-software example:&lt;br /&gt;In Chess the real value of patterns lies in using them in combinations.&lt;br /&gt;To play at a Grand-Master level you first need to know:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Basics &lt;/i&gt;- Rules, dos and don't s.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Openings&lt;/i&gt; - individual patterns which help to bring all the pieces into play for both attack and defense.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Middle-Game&lt;/i&gt; - use combinations of Patterns to get a controlling position for the final assault e.g. Outposts, Forks and Pinned-Pieces&lt;/li&gt;&lt;li&gt;&lt;i&gt;End-Game&lt;/i&gt; - finish the game in attack or defense&lt;/li&gt;&lt;/ul&gt;Similarly &lt;i&gt;Apprenticeship Patterns&lt;/i&gt; shows how you  can integrate different learning patterns into powerful combinations  which double-triple the impact when used individually. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;How and Why this approach works:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;The  Principle of 3-D vision,&amp;nbsp; says that you get 2 slightly different views  of the same object from your eyes. Your brain then uses these  different views to generate a perception of depth i.e. 3-D Vision.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_yoTID-huQvo/TLRrPPHPjJI/AAAAAAAAAEY/JpFcwEVlu88/s1600/3D+Scanning+220px-LaserPrinciple.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/_yoTID-huQvo/TLRrPPHPjJI/AAAAAAAAAEY/JpFcwEVlu88/s320/3D+Scanning+220px-LaserPrinciple.png" width="320" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_yoTID-huQvo/TLRrWOHmLPI/AAAAAAAAAEc/BwwIKzYEPV8/s1600/3D+Scanning+305px-Laserprofilometer_EN.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_yoTID-huQvo/TLRrWOHmLPI/AAAAAAAAAEc/BwwIKzYEPV8/s320/3D+Scanning+305px-Laserprofilometer_EN.svg.png" width="281" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Like the distance between our Eyes - the key intention being - to increase the variety of feedback on the subject. The ideal approach would be to use a &lt;a href="http://en.wikipedia.org/wiki/File:LaserPrinciple.png"&gt;"3D Scanner"&lt;/a&gt; i.e. view the different facets of the subject by incrementally sampling it from slightly different angles. These pictures from Wikipedia illustrate the analogy.&lt;br /&gt;&lt;br /&gt;Doing this however takes lots of time and effort. So a more pragmatic approach is to get enough resolution as required. Filling in the gaps can be done as and when required. Essentially this &lt;i&gt;can &lt;/i&gt;give you a High-Definition 3D Vision - a must to achieve Mastery in your field.&lt;br /&gt;&lt;br /&gt;Basically, you can use these Learning Patterns to setup things so as to get many slightly different angles on the same subject.&lt;br /&gt;Come to think about it this must be what is known as the in-depth insight of a Master.&lt;br /&gt;Where he sees the multi-faceted nature of the subject and intuitive ability to choose the best path from an infinity of possible ways.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;0) The Podcast that started it all &lt;a href="http://www.se-radio.net/2009/11/episode-150-software-craftsmanship-with-bob-martin/"&gt;SE-Radio Podcast Interview with Bob Martin on Software Craftsmanship&lt;/a&gt;&lt;br /&gt;1) You can read the online version of &lt;i&gt;Apprenticeship Patterns&lt;/i&gt; here&lt;i&gt; -&amp;gt; &lt;/i&gt;&lt;i&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/"&gt;Click Here&lt;/a&gt;.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;You can interact with other readers and the authors by leaving your comments on the website.&lt;br /&gt;You need to register there to get a user-name for your comments.&lt;br /&gt;2) You can view my book review for Apprenticeship Patterns here -&amp;gt; &lt;a href="http://the-scroll-keeper.blogspot.com/2010/10/book-review-apprenticeship-patterns.html"&gt;Click Here&lt;/a&gt; &lt;br /&gt;3) It's a long road to mastery and most of us are still at the Apprentice/Journey-Man level.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; To know more about the higher aspects of craftsmanship see the book:&lt;br /&gt;&lt;a aiotarget="false" aiotitle="Software Craftsmanship:The New Imperative" href="http://www.amazon.com/Software-Craftsmanship-Imperative-Pete-McBreen/dp/0201733862"&gt; Software Craftsmanship:The New Imperative&lt;/a&gt; by &lt;a href="http://www.mcbreen.ab.ca/consulting/BioPeteMcBreen.html"&gt;Pete McBreen&lt;/a&gt;.&lt;br /&gt;4) Found this article in my bookmarks on &lt;span class="gd"&gt;&lt;a href="http://www.cs.wustl.edu/%7Eschmidt/cs251/learning.html"&gt;Patterns of Learning&lt;/a&gt; by Douglas E. Schmidt which got me started on the chess analogy.&lt;/span&gt;&lt;br /&gt;5) Thanks to Wikipedia for the pictures on 3D scanning and great wiki on 3D Scanner technology &lt;a href="http://en.wikipedia.org/wiki/3D_scanner"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Readers Section:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;You can use the buttons below for sharing this post with your friends.&lt;br /&gt;Please give your comments:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What did you like/dislike about this article? Any suggestions are welcome. &lt;/li&gt;&lt;li&gt;What were the defining moments of YOUR journey towards mastery?&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6885632109554249577?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6885632109554249577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/steps-towards-technical-mastery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6885632109554249577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6885632109554249577'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/steps-towards-technical-mastery.html' title='Steps towards Technical Mastery'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yoTID-huQvo/TLRrPPHPjJI/AAAAAAAAAEY/JpFcwEVlu88/s72-c/3D+Scanning+220px-LaserPrinciple.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-4003507330884530545</id><published>2010-10-07T08:04:00.000-07:00</published><updated>2010-10-09T11:19:06.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='format'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='basic'/><title type='text'>Basic Template with Ingredients for a Technical Blog</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;A good Technical Blog Post follows the Law Of Retention: &lt;b&gt;&lt;i&gt;repetition helps Retention&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;Some Questions on your Blog Post:&lt;/u&gt; &lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Is your blog a frequently used resource for yourself and your readers?&amp;nbsp;&lt;/li&gt;&lt;li&gt;Does it grow as you learn more - addressing different levels of questions?&lt;/li&gt;&lt;li&gt;Is it short and informative while being complete and self-contained?&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Is your blog addressing &lt;/b&gt;&lt;b&gt;The Readers Perspective? &lt;/b&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;What's in it for a Reader?&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tell 'em what you're going to Tell 'em. &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tell 'em.&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tell 'em what you just told 'em&lt;/b&gt;&lt;b&gt;.&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Further info.&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sample Blog Format:&lt;/span&gt; The final post may contain the following info in order of importance: &lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold;"&gt;Why:&lt;/span&gt;&lt;/div&gt;&lt;ol style="margin-left: 40px;"&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Rationale:&lt;/span&gt; How it will help the reader by reading this topic.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Summary:&lt;/span&gt; What this blog post talks about.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Audience:&lt;/span&gt; Type of people this post is meant for (general, students, professionals, admin, programmer)&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold;"&gt;What:&lt;/span&gt;&lt;/div&gt;&lt;ol style="margin-left: 40px;"&gt;&lt;li&gt;Screen-shots/diagrams/Photos/Videos which display the things in a tangible way.&lt;/li&gt;&lt;li&gt;Describe the basic "things" that are involved in the topic&lt;/li&gt;&lt;li&gt;Describe the useful/important inter-relations between the things&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold;"&gt;How:&lt;/span&gt; &lt;/div&gt;&lt;ol style="margin-left: 40px;"&gt;&lt;li&gt;howto configure these relations to get the necessary output&lt;/li&gt;&lt;li&gt;FAQs on common problems and solutions&lt;/li&gt;&lt;li&gt;How things work together (collected from various sources - blogs, forums, articles, books on the topic)&lt;/li&gt;&lt;li&gt;Source code snippets illustrating your ideas.&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold;"&gt;Reference Links:&lt;/span&gt; (Braindump of your browsing sessions.)&lt;/div&gt;&lt;ol style="margin-left: 40px;"&gt;&lt;li&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Introductions:&lt;/span&gt; Download sites, Tutorials, Blogs.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Detailed Info:&lt;/span&gt; Forum posts, Settings/Configuration notes, faqs, Howtos&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;References:&lt;/span&gt; Guides, Reference books with more in breadth and depth on different aspects of the topic.&lt;/li&gt;&lt;/ol&gt;&lt;u&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/u&gt; Apprenticeship Patterns &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch05.html#record_what_you_learn"&gt;"Record-What-You-Learn"&lt;/a&gt; and &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch05.html#share_what_you_learn"&gt;"Share-What-You-Learn"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-4003507330884530545?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/4003507330884530545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/basic-format-for-good-self-explanatory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4003507330884530545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4003507330884530545'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/basic-format-for-good-self-explanatory.html' title='Basic Template with Ingredients for a Technical Blog'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2900480641756885183</id><published>2010-10-06T13:55:00.000-07:00</published><updated>2010-10-17T02:12:52.131-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collection'/><category scheme='http://www.blogger.com/atom/ns#' term='stackoverflow'/><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><category scheme='http://www.blogger.com/atom/ns#' term='understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='techniques'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='code-reading'/><category scheme='http://www.blogger.com/atom/ns#' term='maintainance'/><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='strategies'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='source-code'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='coding-horror'/><title type='text'>Understand Source Code by Reading Code and Refactoring for Maintaining Large Projects</title><content type='html'>This list consists of one-liner tips to be used for easy lookup and reference.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/2006/09/when-understanding-means-rewriting.html" style="font-weight: bold;"&gt;Rewriting Code for Better Understanding&lt;/a&gt; (Coding Horror)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;What I cannot create, I do not understand.  [Richard Feynman]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;"What I do not create, I do not understand."&lt;span class="comments-post" style="margin-left: 20px;"&gt;[Chris]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;"It's easier to understand 600 tables than 100,000 lines of code." [PaulC on comp.databases.theory/2005]&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Create a new project with blocks of code copied from old code. Refactor to reduce "old code smell"&lt;/li&gt;&lt;li&gt;Start refactoring by adding small tests to better understand code and act as regression tests.&lt;/li&gt;&lt;li&gt;Just scan through huge amounts of code till it starts making sense - "understand by constant exposure".&lt;/li&gt;&lt;li&gt;Create a text file to capture your understanding - briefly describe how the component works, realtions to other components, what it persists, its states, and source browsing/debugging tips you found useful.&lt;/li&gt;&lt;li&gt;Manually reformat a copy of the code - white space, and indented as per your personal style.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;References:&lt;/span&gt; &lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0131177052/"&gt;&lt;span style="font-style: italic;"&gt;Working Effectively with Legacy Code&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1558606394/"&gt;&lt;span style="font-style: italic;"&gt;Object Oriented Reengineering Patterns&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672"&gt;Refactoring: Improving the Design of Existing Code&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://www.codinghorror.com/blog/2006/06/the-noble-art-of-maintenance-programming.html" style="font-weight: bold;"&gt;Noble Art of Maintainance Programming (Coding Horror)&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Daily WTF is &lt;i&gt;"a very enjoyable web site where people relate short  stories about the crazy code they've worked with, usually with examples."&lt;/i&gt; (&lt;a href="http://thedailywtf.com/" rel="nofollow"&gt;http://thedailywtf.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://tamspalm.tamoggemon.com/2006/06/16/on-taking-over-foregin-code/"&gt;On taking over foreign code&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/39374/code-reading-problem" style="font-weight: bold;"&gt;Tips for Increasing Code Readability (StackOverFlow)&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Top-Down: Look for indicative class names and modules&lt;/li&gt;&lt;li&gt;Bottom-Up: Navigate to a feature implementation and browse/annotate to build standalone chunks of knowledge.&lt;/li&gt;&lt;li&gt;Use whitespace for increasing code-readability&lt;/li&gt;&lt;li&gt;Scan the system packages and classes looking for entities you can identify.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.amazon.com/dp/0321413091/?tag=stackoverfl08-20" style="font-weight: bold;"&gt;References:&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://rads.stackoverflow.com/amzn/click/0201799405" rel="nofollow"&gt;Code Reading: The Open Source Perspective&lt;/a&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://rads.stackoverflow.com/amzn/click/0321166078" rel="nofollow"&gt;Code Quality: The Open Source Perspective&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/dp/0321413091/?tag=stackoverfl08-20" style="font-style: italic;"&gt;Implementation Patterns by Kent Beck&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/297312/any-tips-for-reading-code" style="font-weight: bold;"&gt;Some tips from StackOverflow&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Debug to understand basic data/control flows in source. &lt;/li&gt;&lt;li&gt; Add Logging/print statements to source to understand basic data/control flows in source.&lt;/li&gt;&lt;li&gt; Write unit tests for the code&lt;/li&gt;&lt;li&gt; Annotate a printout of the source.&lt;/li&gt;&lt;li&gt; Do code walk-through with someone knows how the code works.&lt;/li&gt;&lt;li&gt; Code review &lt;/li&gt;&lt;li&gt; Fixing bugs in source slowly exposes you to small parts of the whole source.&lt;/li&gt;&lt;li&gt;Going through bug histories will give you background info esp. on the "smelly parts" of source.&lt;/li&gt;&lt;li&gt; Refactor code to improve code quality and testability esp. regression tests.&lt;/li&gt;&lt;li&gt; Add annotations to a copy of the code as you push the edges of your ignorance.&lt;/li&gt;&lt;li&gt;Reverse engineer source to design document (needs heavy manual editing)&lt;/li&gt;&lt;li&gt; Get familiar with language idioms to quickly understand source code.&lt;/li&gt;&lt;li&gt;Make a paper Diagram of the application to understand flow and dependencies&lt;/li&gt;&lt;/ul&gt;This is a list of good tips para-phrased from Coding Horror and  StackOverflow (linked) blogs and many user suggestions scattered across  some of the useful comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2900480641756885183?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2900480641756885183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/understand-source-code-by-reading-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2900480641756885183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2900480641756885183'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/understand-source-code-by-reading-code.html' title='Understand Source Code by Reading Code and Refactoring for Maintaining Large Projects'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-391794990401178298</id><published>2010-10-06T13:11:00.000-07:00</published><updated>2010-10-28T02:15:53.039-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='format'/><category scheme='http://www.blogger.com/atom/ns#' term='useful'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='improve'/><title type='text'>Howto Start a Blog, Get Useful Blogging Ideas, Add Good Content, Reduce Effort with Tools and Keep Blogging</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;dl style="font-weight: bold;"&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;Avoid Bloggers-Block: &lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;After the initial burst you can't think of what to say - so the blog languishes.&lt;/dd&gt;&lt;dd&gt;A blog is short form for web-log i.e. a kind of "A log entry in your Personal Diary".&lt;/dd&gt;&lt;dd&gt;It is not meant to be a book which you publish after many many rewrites and deep thought.&lt;/dd&gt;&lt;dd&gt;Some people even have one-liners or even other peoples blogs as blog-entries.&lt;/dd&gt;&lt;dt&gt; &lt;/dt&gt;&lt;/dl&gt;&lt;span style="font-weight: bold;"&gt;Find an Idea/Topic:&lt;/span&gt;&lt;br /&gt;&lt;dl&gt;&lt;dd&gt;Your idea becomes self sustaining if it's useful or matters to you or your friends. &lt;/dd&gt;&lt;dd&gt;You can organise your self-learning or teaching notes as blogs. Collect questions from people around you or from forum newbies. &amp;nbsp;This way you create more knowledge for yourself and write excellent blog-posts that are useful to others. &lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;&lt;span style="font-weight: bold;"&gt;Publish or Perish:&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Publish as soon as you have a line of text on your blogs.&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Drafts are the best way to kill blogs.&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Use them only when you require to do some basic tidying before posting. &lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Even this can be done later followed by a republish.&lt;/a&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;&lt;span style="font-weight: bold;"&gt;Blog Incrementally&lt;/span&gt;&lt;a href="" name="more"&gt;:&lt;/a&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Paste your current state into the blog (like saving a session of your mind a.k.a. &lt;span style="font-style: italic;"&gt;brain-dump&lt;/span&gt;).&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Every time some find some new useful information you just paste that into your blog-post.&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Use a multiple clips clipboard manager to copy all the info you need.&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;The post should be written in logical manner with least gaps in the reasoning or steps&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Any good links that you open in Firefox tabs can be saved for: &lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) Further investigation &lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) Future use&lt;/a&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;&lt;span style="font-weight: bold;"&gt;Reduce Blogging Effort:&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Ideally follow 80-20% rule.&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Spend 80% time spent on gathering material.&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Spend 20% time spent on filling in gaps and reordering/rewriting post.  &lt;/a&gt;&lt;/dd&gt;&lt;dd style="font-style: italic;"&gt;&lt;a href="" name="more"&gt;See Tools section for more details&lt;/a&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;&lt;span style="font-weight: bold;"&gt;Tools:&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="" name="more"&gt;Currently I'm trying to reduce editing/formatting effort/time by using the following tools:&lt;/a&gt;&lt;/dd&gt;&lt;dd&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;a href="" name="more"&gt;Blog Upload: &lt;/a&gt;&lt;/span&gt;&lt;a href="" name="more"&gt;Evaluating desktop client s/w's for editing and posting to blog (like &lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1730/"&gt;&lt;b&gt;ScribeFire&lt;/b&gt;&lt;/a&gt;, &lt;a href="http://windowslivewriter.spaces.live.com/" target="_blank"&gt;Windows Live Writer&lt;/a&gt;, SeMagic)&lt;/dd&gt;&lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I've used 2-3 good desktop blogging clients:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;1) ScribeFire to handle blog-editing, upload and managing of multiple accounts/blogs.&lt;/dt&gt;&lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Looks to be the best option for now.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) Kompozer is good for a basic HTML whysiwyg editor.&lt;/dt&gt;&lt;dt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Windows Live Writer - not really used it but looks good enough for basic blog maintainence.&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Blog Composing:&lt;/span&gt; &lt;a href="http://kompozer.net/"&gt;Kompozer&lt;/a&gt;, CSS Stylesheets (&lt;span style="font-style: italic;"&gt;TODO&lt;/span&gt;) &lt;/dd&gt;&lt;dd&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;MindMaps: &lt;/span&gt;&lt;a href="http://www.xmind.net/" target="_blank"&gt;XMind &lt;/a&gt;with &lt;a href="http://freemind.sourceforge.net/" target="_blank"&gt;Freemind &lt;/a&gt;(for mindmaps and concept maps with &lt;a href="http://www.xmind.net/share/guru_on_net/apprenticeship-patterns-applied/"&gt;collaboration&lt;/a&gt; respectively)&lt;/dd&gt;&lt;dd&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Pictures:&lt;/span&gt; Paintbrush Digicam for Photos, MediaWiki Free Photos&lt;/dd&gt;&lt;dd&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Video:&lt;/span&gt; &lt;a href="http://www.instant-demo.com/" target="_blank"&gt;InstantDemo&lt;/a&gt;, Jing ScreenCapture software for Demonstration Videos.&lt;b&gt;&lt;b&gt;&lt;/b&gt; &lt;/b&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Diagrams:&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt; Diagramming s/w (&lt;span style="font-style: italic;"&gt;To-Do&lt;/span&gt;)&lt;/b&gt;&lt;/b&gt;&lt;/b&gt; &lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;a href="http://www.blogdoctor.me/2007/02/upload-files-to-blogger.html"&gt;Uploading&lt;/a&gt;:&lt;/b&gt; To-Do&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/dd&gt;&lt;dd&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/dd&gt;&lt;dd&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;a href="http://techtalkies.blogspot.com/2010/10/basic-format-for-good-self-explanatory.html"&gt;&lt;b&gt;See Also:&lt;/b&gt;Basic Format&amp;nbsp; for a Technical Blog&lt;/a&gt; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-391794990401178298?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/391794990401178298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-start-blog-get-useful-blogging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/391794990401178298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/391794990401178298'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-start-blog-get-useful-blogging.html' title='Howto Start a Blog, Get Useful Blogging Ideas, Add Good Content, Reduce Effort with Tools and Keep Blogging'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6920307125296193893</id><published>2010-10-05T03:04:00.000-07:00</published><updated>2010-11-30T06:04:55.989-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='improving'/><category scheme='http://www.blogger.com/atom/ns#' term='getting-started'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='don&apos;ts'/><category scheme='http://www.blogger.com/atom/ns#' term='do&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Howto Improve your Blog's design</title><content type='html'>&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;Accessibility:&lt;/b&gt; Does the title grab the attention of your intended audience?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Does the title have keywords used by the audience while searching google?&lt;/li&gt;&lt;li&gt;Does google index your blog regularly?&lt;/li&gt;&lt;li&gt;Push your blog updates to blog broadcastors like weblogs.com&lt;/li&gt;&lt;li&gt;Does your blog load up fast? Use the &lt;a href="http://www.google.com/support/blogger/bin/answer.py?answer=154172&amp;amp;cbid=10z6w19g136oo&amp;amp;src=cb&amp;amp;lev=%20answer"&gt;"Jump/Read More"&lt;/a&gt; feature and &lt;a href="http://www.google.com/support/blogger/bin/answer.py?hl=en&amp;amp;answer=42394"&gt;Optimize load time&lt;/a&gt;. &lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Retention:&lt;/b&gt; Is it easy for a casual browser to remember your blog and info you pain-stakingly put in?&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;u&gt;&lt;b&gt;Do's&lt;/b&gt;&lt;/u&gt; &lt;/div&gt;&lt;ol&gt;&lt;li&gt;Reduce information overload. Cluster related information into sub-topics.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Use Bloggers &lt;a href="http://www.google.com/support/blogger/bin/answer.py?answer=154172"&gt;ReadMore&lt;/a&gt; feature to give readers an option to read a blog summary or read more.&lt;/li&gt;&lt;li&gt;Increase quick scanning of useful information - Add headings, indentation, bullets and white-space.&lt;/li&gt;&lt;li&gt;Reduce wordiness - Add diagrams/pictures/videos (with search-able captions).&lt;/li&gt;&lt;li&gt;Increase Searchability - Add content related tags to each blog post. &lt;/li&gt;&lt;li&gt;Increase Sharing - Add RSS feeds for your blog.Add Referral gadgets like Digg, Twitter, Facebook. &lt;/li&gt;&lt;li&gt;Increase Readability - Customize Template Layout to maximize content space and reduce scrolling.&lt;/li&gt;&lt;li&gt;Reduce confusion - Use short and clear sentences. Avoid compound sentences. Use Spell-check. &lt;/li&gt;&lt;li&gt;Increase Post Quality - Review your post after a gap of few days. You'll often find improvements.&lt;/li&gt;&lt;li&gt;Increase Blog Quality - As you improve the newer posts update older posts with newer techniques.&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;u&gt;&lt;b&gt;Don'ts&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Boredom: &lt;/b&gt;Split long posts into short posts with title indicating continuity (e.g. Part 1 of 3)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Distractions:&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Avoid jarring Template design.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Avoid Ads and Blinking information.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Don't let Gadgets encroach upon content.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Move all outgoing links to a "Reference Links" section at the bottom of each post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Navigation:&lt;/b&gt; Is it easy for the casual browser to find relevant information on your blog?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add captions to photos/diagrams/videos for enabling text searches.&lt;/li&gt;&lt;li&gt;Add headings, indentation, bullets and white-space for quick scanning of useful information.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;See Also other posts on "Starting Your Blog":&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://techtalkies.blogspot.com/2010/10/howto-start-blog-get-useful-blogging.html"&gt;Howto Start a Blog, Get Useful Blogging Ideas, Add Good Content, Reduce Effort with Tools and Keep Blogging&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://benaam-blogs.blogspot.com/2006/05/blogging-without-blocking.html"&gt;Blogging without Blocking&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://techtalkies.blogspot.com/2010/10/basic-format-for-good-self-explanatory.html"&gt;Basic Template with Ingredients for a Technical Blog&lt;/a&gt;&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6920307125296193893?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6920307125296193893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-kick-start-your-blog-and-keep.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6920307125296193893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6920307125296193893'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/10/howto-kick-start-your-blog-and-keep.html' title='Howto Improve your Blog&apos;s design'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-9205083328001097097</id><published>2010-09-28T06:38:00.000-07:00</published><updated>2010-12-01T11:19:21.655-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='mmap'/><category scheme='http://www.blogger.com/atom/ns#' term='memcpy'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='address-out-of-bounds'/><category scheme='http://www.blogger.com/atom/ns#' term='creat-file'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='open-file'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='SIGBUS'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>mmap() is not the territory!! Part 2</title><content type='html'>&lt;u&gt;&lt;b&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Final code at end of debugging:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&lt;span style="background-color: #cccccc;"&gt;bool testFileCopyWithSharedMem(const string &amp;amp;srcFileName, const string &amp;amp;destFileName)&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;{&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool isCopyOk = false;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string diffCmd = "diff " + srcFileName + " " + destFileName;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int retval = system(diffCmd.c_str());&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  cout &amp;lt;&amp;lt; "system(" &amp;lt;&amp;lt; diffCmd  &amp;lt;&amp;lt; ") returned: " &amp;lt;&amp;lt; retval &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( retval == 0 )&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; isCopyOk = true;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return isCopyOk;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;}&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;int doFileCopyWithSharedMem(const string &amp;amp;srcFileName, const string &amp;amp;destFileName, size_t sharedMemSize)&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;{&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //int retval = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Map SourceFile&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; errno = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int srcfd = open(srcFileName.c_str(), O_RDONLY);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (srcfd &amp;lt; 0) {&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; const char * causeOfError = strerror(errno);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "open() returned:" &amp;lt;&amp;lt;  causeOfError &amp;lt;&amp;lt; " at:" &amp;lt;&amp;lt; __LINE__  &amp;lt;&amp;lt; " in:" &amp;lt;&amp;lt;__FUNCTION__ &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "open(" &amp;lt;&amp;lt; srcFileName  &amp;lt;&amp;lt; ") returned: " &amp;lt;&amp;lt; srcfd &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct stat sb;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fstat(srcfd,&amp;amp;sb);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; long pageSize;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //pageSize = sb.st_size;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pageSize = sysconf(_SC_PAGESIZE);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; errno = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *srcFilePtr = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; srcFilePtr = (char *) mmap(0, pageSize, PROT_READ, MAP_SHARED, srcfd, 0);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (srcFilePtr == MAP_FAILED)&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; const char * causeOfError = strerror(errno);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "mmap() returned:" &amp;lt;&amp;lt;  causeOfError &amp;lt;&amp;lt; " at:" &amp;lt;&amp;lt; __LINE__  &amp;lt;&amp;lt; " in:" &amp;lt;&amp;lt;__FUNCTION__ &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Map Dest File&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; errno = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int destfd = open(destFileName.c_str(), O_RDWR|O_CREAT|O_TRUNC, 0600 );&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (destfd &amp;lt; 0) {&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; const char * causeOfError = strerror(errno);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "creat() returned:" &amp;lt;&amp;lt;  causeOfError &amp;lt;&amp;lt; " at:" &amp;lt;&amp;lt; __LINE__  &amp;lt;&amp;lt; " in:" &amp;lt;&amp;lt;__FUNCTION__ &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "creat(" &amp;lt;&amp;lt; destFileName  &amp;lt;&amp;lt; ") returned: " &amp;lt;&amp;lt; destfd &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; errno = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *destFilePtr = 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; destFilePtr = (char *) mmap(0, pageSize, PROT_WRITE|PROT_READ, MAP_SHARED, destfd, 0);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (destFilePtr == MAP_FAILED) {&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; const char * causeOfError = strerror(errno);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "mmap() returned:" &amp;lt;&amp;lt;  causeOfError &amp;lt;&amp;lt; " at:" &amp;lt;&amp;lt; __LINE__  &amp;lt;&amp;lt; " in:" &amp;lt;&amp;lt;__FUNCTION__ &amp;lt;&amp;lt;  endl;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftruncate(destfd, sb.st_size);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt; "PID:" &amp;lt;&amp;lt; getpid() &amp;lt;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //cout &amp;lt;&amp;lt; srcFilePtr &amp;lt;&amp;lt; destFilePtr &amp;lt;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; system("cat /proc/self/maps");&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; memcpy(destFilePtr, srcFilePtr, sb.st_size);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //msync(destFilePtr, pageSize,MS_SYNC);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; munmap(srcFilePtr, pageSize);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; munmap(destFilePtr, pageSize);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; close(srcfd);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; close(destfd);&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;---------------------------------------------------------------------------- &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Time required: &lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Debugging 1 AM to 5:40 AM.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;20 Minutes to note down these points in the blog.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;2 hrs to massage it into shape.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;u&gt;&lt;b&gt;&lt;span style="background-color: white;"&gt;Interesting Links:&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #eeeeee;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b&gt;DevShed : &lt;/b&gt;development tutorials: http://www.devshed.com/&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #eeeeee;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b&gt;Gentoo Bug Reporting Guide:&lt;/b&gt; http://www.gentoo.org/doc/en/bugzilla-howto.xml&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #eeeeee;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b&gt;C &lt;/b&gt;&lt;b&gt;sample source &lt;/b&gt;&lt;b&gt;on Gnu/Linux :&lt;/b&gt; http://www.c.happycodings.com/Gnu-Linux/index.html&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #eeeeee;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b&gt;Mmap() security bug with Null Pointers:&lt;/b&gt; http://blog.ksplice.com/2010/03/null-pointers-part-i/ &lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #eeeeee;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b&gt;Wiki on Chromium multi-process debugging with gdb:&lt;/b&gt; http://code.google.com/p/chromium/wiki/LinuxDebugging&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #eeeeee;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b&gt;BugReport: &lt;/b&gt;http://www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg2333427.html&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-9205083328001097097?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/9205083328001097097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/mmap-is-not-territory-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/9205083328001097097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/9205083328001097097'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/mmap-is-not-territory-part-2.html' title='mmap() is not the territory!! Part 2'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-5264109927872307329</id><published>2010-09-28T06:22:00.000-07:00</published><updated>2010-09-28T06:25:36.942-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='utils'/><title type='text'>Code Review Tools</title><content type='html'>&lt;b&gt;Code Review Tools: &lt;/b&gt;&lt;br /&gt;&lt;i&gt;http://www.reviewboard.org/&lt;/i&gt;&lt;br /&gt;&lt;i&gt;http://code.google.com/p/rietveld/&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sample Review and Analysis of DVCS (Git/Mercurial) in Python Enhancement Proposals:&lt;/b&gt;&lt;br /&gt;&lt;i&gt;http://www.python.org/dev/peps/pep-0374/&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-5264109927872307329?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/5264109927872307329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/code-review-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5264109927872307329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5264109927872307329'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/code-review-tools.html' title='Code Review Tools'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-5035742554737824965</id><published>2010-09-28T05:57:00.000-07:00</published><updated>2010-09-28T05:57:19.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='service'/><category scheme='http://www.blogger.com/atom/ns#' term='indexing'/><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><category scheme='http://www.blogger.com/atom/ns#' term='crawl'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='push'/><title type='text'>Push your blog to google for indexing</title><content type='html'>&lt;b&gt;Manually suggest your blog to google for indexing/crawling:&lt;/b&gt;&lt;br /&gt;&lt;i&gt;http://blogsearch.google.com/ping&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Refer this site for further info on getting your blog indexed:&lt;/b&gt;&lt;br /&gt;&lt;i&gt;http://www.google.com/support/blogsearch/?hl=en#getlisted&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-5035742554737824965?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/5035742554737824965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/push-your-blog-to-google-for-indexing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5035742554737824965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5035742554737824965'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/push-your-blog-to-google-for-indexing.html' title='Push your blog to google for indexing'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-6547450413933526160</id><published>2010-09-28T05:51:00.000-07:00</published><updated>2010-12-01T11:20:12.851-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='mmap'/><category scheme='http://www.blogger.com/atom/ns#' term='memcpy'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='address-out-of-bounds'/><category scheme='http://www.blogger.com/atom/ns#' term='creat-file'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='open-file'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='SIGBUS'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>mmap() is not the territory!! Part 1</title><content type='html'>&lt;i&gt;&lt;b&gt;(OR) how MAP_FAIL, SIGBUS, &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;address 0xb7ffc00="" bounds="" of="" out=""&gt;&lt;i&gt;&lt;b&gt; beg to differ with mmap!!&lt;/b&gt;&lt;/i&gt; &lt;br /&gt;Wrote a small program using mmap() to copy a &lt;b&gt;&lt;i&gt;fromFile.txt&lt;/i&gt;&lt;/b&gt; to &lt;i&gt;&lt;b&gt;toFile.txt &lt;/b&gt;&lt;/i&gt;using virtual memory&lt;br /&gt;&lt;br /&gt;--------------------------------------------&lt;br /&gt;&lt;b&gt;Issue#1: mmap() returns MAP_FAIL&lt;/b&gt;&lt;br /&gt;mmap() requires exactly the same flags as the filedescriptor/fd as when it was open()/creat()-ed&lt;br /&gt;i.e. if you used O_RDONLY in open() then you can't mmap() it as PROT_WRITE.&lt;br /&gt;&lt;br /&gt;chmod basics: http://www.linux.org/lessons/beginner/l14/lesson14b.html&lt;br /&gt;creat/open man page: http://linux.about.com/od/commands/l/blcmdl2_open.htm &lt;br /&gt;-------------------------------------------------&lt;br /&gt;&lt;b&gt;Issue#2:&lt;/b&gt;&lt;br /&gt;Error Message: In gdb getting SIGBUS with error coming from inside memcpy!!&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i style="background-color: #cccccc;"&gt;108&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; memcpy(destFilePtr, srcFilePtr, pageSize);&lt;br /&gt;5: pageSize = 14&lt;br /&gt;4: destFilePtr = 0xb7ffc000 &lt;/i&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;i style="background-color: #cccccc;"&gt;&lt;br /&gt;3: srcFilePtr = 0xb7ffd000 "hello, world\n\n"&lt;br /&gt;2: destfd = 6&lt;br /&gt;1: srcfd = 5&lt;br /&gt;(gdb) n&lt;br /&gt;&lt;br /&gt;Program received signal SIGBUS, Bus error.&lt;br /&gt;__memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:75&lt;br /&gt;75&amp;nbsp;&amp;nbsp;&amp;nbsp; ../sysdeps/i386/i686/multiarch/../memcpy.S: No such file or directory.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; in ../sysdeps/i386/i686/multiarch/../memcpy.S&lt;/i&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: white;"&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: white;"&gt;&lt;i&gt;Searching on this gave no direct answers on the error message but gave some pointers on causes.&lt;/i&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: white;"&gt;&lt;i&gt;Tried all the below tools but still getting the same error message: &lt;/i&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: white;"&gt;&lt;/address&gt;&lt;address&gt;&lt;i&gt;0) used apt-get update and rebooted "just-in-case"&lt;/i&gt;&lt;/address&gt;&lt;address&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; https://help.ubuntu.com/8.04/serverguide/C/apt-get.html &lt;/i&gt;&lt;/address&gt;&lt;address&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;1) used &lt;b&gt;strace ./file-copy-vm &lt;/b&gt;to check the system calls were getting called properly.&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&amp;nbsp; getting SIGBUS on write() ostensibly called from inside the memcpy &lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;2) used &lt;b&gt;ldd ./file-copy-vm &lt;/b&gt;to check that the &lt;b&gt;libstdc++ - and libc.so &lt;/b&gt;were existent.&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&amp;nbsp; They were present&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;i&gt;&lt;/i&gt;&lt;/address&gt;&lt;address&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;3) Installed glibc-dbg and libstdc++-devel etc for debugging the library.&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; No change.&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Finally found the problem in an off-by-N error in memcpy(dest,src, pageSize)&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: white;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;Since SIGBUS comes when a page worth is allocated but size of mapping is less than pagesize.&amp;nbsp;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;i.e. the accessed address is more than filesize but inside pagesize.&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;br /&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&amp;nbsp;So realized my mistake and changed: &lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: #cccccc;"&gt;memcpy(destFilePtr, srcFilePtr, pageSize); //WRONG.&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;Corrected it to:&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: #cccccc;"&gt;memcpy(destFilePtr, srcFilePtr, sb.st_size); //Correct&lt;/span&gt;&lt;br /&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;/address&gt;&lt;address style="background-color: #cccccc;"&gt;------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&lt;b&gt;Issue#3:&lt;/b&gt; Still getting SIGBUS from memcpy() AND &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background-color: #999999;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/address&gt;&lt;address 0xb7ffc00=""&gt;&lt;b&gt;&lt;span style="background-color: #999999;"&gt;&lt;/span&gt;&lt;span style="background-color: #999999;"&gt;out of bounds&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;Breakpoint 3, doFileCopyWithSharedMem (srcFileName=..., destFileName=..., sharedMemSize=8192) at ../src/file-copy-vm.cpp:104&lt;br /&gt;104&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt; "PID:" &amp;lt;&amp;lt; getpid() &amp;lt;&lt;endl;&gt;&lt;br /&gt;4: destfd = 6&lt;br /&gt;3: srcfd = 5&lt;br /&gt;2: srcFilePtr = 0xb7ffd000 "hello, world\n\n"&lt;br /&gt;1: destFilePtr = 0xb7ffc000 &lt;span style="background-color: #cccccc;"&gt;&lt;/span&gt;&lt;/endl;&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;b style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;0xb7ffc00 &lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;endl;&gt;&lt;b&gt;out of bounds&amp;gt;&lt;/b&gt;&lt;/endl;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;br /&gt;(&lt;span style="background-color: #cccccc;"&gt;gdb) n&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; PID:7136&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 106&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; system("cat /proc/self/maps");&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 4: destfd = 6&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 3: srcfd = 5&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 2: srcFilePtr = 0xb7ffd000 "hello, world\n\n"&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 1: destFilePtr = 0xb7ffc00 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background-color: #999999;"&gt;0xb7ffc00 &lt;/span&gt;&lt;span style="background-color: #999999;"&gt;out of bounds&amp;gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; (gdb) shell cat /proc/7136/maps &lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; [SNIP]&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 08048000-0804a000 r-xp 00000000 08:01 933913&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /home/gurud/cdt-linux-tools-workspace/file-copy-vm/Debug/file-copy-vm&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 0804a000-0804b000 r--p 00001000 08:01 933913&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /home/gurud/cdt-linux-tools-workspace/file-copy-vm/Debug/file-copy-vm&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 0804b000-0804c000 rw-p 00002000 08:01 933913&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /home/gurud/cdt-linux-tools-workspace/file-copy-vm/Debug/file-copy-vm&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; 0804c000-0806d000 rw-p 00000000 00:00 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [heap]&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; b7fec000-b7fee000 rw-p 00000000 00:00 0 &lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; b7ffb000-b7ffc000 rw-p 00000000 00:00 0 &lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt; &lt;b style="background-color: #cccccc;"&gt;b7ffc000&lt;/b&gt;&lt;span style="background-color: #cccccc;"&gt;-b7ffd000 rw-s 00000000 08:01 933725&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /home/gurud/cdt-linux-tools-workspace/file-copy-vm/Debug/toFile.txt&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt; &lt;b style="background-color: #cccccc;"&gt;b7ffd000&lt;/b&gt;&lt;span style="background-color: #cccccc;"&gt;-b7ffe000 r--s 00000000 08:01 933672&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /home/gurud/cdt-linux-tools-workspace/file-copy-vm/Debug/fromFile.txt&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; b7ffe000-b8000000 rw-p 00000000 00:00 0 &lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; bffeb000-c0000000 rw-p 00000000 00:00 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [stack]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;Hmmm... here the destFilePtr seems to be pointing to the correct memory-mapped file i.e. toFile.txt&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;The destFilePtr &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt; is pointing to out-of-bounds accesss.&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Also the SIGBUG seems to suggest that I'm trying to write/access to an address in memory that's allocated but out of bounds of the empty dest file. Otherwise I'd have got a SIGSEGV if the memory had not been allocated.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;I observed that toFile.txt is showing filesize as zero on the disk. Aha!!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Robert Love in his book "Linux System Programming" had mentioned files with slack-space/holes (in memory as well as disk respectively). Could this be the reason??!!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;http://www.devshed.com/c/a/BrainDump/Using-mmap-for-Advanced-File-IO/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Finally I cross-checked my code with a sample implementation for mmap() file copy program.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Found out that they used lseek() to expand the memory mapping instead of ftruncate() &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;to expand file size with a hole instead of ftruncate().&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt; http://www.c.happycodings.com/Gnu-Linux/code6.html&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;So we just need to increase the size of the dest-file using ftruncate.&lt;/span&gt;&lt;br style="background-color: white;" /&gt;&lt;span style="background-color: white;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;(gdb) help call&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; Call a function in the program.&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; The argument is the function name and arguments, in the notation of the&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; current working language.&amp;nbsp; The result is printed and saved in the value&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; history, if it is not void.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out="" style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;(gdb) call ftruncate(destfd,sb.st_size)&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; $1 = 0&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt; &lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; doFileCopyWithSharedMem() returned:0&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; system(diff ./fromFile.txt ./toFile.txt) returned: 0&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; testFileCopyWithSharedMem() returned:0&lt;/span&gt;&lt;br style="background-color: #cccccc;" /&gt; &lt;br style="background-color: #cccccc;" /&gt;&lt;span style="background-color: #cccccc;"&gt; (gdb) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;Hurray!! the unit testcase passes!!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;It's 6 AM!! Tiring but worth it!! Gotta go and sleep now&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address 0xb7ffc000="" bounds="" of="" out=""&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;---------------------------------------------------------------------------- &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/address&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #cccccc;"&gt;&lt;span style="background-color: #999999;"&gt; &lt;/span&gt;&lt;span style="background-color: #999999;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-6547450413933526160?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/6547450413933526160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/mmap-is-not-territory-or-mapfail-sigbus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6547450413933526160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/6547450413933526160'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/mmap-is-not-territory-or-mapfail-sigbus.html' title='mmap() is not the territory!! Part 1'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-351538180707927912</id><published>2010-09-27T06:07:00.000-07:00</published><updated>2010-09-27T06:22:24.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chmProcessor'/><category scheme='http://www.blogger.com/atom/ns#' term='freemind'/><category scheme='http://www.blogger.com/atom/ns#' term='chm'/><category scheme='http://www.blogger.com/atom/ns#' term='website-mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='Httrack'/><category scheme='http://www.blogger.com/atom/ns#' term='compress'/><category scheme='http://www.blogger.com/atom/ns#' term='linux-tools'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='utility'/><title type='text'>Creating a CHM file from offline/mirrored HTML pages</title><content type='html'>Having too many saved/offline html folders, maybe created using Httrack like website-mirrorring software?&lt;br /&gt;Storing and using these is a bit of a headache.&lt;br /&gt;&lt;br /&gt;All you need is to convert these loose files into a compressed html file i.e. CHM file&lt;br /&gt;with facilities like indexing, favorites etc.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Step 1:&lt;/b&gt; Install chmProcessor from http://sourceforge.net/projects/chmprocessor/. It's free to download.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2: &lt;/b&gt;Install HTML Help Workshop if it's not already installed on your windows system&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3:&lt;/b&gt; Point chmProcessor to the HTML Help Compressor using File &amp;gt; Settings menu option&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_yoTID-huQvo/TKCaW7BulvI/AAAAAAAAAEE/k4XEyGMSFKA/s1600/chmProcessor+Configure+HHC+path.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="314" src="http://2.bp.blogspot.com/_yoTID-huQvo/TKCaW7BulvI/AAAAAAAAAEE/k4XEyGMSFKA/s640/chmProcessor+Configure+HHC+path.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Step 4: &lt;/b&gt;Point chmProcessor to&lt;br /&gt;a) the "Source File" i.e. the index.html file,&lt;br /&gt;b) "Add Directory" for the directory containing the rest of the html files and&lt;br /&gt;c) "Compile Help" directory to place the output .chm file&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_yoTID-huQvo/TKCU4pEE57I/AAAAAAAAAD8/0P-BFuAWRaE/s1600/chmProcessor+Settings.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="497" src="http://3.bp.blogspot.com/_yoTID-huQvo/TKCU4pEE57I/AAAAAAAAAD8/0P-BFuAWRaE/s640/chmProcessor+Settings.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Step 5:&lt;/b&gt; Click "Generate" button to get the .chm file.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_yoTID-huQvo/TKCWyyQU0II/AAAAAAAAAEA/fe2p3l1xpp0/s1600/chmProcessor+Success.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_yoTID-huQvo/TKCWyyQU0II/AAAAAAAAAEA/fe2p3l1xpp0/s1600/chmProcessor+Success.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Gotchas: &lt;/b&gt;Common mistakes are to forget change the output path from one project to another.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-351538180707927912?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/351538180707927912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/creating-chm-file-from-offlinemirrored.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/351538180707927912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/351538180707927912'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/creating-chm-file-from-offlinemirrored.html' title='Creating a CHM file from offline/mirrored HTML pages'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yoTID-huQvo/TKCaW7BulvI/AAAAAAAAAEE/k4XEyGMSFKA/s72-c/chmProcessor+Configure+HHC+path.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7055118736066070599</id><published>2010-09-24T06:26:00.001-07:00</published><updated>2010-09-26T01:58:32.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='packages'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='apt-get'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='list'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>List of useful packages for C/C++ development on Ubuntu Linux Part 2</title><content type='html'>&lt;span style="font-weight: bold;"&gt;[SOURCE-ANALYZERS]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y exuberant-ctags&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y doxygen doxygen-gui&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install splint #Static analyzer Lint for C programs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install colorgcc #Colorizer for GCC errors/warnings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   apt-get install cppcheck #C/C++ source static analyzer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install cscope #C/C++ source code browsing/searching&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install cbrowser #browser for cscope&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install cflow #Displays control flow graphs for C source&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   apt-get install cutils #Various C source code utils - cdecl, cobfusc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install cxref #Generate HTMl doc for C source code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install global #Global search/browse C++ source code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install id-utils #Identifier database used by global for search/browse C++ source code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;   &lt;/span&gt;apt-get install synopsis #C++/Python source code introspection tool&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install gccxml #GCC source code described as xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install gobject-introspections #Extract introspection data from libraries&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install explain #Helps explain system call errors after the fact&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get install fhist #File history, compare and merge utility&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install fastdep #Generates dependency info as makefile rules for C/C++&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install eresi #Reverse Engineering, instrumentation, debugging, tracing framework&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get install evarista #Program transformer and data-flow analyzer for binaries using ERESI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install frama-c #GUI to combine multiple analyzers for C source code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install frama-c-base #Framework to combine multiple analyzers for C source code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install gnulib #Make programs portable using C macros/assertions/declarations/definitions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install gperf gperf-ace #Generate perfect hash given input strings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install gsoap #Web service stub/skeleton generator for C/C++ code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get install kodos #GUI to debug, test and view regexps&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install visual-regexp #GUI in TCL to debug, test and view regexps&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[BEAUTIFIER]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install astyle # C++ source code beautifier&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install indent #Beautifier for C Source code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   apt-get install bcpp #C++ Source beautifier&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install kwstyle #Ensure source code style of many people is same as one person&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install uncrustify #C++ beautifier highly configurable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install unifdef #Remove #ifdef sections from source&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get install universalindentgui #GUI to configure and compare multiple beautifiers esp. for C++&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install xmlindent #XML beautifier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[COMPILATION]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install distcc #distributed compiling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install distcc-pump #distributed preprocessing&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   apt-get install ccache #compiler cacher&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install distccmon-gnome #GTK+ GUI to monitor distcc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install icecc #Distributed compiling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install icecc-monitor #GUI for monitoring Distributed compiling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get install boost-build #Easy Cross-platform compilation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install gdc # D language compiler&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install bison++ #C++ source generator enhancement to bison&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install flex&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install antlr3 #create compilers/interpreters using ANTLR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[LIBRARIES]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install libasio-dev libasio-doc #Cross Platform Boost library for Async IO (network programming)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install libclthreads-dev libclthreads-doc #POSIX threads C++ library&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install libcorelinux libcorelinux-examples #Converting Linux core C libs to C++ libs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get install libdar-dev #Disk archiver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install uc++ uc++-doc uclibc uclibc-source #Embedded C++ with multi-threading etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install witty-dev #AppServer and library for C++ web-deployment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[JAVA]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get install gwis #C++ wrapper class generator to call Java objects/methods.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install jaranalyzer #Dependency management utility for jar files&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install jclassinfo #Reads class files to get useful info from them&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get install jflex javacc #Flex and Bison for Java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install junit junit-doc #Unit testing for Java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install testng  #NG unit testing with extra and best-of-breed features of JUnit and NUnit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install tijmp jmp #Java memory profiler&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get install visualvm #Tool for remote-admin, monitoring(dumping), profiling production/dev code, bug-reporting&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[DATABASE]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install sqlite-database-browser #GUI for SQLite dbs.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install sqlrelay-dev #SQLite C/C++ APIs for proxying speeding up access to N DBMS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get install unixodbc-dev #Unix port of ODBC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[XML]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install xmlcopyeditor #XML util for xsd, dtd, xslt, validation and syntax highlighting&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get install xsdcxx #Generate C++ classes from XSDs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install xml-rpc-api2cpp #Generate C++ wrapper classes for XML-RPC API&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7055118736066070599?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7055118736066070599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-packages-for-development_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7055118736066070599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7055118736066070599'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-packages-for-development_24.html' title='List of useful packages for C/C++ development on Ubuntu Linux Part 2'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-1483124099853780605</id><published>2010-09-24T06:21:00.001-07:00</published><updated>2010-10-26T10:55:21.303-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSS'/><category scheme='http://www.blogger.com/atom/ns#' term='subscribe'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='RSS-feed'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Howto subscribe to this (and other) RSS Feeds.</title><content type='html'>RSS feeds &lt;i&gt;&lt;b&gt;push&lt;/b&gt;&lt;/i&gt; the blog content to you, instead of you having to check for updates to the site.&lt;br /&gt;All this from within your browser or RSS feed client s/w.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can very simply subscribe to any of the below options:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The whole blog, (or)&lt;/li&gt;&lt;li&gt;Individual blog-posts, (or)&lt;/li&gt;&lt;li&gt;Even just the comments part of the blog.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Howto:&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;&lt;br /&gt;0) Just use the newly added gadgets at top of the blog:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;i&gt;Subscribe to: Posts Comments &lt;/i&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_yoTID-huQvo/TK3t5a5jkDI/AAAAAAAAAEM/8yCAHmUu3F8/s1600/Subscribe+to+Rss+Feed+for+Posts+and+Comments.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_yoTID-huQvo/TK3t5a5jkDI/AAAAAAAAAEM/8yCAHmUu3F8/s1600/Subscribe+to+Rss+Feed+for+Posts+and+Comments.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;1) If you're using Firefox just click on the Orange Icon in your address-bar.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; And choose which folder to save your "Live Bookmark"/RSS feed into.&lt;br /&gt;&lt;i&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; Howto subscribe to RSS feeds in FireFox in seconds: &lt;/b&gt;&lt;/i&gt;&lt;a href="http://johnbokma.com/firefox/rss-and-live-bookmarks.html"&gt;http://johnbokma.com/firefox/rss-and-live-bookmarks.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) You can also use the below URLs:&lt;br /&gt;&lt;code&gt;&lt;/code&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;RSS 2.0: &lt;a href="http://techtalkies.blogspot.com/feeds/posts/default?alt=rss%20"&gt;http://techtalkies.blogspot.com/feeds/posts/default?alt=rss &lt;/a&gt;&lt;/li&gt;&lt;li&gt;Atom 1.0: &lt;a href="http://techtalkies.blogspot.com/feeds/posts/default"&gt;http://techtalkies.blogspot.com/feeds/posts/default&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;3) Also Rss feeds to subscribe to blog comments can be found at the bottom of the &lt;a href="http://techtalkies.blogspot.com/"&gt;blog&lt;/a&gt;:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "Subscribe to: &lt;a class="feed-link" href="http://techtalkies.blogspot.com/feeds/posts/default" target="_blank" type="application/atom+xml"&gt;Posts (Atom)&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Reference Links:&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;&lt;i&gt;&lt;b&gt;Video Tutorial in Plain English:&lt;/b&gt;&lt;/i&gt;&lt;/u&gt; http://www.commoncraft.com/archives/000528.html &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;i&gt;&lt;b&gt;Wikipedia:&lt;/b&gt;&lt;/i&gt;&lt;/u&gt; http://en.wikipedia.org/wiki/RSS&lt;/li&gt;&lt;li&gt;Check out which one to use in&amp;nbsp; &lt;a href="http://www.commoncraft.com/archives/000592.html"&gt;What is Atom? How does it Compare to RSS?&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-1483124099853780605?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/1483124099853780605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/rss-feed-url-and-buzz-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1483124099853780605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1483124099853780605'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/rss-feed-url-and-buzz-post.html' title='Howto subscribe to this (and other) RSS Feeds.'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yoTID-huQvo/TK3t5a5jkDI/AAAAAAAAAEM/8yCAHmUu3F8/s72-c/Subscribe+to+Rss+Feed+for+Posts+and+Comments.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2833848605874462446</id><published>2010-09-24T06:10:00.000-07:00</published><updated>2010-09-24T06:14:15.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='apprenticeship-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='why'/><category scheme='http://www.blogger.com/atom/ns#' term='record-what-you-learn'/><category scheme='http://www.blogger.com/atom/ns#' term='applied'/><category scheme='http://www.blogger.com/atom/ns#' term='rationale'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='share-what-you-learn'/><title type='text'>Why write technical blog posts Part 2</title><content type='html'>&lt;b&gt;Some interesting quotes (with links) from &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html"&gt;"Apprenticeship Patterns":&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;Section 6: &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html"&gt;Construct Your Curriculum&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;"  the vast     amounts of wisdom captured in the books of experienced  practitioners like     Jerry Weinberg, Fred Brooks, Steve McConnell, and  Kent Beck cannot be     replaced, not even with higher-bandwidth  information. Even if you’re not a     bookworm, a successful  apprenticeship needs to include some books as well     as time devoted  to studying. You’re not in school, though. &lt;span style="background-color: #ffffcc;"&gt;There is no     assigned reading—it’s up to you to find recommendations and construct your     own curriculum."&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;0) &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#reading_list"&gt;Reading List&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;i&gt;&lt;b&gt;Problem:&lt;/b&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The number of books you need to read is increasing faster than you can read them.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Solution:&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Maintain a Reading List to track the books you plan to read, and remember the books you’ve read."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;1) &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#study_the_classics"&gt;Study the Classics:&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;"Joshua Kerievsky once asked &lt;span style="background-color: #ffcc66;"&gt;Jerry Weinberg &lt;/span&gt;how he keeps up with         all the books that come out. Jerry said, “Easy—I only read the great         ones”&lt;/i&gt;&lt;br /&gt;&lt;b&gt;[...]&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;"Successful apprentices         tend to focus on “long-lived books” and use the Web or experimentation         to &lt;span style="background-color: #ffff99;"&gt;learn how the information has evolved&lt;/span&gt;. Dave remembers vividly the         experience of reading his first classic in this field, &lt;a class="link" href="http://apprenticeship-patterns.labs.oreilly.com/bi01.html#Weinberg3" title="The Psychology of Computer Programming: Silver Anniversary Edition"&gt;The Psychology of Computer Programming&lt;/a&gt;,  and         marveling at how relevant the book felt, despite the  stories of punch         cards and room-sized computers. The wisdom  captured in such classics         is vital information to keep you  heading in the right direction on         &lt;a class="link" href="http://apprenticeship-patterns.labs.oreilly.com/ch03.html#the_long_road" title="The Long Road"&gt;The Long Road&lt;/a&gt;."&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;2) &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#dig_deeper"&gt;Dig Deeper&lt;/a&gt;:&lt;br /&gt;&lt;div class="sect2" lang="en" style="margin-left: 40px;"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title" id="ch06_id2358546"&gt;&lt;span style="font-size: small;"&gt;"Problem:&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="ch06_id2336963"&gt;&lt;i&gt;You  keep running into difficulty maintaining the code you’ve          written because it turns out that the tutorials you followed cut          corners and simplified complex issues. You find that your superficial          knowledge of a thousand tools means you’re always floundering  whenever         a subtle bug arises or you have to do something that  demands deep         knowledge. People often accuse you of having a  misleading CV because         you don’t distinguish between a couple of  weeks of extending an         existing web service and a deep knowledge  of the issues inherent in         maintaining an interoperable and  highly scalable enterprise system.         What’s even worse is that  because your knowledge is so superficial,         you’re not even aware  of how little you know until something or         someone puts you to  the test.&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="titlepage" style="margin-left: 40px;"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title" id="ch06_id2369747"&gt;&lt;span style="font-size: small;"&gt;Solution: &lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;Learn  to dig deep into tools, technologies, and techniques.         Acquire  the depths of knowledge to the point that you know why things          are the way they are. Depth means understanding the forces that led to          a design rather than just the details of a design. For instance,  it         means understanding type theory (or at least the  simplification         offered by the typing quadrant at &lt;a class="ulink" href="http://c2.com/cgi/wiki?TypingQuadrant" target="_top"&gt;http://c2.com/cgi/wiki?TypingQuadrant&lt;/a&gt;) rather than         simply parroting the things you’ve heard others say"&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2833848605874462446?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2833848605874462446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/why-write-technical-blog-posts-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2833848605874462446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2833848605874462446'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/why-write-technical-blog-posts-part-2.html' title='Why write technical blog posts Part 2'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7418363922076162187</id><published>2010-09-24T06:06:00.000-07:00</published><updated>2010-10-10T10:18:07.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='add-ons'/><category scheme='http://www.blogger.com/atom/ns#' term='speed-up'/><category scheme='http://www.blogger.com/atom/ns#' term='utils'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>List of useful addons for FireFox (with links) Part 2</title><content type='html'>&lt;a href="http://techtalkies.blogspot.com/2010/09/list-of-useful-addons-for-firefox-also.html"&gt;List of useful addons for FireFox (with links) Part 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;i&gt;Note: These addons have been added on Firefox version 3.6.10&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/199790/"&gt;&lt;b&gt;+&lt;/b&gt;&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1730/"&gt;ScribeFire Blog Editor&lt;/a&gt;    &lt;br /&gt;&lt;div class="install-button"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt; Edit and post your blog from inside firefox with this plugin.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: ScribeFire Next is a bit buggy i.e. publish button disappears too fast to click.&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="install-button"&gt;&lt;div class="install-button"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;u&gt;Download:&lt;/u&gt;&lt;/b&gt;&lt;a class="button  add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1730/addon-1730-latest.xpi?src=search"&gt; Add to Firefox&lt;/a&gt;&lt;a class="button  add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1730/addon-1730-latest.xpi?src=search"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;div class="install-shell"&gt;&lt;div class="install "&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="install-shell"&gt;&lt;div class="install "&gt;&lt;/div&gt;&lt;/div&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&lt;h3&gt;&lt;/h3&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201/" target="_blank"&gt;&lt;b&gt;DownThemAll&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;The first and only download manager/accelerator built inside Firefox!&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:  &lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/201/addon-201-latest.xpi?src=search" target="_blank"&gt;Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/201/addon-201-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;+&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/10137/" target="_blank"&gt; Easy YouTube Video Downloader&lt;/a&gt;     &lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Easiest  Youtube video downloader ever, single click non-intrusive direct   download buttons for FLV, 3GP, MP3, MP4, 720p HD and 1080p Full-HD   qualities.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/10137/addon-10137-latest.xpi?src=search" target="_blank"&gt;&lt;b&gt;Download:&lt;/b&gt; Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/10137/addon-10137-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;+ N&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/7447/" target="_blank"&gt;etVideoHunter Video Downloader &lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Download videos and music from video sites like Youtube.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/10137/addon-10137-latest.xpi?src=search" target="_blank"&gt;&lt;b&gt;Download:&lt;/b&gt; Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/10137/addon-10137-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;        &lt;/div&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1672/" target="_blank"&gt;&lt;b&gt;ImgLikeOpera&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;ImgLikeOpera  allows load only the images that you want in Firefox  browser. This  extension is very useful for non broadband users...&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:  &lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1672/addon-1672-latest.xpi?src=search" target="_blank"&gt;Add to Firefox &lt;/a&gt;            &lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;div&gt;Not available for Firefox 3.6.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2324/" target="_blank"&gt;&lt;b&gt;SessionManager&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Session  Manager saves and restores the state of all windows - either  when you  want it or automatically at startup and after crashes. It can  also  automatically save the state of open windows individually.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/2324/addon-2324-latest.xpi?src=search" target="_blank"&gt;&lt;b&gt;Download: &lt;/b&gt;Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/2324/addon-2324-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4810/" target="_blank"&gt;&lt;b&gt;SpeedDial&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Direct access to your most visited websites&lt;br /&gt;&lt;b&gt;&lt;u&gt;Download:&lt;/u&gt; &lt;/b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/4810/addon-4810-latest.xpi?src=search" target="_blank"&gt;         Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/4810/addon-4810-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3456/" target="_blank"&gt;&lt;b&gt;WOT - Safe Browsing Tool&lt;/b&gt;&lt;/a&gt;  &lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Would  you like to know which websites you can trust? The WOT add-on is a   safe surfing tool for your browser. Traffic-light rating symbols show   which websites you can trust when you search, shop and surf on the Web.&lt;br /&gt;&lt;u&gt;&lt;b&gt;Download: &lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/3456/addon-3456-latest.xpi?src=search" target="_blank"&gt;         Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/3456/addon-3456-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[BOOKMARKS]&lt;/span&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/124046/" target="_blank"&gt;&lt;b&gt;TagSieve&lt;/b&gt;&lt;/a&gt; &lt;i&gt;&lt;u&gt;(&lt;b&gt;Note:&lt;/b&gt; This has NOT been reviewed by Mozilla)&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;This is a continuation of the excellent but abandoned TagSifter extension.&lt;br /&gt;Firefox lets you tag your bookmarks, but it doesn't give you a great way to browse your bookmarks by their tags.&lt;u&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;   &lt;u&gt;&lt;b&gt; Download: &lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;br /&gt;+&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2410/" target="_blank"&gt; Xmarks Sync&lt;/a&gt;     &lt;i&gt;&lt;u&gt;(&lt;b&gt;NOTE: &lt;/b&gt;&lt;span style="color: red;"&gt;Xmarks is SHUTTING DOWN. Don't use it.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;&lt;u&gt;This will backup your ALL bookmarks so DON'T use for official links)&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="im"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xmarks  is the #1 bookmarking add-on.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Keep your bookmarks, passwords and  open  tabs backed up and synchronized across computers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and browsers.  Search  smarter with website ratings and reviews displayed with your  search  results.&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;b&gt;Download:   &lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/2410/addon-2410-latest.xpi?src=search" target="_blank"&gt;Add to Firefox&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;+&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/10868/"&gt; Firefox Sync&lt;/a&gt; by &lt;a href="https://addons.mozilla.org/en-US/firefox/user/5133025/"&gt;Mozilla Labs&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Free browser add-on that lets you stay in sync with your Firefox.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Access  your history, passwords, bookmarks and even open tabs across all your  devices.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;&lt;b&gt;Download:&lt;/b&gt;&lt;/u&gt; &lt;a class="button  add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/10868/addon-10868-latest.xpi?src=search"&gt;Add to Firefox&amp;nbsp;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1553/" target="_blank"&gt;&lt;b&gt;Bookmarks Duplicate Detector&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;Detects Duplicate Bookmarks when bookmarks are added and specify  where  is the previous URL. You can also search and delete duplicates  URL  already in your Bookmarks.&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:  &lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1553/addon-1553-latest.xpi?src=search" target="_blank"&gt;Add to Firefox &lt;/a&gt;            &lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;div&gt;Not available for Firefox 3.6.10&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/161884/"&gt;WikiSeer Keynotes&lt;/a&gt;     &lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;small&gt;&lt;u&gt;&lt;b&gt;Description: &lt;/b&gt;&lt;/u&gt;WikiSeer Keynotes finds the most significant content in any English web page; shrinking the original up to 99%. It    serves as a middle ground between skimming the titles and reading the    entire article, providing a faster / richer reading experience.&lt;br /&gt;&lt;u&gt;&lt;b&gt;Download:&lt;/b&gt;&lt;/u&gt;&lt;a class="button eula go installer" href="https://addons.mozilla.org/en-US/firefox/addon/161884/eula/92367?src=search"&gt;  Continue to Download →                   &lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 85%; font-weight: bold;"&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6984/"&gt;Lazarus: Form Recovery&lt;/a&gt;&lt;br /&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;small&gt;&lt;u&gt;&lt;span style="font-size: 85%;"&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 100%;"&gt; Never   lose anything you type into a web form again! Lazarus securely    auto-saves all forms as you type, so after a crash, server timeout, or    whatever, you can go back to the form, right click, "recover form", and    breathe a sigh of relief&lt;/span&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Download:&amp;nbsp; &lt;/b&gt;&lt;/u&gt;&lt;a class="button add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/6984/addon-6984-latest.xpi?src=search"&gt;Add to Firefox&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5677/"&gt;Reframe It&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size: small;"&gt;&lt;small&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Description:&lt;/span&gt; Commenting tool to add comments right next to Web pages without permission and share with others&lt;/small&gt;&lt;/span&gt;.&lt;br /&gt;&lt;small&gt;&lt;span style="font-size: small;"&gt;&lt;small&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Download:&lt;/span&gt; &lt;a class="button eula go installer" href="https://addons.mozilla.org/en-US/firefox/addon/5677/eula/73623?src=search"&gt;Continue to Download&amp;nbsp;→&lt;/a&gt; &lt;/small&gt;&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3262/" style="font-weight: bold;"&gt;DejaClick&lt;/a&gt;&lt;br /&gt;&lt;/h3&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;&lt;small&gt;Description&lt;/small&gt;: &lt;/span&gt;&lt;small&gt;Record and bookmark your browser activities, then with a single click, replay the entire sequence all over again.&lt;/small&gt;&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;&lt;small&gt;Download&lt;/small&gt;:&lt;/span&gt; &lt;small&gt;&lt;a class="button platform windows add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/3262/platform:5/addon-3262-latest.xpi?src=search"&gt;Add to Firefox&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/179549/"&gt;FloatNotes&lt;/a&gt;&lt;br /&gt;&lt;/h3&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;With  this add-on you can put notes anywhere on a website. Add comments,   links or even images. It can help you doing research on the web, remind   you of topics you want to blog about, etc. It is simple and easy to  use.&lt;br /&gt;&lt;a class="button prominent  add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/179549/addon-179549-latest.xpi?src=addondetail"&gt;&lt;b&gt;Download:&lt;/b&gt; Add to Firefox&lt;/a&gt;&lt;a class="button prominent  add installer" href="https://addons.mozilla.org/en-US/firefox/downloads/latest/179549/addon-179549-latest.xpi?src=addondetail"&gt;       &lt;/a&gt;&lt;/div&gt;&lt;div class="install-wrapper " style="margin-left: 40px;"&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/6025089615285380514-7418363922076162187?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7418363922076162187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-addons-for-firefox-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7418363922076162187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7418363922076162187'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-addons-for-firefox-with.html' title='List of useful addons for FireFox (with links) Part 2'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-4295220305373187437</id><published>2010-09-24T05:59:00.000-07:00</published><updated>2010-12-02T01:44:48.419-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multiple-entries'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='file-manager'/><category scheme='http://www.blogger.com/atom/ns#' term='theme'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='copy-paste'/><category scheme='http://www.blogger.com/atom/ns#' term='search-everything'/><category scheme='http://www.blogger.com/atom/ns#' term='clipboard-manager'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='save'/><title type='text'>Utils for Linux and Windows</title><content type='html'>&lt;b&gt;Search Everything&lt;/b&gt;:&lt;br /&gt;This is a really fast and compact file search utility for  windows. It beats Google desktop hollow if all you need is to search file/directory names. Already its saved me from re-downloading stuff, finding work that I’d  stored away (safely!!) somewhere and just plain discover that I’ve got  more goodies on my system than I’d thought!!&lt;br /&gt;Having a huge HDD (by today’s standards) 1 GB does help to keep useful stuff ready for “Search Everything”. &lt;br /&gt;Some nifty features to add would have been&lt;br /&gt;1) Search inside compressed files and maybe&lt;br /&gt;2) Catalog generation for offline media like CDs/DVDs.&lt;br /&gt;&lt;br /&gt;Bharat has written a nice blog post  on it called "&lt;a href="http://9tailedfox.wordpress.com/2010/10/28/search-everything-a-wonderful-utility-to-reduce-file-searches/" rel="bookmark" title="Permanent Link to Search Everything – A wonderful utility to reduce file searches"&gt;Search Everything – A wonderful utility to reduce file&amp;nbsp;searches&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Recently reinstalled Windows/Ubuntu and had to reinstall all the stuff.&lt;br /&gt;&lt;br /&gt;I was using the old blog editor in blogger and managed to lose nearly 75% of a blog.&lt;br /&gt;No undo function to revert to previous version of my blog. Searched for a work-around in blogger. &lt;br /&gt;Nearly 3 hours of hard-work gone down the drain. &lt;br /&gt;Found these GUI utilities for Ubuntu and Windows to hold ALL copy-paste stuff from the clipboard.&lt;br /&gt;&lt;br /&gt;1) &lt;b&gt; Glipper &lt;/b&gt;the multiple copies clipboard manager on Ubuntu Gnome Desktop&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;#a) Installs Glipper the multiple copies clipboard manager into Ubuntu Gnome Desktop&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;apt-get install glipper &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;#b) Right click on the "Windows Quicklaunch Bar" and Add to Panel-&amp;gt;Clipboard manager&lt;/i&gt;&lt;br /&gt;&lt;i&gt;#c) Click on any of the previous copies to get the copy-paste you need.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;2) Nautilus elementary -&amp;gt; Elegant Gnome. Making the desktop look neat.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http://gnome-look.org/content/show.php/Elegant+Gnome+Pack?content=127826&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Found it from somewhere inside http://lifehacker.com/tag/linux/!!)&lt;br /&gt;&lt;br /&gt;3) Also &lt;b&gt;Clipboard Manager for Windows &lt;/b&gt;for extending the basic Windows clipboard.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://space.dl.sourceforge.net/project/clipman/Clipman/v1.0/ClipMan_Setup.msi"&gt;http://space.dl.sourceforge.net/project/clipman/Clipman/v1.0/ClipMan_Setup.msi&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: May require .net framework 2.0.50727 to run if it's not already installed.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Easily downloadable&amp;nbsp; from this &lt;a href="http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;amp;displaylang=en" target="_blank"&gt;site&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-4295220305373187437?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/4295220305373187437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/utils-for-linux-and-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4295220305373187437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/4295220305373187437'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/utils-for-linux-and-windows.html' title='Utils for Linux and Windows'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7691871557991433729</id><published>2010-09-24T03:57:00.000-07:00</published><updated>2010-10-09T11:49:31.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='apprenticeship-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='why'/><category scheme='http://www.blogger.com/atom/ns#' term='record-what-you-learn'/><category scheme='http://www.blogger.com/atom/ns#' term='applied'/><category scheme='http://www.blogger.com/atom/ns#' term='rationale'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='share-what-you-learn'/><title type='text'>Why write technical blog posts Part 1</title><content type='html'>&lt;b&gt;&lt;/b&gt;&lt;br /&gt;Technical blogs help to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Record and speed-up the process of learning a new topic.&lt;/li&gt;&lt;li&gt;Can be used as learning devices.&amp;nbsp; &lt;/li&gt;&lt;li&gt;Provide a useful format for note-taking as you learn new things.&lt;/li&gt;&lt;li&gt;Sharing and growing knowledge with others.&lt;/li&gt;&lt;li&gt;Provide invaluable feedback necessary for your own growth.&lt;/li&gt;&lt;li&gt;Capture the essence of what you learned during research&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Technical blogs should evolve from one-liners to concise researched posts.&lt;br /&gt;They should act as brain-dumps of all your research.&lt;br /&gt;&lt;br /&gt;Research is a frightfully expensive activity with loads of context building up as you search.&lt;br /&gt;What happens after to all this invaluable context after you spend a week or more researching it?&lt;br /&gt;It evaporates within days of research as you move on to other things.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The beginners mind full of questions is an invaluable resource.&lt;br /&gt;Unfortunately it's impossible to retain as you learn more and more!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Slowly the questions give way to answers...&lt;br /&gt;Only for more questions to pop-up... with answers following slowly.&lt;br /&gt;The mystery thickens fast as you try to satisfy your quest for understanding.&lt;br /&gt;&lt;br /&gt;Researching, reading books, articles, blogs that you browse on the Net, experimenting, theorising, modelling.&lt;br /&gt;All these go into the steaming cauldron of your quest....&lt;br /&gt;&lt;br /&gt;Slowly the mists part to slowly yield insights into what makes the thing tick!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Writing and Revising your blogs is a definite way to nurture and match this process of&amp;nbsp; growth.&lt;br /&gt;The very process of writing simply and clearly forces you to seek out the core of the concept.&lt;br /&gt;This is THE most valuable gift to the technical blogger - fuelling his own growth while helping others on the path.&lt;br /&gt;&lt;br /&gt;Innocence yielding to Experience yielding (very) slowly to Mastery.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Not only does it capture the questions and answers you found.&lt;br /&gt;It can very easily form the basis for helping out someone on the same path.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;All this started when one of my friends mailed me asking me how come I was suddenly referring to so many books and all suddenly?&lt;br /&gt;I realised that the actual query was more like:&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;1) Why are you writing so many Tech-Info posts all of a sudden?&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2) Whats with the constant chanting of "Apprenticeship Patterns" mantra?&lt;/i&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_281566392"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;By the way for those who are new to this stuff: &lt;br /&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/"&gt;Apprenticeship Pattern&lt;/a&gt;s is a print/online book which describes the long &lt;u&gt;journey&lt;/u&gt; of a Master Craftsman.&lt;br /&gt;The Looong journey from Apprentice to JourneyMan to Master.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One of the activities of a good apprentice is to &lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html"&gt;"&lt;span class="chapter"&gt;&lt;/span&gt;Construct Your Curriculum"&lt;/a&gt;, This involves the related patterns&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Build up a&amp;nbsp;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#reading_list"&gt;Reading List&lt;/a&gt; over time&lt;/li&gt;&lt;li&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#study_the_classics"&gt;Study the Classics:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="sect1"&gt;&lt;/span&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#dig_deeper"&gt;Dig Deeper&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch05.html#record_what_you_learn"&gt;Record What You Learn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="sect1"&gt;&lt;/span&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch05.html#share_what_you_learn"&gt;Share What You Learn&lt;/a&gt; (hence these blog posts)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;It  is not humanly possible to read ALL these books in such a short time  esp. as they're meant to be reflected upon and applied to your specific  situation.&lt;br /&gt;&lt;br /&gt;This is just compiling a &lt;span class="sect1"&gt;&lt;/span&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch06.html#reading_list"&gt;Reading List&lt;/a&gt;. Filtering into a Classics-only list will have to wait a few days.&lt;br /&gt;&lt;br /&gt;These posts are just for future use (&lt;span class="sect1"&gt;&lt;/span&gt;&lt;a href="http://apprenticeship-patterns.labs.oreilly.com/ch05.html#record_what_you_learn"&gt;Record What You Learn&lt;/a&gt;).&lt;br /&gt;And maybe a resource for like-minded people out there.&lt;br /&gt;People with the same problems, questions and wanting answers from the masters of the programming world.&lt;br /&gt;&lt;br /&gt;Actually I'd found these books about 2 years back but only had a mental todo book list.&lt;br /&gt;It's too much "wasted-time and effort"..... UNLESS it saves you time and effort in the long run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-7691871557991433729?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7691871557991433729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/why-write-technical-blog-posts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7691871557991433729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7691871557991433729'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/why-write-technical-blog-posts.html' title='Why write technical blog posts Part 1'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2898348357580573486</id><published>2010-09-24T00:40:00.000-07:00</published><updated>2010-09-24T01:51:13.376-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='psychology'/><category scheme='http://www.blogger.com/atom/ns#' term='jerry-weinberg'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='gerald-weinberg'/><category scheme='http://www.blogger.com/atom/ns#' term='team-work'/><title type='text'>The Genius of Jerry Weinberg - The Psyche of Programming</title><content type='html'>&lt;b&gt;Gerald (Jerry) Weinberg - The Programmer Psychologist&lt;/b&gt;, &lt;b&gt;Writer, Systems Thinker:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.geraldmweinberg.com/Site/Home.html"&gt;http://www.geraldmweinberg.com/Site/Home.html&lt;/a&gt; &lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.geraldmweinberg.com/Site/Books.html" target="_blank"&gt;http://www.geraldmweinberg.com/Site/Books.html&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This guys papers, articles and books on &lt;b&gt;"&lt;/b&gt;&lt;span style="line-height: 20px;"&gt;Helping Smart People be Happy"&lt;/span&gt; are quoted on books by most of the Experts in any domain of programming.&lt;br /&gt;Check out his articles/books: &lt;a href="http://www.amazon.com/s/ref=nb_sb_ss_i_0_9?url=search-alias%3Dstripbooks&amp;amp;field-keywords=gerald+weinberg&amp;amp;x=0&amp;amp;y=0&amp;amp;sprefix=gerald+we"&gt;All books written by Gerald Weinberg on Amazon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;See below for customer reviews on Amazon:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt; &lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Amazon Customer Reviews/Comments on Jerry Weinberg's books:&lt;/u&gt;&lt;br /&gt;The Classic :&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Psychology-Computer-Programming-Silver-Anniversary/product-reviews/0932633420/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" target="_blank"&gt;The Psychology of Computer Programming: Silver Anniversary Edition&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Guide for Interviewers and Interviewees&lt;/b&gt;:&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.amazon.com/Hiring-Knowledge-Workers-Techies-Nerds/product-reviews/0932633595/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" target="_blank"&gt;Hiring The Best Knowledge Workers, Techies &amp;amp; Nerds: The Secrets &amp;amp; Science Of Hiring&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Problem Solving (useful for OnTheJob and Interviews too):&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.amazon.com/Are-Your-Lights-Figure-Problem/product-reviews/0932633161/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" target="_blank"&gt;Are Your Lights On?: How to Figure Out What the Problem Really Is&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Guide for Technical Leaders: &lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.amazon.com/Becoming-Technical-Leader-Problem-Solving-Approach/product-reviews/0932633021/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" target="_blank"&gt;Becoming a Technical Leader: An Organic Problem-Solving Approach&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Guide on becoming a Consultant: &lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.amazon.com/Secrets-Consulting-Giving-Getting-Successfully/product-reviews/0932633013/ref=cm_cr_dp_hist_4?ie=UTF8&amp;amp;showViewpoints=0&amp;amp;filterBy=addFourStar" target="_blank"&gt;Secrets of Consulting: A Guide to Giving and Getting Advice Successfully&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Know Thyself:&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.amazon.com/Understanding-Professional-Programmer-Gerald-Weinberg/product-reviews/0932633099/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" target="_blank"&gt;Understanding the Professional Programmer&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Systems Thinking:&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://www.amazon.com/General-Principles-Systems-Design-Weinberg/product-reviews/0932633072/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1" target="_blank"&gt;Systems Thinking: General Principles of Systems Design&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2898348357580573486?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2898348357580573486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/genius-of-jerry-weinberg-psyche-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2898348357580573486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2898348357580573486'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/genius-of-jerry-weinberg-psyche-of.html' title='The Genius of Jerry Weinberg - The Psyche of Programming'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-7070578447711296840</id><published>2010-09-23T13:34:00.000-07:00</published><updated>2010-09-24T06:22:24.853-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application'/><category scheme='http://www.blogger.com/atom/ns#' term='apprenticeship-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='freemind'/><category scheme='http://www.blogger.com/atom/ns#' term='experiences'/><category scheme='http://www.blogger.com/atom/ns#' term='mindmap'/><category scheme='http://www.blogger.com/atom/ns#' term='mind-map'/><title type='text'>Mindmap of my observations/experiences in "Apprenticeship Patterns Applied"</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_yoTID-huQvo/TJu5qU9jxTI/AAAAAAAAAD0/l5JqVz6MeNk/s1600/Apprenticeship+Patterns+Applied+%28jpeg+version%29.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="371" src="http://2.bp.blogspot.com/_yoTID-huQvo/TJu5qU9jxTI/AAAAAAAAAD0/l5JqVz6MeNk/s640/Apprenticeship+Patterns+Applied+%28jpeg+version%29.jpeg" width="640" /&gt;&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/6025089615285380514-7070578447711296840?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/7070578447711296840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/mindmap-of-my-observationsexperiences.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7070578447711296840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/7070578447711296840'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/mindmap-of-my-observationsexperiences.html' title='Mindmap of my observations/experiences in &quot;Apprenticeship Patterns Applied&quot;'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yoTID-huQvo/TJu5qU9jxTI/AAAAAAAAAD0/l5JqVz6MeNk/s72-c/Apprenticeship+Patterns+Applied+%28jpeg+version%29.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-2233626640565533743</id><published>2010-09-23T12:38:00.000-07:00</published><updated>2010-09-23T13:23:27.745-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='papers'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='forum'/><category scheme='http://www.blogger.com/atom/ns#' term='get-answers'/><category scheme='http://www.blogger.com/atom/ns#' term='ask-questions'/><title type='text'>How to find an answer to (some) of your questions - in Life, the Internet and Other Forums ;-) !!!</title><content type='html'>&lt;a href="http://home.clara.net/rod.beavon/learning.htm"&gt;&lt;b&gt;Learning to Learn (lessons from the lab)&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/exec/obidos/ISBN=0671212095/theradicalacademA/"&gt;&lt;b&gt;How to Read a Book (Amazon)&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.radicalacademy.com/adlerreaddifbk.htm"&gt;How to Read a Difficult Book (Article)&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Heuristics and Problem solving&lt;/b&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/How_to_solve_it"&gt;+ How To Solve It&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/How_to_solve_it_by_computer"&gt;+ How To Solve It By Computer&lt;/a&gt; &lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;+Asking Questions to Solve Problems &lt;/b&gt;&lt;b&gt;on Internet Forums:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.cs.indiana.edu/mit.research.how.to/section3.4.html"&gt;&lt;b&gt;+ Get Connected section&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;/b&gt;&amp;nbsp; of&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;b&gt;&lt;a href="http://www.cs.indiana.edu/mit.research.how.to"&gt;"How to do Research at MIT AI Labs"&lt;/a&gt;&lt;/b&gt;&lt;/b&gt;&lt;i&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;a href="http://catb.org/%7Eesr/faqs/smart-questions.html"&gt;&lt;i&gt;&lt;b&gt;+ "How to Ask Questions the Smart Way &lt;/b&gt;&lt;b&gt;(on forums)&lt;/b&gt;&lt;b&gt;"&lt;/b&gt;&lt;b&gt;by Eric S. Raymond&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.catb.org/esr/faqs/smart-questions.html#classic"&gt;&lt;i&gt;&lt;b&gt;Questions NOT to ask&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.catb.org/esr/faqs/smart-questions.html#examples"&gt;&lt;i&gt;&lt;b&gt;Examples of Good and BAD questions&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://catb.org/%7Eesr/faqs/smart-questions.html#before"&gt;Do Your Homework/Due Diligence&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.catb.org/esr/faqs/smart-questions.html#asking"&gt;&lt;i&gt;&lt;b&gt;When You Ask&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.catb.org/esr/faqs/smart-questions.html#id383575%20"&gt;&lt;i&gt;&lt;b&gt;If You Can't Get An Answer&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.catb.org/esr/faqs/smart-questions.html#keepcool"&gt;&lt;i&gt;&lt;b&gt;&amp;nbsp;Dealing With Rudeness&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;b&gt;&lt;a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html"&gt;+ Collected Advice on Research and Writing&lt;/a&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;b&gt;&lt;a href="http://blizzard.cs.uwaterloo.ca/keshav/home/Papers/data/07/paper-reading.pdf"&gt;+ Brief advice on How to sift through research papers in your domain&lt;/a&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-2233626640565533743?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/2233626640565533743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/how-to-find-answer-to-some-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2233626640565533743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/2233626640565533743'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/how-to-find-answer-to-some-your.html' title='How to find an answer to (some) of your questions - in Life, the Internet and Other Forums ;-) !!!'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-1331524595132183390</id><published>2010-09-21T08:04:00.000-07:00</published><updated>2010-09-24T06:07:40.532-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='add-ons'/><category scheme='http://www.blogger.com/atom/ns#' term='speed-up'/><category scheme='http://www.blogger.com/atom/ns#' term='utils'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>List of useful addons for FireFox (with links) Part 1</title><content type='html'>&lt;u&gt;&lt;b&gt;&amp;nbsp;Addons for firefox &lt;/b&gt;&lt;/u&gt;(3.6.10)&lt;br /&gt;&lt;br /&gt;+ &lt;b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/9924/" target="_blank"&gt;Pixlr Grabber&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;b&gt;Description: &lt;/b&gt;Making screen grabs and pulling down images from the  web just got a bit more easy. With the Pixlr grabber add-on you can  choose to Edit, Share, Save or Copy your final grabs. You also get the  possibility to right-click any image or background to edit&lt;br /&gt;&lt;b&gt;D&lt;/b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/9924/addon-9924-latest.xpi?src=search" target="_blank"&gt;&lt;b&gt;ownload: &lt;/b&gt;Add to Firefox&lt;/a&gt;&lt;/div&gt;+&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/14077/" target="_blank"&gt; &lt;b&gt;ClickCutter AutoCopy&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;Highlight a text and automatically Copy it to the clipboard.&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;Based on unique Smart Autocopy technology!&lt;br /&gt;You have full control of what to copy and what not to copy when you highlight text.&lt;br /&gt;Middle button Paste option.&lt;br /&gt;Super-easy.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/14077/addon-14077-latest.xpi?src=addondetail" target="_blank"&gt;&lt;b&gt;Download: &lt;/b&gt;Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/14077/addon-14077-latest.xpi?src=addondetail" target="_blank"&gt;       &lt;/a&gt;       &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;+&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/14215/" target="_blank"&gt; &lt;b&gt;ClickCutter AutoSearch&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;Highlight text and AUTOMATICALLY SEARCH it in your favorite search site.&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;Includes:&lt;br /&gt;- Automatic Copy of highlighted text (AUTOCOPY)&lt;br /&gt;- Automatic websearch for highlighted text (AUTOSEARCH).&lt;br /&gt;- Middle button Paste&lt;br /&gt;NO annoying context menus !&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/14215/addon-14215-latest.xpi?src=addondetail" target="_blank"&gt;&lt;b&gt;Download:&lt;/b&gt; Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/14215/addon-14215-latest.xpi?src=addondetail" target="_blank"&gt;       &lt;/a&gt;       &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+ &lt;b&gt;Lizardtech DjVu&lt;/b&gt; &lt;u&gt;&lt;i&gt;(Many rare ebooks are available in this format)&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/u&gt;:&lt;br /&gt;&lt;a href="http://www.djvuzone.org/" target="_blank"&gt;DjVu&lt;/a&gt; is a web-centric format and software platform for distributing  documents and images. DjVu can advantageously replace PDF, PS, TIFF, JPEG, and GIF for distributing scanned documents, digital documents, or high-resolution pictures.  DjVu content downloads faster, displays and renders faster,  looks nicer on a screen, and consume less client resources than competing  formats. DjVu images display instantly and can be smoothly zoomed and  panned with no lengthy re-rendering. DjVu is used by &lt;a href="http://www.djvuzone.org/links/index.html" target="_blank"&gt;hundreds of academic, commercial, governmental, and non-commercial web sites&lt;/a&gt; around the world.&lt;br /&gt;&lt;a href="http://djvu.sourceforge.net/doc/man/djview4.html" target="_blank"&gt;DjView4&lt;/a&gt; is a new  portable DjVu viewer and browser plugin.&lt;br /&gt;&lt;u&gt;&lt;b&gt;Download:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;a href="http://djvu.sourceforge.net/" target="_blank"&gt;http://djvu.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/12/" target="_blank"&gt;&lt;b&gt;All In One Gestures&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;This extension allows you to execute common commands using mouse gestures, rocker navigation, scroll wheel navigation and page..&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/12/addon-12-latest.xpi?src=search" target="_blank"&gt;&lt;u&gt;&lt;b&gt; Download: &lt;/b&gt;&lt;/u&gt;Add to Firefox&lt;/a&gt;&lt;/div&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/12/addon-12-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+ &lt;b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1027/" target="_blank"&gt;All In One Sidebar&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;AiOS lets you open various windows as sidebar panels, and quickly switch  between them. So it put an end to the window chaos! In addition to  bookmarks and history it opens dialogues such as downloads, add-ons and  more in the sidebar.&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:&lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1027/addon-1027-latest.xpi?src=search" target="_blank"&gt; Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1027/addon-1027-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/744/" target="_blank"&gt;Wikipedia Lookup Add-on&lt;/a&gt;&lt;u&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-left: 40px;"&gt;Looks up up the selected word in the Wikipedia encyclopedia in the language specified in your user preferences.&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:&lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/744/addon-744-latest.xpi?src=search" target="_blank"&gt; Add to Firefox&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+ &lt;a href="http://www.google.co.in/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBcQFjAA&amp;amp;url=https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F3235%2F&amp;amp;ei=81GYTOOOKZGCvgPO-Yn6DA&amp;amp;usg=AFQjCNFB_FFNXWZW8uQ46ide2iqY1ZbZJQ&amp;amp;sig2=P_A5lH4SKitltZH1hTS6AQ" target="_blank"&gt;&lt;b&gt;CHMReader&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;An extension to make firefox support Compiled HTML(.chm) file.&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:&lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/3235/platform:2/addon-3235-latest.xpi?src=addondetail" target="_blank"&gt;&lt;u&gt;&lt;b&gt; &lt;/b&gt;&lt;/u&gt;Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/3235/platform:5/addon-3235-latest.xpi?src=addondetail" target="_blank"&gt;&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/3235/platform:5/addon-3235-latest.xpi?src=addondetail" target="_blank"&gt;       &lt;/a&gt;       &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1407/" target="_blank"&gt;&lt;b&gt;ClipMarks&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Clipmarks lets you clip and share specific parts of articles, blog posts  or anything else you read on the web.  With our newly integrated  Amplify service, you can post clips directly to Twitter or Facebook - or  share them on &lt;a href="http://clipmarks.com/" target="_blank"&gt;clipmarks.com&lt;/a&gt; and more.&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:&lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1407/addon-1407-latest.xpi?src=search" target="_blank"&gt; Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1407/addon-1407-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;+ &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1368/" target="_blank"&gt;&lt;b&gt;ColorfulTabs&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;u&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;The most beautiful yet the simplest add-on that makes a strong colorful  appeal. Colors every tab in a different color and makes them easy to  distinguish while beautifying the overall appearance of the interface.  For Seamonkey &amp;amp; Flock. An essential.&lt;br /&gt;&lt;u&gt;&lt;b&gt; Download:&lt;/b&gt;&lt;/u&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1368/addon-1368-latest.xpi?src=search" target="_blank"&gt;&lt;u&gt;&lt;b&gt; &lt;/b&gt;&lt;/u&gt;Add to Firefox&lt;/a&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1368/addon-1368-latest.xpi?src=search" target="_blank"&gt;       &lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/2410/addon-2410-latest.xpi?src=search" target="_blank"&gt; &lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-1331524595132183390?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/1331524595132183390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-addons-for-firefox-also.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1331524595132183390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1331524595132183390'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-addons-for-firefox-also.html' title='List of useful addons for FireFox (with links) Part 1'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-5355267167226461557</id><published>2010-09-21T04:45:00.000-07:00</published><updated>2011-01-02T02:20:36.810-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='packages'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='apt-get'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='list'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>List of useful packages for C/C++ development on Ubuntu Linux Part 1</title><content type='html'>&lt;b&gt;Linux in a Nutshell: &lt;/b&gt;A superb bible for looking up Linux commands and options.&lt;i&gt; http://oreilly.com/catalog/9780596154493&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Installing Development related packages on Ubuntu&lt;/b&gt;:&lt;br /&gt;&lt;a href="http://software.jessies.org/salma-hayek/ubuntu-setup.html" style="font-style: italic;" target="_blank"&gt;http://software.jessies.org/salma-hayek/ubuntu-setup.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can add repositories to download packages by editing this file:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;vim /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html"&gt;For Eclipse C++ CDT installation please refer to this blog post.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script:&lt;/b&gt;&lt;br /&gt;A very useful command to record your command-line session actions for later use and replay later:&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; script -a -f -t&amp;nbsp; 2&amp;gt; timingfile&amp;nbsp; &lt;/i&gt;&lt;i&gt;mydemo.log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;i&gt;#append, flush-writes, timestamp)&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptreplay timingfile mydemo.log&amp;nbsp;&amp;nbsp;&amp;nbsp; #replays with timing as per timestamps captured above&lt;/i&gt;&lt;br /&gt;For further info see: &lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; man script&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; man scriptreplay &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Links:&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;http://www-users.cs.umn.edu/~skim/cs1901/script.html &lt;/i&gt;&lt;br /&gt;&lt;i&gt;http://devdaily.com/blog/post/linux-unix/use-unix-linux-script-command-record-your-command-line-i-o&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.howtogeek.com/howto/20355/use-ctrlaltdel-for-task-manager-in-linux-to-kill-tasks-easily/"&gt;Killing Processes on Ubuntu with 3 Finger salute&lt;/a&gt;(How-to-Geek)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;gpm:&lt;/b&gt; A command-line text mode clipboard manager with mouse integration.&lt;br /&gt;Use left mouse button to select and copy text and paste with middle mouse button.&lt;br /&gt;Super useful installation/usage howto from Gentoo: &lt;i&gt;http://www.gentoo.org/doc/en/gpm.xml#doc_chap4&lt;/i&gt;&lt;i&gt; &lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;gpm options: http://www.oreillynet.com/linux/cmd/cmd.csp?path=g/gpm &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;apt-get install -y gpm &lt;/b&gt;#General Purpose Mouse server (clipboard manager for command line&lt;/i&gt; &lt;br /&gt;NOTE: You can set the system default packages on Ubuntu using debconf-set-selections and debconf-get-selections&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Glipper: &lt;/b&gt;Clipboard manager for Gnome. It retains all your text copies.&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;#a) Installs Glipper the multiple copies clipboard manager into Ubuntu Gnome Desktop&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;apt-get install glipper &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;#b) Right click on the "Windows Quicklaunch Bar" and Add to Panel-&amp;gt;Clipboard manager&lt;/i&gt;&lt;br /&gt;&lt;i&gt;#c) Click on any of the previous copies to get the copy-paste you need. &lt;/i&gt;&lt;/div&gt;I went through the entire list of packages available and selected a few below from the Development (meta-package?) of Ubuntu (10.04.1 ubuntu desktop 32 bit)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[COMMON-DEV]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get update &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#updates your packages&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y gcc&lt;/span&gt;&lt;span style="font-style: italic;"&gt; #GNU C compiler&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y gcc-mingw32 &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Cross Compilation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y g++&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y make&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y linux-headers-`uname -r` build-essential&amp;nbsp; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#C/C++ header files for building C/C++ programs&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get update eclipse eclipse-pde &lt;/span&gt;#Update Eclipse and plugin-dev-env for connect to p2 repository of CDT for installing the CDT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y vim-gtk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y c++-annotations&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y c-cpp-reference &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Reference for C/C++&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y cpp-doc &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#C++ documentation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y manpages-dev glibc-doc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[PACKAGE-MGMT]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;b&gt;apt-get install -y apt-build&lt;/b&gt; #GUI for apt-get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install &lt;/span&gt;&lt;span style="font-style: italic;"&gt;-y &lt;/span&gt;&lt;span style="font-style: italic;"&gt;ceve #Parse linux package dependencies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[PYTHON]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install -y python-dev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; idle2.6&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt;&lt;b&gt; cableswig &lt;/b&gt;#Python/Tcl wrappers for C++ code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; boa-constructor #RAD tool for python/wxwidgets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[PROFILERS]&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; gprof&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; kprof #KDE util for gprof analysis/viewing&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; valgrind&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; cachegrind&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;   &lt;b&gt;apt-get &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;b&gt; alleyoop&lt;/b&gt; &lt;/span&gt;#Valgrind related&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; valkyrie&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#GUI for valgrind&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; kcachegrind #KDE Gui for valgrind&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; sysprof&lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt; #System-wide CPU profiling&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; systemtap systemtap-client systemtap-grapher&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Collect data on a live running linux box&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get install -y syslog syslog-ng &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Interprocess application logging facility&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[TESTING]&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; libcppunit-doc libcppunit-dev&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt; #C++ unit-testing lib&lt;/span&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; subunit&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Run and Save remote test results for later use&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; stress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt; #Stress test your computer with heavy load&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; httest #Simulate client/server actions with pattern-matching for test validation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; fuzz #Stress test s/w with random inputs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[DEBUG]&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; gdb gdb-doc&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Debug programs&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; gdbserver&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Remotely debug from another system where GDB is installed.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; ddd&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#GUI for gdb&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; bashdb&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Bash debugger&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; zshdb zsh-dbg #debugger and debug symbols for ZSH&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; gcov&lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt; #Source code coverage analyzer&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; ggcov&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#GUI for gcov Source code coverage analyzer&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; lcov&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#HTML and directory-wise view of gcov output&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; collectd-dbg&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#statistics collection and monitoring daemon&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; wireshark wireshark-dev&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Network debugging&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install tack-dbg #Diagnostic tool for correctness of terminfos.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic;"&gt;   &lt;span style="font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;b&gt; tau tau-racy tau-examples&lt;/b&gt; &lt;/span&gt;#Multithread/multiproc tuning and analysis with GUI&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; leaktracer&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Simple C++ leak tracer&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; electric-fence&lt;/b&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; #malloc debugger&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; duma&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Fork of electric-fence library with added features&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   &lt;b&gt;apt-get &lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; winpdb&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#GUI debugger for Python&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; gtkparasite #Python interactive debugger for running GTK+ code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; happycoders-libdbg-dev #allows modern debugging paradigms for Large codebase&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; happycoders-libsocket-dev #&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; bless-hex-editor #Hex Editor&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; hexdiff &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt;#Visual hex difference analyzer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get install kompare #diff and merge util for files and dirs.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;   &lt;b&gt;apt-get &lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; tkdiff &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic;"&gt;#diff/merge util in TK&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;/b&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;b&gt; ht&lt;/b&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;#Viewer/Editor/Analyser for all kinds of executables.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; abi-compliance-checker #C++ sharedlib binary compatibility checker&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;apt-get &lt;/span&gt;&lt;span style="font-style: italic;"&gt;install -y &lt;/span&gt;&lt;span style="font-style: italic;"&gt; tesq #Decoding of terminal escape sequences used by Unix Terminals&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-5355267167226461557?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/5355267167226461557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-packages-for-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5355267167226461557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/5355267167226461557'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/list-of-useful-packages-for-development.html' title='List of useful packages for C/C++ development on Ubuntu Linux Part 1'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-1400532066895613259</id><published>2010-09-20T08:32:00.000-07:00</published><updated>2011-11-24T21:45:54.149-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='updation'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='CDT'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='profiling'/><category scheme='http://www.blogger.com/atom/ns#' term='linux-tools'/><title type='text'>Installing Eclipse C++ CDT with Linux Tools for debugging and profiling applications on Linux</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div id="wmd-preview"&gt;&lt;u&gt;&lt;b&gt; &lt;/b&gt;&lt;/u&gt;The Eclipse incubation project Linux Tools integrates C/C++ Development tools.&lt;br /&gt;It's a GUI plugin to integrate tools like Valgrind, GProf, GCov, SystemTap etc into the Eclipse C++ CDT IDE.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Articles on Linux Tools]&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.ibm.com/developerworks/opensource/library/os-eclipse-helios"&gt;IBM DeveloperWorks&lt;/a&gt; (search for Linux Tools)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.redhat.com/magazine/015jan06/features/valgrind/"&gt;RedHat Article&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.eclipse.org/downloads/packages"&gt;Download page of Eclipse Helios&lt;/a&gt; gives 2 good alternatives  for C++ developers on Linux:   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliosr"&gt;&lt;b&gt;&lt;i&gt;Download Eclipse IDE for C/C++ Developers, (87 MB) without LinuxTools&lt;/i&gt;&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/downloads/packages/eclipse-ide-cc-linux-developers-includes-incubating-components/heliosr"&gt;&lt;b&gt;&lt;i&gt;Download Eclipse IDE for C/C++ Linux Developers (includes Incubating components), (120 MB) &lt;/i&gt;&lt;/b&gt;with inbuilt LinuxTools like valgrind, gprof, systemtap etc.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;&lt;a href="http://wiki.eclipse.org/Linux_Tools_Project/PluginInstallHelp"&gt;Installing/Updating LinuxTools using UpdateManager&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&amp;nbsp; (Note: You may need to do a Java6 JRE update as described below first.)&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.eclipse.org/tools/cdt/releases/helios"&gt;Updating Eclipse Helios CDT with UpdateManager&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-helios/index.html"&gt;&lt;u&gt;&lt;b&gt; Helios Installation how-to&lt;/b&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;Java6 JRE update&lt;/b&gt;&lt;/u&gt; :&lt;code&gt;apt-get install sun-java6-jre&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;Unzip the Eclipse tarball and run the eclipse binary from inside the tarball:&lt;/b&gt;&lt;/u&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;tar -zxf eclipse-cpp-helios-linux-gtk.tar.gz&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/i&gt;&lt;code&gt; &amp;amp;&amp;amp; ./eclipse&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Website]&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/linuxtools/index.php"&gt;&lt;span style="font-weight: bold;"&gt;Eclipse Linux Tools website&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/linuxtools/projectPages/valgrind/"&gt;&lt;span style="font-weight: bold;"&gt;Valgrind support page&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.valgrind.org/downloads/guis.html"&gt;&lt;span style="font-weight: bold;"&gt;Other "Valgrind Frontends/GUIs"&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.open-works.net/projects/valkyrie.html"&gt;&lt;span style="font-weight: bold;"&gt;Valkyrie Memcheck Frontend&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;[Usage]&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/Linux_Tools_Project/Valgrind/User_Guide"&gt;&lt;span style="font-weight: bold;"&gt;Valgrind User Guide (Wiki)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/linuxtools/projectPages/valgrind/"&gt;&lt;span style="font-weight: bold;"&gt;How-to configure Valgrind plugin of Eclipse (with Video Demos)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/linuxtools/projectPages/callgraph/"&gt;&lt;span style="font-weight: bold;"&gt;How-to configure Callgrind plugin of Eclipse&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://valgrind.org/docs/manual/quick-start.html#quick-start.intro"&gt;&lt;span style="font-weight: bold;"&gt;Valgrind Quick Start Guide&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.linuxjournal.com/article/7930"&gt;&lt;span style="font-weight: bold;"&gt;Linux Journal How-To (with screen-shots)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kapo-cpp.blogspot.com/2007/02/detecting-memory-leak.html"&gt;&lt;span style="font-weight: bold;"&gt;How-to use Valgrind with Eclipse as an External Tool&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;[Docs]&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tldp.org/HOWTO/Valgrind-HOWTO/"&gt;&lt;span style="font-weight: bold;"&gt;Valgrind How-To from The Linux Documentation Project&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/pdf/Developer_Guide/Red_Hat_Enterprise_Linux-6-Developer_Guide-en-US.pdf"&gt;Red Hat C++ Developer Guide (PDF) on how to configure Eclipse CDT, GDB, Valgrind&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://valgrind.org/docs/manual/manual.html"&gt;&lt;span style="font-weight: bold;"&gt;Valgrind User manual&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.network-theory.co.uk/docs/valgrind/index.html"&gt;&lt;span style="font-weight: bold;"&gt;Valgrind 3.3 debugging and profiling manual&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;[Whitepapers]&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://valgrind.org/docs/manual/cg-tech-docs.html"&gt;&lt;span style="font-weight: bold;"&gt;Notes on &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;CacheGrind Design and Implementation&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://valgrind.org/docs/manual/mc-tech-docs.html"&gt;&lt;span style="font-weight: bold;"&gt;Notes on &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;MemGrind Design and Implementation&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.4263&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;&lt;span style="font-weight: bold;"&gt;Paper on potential uses of Valgrind Framework for instrumentation&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[Interview]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://dot.kde.org/2006/02/20/interview-valgrind-author-julian-seward"&gt;Interview with Valgrind Author Julian Seward&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;[&lt;b&gt;Cpp Check tool integration with Eclipse]&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;cppcheclipse i&lt;/b&gt;ntegration of with Eclipse CDT from (google code):&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;About:&lt;/b&gt; http://code.google.com/a/eclipselabs.org/p/cppcheclipse/&lt;/i&gt; &lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;Wiki: &lt;/b&gt;http://code.google.com/a/eclipselabs.org/p/cppcheclipse/wiki/Installation&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;Download: &lt;/b&gt;http://code.google.com/a/eclipselabs.org/p/cppcheclipse/downloads/list &lt;/i&gt;&lt;/li&gt;&lt;/ul&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/6025089615285380514-1400532066895613259?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/1400532066895613259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1400532066895613259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1400532066895613259'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html' title='Installing Eclipse C++ CDT with Linux Tools for debugging and profiling applications on Linux'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-3832487802895850857</id><published>2010-08-19T12:39:00.000-07:00</published><updated>2011-05-18T02:47:50.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internals'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='operating-system'/><category scheme='http://www.blogger.com/atom/ns#' term='under-the-hood'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Under The Hood Look At Operating Systems Internals with Windows and Linux</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;[08-Sep-2010]&lt;br /&gt;&lt;br /&gt;Extremely Recommended reading:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Checkout this Blog on Operating Systems (Linux And Windows) by Gustavo Duartes &lt;a href="http://duartes.org/gustavo/blog/"&gt;http://duartes.org/gustavo/blog/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;This blog has some simply delicious diagrams with 1-2 page explanations of Paging, Virtual Memory, Caching, Physical level RAM, Snapshot of a Process in Memory.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This is a simply superb blog. "A picture is worth a thousand words!!". The articles have some high quality illustrations which esp. for visual learners is a delight. Just working through the flow in the diagrams makes the text just an add-on (to explicitly elaborate on any point you might have missed).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This helps you get an "all-at-once" picture of the entire flow and inter-relationships between different parts (esp. if you're a visual/top-down learner).&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;I learned more in 30 minutes of analyzing these lovely diagrams than boring holes in all the below books for days on end.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Once you've gone through this blog the below books become so much more intelligible:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0471364142"&gt;Operating System Concepts&lt;/a&gt; 5th ed. by Galvin et. al.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Understanding-Linux-Kernel-Third-Daniel/dp/0596005652"&gt;Understanding the Linux Kernel 3rd ed&lt;/a&gt;. by Bovet and Cesati&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Linux-System-Programming-Talking-Directly/dp/0596009585"&gt;Linux System Programming&lt;/a&gt; by Robert Love&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html"&gt;Good article on RSS and VSZ reporting by ps aux and pmap to determine memory footprint of your proces.&amp;nbsp;&lt;/a&gt;&lt;br /&gt;See the comments for some good discussion of internals &lt;br /&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/6025089615285380514-3832487802895850857?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://duartes.org/gustavo/blog/' title='Under The Hood Look At Operating Systems Internals with Windows and Linux'/><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/3832487802895850857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2010/08/operating-systems-and-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3832487802895850857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/3832487802895850857'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2010/08/operating-systems-and-linux.html' title='Under The Hood Look At Operating Systems Internals with Windows and Linux'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-1778525892723286472</id><published>2009-12-16T00:22:00.000-08:00</published><updated>2011-06-18T06:47:43.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='analogy'/><category scheme='http://www.blogger.com/atom/ns#' term='why'/><category scheme='http://www.blogger.com/atom/ns#' term='technical'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='Stub'/><title type='text'>Why we need Pointers - An Everyday Analogy using Trains/Telephone Number</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h2&gt;&lt;span class="mw-headline" id="Everyday_Analogy"&gt;Everyday Analogy&lt;/span&gt;&lt;/h2&gt;1) We regularly use pointers in everyday life when we use telephone numbers.&lt;br /&gt;2) Another notable use is in chains and trains (concrete examples of linked lists). A chain is a group of things linked together by malleable joints. These joints are easily changeable when adding/removing new links/compartments to the chain.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic;"&gt;Note : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; a)Telephone no.s give 2-way access whereas a pointer gives only 1-way access.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; b)Usually the no. of links is 1 to 3 in an access path. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;Tom ---&amp;gt; Jerry&lt;br /&gt;Tom ---&amp;gt; 1 ---&amp;gt; Jerry&lt;br /&gt;Tom ---&amp;gt; 1 ---&amp;gt; 2 ---&amp;gt; .... ---&amp;gt; N ---&amp;gt; Jerry&lt;br /&gt;&lt;/pre&gt;Here Tom calls Jerry by&lt;br /&gt;&lt;pre&gt;a)Getting the contact no. directly or indirectly from 'a friend-of-a-friend-of-a-friend'.&lt;br /&gt;b)Dialling the number.&lt;br /&gt;&lt;/pre&gt;Here the intermediate links of the chain can change the destination similar to an operator diverting your call to the concerned person in an organisation. Say Tom wants some info (from Jerry), but N on the path knows that Mortimer is a better source of info and gives Mortimer's no. instead.&lt;br /&gt;&lt;pre&gt;a)Original path:&lt;br /&gt;Tom ---&amp;gt; 1 ---&amp;gt; 2 ---&amp;gt;...N ---&amp;gt;Jerry&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;b)Redirection:&lt;br /&gt;Tom ---&amp;gt; 1 ---&amp;gt; 2 ---&amp;gt;...N ---&amp;gt; Mortimer&lt;br /&gt;&lt;/pre&gt;This is similar to shifting tracks for a train, we can easily divert the train to whatever track by using the shunting mechanism.&lt;br /&gt;---- &lt;br /&gt;Note:&lt;br /&gt;I'd contributed this article as a section on the wikipedia page for C/C++ pointers, but some time later it disappeared in the rather over zealous editing by the page maintainers who totally mangled it into bits and threw the ashes to the winds. I had to rescue it from the edit history spending a few hours to track down my original post and now it has a permanent home here. I was really gratified to get one comment from one of the reviewers there (&lt;a href="http://en.wikipedia.org/wiki/Talk:Reference_%28computer_science%29#Address_analogy"&gt;talk section&lt;/a&gt;). Really made my day that I'd managed to simply convey the heart of pointers to a non-programmer in terms they could easily identify with, understand and even explain to some one else. Why we need pointers at all in the first place.&lt;br /&gt;Good &lt;a href="http://cslibrary.stanford.edu/104/"&gt;Pointer Fun with Binky Video&lt;/a&gt; from Stanford University. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6025089615285380514-1778525892723286472?l=techtalkies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techtalkies.blogspot.com/feeds/1778525892723286472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techtalkies.blogspot.com/2009/12/why-we-need-pointers-everyday-analogy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1778525892723286472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6025089615285380514/posts/default/1778525892723286472'/><link rel='alternate' type='text/html' href='http://techtalkies.blogspot.com/2009/12/why-we-need-pointers-everyday-analogy.html' title='Why we need Pointers - An Everyday Analogy using Trains/Telephone Number'/><author><name>Gurudutt Mallapur</name><uri>http://www.blogger.com/profile/15104969388557638359</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/6858/2704/320/Gurudutt%20Mallapur.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6025089615285380514.post-8739078272788466305</id><published>2009-05-14T06:19:00.000-07:00</published><updated>2009-05-14T06:46:02.303-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>BookReview: Let Us C by Yeshavant Kanetkar</title><content type='html'>The book which opened the gates to so many others....&lt;br /&gt;(Thanks to Bhallu and of course Yashavant Kanetkar).&lt;br /&gt;&lt;br /&gt;The good thing about this book is&lt;br /&gt;1) Easy to understand language&lt;br /&gt;2) **** Diagrams to show visually things like pointer/array indexing.****.&lt;br /&gt;Helps you to literally "see" whats going on inside your pointer based code.&lt;br /&gt;3) The follow up books by the author let you dive deep into the C sea....&lt;br /&gt;&lt;br /&gt;Thank you Yashavant Kantekar Sir!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://quest.ksetindia.com/index.php/products_id/25/cPath/25/sort/2a/page/1"&gt;These are some of the other good books by him: &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://quest
