<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>SciTools</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://scitools.com/blog/atom.xml" />
    <id>tag:scitools.com,2008-04-04:/blog//2</id>
    <updated>2008-08-13T21:11:50Z</updated>
    <subtitle>News from SciTools... the maker of Understand.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>Tip: Understand Context menu in EMACS, Visual Studio and Vi</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/08/understand-context-menu-in-ema.html" />
    <id>tag:scitools.com,2008:/blog//2.96</id>

    <published>2008-08-13T21:14:03Z</published>
    <updated>2008-08-13T21:11:50Z</updated>

    <summary>In Using Understand with an external editor - SlickEdit I explained how to hook up Understand to run with SlickEdit. As a follow up, here are the commands to setup the same Understand menu inside of EMACS, Visual Studio, and...</summary>
    <author>
        <name>KevinG</name>
        <uri>http://scitools.com/blog/groke.html</uri>
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>In <a href="http://scitools.com/blog/2008/05/using-understand-with-an-exter-2.html" target="_blank">Using Understand with an external editor - SlickEdit</a> I explained how to hook up Understand to run with SlickEdit. As a follow up, here are the commands to setup the same Understand menu inside of EMACS, Visual Studio, and Vi. Do let me know if I made any mistakes here since I'm not an expert on these editors.</p> ]]>
        <![CDATA[  <h3>EMACS</h3>  <p>Add the following lisp to your .emacs file to open the Understand right click menu when C-c u is pressed (thanks for the correction Guillaume):    <br />Note: this assumes the understand executable is in your path</p>  <p><code>(defun understand-word-at-point ()      <br />&#160; &quot;Run understand menu for the word at point.&quot;       <br />&#160; (interactive)       <br />&#160; (setq understand-command       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (concat       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;understand -existing -contextmenu &quot; (buffer-file-name)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;-text &quot;(current-word)&quot; -line &quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (number-to-string (count-lines (point-min) (point)))      <br /></code><code>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </code><code>&quot; -col &quot; (number-to-string (current-column))     <br />&#160;&#160; )&#160;&#160;&#160;&#160; )      <br />&#160; (shell-command understand-command)       <br />)       <br />(global-set-key &quot;\C-cu&quot; 'understand-word-at-point)</code></p>  <p><code></code></p>  <p><code></code></p>  <h3>Visual Studio</h3>  <p>Step 1: Add Understand to Visual Studio's External Tools</p>  <ul>   <li>On the Tools menu, click External Tools </li>    <li>Click Add </li>    <li>Type &quot;&amp;Understand Menu&quot; in the Title box </li>    <li>Type &quot;C:\Program Files\STI\bin\pc-win32\understand.exe&quot; in the Command box </li>    <li>Type &quot;-existing -contextmenu $(TargetPath) -line $(CurLine) -col $(CurCol) -name $(CurText) in the Arguments box </li>    <li>Click OK </li> </ul> Step 2: Add a keyboard shortcut to Visual Studio   <ul>   <li>On the Tools menu, Click Options </li>    <li>Expand the Environment Folder and select Keyboard </li>    <li>Type &quot;Tools.ExternalCommand&quot; in the box labeled &quot;Show commands containing&quot; </li>    <li>Select the ExternalCommand associated with the &quot;&amp;Understand Menu&quot; External Tool. If &quot;&amp;Understand Menu&quot; was 8th on the list (default) then select Tools.ExternalCommand8 </li>    <li>Click the box labeled &quot;Press shortcut key(s)&quot;. Type in a keyboard combination such as Ctrl+U or Ctrl+` </li>    <li>Click Assign </li>    <li>Click Ok </li> </ul>  <h3>Vi</h3>  <p>Add the following to your vi startup file (.vimrc, _vimrc, etc):    <br />Note: this assumes the understand executable is in your path</p>  <p><code>:command UMenu silent: exe join([&quot;!understand -existing -contextmenu %:p -line &quot;, line(&quot;.&quot;)])      <br />:map :UMenu </code></p>]]>
    </content>
</entry>

<entry>
    <title>Understand 2.0 Build Notes (b457)</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/08/understand-20-build-notes-b457-1.html" />
    <id>tag:scitools.com,2008:/blog//2.95</id>

    <published>2008-08-04T22:46:36Z</published>
    <updated>2008-08-04T22:47:06Z</updated>

    <summary>We&apos;ve been working hard to improve Understand and have made a lot of new builds recently (4 this last week). I finally caught up with the build notes, so if you want some light reading, here you are:...</summary>
    <author>
        <name>KevinG</name>
        <uri>http://scitools.com/blog/groke.html</uri>
    </author>
    
        <category term="Build Notes" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>We've been working hard to improve Understand and have made a lot of new builds recently (4 this last week). I finally caught up with the build notes, so if you want some light reading, here you are:</p> ]]>
        <![CDATA[  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b457) - 31 Jul 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>In Arch Builder, if architecture has been modified and user tries to reparse, display prompt asking user if they want to save the architecture before the reparse, as any unsaved changes will be lost during reparse. </li>    <li>Only generate the Languages Architecture if more than one language is enabled </li>    <li>fixed crash in Architect Builder related to reparsing a project while an arch builder is open. </li> </ul> <!-- end ARCHITECT -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>Changed default key binding for showing/hiding inactive lines. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Fixed crash when a message box appears while the splash screen is up </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>Change default of &quot;Re-use Graph Window&quot; settings to &quot;on&quot;. </li> </ul> <!-- end GRAPHS -->  <p><b>INFOBROWSER</b></p> <!-- start INFOBROWSER -->  <ul>   <li>Added highlighting of the last visited field to the IB . </li>    <li>Don't show init values in the IB References field. </li>    <li>Add space after 'new' when it appears in the IB as initializer text for a variable. </li> </ul> <!-- end INFOBROWSER -->  <p><b>INSTALLER</b></p> <!-- start INSTALLER -->  <ul>   <li>Overwrite files if an older build is installed on top of a newer build. </li> </ul> <!-- end INSTALLER -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>In metrics export dialog, when running in quiet startup mode, if the export file name exists, rename the old file appended with the current date, and save the new file. </li>    <li>Export Metrics Dialog, prompt user if they choose a filename that already exists and ask if they would like to overwrite or not. </li>    <li>Fixed a bug causing incorrect metrics to show for entities and architectures. </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Display C++ function pointer dereferences in call/callby IB fields and graphs. </li>    <li>C/C++, Don't create call or use references to classes in initialization statements when constructors don't exist. </li> </ul> <!-- end PARSER -->  <p><b>PERL</b></p> <!-- start PERL -->  <ul>   <li>add 'c deref call' reference kind. </li> </ul> <!-- end PERL -->  <p><b>PROJECT</b></p> <!-- start PROJECT -->  <ul>   <li>Add pascal linkage option to Configuration option panel </li> </ul> <!-- end PROJECT -->  <p><b>SCHEDULER</b></p> <!-- start SCHEDULER -->  <ul>   <li>Added Metric Processing and Metric CSV Export to the scheduler. </li> </ul> <!-- end SCHEDULER -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b456) - 29 Jul 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>fix architecture crash when removing an arch and trying to edit an arch that still had references to the removed architecture. </li> </ul> <!-- end ARCHITECT -->  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Disable character comparison while we correct it. </li> </ul> <!-- end CHANGE -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>Fix crash in CIS MLE tree widget when it was trying to update it's selection to sync with the current scope in the editor. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Fixed typo that caused the default font to not be found on Linux </li>    <li>Change missing framework warning message </li>    <li>Project Browser now defaults to the front rather than Entity Filter </li>    <li>Import 1.4 Project, remember the working directory of the import file for future reference. Also used as the cwd for the create-in directory browser. </li>    <li>Set focus on new (untitled) editor windows. </li>    <li>Import 1.4 Project, don't clear a previously entered path when cancel is pressed on the dir browser window. </li>    <li>Fixed possible crash when reloading externally modified files. </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>Clicking on a node in the Control Flow graph will now jump to the line of code referenced. </li> </ul> <!-- end GRAPHS -->  <p><b>INFOBROWSER</b></p> <!-- start INFOBROWSER -->  <ul>   <li>file sync is saved to settings </li> </ul> <!-- end INFOBROWSER -->  <p><b>PERL</b></p> <!-- start PERL -->  <ul>   <li>Add support for the upl graph method $node-&gt;Sync. </li> </ul> <!-- end PERL -->  <p><b>SEARCH</b></p> <!-- start SEARCH -->  <ul>   <li>Tightened up layout of incremental search in tree views. It now fits on one row rather than two. </li>    <li>Fixed bug in shortcut activation when multiple incremental searches are active. </li> </ul> <!-- end SEARCH -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b455) - 28 Jul 2008</i></b></p>  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>when bringing up a change result, select the top node in the tree initially. </li>    <li>Add &quot;snapshot successful&quot; message box </li>    <li>Fixes crash when all entities are selected to compare </li>    <li>reword the change reports completed dialog. </li>    <li>close parse log when invoked by making a snapshot </li> </ul> <!-- end CHANGE -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>CIS defaults to the bottom position in the editor window. </li>    <li>In CIS, make the structure browser the default tab in the file context section. Also adjusted the context browser splitter to be the same orientation as the middle splitter. </li>    <li>Made background colors of CIS components lighter. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Added a &quot;Sign Up For Build Notices&quot; link to the getting started page. </li>    <li>fixed crash when closing and reopening the project assistant. </li>    <li>Make several changes to the toolbar to make it more usable. </li>    <li>On getting started page, fixed the recent project list text from being jumbled when it is refreshing the list. </li>    <li>Default document workspace to maximized </li>    <li>Project Assistant now defaults to drawered </li>    <li>Fix configure toolbar positioning bug. </li>    <li>Add fix to avoid crash when system icons can't be retrieved. </li>    <li>Fix issues when we jump to a location, within the same file, not being added to the history. </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>Display the selected Entity/Arch name next to the graph toolbar-button. Also add a drop down menu indicator. </li> </ul> <!-- end GRAPHS -->  <p><b>INFOBROWSER</b></p> <!-- start INFOBROWSER -->  <ul>   <li>Fix determination of constants in c++ IB so that a pointer to a constant is not confused for a constant </li> </ul> <!-- end INFOBROWSER -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>Added a table format to the metrics table export options </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Fix crash when attempting to parse a readonly project. </li> </ul> <!-- end PARSER -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b454) - 26 Jul 2008</i></b></p>  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Fix ability to launch reports from change </li>    <li>Exclude standard library items from compare </li>    <li>Snapshot Manager: Renaming Scratch snapshots now works properly. Snapshot Manager also defaults to being docked when opened. </li>    <li>Fixed crash where snapshots are deleted when selection is empty. </li>    <li>Hide change reports checkbox and list box in Scheduled activities if there are no change reports set up yet </li>    <li>use root architectures from the current database always, also don't bold the exclude filter text edit </li>    <li>give change parameters a name when generating report so they will show up in the menus of generated reports </li> </ul> <!-- end CHANGE -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>Removed superfluous current word from auto-complete list. Merged semantic auto-complete list with lexical scan list (the lexical part kicks in after a threshold of two characters). </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Add Understand 1.4 project conversion interface. Can be accessed through the File | Convert 1.4 Project... menu. </li>    <li>Fixed crash in Project Browser and Info Browser incremental search - was crashing if search was done with no project open </li>    <li>Fixed the display of help on non-windows platforms. It was showing the &quot;eval dialog&quot; before showing the help. </li>    <li>Change the layout of the windows installer. </li>    <li>Removed architecture dependency graph links from the Assistant. </li>    <li>Crash fix on startup. </li> </ul> <!-- end GENERAL -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Fixed crash when focusing the parse log's editor before any file is loaded. </li>    <li>Changed pascal/Delphi database version number. </li>    <li>added support for pascal-to-c entity linkage </li>    <li>For Ada parser, changed text of missing library unit message. </li>    <li>Fixed bug where the c# .NET framework directory, if entered during the parse, was not saved properly to the project configuration for future parses, in projects with multiple languages. </li> </ul> <!-- end PARSER -->  <p><b>PERL</b></p> <!-- start PERL -->  <ul>   <li>Changed $ent-&gt;draw() graphs names to be case sensitive </li> </ul> <!-- end PERL -->  <p><b>PROJECT</b></p> <!-- start PROJECT -->  <ul>   <li>fixed crash when adding a top level DOS disk name (ie, C:) to the project files list </li> </ul> <!-- end PROJECT -->  <p><b>SCHEDULER</b></p> <!-- start SCHEDULER -->  <ul>   <li>Remove scheduler pop-up question on project open </li>    <li>Added Master Scheduler List (under Tools) to allow the user see all projects that have scheduled activities. </li>    <li>Show the scheduled activity persistent dialog when the user is closing the last instance of understand (informing the user that the scheduled activities will not process if Understand is closed). </li> </ul> <!-- end SCHEDULER -->  <p><b>SEARCH</b></p> <!-- start SEARCH -->  <ul>   <li>Give filter box focus when Locator opens and/or becomes the active window </li> </ul> <!-- end SEARCH -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b453) - 23 Jul 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>Fixed bugs in arch builder when moving architectures and entities around within the tree. </li> </ul> <!-- end ARCHITECT -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>Added option to remove trailing whitespace on save. </li>    <li>Fixed regression in showing read-only indicator after loading a file. </li>    <li>Fixed bug related to pasting a rectangular selection into a read-only document. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Minor changes to the Getting Started window. </li>    <li>Added a &quot;Buy Now&quot; button to the trial and expired message boxes. </li>    <li>Added incremental search to Project Browser window </li> </ul> <!-- end GENERAL -->  <p><b>LICENSE</b></p> <!-- start LICENSE -->  <ul>   <li>Improved messaging when users are unable to write license to disk. </li>    <li>Fix issue where entering a new license after an expired trial would not take effect until the application was re-started. </li> </ul> <!-- end LICENSE -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>Add the project metrics summary to the Pro and Analyst levels. </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Fortran, made change to not strip '_' from beginning of link names specified with INTERFACE TO. </li> </ul> <!-- end PARSER -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b452) - 21 Jul 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>Select a removed items parent after removal in the architecture builder. </li>    <li>fix bug in arch builder when moving architectures around in the tree. </li>    <li>In architecture builder, remember vertical scrollbar position of the source tree after mapping items. </li>    <li>fixed crash in architect builder when removing multiple rows. Specifically when a parent and child is selected and remove is clicked. </li>    <li>Fix crash in architect builder where modifying, saving, modifying, and then saving again would cause it to crash. </li> </ul> <!-- end ARCHITECT -->  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Snapshot Manager, disabled the 'Compare' action when there are no snapshots besides 'Latest' </li>    <li>Fix crashes in change on filtered architecture tree when right clicking or double clicking items </li>    <li>Add settings for generating change reports in analyst version </li>    <li>Fix crash with Multi-byte characters. </li> </ul> <!-- end CHANGE -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>possible fix for crash in Structure Browser in sidebar when it's trying to update the item selection according to the current scope. </li>    <li>added shortcut key (Ctrl-') to open/close editor sidebar. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>fixed bug in tab bar where tabs with the same name would disappear when sorting by name. </li>    <li>Fixed possible crash at startup. </li>    <li>Change Import1.4 feature to work with auto-eval licenses. </li>    <li>Find in files search for inactive code no longer includes comments in results. </li>    <li>Fix crash when opening a project that contains both FORTRAN files and a synced VS C++ project </li>    <li>Download site now uses .tgz for *nix downloads </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>Fixed bug in exporting graphics files with non-ASCII characters. </li> </ul> <!-- end GRAPHS -->  <p><b>INFOBROWSER</b></p> <!-- start INFOBROWSER -->  <ul>   <li>added incremental search for the the IB </li> </ul> <!-- end INFOBROWSER -->  <p><b>LICENSE</b></p> <!-- start LICENSE -->  <ul>   <li>Fix issue where application was using the wrong license after the trial had expired and a new license was entered. </li> </ul> <!-- end LICENSE -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>fixed crash when clicking on the Project Metrics Browser link in the assistant in Analyst mode. </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Fixed potential crash on reparse </li>    <li>C++, Fixed various deref references </li>    <li>Java, made changes to allow overloaded native methods to be linked with C functions. </li> </ul> <!-- end PARSER -->  <p><b>SCHEDULER</b></p> <!-- start SCHEDULER -->  <ul>   <li>Add ability to schedule Change reports. </li>    <li>Add a master scheduler to manage all scheduled tasks. </li> </ul> <!-- end SCHEDULER -->  <p><b>SEARCH</b></p> <!-- start SEARCH -->  <ul>   <li>Fixed Locator filter on the date column. </li>    <li>Added metrics columns and date modified column to Locator. Replaced 'time changed' column in change locator with 'date modified' column from regular Locator. Moved save/load logic from change Locator into abstract Locator base class so that column settings are saved for all Locator derived widgets. </li> </ul> <!-- end SEARCH -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b451) - 11 Jul 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>fixed crash in architecture builder when moving architectures/entities using drag and drop. </li> </ul> <!-- end ARCHITECT -->  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Fix crash when using entities to limit range and depends on or depended on by </li> </ul> <!-- end CHANGE -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Fixed duplicating and out-of-order menu items when the sub-menu was rolled over multiple times with the mouse. </li> </ul> <!-- end GENERAL -->  <p><b>LICENSE</b></p> <!-- start LICENSE -->  <ul>   <li>Fixed issue where evaluation expired to quickly. </li>    <li>Fixing message title for run-as message. </li> </ul> <!-- end LICENSE -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>In Project Metrics Browser, sort arch metrics by name at Pro level. </li>    <li>Added button to Project Metrics Browser to be able to export the selected snapshot's metrics to an HTML report. Analyst license level only. </li>    <li>Fix column sorting. </li>    <li>Added dialog to Project Metrics Browser telling user that the HTML report was created successfully and ask them if they would like to open the report. </li>    <li>Moved 'New Complexity' metric into change result </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>C#, Fixed crash in generic instantiations. </li> </ul> <!-- end PARSER -->  <p><b>PERL</b></p> <!-- start PERL -->  <ul>   <li>Fix db-&gt;languages() method to return C# for databases that contain C# code </li> </ul> <!-- end PERL -->  <p><b>PROJECT</b></p> <!-- start PROJECT -->  <ul>   <li>Add Scheduler to let you automatically schedule snapshots. Other scheduled tasks to follow. </li>    <li>Don't ask to use scheduler right after project creation, only on project open </li> </ul> <!-- end PROJECT -->  <p><b>REPORTS</b></p> <!-- start REPORTS -->  <ul>   <li>Ada, Added enumeration literals to the unused object report. </li> </ul> <!-- end REPORTS -->  <p><b>TOOLS</b></p> <!-- start TOOLS -->  <ul>   <li>Fix broken key binding management in user defined tools </li>    <li>Fixed application font settings so they don't apply until the user hits OK/apply. Also, set application font to restore with other default settings. </li> </ul> <!-- end TOOLS -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b450) - 01 Jul 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>prune empty trees in Architecture editor when &quot;show unmapped entities&quot; is checked. </li>    <li>New icons for Architecture add </li>    <li>pressing return/enter on an Architecture node in the Architecture editor puts it in edit mode. </li>    <li>Automatic Language Architecture added. </li>    <li>Added save, undo, redo buttons to the right side of the Architecture builder dialog. </li>    <li>Architecture chooser combo box in Architecture editor now defaults to the File system Architecture and the list is sorted be name. </li>    <li>added key bindings to Architecture editor actions: &quot;-&quot; and &quot;del&quot; to remove items and &quot;Ctrl-+&quot; to add a new Architecture. </li>    <li>Added an &quot;add Architecture at current level&quot; button to the Architecture editor. </li> </ul> <!-- end ARCHITECT -->  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Partition available snapshot options by license level. </li>    <li>Added icons for snapshot manager </li>    <li>make new scratch and new named actions have keyboard shortcuts (ctrl-alt-shift-s and ctrl-alt-shift-n respectively). </li>    <li>Created new snapshot manager. </li>    <li>If snapshots are not available, hide the automatic snapshot creation checkbox </li>    <li>Added toolbar buttons to copy from the snapshot manager table, also added a button to open project history configuration </li>    <li>Add a button menu on the parse log that allows creation of snapshots after a parse. </li>    <li>Only show compare... menu when multiple snapshots are available </li>    <li>Add Change menus for creating various types of snapshots. </li>    <li>Fix crash when reparse takes place between choosing entities and using them to generate the change result </li>    <li>Added another snapshot manager icon </li>    <li>Disallow latest as a snapshot name. </li> </ul> <!-- end CHANGE -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>fixed bug where the editor window wasn't laying-out correctly after a Save As... action. </li>    <li>Fixed editor focus problems when opening multiple editors or opening files from the file open dialog. </li>    <li>Bug fix: copying text was inserting blank spaces at the beginning of lines </li>    <li>Fixed folding bug. </li>    <li>Added read-only indicator in the editor status area. </li>    <li>Changed selection behavior of jumping to matching braces/directives and selecting blocks. </li>    <li>Fixed selection bug when using down key. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Set main window title to include profession level (Analyst/Pro/Engineer). </li>    <li>Fixed bug where opening a file with named roots in an external editor wasn't working correctly. </li>    <li>Fixed bug on mac that would prevent the main workspace tab bar from scrolling after if filled up. </li>    <li>Fix crash on exit. </li>    <li>Fixed close 'x' from being displayed in front of scroll buttons for the tab bar </li>    <li>Fixed crash when opening a project immediately after another has been opened. </li>    <li>Bundle the API with the Understand kits </li>    <li>default dock window layout now has docks unpinned (not drawered) </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>Remove Dependency Graph for re-tooling. </li> </ul> <!-- end GRAPHS -->  <p><b>LICENSE</b></p> <!-- start LICENSE -->  <ul>   <li>Added the &quot;Clear All Licenses&quot; button that deletes Single Developer entries/files and the license.dat file. </li>    <li>Fix issue with individual 1.4 licenses not registering the language as available for checkout. </li>    <li>Fixed the Run-As menu Not appearing </li>    <li>Make sure we save the &quot;Run-As&quot; setting to the app settings. </li>    <li>Fix issue with understand 1.4 licenses flagging the message-box erroneously indicating that the user can not run at an analyst level, but correctly setting the level to Analyst. </li> </ul> <!-- end LICENSE -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>Added all metrics to the project metrics browser when an entity is selected. </li>    <li>Format metric values in the project metrics summary dialog (no scientific notation, commas, etc.) </li>    <li>Fixed regression in csv metrics export that would cause column names to be garbage or cause a possible crash. </li>    <li>More copy/paste format fixes in the project metrics overview. </li>    <li>Changed &quot;Detailed Summary&quot; to &quot;Summary&quot; in project metrics browser </li>    <li>Fixed formatting of copy all/paste in project metrics browser. </li>    <li>improved Project Metrics Browser performance when an Architecture is selected. </li>    <li>Added snapshot combo box to the project metrics browser. </li>    <li>sort summary metrics by metric name. </li>    <li>added a detailed summary section to the project metrics browser for architectures in analyst mode. </li>    <li>Partition available metrics by license level. </li>    <li>Added some more detail (# classes, # functions, etc.) to the detailed summary in the project metrics browser. Also show progress when generating metrics for an Architecture. </li>    <li>Changed New Complexity metric so that it reports new complexity the same for removed entities as it does for added entities </li>    <li>Added all metrics to the tree when an Architecture is selected (Pro and Analyst). </li>    <li>In project metrics browser, removed extra check to see if measure db is up to date, also moved the detailed summary to the top of the tree. </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Jovial, fixed bug where the 'Analyze' phase appears to be a child to the 'Order Determination' phase instead of at the same level. </li>    <li>Jovial, fixed bug where error messages were given with the wrong file name if they followed a 'COPY' command. </li>    <li>Made changes to more consistently handle enumerator/enumeration literal entities from different languages in the reports. All enumerator/enumeration literal entities are now listed in the Object Cross Reference report and, if unused, in the Unused Object Report. Previously, some language's enumerator entities were listed in the Type Cross Reference and Unused Type Reports instead, and C enumerators were never listed in Unused Reports. Also, fixed a bug where unused enum types were not listed in the Unused Type Report. </li> </ul> <!-- end PARSER -->  <p><b>PROJECT</b></p> <!-- start PROJECT -->  <ul>   <li>Add project history panel in the project configuration dialog to manage scheduled project history activities </li>    <li>Add &quot;Import files from a list file&quot; ability to the sources panel, toolbar pull-down menu </li>    <li>Provide feedback on new import file list item when invalid items found </li>    <li>Added &quot;Edit&quot; button to Include and Path lists. </li> </ul> <!-- end PROJECT -->  <p><b>REPORTS</b></p> <!-- start REPORTS -->  <ul>   <li>Interactive reports, Save as.. option and copy all option, available off whitespace right click </li> </ul> <!-- end REPORTS -->  <p><b>SEARCH</b></p> <!-- start SEARCH -->  <ul>   <li>Fixed bug in using \n capture groups in replace strings for regular expression searches. </li>    <li>It is now possible to copy the Locator table selection using the standard copy key sequence </li>    <li>Fixed an error that prevented regular-expression based replaces from working properly. </li>    <li>Fixed bug in invoking find-replace dialog on released windows. </li> </ul> <!-- end SEARCH -->  <p><b>TOOLS</b></p> <!-- start TOOLS -->  <ul>   <li>Bug fix: last release extra line feeds were inserted into capture output </li>    <li>Add copy shortcut to command results output </li>    <li>Save as and copy all menu actions to the command results output window </li> </ul> <!-- end TOOLS -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b449) - 21 Jun 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>exclude filter working on the architecture tree now </li>    <li>Re-wrote the architecture editor with better usability. </li> </ul> <!-- end ARCHITECT -->  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Make the enter key in the exclude filter enable and apply it </li>    <li>Fixed a crash caused by opening a dimple menu in the Change Locator </li>    <li>Locator now remembers visibility, width, and index of all of its columns </li>    <li>Added 'New Complexity' metric to the Change Locator </li> </ul> <!-- end CHANGE -->  <p><b>EDITOR</b></p> <!-- start EDITOR -->  <ul>   <li>Fixed bug related to editor redrawing at horizontal origin on save. </li>    <li>Fixed bug related to editor reverting to default language on save even if a language had been explicitly set. </li>    <li>Fixed bug related to pasting into read-only files. </li> </ul> <!-- end EDITOR -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Fix modal dialog problem which prevented alt-tab from working properly on Windows </li>    <li>Fix reported crash fix on command capture of PC lint style output. </li>    <li>Fix column sorting and indexing. </li>    <li>Fix several localization issues. </li>    <li>The Selector and Navigator no longer show hidden windows </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>Fix issue on Mac where some graphs were not available. </li> </ul> <!-- end GRAPHS -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>Metric columns are moved closer to the left side of the table </li>    <li>Lines Changed/Added/Removed are only available on a licensing level &gt;= Analyst </li> </ul> <!-- end METRICS -->  <p><b>PARSER</b></p> <!-- start PARSER -->  <ul>   <li>Java, fixed bug where file name was given instead of package name in missing package error message. </li>    <li>Java, fixed text of missing type error message. </li> </ul> <!-- end PARSER -->  <p><b>SEARCH</b></p> <!-- start SEARCH -->  <ul>   <li>Locator- scroll bar stops jumping to the left every time a column is filtered or sorted. </li>    <li>Fix problems relating to whole word matching in find and replace </li> </ul> <!-- end SEARCH -->  <hr />  <p style="font-size: 18pt; font-family: arial"><b><i>(Build b448) - 17 Jun 2008</i></b></p>  <p><b>ARCHITECT</b></p> <!-- start ARCHITECT -->  <ul>   <li>When loading architectures, map architectures from the latest snapshot into the current snapshot </li>    <li>Don't show broken links for unchanged entities in the architecture tree, don't crash when no organization arch is chosen and reports are exported from that result </li> </ul> <!-- end ARCHITECT -->  <p><b>CHANGE</b></p> <!-- start CHANGE -->  <ul>   <li>Re-enable change reports. </li>    <li>Updated the Snapshot Preview Dialog &quot;Not Found&quot; section to indicate to the user that only current &quot;Parse-able&quot; project files not found will be displayed. </li>    <li>Don't crash when bringing up the compare entities window </li>    <li>Fix change reports to use the correct tree structure. </li>    <li>Fix coloring issue. </li> </ul> <!-- end CHANGE -->  <p><b>GENERAL</b></p> <!-- start GENERAL -->  <ul>   <li>Fix several bugs with multi-byte characters. </li>    <li>Added numeric and date filtering to Locator Window </li>    <li>Fixed crash during reparse. </li>    <li>Correct the files are displayed in the Preview Dialog in the &quot;Not Found&quot; section. </li>    <li>Improved identification between sync/edit events and drag events. </li>    <li>Fix non-working sample projects. </li>    <li>Restore minimized windows on activation </li>    <li>Fix cut off text problem in watch this directory dialog </li>    <li>Reworded &quot;Unable to save project&quot; message to explain if the database was locked. </li> </ul> <!-- end GENERAL -->  <p><b>GRAPHS</b></p> <!-- start GRAPHS -->  <ul>   <li>saving graph to a file was not remembering the save directory correctly. </li> </ul> <!-- end GRAPHS -->  <p><b>LICENSE</b></p> <!-- start LICENSE -->  <ul>   <li>Inform user when we cannot save the license file </li> </ul> <!-- end LICENSE -->  <p><b>METRICS</b></p> <!-- start METRICS -->  <ul>   <li>Fixed bug where checking one item in the metric browser and clicking the view button would result in an empty graph. </li>    <li>Fixed inconsistent metric values. Fixed MaxNesting metric, which wasn't being calculated correctly. </li> </ul> <!-- end METRICS -->  <p><b>SEARCH</b></p> <!-- start SEARCH -->  <ul>   <li>When find or replace dialogs are opened, put initial focus in find string and select existing text </li>    <li>Find in files can now display file names in results as short names or full file paths </li>    <li>Clarify wording in semantic search options </li> </ul> <!-- end SEARCH -->  <hr />]]>
    </content>
</entry>

<entry>
    <title>New Feature: Making Snapshots from TrackBack</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/new-feature-making-snapshots-f.html" />
    <id>tag:scitools.com,2008:/blog//2.93</id>

    <published>2008-07-31T02:19:06Z</published>
    <updated>2008-07-31T02:19:06Z</updated>

    <summary><![CDATA[I&rsquo;ve covered making Snapshots from the Current Database and by checking out source to an alternate location in earlier posts.&nbsp; Now I&rsquo;m going to tell you the EASY way to do it&hellip;. Just use TrackBack. Assuming you have had TrackBack...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Documentation" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="change" label="Change" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="snapshots" label="Snapshots" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="trackback" label="TrackBack" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>I&rsquo;ve covered making Snapshots from the Current Database and by checking out source to an alternate location in earlier posts.&nbsp; Now I&rsquo;m going to tell you the EASY way to do it&hellip;. Just use <strong>TrackBack</strong>. </p>
<p><img alt="2008-07-30 19.42" src="http://scitools.com/blog/2008_2D07_2D30_2019.42.jpg" border="0" /></p>
<p>Assuming you have had TrackBack B443 or later monitoring your source trees, you can recreate the state of any monitored directory at any time. This includes file modification, file existance, file renaming, everything.<br /></p>
]]>
        <![CDATA[

<p><strong>The Problem &ndash; I don&rsquo;t have a snapshot for the time period. </strong></p>
<p>I&rsquo;m trying to see if a bug reported has been fixed. I know the area and&nbsp;I know we made changes for a similar bug, I just need to see if the changes cover the situation the user reports. He is using B453&hellip; my source is at B456+local changes.&nbsp;I&rsquo;d like to easily compare the area affected between B453 and now.</p>
<p>I will need to grab the source for B453, build a snapshot, and compare the &ldquo;Managed DB API&rdquo; architectural area&nbsp;for changes.</p>
<p><strong>Getting The Source &ndash; Piece of Cake</strong></p>
<p>First I choose &ldquo;<strong>Change-&gt;Make a Snapshot-&gt;From Any Point in Time</strong>&rdquo;</p>
<p>If this is your first snapshot of this project it will caution you that Project Portability settings cannot be changed after making a snapshot.&nbsp; Don&rsquo;t worry about that. Just click through it.</p>
<p>Now I&rsquo;m basically asked &ldquo;When&rdquo;, using th the calendar pulldown I specify the 23rd at 1700 hours (end of programming day):<br /><br /><img alt="2008-07-30 19.47" src="http://scitools.com/blog/2008_2D07_2D30_2019.47.jpg" border="0" /></p>
<p>&nbsp;</p>
<p>Understand and TrackBack then work together to build up a preview of what the new snapshot will contain:</p>
<p><img alt="2008-07-30 19.49" src="http://scitools.com/blog/2008_2D07_2D30_2019.49.jpg" border="0" /></p>
<p>The first box is files in common. The second is files that existed in B453 but not in the current source. The third is files that exist now but didn&rsquo;t back then.</p>
<p>This looks right to me. I accept it.</p>
<p>It then grabs the source needed for the snapshot from the TrackBack history and starts parsing the snapshot:</p>
<p><img alt="2008-07-30 19.51" src="http://scitools.com/blog/2008_2D07_2D30_2019.51.jpg" border="0" /></p>
<p>&nbsp;Elapsed time to start&hellip; about 1 second.&nbsp; I didn&rsquo;t have to use SVN, I didn&rsquo;t have to make a directory, I just need to know what TIME I wanted to compare against.</p>
<p><strong>Snapshot Made &ndash; now find the changes</strong></p>
<p>I could, and usually would, just compare all of my current database against the snapshot I made for B453.&nbsp; But in this case I know the area I want to check. </p>
<p>So I&rsquo;ll choose &ldquo;<strong>Change-&gt;Compare Snapshots</strong>&rdquo;&nbsp; and specify the particular area I want to search changes for:</p>
<p><a href="http://scitools.com/blog/2008_2D07_2D30_2020.00.jpg"></a><a href="http://scitools.com/blog/2008_2D07_2D30_2020.15.jpg"><img alt="2008-07-30 20.15" src="http://scitools.com/blog/2008_2D07_2D30_2020.15_thumb.jpg" border="0" /></a><a href="http://scitools.com/blog/2008_2D07_2D30_2019.57.jpg"></a></p>
<p>&nbsp;</p>
<p>I&rsquo;m then presented with the changes to that area and I check them out:</p>
<p><a href="http://scitools.com/blog/2008_2D07_2D30_2020.17.jpg"><img alt="2008-07-30 20.17" src="http://scitools.com/blog/2008_2D07_2D30_2020.17_thumb.jpg" border="0" /></a></p>
<p>After perusing them I decide the bug is not fixed and I make a note to talk to [new]Rob, the owner of that code, &nbsp;tomorrow to make sure he gets this one fixed before the next build.</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>Tip: Making a custom User Tool</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/tip-making-a-custom-user-tool.html" />
    <id>tag:scitools.com,2008:/blog//2.92</id>

    <published>2008-07-29T22:33:02Z</published>
    <updated>2008-07-29T22:33:32Z</updated>

    <summary>User tools are a convenient way to quickly access external tools or other applications. In an earlier post, Ken shared his SVN User Tools, which provide quick access to version control commands right inside the application.&#160; If you use a...</summary>
    <author>
        <name>KevinG</name>
        <uri>http://scitools.com/blog/groke.html</uri>
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>User tools are a convenient way to quickly access external tools or other applications. In an earlier post, Ken shared his <a href="http://scitools.com/blog/2008/06/tip-setting-up-user-tools-for.html" target="_blank">SVN User Tools</a>, which provide quick access to version control commands right inside the application.&#160; If you use a different version control system, or want to launch another application, you'll need to know how to make your own user tools.</p> ]]>
        <![CDATA[  <h1>Launch an External Application</h1>  <p>For example, suppose I want to open the current file in Notepad. First select Tools | Configure User Tools</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb.png" width="279" border="0" /></a>&#160;</p>  <p>Enter the name you want to appear for your tool, and the executable that is being launched:</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="70" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_2.png" width="272" border="0" /></a> </p>  <p>The parameters section is a little more tricky. What you enter here will vary wildly based on what application you are launching. If you look at the arrow on the right of the parameters checkbox, you will see a list of variables that Understand can pass to another application.</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_8.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="129" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_3.png" width="190" border="0" /></a> </p>  <p>In this case we want to pass Notepad the name of the current file, so we select <strong>$CurFile</strong></p>  <p>If the application needs a working directory specified, you can set that, and if you would like to specify an icon for the tool, you can select something different than the application. These settings aren't needed for this tool, so I leave them alone. Likewise there is no command line output and this is not an STI Perl script, so I'll leave those checkboxes blank.</p>  <p>Finally we need to decide where we want the tool to appear inside of Understand. There are several option. </p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_10.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="65" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_4.png" width="244" border="0" /></a> </p>  <table cellspacing="0" cellpadding="0" width="700" border="0"><tbody>     <tr>       <td valign="top" width="233"><strong>Pop up Menu</strong>           <br />Appears anywhere you right click</td>        <td valign="top" width="233"><strong>Main Menu</strong>           <br />Appears under Tools | User Tools</td>        <td valign="top" width="233"><strong>Toolbar</strong>           <br />Appears in the User Tools Toolbar</td>     </tr>      <tr>       <td valign="top" width="233"><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_14.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="85" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_6.png" width="244" border="0" /></a></td>        <td valign="top" width="233"><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_18.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="51" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_8.png" width="244" border="0" /></a><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_16.png"></a></td>        <td valign="top" width="233"><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_18.png"></a><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_16.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="56" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_7.png" width="114" border="0" /></a></a></td>     </tr>   </tbody></table>  <p>This tool will now open the current file in Notepad. Here are the complete settings.</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_20.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="217" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_9.png" width="244" border="0" /></a> </p>  <p>Here are a couple more examples of some basic tools.</p>  <h1>Launch Build System</h1>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_22.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_10.png" width="426" border="0" /></a> </p>  <p>&#160;</p>  <p>In this sample I want to launch my Make script. Note the parameter. In this case I don't want to send it a file name, I want it to ask me what to build. The $Prompt parameters will ask you for input. When I run this tool, it will ask me for my build target, which is what I wanted</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_24.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="123" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_11.png" width="384" border="0" /></a> </p>  <p>Then the build output displays in the Understand command window. The great part of building in Understand is that if there are errors, you can simply click on the error message and Understand will jump straight to that line of code in the editor</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_26.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="38" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_12.png" width="918" border="0" /></a> </p>  <h1>Code Lookup</h1>  <p>In this sample, I want to lookup the selected text in MSDN's library.&#160; There are many different ways to do this, but I think I'll launch firefox with the following parameters:</p>  <p>http://www.google.com/search?q=<strong>$CurSelection</strong> site:msdn.microsoft.com+OR+site:support.microsoft.com</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_34.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_16.png" width="420" border="0" /></a> </p>  <p>This will search for the current highlighted text with Google on the MSDN site and the support site.</p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_32.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="80" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/TipMakingacustomUserTool_C7F5/image_thumb_15.png" width="197" border="0" /></a></p>]]>
    </content>
</entry>

<entry>
    <title>New Feature: Browse Mode in the 2.0 Editor</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/new-feature-browse-mode-in-the.html" />
    <id>tag:scitools.com,2008:/blog//2.91</id>

    <published>2008-07-29T03:43:25Z</published>
    <updated>2008-07-29T03:43:25Z</updated>

    <summary><![CDATA[The Understand 2.0 editor&rsquo;s &ldquo;Browse Mode&rdquo; makes all entities in the editor behave like links in a web browser. With a single click you can visit and update the Information Browser. In both 1.4 and 2.0 the usual way of&nbsp;exploring/learning...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Documentation" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="browse" label="browse" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="documentation" label="documentation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="editor" label="Editor" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>The <em>Understand 2.</em>0 editor&rsquo;s &ldquo;Browse Mode&rdquo; makes all entities in the editor behave like links in a web browser. With a single click you can visit and update the Information Browser. </p>
<p>In both 1.4 and 2.0 the usual way of&nbsp;exploring/learning about code in the editor is via the Right Click&nbsp;context menu. For instance, if I want to learn about&nbsp;allocstrAppend() I right click on it:</p>
<p><img alt="2008-07-28 21.35" src="http://scitools.com/blog/2008_2D07_2D28_2021.35.jpg" border="0" /></p>
]]>
        <![CDATA[

<p>However, the 2.0 has a new &ldquo;Browse&rdquo; mode that makes all entities behave like hyperlinks in a web browser. </p>
<p>Turn it on selectively by holding down the &ldquo;CTRL&rdquo; key.&nbsp; Or toggle between normal mode and browse mode by toggling the browse mode icon in the toolbar:</p>
<p><img alt="2008-07-28 21.39" src="http://scitools.com/blog/2008_2D07_2D28_2021.39.jpg" border="0" /></p>
<p>Once in the browse mode, whenever you hover over an entity it is underlined:<br /><br /><img alt="2008-07-28 21.45" src="http://scitools.com/blog/2008_2D07_2D28_2021.45.jpg" border="0" /><br /><br />When you click on the underlined entity two things will happen:</p>
<ol>
<li>The Information Browser will update about that entity</li>
<li>The entities definition will be visited</li></ol>
<p>You can control what happens on the Browse mode click via the Tools-&gt;Options-&gt;Editor dialog, and the Browse tab:<br /><br /><img alt="2008-07-28 21.41" src="http://scitools.com/blog/2008_2D07_2D28_2021.41.jpg" border="0" /></p>
<p><br />Note that you can still edit while in the Browse mode.&nbsp; If&nbsp; you don&rsquo;t want to visit somewhere just click in white space.</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>]]>
    </content>
</entry>

<entry>
    <title>Sticky: Which Understand 2.0 edition is right for you?</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/which-understand-20-edition-is.html" />
    <id>tag:scitools.com,2008:/blog//2.90</id>

    <published>2008-07-26T02:01:17Z</published>
    <updated>2008-07-26T02:01:17Z</updated>

    <summary><![CDATA[The Understand 2.0 you have just downloaded comes in four editions. They all use the same binary, only the license code affects their feature set.&nbsp; The editions are: Understand 2.0 Engineer Understand 2.0 Pro Understand 2.0 Analyst Understand 2.0 Non-Commercial...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Announcements" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="pricing" label="Pricing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>The <em>Understand 2.0</em> you have just downloaded comes in four editions. They all use the same binary, only the license code affects their feature set.&nbsp; The editions are:</p>
<ol>
<li>Understand 2.0 Engineer</li>
<li>Understand 2.0 Pro</li>
<li>Understand 2.0 Analyst</li>
<li>Understand 2.0 Non-Commercial</li></ol>
<p>So which is right for you?</p>]]>
        <![CDATA[<br />Try the handy dandy &ldquo;which is right for me&rdquo; link at the top of <a href="http://www.scitools.com/store/">www.scitools.com/store/</a>.&nbsp; It pops up a short questionaire and recommends the least cost edition best suited to your needs. 
<p>More information about the product structure and also the mapping of Understand 1.4 licenses into this product structure&nbsp;can be found at <a href="http://scitools.com/blog/2008/07/understand-20-product-structur.html">http://scitools.com/blog/2008/07/understand-20-product-structur.html</a></p>
<p>And as you run <em>Understand 2.0</em> with an evaluation license you can toggle between editions with the &ldquo;Help-&gt;Set Run Level&rdquo; menu.</p>
<p>And of course if you have questions, feel free to e-mail <a href="mailto:sales@scitools.com">sales@scitools.com</a> or <a href="mailto:support@scitools.com">support@scitools.com</a> as appropriate to the nature of the question.</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>Documentation: Understand 2.0 GUI command line</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/documentation-understand-20-gu.html" />
    <id>tag:scitools.com,2008:/blog//2.89</id>

    <published>2008-07-25T05:23:05Z</published>
    <updated>2008-07-25T05:23:05Z</updated>

    <summary><![CDATA[The Understand 2.0GUI has command line options that may prove useful to you automation and personal efficiency reasons. To see the options, just start Understand with &ldquo;-help&rdquo;:%understand -help...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Documentation" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="commandline" label="command+line" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="documentation" label="documentation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="integration" label="integration" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>The <em>Understand 2.0</em>GUI has command line options that may prove useful to you automation and personal efficiency reasons.</p>
<p>To see the options, just start Understand with &ldquo;-help&rdquo;:<br /><br />%understand -help<br /><br /><a href="http://scitools.com/blog/2008_2D07_2D24_2022.56.jpg"><img alt="2008-07-24 22.56" src="http://scitools.com/blog/2008_2D07_2D24_2022.56_thumb.jpg" border="0" /></a></p>
<p>
]]>
        <![CDATA[

<p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Here are the current options (updated 24 July 2008):</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Understand&nbsp;file1&nbsp;file2&nbsp;file3&nbsp;etc&nbsp;[<em>options</em>]</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Open&nbsp;a&nbsp;list&nbsp;of&nbsp;files&nbsp;by&nbsp;including&nbsp;the&nbsp;list&nbsp;after&nbsp;the&nbsp;application&nbsp;name.&nbsp;</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><strong>Options:</strong></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">-<em>existing</em></p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Use this option to pas arguments to an existing instance of Understand. If more than one exists, the&nbsp;one with the lowest PID will get the commands.Will start new one if none exist.</p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">-<em>cwd</em>&nbsp;path</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Set&nbsp;the&nbsp;current&nbsp;working&nbsp;directory&nbsp;to&nbsp;"path". Doesn&rsquo;t change the cwd if path doesn&rsquo;t exist. </p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">-<em>lastproject_cwd</em></p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Use the&nbsp;path to the&nbsp;last opened project as the cwd.<br /></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">-<em>db</em>&nbsp;filename</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Open&nbsp;the&nbsp;project&nbsp;file&nbsp;"filename". Does not assume .udb extension. </p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">&nbsp;-<em>lastproject</em></p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Open&nbsp;the&nbsp;last&nbsp;project&nbsp;opened&nbsp;by&nbsp;the&nbsp;application.&nbsp; </p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">&nbsp;-<em>noproject</em>&nbsp;)</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Do not open a project. This overrides -project, -lastproject, and also (more usefully) automatic settings to load projects on startup.It also clears any automatic settings so they will not happen until set again in the GUI.</p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">&nbsp;-<em>visit</em>&nbsp;filename&nbsp;[line-number&nbsp;column-number]&nbsp;</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Open&nbsp;the&nbsp;file&nbsp;"filename"&nbsp;in&nbsp;an&nbsp;editor&nbsp;window. Path is relative to CWD of Understand instance doing the visit. Optionally&nbsp;position&nbsp;caret&nbsp;at&nbsp;line-number&nbsp;and&nbsp;column-number<br /></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">-<em>contextmenu</em>&nbsp;filename&nbsp;[-line&nbsp;number&nbsp;-col&nbsp;number&nbsp;-text&nbsp;number]</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Show&nbsp;the&nbsp;context-menu&nbsp;for&nbsp;"filename"&nbsp;at&nbsp;the current&nbsp;global&nbsp;mouse&nbsp;coordinates. For better accuracy as to what entity the menu acts on specify more information with -line, -col and -text. This is useful for integrating <em>Understand</em> context menus into other editors, debuggers and other applications. See <a href="http://scitools.com/blog/2008/05/using-understand-with-an-exter-2.html">http://scitools.com/blog/2008/05/using-understand-with-an-exter-2.html</a>&nbsp;for an example of using this menu in SlickEdit.</p></blockquote></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><br /><strong>Examples:</strong></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Startup understand and load a database:</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><strong>understand -db foo.udb</strong></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Load file foo.cpp existing <em>Understand 2.0</em> instance.</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><strong>understand foo.cpp -existing</strong></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Open the Understand and automatically open the last project:</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><strong>understand -lastproject</strong></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Visit line 22, column 3 of file foo.cpp in an existing instance of <em>Understand 2.0</em></p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><strong>understand -existing -visit foo.cpp 22 3</strong></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier">Bring up the context menu for an&nbsp;function named &ldquo;foo&rdquo;&nbsp;in file foo.cpp</p>
<blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><strong>understand -existing -contextmenu foo.cpp -text foo</strong></p></blockquote>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: courier"><br /><br /></p>]]>
    </content>
</entry>

<entry>
    <title>FAQ: Snapshots ( what are they and working them into your workflow )</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/faq-snapshots-what-are-they-an.html" />
    <id>tag:scitools.com,2008:/blog//2.88</id>

    <published>2008-07-25T02:22:35Z</published>
    <updated>2008-07-25T02:22:35Z</updated>

    <summary><![CDATA[ I&rsquo;ve just realized that while I&rsquo;ve written a bunch of posts referring to snapshots and using snapshots, I&rsquo;ve never explained what they are and how they can fit into a software engineer&rsquo;s workflow. Hence the &ldquo;missing piece of the...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Documentation" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="documentation" label="documentation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="faq" label="FAQ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="snapshots" label="Snapshots" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p><img alt="2008-07-24 13.31" src="http://scitools.com/blog/2008_2D07_2D24_2013.31.jpg" border="0" /></p>
<p>I&rsquo;ve just realized that while I&rsquo;ve written a bunch of posts referring to snapshots and using snapshots, I&rsquo;ve never explained what they are and how they can fit into a software engineer&rsquo;s workflow. Hence the &ldquo;missing piece of the puzzle&rdquo; clip art above.</p>
<p><strong>Q: What are snapshots?</strong></p>
<p><strong>A</strong>: A snapshot is a binary store included within an <em>Understand</em> database. A database can hold be any number of snapshots. Each contains three things:</p>
<ol>
<li>a complete <em>Understand</em> database containing analysis (parse) information</li>
<li>all source, including any include files, needed to rebuild that analysis</li>
<li>certain cached information used to speed up working with them (metrics and file information)</li></ol>
<p><strong>Q: What are snapshots used for?</strong></p>
<p><strong>A: </strong>They are used throughout <em>Understand 2.0</em> to provide details and metrics about what has changed in source code between two points of time.&nbsp; The &ldquo;Change&rdquo;, &ldquo;Metrics&rdquo;, and &ldquo;Estimate&rdquo; menus all use snapshots intensively.</p>
<p>&ldquo;Change&rdquo; will tell you what has changed at the semantic level. For instance, what classes or types changed, versus just what files/lines changed.</p>
<p>&ldquo;Metrics&rdquo; can tell you the number of semantic changes &ndash; classes removed, changed, added, so forth.</p>
<p>
]]>
        <![CDATA[

<p></p>
<p><strong>Q: How is&nbsp;a &ldquo;diff&rdquo;&nbsp; better when using snapshots than <em>Understand 2.</em>0&rsquo;s<em> </em>text differencing capabilities<em>?<br /><br />A:</em></strong></p><em></em>
<ul>
<ul style="MARGIN-TOP: 0in" type="disc">
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: 'Times New Roman'"><strong>Easy.</strong> Using a snapshot means you don&rsquo;t have to keep different versions of source lying around. Snapshots are easy to make. Just click a button and you&rsquo;ve got one. <br /></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: 'Times New Roman'"><strong>Compares using snapshots use semantic differencing.</strong>&nbsp; That means, for instance, &nbsp;that no matter how much a function changes or moves around in&nbsp;a file you can easily isolate just changes inside the function, class or other logical / semantic unit in code.&nbsp;&nbsp; Differences shown are specific to the entities you are concerned about. <br /></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: 'Times New Roman'"><strong>Find Changes by type of entity changed.</strong>&nbsp; You can just look at class or type changes, or functions.&nbsp; You can find changes in classes with high complexity. You can find classes that had the most changes. So on.<br /></span></li>
<li class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: 'Times New Roman'"><strong>Find changes in dependency trees.</strong> Semantic differencing also permits exploring changes in dependency trees. For instance you can ask &ldquo;Change&rdquo; to find changes in code that is depended on by, or depends on, a region of code.&nbsp; This helps you know what changes have affected a piece you are working on, or what pieces are affected by what you changed.&nbsp;&nbsp; The classic question is &ldquo;this function is broke, what changed that affected it&rdquo;?&nbsp; Semantic differencing answers that question directly.<br /></span></li></ul></ul>
<p><strong>Q: What kind of snapshots are there?</strong></p>
<p><strong>A: </strong>All snapshots contain the same kind of information. But we divide them up into kinds more on how they are made and what you can do with them in <em>Understand 2.0. </em></p>
<p>There are three kinds:</p>
<ol>
<li><strong>Automatic</strong> &ndash;&nbsp;these are made with the project scheduler (Project-&gt;Configure-&gt;Schedule).&nbsp;&nbsp;At the same time each day you can tell&nbsp;<em>Understand 2.0</em> to&nbsp;update, parse and make a snapshot. These are labeled by&nbsp;the name of the day (e.g. Monday, Tuesday, Wednesday, &hellip;)<br /></li>
<li><strong>Scratch</strong> &ndash; there is only one &ldquo;scratch&rdquo; snapshot. You can make it from the current database in a single button click or keystroke.&nbsp; Use it for snapshots you want to have but not long term. For instance, to save a key point, prior to moving ahead.<br /></li>
<li><strong>Named</strong> &ndash; these snapshots have a name / date that you set. For instance &ldquo;B452&rdquo; or &ldquo;Before I started messing with the interface&rdquo;.&nbsp; There can be any number of these. </li></ol>
<p><br /><strong>Q: Hey&hellip; I could use this stuff&hellip; but how do I make a snapshot?</strong></p>
<p><strong>A:</strong> Oh let me count the ways&hellip;<br /></p>
<ul>
<li>Via button on the Parse Log&hellip; <br /><br /><a href="http://scitools.com/blog/2008_2D07_2D24_2015.16.jpg"><img alt="2008-07-24 15.16" src="http://scitools.com/blog/2008_2D07_2D24_2015.16_thumb.jpg" border="0" /></a><br /><br /></li>
<li>Via the Change-&gt;Make A Snapshot Menu<br /><br /><img alt="2008-07-24 15.14" src="http://scitools.com/blog/2008_2D07_2D24_2015.14_small.jpg" border="0" /><br /></li>
<li>Via the Project Scheduler&hellip;&nbsp; <font size="1">(Configure from Change-&gt;Scheduled Activities dialog)</font><br /><br /><a href="http://scitools.com/blog/2008_2D07_2D24_2008.06.jpg"><img alt="2008-07-24 08.06" src="http://scitools.com/blog/2008_2D07_2D24_2008.06_thumb.jpg" border="0" /></a><br /></li>
<li>Via the command line tool &ldquo;und&rdquo;<br /><br />und -db foo.udb -snapshot &ldquo;Src-13&ndash;Jul-2008&rdquo;<br /></li></ul>
<p><strong>Q: It does seem easy to make one from source I have in an <em>Understand</em> project now, but what about source versions&nbsp;from before I heard about this?<br /></strong></p>
<p><strong>A:</strong> We call these &ldquo;Historical Snapshots&rdquo;.&nbsp; Basically, you need to get the old source and make a snapshot out of it.&nbsp; We provide two ways to do this:</p>
<ol>
<li>Do it from TrackBack.&nbsp; If you have been using Trackback, getting old source is easy. Just choose &ldquo;Change-&gt;Make a Snapshot-&gt;From any point in time&rdquo; and specify TrackBack and a time:<br /><br /><img alt="2008-07-24 20.10" src="http://scitools.com/blog/2008_2D07_2D24_2020.10.jpg" border="0" /><br /></li>
<li>Copy or checkout the desired source to an alternate location. Then choose &ldquo;Make a Snapshot-&gt;Named from an Alternate Location&rdquo;.<br /><br /><a href="http://scitools.com/blog/2008_2D07_2D24_2020.12.jpg"><img alt="2008-07-24 20.12" src="http://scitools.com/blog/2008_2D07_2D24_2020.12_thumb.jpg" border="0" /></a><br /><br />For a detailed look at making a snapshot this way see &ldquo;<a href="http://scitools.com/blog/2008/07/tip-making-a-snapshot-from-an.html" target="_blank">Tip: Making a Snapshot from an alternate source directory</a>&rdquo;.<br /></li></ol>
<p><strong>Q: So how do you use snapshots?</strong><br /><br /><strong>A:</strong> Well,lets ignore me using them soley for testing of the snapshot function. How do I use them in my &ldquo;real&rdquo; day to day work?</p>
<p>I usually need to see what happened since the last build and since yesterday. I sometimes need to see what happened since a special time (usually same day).<br /><br />I have have automatic snapshot building turned on. I do this with the automatic scheduler. Hence I always have snapshots of the last 7 days readily available. <br /><br />I also make snapshots of recent builds. I keep the last 3 or 4.&nbsp; I do this manually at the time the build is frozen (I&rsquo;m involved in the freeze decision).&nbsp;&nbsp; If I forget, I make them with TrackBack.</p>
<p>If somebody tells me they are about to check in something I want to examine. I&rsquo;ll make a scratch snapshot, update, parse and then quickly compare/see what changed and what the changes were.</p>
<p>I&rsquo;m a bit more organized than most (my wife may disagree).&nbsp; Many of our engineers use only the Scratch snapshot facility. They &ldquo;snap a scratch&rdquo; and they can easily see what has changed since it.&nbsp; When happy with what they are working on, they make another and move along.</p>
<p>Nifty!</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>]]>
    </content>
</entry>

<entry>
    <title>New Feature: Watched Dirs automatically update projects for new/removed files</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/new-feature-watched-dirs-autom.html" />
    <id>tag:scitools.com,2008:/blog//2.87</id>

    <published>2008-07-24T14:11:21Z</published>
    <updated>2008-07-24T14:11:21Z</updated>

    <summary><![CDATA[A frequent complaint of Understand 1.4 users was that unless&nbsp;their project was syncronized to an MSVC project&nbsp;it was difficult to keep Understand projects up to date about new files and especially hard to keep files removed&nbsp;from a project&nbsp;from showing up...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="documentation" label="documentation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rescan" label="rescan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="watcheddirectories" label="watched+directories" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>A frequent complaint of <em>Understand 1.4</em> users was that unless&nbsp;their project was syncronized to an MSVC project&nbsp;it was difficult to keep <em>Understand</em> projects up to date about new files and especially hard to keep files removed&nbsp;from a project&nbsp;from showing up again when adding new code.</p>
<p>Understand 2.0 addresses this with the &ldquo;Watched Dir&rdquo; concept.&nbsp;By default any&nbsp;directory you add is a&nbsp;&ldquo;watched&nbsp;dir&rdquo;. </p>
<p><em>Understand 2.0&nbsp;</em>scans&nbsp;all project &ldquo;watched dir&rdquo; for new/removed files and the project file list updated automatically.&nbsp; Importantly, any modifications you have manually made&nbsp;&ndash; either by removing or by changing file filters is remembered.&nbsp; In 2.0 you only have to remove a file once it won&rsquo;t come back unless you add it specifically.</p>
<p>You can trigger a rescan&nbsp; with the Project-&gt;Rescan button:<br /><br /><img alt="2008-07-24 08.05" src="http://scitools.com/blog/2008_2D07_2D24_2008.05.jpg" border="0" /></p>
<p>Or automatically on a schedule with the Project scheduler available in Project-&gt;Configure Project:<br /><br /><img alt="2008-07-24 08.06" src="http://scitools.com/blog/2008_2D07_2D24_2008.06_small.jpg" border="0" /></p>
]]>
        <![CDATA[

<p>In the manual case, if&nbsp;no files changes are found you will see a &ldquo;No changes&rdquo; message in the status bar.&nbsp; If changes are found&nbsp;you are then asked to approve changes. Here is the result of my first rescan this morning, picking up some changes one of our engineers made in the 2.0 window navigation system:</p>
<p><img alt="2008-07-24 08.08" src="http://scitools.com/blog/2008_2D07_2D24_2008.08.jpg" border="0" /></p>
<p>The automically scheduled one assumes approval of all changes found.</p>
<p>Thanks &ndash; ideas/feedback are welcome.</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>]]>
    </content>
</entry>

<entry>
    <title>New Feature: Entity Explorer - quick exploration of calls and othe relationships</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/new-feature-entity-explorer-qu.html" />
    <id>tag:scitools.com,2008:/blog//2.86</id>

    <published>2008-07-24T06:30:39Z</published>
    <updated>2008-07-24T06:30:39Z</updated>

    <summary><![CDATA[It is very common to walk a call, call by, or class hierarchy tree seeing what is &ldquo;going on&rdquo;.&nbsp; You can do this in the Information Browser, or in the various graph views&nbsp;we have provided for&nbsp;years. A new way in&nbsp;Understand...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="entityexplorer" label="Entity+Explorer" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="newfeature" label="New+Feature" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>It is very common to walk a call, call by, or class hierarchy tree seeing what is &ldquo;going on&rdquo;.&nbsp; You can do this in the Information Browser, or in the various graph views&nbsp;we have provided for&nbsp;years.</p>
<p>A new way in&nbsp;<em>Understand 2.0</em> is the <strong>Entity Explorer</strong> window.&nbsp; It permits keyboard based fast exploring of reference hiearchies with syncronized source and informatoin updates.</p>
<p>To see this just click on any entity that has relationships. For instance, a function, and choose &ldquo;Explorer&rdquo;.&nbsp; It will list the reference hiearchies availble to explore:</p>
<p><img alt="2008-07-24 00.24" src="http://scitools.com/blog/2008_2D07_2D24_2000.24.jpg" border="0" /></p>]]>
        <![CDATA[
<p>This brings up the&nbsp;<strong><em>Entity Explorer&nbsp;</em></strong>window.&nbsp;&nbsp;Use the arrow keys or the mouse to move about the hiearchy. An arrow next to an entity name means there is another level to explore:<br /><br /><img alt="2008-07-24 00.26" src="http://scitools.com/blog/2008_2D07_2D24_2000.26_small.jpg" border="0" /></p>
<p>The way to read this is&nbsp;&ldquo;SetAppFont&rdquo; calls &ldquo;GetApplication&rdquo; which calls &ldquo;instance&rdquo;. I&rsquo;ve got GetApplication selected, so the&nbsp;References box at the bottom left shows the references that&nbsp;caused the&nbsp;Calls relationship.</p>
<p>You can visit them in 2 ways. The first is clicking on them. The source for that location will pop up.&nbsp; The second is to check the&nbsp;box [x] Jump to First Reference&rdquo;. If that box is checked&nbsp;then each time you traverse a column the&nbsp;source location&nbsp;for the first reference &nbsp;will be loaded automatically.</p>
<p><br /><img src="http://scitools.com/blog/smile5.gif" /></p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>New Feature: Search in the Information Browser</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/new-feature-search-in-the-info.html" />
    <id>tag:scitools.com,2008:/blog//2.85</id>

    <published>2008-07-24T05:54:16Z</published>
    <updated>2008-07-24T05:54:16Z</updated>

    <summary><![CDATA[Have you ever looked at a call tree and wondered &ldquo;is somefunction()&rdquo; in there? B453, which you can download now, &nbsp;introduces a new &ldquo;incremental search&rdquo; feature to the Information Browser that makes answering questions like that a snap. To use...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="informationbrowser" label="Information+Browser" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="newfeature" label="New+Feature" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="searching" label="Searching" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="Understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>Have you ever looked at a call tree and wondered &ldquo;is somefunction()&rdquo; in there?</p>
<p>B453, which you can download now, &nbsp;introduces a new &ldquo;incremental search&rdquo; feature to the Information Browser that makes answering questions like that a snap.</p>
<p>To use it hit select where you want to start searching from and then hit the&nbsp;Ctrl-F key while in the IB or click on the <img alt="2008-07-23 23.46" src="http://scitools.com/blog/2008_2D07_2D23_2023.46.jpg" border="0" />&nbsp;icon.</p>
<p>That brings up a search box on the bottom of the IB:<br /><br /><img alt="2008-07-23 23.48" src="http://scitools.com/blog/2008_2D07_2D23_2023.48.jpg" border="0" /></p>
]]>
        <![CDATA[

<p>Enter the text you want to search for and hit Ctrl-F again or&nbsp; the <img alt="2008-07-23 23.49" src="http://scitools.com/blog/2008_2D07_2D23_2023.49.jpg" border="0" />&nbsp;buttons.</p>
<p>Ctrl-F searches forward. Ctrl-Shift-F searches backwards.&nbsp; All text is searched, not just entity names, but all text including field names like &ldquo;Call By&rdquo; and &ldquo;References&rdquo;.</p>
<p>The trees expand as you find things:</p>
<p><img alt="2008-07-23 23.51" src="http://scitools.com/blog/2008_2D07_2D23_2023.51.jpg" border="0" /></p>
<p>Searching like this will also be in the Entity Explorer, Architecture Browser and Project Browser within a build or two.</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>]]>
    </content>
</entry>

<entry>
    <title>Totally Personal Posting</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/totally-personal-posting.html" />
    <id>tag:scitools.com,2008:/blog//2.84</id>

    <published>2008-07-16T23:40:21Z</published>
    <updated>2008-07-16T23:40:21Z</updated>

    <summary><![CDATA[Some of you may have noticed that the quality and timelyness of our support has improved this week. That is because I&rsquo;m not there bugging everybody.&nbsp;My son and I are&nbsp;fishing on a lake in upstate New York.&nbsp; Here I am...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
    <category term="kennelson" label="Ken+Nelson" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="personal" label="Personal" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>Some of you may have noticed that the quality and timelyness of our support has improved this week. That is because I&rsquo;m not there bugging everybody.&nbsp;My son and I are&nbsp;fishing on a lake in upstate New York.&nbsp; Here I am with a 4 lb largemouth bass.&nbsp;&nbsp;Normally I throw them back, but this one seemed just right to feed us this evening.&nbsp; And it was tasty. The trip is almost over, so support will return to&nbsp;its slower lower quality form on Monday.&nbsp;<img src="http://scitools.com/blog/smile5.gif" /></p>
<p><img height="570" alt="CIMG2724" src="http://scitools.com/blog/CIMG2724_small1.jpg" width="396" border="0" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>Documentation: How to get metrics with Understand 2.0</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/metrics-galore.html" />
    <id>tag:scitools.com,2008:/blog//2.83</id>

    <published>2008-07-11T22:12:36Z</published>
    <updated>2008-07-25T05:28:07Z</updated>

    <summary>Metrics have always been very tightly coupled with software engineering. Love them or hate them, there is usually no avoiding them. In Understand 2.0 we&apos;ve significantly increased our ability to provide useful metrics about your project.&#160; The metrics capabilities vary...</summary>
    <author>
        <name>KevinG</name>
        <uri>http://scitools.com/blog/groke.html</uri>
    </author>
    
        <category term="Documentation" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="documentation" label="documentation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="metrics" label="metrics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="understand20" label="understand+2.0" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>Metrics have always been very tightly coupled with software engineering. Love them or hate them, there is usually no avoiding them. In <i>Understand 2.0</i> we've significantly increased our ability to provide useful metrics about your project.&#160; </p>  <p>The metrics capabilities vary depending on what version of Understand you are using: <em>Understand Engineer</em> provides high level project metrics, <em>Understand Pro</em> lets you explore and export project and entity level metrics, and <em>Understand Analyst</em> lets you do all that, create custom graphs, and even compare how metrics are changing over time (trend analysis).&#160; </p>  <p>All of this Metrics capability is accessed through the new Metrics menu.</p>  <p></p>  <table cellspacing="4" cellpadding="2" width="600" border="0"><tbody>     <tr>       <td valign="middle" align="center">         <p><strong>Engineer</strong></p>       </td>        <td valign="middle" align="center">         <p><strong>Pro</strong></p>       </td>        <td valign="middle" align="center"><strong>Analyst</strong></td>     </tr>      <tr>       <td valign="top" align="center" width="200"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="96" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_7.png" width="182" border="0" /> </td>        <td valign="top" align="center" width="200"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="164" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_8.png" width="176" border="0" /> </td>        <td valign="top" align="center" width="200"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="188" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_9.png" width="176" border="0" /> </td>     </tr>   </tbody></table> ]]>
        <![CDATA[  <h3>Basic and Advanced Metrics</h3>  <p>We've noticed that some basic metrics are more useful to engineers then others, such as number of lines of code, number of classes etc. while other metrics are usually more helpful for management and code analysis. Since Understand Engineer and Pro target programmers, these Basic metrics are available in all versions, while the advanced metrics are partially available in Pro and fully available in Analyst.&#160; Though which metrics are displayed depends on what languages are being analyzed, here is a list of what you can expect:</p>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top" width="300"><strong>Basic Metrics</strong></td>        <td valign="top" width="300"><strong>Advanced Metrics</strong> (Partial list)</td>     </tr>      <tr>       <td valign="top" width="300">         <ul>           <li>Class Count </li>            <li>File Count </li>            <li>Function Count </li>            <li>Line Count </li>            <li>Blank Line Count </li>            <li>Code Line Count </li>            <li>Comment Line Count </li>            <li>Inactive Line Count </li>            <li>Declarative Statement Count </li>            <li>Executable Statement Count </li>            <li>Ratio Comment to Code </li>         </ul>       </td>        <td valign="top" width="300">         <ul>           <li>Cyclomatic Complexity </li>            <li>Knots </li>            <li>Class Coupling </li>            <li>Percent Lack of Cohesion </li>            <li>Path Count </li>            <li>Max Inheritance </li>            <li>Base Class Count </li>            <li>Inherited Class Count </li>            <li>Number of Instance Methods </li>            <li>Weighted Methods per Class </li>         </ul>          <p>For a full list see <a title="What metrics does Understand have?" href="http://www.scitools.com/documents/metrics.php" target="_blank">this list</a>.             <br /></p>       </td>     </tr>   </tbody></table>  <h1>Understand Engineer</h1>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top">         <h3>Metrics Summary </h3> The metrics summary provides an overview of the basic project metrics. For example I can quickly see how large my codebase is or how well I do at commenting my code. If there are snapshots in the project, you can also view the same metrics for those snapshots.&#160; <p><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_13.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 10px 0px 0px; border-right-width: 0px" height="123" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_4.png" width="180" border="0" /></a></p>       </td>        <td valign="top"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_13.png"></a><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_11.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 35px; border-right-width: 0px" height="323" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_3.png" width="269" border="0" /></a></a></td>     </tr>   </tbody></table>  <p>&#160;</p>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top" width="200">         <h3>Code Volume Graph</h3>       </td>        <td valign="top" width="200">         <h3>File Volume Graph</h3>       </td>     </tr>      <tr>       <td valign="top" width="200"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_15.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="154" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_5.png" width="188" align="right" border="0" /></a></td>        <td valign="top" width="200"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_17.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="154" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_6.png" width="188" align="right" border="0" /></a></td>     </tr>      <tr>       <td valign="top" width="200">This graph gives a quick view of what percentage of the source is executable code, declarative code, comments, and blank lines. </td>        <td valign="top" width="200">And this provides an overview of how many files are in your project and their breakout.</td>     </tr>   </tbody></table>  <h1>Understand Pro</h1>  <h3>Metrics Browser</h3>  <p>The metrics browser is an efficient way to access all of your available metrics. With the metrics browser you quickly see the high level project overview metrics from <em>Understand Engineer.</em> You can also drill down through your file structure or other architectures to quickly see the basic metrics for any subset of your code. For example, in this case I can quickly see how many lines of code Mark owns and the breakout of that code. </p>  <p>If I drill down to the file level, I can actually get the Advanced metrics for any particular file I'm interested in as well.</p>  <p></p>  <p><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_19.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="286" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_7.png" width="359" border="0" /></a><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_21.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="286" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_8.png" width="304" border="0" /></a></a></p>  <p>&#160;</p>  <h3>&#160;</h3>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top" width="300"><em>           <h3><em>Export Metrics</em></h3> Understand Pro</em> let's you select and export metrics to csv files, which you can then slice and dice with your favorite spreadsheet editor. The metrics you select are exported for files and all Major Language Elements e.g. class, function, methods, structs etc.</td>        <td valign="top" width="300"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_23.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_9.png" width="239" border="0" /></a></td>     </tr>   </tbody></table>  <p>&#160; <a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_25.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="92" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_10.png" width="604" border="0" /></a></p>  <p>&#160;</p>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top" width="200">         <h3>Average Complexity</h3>       </td>        <td valign="top" width="200">         <h3>Sum Complexity</h3>       </td>     </tr>      <tr>       <td valign="top" width="200"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_15.png"></a><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_27.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="154" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_11.png" width="193" border="0" /></a></a></td>        <td valign="top" width="200"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_17.png"></a><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_29.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="154" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_12.png" width="192" border="0" /></a></a></td>     </tr>      <tr>       <td valign="top" width="200">This graph shows how complex your code is on average using the <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_blank">cyclomatic complexity</a> metric and also how deeply nested your code is.</td>        <td valign="top" width="200">And this shows the total number of paths through your code, the cumulative <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_blank">cyclomatic complexity</a>, and <a href="http://en.wikipedia.org/wiki/Essential_complexity" target="_blank">essential complexity</a>.</td>     </tr>   </tbody></table>  <h1>Understand Analyst</h1>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top">         <h3>Metrics Browser</h3>          <p>In addition to the Metrics Browser functionality in Understand Pro, Understand Analyst provides Advanced metrics for any level of an Architecture tree, so if I wanted to know the average complexity of Mark's code, that information is right there.</p>       </td>        <td valign="top"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_31.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="148" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_13.png" width="244" border="0" /></a></td>     </tr>   </tbody></table>  <h3>Export to HTML</h3>  <p>The entire set of Advanced Metrics in the Metrics Browser can be exported to HTML using <em>Analyst</em>. This report is perfect for posting on the team intranet and provides quick access to a very wide range of information. </p>  <p>&#160;<a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_33.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="338" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_14.png" width="604" border="0" /></a></p>  <table cellspacing="0" cellpadding="0" width="600" border="0"><tbody>     <tr>       <td valign="top">         <h3>Browse Metrics Graphs</h3>          <p>This feature is where <em>Understand Analyst</em> really shows its strength as a premium metrics tool. This window gives you the capability to generate an unlimited number of metrics graphs. </p>          <p>There are two major report categories here, Project metrics and Change Metrics. Project metrics are based on the snapshot you are looking at. Change metrics let you see how those project metrics have changed between different points in time. For example I can graph how many lines of code each engineer owns in my current database using project metrics. Using the change metrics I can see how many lines of code each engineer added, changed and removed since the last build. </p>       </td>        <td valign="top"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_37.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_16.png" width="147" border="0" /></a></td>     </tr>   </tbody></table>  <p>The examples below are just a few reports generated almost instantly using Understand Analyst. </p>  <table cellspacing="0" cellpadding="0" width="600" border="3"><tbody>     <tr>       <td valign="top" width="300"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_39.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_17.png" width="304" border="0" /></a>           <br /><strong>Code volume by Staff - Go Mark!</strong></td>        <td valign="top" width="300"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_47.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_21.png" width="317" border="0" /></a>           <br /><strong>Code Breakdown by Language</strong>&#160;</td>     </tr>      <tr>       <td valign="top" width="300"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_41.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_18.png" width="307" border="0" /></a>           <br /><strong>Classes Modified between builds by Staff</strong></td>        <td valign="top" width="300"><a href="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_45.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://scitools.com/blog/WindowsLiveWriter/MetricsGalore_A26B/image_thumb_20.png" width="310" border="0" /></a>           <br /><strong>Files Changed between builds by staff</strong></td>     </tr>   </tbody></table>]]>
    </content>
</entry>

<entry>
    <title>Tip: Making a snapshot from an alternate project source directory</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/tip-making-a-snapshot-from-an.html" />
    <id>tag:scitools.com,2008:/blog//2.82</id>

    <published>2008-07-10T12:04:24Z</published>
    <updated>2008-07-10T12:04:24Z</updated>

    <summary><![CDATA[I was&nbsp;working hard on doing nothing on the&nbsp;4th of July holiday and didn&rsquo;t do a Build Metrics post about B450. Now I&rsquo;m ready to do that and I find that I forgot to make an Understand 2.0 snapshot of the...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Understand 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="alternatelocation" label="alternate+location" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="change" label="Change" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="snapshot" label="snapshot" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="snapshots" label="snapshots" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>I was&nbsp;working hard on doing nothing on the&nbsp;4<sup>th</sup> of July holiday and didn&rsquo;t do a Build Metrics post about B450. Now I&rsquo;m ready to do that and I find that I forgot to make an Understand 2.0 snapshot of the source for B450.</p>
<p>I have a couple options:</p>
<ol>
<li>Check out B450 source to an alternate location and make a snapshot from it.</li>
<li>Look up the revision tag time for B450 and use TrackBack to make a snapshot.</li></ol>
<p>I&rsquo;ll choose #1 just for an example. Next time, I&rsquo;ll show #2. </p>
<p>First, I&rsquo;ll check my SVN e-mail log to see when B450 was tagged:</p>
<p><img alt="2008-07-10 05.10" src="http://scitools.com/blog/2008_2D07_2D10_2005.10.jpg" border="0" /></p>
<p>]]>
        <![CDATA[
<p></p>
<p>Now just go to the Change menu and choose to create a Named snapshot from an alternate source location:</p>
<p><img alt="2008-07-10 05.26" src="http://scitools.com/blog/2008_2D07_2D10_2005.26.jpg" border="0" /></p>
<p>Because my personal source tree has advanced beyond B450, I needed to put B450 source in a separate location. And I&rsquo;ll need to tell Understand where I put it. Also, so that this snapshot is ordered correctly reltative to others, I&rsquo;ll need to give the SVN tag time.&nbsp; I tell Understand where I put it by adding a source mapping. What I&rsquo;m doing here is saying &ldquo;Hey Understand, for this directory in the current project, look in this alternate folder when making a snapshot&rdquo;:</p>
<p><img alt="2008-07-10 05.31" src="http://scitools.com/blog/2008_2D07_2D10_2005.31.jpg" border="0" /></p>
<p>My working source for this Understand project is in the second &ldquo;Current Project path&rdquo; field. Where I placed B450 is in the first &ldquo;Alternate Source Path&rdquo;. They need to be the same relative points in the respective versions of the source tree.</p>
<p>Understand 2.0 the thinks for a bit and then presents a &ldquo;Snapshot Preview&rdquo;. Here you can see if you did the maping right.</p>
<p><a href="http://scitools.com/blog/2008_2D07_2D10_2005.33.jpg"><img alt="2008-07-10 05.33" src="http://scitools.com/blog/2008_2D07_2D10_2005.33_thumb.jpg" border="0" /></a></p>
<p>The way to interpret this preview is that the first list, &ldquo;Current Project files found&rdquo; is files that exist in the current and alternate locations.&nbsp; The second &ldquo;files that are not in the current project&rdquo; represent files that were deleted since B450, and the third &ldquo;files not included in this snapshot&rdquo; means that there were new files that weren&rsquo;t around for B450. These are auto-generated files largely, an artifact of our Qt based build system. </p>
<p>This looks right to me. So I accept it and it makes the snapshot.&nbsp; I can then see the rough stats for it via Change-&gt;Manage Snapshots:</p>
<p><img alt="2008-07-10 06.00" src="http://scitools.com/blog/2008_2D07_2D10_2006.00.jpg" border="0" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>New Professional Services Group</title>
    <link rel="alternate" type="text/html" href="http://scitools.com/blog/2008/07/new-professional-services-grou.html" />
    <id>tag:scitools.com,2008:/blog//2.81</id>

    <published>2008-07-03T03:48:50Z</published>
    <updated>2008-07-03T03:48:50Z</updated>

    <summary><![CDATA[Historically we have always had a very small percentage of our revenue as services. As our customer base&nbsp;has grown (over 4,000 customer sites as of last month), requests for customizations, training, new reports, new metrics, new analysis features have increased...]]></summary>
    <author>
        <name>Ken Nelson</name>
        <uri>http://www.scitools.com/blog/ken-nelson.html</uri>
    </author>
    
        <category term="Scitools Announcements" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="customscripts" label="custom+scripts" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="professionalservices" label="professional+services" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="scripting" label="scripting" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://scitools.com/blog/">
        <![CDATA[<p>Historically we have always had a very small percentage of our revenue as services. As our customer base&nbsp;has grown (over 4,000 customer sites as of last month), requests for customizations, training, new reports, new metrics, new analysis features have increased to the point where we need to have an organized way of responding.</p>
<p>Towards that end we&rsquo;ve created a Professional Services group within Scitools. Currently it is a Lead Engineer (Rob Shurtliff&nbsp;&ndash;&nbsp;a senior engineer with a number of years experience providing professional services)&nbsp;and three other engineers. We can matrix a variety of other engineers with special skills through the group as well.</p>
<p>So what can the new Scitools PSG do for you? </p>
<p><a href="http://www.scitools.com/products/proservices.php">http://www.scitools.com/products/proservices.php</a></p>
<p>has the details.&nbsp; But in short, anything related to improving your benefit from using our tools. That could include training, special scripts, new metrics, adding an assembler or other language, helping you create architectures, a multi-site metrics collection system. Whatever you need that depends on our technology.</p>
<p>Our new Scitools PSG works in these ways:</p>
<ul>
<li>&nbsp;fixed price deliverable &ndash; we agree on a deliverable. You pay when we deliver and you are happy.</li>
<li>&nbsp;on going hourly&nbsp; &ndash; this is for ongoing work; a budget or contract is set, we bill against it.</li>
<li>&nbsp;retainer &ndash; the group sells 40, 80 and 200 hour retainers. There are also product bundles that include licenses and service hours. When you have a need they tell you the hours required and after your e-mailed approval they proceed.</li></ul>
<p>If you have something in mind e-mail our <a href="mailto:support@scitools.com">support@scitools.com</a> folks.</p>
<p><img src="http://scitools.com/blog/smile5.gif" /></p>]]>
        
    </content>
</entry>

</feed>
