Extension Dependencies: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Reverted edit of Minglang, changed back to last version by Robert Strong)
No edit summary
Line 1: Line 1:
= Overview =
Calculus
Extensions should be able to depend on other extensions. For 1.8, this can
Topics in calculus
simply be the EM refusing to enable an extension until another extension is
Fundamental theorem | Function | Limits of functions | Continuity | Calculus with polynomials | Mean value theorem | Vector calculus | Tensor calculus
installed+enabled. In 1.9 timeframe it would be good to ask UMO to help resolve
extension dependencies for semi-automatic download and install.
Differentiation
Product rule | Quotient rule | Chain rule | Implicit differentiation | Taylor's theorem | Related rates
Integration
Integration by substitution | Integration by parts | Integration by trigonometric substitution | Solids of revolution | Integration by disks | Integration by cylindrical shells | Improper integrals | Lists of integrals
For other uses of the term calculus see calculus (disambiguation)
Calculus is a central branch of mathematics, developed from algebra and geometry, and built on two major complementary ideas.


For bonus points, when an extension specifies a dependency it should be able to
One concept is differential calculus. It studies rates of change, which are usually illustrated by the slope of a line. Differential calculus is based on the problem of finding the instantaneous rate of change of one quantity relative to another. Examples of typical differential calculus problems are finding the following quantities:
provide a download link + extension title, not just the extension ID.


