 <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.analytica.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rsonnenblick</id>
	<title>Analytica Docs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.analytica.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rsonnenblick"/>
	<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php/Special:Contributions/Rsonnenblick"/>
	<updated>2026-05-20T14:13:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=18495</id>
		<title>Jobs for Analytica experts</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=18495"/>
		<updated>2010-07-29T14:02:08Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Employment Opportunities=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
When adding an employment opportunity to the job listings, please indicate the following:&lt;br /&gt;
*Date of Job posting&lt;br /&gt;
*Job Title&lt;br /&gt;
*Name of Company/Organization&lt;br /&gt;
*Location (City, State)&lt;br /&gt;
&lt;br /&gt;
Please provide a brief description of the job requirements in addition to your contact details.&lt;br /&gt;
&lt;br /&gt;
You may edit the sample template below as required:&lt;br /&gt;
===Date   Title, Company Name, Location===&lt;br /&gt;
:: '''Description:''' &lt;br /&gt;
:: '''Contact:'''&lt;br /&gt;
&lt;br /&gt;
==Jobs==&lt;br /&gt;
&lt;br /&gt;
=== July 15th, 2010. Energy Market Analyst/Emerging Technologies Consultant, Customized Energy Solutions ===&lt;br /&gt;
&lt;br /&gt;
: '''Description:''' We are looking for a talented and hard-working individual with a minimum of five years experience in the deregulated electric industry to support the electricity market analysis consulting work of Customized Energy Solutions. This position will be largely focused performing analytical project work geared towards evaluations of aspects of the electricity markets. Specifically, the analyses are likely to deal emerging technologies including energy storage technologies,  renewable energy products, demand response opportunities, and smart grid initiatives, but will also deal with conventional generation and load modeling. Examples of specific responsibilities include:&lt;br /&gt;
&lt;br /&gt;
:* Lead interactions with energy storage and renewable technology companies to develop projects for market evaluation.&lt;br /&gt;
:* Participate in market analysis projects with energy storage and renewable elements, as well as other analysis projects. These projects will require the Consultant to produce reports based on market knowledge, understanding of available technologies, market rule research, pricing research, and other inputs.&lt;br /&gt;
:* Assist clients in developing proposals for emerging technology funding from venture capital funds, financial institutions, and / or other funding agencies.&lt;br /&gt;
:* Assist financial institutions in due diligence of new technologies based on available market opportunities, potential technology improvements, market rule changes and competition from other solution providers.&lt;br /&gt;
:* Participate in conferences / tradeshows for the primary purpose of developing additional business for Customized Energy Solutions.&lt;br /&gt;
&lt;br /&gt;
: '''Preferred experience:''' &lt;br /&gt;
:* General knowledge of wholesale electricity markets&lt;br /&gt;
:* Some specific understanding of energy storage technology&lt;br /&gt;
:* A Masters Degree; preferably in electrical engineering or other engineering field&lt;br /&gt;
:* Experience in performing project research &lt;br /&gt;
:* Strong analytical reasoning skills&lt;br /&gt;
:* Understanding of project financial modeling&lt;br /&gt;
:* Experience with statistical analysis &amp;amp; Modeling tools, such as Palisade Decision Tools suite including @Risk and / or Analytica&lt;br /&gt;
:* Good written and oral communication skills&lt;br /&gt;
:* Ability to be self directed as well as work well with others&lt;br /&gt;
:* Experience with standard office software&lt;br /&gt;
:* Specific knowledge of the RTO/ISO wholesale markets&lt;br /&gt;
:* Data mining experience&lt;br /&gt;
:* Database software skills, specifically Microsoft SQL experience&lt;br /&gt;
:* Advanced education&lt;br /&gt;
&lt;br /&gt;
Determination of Consultant / Analyst and compensation is commensurate with experience and performance. Benefits include 401K,   &lt;br /&gt;
profit sharing plan, and comprehensive medical and dental insurance. This opportunity is based out of our center city &lt;br /&gt;
Philadelphia, Pennsylvania location with close proximity to public transportation and cultural attractions.&lt;br /&gt;
&lt;br /&gt;
: '''Contact:''' Send your resumes to rahul@ces-ltd.com Rahul Walawalkar Ph.D.,Vice President, Emerging Technologies &amp;amp; Markets&lt;br /&gt;
&lt;br /&gt;
===June 1, 2009. Principal Energy Analyst, Lumina Decision Systems, Los Gatos, CA===&lt;br /&gt;
&lt;br /&gt;
: '''Description:''' In addition to developing and publishing Analytica, Lumina has a small growing consulting team that provides consulting and creates analytic tools for our clients,  based on Analytica. We specialize in applications in energy, environment, and economics. We are seeking an experienced energy analyst as a key member of our consulting team. The successful candidate will assist companies, government, and NGOs to help them navigate the rapidly changing opportunities and risks in the way the produce and consume energy. The candidate will also help in the design and development of analytic tools. You  have experience developing analytic models to provide new insights into complex situations. You enjoy working for a small company with the feel of a start-up. You  want the the opportunity to lead a consulting group, to recruit, manage, and mentor other analysts, and to share in shaping our company strategy. You want to contribute your substantial talents in speeding the transition to a more sustainable world. &lt;br /&gt;
&lt;br /&gt;
: '''Qualifications:''' &lt;br /&gt;
:* A Masters degree, MBA, or preferably PhD in a technical area, science, engineering, economics, business, or policy.&lt;br /&gt;
:* Extensive experience in developing quantitative models to provide useful insights into complex situations.&lt;br /&gt;
:* Deep knowledge and interest in energy and environmental issues.&lt;br /&gt;
:* Experience working with clients to help them understand what they need and providing it to them.&lt;br /&gt;
:* Excellence in speaking and writing complex ideas with clarity.&lt;br /&gt;
:* Ability to manage multiple projects and work with minimal supervision.&lt;br /&gt;
:* Ability to lead a small group, manage, and mentor other analysts.&lt;br /&gt;
&lt;br /&gt;
: '''Preferred experience:''' &lt;br /&gt;
:* Work with utility companies and other energy businesses.&lt;br /&gt;
:* Decision analysis and expert elicitation of probabilities.&lt;br /&gt;
:* R&amp;amp;D portfolio analysis.&lt;br /&gt;
:* Analytica or other quantitative modeling and simulation tools.&lt;br /&gt;
:* Optimization tools.&lt;br /&gt;
&lt;br /&gt;
: '''Contact:''' Please email your resume and cover letter to [mailto:info@Lumina.com]&lt;br /&gt;
&lt;br /&gt;
===July 29, 2010,  Senior Analyst, Enrich Consulting, San Jose, California===&lt;br /&gt;
: '''Description:'''  Enrich Consulting builds web-based enterprise tools to enable stage-gate, portfolio management, and project valuation decision making. We use Analytica as a behind-the-scenes number cruncher extraordinaire and are currently looking for experienced Analytica modelers who can support our clients' needs for sophisticated yet easy-to-use financial modeling tools. Below I've included information on one of our openings. For more information please see the 'company' section of our website [http://enrichconsulting.com] --Rich Sonnenblick&lt;br /&gt;
&lt;br /&gt;
:As a Senior Analyst, you will perform a leading role on client engagements, working closely with clients to understand key business issues and translate them into business and financial models.&lt;br /&gt;
&lt;br /&gt;
:'''Other duties:'''&lt;br /&gt;
:* Develop comprehensive financial models to evaluate individual R&amp;amp;D initiatives and R&amp;amp;D portfolios&lt;br /&gt;
:* Responsible for driving implementations of the Enrich Portfolio System (EPS) software&lt;br /&gt;
:* Help clients understand and incorporate market and development risk in their analysis of strategic alternatives&lt;br /&gt;
:* Conduct training sessions on the EPS and decision analysis&lt;br /&gt;
:* Assist clients with the development of their portfolio processes&lt;br /&gt;
:* Develop and summarize insights for communicating to clients&lt;br /&gt;
:* Help to develop new approaches to problems and expand applications to new industries&lt;br /&gt;
:'''Qualifications:'''&lt;br /&gt;
:* BA, MS, or PhD in Operations Research, Applied Math, Physics, Engineering, Economics or related field -OR-&lt;br /&gt;
:* MBA with a concentration in quantitative business forecasting, decision making, or market analysis&lt;br /&gt;
:* 3-6 years work experience in a quantitative position in the management consulting, pharmaceutical, biotechnology, and/or high-technology industries&lt;br /&gt;
:* Demonstrated excellent analytical and computer skills&lt;br /&gt;
:* Proficiency modeling with Excel spreadsheets&lt;br /&gt;
:* Very strong oral and written communication skills&lt;br /&gt;
:* Enjoy explaining/teaching concepts to others&lt;br /&gt;
:* Desire for a high level of responsibility and ability to work with minimal supervision&lt;br /&gt;
:* Understanding of financial statements and financial analysis&lt;br /&gt;
:* Ability to quickly learn new skills and methodologies&lt;br /&gt;
:* Desire to work in a team-oriented, informal, small company environment&lt;br /&gt;
:* Willingness to travel up to 30%&lt;br /&gt;
:* Willingness to relocate to the San Francisco / South Bay area&lt;br /&gt;
:'''Preferred:'''&lt;br /&gt;
:* Experience creating financial models for R&amp;amp;D valuations and/or R&amp;amp;D portfolio management&lt;br /&gt;
:* Demonstrated leadership skills in multiple settings and ability to manage many priorities and multi-task&lt;br /&gt;
:* Familiarity with decision modeling software such as Analytica, DPL, Crystal Ball, or enterprise data analysis applications&lt;br /&gt;
:* Experience deploying analytic applications on the web&lt;br /&gt;
:* Knowledge of the pharmaceutical, biotechnology, and/or high-tech industries&lt;br /&gt;
&lt;br /&gt;
: '''Contact:''' Please send your resume and a cover letter describing your qualifications for the position to [mailto:careers@enrichconsulting.com]&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Free_Analytica_4.2_Upgrade&amp;diff=18467</id>
		<title>Free Analytica 4.2 Upgrade</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Free_Analytica_4.2_Upgrade&amp;diff=18467"/>
		<updated>2010-07-20T19:54:23Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides instructions for how to obtain and install your free upgrade to Analytica 4.2 or ADE 4.2.&lt;br /&gt;
&lt;br /&gt;
See also: [[What's new in Analytica 4.2?]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Analytica 4.2&amp;lt;br /&amp;gt;Released 21 Sep 2009&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Eligibility =&lt;br /&gt;
&lt;br /&gt;
Users of Analytica (including ADE)with current support are eligible for a free upgrade to release 4.2 (support entitles you free upgrades to minor-version releases, such as 4.1 to 4.2.) &lt;br /&gt;
&lt;br /&gt;
You have current support if you purchased Analytica or renewed your support in the last 12 months. If not, may purchase a renewal for your support retroactively, paying from the time it expired, until 12 months ahead [https://lumina.com/ana/support.htm Renew Active Support. You are then eligible for a free upgrade.&lt;br /&gt;
&lt;br /&gt;
= Instructions =&lt;br /&gt;
&lt;br /&gt;
To get your free upgrade, ''if your support is active'' simply [https://lumina.com/ana/enterLic.htm Start Here].&lt;br /&gt;
&lt;br /&gt;
After trading-in your old 4.0 or 4.1 license, and proceeding through the checkout, we will email you an activation key and download/install instructions.  The purchase total will register as $0. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you may take this opportunity to buy an upgrade your edition -- for example, to extend it to a 64-bit edition or a floating license.  You can then add a higher edition.  Remember to remove the free upgrade edition so that you receive a trade-in credit.  For an introductory period until Nov 6th 2009, we are offering a $500 saving for upgrade to 64-bit editions -- $1000 instead of $1500.&lt;br /&gt;
&lt;br /&gt;
== If your active support is not current ==&lt;br /&gt;
&lt;br /&gt;
In this case, you have two options:&lt;br /&gt;
* Pay full price for Analytica 4.2.&lt;br /&gt;
* Retroactively purchase active support from the date it lapsed.&lt;br /&gt;
&lt;br /&gt;
In most cases, the retroactive purchase of active support is the most cost-effective option.  To do this,&lt;br /&gt;
start at [https://lumina.com/ana/support.htm Purchase Support].  Renew the support and provide payment information.  Once you receive confirmation that your transaction has been processed (within 1 business day), then you can follow the instructions above.&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=CorrespondenceMethod&amp;diff=15461</id>
		<title>CorrespondenceMethod</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=CorrespondenceMethod&amp;diff=15461"/>
		<updated>2009-12-21T20:19:57Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Attributes]]&lt;br /&gt;
&lt;br /&gt;
(new to 4.0)  Avail as of 4.0.0.34.&lt;br /&gt;
&lt;br /&gt;
= Attribute CorrespondenceMethod =&lt;br /&gt;
&lt;br /&gt;
Used as an attribute on an object that serves as an index for an edit [[Table]], [[DetermTable]] or [[ProbTable]].  Controls how correspondence between previous and new index values is determined when the index value changes.&lt;br /&gt;
&lt;br /&gt;
Possible Values:&lt;br /&gt;
&lt;br /&gt;
1 : Positional &lt;br /&gt;
&lt;br /&gt;
2 : Associative&lt;br /&gt;
&lt;br /&gt;
3 : Flexible Associative (current default)&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
&lt;br /&gt;
When an index definition changes, where some elements might be removed, others added, some existing elements renamed, and some existing elements potentially re-ordered, edit tables that use that index need to be re-adjusted.  In some cases, the correspondence between the old index elements and new index elements may be ambiguous.  This is particularly the case when when the index value is computed.&lt;br /&gt;
&lt;br /&gt;
The CorrespondenceMethod attribute determines the method Analytica uses to determine this correspondence.  Consider the following example.  Here we have a one-D edit table indexed by ''Year''.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Year !! Contribution&lt;br /&gt;
|-&lt;br /&gt;
! 2007 || $2500&lt;br /&gt;
|-&lt;br /&gt;
! 2008 || $3000&lt;br /&gt;
|-&lt;br /&gt;
! 2009 || $3200&lt;br /&gt;
|-&lt;br /&gt;
! 2010 || $3400&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Suppose the index '''Year''' is defined as 2007..2010.&lt;br /&gt;
&lt;br /&gt;
Now, Year is changed to 2006..2011. The two most basic correspondence methods are '''pure positional''' and '''pure associative''', and would result in the following respective adjustments to the ''Contribution'' edit table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ '''Pure Positional Correspondence'''&lt;br /&gt;
|-&lt;br /&gt;
! 2006 || $2500&lt;br /&gt;
|-&lt;br /&gt;
! 2007 || $3000&lt;br /&gt;
|-&lt;br /&gt;
! 2008 || $3200&lt;br /&gt;
|-&lt;br /&gt;
! 2009 || $3400&lt;br /&gt;
|-&lt;br /&gt;
! 2010 || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
! 2011 || &amp;amp;nbsp;&lt;br /&gt;
|} &lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ||&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ '''Pure Associative Correspondence'''&lt;br /&gt;
|-&lt;br /&gt;
! 2006 || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
! 2007 || $2500&lt;br /&gt;
|-&lt;br /&gt;
! 2008 || $3000&lt;br /&gt;
|-&lt;br /&gt;
! 2009 || $3200&lt;br /&gt;
|-&lt;br /&gt;
! 2010 || $3400&lt;br /&gt;
|-&lt;br /&gt;
! 2011 || &amp;amp;nbsp;&lt;br /&gt;
|} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are cases where either form of correspondence may be more desirable.  In general, pure associational correspondence may lose more data than positional, since if the original element is removed, the data for that row may be lost.&lt;br /&gt;
&lt;br /&gt;
Flex associational, the default used, corresponds by association when it can (i.e., when the same element appears in both old and new), but draws on positional correspondence between paired elements, which helps to preserve data when an element is basically renamed.  Thus, flex associational preserves more data than pure associational.&lt;br /&gt;
&lt;br /&gt;
To change the CorrespondenceMethod attribute for an index, use typescript, e.g.:&lt;br /&gt;
  CorrespondenceMethod In1 : 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: In build 4.0.0.34, if the number of elements does not change, pure associational reverts to positional.  However, this will be changed.  Flex Associational will revert to positional if the number of elements is not changed, but Pure Positional (1) will not.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
''Remember that CorrespondenceMethod is a property of the Index, not of the table.''&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
* [[Table Splicing]]&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Analytica_4.2_beta_Release_Notes/Changes_in_4.2.2&amp;diff=15000</id>
		<title>Analytica 4.2 beta Release Notes/Changes in 4.2.2</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Analytica_4.2_beta_Release_Notes/Changes_in_4.2.2&amp;diff=15000"/>
		<updated>2009-11-18T18:55:18Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Patch Release 4.2.2 =&lt;br /&gt;
&lt;br /&gt;
This page describes the changes in patch release 4.2.2 since the release of 4.2.1.&lt;br /&gt;
&lt;br /&gt;
Patch release 4.2.2 is a bug fix release.  We recommend all users of 4.2.0 or 4.2.1 to upgrade to this patch.  &lt;br /&gt;
&lt;br /&gt;
The dependency bugs described below have the potential to mislead you into viewing calculated results that aren't correct given your model inputs, and are thus pretty important to patch.&lt;br /&gt;
&lt;br /&gt;
We do not believe that patch has potential to impact the ability to run existing models.  The only notable enhancement is a new and revised Chapter 5 of the Tutorial.&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
&lt;br /&gt;
The patch can be downloaded from:&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/AnaSetup4_2_2.exe Analytica 32-bit]&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/Ana64Setup4_2_2.exe Analytica 64-bit]&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/AdeSetup4_2_2.exe ADE 32-bit]&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/Ade64Setup4_2_2.exe ADE 64-bit]&lt;br /&gt;
&lt;br /&gt;
If you've previously activated a 4.2 license, just leave the activation key blank when running the installer.  The previous activation will still be valid.&lt;br /&gt;
&lt;br /&gt;
= Licensing and Activation =&lt;br /&gt;
&lt;br /&gt;
* If you have previously activated a license for 4.2.0 or 4.2.1, no license activation is required to install this patch.  Simply run through the installer with default values, leaving the activation key field blank.  It will pick up the previous activated license.  ''No new license and no new activation is required!''&lt;br /&gt;
&lt;br /&gt;
* For people activating for the first time, the 4.2.2 installer can now make use of a proxy server to communicate with the Lumina activation server and user registration server.  This will eliminate the need for manual activation for people who are behind firewalls but with internet access via a proxy server.  If your Internet Explorer or Google Chrome browsers are configured already to use your proxy server, Analytica will find the proxy server from those settings.  If those do not contain the proxy server info, then you should set the environment variable '''HTTP_PROXY''' to &amp;lt;code&amp;gt;proxyServerName:port&amp;lt;/code&amp;gt;.  For example, if your proxy server runs on the computer named Watermelon on port 808, then set the environment variable HTTP_PROXY to Watermelon:808 prior to running the installer.  Again, this is necessary only if your Internet Explorer or Chrome browsers are not already configured for your proxy server.&lt;br /&gt;
&lt;br /&gt;
* The CheckForUpdates utility can now also makes use of a proxy server when checking whether new releases have become available.  The same details from the previous bullet apply for locating (or configuring) the proxy server location.&lt;br /&gt;
&lt;br /&gt;
* The display of your user name in the '''Update License...''' dialog is no longer preceded by &amp;quot;user=&amp;quot;.  Several people experienced failures with manual activation after entering their user name as &amp;quot;user=johndoe&amp;quot; rather than just &amp;quot;johndoe&amp;quot;.  Hopefully with this removed, this mistake will no longer occur.&lt;br /&gt;
&lt;br /&gt;
= Dependencies =&lt;br /&gt;
&lt;br /&gt;
* The dependencies to a table from its table indexes were not being recorded.  Thus, if the indexes changed, in some cases the tables (and thus downstream results) did not adjust correctly.&lt;br /&gt;
&lt;br /&gt;
* When entering an expression into an edit table cell, dependencies from the variables used in the expression to the table variable were not being recorded.  This corrected itself if the model was reloaded (or if you dirtied the table definition in expr view).  As a result, after such an edit table change had been made, a change to an input would not invalidate all downstream results correctly.&lt;br /&gt;
&lt;br /&gt;
= Linked Modules =&lt;br /&gt;
&lt;br /&gt;
* A substantial amount of work was done to improve handling of linked module relative paths in cases where a model had nested linked modules in different directories.  In many cases when linked modules (or linked libraries) were nested inside other linked modules, and all module files were in different directories in the file system tree, the relative paths would get interpreted incorrectly.&lt;br /&gt;
&lt;br /&gt;
* The way the FileInfo attribute is maintained was changed, so that while a model is in memory, the attribute contains the absolute path to the linked module, linked library or model.  When the file is saved, the relative path is written to the file for the include statement.  This change facilitated a solution to the next couple problems.&lt;br /&gt;
&lt;br /&gt;
* When a linked module object containing other linked module objects is changed to a non-linked module, the file path of linked modules contained within must now be changeed to be relative to the parent linked module or model. This conversion did not happen automatically, causing some misalignment of relative paths when linked modules where nested and in different directories.&lt;br /&gt;
&lt;br /&gt;
* When you use '''File&amp;amp;rarr;Save As...''' to save your model to a different directory, the relative paths of any linked modules contained within your model need to be adjusted, since the relative locations may change as a result.  This did not previous occur, but now these are adjusted appropriately.&lt;br /&gt;
&lt;br /&gt;
* When loading a model containing multiple linked modules, if one linked module file is not found and you don't select another (either because you are loading in ADE, or because you pressed Cancel in the Find File dialog), 4.2.1 would abort the remaining load, but this patch continues loading the remaining model and linked module files, as 4.1 used to.&lt;br /&gt;
&lt;br /&gt;
* When saving a model, if one module cannot be written for some reason, such as a file permission problem, and you cancel when prompted for a new location (or are using ADE's [[CAEngine::SaveModel]]), the save operation continues for the remainder of the model and remaining linked modules.  In 4.2.1 it would terminate.&lt;br /&gt;
&lt;br /&gt;
* If you use '''Add Module...''' to add a model file (rather than a module file) to your model, it will now ask you whether you want to import the system variable settings (see [[Using_Add_Module..._to_import_a_Model_file|Adding Model file as Module... dialog]]).&lt;br /&gt;
&lt;br /&gt;
* When the same linked module is included twice (such as when a library is linked independently by two different linked modules), the second inclusion would be skipped.  The problem is that this would effectively remove the shared library from the second module.  If that second module were used by another model, it could break the other model.  Now, the second inclusion introduces a special module alias, so the shared module appears in both linked modules, and when they are saved, the saved linked module files contain include statements, so that both continue to include the shared module.  Thus other models that use the second module continue to import the shared library.&lt;br /&gt;
&lt;br /&gt;
* When you use a standard Analytica library (one from Analytica's installed Libraries directory), Analytica now stores a flag with the file information indicating that it was from the standard library directory.  If you then share your model with someone else, who happened to install Analytica to a different location, it knows to look in the standard Libraries directory for that module.  So it will find it even if the relative and absolute paths are different.&lt;br /&gt;
&lt;br /&gt;
* When using '''Add Module...''', if you don't explicitly type the file extension, it previously wouldn't find the corresponding *.ana file, but now it does.&lt;br /&gt;
&lt;br /&gt;
* When you set the class of an object contained inside your model to Model (as opposed to Linked Module), this will now save all system variable settings (Time, Run, preferences) along with the file written.  If you don't want that, you should set its class to Linked Module instead.  That distinction -- whether the system variables settings are saved with the file -- is the only distinction between the Model class and the linked module class.  The fact that it didn't previously save the system variable settings was a bug.&lt;br /&gt;
&lt;br /&gt;
= OLE linking =&lt;br /&gt;
&lt;br /&gt;
* When Analytica is the data source for an OLE link, and you press &amp;quot;Open Source&amp;quot; in the client app, previously nothing would happen (or you'd get an error message indicating that the app cannot be opened).  Now it opens Analytica to the table containing the linked data.&lt;br /&gt;
&lt;br /&gt;
* When you copy a variable that is defined as an OLE-linked table, the copied not is now an active OLE link to the same data.&lt;br /&gt;
&lt;br /&gt;
= User Interface =&lt;br /&gt;
&lt;br /&gt;
* The [Wiki Help] button is now enabled on the Object Finder ('''Definition&amp;amp;rarr;Paste Identifier...''') even if you did not enter Wiki credentials when running the installer.&lt;br /&gt;
&lt;br /&gt;
* When viewing the ''inputs'' and ''outputs'' attributes in the attribute pane, the list of objects would accumulate rather than just showing the input or outputs for the selected variable.&lt;br /&gt;
&lt;br /&gt;
* The Recent File listing shows directory information when two files with the same file name (but different directory locations) appear on the list so that these can be easily disambiguated.&lt;br /&gt;
&lt;br /&gt;
* If you select a file on Recent Files that doesn't exist (i.e., because it had been moved), you are asked to find the file.  After you find the file, the entry on the recent files list is replaced with the file you just selected.&lt;br /&gt;
&lt;br /&gt;
* When the [[TemplateInput]] or [[TemplateOutput]] attribute contains a non-existant identifier (an error), an attempt to duplicate the node would fail.&lt;br /&gt;
&lt;br /&gt;
* When an invalid definition (one that could not parse due to errors) had just been entered into the attribute pane, it would not let you delete the object while the definition was still showing.&lt;br /&gt;
&lt;br /&gt;
* The default file extension when you save a model without specifying the extension explicitly is now *.ana (lower case) rather than *.ANA (upper case).&lt;br /&gt;
&lt;br /&gt;
* Double clicking on an output node (label part) jumps to the object window.  It did this in 4.1, but wasn't working in 4.2.1.&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
* A crash was fixed that occurred when the process ran out of memory while attempting to update certain parts of the user interface.&lt;br /&gt;
&lt;br /&gt;
* A crash was fixed that occurred when the process ran out of memory at a particular point when an allocation for a text value was being attempted.&lt;br /&gt;
&lt;br /&gt;
* When the [[ShowHier]] system variable is changed from typescript or button script, the open diagram windows now adjust to the change.  Previously currently open windows didn't react.&lt;br /&gt;
&lt;br /&gt;
* Removed a few archaic system variables (SchedulePublish and Q_inFromRec).&lt;br /&gt;
&lt;br /&gt;
* A crash was fixed that occurred after using [[SpreadsheetSetRange]]().&lt;br /&gt;
&lt;br /&gt;
* Fixed a glitch in the '''Attributes...''' dialog in which the &amp;quot;Create New&amp;quot; button would get out-of-sync and would crash in some instances.&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
* ''An all new Chapter 5'' -- coverage of arrays and array abstraction.&lt;br /&gt;
&lt;br /&gt;
= User Guide =&lt;br /&gt;
&lt;br /&gt;
* Fixed an incorrect parameter name shown in the function [[MdTable]] in the UG.&lt;br /&gt;
&lt;br /&gt;
= Example Models  =&lt;br /&gt;
&lt;br /&gt;
* Removed the &amp;quot;Foxes and Hares.ana&amp;quot; file.  This has been superceded by &amp;quot;Foxes and hares act III.ana&amp;quot;, and the presence of the previous version was confusing.&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Analytica_4.2_beta_Release_Notes/Changes_in_4.2.0.29&amp;diff=14996</id>
		<title>Analytica 4.2 beta Release Notes/Changes in 4.2.0.29</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Analytica_4.2_beta_Release_Notes/Changes_in_4.2.0.29&amp;diff=14996"/>
		<updated>2009-11-18T18:27:27Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Engine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;lt;&amp;lt; Back to [[Beta Tester Page]]''&lt;br /&gt;
&lt;br /&gt;
Build 4.2.0.29 was the first 4.2 release build, but was quickly replaced with the 4.2.1.1.  As far as we know, only a handful of people downloaded this build before the patch was ready.&lt;br /&gt;
&lt;br /&gt;
= Final Release =&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Beta&amp;quot; flag was removed, to make this an actual release, and not a beta release.&lt;br /&gt;
&lt;br /&gt;
= Manuals and Docs =&lt;br /&gt;
&lt;br /&gt;
* The End-User License Agreement (EULA) for Analytica and ADE was updated for 4.2 and the new licensing paradigms available with 4.2.&lt;br /&gt;
&lt;br /&gt;
= Installer =&lt;br /&gt;
&lt;br /&gt;
* Textual changes to numerous items in the installer, for greater clarity.&lt;br /&gt;
&lt;br /&gt;
= Built-in functions =&lt;br /&gt;
&lt;br /&gt;
* Enhancements and fixes to [[Area]], [[Integrate]] and [[Normalize]].  These were updated to handle [[Null]] values.  Also, they were changed to handle non-ascending x values correctly, whereas previous the result when x was not ascending was nonsensical.  These were also modified to accepted named-parameter syntax.  A slight numeric error in [[Area]] was corrected.  &lt;br /&gt;
&lt;br /&gt;
* The [[Subscript]] operator, A[I=[[Null]]], changed to not issue an out-of-range warning.  When the subscript is [[Null]], the result is [[Null]], without warning (unless the index actually contains the value [[Null]], in which case the subscript would return the corresponding value).&lt;br /&gt;
&lt;br /&gt;
* The [[Sum]] function ignores [[Null]] values when summing.  When all values are [[Null]], the result is zero.  There was a bug when the [[Preferences|Show Result Warnings]] preference was on, so that if all elements were null, resulting from warnings such has subscript-out-of-range, the result ended up being [[Null]], not zero.  This made it appears as if the results would change depending on whether you started out with [[Preferences|Show Result Warnings]] off, or with it on but pressed &amp;quot;Ignore Warnings&amp;quot; when the condition was encountered.&lt;br /&gt;
&lt;br /&gt;
* Fixed some problems related to the reporting of ODBC driver errors during a failure to connect to a data source.  It would report &amp;quot;cannot obtain error from driver&amp;quot; - now it should retrieve the error -- and there may have been intermittent crashes associated with displaying that error.&lt;br /&gt;
&lt;br /&gt;
* [[ReadFromURL]] was stripping query string parameters during a POST operation, making it impossible to pass parameters on both on the URL and in the HTTP message body (post parameters).&lt;br /&gt;
&lt;br /&gt;
* When [[Concat]](A,B,I,J) creates a .K index, the index values should come from the original indexes when possible.  When A was not indexed by I (i.e., constant over I), that was not happening.&lt;br /&gt;
&lt;br /&gt;
= Engine =&lt;br /&gt;
&lt;br /&gt;
* Parsing of very large numbers (overflow numbers), such as 1e+400, changed.  They now parse, but are essentially INF.  These were causing a parsing error, so that if they were present in a table, the table would not parse.  Also, overflow numbers were being treated as the largest number, 1e+308, rather than INF.&lt;br /&gt;
&lt;br /&gt;
* The Assignment operator wasn't dealing correctly with implicit indexes based, when the assigned value was dimensioned by a [[Var..Do]] pseudo-index.&lt;br /&gt;
&lt;br /&gt;
* Variables on the left-hand side of an assignment operator were not being updated correctly when the variable was renamed.  Also, arrows from such options (when arrows from UDFs is on) now point away from the UDF to the object assigned.&lt;br /&gt;
&lt;br /&gt;
= GUI =&lt;br /&gt;
&lt;br /&gt;
* On a multi-monitor system, where the secondary monitor is taller than it is wide, with Analytica running on the secondary monitor, windows would stagger until they would eventually open outside of the visible region.  That would usually force you to exit and restart Analytica after about an hour of use.&lt;br /&gt;
&lt;br /&gt;
* When the screen resolution, or multi-monitor configuration, is changed while Analytica is running, it now adapts to the new size, resolution and geometry.  Previously it would get confused (remembering the old geometry) and it would sometimes be impossible to drag nodes past an invisible boundary after one of these changes.&lt;br /&gt;
&lt;br /&gt;
* In an edit table, browse mode, the way in which checkboxes and choice pulldowns in cells display when a cell is selected was altered slightly.&lt;br /&gt;
&lt;br /&gt;
* Shift-Click extends table selection, now even when you shift-click on a cell with a control.&lt;br /&gt;
&lt;br /&gt;
* A syntax error would be reported if you attempted to move it while it was in the process of being copied.&lt;br /&gt;
&lt;br /&gt;
* When a form node was selected, the Uncertainty Settings... was not bringing up the dialog for the selected item.&lt;br /&gt;
&lt;br /&gt;
* Multi-line index labels would overlap unacceptable in the Index Selector's preview pane.&lt;br /&gt;
&lt;br /&gt;
* Eliminated a crash that would occur when you attempted to Print or Print Preview when there was no default printer available.  Some of these options are now disabled in that case.&lt;br /&gt;
&lt;br /&gt;
= Example Models =&lt;br /&gt;
&lt;br /&gt;
* New example model, &amp;quot;Abstracted Subset.ana&amp;quot; added to function examples.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Continuous Distribution Examples.ana&amp;quot; had been stored with a sample size of 5 -- not very illustrative.  &lt;br /&gt;
&lt;br /&gt;
= ADE =&lt;br /&gt;
&lt;br /&gt;
* Improved reporting of specific causes of licensing errors.&lt;br /&gt;
&lt;br /&gt;
* Running ADE.exe from the command line with no parameters now brings up the licensing dialog, same as &amp;quot;ADE.exe /RegServer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* When [[CARenderingStyle|RenderingStyle::NumberAsText]] is true, [[CATable::GetDataByElement]](..) returns numeric cells as text.  When false, returns cells as numbers.  This was behaving inconsistently.&lt;br /&gt;
&lt;br /&gt;
* [[CATable::SetDataByElements]] and [[CATable::SetDataByLabels]] were failing when numeric data contained a comma as a thousands separator.&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Analytica_4.2_beta_Release_Notes/Changes_in_4.2.2&amp;diff=14995</id>
		<title>Analytica 4.2 beta Release Notes/Changes in 4.2.2</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Analytica_4.2_beta_Release_Notes/Changes_in_4.2.2&amp;diff=14995"/>
		<updated>2009-11-18T18:25:48Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Example Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Patch Release 4.2.2 =&lt;br /&gt;
&lt;br /&gt;
This page describes the changes in patch release 4.2.2 since the release of 4.2.1.&lt;br /&gt;
&lt;br /&gt;
Patch release 4.2.2 is a bug fix release.  We recommend all users of 4.2.0 or 4.2.1 to upgrade to this patch.  &lt;br /&gt;
&lt;br /&gt;
The dependency bugs described below have the potential to mislead you into viewing calculated results that aren't correct given your model inputs, and are thus pretty important to patch.&lt;br /&gt;
&lt;br /&gt;
We do not believe that patch has potential to impact the ability to run existing models.  The only notable enhancement is a new and revised Chapter 5 of the Tutorial.&lt;br /&gt;
&lt;br /&gt;
= Downloads =&lt;br /&gt;
&lt;br /&gt;
The patch can be downloaded from:&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/AnaSetup4_2_2.exe Analytica 32-bit]&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/Ana64Setup4_2_2.exe Analytica 64-bit]&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/AdeSetup4_2_2.exe ADE 32-bit]&lt;br /&gt;
* [http://downloads.AnalyticaOnline.com/ana/Ade64Setup4_2_2.exe ADE 64-bit]&lt;br /&gt;
&lt;br /&gt;
If you've previous activated a 4.2 license, just leave the activation key blank when running the installer.  The previous activation will still be valid.&lt;br /&gt;
&lt;br /&gt;
= Licensing and Activation =&lt;br /&gt;
&lt;br /&gt;
* If you have previously activated a license for 4.2.0 or 4.2.1, no license activation is required to install this patch.  Simply run through the installer with default values, leaving the activation key field blank.  It will pick up the previous activated license.  ''No new license and no new activation is required!''&lt;br /&gt;
&lt;br /&gt;
* For people activating for the first time, the 4.2.2 installer can now make use of a proxy server to communicate with the Lumina activation server and user registration server.  This will eliminate the need for manual activation for people who are behind firewalls but with internet access via a proxy server.  If your Internet Explorer or Google Chrome browsers are configured already to use your proxy server, Analytica will find the proxy server from those settings.  If those do not contain the proxy server info, then you should set the environment variable '''HTTP_PROXY''' to &amp;lt;code&amp;gt;proxyServerName:port&amp;lt;/code&amp;gt;.  For example, if your proxy server runs on the computer named Watermelon on port 808, then set the environment variable HTTP_PROXY to Watermelon:808 prior to running the installer.  Again, this is necessary only if your Internet Explorer or Chrome browsers are not already configured for your proxy server.&lt;br /&gt;
&lt;br /&gt;
* The CheckForUpdates utility can now also makes use of a proxy server when checking whether new releases have become available.  The same details from the previous bullet apply for locating (or configuring) the proxy server location.&lt;br /&gt;
&lt;br /&gt;
* The display of your user name in the '''Update License...''' dialog is no longer preceded by &amp;quot;user=&amp;quot;.  Several people experienced failures with manual activation after entering their user name as &amp;quot;user=johndoe&amp;quot; rather than just &amp;quot;johndoe&amp;quot;.  Hopefully with this removed, this mistake will no longer occur.&lt;br /&gt;
&lt;br /&gt;
= Dependencies =&lt;br /&gt;
&lt;br /&gt;
* The dependencies to a table from its table indexes were not being recorded.  Thus, if the indexes changed, in some cases the tables (and thus downstream results) did not adjust correctly.&lt;br /&gt;
&lt;br /&gt;
* When entering an expression into an edit table cell, dependencies from the variables used in the expression to the table variable were not being recorded.  This corrected itself if the model was reloaded (or if you dirtied the table definition in expr view).  As a result, after such an edit table change had been made, a change to an input would not invalidate all downstream results correctly.&lt;br /&gt;
&lt;br /&gt;
= Linked Modules =&lt;br /&gt;
&lt;br /&gt;
* A substantial amount of work was done to improve handling of linked module relative paths in cases where a model had nested linked modules in different directories.  In many cases when linked modules (or linked libraries) were nested inside other linked modules, and all module files were in different directories in the file system tree, the relative paths would get interpreted incorrectly.&lt;br /&gt;
&lt;br /&gt;
* The way the FileInfo attribute is maintained was changed, so that while a model is in memory, the attribute contains the absolute path to the linked module, linked library or model.  When the file is saved, the relative path is written to the file for the include statement.  This change facilitated a solution to the next couple problems.&lt;br /&gt;
&lt;br /&gt;
* When a linked module object containing other linked module objects is changed to a non-linked module, the file path of linked modules contained within must now be changeed to be relative to the parent linked module or model. This conversion did not happen automatically, causing some misalignment of relative paths when linked modules where nested and in different directories.&lt;br /&gt;
&lt;br /&gt;
* When you use '''File&amp;amp;rarr;Save As...''' to save your model to a different directory, the relative paths of any linked modules contained within your model need to be adjusted, since the relative locations may change as a result.  This did not previous occur, but now these are adjusted appropriately.&lt;br /&gt;
&lt;br /&gt;
* When loading a model containing multiple linked modules, if one linked module file is not found and you don't select another (either because you are loading in ADE, or because you pressed Cancel in the Find File dialog), 4.2.1 would abort the remaining load, but this patch continues loading the remaining model and linked module files, as 4.1 used to.&lt;br /&gt;
&lt;br /&gt;
* When saving a model, if one module cannot be written for some reason, such as a file permission problem, and you cancel when prompted for a new location (or are using ADE's [[CAEngine::SaveModel]]), the save operation continues for the remainder of the model and remaining linked modules.  In 4.2.1 it would terminate.&lt;br /&gt;
&lt;br /&gt;
* If you use '''Add Module...''' to add a model file (rather than a module file) to your model, it will now ask you whether you want to import the system variable settings (see [[Using_Add_Module..._to_import_a_Model_file|Adding Model file as Module... dialog]]).&lt;br /&gt;
&lt;br /&gt;
* When the same linked module is included twice (such as when a library is linked independently by two different linked modules), the second inclusion would be skipped.  The problem is that this would effectively remove the shared library from the second module.  If that second module were used by another model, it could break the other model.  Now, the second inclusion introduces a special module alias, so the shared module appears in both linked modules, and when they are saved, the saved linked module files contain include statements, so that both continue to include the shared module.  Thus other models that use the second module continue to import the shared library.&lt;br /&gt;
&lt;br /&gt;
* When you use a standard Analytica library (one from Analytica's installed Libraries directory), Analytica now stores a flag with the file information indicating that it was from the standard library directory.  If you then share your model with someone else, who happened to install Analytica to a different location, it knows to look in the standard Libraries directory for that module.  So it will find it even if the relative and absolute paths are different.&lt;br /&gt;
&lt;br /&gt;
* When using '''Add Module...''', if you don't explicitly type the file extension, it previously wouldn't find the corresponding *.ana file, but now it does.&lt;br /&gt;
&lt;br /&gt;
* When you set the class of an object contained inside your model to Model (as opposed to Linked Module), this will now save all system variable settings (Time, Run, preferences) along with the file written.  If you don't want that, you should set its class to Linked Module instead.  That distinction -- whether the system variables settings are saved with the file -- is the only distinction between the Model class and the linked module class.  The fact that it didn't previously save the system variable settings was a bug.&lt;br /&gt;
&lt;br /&gt;
= OLE linking =&lt;br /&gt;
&lt;br /&gt;
* When Analytica is the data source for an OLE link, and you press &amp;quot;Open Source&amp;quot; in the client app, previously nothing would happen (or you'd get an error message indicating that the app cannot be opened).  Now it opens Analytica to the table containing the linked data.&lt;br /&gt;
&lt;br /&gt;
* When you copy a variable that is defined as an OLE-linked table, the copied not is now an active OLE link to the same data.&lt;br /&gt;
&lt;br /&gt;
= User Interface =&lt;br /&gt;
&lt;br /&gt;
* The [Wiki Help] button is now enabled on the Object Finder ('''Definition&amp;amp;rarr;Paste Identifier...''') even if you did not enter Wiki credentials when running the installer.&lt;br /&gt;
&lt;br /&gt;
* When viewing the ''inputs'' and ''outputs'' attributes in the attribute pane, the list of objects would accumulate rather than just showing the input or outputs for the selected variable.&lt;br /&gt;
&lt;br /&gt;
* The Recent File listing shows directory information when two files with the same file name (but different directory locations) appear on the list so that these can be easily disambiguated.&lt;br /&gt;
&lt;br /&gt;
* If you select a file on Recent Files that doesn't exist (i.e., because it had been moved), you are asked to find the file.  After you find the file, the entry on the recent files list is replaced with the file you just selected.&lt;br /&gt;
&lt;br /&gt;
* When the [[TemplateInput]] or [[TemplateOutput]] attribute contains a non-existant identifier (an error), an attempt to duplicate the node would fail.&lt;br /&gt;
&lt;br /&gt;
* When an invalid definition (one that could not parse due to errors) had just been entered into the attribute pane, it would not let you delete the object while the definition was still showing.&lt;br /&gt;
&lt;br /&gt;
* The default file extension when you save a model without specifying the extension explicitly is now *.ana (lower case) rather than *.ANA (upper case).&lt;br /&gt;
&lt;br /&gt;
* Double clicking on an output node (label part) jumps to the object window.  It did this in 4.1, but wasn't working in 4.2.1.&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
* A crash was fixed that occurred when the process ran out of memory while attempting to update certain parts of the user interface.&lt;br /&gt;
&lt;br /&gt;
* A crash was fixed that occurred when the process ran out of memory at a particular point when an allocation for a text value was being attempted.&lt;br /&gt;
&lt;br /&gt;
* When the [[ShowHier]] system variable is changed from typescript or button script, the open diagram windows now adjust to the change.  Previously currently open windows didn't react.&lt;br /&gt;
&lt;br /&gt;
* Removed a few archaic system variables (SchedulePublish and Q_inFromRec).&lt;br /&gt;
&lt;br /&gt;
* A crash was fixed that occurred after using [[SpreadsheetSetRange]]().&lt;br /&gt;
&lt;br /&gt;
* Fixed a glitch in the '''Attributes...''' dialog in which the &amp;quot;Create New&amp;quot; button would get out-of-sync and would crash in some instances.&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
* ''An all new Chapter 5'' -- coverage of arrays and array abstraction.&lt;br /&gt;
&lt;br /&gt;
= User Guide =&lt;br /&gt;
&lt;br /&gt;
* Fixed an incorrect parameter name shown in the function [[MdTable]] in the UG.&lt;br /&gt;
&lt;br /&gt;
= Example Models  =&lt;br /&gt;
&lt;br /&gt;
* Removed the &amp;quot;Foxes and Hares.ana&amp;quot; file.  This has been superceded by &amp;quot;Foxes and hares act III.ana&amp;quot;, and the presence of the previous version was confusing.&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Analytica_Decision_Engine_Reference/Release_ADE_Objects_BEFORE_deleting_Analytica_objects&amp;diff=14103</id>
		<title>Analytica Decision Engine Reference/Release ADE Objects BEFORE deleting Analytica objects</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Analytica_Decision_Engine_Reference/Release_ADE_Objects_BEFORE_deleting_Analytica_objects&amp;diff=14103"/>
		<updated>2009-07-21T17:10:13Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Good code: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Important programming Note'''&lt;br /&gt;
&lt;br /&gt;
When using ADE, it is critical that your code releases any ADE objects before Analytica objects used by your code are deleted.  Failure to do so can result in a crash, and often the crash occurs much later so that it is hard to associate the crash with the original source of the problem.&lt;br /&gt;
&lt;br /&gt;
Analytica objects may be deleted by&lt;br /&gt;
* Closing your model, CAEngine::CloseModel&lt;br /&gt;
* Deleting the object, via CAEngine::DeleteObject&lt;br /&gt;
* Deleting a module object that contains the object, via CAEngine::Delete&lt;br /&gt;
* Using a typescript command, such as delete, to delete the object.&lt;br /&gt;
&lt;br /&gt;
It is fairly obviously which object CAObject, CAIndex instances point to.  These should be released BEFORE deleting the underlying object.  CATables also point to an underlying object, the result or definition object, but also to index objects.  If you delete any index object that belongs to the table, you need to release the CATable instance first!!&lt;br /&gt;
&lt;br /&gt;
The following code demonstrates (non-.NET):&lt;br /&gt;
&lt;br /&gt;
===Good code:===&lt;br /&gt;
 CAObject obj = ade.Get(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 ....&lt;br /&gt;
 obj = Nothing&lt;br /&gt;
 ade.DeleteObject(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 obj = ade.Get(&amp;quot;Va2&amp;quot;)&lt;br /&gt;
 ....&lt;br /&gt;
&lt;br /&gt;
===Bad code===&lt;br /&gt;
 CAObject obj = ade.Get(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
 ade.DeleteObject(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 obj = ade.Get(&amp;quot;Va2&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===Good .NET code===&lt;br /&gt;
 CAObject obj = ade.Get(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' In .NET, you must explicitly release&amp;lt;/font&amp;gt;&lt;br /&gt;
 obj = Nothing&lt;br /&gt;
 ade.DeleteObject(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 obj = ade.Get(&amp;quot;Va2&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
= Closing models =&lt;br /&gt;
&lt;br /&gt;
When you load a model, operate on it with ADE for a while, odds are that you'll have several ADE objects instantiated -- perhaps some CAObjects, CATables, etc.  If you close that model and open another, it is very important that you release all the objects that were in use for the original model.&lt;br /&gt;
&lt;br /&gt;
Here is a common mistake that can lead to a crash (much later):&lt;br /&gt;
&lt;br /&gt;
 CATable tab = obj.ResultTable&lt;br /&gt;
 ...&lt;br /&gt;
 ade.CloseModel( )&lt;br /&gt;
 ade.OpenModel( &amp;quot;newModel.ana&amp;quot; )&lt;br /&gt;
 ...&lt;br /&gt;
 tab = ade.Get(name).ResultTable   &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' Reuse tab&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The CATable pointed to by ''tab'' is released in the last line, but this release occurs after the result object and indexes used by the CATable have ceased to exist.  The correct way is to release ''tab'' before closing the first model, and set tab to Nothing, e.g.:&lt;br /&gt;
&lt;br /&gt;
 CATable tab = obj.ResultTable&lt;br /&gt;
 ...&lt;br /&gt;
 ReleaseComObject(obj) &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' If in .NET&amp;lt;/font&amp;gt;&lt;br /&gt;
 tab = Nothing&lt;br /&gt;
 ade.CloseModel( )&lt;br /&gt;
 ade.OpenModel( &amp;quot;newModel.ana&amp;quot; )&lt;br /&gt;
 ...&lt;br /&gt;
 tab = ade.Get(name).ResultTable   &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' Reuse tab&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= .NET notes =&lt;br /&gt;
&lt;br /&gt;
The whole COM release thing is a complete pain.  The reason for having to call ReleaseComObject is because the garbage collection architecture leaves the ADE object laying around until GC happens to run.  Instead of worrying about calling ReleaseComObject every time, you can just ensure that you've released the pointers by setting them to null, and then force a garbage collection before closing a model or otherwise deleting objects.  Code would look more like this:&lt;br /&gt;
&lt;br /&gt;
 CATable tab = obj.ResultTable&lt;br /&gt;
 ...&lt;br /&gt;
 tab = Nothing&lt;br /&gt;
 ...&lt;br /&gt;
 System.GC.Collect()&lt;br /&gt;
 ade.CloseModel( )&lt;br /&gt;
 ade.OpenModel( &amp;quot;newModel.ana&amp;quot; )&lt;br /&gt;
 ...&lt;br /&gt;
 tab = ade.Get(name).ResultTable   &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' Reuse tab&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you follow this practice of garbage collecting before any operation that may delete an object, your .NET code can be much cleaner, especially in C# or C++/CLR (using deterministic destruction in the latter).&lt;br /&gt;
&lt;br /&gt;
In C#, when you instantiate an object such as CATable, wrap it in a using block:&lt;br /&gt;
&lt;br /&gt;
 Using ( CATable tab = obj.ResultTable ) &lt;br /&gt;
 {&lt;br /&gt;
    // .. Do something with tab ...&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
If you delete an object, or close a model, that would occur outside the lexical scope of tab.  So, the logical flow would look like this:&lt;br /&gt;
&lt;br /&gt;
 Using ( CATable tab = obj.ResultTable ) &lt;br /&gt;
 {&lt;br /&gt;
    // .. Do something with tab ...&lt;br /&gt;
 } &lt;br /&gt;
 ...&lt;br /&gt;
 System.GC.Collect();&lt;br /&gt;
 ade.CloseModel( );&lt;br /&gt;
&lt;br /&gt;
The sequence of things that happens here:&lt;br /&gt;
* tab is instantiated&lt;br /&gt;
* Operations inside the using occur using tab&lt;br /&gt;
* When the end of the Using scope is reached, the interop wrapper tab is released by .NET. At this point it is still in the managed heap, ready to be collected.  But it still points to the CATable COM object, which still lives inside ADE, which still points to the Analytica objects.&lt;br /&gt;
* When System.GC.Collect() executes, the tab interop wrapper is garbaged collected.  At this time, ReleaseComObject completes, and the the CATable is released and freed inside ADE.  Now it is safe to delete objects.&lt;br /&gt;
* CloseModel deletes Analytica objects.&lt;br /&gt;
&lt;br /&gt;
Religious use of the Using construct in C# will keep you from making an error that could result in a problem -- as long as you also remember to garbage collect prior to closing your model or deleting objects.&lt;br /&gt;
&lt;br /&gt;
''Note that the need to release, and techniques discussed here, are not limited to ADE.  You should do the same for any COM component used in a .NET application -- especially if it is used out-of-process.''&lt;br /&gt;
&lt;br /&gt;
A final note for those porting VB applications from VB6 into .NET: be sure to remove all &amp;quot;call sub()&amp;quot; syntaxes from your code, in favor of simply using &amp;quot;sub()&amp;quot; instead. When your subroutine instantiates COM objects, using call will orphan those objects and they cannot be released later, even using ReleaseComObject.&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=11237</id>
		<title>Jobs for Analytica experts</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=11237"/>
		<updated>2008-12-15T23:51:44Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Employment Opportunities=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
When adding an employment opportunity to the job listings, please indicate the following:&lt;br /&gt;
*Date of Job posting&lt;br /&gt;
*Job Title&lt;br /&gt;
*Name of Company/Organization&lt;br /&gt;
*Location (City, State)&lt;br /&gt;
&lt;br /&gt;
Please provide a brief description of the job requirements in addition to your contact details.&lt;br /&gt;
&lt;br /&gt;
You may edit the sample template below as required:&lt;br /&gt;
# '''Date   Title, Company Name, Location'''&lt;br /&gt;
:: '''Description:''' Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;br /&gt;
:: '''Contact:'''&lt;br /&gt;
&lt;br /&gt;
==Jobs==&lt;br /&gt;
1. '''December 15, 2008,  Senior Analyst, Enrich Consulting, San Jose, California''' &lt;br /&gt;
: '''Description:'''  Enrich Consulting builds web-based enterprise tools to enable stage-gate, portfolio management, and project valuation decision making. We use Analytica as a behind-the-scenes number cruncher extraordinaire and are currently looking for experienced Analytica modelers who can support our clients' needs for sophisticated yet easy-to-use financial modeling tools. Below I've included information on one of our openings. For more information please see the 'company' section of our website [http://enrichconsulting.com] --Rich Sonnenblick&lt;br /&gt;
&lt;br /&gt;
:As a Senior Analyst, you will perform a leading role on client engagements, working closely with clients to understand key business issues and translate them into business and financial models.&lt;br /&gt;
&lt;br /&gt;
:'''Other duties:'''&lt;br /&gt;
:* Develop comprehensive financial models to evaluate individual R&amp;amp;D initiatives and R&amp;amp;D portfolios&lt;br /&gt;
:* Responsible for driving implementations of the Enrich Portfolio System (EPS) software&lt;br /&gt;
:* Help clients understand and incorporate market and development risk in their analysis of strategic alternatives&lt;br /&gt;
:* Conduct training sessions on the EPS and decision analysis&lt;br /&gt;
:* Assist clients with the development of their portfolio processes&lt;br /&gt;
:* Develop and summarize insights for communicating to clients&lt;br /&gt;
:* Help to develop new approaches to problems and expand applications to new industries&lt;br /&gt;
:'''Qualifications:'''&lt;br /&gt;
:* BA, MS, or PhD in Operations Research, Applied Math, Physics, Engineering, Economics or related field -OR-&lt;br /&gt;
:* MBA with a concentration in quantitative business forecasting, decision making, or market analysis&lt;br /&gt;
:* 3-6 years work experience in a quantitative position in the management consulting, pharmaceutical, biotechnology, and/or high-technology industries&lt;br /&gt;
:* Demonstrated excellent analytical and computer skills&lt;br /&gt;
:* Proficiency modeling with Excel spreadsheets&lt;br /&gt;
:* Very strong oral and written communication skills&lt;br /&gt;
:* Enjoy explaining/teaching concepts to others&lt;br /&gt;
:* Desire for a high level of responsibility and ability to work with minimal supervision&lt;br /&gt;
:* Understanding of financial statements and financial analysis&lt;br /&gt;
:* Ability to quickly learn new skills and methodologies&lt;br /&gt;
:* Desire to work in a team-oriented, informal, small company environment&lt;br /&gt;
:* Willingness to travel up to 30%&lt;br /&gt;
:* Willingness to relocate to the San Francisco / South Bay area&lt;br /&gt;
:'''Preferred:'''&lt;br /&gt;
:* Experience creating financial models for R&amp;amp;D valuations and/or R&amp;amp;D portfolio management&lt;br /&gt;
:* Demonstrated leadership skills in multiple settings and ability to manage many priorities and multi-task&lt;br /&gt;
:* Familiarity with decision modeling software such as Analytica, DPL, Crystal Ball, or enterprise data analysis applications&lt;br /&gt;
:* Experience deploying analytic applications on the web&lt;br /&gt;
:* Knowledge of the pharmaceutical, biotechnology, and/or high-tech industries&lt;br /&gt;
&lt;br /&gt;
: '''Contact:''' Please send your resume and a cover letter describing your qualifications for the position to [mailto:careers@enrichconsulting.com]&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=11236</id>
		<title>Jobs for Analytica experts</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=11236"/>
		<updated>2008-12-15T23:50:49Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Employment Opportunities=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
When adding an employment opportunity to the job listings, please indicate the following:&lt;br /&gt;
*Date of Job posting&lt;br /&gt;
*Job Title&lt;br /&gt;
*Name of Company/Organization&lt;br /&gt;
*Location (City, State)&lt;br /&gt;
&lt;br /&gt;
Please provide a brief description of the job requirements in addition to your contact details.&lt;br /&gt;
&lt;br /&gt;
You may edit the sample template below as required:&lt;br /&gt;
# '''Date   Title, Company Name, Location'''&lt;br /&gt;
:: '''Description:''' Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;br /&gt;
:: '''Contact:'''&lt;br /&gt;
&lt;br /&gt;
==Jobs==&lt;br /&gt;
1. '''December 15, 2008,  Senior Analyst, Enrich Consulting, San Jose, California''' &lt;br /&gt;
: '''Description:'''  Enrich Consulting builds web-based enterprise tools for to enable stage-gate, portfolio management, and project valuation decision making. We use Analytica as behind-the-scenes number cruncher extraordinaire and are currently looking for experienced Analytica modelers who can support our clients' needs for sophisticated yet easy-to-use financial modeling tools. Below I've included information on one of our openings. For more information please see the 'company' section of our website [http://enrichconsulting.com] &lt;br /&gt;
&lt;br /&gt;
:As a Senior Analyst, you will perform a leading role on client engagements, working closely with clients to understand key business issues and translate them into business and financial models.&lt;br /&gt;
&lt;br /&gt;
:'''Other duties:'''&lt;br /&gt;
:* Develop comprehensive financial models to evaluate individual R&amp;amp;D initiatives and R&amp;amp;D portfolios&lt;br /&gt;
:* Responsible for driving implementations of the Enrich Portfolio System (EPS) software&lt;br /&gt;
:* Help clients understand and incorporate market and development risk in their analysis of strategic alternatives&lt;br /&gt;
:* Conduct training sessions on the EPS and decision analysis&lt;br /&gt;
:* Assist clients with the development of their portfolio processes&lt;br /&gt;
:* Develop and summarize insights for communicating to clients&lt;br /&gt;
:* Help to develop new approaches to problems and expand applications to new industries&lt;br /&gt;
:'''Qualifications:'''&lt;br /&gt;
:* BA, MS, or PhD in Operations Research, Applied Math, Physics, Engineering, Economics or related field -OR-&lt;br /&gt;
:* MBA with a concentration in quantitative business forecasting, decision making, or market analysis&lt;br /&gt;
:* 3-6 years work experience in a quantitative position in the management consulting, pharmaceutical, biotechnology, and/or high-technology industries&lt;br /&gt;
:* Demonstrated excellent analytical and computer skills&lt;br /&gt;
:* Proficiency modeling with Excel spreadsheets&lt;br /&gt;
:* Very strong oral and written communication skills&lt;br /&gt;
:* Enjoy explaining/teaching concepts to others&lt;br /&gt;
:* Desire for a high level of responsibility and ability to work with minimal supervision&lt;br /&gt;
:* Understanding of financial statements and financial analysis&lt;br /&gt;
:* Ability to quickly learn new skills and methodologies&lt;br /&gt;
:* Desire to work in a team-oriented, informal, small company environment&lt;br /&gt;
:* Willingness to travel up to 30%&lt;br /&gt;
:* Willingness to relocate to the San Francisco / South Bay area&lt;br /&gt;
:'''Preferred:'''&lt;br /&gt;
:* Experience creating financial models for R&amp;amp;D valuations and/or R&amp;amp;D portfolio management&lt;br /&gt;
:* Demonstrated leadership skills in multiple settings and ability to manage many priorities and multi-task&lt;br /&gt;
:* Familiarity with decision modeling software such as Analytica, DPL, Crystal Ball, or enterprise data analysis applications&lt;br /&gt;
:* Experience deploying analytic applications on the web&lt;br /&gt;
:* Knowledge of the pharmaceutical, biotechnology, and/or high-tech industries&lt;br /&gt;
&lt;br /&gt;
: '''Contact:''' Please send your resume and a cover letter describing your qualifications for the position to [mailto:careers@enrichconsulting.com]&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=11235</id>
		<title>Jobs for Analytica experts</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Jobs_for_Analytica_experts&amp;diff=11235"/>
		<updated>2008-12-15T23:41:40Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: /* Jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Employment Opportunities=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
When adding an employment opportunity to the job listings, please indicate the following:&lt;br /&gt;
*Date of Job posting&lt;br /&gt;
*Job Title&lt;br /&gt;
*Name of Company/Organization&lt;br /&gt;
*Location (City, State)&lt;br /&gt;
&lt;br /&gt;
Please provide a brief description of the job requirements in addition to your contact details.&lt;br /&gt;
&lt;br /&gt;
You may edit the sample template below as required:&lt;br /&gt;
# '''Date   Title, Company Name, Location'''&lt;br /&gt;
:: '''Description:''' Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;br /&gt;
:: '''Contact:'''&lt;br /&gt;
&lt;br /&gt;
==Jobs==&lt;br /&gt;
1. '''December 15, 2008,  Senior Analyst, Enrich Consulting, San Jose, California''' &lt;br /&gt;
: '''Description:  As a Senior Analyst, you will perform a leading role on client engagements, working closely with clients to understand key business issues and translate them into business and financial models. '''&lt;br /&gt;
&lt;br /&gt;
:Other duties:&lt;br /&gt;
&lt;br /&gt;
 :   * Develop comprehensive financial models to evaluate individual R&amp;amp;D initiatives and R&amp;amp;D portfolios&lt;br /&gt;
    * Responsible for driving implementations of the Enrich Portfolio System (EPS) software&lt;br /&gt;
    * Help clients understand and incorporate market and development risk in their analysis of strategic alternatives&lt;br /&gt;
    * Conduct training sessions on the EPS and decision analysis&lt;br /&gt;
    * Assist clients with the development of their portfolio processes&lt;br /&gt;
    * Develop and summarize insights for communicating to clients&lt;br /&gt;
    * Help to develop new approaches to problems and expand applications to new industries&lt;br /&gt;
&lt;br /&gt;
Qualifications:&lt;br /&gt;
&lt;br /&gt;
    * BA, MS, or PhD in Operations Research, Applied Math, Physics, Engineering, Economics or related field -OR-&lt;br /&gt;
    * MBA with a concentration in quantitative business forecasting, decision making, or market analysis&lt;br /&gt;
    * 3-6 years work experience in a quantitative position in the management consulting, pharmaceutical, biotechnology, and/or high-technology industries&lt;br /&gt;
    * Demonstrated excellent analytical and computer skills&lt;br /&gt;
    * Proficiency modeling with Excel spreadsheets&lt;br /&gt;
    * Very strong oral and written communication skills&lt;br /&gt;
    * Enjoy explaining/teaching concepts to others&lt;br /&gt;
    * Desire for a high level of responsibility and ability to work with minimal supervision&lt;br /&gt;
    * Understanding of financial statements and financial analysis&lt;br /&gt;
    * Ability to quickly learn new skills and methodologies&lt;br /&gt;
    * Desire to work in a team-oriented, informal, small company environment&lt;br /&gt;
    * Willingness to travel up to 30%&lt;br /&gt;
    * Willingness to relocate to the San Francisco / South Bay area&lt;br /&gt;
&lt;br /&gt;
Preferred:&lt;br /&gt;
&lt;br /&gt;
    * Experience creating financial models for R&amp;amp;D valuations and/or R&amp;amp;D portfolio management&lt;br /&gt;
    * Demonstrated leadership skills in multiple settings and ability to manage many priorities and multi-task&lt;br /&gt;
    * Familiarity with decision modeling software such as Analytica, DPL, Crystal Ball, or enterprise data analysis applications&lt;br /&gt;
    * Experience deploying analytic applications on the web&lt;br /&gt;
    * Knowledge of the pharmaceutical, biotechnology, and/or high-tech industries&lt;br /&gt;
&lt;br /&gt;
: '''Contact: Please send your resume and a cover letter describing your qualifications for the position to [mailto:careers@enrichconsulting.com]'''&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
	<entry>
		<id>https://docs.analytica.com/index.php?title=Analytica_Decision_Engine_Reference/Release_ADE_Objects_BEFORE_deleting_Analytica_objects&amp;diff=6477</id>
		<title>Analytica Decision Engine Reference/Release ADE Objects BEFORE deleting Analytica objects</title>
		<link rel="alternate" type="text/html" href="https://docs.analytica.com/index.php?title=Analytica_Decision_Engine_Reference/Release_ADE_Objects_BEFORE_deleting_Analytica_objects&amp;diff=6477"/>
		<updated>2007-09-27T21:46:19Z</updated>

		<summary type="html">&lt;p&gt;Rsonnenblick: Additional note about the evils of &amp;quot;call&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Important programming Note'''&lt;br /&gt;
&lt;br /&gt;
When using ADE, it is critical that your code releases any ADE objects before Analytica objects used by your code are deleted.  Failure to do so can result in a crash, and often the crash occurs much later so that it is hard to associate the crash with the original source of the problem.&lt;br /&gt;
&lt;br /&gt;
Analytica objects may be deleted by&lt;br /&gt;
* Closing your model, CAEngine::CloseModel&lt;br /&gt;
* Deleting the object, via CAEngine::DeleteObject&lt;br /&gt;
* Deleting a module object that contains the object, via CAEngine::Delete&lt;br /&gt;
* Using a typescript command, such as delete, to delete the object.&lt;br /&gt;
&lt;br /&gt;
It is fairly obviously which object CAObject, CAIndex instances point to.  These should be released BEFORE deleting the underlying object.  CATables also point to an underlying object, the result or definition object, but also to index objects.  If you delete any index object that belongs to the table, you need to release the CATable instance first!!&lt;br /&gt;
&lt;br /&gt;
The following code demonstrates (non-.NET):&lt;br /&gt;
&lt;br /&gt;
===Good code:===&lt;br /&gt;
 CAObject obj = ade.Get(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
 obj = Nothing&lt;br /&gt;
 ade.DeleteObject(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 obj = ade.Get(&amp;quot;Va2&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===Bad code===&lt;br /&gt;
 CAObject obj = ade.Get(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
 ade.DeleteObject(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 obj = ade.Get(&amp;quot;Va2&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===Good .NET code===&lt;br /&gt;
 CAObject obj = ade.Get(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' In .NET, you must explicitly release&amp;lt;/font&amp;gt;&lt;br /&gt;
 obj = Nothing&lt;br /&gt;
 ade.DeleteObject(&amp;quot;Va1&amp;quot;)&lt;br /&gt;
 obj = ade.Get(&amp;quot;Va2&amp;quot;)&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
= Closing models =&lt;br /&gt;
&lt;br /&gt;
When you load a model, operate on it with ADE for a while, odds are that you'll have several ADE objects instantiated -- perhaps some CAObjects, CATables, etc.  If you close that model and open another, it is very important that you release all the objects that were in use for the original model.&lt;br /&gt;
&lt;br /&gt;
Here is a common mistake that can lead to a crash (much later):&lt;br /&gt;
&lt;br /&gt;
 CATable tab = obj.ResultTable&lt;br /&gt;
 ...&lt;br /&gt;
 ade.CloseModel( )&lt;br /&gt;
 ade.OpenModel( &amp;quot;newModel.ana&amp;quot; )&lt;br /&gt;
 ...&lt;br /&gt;
 tab = ade.Get(name).ResultTable   &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' Reuse tab&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The CATable pointed to by ''tab'' is released in the last line, but this release occurs after the result object and indexes used by the CATable have ceased to exist.  The correct way is to release ''tab'' before closing the first model, and set tab to Nothing, e.g.:&lt;br /&gt;
&lt;br /&gt;
 CATable tab = obj.ResultTable&lt;br /&gt;
 ...&lt;br /&gt;
 ReleaseComObject(obj) &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' If in .NET&amp;lt;/font&amp;gt;&lt;br /&gt;
 tab = Nothing&lt;br /&gt;
 ade.CloseModel( )&lt;br /&gt;
 ade.OpenModel( &amp;quot;newModel.ana&amp;quot; )&lt;br /&gt;
 ...&lt;br /&gt;
 tab = ade.Get(name).ResultTable   &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' Reuse tab&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= .NET notes =&lt;br /&gt;
&lt;br /&gt;
The whole COM release thing is a complete pain.  The reason for having to call ReleaseComObject is because the garbage collection architecture leaves the ADE object laying around until GC happens to run.  Instead of worrying about calling ReleaseComObject every time, you can just ensure that you've released the pointers by setting them to null, and then force a garbage collection before closing a model or otherwise deleting objects.  Code would look more like this:&lt;br /&gt;
&lt;br /&gt;
 CATable tab = obj.ResultTable&lt;br /&gt;
 ...&lt;br /&gt;
 tab = Nothing&lt;br /&gt;
 ...&lt;br /&gt;
 System.GC.Collect()&lt;br /&gt;
 ade.CloseModel( )&lt;br /&gt;
 ade.OpenModel( &amp;quot;newModel.ana&amp;quot; )&lt;br /&gt;
 ...&lt;br /&gt;
 tab = ade.Get(name).ResultTable   &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;' Reuse tab&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you follow this practice of garbage collecting before any operation that may delete an object, your .NET code can be much cleaner, especially in C# or C++/CLR (using deterministic destruction in the latter).&lt;br /&gt;
&lt;br /&gt;
In C#, when you instantiate an object such as CATable, wrap it in a using block:&lt;br /&gt;
&lt;br /&gt;
 Using ( CATable tab = obj.ResultTable ) &lt;br /&gt;
 {&lt;br /&gt;
    // .. Do something with tab ...&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
If you delete an object, or close a model, that would occur outside the lexical scope of tab.  So, the logical flow would look like this:&lt;br /&gt;
&lt;br /&gt;
 Using ( CATable tab = obj.ResultTable ) &lt;br /&gt;
 {&lt;br /&gt;
    // .. Do something with tab ...&lt;br /&gt;
 } &lt;br /&gt;
 ...&lt;br /&gt;
 System.GC.Collect();&lt;br /&gt;
 ade.CloseModel( );&lt;br /&gt;
&lt;br /&gt;
The sequence of things that happens here:&lt;br /&gt;
* tab is instantiated&lt;br /&gt;
* Operations inside the using occur using tab&lt;br /&gt;
* When the end of the Using scope is reached, the interop wrapper tab is released by .NET. At this point it is still in the managed heap, ready to be collected.  But it still points to the CATable COM object, which still lives inside ADE, which still points to the Analytica objects.&lt;br /&gt;
* When System.GC.Collect() executes, the tab interop wrapper is garbaged collected.  At this time, ReleaseComObject completes, and the the CATable is released and freed inside ADE.  Now it is safe to delete objects.&lt;br /&gt;
* CloseModel deletes Analytica objects.&lt;br /&gt;
&lt;br /&gt;
Religious use of the Using construct in C# will keep you from making an error that could result in a problem -- as long as you also remember to garbage collect prior to closing your model or deleting objects.&lt;br /&gt;
&lt;br /&gt;
''Note that the need to release, and techniques discussed here, are not limited to ADE.  You should do the same for any COM component used in a .NET application -- especially if it is used out-of-process.''&lt;br /&gt;
&lt;br /&gt;
A final note for those porting VB applications from VB6 into .NET: be sure to remove all &amp;quot;call sub()&amp;quot; syntaxes from your code, in favor of simply using &amp;quot;sub()&amp;quot; instead. When your subroutine instantiates COM objects, using call will orphan those objects and they cannot be released later, even using ReleaseComObject.&lt;/div&gt;</summary>
		<author><name>Rsonnenblick</name></author>
	</entry>
</feed>