Sunday, October 12, 2008

MindMapping - Organize data in your Brain



Essentialmindmapping.com says

"Mind Mapping is one of the most effective, ‘brain-friendly’ ways for you to turn your unorganized, fleeting ideas and thoughts into a structured, visual “map.” A mind map resembles the visual aspects of a flow chart and the organization structure of an outline."

Facts say that we usually utilize 1%-10% (or more in case of exceptions) of our brain and that also only one part. Mind Mapping makes us to use both the parts of our brain resulting in becoming more organized, stay more focused, sharp memory and managed thoughts. Your are always in control and running your life by your own.

Mind Maps naturally hook into your right brain, where creativity and intuition (also called Super Intelligence) comes into picture to help you.

How to do a Mind Map
Use a blank piece of paper and pencil, work quickly without any pause, judgment or editing. Remember pausing, judging or editing encourages linear thinking and partial analysis and the aim in that case becomes to have perfect analysis before you finish. The basic principle behind MindMapping is to think creatively in a non-linear fashion.

Start with your central idea as the center of the map. Think up new ideas, action plans and strategies that correspond to it and impact it. Remember that MindMapping emphasizes on using keywords and one word identifiers in the nodes/ branches in the map, rather than bogging the map with descriptive irrelevant information. Mind relies more on keywords that is self descriptive and relevant.

MindMaps now days have been ported to computers also, not by scanning the hard copy and uploading but by abundance of specialized software (I use FreeMind as its open source, free and provides all sort of features that I need. Although you might not find it as flexible as the hand drawing but that is a constraint with all the software available in market today).

Comparison of hand drawn MindMap and the one drawn using FreeMind software:














Now since we know the MindMap concept, let's see the main differences of MindMapping using hand drawing and using a software in terms of a MindMap diagram itself









Tony Buzan (author and educational consultant, a big proponent of MindMap techniques) has defined some rules for effective Mind Mapping:
  1. Start in the center with an image of the topic, using at least 3 colors.
  2. Use images, symbols, codes and dimensions throughout your Mind Map.
  3. Select key words and print using upper or lower case letters.
  4. Each word/image must be alone and sitting on its own line.
  5. The lines must be connected, starting from the central image. The central lines are thicker, organic and flowing, becoming thinner as they radiate out from the center.
  6. Make the lines the same length as the word/image.
  7. Use colors - your own code - throughout the Mind Map.
  8. Develop your own personal style of Mind Mapping.
  9. Use emphasis and show associations in your Mind Map.
  10. Keep the Mind Map clear by using radial hierarchy, numerical order or outlines to embrace your branches.
MindMapping Software and Online Tools:
  • FreeMind: This is a good Open Source, free software that provides great features to create Mindmaps.
  • bubbl.us, is a great site providing online MindMapping facility with cool node bubbles. Experiment with MindMaps first here if you want to create one yourself. You need not even login into this site to create a MindMap. Just click on "Start Brainstorming" and you are all set to fly with your imagination.

References:
____________________________________________________________


Technology blogs

Fiddler: A Powerful Web Debugger


What is Fiddler?
Fiddler is a utility that logs all HTTP request/response between your browser and the Web Server. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and "fiddle" with incoming or outgoing data.

What not is Fiddler?
It’s not a kind of debugger that will let you trace into the code line by line during runtime. It will not highlight any js/jsp/java errors.

Why use Fiddler?
  • Dynamically read/validate/edit data going out of the browser even before they reach the java files (formbeans, servlets etc). (Basically coming out of script files JS/JSP)
  • Change js/jsp code on the fly before it’s rendered by the browser.
  • Continue working on the application even if the database is down using stubs.
  • Validate your fix in CIT/SIT environment directly, without waiting for the environment migration to happen.
  • Server Side checks can be validated/tested skipping the client side validation (no need to disable client-side checks; eg: required field, max field size, field type, etc)
  • Find and replace or put breakpoints for any search string dynamically in the request/response body.
  • It works on HTTP request/response and is no way specific to js/jsp/java (will work with anything and everything if communication is happening in terms of HTTP request)
Installing Fiddler
Download and install latest version of Fiddler from this link: http://www.fiddlertool.com/Fiddler2/version.asp
Please note, it requires MS .NET Framework 2.0 to run.


Fiddler operates at this layer
Fiddler intercepts the request and response before and after it reaches the Web-Server. It sits in between the browser and the Web-server.












Running Fiddler
There are two ways to launch Fiddler:
  • Option 1: Fiddler installation by default adds an icon in the command bar of the IE browser
  • Option 2: Open IE browser --> Tools Menu --> Fiddler2






Fiddler User Interface:
Fiddler User Interface consists of the following major sections (which is in the scope of this discussion):

HTTP Session List / Fiddler Logs
This area contains all the HTTP traffic listing happening between the browser and the Web Server. For each request made to the Server, there is a log/record present in this section. The logs may contain requests made for any of the following file types (js/jsp/htm/gif/jpeg/ico, etc).

Session Inspector Tab:
Contains information specific to the selected Fiddler Log.
  • Request Section
  • Reveals the request details made to the server for the session/log selected. All the modifications to the request are made in this section.
  • Response Section
  • Reveals the response details from the server for the session selected. All the modifications to the response are made in this section.
