IIsi50MHz / chromey-calculator

A triaged calculator project exported from code.google.com/p/chromey-calculator
8 stars 7 forks source link

Replace Client-side maths parser/solver #230

Open IIsi50MHz opened 9 years ago

IIsi50MHz commented 9 years ago

Our original client-side mathematics parser/solver has greatly reduced the number of queries we send to Google. This has greatly reduced the occurrence and impact of Google requiring completion of a Captcha to continue, which occurs when triggered by Google's heuristics for detecting automated activity. The Captcha was never displayed to our users because the extension does not detect the situation.

However, numerous calculation errors have accompanied the integration of the client-side math system. Many of our issue reports are caused by this. Most reports of this are attached to the extension's Support or Comments sections on the Chrome Web Store.

Resolution: Replace the current client-side maths parser/solver with Parser-Solver-2, to be implemented as a module containing one or more established computer algebra systems. To accommodate differing capabilities of existing CAS, and to accommodate users familiar with a particular CAS, the module used for a particular calculation should be selectable by the user. Support for later addition of domain-specific modules is desirable.

Resources: https://en.wikipedia.org/wiki/Computer_algebra_system https://en.wikipedia.org/wiki/List_of_computer_algebra_systems

Candidates: http://matthewja.com/Coffeequate/ http://mathjs.org/ | https://github.com/josdejong/mathjs

Other Systems (non-JavaScript) to Verify Against: https://en.wikipedia.org/wiki/Mathematica http://maxima.sourceforge.net/ https://en.wikipedia.org/wiki/Maple_%28software%29 ...and especially... http://www.sagemath.org/ | https://github.com/sagemath | https://en.wikipedia.org/wiki/Sage_%28mathematics_software%29

Things Missing From the Above Systems: Many features people loved were lost with Wolfram Alpha's request that we stop sending queries to them. Many more are provided by Google, and a few are custom modifications of our own. Ideally, these will all be recoverable or still present when the new parser-solver is integrated; thus they should not be blocked by the new system. One notable item is the ability to deal with units within expressions.

IIsi50MHz commented 9 years ago

Designating our original clientside parser-solver the "parser-solver Mk I".

Its successor will be "parser-solver Mk II".

Updating relevant open issues to reflect this.

IIsi50MHz commented 9 years ago

Same underlying cause as issue #181

IIsi50MHz commented 9 years ago

As a temporary workaround, perhaps it would be possible to: