MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Enterprise level Mathematica idea

  • To: mathgroup at
  • Subject: [mg120155] Enterprise level Mathematica idea
  • From: "McHale, Paul" <Paul.McHale at>
  • Date: Sun, 10 Jul 2011 05:01:39 -0400 (EDT)

Rather than start with the how, I would like to describe the end user experience that we would like to shoot for as if I were reviewing something that doesn't exist.

When a user wants to start a new Mathematica document, they simply launch an empty notebook.  The user is likely not to know anything beyond a basic few commands.  However, to  perform complex tasks specific for their organization, they simply leverage the shared corporate library.  This library makes it possible to develop very powerful notebooks without the need for learning details of implementation that are unique to that  organization.

Example code of connecting to a database, retrieving product specific manufacturing information over a date range and with regard to a certain criteria is accomplished by one "corporate command", or cf*[].

myResults=cfPartsInfo[x"Product",x"Start date", x"End Date", x"Criteria from Result table"];

Note: Depending on the format of myResults, there may be cfMax[], cfMin[] and cfLength[].
Note: all parameters start with x.  This indicates there are multiple choices.

When the user selects cfPartsPassed[] from a auto-generated palette (derived from shared library), the placeholders or the parameters buttons.  When pressed, a list pops up which the user can select which product they want to look at.  The same for date and which criteria.

myResults=cfPartsInfo["Rocket MarkA,"June, 2010", "June, 2011", "Pass/Fail"];

Would return the pass/fail status of Rocket MarkA for the past year.

Required functionality to support this effort:

1. Ability for developers to write functions cf* and deploiy them to a central repository

2. Ability for developers to dynamically populate the popup list for parameter selection using repository code and network access
3. Support for auto-palette generation based on repository
4. Support for each user to "check for updates" to make sure they have latest copy of central repository

This provides critical functionality not available in any package I know of:
1. Users will need to learn very little about mathematica but will be able to leverage it well beyond their understanding.  I think this is true for all Mathematica users.  How many of could truly understand all the algorithms used in the optmization functions?  Why should the users be required to understand Mathematica when the corporate specific code can be developed once and abstracted from the user?

2. The developers will have a trivial way to "deploy" their code to the users.  When the users chooses to "update local library" Mathematica should populate the palettes accordingly and update any help files as approriate.

3. The line between corporate code and Mathematica base code could should be blurred to the point of being indistinguishable to the user.  This is targeted strongly at managers and engineers (data centric people) who will not learn Mathematica so they may benefit from it without knowledge of how it is being done.  This abstraction is critical to lowering the barrier for entry by the more classical user community.

4.  This functionality decouples the users from the changing (agile) landscape of corporate implementation of things like databases.  Change the database, update the code, publish to shared repository.  Users will get update notification on launch of Mathematica or possible push notification.

As we move forward in areas such as defense, it is becoming massively critical that we learn to do more with less.  We have no choice.  This is an indisputable trend.  This also means we need to force multiply.  We need to leverage the efforts of skilled developers to enable members of management and technical staff with minimal transfer effort and maximal transfer control.  Without this, we run a greater risk of failing at our mission.  I believe Mathematica has all the base requirements to do this.  We just need the enterprise level support to do it well.  To be truly effective, this support must be trivial from a user perspective (I.e. Windows update).


  • Prev by Date: Re: Incredible slow Plot
  • Next by Date: Re: How to write a "proper" math document
  • Previous by thread: cdf and writing disk i/o WAS Re: How to write a "proper" math document
  • Next by thread: Re: Enterprise level Mathematica idea