Core dump Analysis:
– (Linux Programmer's Manual – File Formats)
Core Dump (Wikipedia)
Memory dump (Wikipedia)
CallStack (Wikipedia),
Enabling core dumps in embedded systems,
Dr Dobbs - Postmortem Debugging
Dr Dobbs - Post-Mortem Debugging Revisited
Stackoverflow article (with comments) on core dump analysis on Solaris,
Backtrace commands in GDB documentation
Howto generate a Backtrace for Bug Reporting by Testers (from Gentoo doc)
Stack buffer overflow (Wikipedia)
Segmentation fault (SIG_SEGV, SIG_BUS)
A FAQ: User contributed answers regarding the definition of a segmentation fault,
A "null pointer" explained,
Answer to: NULL is guaranteed to be 0, but the null pointer is not?
Resolving crashes and segmentation faults,
What is the difference between a segmentation fault and a stack overflow?
Windows:
Crash dump analysis website
Books:
Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems (by David J. Agans)
Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code (by Bill Blunden)
Debugging by Thinking : A Multidisciplinary Approach (by Robert C. Metzger)
Memory Dump Analysis Anthology, Volume 1 (by Dmitry Vostokov)
Tuesday, October 19, 2010
Tuesday, October 12, 2010
Steps towards Technical Mastery
How do you know if you've become a Master in your field?
Is there any method to learn things quickly in any field?
How do you avoid stagnation and mediocrity after becoming competent in your field?
How do you become a Master?
Take software for example: How do you become a Master in it?
These are exactly the questions which have been pushing me to seek answers.
Well now that I've got some kind of grip on this quest I'm able to give some of the answers.
Or at the very least point the way.
Short Answer: You'll know it when you get there!!
Long Answer: You'll see the Sign-Posts as you move towards achieving Mastery. Read on for the gory details.
Is there any method to learn things quickly in any field?
How do you avoid stagnation and mediocrity after becoming competent in your field?
How do you become a Master?
Take software for example: How do you become a Master in it?
These are exactly the questions which have been pushing me to seek answers.
Well now that I've got some kind of grip on this quest I'm able to give some of the answers.
Or at the very least point the way.
Short Answer: You'll know it when you get there!!
Long Answer: You'll see the Sign-Posts as you move towards achieving Mastery. Read on for the gory details.
Thursday, October 7, 2010
Basic Template with Ingredients for a Technical Blog
A good Technical Blog Post follows the Law Of Retention: repetition helps Retention
Some Questions on your Blog Post:
Some Questions on your Blog Post:
- Is your blog a frequently used resource for yourself and your readers?
- Does it grow as you learn more - addressing different levels of questions?
- Is it short and informative while being complete and self-contained?
Is your blog addressing The Readers Perspective?
- What's in it for a Reader?
- Tell 'em what you're going to Tell 'em.
- Tell 'em.
- Tell 'em what you just told 'em.
- Further info.
Wednesday, October 6, 2010
Understand Source Code by Reading Code and Refactoring for Maintaining Large Projects
This list consists of one-liner tips to be used for easy lookup and reference.
Rewriting Code for Better Understanding (Coding Horror)
Rewriting Code for Better Understanding (Coding Horror)
- What I cannot create, I do not understand. [Richard Feynman]
- "What I do not create, I do not understand."[Chris]
- "It's easier to understand 600 tables than 100,000 lines of code." [PaulC on comp.databases.theory/2005]
- Create a new project with blocks of code copied from old code. Refactor to reduce "old code smell"
- Start refactoring by adding small tests to better understand code and act as regression tests.
- Just scan through huge amounts of code till it starts making sense - "understand by constant exposure".
- 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.
- Manually reformat a copy of the code - white space, and indented as per your personal style.
- Working Effectively with Legacy Code
- Object Oriented Reengineering Patterns
- Refactoring: Improving the Design of Existing Code
Labels:
books,
code-reading,
coding-horror,
collection,
comments,
how-to,
maintainance,
projects,
refactoring,
software,
source-code,
stackoverflow,
strategies,
techniques,
tips,
understanding
Howto Start a Blog, Get Useful Blogging Ideas, Add Good Content, Reduce Effort with Tools and Keep Blogging
- Avoid Bloggers-Block:
- After the initial burst you can't think of what to say - so the blog languishes.
- A blog is short form for web-log i.e. a kind of "A log entry in your Personal Diary".
- It is not meant to be a book which you publish after many many rewrites and deep thought.
- Some people even have one-liners or even other peoples blogs as blog-entries.
- Your idea becomes self sustaining if it's useful or matters to you or your friends.
- You can organise your self-learning or teaching notes as blogs. Collect questions from people around you or from forum newbies. This way you create more knowledge for yourself and write excellent blog-posts that are useful to others.
- Publish or Perish:
- Publish as soon as you have a line of text on your blogs.
- Drafts are the best way to kill blogs.
- Use them only when you require to do some basic tidying before posting.
- Even this can be done later followed by a republish.
- Blog Incrementally:
- Paste your current state into the blog (like saving a session of your mind a.k.a. brain-dump).
- Every time some find some new useful information you just paste that into your blog-post.
- Use a multiple clips clipboard manager to copy all the info you need.
- The post should be written in logical manner with least gaps in the reasoning or steps
- Any good links that you open in Firefox tabs can be saved for:
- a) Further investigation
- b) Future use
- Reduce Blogging Effort:
- Ideally follow 80-20% rule.
- Spend 80% time spent on gathering material.
- Spend 20% time spent on filling in gaps and reordering/rewriting post.
- See Tools section for more details
- Tools:
- Currently I'm trying to reduce editing/formatting effort/time by using the following tools:
- Blog Upload: Evaluating desktop client s/w's for editing and posting to blog (like ScribeFire, Windows Live Writer, SeMagic)
- I've used 2-3 good desktop blogging clients:
1) ScribeFire to handle blog-editing, upload and managing of multiple accounts/blogs. - Looks to be the best option for now.
2) Kompozer is good for a basic HTML whysiwyg editor. - 3) Windows Live Writer - not really used it but looks good enough for basic blog maintainence.
- Blog Composing: Kompozer, CSS Stylesheets (TODO)
- MindMaps: XMind with Freemind (for mindmaps and concept maps with collaboration respectively)
- Pictures: Paintbrush Digicam for Photos, MediaWiki Free Photos
- Video: InstantDemo, Jing ScreenCapture software for Demonstration Videos.
- Diagrams: Diagramming s/w (To-Do)
- Uploading: To-Do
- See Also:Basic Format for a Technical Blog
Subscribe to:
Posts (Atom)