The Session Inspector contains various sub-tabs for each Request and Response section.
  • Headers
  • Displays the request header information
  • TextView
  • Displays the request/response body contents and is the area that will be used most for dynamic request/response fiddling.
  • WebForms (for Request only)
  • Displays the parameters sent to the server in the form of WebForms. This sub-tab is available only for the request section (and not responses)
  • Raw
  • Displays the full request/response in the raw format containing the header and body.
  • XML
  • Displays the request and responses in the form of xml/dom and makes parsing through the request/response easier. It is available only if the request/response can be structured in the form of xml/dom, else will be blank.

    There are other optional sub tabs that can be added to Fiddler through the Addon Installation.
Customizing Fiddler
Fiddler provides high degree of customization/extensibility through a customRules scripting file (customRules.js).

Some examples of Fiddler customization:
  • Put breakpoint if any given string match is found in the requests/response body.
  • Put breakpoint if any given string match is found in the request/.response URL.
  • Add a sub-menu item into the Fiddler Rules and Tools menus.
  • Add an item in the context menu (right mouse click)
  • Make Fiddler respond with a local file (js/htm/css, etc) for the request made to the server.
  • Make Fiddler responds with a local stub for a request made to the server. This is explained in the section “Generating Fiddler Response Stub”
  • Make the items (js/htm/css,etc) non cacheable by the browser so that the files on the server/updated ones are always displayed..
  • ,etc... the list is never ending.
I will soon be posting an article on "Customizing Fiddler" using customRules.js scripting file.

____________________________________________________________

Coming Soon....

  • Customizing Eclipse IDE
  • Java Debugging in Eclipse IDE
  • JS Debugging in Firebug
  • Open Source JS Logging frameworks (a heads up)



____________________________________________________________

Saturday, October 11, 2008

XSL Transformation (XSLT) Made Easy


Extensible Stylesheet Language Transformations (XSLT) is a language for transforming XML documents into other XML documents.

Some times testing and debugging XSLT stylesheets can be a complicated and time-consuming process. Orangevolt Eclipse XSLT plug-in provides an easy and faster way to solve the above problem.

Features:
  • XSL/XML editors for editing inside Eclipse IDE
  • Allows XML + XSL transformation (no need to run it from the application)
Requirement:
  • Eclipse IDE Version: 3.3 (or higher)
  • Java 2 Platform Standard Edition V1.5 or later
  • Eclipse Web Tools Platform (WTP) V2.0.1 or later; you can download the all-in-one package or download the following prerequisites:
    • Eclipse Modeling Framework SDK V2.3.1 or later
    • Java EMF Model SDK V1.2.4 or later
    • Graphical Editing Framework V3.3.1 or later
Installation:
  • Download the plugin archive from: http://sourceforge.net/projects/eclipsexslt
  • Extracting the zip will create two directories: features and plugins (containing the required classes)
  • Copy these folder into your eclipse home directory: (ie. like: C:\Eclipse\)
  • Start Eclipse IDE with clean option. (eg. C:\Eclipse\eclipse.exe –clean)
  • In the Eclipse IDE Preferences, you should be able to see Orangevolt XSLT as Tree node. (Window --> Preferences)
This step confirms that the plugin has been installed successfully.

Configuring and Running:
  1. Right-click on any XSL and select "Open Run Dialog" option.
  2. On the "Run" screen, double click on "Orangevolt XSLT" tree item to create a new launch configuration.
  3. Configure the following:
    1. Project: The name of the project that you have created inside eclipse. Select the Project that contains the XSL and response xml you want to transform).
    2. Source: Specify the response xml file.
    3. StyleSheet: Specify the xsl file.
    4. Target File: Specify the output xml (this is optional, if not specified will overwrite the response xml document with the output).
  4. Click on "Run" button. It will run and transform the response xml into the output xml in the same directory where xsl is placed. You might need to refresh your Eclipse navigator view to see the created output document.

Output XML




References:
____________________________________________________________

Install and Run Macros in Textpad Editor


Textpad is a Windows based Text Editor like "Notepad" with more advanced features.

Installation
  1. Unzip the macro and copy it in the default macro location for your Textpad installation.
  2. To know what is the default macro location for your textpad installation:
    (the default location is C:\Documents and Settings\UsrName\Application Data\Helios\TextPad\5.0)
    1. Launch Textpad.
    2. Goto Configure --> Preferences --> Folders
    3. There you can see Macros as a FileType. The location against this FileType is the default location for Macros.
  3. Copy the unzipped macro file (Step 1) at this location.
  4. Restart Textpad editor and goto Configure --> Preferences --> Macros
  5. You can see your macro in the "Macros Available" box.
  6. Select your macro and click "Add", "Apply", "Ok".
  7. To verify the macro installation goto "Macros" menu. You should be able to see your macro as a submenu item there.
You are done with your macro installation.

Running

  1. Open the file on which you want to run the macro.
  2. Select "Macros --> yourMacro". This will run the macro for the configured range (you can run a macro:
    • on a selection
    • on the complete file
    • etc..

____________________________________________________________