Thursday, September 23, 2010

Mindmap of my observations/experiences in "Apprenticeship Patterns Applied"

How to find an answer to (some) of your questions - in Life, the Internet and Other Forums ;-) !!!

Self-Learning


Heuristics and Problem solving


    Asking Questions on Online Forums

    + Video - Learning from Stackoverflow : http://www.youtube.com/watch?v=NWHfY_lvKIQ
















    + Video - Good Stack Overflow Citizen by Jeff Atwood : https://www.youtube.com/watch?v=HRRWDf-xB2Y















    + Article - Writing the Perfect Question by Jon Skeet : http://blogs.msmvps.com/jonskeet/2010/08/29/writing-the-perfect-question

    + Article - Answering Technical Questions Helpfully by Jon Skeet : https://codeblog.jonskeet.uk/2009/02/17/answering-technical-questions-helpfully

    + Stackoverflow Checklist for Writing a Good Question : http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist

    ============

    1. How to Ask Questions the Smart Way (on forums)"by Eric S. Raymond : http://catb.org/%7Eesr/faqs/smart-questions.html 
    2. Stackoverflow guidelines on how to ask questions on the forum : http://stackoverflow.com/questions/ask 
    3. How to search in a smart way for previously answered questions on stackoverflow : http://stackoverflow.com/search 
    4. Questions NOT to ask : http://www.catb.org/esr/faqs/smart-questions.html#classic 
    5. Examples of Good and BAD questions : http://www.catb.org/esr/faqs/smart-questions.html#examples 
    6. How to Ask Questions (Simple English) at perlmonk : http://www.perlmonks.org/?node_id=788576 
    7. How NOT to ask a Question at perlmonk : http://www.perlmonks.org/?node=How%20%28not%29%20to%20ask%20a%20question 
    8. Before you ask the question : http://catb.org/%7Eesr/faqs/smart-questions.html#before
    9. What to Ask : http://www.catb.org/esr/faqs/smart-questions.html#asking 
    10. What to do if You Can't Get An Answer : http://www.catb.org/esr/faqs/smart-questions.html#id383575%20 
    11. How to Keep Cool and Deal With Rudeness  : http://www.catb.org/esr/faqs/smart-questions.html#keepcool 
    12. How to search for code : http://www.google.de/codesearch

    ====

    Researching

    1. Get Connected section  of  "How to do Research at MIT AI Labs"   
    2. Collected Advice on Research and Writing : http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/how-to.html  
    3. PDF- Brief advice on How to sift through research papers in your domain : http://blizzard.cs.uwaterloo.ca/keshav/home/Papers/data/07/paper-reading.pdf
    4. Videos on How to Build Your Research Career : https://www.quora.com/Are-there-good-blogs-and-books-on-how-to-do-good-scientific-research/answer/Gurudutt-Mallapur

      Tuesday, September 21, 2010

      List of useful addons for FireFox (with links) Part 1

       Addons for firefox (3.6.10)

      + Pixlr Grabber
      Description: 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
      Download: Add to Firefox
      + ClickCutter AutoCopy
      Description:
      Highlight a text and automatically Copy it to the clipboard.
      Based on unique Smart Autocopy technology!
      You have full control of what to copy and what not to copy when you highlight text.
      Middle button Paste option.
      Super-easy.
      Download: Add to Firefox

      + ClickCutter AutoSearch
      Description:
      Highlight text and AUTOMATICALLY SEARCH it in your favorite search site.
      Includes:
      - Automatic Copy of highlighted text (AUTOCOPY)
      - Automatic websearch for highlighted text (AUTOSEARCH).
      - Middle button Paste
      NO annoying context menus !
      Download: Add to Firefox

      + Lizardtech DjVu (Many rare ebooks are available in this format)
      Description:
      DjVu 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 hundreds of academic, commercial, governmental, and non-commercial web sites around the world.
      DjView4 is a new portable DjVu viewer and browser plugin.
      Download:
      http://djvu.sourceforge.net/

      + All In One Gestures
      Description:
      This extension allows you to execute common commands using mouse gestures, rocker navigation, scroll wheel navigation and page..
      Download: Add to Firefox


      + All In One Sidebar
      Description:
      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.
      Download: Add to Firefox

      +Wikipedia Lookup Add-on

      Description:
      Looks up up the selected word in the Wikipedia encyclopedia in the language specified in your user preferences.
      Download: Add to Firefox

      + CHMReader
      Description:
      An extension to make firefox support Compiled HTML(.chm) file.
      Download: Add to Firefox

      + ClipMarks
      Description:
      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 clipmarks.com and more.
      Download: Add to Firefox

      + ColorfulTabs
      Description:
      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 & Flock. An essential.
      Download: Add to Firefox

      List of useful packages for C/C++ development on Ubuntu Linux Part 1

      Linux in a Nutshell: A superb bible for looking up Linux commands and options. http://oreilly.com/catalog/9780596154493


      Installing Development related packages on Ubuntu:
      http://software.jessies.org/salma-hayek/ubuntu-setup.html

      You can add repositories to download packages by editing this file:
      vim /etc/apt/sources.list

      For Eclipse C++ CDT installation please refer to this blog post.

      Script:
      A very useful command to record your command-line session actions for later use and replay later:
              script -a -f -t  2> timingfile  mydemo.log     #append, flush-writes, timestamp)

             scriptreplay timingfile mydemo.log    #replays with timing as per timestamps captured above
      For further info see:

           man script
           man scriptreplay

      Links:  
      http://www-users.cs.umn.edu/~skim/cs1901/script.html
      http://devdaily.com/blog/post/linux-unix/use-unix-linux-script-command-record-your-command-line-i-o

      Killing Processes on Ubuntu with 3 Finger salute(How-to-Geek)

      gpm: A command-line text mode clipboard manager with mouse integration.
      Use left mouse button to select and copy text and paste with middle mouse button.
      Super useful installation/usage howto from Gentoo: http://www.gentoo.org/doc/en/gpm.xml#doc_chap4

      gpm options: http://www.oreillynet.com/linux/cmd/cmd.csp?path=g/gpm


      apt-get install -y gpm #General Purpose Mouse server (clipboard manager for command line
      NOTE: You can set the system default packages on Ubuntu using debconf-set-selections and debconf-get-selections

      Glipper: Clipboard manager for Gnome. It retains all your text copies.
      #a) Installs Glipper the multiple copies clipboard manager into Ubuntu Gnome Desktop
      apt-get install glipper
      #b) Right click on the "Windows Quicklaunch Bar" and Add to Panel->Clipboard manager
      #c) Click on any of the previous copies to get the copy-paste you need.
      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)

      [COMMON-DEV]
      apt-get update #updates your packages

      apt-get install -y gcc #GNU C compiler

      apt-get install -y gcc-mingw32 #Cross Compilation
      apt-get install -y g++


      apt-get install -y make
      apt-get install -y linux-headers-`uname -r` build-essential  #C/C++ header files for building C/C++ programs 
      apt-get update eclipse eclipse-pde #Update Eclipse and plugin-dev-env for connect to p2 repository of CDT for installing the CDT

      apt-get install -y vim-gtk

      apt-get install -y c++-annotations
      apt-get install -y c-cpp-reference #Reference for C/C++
      apt-get install -y cpp-doc #C++ documentation
      apt-get install -y manpages-dev glibc-doc


      [PACKAGE-MGMT]
      apt-get install -y apt-build #GUI for apt-get
      apt-get install -y ceve #Parse linux package dependencies

      [PYTHON]
      apt-get install -y python-dev
      apt-get install -y idle2.6
      apt-get install -y cableswig #Python/Tcl wrappers for C++ code
      apt-get install -y boa-constructor #RAD tool for python/wxwidgets

      [PROFILERS]
      apt-get install -y gprof
      apt-get install -y kprof #KDE util for gprof analysis/viewing
      apt-get install -y valgrind
      apt-get install -y cachegrind
      apt-get install -y alleyoop #Valgrind related
      apt-get install -y valkyrie #GUI for valgrind
      apt-get install -y kcachegrind #KDE Gui for valgrind
      apt-get install -y sysprof #System-wide CPU profiling
      apt-get install -y systemtap systemtap-client systemtap-grapher #Collect data on a live running linux box
      apt-get install -y syslog syslog-ng #Interprocess application logging facility


      [TESTING]
      apt-get install -y libcppunit-doc libcppunit-dev  #C++ unit-testing lib

      apt-get install -y subunit #Run and Save remote test results for later use
      apt-get install -y stress #Stress test your computer with heavy load
      apt-get install -y httest #Simulate client/server actions with pattern-matching for test validation
      apt-get install -y fuzz #Stress test s/w with random inputs

      [DEBUG]
      apt-get install -y gdb gdb-doc #Debug programs
      apt-get install -y gdbserver #Remotely debug from another system where GDB is installed.
      apt-get install -y ddd #GUI for gdb
      apt-get install -y bashdb #Bash debugger
      apt-get install -y zshdb zsh-dbg #debugger and debug symbols for ZSH
      apt-get install -y gcov #Source code coverage analyzer
      apt-get install -y ggcov #GUI for gcov Source code coverage analyzer
      apt-get install -y lcov #HTML and directory-wise view of gcov output

      apt-get install -y collectd-dbg #statistics collection and monitoring daemon
      apt-get install -y wireshark wireshark-dev #Network debugging
      apt-get install tack-dbg #Diagnostic tool for correctness of terminfos.
      apt-get install -y tau tau-racy tau-examples #Multithread/multiproc tuning and analysis with GUI
      apt-get install -y leaktracer #Simple C++ leak tracer
      apt-get install -y electric-fence #malloc debugger
      apt-get install -y duma #Fork of electric-fence library with added features
      apt-get install -y winpdb #GUI debugger for Python
      apt-get install -y gtkparasite #Python interactive debugger for running GTK+ code.
      apt-get install -y happycoders-libdbg-dev #allows modern debugging paradigms for Large codebase
      apt-get install -y happycoders-libsocket-dev #
      apt-get install -y bless-hex-editor #Hex Editor
      apt-get install -y hexdiff #Visual hex difference analyzer
      apt-get install kompare #diff and merge util for files and dirs.
      apt-get install -y tkdiff #diff/merge util in TK
      apt-get install -y ht #Viewer/Editor/Analyser for all kinds of executables.
      apt-get install -y abi-compliance-checker #C++ sharedlib binary compatibility checker
      apt-get install -y tesq #Decoding of terminal escape sequences used by Unix Terminals

      Monday, September 20, 2010

      Installing Eclipse C++ CDT with Linux Tools for debugging and profiling applications on Linux

      The Eclipse incubation project Linux Tools integrates C/C++ Development tools.
      It's a GUI plugin to integrate tools like Valgrind, GProf, GCov, SystemTap etc into the Eclipse C++ CDT IDE.

      [Articles on Linux Tools]
      Download page of Eclipse Helios gives 2 good alternatives for C++ developers on Linux:
      • Java6 JRE update :apt-get install sun-java6-jre
      • Unzip the Eclipse tarball and run the eclipse binary from inside the tarball: 
                tar -zxf eclipse-cpp-helios-linux-gtk.tar.gz && ./eclipse

      [Website]
      [Usage]
      [Docs]
      [Whitepapers]

      [Interview]



      [Cpp Check tool integration with Eclipse]
      • cppcheclipse integration of with Eclipse CDT from (google code):
      • About: http://code.google.com/a/eclipselabs.org/p/cppcheclipse/
      • Wiki: http://code.google.com/a/eclipselabs.org/p/cppcheclipse/wiki/Installation
      • Download: http://code.google.com/a/eclipselabs.org/p/cppcheclipse/downloads/list