Slashdot Mirror


Microsoft's OOXML Formulas Could Be Dangerous

hill101 writes "According to Rob Weir's blog, Microsoft's 325-page OOXML specification for spreadsheet formulas is deeply flawed. From basic trigonometric functions that forget to specify units, to statistical functions, to critical financial functions — the specification does not contain correct formulas that could possibly be implemented in an interoperable way. Quoting Mr. Weir: 'It has incorrect formulas that, if implemented according to the standard, may cause loss of life, property, and capital... Shame on all those who praised and continue to praise the OOXML formula specification without actually reading it.'"

36 of 360 comments (clear)

  1. EULA? by Anonymous Coward · · Score: 5, Funny

    if implemented according to the standard, may cause loss of life, property, and capital...

    Didn't you read your Office EULA?

    Microsoft specifically disclaims any damage relating to loss of life, property, or capital.

  2. Impartial reviews by KiloByte · · Score: 5, Funny

    Shame on all those who praised and continue to praise the OOXML formula specification without actually reading it.
    To the contrary, they have all carefully read the checks they received.
    --
    The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    1. Re:Impartial reviews by VirusEqualsVeryYes · · Score: 5, Funny

      Not to be a grammar Nazi, but

      1. "not" should be capitalized;
      2. "nazi", as a proper noun, should be capitalized;
      3. "words" should be singular, as you are referring to one single word, "check";
      4. "im" should be capitalized and spelled with an apostrophe;
      5. there should be a period after "mistake"; and
      6. "cheque" is, if not only the British spelling, interchangeable with "check" -- in an international forum such as the Internet, both are acceptable.

      Please surrender your club card at the next meeting. Have a nice day.

    2. Re:Impartial reviews by armb · · Score: 4, Informative

      > While I fully agree that the rules of English are screwed up, you need to put your trailing comma before the closing quote

      That's the rule for American English. British English is often more logical.
      http://grammar.ccc.commnet.edu/grammar/marks/quota tion.htm
      http://www.catb.org/jargon/html/writing-style.html

      --
      rant
  3. So? by ColaMan · · Score: 3, Insightful

    .....if implemented according to the standard, may cause loss of life, property, and capital..

    Pffft....as if this has ever been much concern to software manufacturers before.

    Every EULA has boilerplate text denying all responsibility , and you'd be mad to trust any results from software implicitly. Double check it yourself , even if it's just a few corner cases.

    --

    You are in a twisty maze of processor lines, all alike.
    There is a lot of hype here.
    1. Re:So? by erroneus · · Score: 4, Insightful

      A user NOT trusting his tools is a very strange thing. If it were some sort of software engineer doubting software tools, that's one thing and it's somewhat expected. But in general:

      * We trust all hand tools like wrenches and sockets to be exactly the size on the label
      * We trust all of our doctor's opinions whether or not a second opinion is recommended
      * We trust our math applications to do math properly
      * We trust our spell checkers to check properly

      In general, we trust the things we by to work as expected... as advertised. (No, I haven't seen Excel advertised to be accurate, but in a math application, it's implied by its very existence) So to say that you should re-check the results by hand is not just ridiculous, it would never happen.

      I remember when the Pentium processor first came out and there was this math error in there somewhere. It was a BIG deal.

      But before passing too much judgment on this too quickly, a little verification of the bugs might be helpful and let's mark our calendars to see how fast Microsoft fixes the problem... oh wait, the problem is said to be in the file specification? What does that mean if they update the format specification with regards to their ISO certification?

  4. Typical Microsoft... by QuietLagoon · · Score: 4, Insightful
    ... put out garbage into the marketplace, and then wait for the customers to do the quality assurance work that Microsoft should have done.

    The trouble is that the politicians standardizing on this spec will look only at its length and declare it to be good. Maybe Microsoft made the specification long with that intent in mind.

  5. Meaningless statement by Anonymous Coward · · Score: 3, Insightful

    Shame on all those who praised and continue to praise the OOXML formula specification without actually reading it.

    What percentage of those who praise ODF specifications actually read it? Or any other specification? I would imagine it is a small percentage.

  6. Surprised? by JohnFluxx · · Score: 3, Insightful

    I doubt anyone is surprised. How can you possibly fast track a 325 page document, giving the public only a time amount of time to check it, then expect it to be perfect.

    Man, I really really get annoyed at Microsoft.

  7. Proof that open formats are a good idea? by moosesocks · · Score: 5, Interesting

    I don't know about you, but I view this as being a very GOOD thing.

    Because the format was an "open" standard, the serious flaws present in the format were quickly and correctly identified by third parties outside of Microsoft.

    If it had been a trade secret, it could have been bundled into a product, and assumed to be reliable by its users. Instead, it's been exposed for what it is.

    If anything, this proves that open formats are a good idea.

    --
    -- If you try to fail and succeed, which have you done? - Uli's moose
    1. Re:Proof that open formats are a good idea? by Rakshasa+Taisab · · Score: 4, Interesting

      MS pretty much seems to have cut-n-pasted their MSOffice help files and decided to call that a 'standard'. Only thing good about it, is that it will make ISO be so much less willing to ratify their standard. If you look at their CEILING definition, as linked in the article's comments, it is so unprofessionally written you'd wonder at the size of EMCA's checks.

      --
      - These characters were randomly selected.
    2. Re:Proof that open formats are a good idea? by Karellen · · Score: 3, Insightful

      Oh, I definitely agree that open formats are a good idea, and that this does show one very good reason why.

      But, the point is that MOOXML is a shitty open format. It was written in a closed environment, without a decent review by anyone, in 1/20th the time you'd expect a spec of that size to take, and is being put on a "fast-track" process to ISO which means - if it goes through - it will never have had a proper review by anyone.

      Yes, having the format be open is a good thing.

      But this format is utter crap, on many different levels. It's size, complexity, inconsistency, bugginess, NIH-iness, reliance on Win32, etc., etc., etc.... make it completely unsuitable to be ratified as an ISO standard.

      When you're turning something into an international standard, you want to take your time and get it right. That's what the standardisation process should be about. Creating something usable by as many parties as possible. MOOXML fails completely here.

      Yes, I'm in favour of them opening their document formats. I wish they'd release updated documentation for the binary .doc format as well, usable by anyone (last I checked there was a "you must agree not to use this information to create products that compete with office" clause in the (outdated) documentation download) so that people could interoperate with those formats on non-Windows platforms. But do I wish for the binary .doc format to be an international standard? Hell no!

      --
      Why doesn't the gene pool have a life guard?
  8. Congress as role-model? by JonTurner · · Score: 5, Funny

    >>How can you possibly fast track a 325 page document, giving the public only a time amount of time to check it, then expect it to be perfect.

    Damned if we know.
    Signed,
    The US Congress

  9. And proof that single-ownership is bad by Anonymous Coward · · Score: 4, Interesting

    Now that MS are the only ones who are allowed to change the standard, we must

    a) wait until MS change the standard
    b) then progress it through the "approvals" procedure
    c) find out again if there are any problems (and go back to a)
    d) implement these changes

    And when it comes to WordSpacingLikeWord95 or whatever, how has this being "open" helped? People have asked what it means and been told nothing useful.

    Oh, and doesn't this show that if MS had opened up the standard for perusal BEFORE filing it (like ODF did), wouldn't we have avoided this problem?

  10. Re:Yeah, I'm sure this guy is objective by january05 · · Score: 5, Insightful

    ODF will define spreadsheet formulas, in the next version. And come on, the "IBM conspiracy" take from MS is really lame since OOXML is the one with proprietary patented extensions. I'll take any open standards company I can get, personally.

  11. I never understand why people complain so much by pembo13 · · Score: 3, Insightful

    Let MS do exactly what they want, they seem quite successful at it, if it bites them in the butt, so be it. I would just like our own software freedoms to be preserved. I have no intention on producing anything with their format, I'm sure I'll eventually have to read it, but the chances that the receiver of a document is liable for inaccurate content within that document seems very low.

    What is the motivation, since I'm sure there must be a good one, to do this free work for MS?

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  12. Re:Yeah, I'm sure this guy is objective by topham · · Score: 3, Interesting

    Parroting the party line is promoting the fact that it has formulas as showing it is superior to ODF when the formula specification is next to useless because it wasn't reviewed properly.
    If you read the article it isn't a cople of minor mistakes which can be corrected; it's a number of mistakes which have already made it past a review stage.

  13. Re:Just want to point out... by Xiaran · · Score: 3, Insightful

    The problem is that we are talking about a proposed international standard and you are using the phrase "it's goddamn assumed by anyone...". There should ideally be *no* assumptions in a stadard... it needs to be as clear and accurate as humanly possible. Remember that once a standard is published it is translated into many laguages and possibly implemented in different cultures as mentioned in TFA. What you assume to be obvious may or may not be obvious to others.

  14. Implied warranty - fit for the purpose by QuestorTapes · · Score: 5, Interesting

    > ...in general:
    >
    > * We trust all hand tools like wrenches and sockets to be exactly the size on the label
    > * We trust all of our doctor's opinions whether or not a second opinion is recommended
    > * We trust our math applications to do math properly
    > * We trust our spell checkers to check properly
    >
    > In general, we trust the things we by to work as expected... as advertised.

    http://www.oandp.com/edge/issues/articles/2006-08_ 06.asp

    http://www.brajeshwar.com/finance/insurance/Liabil ity-Insurance.html

    These links refer to the concept you're talking about. The second refers to the UK Consumer Protection Act, but the concept is general and fairly well accepted. From the first link:

    "...any product that is sold comes with an implied warranty of merchantability and fitness for a particular purpose; and, just by selling a product, a seller is implicitly promising that: (1) the product is merchantable, i.e., fit for the ordinary purposes for which such products are to be used, provided that the seller is in the business of selling products of that kind; and (2) the product is fit for a particular purpose, provided that the seller, at the time of sale, knew the particular purpose for which the product was required, and the buyer relied upon the seller's skill or judgment in selecting a suitable product for that purpose."

    This hasn't been successfully applied to software cases like this, but the issue hasn't be ruled out either. But it's hardly a stretch to expect that software such as a spreadsheet comes with an implied warranty that ordinary financial and statistical calculations are properly performed.

  15. Re:Surely we all saw this coming by simong · · Score: 4, Informative

    Depends what you call mission critical. Excel was used in voting systems in the Scottish and local elections in the UK this year, and Diebold's GEMS system uses Access as a database. High tech indeed.

  16. Microsoft can't code by BillGatesLoveChild · · Score: 4, Interesting

    > From basic trigonometric functions that forget to specify units

    Amazing. That's the sort of mistake you'd expect from a First Year Computer Science Major, but not from a Second Year. This isn't the first time Microsoft have done this. Even for the Windows API, the code trumped the documentation. The best way to find out what a feature did was to write test programs to poke at it. Heck. Until recently DirectX needed three pages of goobleydo-gook to start up. These people just don't get APIs, period.

    In Microsoft Visual Studio when you press F1 Help it comes up with a list that includes "How to Write Good Code". Yes, by Microsoft. Even in the early hours of the morning, it gets a smirk if not a gufaw or a laugh. Microsoft are not good programmers. Haven't been for a long time. Anyone worth their salt will launch a Start Up, or at least join a company offering reasonable growth and prospects. Microsoft is like a Pyramid Scheme. The people that joined at the start did very well. As for the people that joined late... not a chance. Which makes you wonder about the ones that joined anyway. Read the Book "Microserfs".

    > Ecma

    Why didn't Ecma pick it up? These Standard Bodies are in-name only. When a "Member" wants to push something through, it gets pushed through. Then the Member's sales reps can go to the Government body and say "Look! We have an Ecma approved Standard" and t he Government worker ticks the "Uses Industry Standards" box on the tender.

    One of the funnier "standards" was a simulation standard called HLA. It was approved before anyone had built a proof of concept. People bet their careers on it and the whole government was ordered to embrace it. The only problem: When they finally built it, it didn't work. *OUCH!*

  17. Shame?! by krygny · · Score: 5, Insightful

    "Shame on all those who praised and continue to praise the OOXML formula specification without actually reading it."

    Reminds me of something I once heard a congressman rationalize in reference to a bill he just voted for containing several lame provisions (many with which he did not even agree): "Do you have any idea what reading a bill like that would entail?" I do. It would entail you doing your fucking job.

    --
    Research shows that 67% of those who use the term "research shows", are just making shit up.
  18. Re:Ok, but... by jkrise · · Score: 4, Insightful

    Someone failed the math class where they explained that an angle is a "dimensionless derived unit" . Explaining, short version for the clicky-impaired: angles are the ratio between two measurements of length -- the length of an arc and the radius of said arc.
    It got off to a bad start. Technically that may be correct, but in reality, it is very common and practical to express angles in degrees. So, sin(30) = 0.5 and tan(90) = 1. Memorising the values of sin, cos and tan for 0, 30, 45, 60 and 90 degrees is a de-facto requirement to solve trig. problems in high school. Does Microsoft expect students to relearn all these convenient derievd units in radians, and go mad?

    A document standard is a practical necessity to express everyday ideas in a readable format. Not to be technically accurate and practically useless. Try typing HCl + NaOH --> NaCl + H2O in Office, and watch yourself breaking the monitor.

    --
    If you keep throwing chairs, one day you'll break windows....
  19. Re:Ok, but... by itlurksbeneath · · Score: 3, Insightful

    Dimensionless or not, in the real world (i.e. not in math class - and you really have to pick one way in math class, too), you have to pick one system of representing it and use that to send to your functions (see sin() as an example).

    That Wikipedia page you referred to us using the derived unit of "radians". There are a couple of different ways to represent that number - degrees, radians, grads. Hell, anybody that's ever used a calculator knows you have to use just one of those systems for your particular calculator.

    Nice try, but do a little more research before posting and blasting somebody's article with illogical arguments.

    --
    Have you ever considered piracy? You'd make a wonderful Dread Pirate Roberts.
  20. Guess what? by sid0 · · Score: 3, Informative

    Type in =SIN(30 degrees) if you want degrees. I'm sorry, Excel doesn't pander to high school students. In the real world, when the sine of an angle is mentioned, it is SUPPOSED to be radians. Every programming language I know accepts arguments for trig functions as radians.

    The article, or at least this part, is FUD.

    1. Re:Guess what? by kryten_nl · · Score: 3, Insightful

      Just because a certain feature is the de facto standard, doesn't mean it shouldn't be included in a standards document to combat ambiguity.

      Btw, comparing Excel (Excel users) to a programming language (programmers) is a stretch at best.

      --
      For the perfect anti-Unix, write an OS that thinks it knows what you're doing better than you do and let it be wrong.
    2. Re:Guess what? by azrider · · Score: 5, Informative

      Touche on the high school part, forgot about that. :) The main customers are of course still enterprises. I still think the default argument should be radians.
      Who cares whether the default argument is degrees or radians. Two things are missing from the quoted "specification" document:

      1: What is the default argument

      2: Is the specification consistent across all functions which use this type of value as an argument

      A specification which conforms to neither proper or common usage is worse than no specification at all

      This is what Rob Weir was saying.

      --
      And ye shall know the truth, and the truth shall make you free.
      John 8:32(King James Version)
    3. Re:Guess what? by Hoi+Polloi · · Score: 4, Informative

      The number 360 isn't arbitrary. It stems from mesopotamia and the need to represent numbers as fractions. People needed a number that could be divided by 2, 3, 4, 10, 12, etc easily in one's head yet big enough to provide small fractions.

      From wikipedia:

      "The number 360 as the number of 'degrees' (i.e. smallest practical sub-arcs) in a circle, and hence the unit of a degree as a sub-arc of 1360 of the circle, was probably adopted because it approximates the number of days in a year. Its use is often said to originate from the methods of the ancient Babylonians. Ancient astronomers noticed that the stars in the sky, which circle the celestial pole every day, seem to advance in that circle by approximately one-360th of a circle, i.e. one degree, each day. Primitive calendars, such as the Persian Calendar used 360 days for a year. Its application to measuring angles in geometry can possibly be traced to Thales who popularized geometry among the Greeks and lived in Anatolia (modern western Turkey) among people who had dealings with Egypt and Babylon.

      Another motivation for choosing the number 360 is that it is readily divisible: 360 has 24 divisors (including 1 and 360), including every number from 1 to 10 except 7. For the number of degrees in a circle to be divisible by every number from 1 to 10, there would need to be 2520 degrees in a circle, which is a much less convenient number.

      Divisors of 360: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 24, 30, 36, 40, 45, 60, 72, 90, 120, 180, 360"

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
  21. This is to be expected... by rsmoody · · Score: 3, Interesting

    After all, they did not BUY this from someone else. They came up with it on their own. We all know, Microsoft's best products were purchased from someone else. Excel for example.

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  22. Someone else failed the math class by giafly · · Score: 3, Insightful

    Someone failed the math class where they explained that an angle is a "dimensionless derived unit".
    If you must quote Wikipedia, please read it first. This article refers to the "SI system of measurement units" which measures angles in units of radians: "The unit of angle is the angle subtended at the centre of a circle by an arc of the circumference equal in length to the radius of the circle. There are 2 radians in a circle."

    Other measurement systems use different units for angles, for example degrees.

    In short, a thing being dimensionless does not mean no units are used to measure it.
    --
    Reduce, reuse, cycle
  23. Re: Circular Reference Implementation by JetScootr · · Score: 3, Insightful

    Absolutely not. A standards specification should stand on its own, or reference other standards. "MS office" is an implementation, not a standard. It can't be used to define a standard any more than the wheelbase of your car can define what a roadway should be.
    Further, if ooxml is as "free" as MS would have politicians believe, then referring back to a proprietary product destroys that "freedom". (It's really not free, anyway, but just for the sake of discussion...)

    --
    Pavlov wouldn't be so famous if he'd used a can opener instead of a bell.
  24. Re:MS Office approx. Reference Implementation by Lonewolf666 · · Score: 3, Informative

    -Which version of MS Office (including level of Service pack)?
    -And who guarantees that the "reference implementation" is still available 5 years from now? (hint: Microsoft tends to discontinue sale of its products after a few years).

    --
    C - the footgun of programming languages
  25. Re:Ok, but... by Actually,+I+do+RTFA · · Score: 4, Funny

    Can someone help me? I want to take the sin of a right angle in Excel. Can someone tell me where the pi key on the keyboard is, so I can type in pi/2 radians?

    --
    Your ad here. Ask me how!
  26. now arriving at Dallas-Fort Worth... by rubberglove · · Score: 4, Funny

    Think doctors and malpractice lawsuits. Texas just put a cap on malpractice lawsuit awards and doctors are flooding there, sure to drive health care costs down.
    "Hi everybody!"
    "Hi Doctor Nick!"
  27. Re:Ok, but... by M.+Baranczak · · Score: 3, Funny

    You need to buy a Greek keyboard for that. If you're doing advanced math, it's a worthy investment.

  28. MS claims this is a FULLY DEFINED STANDARD by tinkerghost · · Score: 5, Informative

    When other people claim a standard is fully defined, it means that all the standard use cases are defined* - units, expected parameters, optional parameters, etc. In the real world, nobody uses radians. Radians are used by engineers & scientists. Pilots, backyard builders, school children, and the occasional office worker use degrees.

    To be honest, nobody cares if OOXML defines SIN(x) to take radians, degrees, gradians, or hyperbian-arc-vectors. What we care about is that someplace in the fully defined standard, OOXML needs to say:

    DEFINE: SIN(x[,unit])

    • SIN: geometric function dictating the height of a right triange with a hypotonous of 1 and an angle of x.
    • x: parameter describing the angle to be operated on by the sin function
    • unit - optional: one of a predescribed list of standard descriptors for angle:
      1. D: Degree - unit of angle defined as 1/360th of a full circle
      2. R: Radian - defined as the angle at which the length of an arc is the same as the radius of the arc. 1/2Pi of a full circle ~ 57.3 degrees
      3. G: Gradian - unit of angle defined as 1/400th of a full cicle.
      Missing unit parameters are defaulted to Radians. Unknown unit parameters will result in a type error.

    That's how a proper standard useable for international work in multiple fields is defined. You do not just dump your US help file into the standard & call it done. I have had to deal with a lot of standards, both Military and Industrial, the OOXML standard is well below the grade of the average Mil or Ind standard.

    That's before you get to the point of inclusions in the standard like "Must Replicate Office 98 Behaviour for this feature". Now, if there was a reference to another standard that defined Office 98 behaviour, then it's not a problem. However, I don't see a reference included in the OOXML standard. Worse, for dates, OOXML defines the proper behaviour as their broken implimentation of the Gregorian Calendar - a direct conflict to the existing ISO standards.

    I don't care who sponsored this standard, it's not a properly writen standard. It has huge holes & it's contradictory to several existing standards. Either one should get it rejected. If MS cleans it up so it meets the actual requirements of a "STANDARD" then they should get approved. If they leave it as the crap heap it is, it should be rejected.

    *- if passing sqr(-6) as a unit works in the implimentation, that's not the standards problem. However, if the standard fails to mention the default unit type & the existance of the unit parameter, then there's an issue.