Work is happening in [https://bugzilla.mozilla.org/show_bug.cgi?id=298497 bug 298497]
The acceleration and speed of a free-falling body at a particular moment.
The loss in speed and trajectory of a fired projectile, such as an artillery shell or bullet.
Change in profitability over time of a growing business at a particular point in time.  
The other key concept is integral calculus. It studies the accumulation of quantities, such as areas under a curve, linear distance traveled, or volume displaced. Examples of integral calculus problems include finding the following quantities:


'''Notes'''<br>
The amount of water pumped by a pump with a set power input but varying conditions of pumping losses and pressure.  
* For brevity this document uses the term item for all items that will support em:requires (e.g. extensions and themes).  
The amount of money accumulated by a business under varying business conditions.  
* The term dependency refers to an item that another item requires to function properly. The information for a dependency is specified in an item's install manifest <tt>em:requires</tt> section.
The amount of parking lot plowed by a snowplow of given power with varying rates of snowfall.  
* A dependency is satisfied when an additional item is installed with the same id and a version number that is compatible when version checked (e.g. <tt>nsIVersionChecker</tt>) based on the <tt>minVersion</tt> and <tt>maxVersion</tt> as specified in the <tt>em:requires</tt> section of an item's install manifest and that item is enabled.
The two concepts, differentiation and integration, define inverse operations in a sense made precise by the fundamental theorem of calculus. In teaching calculus, either concept may be given priority. The usual educational approach is to introduce differential calculus first.
* When an item is installed, upgraded, or uninstalled using a method other than a manager (e.g. Extension / Theme Manager) items that do not have their dependencies satisfied will be disabled and their description field will state why the item is disabled.
* When an item is disabled by not having its dependencies satisfied the item will be disabled by a new property (e.g. appDisabled) rather than the disabled property. This will make it possible to automatically enable an item that in the future has its dependencies satisfied without enabling it when it was manually disabled. See [https://bugzilla.mozilla.org/show_bug.cgi?id=264750 bug 264750] for an example and this new property could also be used in that scenario. A patch for [https://bugzilla.mozilla.org/show_bug.cgi?id=264750 bug 264750] has been checked in.
= Proposed em:requires Install Manifest Format (future) =
Currently only the <tt>em:id</tt>, <tt>em:minVersion</tt>, and <tt>em:maxVersion</tt> are supported.
<pre>  <em:requires>
    <Description>
      <em:id>extension@somewhere.org</em:id>
      <em:name>Some Other Extension</em:name>
      <em:homepageURL>http://somewhere.org/</em:homepageURL>
      <em:updateURL>http://somewhere.org/someotherExt.rdf</em:updateURL>
      <em:minVersion>0.3.1</em:minVersion>
      <em:maxVersion>0.8.9</em:maxVersion>
    </Description>
  </em:requires></pre>
<tt>updateURL</tt> will default to UMO when it is not specified the same as it does when checking for updates to an item that do not specify an <tt>updateURL</tt>.


'''Q:''' We could just not have <tt>updateURL</tt> and require the dependency to be hosted on UMO to provide an option to install the dependency during installation of an item with an <tt>em:requires</tt><br>
Contents [hide]
'''A:''' If that's simpler for 1.1, do it. In the long term we do want to have the optional custom <tt>updateURL</tt>
1 History
2 Differential calculus
3 Integral calculus
4 Foundations
5 Fundamental theorem of calculus
6 Applications
7 See also
8 Further reading
9 External links


= Item Install &amp; Upgrade (partially completed) =
When installing or upgrading using a manager (e.g. Extension / Theme Manager) after all installations in progress complete if a dependency is not satisfied the item would have the appDisabled property set to true and the user would be notified via a dialog that an item requires additional items to be installed or enabled.<br>
'''Note''' The current implementation does not display a dialog on install. It does set the appDisabled property to true when the install completes if the item does not satisfy its dependencies.


If the required item is installed and disabled the item will automatically be enables unless the user has manually disabled the item.
[edit]
History
Main article: History of calculus


When an item that is a dependency of another item is being upgraded and the upgrade will disable the item that depends on it the user would be notified and given the option to not upgrade the item.<br>
Though the origins of integral calculus are generally regarded as going no farther back than to the ancient Greeks, there is evidence that the ancient Egyptians may have harbored such knowledge as well. (See Moscow Mathematical Papyrus.) Eudoxus is generally credited with the method of exhaustion, which made it possible to compute the area and volume of regions and solids. Archimedes developed this method further, while also inventing heuristic methods which resemble modern day concepts. An Indian Mathematician, Bhaskara (1114-1185), gave an example of what is now called the "differential coefficient" and the basic idea of what is now known as "Rolle's theorem". The 14th century Indian mathematician Madhava along with other mathematicians of the Kerala school made major inroads into Calculus that were not repeated anywhere in the world until the 17th century by Newton and Leibniz. Leibniz and Newton are usually designated the inventors of calculus, mainly for their separate discoveries of the fundamental theorem of calculus and work on notation.
'''Note''' The current implementation does not notify the user on upgrade.


'''Future:''' If the required item is not installed:
There has been considerable debate about whether Newton or Leibniz was first to come up with the important concepts of calculus. The truth of the matter will likely never be known. Leibniz' greatest contribution to calculus was his notation; he often spent days trying to come up with the appropriate symbol to represent a mathematical idea. This controversy between Leibniz and Newton was unfortunate in that it divided English-speaking mathematicians from those in Europe for many years, setting back British analysis (i.e. calculus-based mathematics) for a very long time. Newton's terminology and notation was clearly less flexible than that of Leibniz, yet it was retained in British usage until the early 19th century, when the work of the Analytical Society successfully saw the introduction of Leibniz's notation in Great Britain. It is now thought that Newton had discovered several ideas related to calculus earlier than Leibniz had; however, Leibniz was the first to publish. Today, both Leibniz and Newton are considered to have discovered calculus independently.
* if <tt>em:requires</tt> provides a <tt>homepageURL</tt> the user would be provided with a link to the required item's home page.
* the user will always be given the option of installing the required items since <tt>updateURL</tt> will default to UMO when it is not specified.
'''Q:''' I believe that UMO has only recently started to return the rdf data when the item installed was the same version as the latest item available. It appears that it is now returning the data in this case and implementing this would require UMO to always return the data.


= Item Uninstall and Disable (completed) =
Lesser credit for the development of calculus is given to Barrow, Descartes, de Fermat, Huygens, and Wallis. A Japanese mathematician, Kowa Seki, lived at the same time as Leibniz and Newton and also elaborated some of the fundamental principles of integral calculus, though this was not known in the West at the time, and he had no contact with Western scholars. [1]
When uninstalling or disabling an item the user will be warned if doing so will disable another item that requires it. Instead of displaying a prompt informing the user "If you uninstall..." the text should also include "The following items that require this item will be disabled..."<br>


If an item that is a dependency is uninstalled without using a manager (e.g. Extension / Theme Manager) then the dependent item would be disabled as part of the normal application startup process due to it not having its dependencies satisfied.
[edit]
= Item Updates (future) =
Differential calculus
When an item that is a dependency of another item is being upgraded through the update mechanism if the upgrade will disable the item that depends on it the user should be notified and given the option to not upgrade the item.
Main article: Derivative


'''Future:''' Just as the minVersion and maxVersion for application compatibility is automatically updated via the rdf specified in the item's updateURL the minVersion and maxVersion for an em:requires should also be updated automatically. Since this is version specific information adding and removing em:requires would not be supported since that should only occur during a version upgrade and not a compatibility update.
The derivative measures the sensitivity of one variable to small changes in another variable. Consider the formula:
= User Interface (partially completed) =
Items that are disabled due to dependencies not being satisfied would have the same available commands as an incompatible item. In addition to these commands they would also have the option to bring up the dialog used during install for installing the extensions specified in <tt>em:requires</tt> that are currently not installed or enabled on their system.<br>
'''Note''' The item has the proper commands available and status message in the user interface but the dialog is not yet implemented.


= Application Startup (completed) =
for an object moving at constant speed.
When operations are needed (e.g. needs-install, needs-upgrade, etc.) after the operations are completed all enabled items with dependencies will have their dependencies verified and the item's appDisabled property will be set accordingly.
One's speed in a car describes the change in location relative to the change in time. However, the speed itself may be changing and the formula above cannot account for that. Calculus deals with this more complex but natural and familiar situation.
= Questions =
'''Q:''' Should there be new user interface for disabling extension updates on individual extensions?<br>
'''A:''' Possibly, but this is a low priority.


'''Q:''' When an extension is updated what should be done with extensions that are no longer required? For example, if after upgrading an extension it no longer requires jslib and it was the only extension requiring it should there be an indication of this to the user and if so what?<br>
Differential calculus determines the instantaneous speed, at any given specific instant in time, not just average speed during an interval of time. The formula Speed = Distance/Time applied to a single instant is the meaningless quotient "zero divided by zero". This is avoided, however, because the quotient Distance/Time is not used for a single instant (as in a still photograph), but for intervals of time that are very short.
'''A:''' At this point we should not uninstall anything unless the user specifically requests it.<br>
 
'''Q:''' What about providing an indication to the user? At this stage I don't think it is practical to include this but it is something to consider for the future.
The derivative answers the question: as the elapsed time approaches zero, what does the average speed computed by Distance/Time approach? In mathematical language, this is an example of "taking a limit."
 
More formally, differential calculus defines the instantaneous rate of change (the derivative) of a mathematical function's value, with respect to changes of the variable. The derivative is defined as a limit of a difference quotient.
 
The derivative of a function gives information about small pieces of its graph. It is directly relevant to finding the maxima and minima of a function — because at those points the graph is flat (i.e. the slope of the graph is zero). Another application of differential calculus is Newton's method, an algorithm to find zeroes of a function by approximating the function by its tangent lines. Differential calculus has been applied to many questions that are not first formulated in the language of calculus.
 
The derivative lies at the heart of the physical sciences. Newton's law of motion, Force = Mass × Acceleration, has meaning in calculus because acceleration is a derivative. Maxwell's theory of electromagnetism and Einstein's theory of gravity (general relativity) are also expressed in the language of differential calculus, as is the basic theory of electrical circuits and much of engineering.
 
[edit]
Integral calculus
Main article: Integral
 
The definite integral evaluates the cumulative effect of many small changes in a quantity. The simplest instance is the formula
 
for calculating the distance a car moves during a period of time when it is traveling at constant speed. The distance moved is the cumulative effect of the small distances moved in each of the many seconds the car is on the road. The calculus is able to deal with the natural situation in which the car moves with changing speed.
 
Integral calculus determines the exact distance traveled during an interval of time by creating a series of better and better approximations, called Riemann sums, that approach the exact distance.
 
More formally, we say that the definite integral of a function on an interval is a limit of Riemann sum approximations.
 
Applications of integral calculus arise whenever the problem is to compute a number that is in principle (approximately) equal to the sum of the solutions of many, many smaller problems.
 
The classic geometric application is to area computations. In principle, the area of a region can be approximated by chopping it up into many very tiny squares and adding the areas of those squares. (If the region has a curved boundary, then omitting the squares overlapping the edge does not cause too great an error.) Surface areas and volumes can also be expressed as definite integrals.
 
Many of the functions that are integrated are rates, such as a speed. An integral of a rate of change of a quantity on an interval of time tells how much that quantity changes during that time period. It makes sense that if one knows their speed at every instant in time for an hour (i.e. they have an equation that relates their speed and time), then they should be able to figure out how far they go during that hour. The definite integral of their speed presents a method for doing so.
 
Many of the functions that are integrated represent densities. If, for example, the pollution density along a river (tons per mile) is known in relation to the position, then the integral of that density can determine how much pollution there is in the whole length of the river.
 
Probability, the basis for statistics, provides one of the most important applications of integral calculus.
 
[edit]
Foundations
The rigorous foundation of calculus is based on the notions of a function and of a limit; the latter has a theory ultimately depending on that of the real numbers as a continuum. Its tools include techniques associated with elementary algebra, and mathematical induction.
 
The modern study of the foundations of calculus is known as real analysis. This includes full definitions and proofs of the theorems of calculus. It also provides generalisations such as measure theory and distribution theory.
 
[edit]
Fundamental theorem of calculus
The fundamental theorem of calculus states that differentiation and integration are, in a certain sense, inverse operations. More precisely, antiderivatives can be calculated with definite integrals, and vice versa.
 
This connection allows us to recover the total change in a function over some interval from its instantaneous rate of change, by integrating the latter.
 
This realization, made by both Newton and Leibniz, was key to the massive proliferation of analytic results after their work became known.
 
The fundamental theorem provides an algebraic method of computing many definite integrals --without performing limit processes--by finding formulas for antiderivatives. It is also a prototype solution of a differential equation. Differential equations relate an unknown function to its derivatives, and are ubiquitous in the sciences.
 
1st Fundamental Theorem of Calculus: If a function f is continuous on the interval [a, b] and F is an antiderivative of f on the interval [a, b], then
 
2nd Fundamental Theorem of Calculus: If f is continuous on an open interval I containing a, then, for every x in the interval,
 
[edit]
Applications
The development and use of calculus has had wide reaching effects on nearly all areas of modern living. It underlies nearly all of the sciences, especially physics. Virtually all modern developments such as building techniques, aviation, and other technologies make fundamental use of calculus. Many algebraic formulas now used for ballistics, heating and cooling, and other practical sciences were worked out through the use of calculus. In a handbook, an algebraic formula based on calculus methods may be applied without knowing its origins.
 
The success of calculus has been extended over time to differential equations, vector calculus, calculus of variations, complex analysis, and differential topology.

Revision as of 05:17, 22 August 2005

Calculus Topics in calculus Fundamental theorem | Function | Limits of functions | Continuity | Calculus with polynomials | Mean value theorem | Vector calculus | Tensor calculus

Differentiation Product rule | Quotient rule | Chain rule | Implicit differentiation | Taylor's theorem | Related rates

Integration Integration by substitution | Integration by parts | Integration by trigonometric substitution | Solids of revolution | Integration by disks | Integration by cylindrical shells | Improper integrals | Lists of integrals

For other uses of the term calculus see calculus (disambiguation) Calculus is a central branch of mathematics, developed from algebra and geometry, and built on two major complementary ideas.

One concept is differential calculus. It studies rates of change, which are usually illustrated by the slope of a line. Differential calculus is based on the problem of finding the instantaneous rate of change of one quantity relative to another. Examples of typical differential calculus problems are finding the following quantities:

The acceleration and speed of a free-falling body at a particular moment. The loss in speed and trajectory of a fired projectile, such as an artillery shell or bullet. Change in profitability over time of a growing business at a particular point in time. The other key concept is integral calculus. It studies the accumulation of quantities, such as areas under a curve, linear distance traveled, or volume displaced. Examples of integral calculus problems include finding the following quantities:

The amount of water pumped by a pump with a set power input but varying conditions of pumping losses and pressure. The amount of money accumulated by a business under varying business conditions. The amount of parking lot plowed by a snowplow of given power with varying rates of snowfall. The two concepts, differentiation and integration, define inverse operations in a sense made precise by the fundamental theorem of calculus. In teaching calculus, either concept may be given priority. The usual educational approach is to introduce differential calculus first.

Contents [hide] 1 History 2 Differential calculus 3 Integral calculus 4 Foundations 5 Fundamental theorem of calculus 6 Applications 7 See also 8 Further reading 9 External links


[edit] History Main article: History of calculus

Though the origins of integral calculus are generally regarded as going no farther back than to the ancient Greeks, there is evidence that the ancient Egyptians may have harbored such knowledge as well. (See Moscow Mathematical Papyrus.) Eudoxus is generally credited with the method of exhaustion, which made it possible to compute the area and volume of regions and solids. Archimedes developed this method further, while also inventing heuristic methods which resemble modern day concepts. An Indian Mathematician, Bhaskara (1114-1185), gave an example of what is now called the "differential coefficient" and the basic idea of what is now known as "Rolle's theorem". The 14th century Indian mathematician Madhava along with other mathematicians of the Kerala school made major inroads into Calculus that were not repeated anywhere in the world until the 17th century by Newton and Leibniz. Leibniz and Newton are usually designated the inventors of calculus, mainly for their separate discoveries of the fundamental theorem of calculus and work on notation.

There has been considerable debate about whether Newton or Leibniz was first to come up with the important concepts of calculus. The truth of the matter will likely never be known. Leibniz' greatest contribution to calculus was his notation; he often spent days trying to come up with the appropriate symbol to represent a mathematical idea. This controversy between Leibniz and Newton was unfortunate in that it divided English-speaking mathematicians from those in Europe for many years, setting back British analysis (i.e. calculus-based mathematics) for a very long time. Newton's terminology and notation was clearly less flexible than that of Leibniz, yet it was retained in British usage until the early 19th century, when the work of the Analytical Society successfully saw the introduction of Leibniz's notation in Great Britain. It is now thought that Newton had discovered several ideas related to calculus earlier than Leibniz had; however, Leibniz was the first to publish. Today, both Leibniz and Newton are considered to have discovered calculus independently.

Lesser credit for the development of calculus is given to Barrow, Descartes, de Fermat, Huygens, and Wallis. A Japanese mathematician, Kowa Seki, lived at the same time as Leibniz and Newton and also elaborated some of the fundamental principles of integral calculus, though this was not known in the West at the time, and he had no contact with Western scholars. [1]

[edit] Differential calculus Main article: Derivative

The derivative measures the sensitivity of one variable to small changes in another variable. Consider the formula:

for an object moving at constant speed. 

One's speed in a car describes the change in location relative to the change in time. However, the speed itself may be changing and the formula above cannot account for that. Calculus deals with this more complex but natural and familiar situation.

Differential calculus determines the instantaneous speed, at any given specific instant in time, not just average speed during an interval of time. The formula Speed = Distance/Time applied to a single instant is the meaningless quotient "zero divided by zero". This is avoided, however, because the quotient Distance/Time is not used for a single instant (as in a still photograph), but for intervals of time that are very short.

The derivative answers the question: as the elapsed time approaches zero, what does the average speed computed by Distance/Time approach? In mathematical language, this is an example of "taking a limit."

More formally, differential calculus defines the instantaneous rate of change (the derivative) of a mathematical function's value, with respect to changes of the variable. The derivative is defined as a limit of a difference quotient.

The derivative of a function gives information about small pieces of its graph. It is directly relevant to finding the maxima and minima of a function — because at those points the graph is flat (i.e. the slope of the graph is zero). Another application of differential calculus is Newton's method, an algorithm to find zeroes of a function by approximating the function by its tangent lines. Differential calculus has been applied to many questions that are not first formulated in the language of calculus.

The derivative lies at the heart of the physical sciences. Newton's law of motion, Force = Mass × Acceleration, has meaning in calculus because acceleration is a derivative. Maxwell's theory of electromagnetism and Einstein's theory of gravity (general relativity) are also expressed in the language of differential calculus, as is the basic theory of electrical circuits and much of engineering.

[edit] Integral calculus Main article: Integral

The definite integral evaluates the cumulative effect of many small changes in a quantity. The simplest instance is the formula


for calculating the distance a car moves during a period of time when it is traveling at constant speed. The distance moved is the cumulative effect of the small distances moved in each of the many seconds the car is on the road. The calculus is able to deal with the natural situation in which the car moves with changing speed.

Integral calculus determines the exact distance traveled during an interval of time by creating a series of better and better approximations, called Riemann sums, that approach the exact distance.

More formally, we say that the definite integral of a function on an interval is a limit of Riemann sum approximations.

Applications of integral calculus arise whenever the problem is to compute a number that is in principle (approximately) equal to the sum of the solutions of many, many smaller problems.

The classic geometric application is to area computations. In principle, the area of a region can be approximated by chopping it up into many very tiny squares and adding the areas of those squares. (If the region has a curved boundary, then omitting the squares overlapping the edge does not cause too great an error.) Surface areas and volumes can also be expressed as definite integrals.

Many of the functions that are integrated are rates, such as a speed. An integral of a rate of change of a quantity on an interval of time tells how much that quantity changes during that time period. It makes sense that if one knows their speed at every instant in time for an hour (i.e. they have an equation that relates their speed and time), then they should be able to figure out how far they go during that hour. The definite integral of their speed presents a method for doing so.

Many of the functions that are integrated represent densities. If, for example, the pollution density along a river (tons per mile) is known in relation to the position, then the integral of that density can determine how much pollution there is in the whole length of the river.

Probability, the basis for statistics, provides one of the most important applications of integral calculus.

[edit] Foundations The rigorous foundation of calculus is based on the notions of a function and of a limit; the latter has a theory ultimately depending on that of the real numbers as a continuum. Its tools include techniques associated with elementary algebra, and mathematical induction.

The modern study of the foundations of calculus is known as real analysis. This includes full definitions and proofs of the theorems of calculus. It also provides generalisations such as measure theory and distribution theory.

[edit] Fundamental theorem of calculus The fundamental theorem of calculus states that differentiation and integration are, in a certain sense, inverse operations. More precisely, antiderivatives can be calculated with definite integrals, and vice versa.

This connection allows us to recover the total change in a function over some interval from its instantaneous rate of change, by integrating the latter.

This realization, made by both Newton and Leibniz, was key to the massive proliferation of analytic results after their work became known.

The fundamental theorem provides an algebraic method of computing many definite integrals --without performing limit processes--by finding formulas for antiderivatives. It is also a prototype solution of a differential equation. Differential equations relate an unknown function to its derivatives, and are ubiquitous in the sciences.

1st Fundamental Theorem of Calculus: If a function f is continuous on the interval [a, b] and F is an antiderivative of f on the interval [a, b], then


2nd Fundamental Theorem of Calculus: If f is continuous on an open interval I containing a, then, for every x in the interval,


[edit] Applications The development and use of calculus has had wide reaching effects on nearly all areas of modern living. It underlies nearly all of the sciences, especially physics. Virtually all modern developments such as building techniques, aviation, and other technologies make fundamental use of calculus. Many algebraic formulas now used for ballistics, heating and cooling, and other practical sciences were worked out through the use of calculus. In a handbook, an algebraic formula based on calculus methods may be applied without knowing its origins.

The success of calculus has been extended over time to differential equations, vector calculus, calculus of variations, complex analysis, and differential topology.