I possess an accent which seems to fox most voice recognition systems.  I suppose the closest that it comes to that most non-British people will have heard is that of the Arctic Monkeys, since Sheffield is only about 15 miles away from where I grew up.  Generally voice recognition systems are optimized for American voices, so I am at a disadvantage right off the bat.  That said, my accent, diction, intonation and whatever other elements combine to entice such systems into the creation of ridiculous transcriptions, far in excess of my other countrymen.

The main source of these transcriptions is the Microsoft voicemail system, powered by Exchange / Office Communicator.  I often need to contact people at Microsoft, whether in terms of product team members in relation to Monarch and Monarch Data Pump and it’s interaction with Office, or on the interoperability side, in my work within ISO/IEC/JTC1 SC34 Working Group 4.

A couple of years back, I was sent the transcription of one of my voicemails by a contact at Microsoft, as he found it amusing.  This has continued as a tradition with more contacts there, over the years.

Unfortunately, I don’t have the actual content of these voicemails, but rest assured, it bears no resemblance to the voicemail transcription system’s version of events.

It seems to have settled on a food related theme here, for no apparent reason.

“Hey ****** it’s Gareth just love let you know that some track who cherry. Job begin from the I’m consoles console kidney stones Julie Weiss seafood see walnuts the community they’ll be. Doing any case full you try and hook up with my sequel on. You non Jerry fish and and should not very seems like he’s out the offices about it so I will give you a heads up. That. Hey we call it a. He mentioned I tried that section. Well please correct. Anyway. I’ll speak to you soon bye bye.”

“I got your inspection yourself I think this is so I can. Thank you — only so another chat about the recent my seafood see what we — and — hey Ryan Montoya from the columns like something on your cell phone — for the Y7 check your good weekend. Speak to you soon bye bye.”

What’s with the seafood? Who is “Ryan Montoya from the columns”? Is that like ‘the projects’ ?

It also seems to think that I call under assumed names every time, which I most certainly do not.

“Hey ******* it’s John Anderson calling just ringing to let you know. Alright I’ll speak to you later bye bye.”

“Hey ******* it’s Scott Smith. Give me a call I’m at 8 to 9 tonight chat — I have sounds and I will talk to you later — but I just wanted to check if there’s any YAM — issue than anything on called full sign now maybe I’m sure — I’ve talked for — at talk access the full Doc acts so. Anyway I’ll try and get you like 10 or 12 logic tomorrow on then bye bye.”

“Hi ******* it’s Doug I just thought give you a call on the off John this is a I’d be very soon seems to me a call I can phone bye bye. Hi me like cellular the busy day had and interest in CD it’s Davidson — the funny going over all I — need to be chief. A lot and I’ll speak to you soon bye bye.”

“Hey ******* it’s Just. Not — hi this is all give me a call 90 because I’m stuck in traffic minutes 10:15 PM and a bomb any other big blocks and right on 30 and I think I’m probably gonna I’m on the status bar now — anyway — just so I’m a little chat but — now that I need sing Allen so I’ll speak to you like and you can always full with me the — note that absolutely fascinating transcription but — zero.”

Er, no bomb.  Hope the NSA wasn’t listening. Spooky that it noticed when I criticized it’s “absolutely fascinating transcription”.

“Hey ******** you got this so I’d better give usable last with the voice mail transcription.– Interesting regarding the sudden all the Columbia look into this that would be blocking I called up laws — with message something to a — haven’t replace — I’d come see you go I saw — a lot — anyway that was about to go so I just now — it just an email from strolled these seems a lot of problems he without things about that. Anyway I’ll speak to you soon bye bye.”

Again, it comes out of it’s fug when being talked about.  Not sure how Columbia got in there.  The NSA almost certainly has a file on me by now, if their voice recognition software is anything like this.

“Hey ******* sister it’s joint get in touch with them. Actually see the from I got hold of an experienced a Angeline Love — anyway we’ll have a chat that’s it and reinstall anyway — good evening not in school. Hundred bye bye.”

I would like to clarify in no uncertain terms that I have never got hold of an experienced Angeline Love. Nor do I refer to senior Microsoft staff as “sister”.  Especially when they are male.

“Hey ******** it’s got the phone because message off.  — So I — will probably try again — tomorrow — shopping — yeah I’m not sure that you — are shipping didn on home trapeze — or not many more experienced you recall I appreciate troubles. So anyway that’s about it.”

I’m pretty sure you can’t get a home trapeze, even on those American shopping channels.  Maybe I can get Microsoft to pay me to talk into the system all day long and see what other interesting business ideas come out of it.

“My name is Gareth. Telling the boys and shopper internal costing unsure I guess we’re playing right next one — that you sent debriefing from ****** — extension two three oh should be self so I’m I’m trying to get on your cell moment rolling I’m — bye bye. Hello.”

Got the name right, but I’m pretty sure my contact knew my name after a couple of years. Plus, I don’t usually end voicemails with “hello”.

“Thanks ******** a Scott but this is all give me a call at about 40 years.So I’m just getting a chance — together and tax money like you probably not tonight I’m I got your message — you know your voice mail sit back inside along the venturing stuff — I’ll try you like to delete chop chop.  Parking lot bye bye.”

I distinctly recall never asking anyone to give me a call in 40 years.

“Hi ******** hopefully as laughter events it’s and IK series new package explorer which is a pretty know likes.– Just a wishing you could look for next week probably going out to a demo to be very silly so — could look in the lines done and I don’t have a good weekend anyway. I’ll speak to you soon bye bye.”

At last! “new package explorer” is actually accurate and refers to Wouter Van Vugt’s Package Explorer utility. My days of “going out to a demo to be very silly” are but a fond and distant memory.

“Hey ******** it’s Gareth. Chad discuss about — what full day — digital cool of calling technically awful stuff — dot com and run some — probably — some of them thanks and so. Anyway I’ll speak to you bye bye bye.”

This is actually a recent one, so I am 100% sure that I didn’t say this.  One wonders whether it has been added to some kind of Exchange voice recognition dictionary as a high frequency phrase within Microsoft. 

By the way, technicallyawfulstuff.com is still available.



As a member of ISO/IEC JTC1 SC34 Working Group 4 (which Mr Norbert Bollow of the Swiss mirror committee somewhat bizarrely refers to as “so-called”) and someone directly implicated in his recent blog post,  I thought it might be useful to help him understand the situation more clearly.

I have been heavily involved in spreadsheets over the last 14 years working at Datawatch.  For the last 9 years, I have been in charge of the Monarch and Monarch Data Pump products, which have interacted heavily with spreadsheets, both from an input and output perspective.  We supported (and still support older versions – the file format specifications are not available for later versions) Lotus 1-2-3 as well as Excel, stretching back to Excel 2.1 and Lotus versions well before that.

Datawatch is both a Microsoft and IBM Partner.

The Monarch product is primarily used in conjunction with Excel, with approximately 95% of our users reading, writing, appending and updating Excel spreadsheets, both the older binary formats and the new OOXML format.

We have a large user base of around 500,000 users worldwide and have gained fairly detailed knowledge of how people use and abuse spreadsheets in various ways, as well as how many other vendors import and export spreadsheets from their applications in the 18 years since the first release of Monarch.

Sowing the seeds – versioning

Consequent to the lack of a versioning scheme in ECMA376-1, applications created to consume and create OOXML documents were unable to distinguish between ECMA376-1 and future versions.  This should have been addressed in the original specification and certainly at the BRM.  It was not, which casts doubt on the unimpeachable sagacity which some seem to attribute to decisions made at the BRM.  This sacred cow status, especially surrounding ISO8601 dates is not a healthy thing-it should be subject to scrutiny and review, especially with far more time available to analyze the ramifications of changes than was available at the BRM.

Sowing the seeds – anyone for spreadsheets?

Another aspect of the BRM and indeed much of the process around OOXML is the lack of spreadsheet experts involved.  Practically all those involved in the process are really XML and document specialists.  Their background, depending on age, is almost always SGML and XML, not VisiCalc, Lotus 1-2-3, Quattro Pro, Excel, Gnumeric and Calc.

Spreadsheets then, became second class citizens in the process, with few people showing them the care and attention showered upon the word processing aspects of the specification. 

The XML experts came from the viewpoint of XML Schema, which, many may be surprised to learn, does not itself fully implement ISO8601 dates.  It wisely uses a tightly defined subset of ISO8601.  Many advocated that ISO8601 dates should be used within OOXML documents.  This approach is eminently sensible, since it is much simpler to consume documents with XML technology, if the date data can be easily consumed and processed by common XML tools.

However, spreadsheets have paid very little attention to XML, the file formats have historically been extremely terse and efficient and they have their own design goals which are distinctly different from word processors.  One thing that spreadsheets always do, is store and process dates as serial date values.  Almost every single spreadsheet file in existence contains serial date values.

The Leap Year Bug – or not

Mr Bollow refers to the the reintroduction of the leap year bug which was introduced by Lotus 1-2-3 and replicated in Microsoft Excel.  The very fact I say “introduced by Lotus 1-2-3” gives you an idea how venerable this bug actually is.

This bug has existed for an exceedingly long time and anyone that deals with spreadsheets is well aware of it.  In fact, it has really ceased to be a bug and become expected behaviour.  I can’t claim this is a good thing, but that is the way that it is. 

Now, when you start to deviate from expected behaviour that has existed for decades, you will run into problems.  The amount of spreadsheet consuming and producing applications is gigantic and changing the ground rules is not an option if you want any sort of interoperability.  The leap year bug itself is not an intrinsic issue with serial dates itself, but an application issue introduced by Lotus 1-2-3 which has become accepted practice. 

If Mr Bollow is saying that ISO8601 dates must be used everywhere without exception, then I am assuming he also advocates throwing Unix time over the side in favour of an ISO8601 implementation.  Good luck with that. Oh and OpenFormula too. (More later).

Well, maybe semi-reintroduced

In addition, Mr Bollow fails to make the distinction between the two forms of OOXML: Transitional, which is meant to help support “legacy” information and provide a transition vehicle to the more pure Strict form of the standard. 

Serial dates for spreadsheet cell values were not allowed in the Strict form and have not been reintroduced in the Strict form by Working Group 4.  As far as I am aware, there is absolutely no intention to do so.  In addition, many thought that serial dates were allowed in the Transitional form, and it came as some shock to many when I pointed this out originally, back in February.

Another important point is that this only affects spreadsheet cell values, ISO8601 functionality is not being excised by these changes, in fact ISO8601 dates are still allowed in spreadsheet cell values in the Transitional form.  Personally, I don’t think this is wise, to fully avoid data loss issues, ISO8601 dates in spreadsheet cell values should not be allowed in Transitional, but be the only allowed date values in Strict.

There are many places where the ISO8601 date specification is used and will continue to be used in spreadsheets in the Transitional form, such as the WEEKNUM function, which has arguments to specify ISO 8601 week numbering.

Can’t we just leave it as it is and let users/vendors sort out the mess?

I have heard this argument, and it immediately marks out anyone who makes it as a complete dillettante with respect to the workings of finance.

In contrast to word processing documents, dates are far more pervasive within spreadsheets and in general, far more critical.  Most financial analysis is date-based, reporting is always date based and calculations of financial instruments are mostly date based.  It is safe to say that an extremely high proportion of spreadsheets contain dates and that the integrity of those dates is critical.

In ECMA376-1 all dates in spreadsheets were treated as serial dates, so any reading and writing of dates was using this format. With the enforcement of ISO 8601 Dates in the current specification (§18.17.4, §, § and the primary example (§ featuring the use of ISO 8601 Dates and the newly introduced d attribute (from §18.18.11 ST_CellType), all conforming applications must write dates in SpreadsheetML cells in ISO 8601 format.

This semantic change (no schema-enforced change exists) means that all existing applications fail to open IS2900 transitional spreadsheet documents correctly. The observed behaviour of applications differs from an inability to open the document to silent data loss.

This is a huge problem, if you combine the inability to distinguish two versions of the specification of instance documents with a semantic change, you have a recipe for disaster.  To simplify, imagine the chaos that would ensue if you silently changed the currency you use for accounting, but didn’t tell any of your finance staff when.

The silent data loss encountered is made even more problematic, in that the value may be parsed as an incorrect date, instead of a null value or other failure. This means that there is little to alert the user of problems. Dependent formulas will not fail with divide by zero errors, only when there is additional logic that takes into account date boundaries. Visual recognition of the failure will usually be required.

Some other scenarios to consider are when using spreadsheet files that are linked to other spreadsheets, or products that perform lookups to spreadsheets. This means that patching of older applications would have to be absolute and in sync across all organizations involved. For example, a spreadsheet in one country could be used as a lookup for data by spreadsheets in another country. This would mean that all branches, divisions and subsidiaries of an organization may need to ensure that all application software that consumed spreadsheets is patched in sync to avoid data loss.

The applications I tested are easily available ones, but we also need to consider larger applications such as ERP and BI software where bi-directional use of spreadsheets is used. This means that bad data in the local spreadsheet could be propagated to an enterprise-wide system. Patching such enterprise-wide systems is an extremely costly undertaking. Even patching Office suites is a very costly undertaking, in terms of testing and rollout, even if there is no additional software cost from the application vendor.

But how many ECMA376-1 consuming applications can there be?

Another argument is that this is a storm in a teacup, the primacy and purity of ISO8601 dates is more important than the pandering to the handful of applications out there that might encounter a later version and produce errors.

There are many of them out there, obviously Office 2007, which is fairly popular, I’ve heard, but also a huge amount by smaller vendors, such as SAP, Oracle, Lawson, IBM (e.g. support for Excel 2007 in Cognos)– people like that.  As mentioned before, most ERP (Enterprise Resource Planning) and BI (Business Intelligence) vendors deal with XLSX files, some of them bi-directionally – meaning bad data could be propagated globally throughout these enterprise-level systems.

But these are just the tip of the iceberg, there are many bespoke in-house systems, especially in the financial space that rely heavily on Excel files.

But, won’t vendors have been slow to adopt the new formats, I hear you cry.  The answer in this case, is no.  The benefit of the OOXML format is that it has been much easier and quicker for vendors to implement support than the old binary Excel formats, which were horrible.  The documentation was obviously much better and the XML nature meant it was far easier to implement support on different platforms, which is key for enterprise vendors that run on a huge gamut of different OS and technology platforms.

In addition, there has been a lot of pressure from users to support the new formats, as the size of spreadsheets was greatly expanded with the introduction of OOXML.  Previously, Excel spreadsheets were limited to 65,536 rows.  Enough for any spreadsheet, you may say, but in my experience, they always wanted more.

We frequently had product enhancement requests to allow Monarch to export many hundreds of thousands of rows into spreadsheets, using tricks such as populating one sheet, moving on to the next when the limit was reached and so on.

I wonder about the wisdom of million row spreadsheets, but users will always seek to push the envelope.

Behaviour of existing applications when encountering ISO 8601 Dates

Some testing (earlier this year) was performed on easily available applications, to see what the scenario of using ISO8601 dates in an instance document would look like.  The following implementations fail when opening a file which contains no changes introduced in IS29500, except for ISO 8601 dates, with the t attribute of the cell set to “d”. Only Datawatch Monarch 10 will work without error, under the (unlikely) condition that the ISO-8601 date string only includes the date portion. All other tested implementations fail.

Office 2007 SP1

Warning dialog appears “Excel found unreadable content in <>. Do you want to recover the contents of this workbook …” On clicking Yes, the file is loaded but all dates are removed.

Office 2007 SP2 Beta

No warning dialog appears, dates are silently corrupted, but still exist within the file as valid, but incorrect dates.

OpenOffice 3.0.1 Calc

Similar behaviour to Office 2007 SP2 Beta

NeoOffice Mac

Similar behaviour to Office 2007 SP2 Beta

Apple iWorks 09 Numbers

Similar behaviour to Office 2007 SP2 Beta

Apple iPhone

Similar behaviour to Office 2007 SP2 Beta

Excel Mobile 6.1

Similar behaviour to Office 2007 SP2 Beta

Datawatch Monarch V9 / Monarch Data Pump V9

File cannot be opened

Datawatch Monarch V10 / Monarch Data Pump V10

File can be opened correctly if only the date portion of an ISO-8601 date string exists. If it is the long form, an error message warning of corrupt data appears, informing the user that it will be imported as nulls. The problem can be rectified, by changing the field type from date to character. Note that Monarch is often used in lights-out operation and Data Pump is only used in lights out operation.

Cleaning up the mess

So, the “so-called” Working Group 4 were faced with the following set of problems:

  1. For an existing ECMA 376-1 consuming application, there was no way to distinguish a later version, so the application would happily read and process any future instance, unaware of any changes (especially purely semantic ones!)
  2. For an existing ECMA 376-1 consuming application, there was no way to distinguish between a document of conformance class strict versus one of conformance class transitional.
  3. Changes to implement ISO 8601 dates in SpreadsheetML had not been thought out well at all in the BRM process.
  4. Changes to implement ISO 8601 dates per se had not been thought out well at all in the BRM process (i.e. no subsetting as per the XML Schema spec)
  5. Many assumed that serial dates were still allowed in the transitional form, which one could easily assume based on the lack of strong typing (the cell value, which is the target container for dates) is a string, not a date, with an optional attribute to indicate an ISO8601 date.  In addition, there is a large amount of text in the OOXML specification referring to serial dates. 
  6. The catastrophic silent data loss issue proven to exist in many applications designed for ECMA376-1.

We all know the various stories about the financial catastrophes that can occur with errors in spreadsheets.  Compounding this enormously at the file format level would not be popular amongst organisations such as EUSPRIG or indeed, anyone using spreadsheets at all, which is just about everyone.

So what did Working Group 4 decide to do about this?

Let’s take a look at the Scope statement for IS29500:

"ISO/IEC 29500 defines a set of XML vocabularies for representing word-processing documents, spreadsheets and presentations. On the one hand, the goal of ISO/IEC 29500 is to be capable of faithfully representing the preexisting corpus of word-processing documents, spreadsheets and presentations that had been produced by the Microsoft Office applications (from Microsoft Office 97 to Microsoft Office 2008, inclusive) at the date of the creation of ISO/IEC 29500. It also specifies requirements for Office Open XML consumers and producers. On the other hand, the goal is to facilitate extensibility and interoperability by enabling implementations by multiple vendors and on multiple platforms."

(For anyone that was wondering, Office 2008 was the Mac version.)

Although the preexisting corpus only references Microsoft Office, it certainly applies to the huge corpus of documents produced by applications other than Office, but consumable by Office too.

  1. Since the Transitional form is meant to help deal with the transition of legacy documents, it was decided to make best efforts to provide compatibility with ECMA376-1 in the Transitional form of OOXML, so that existing applications worked properly.  This involved clarifying or reintroducing, depending on your point of view, the use of serial dates for SpreadsheetML cell values.
  2. Since the Strict form is the ideal form of the specification (ISO8601 dates only etc), where applications should strive to end up over time, it was decided to change the namespace, so that applications designed for ECMA376-1 would not be able to read them, avoiding data loss issues.  In the absence of an existing versioning system, this was the only way to prevent existing applications from processing future version files that would likely create compatibility issues.

In addition, some members of Working Group 4 are determined to consider the implementation details of ISO8601 dates in spreadsheets, and wider, possibly using a subsetting approach like that found in XML Schema. 

There certainly needs to be definition of which forms of ISO 8601 elements should be used, for example, possibly specifying “Complete Representation in Extended Format” should be used for dates and times, with separators explicitly defined and so on.  Other considerations might be the expansion of the range of valid dates, less than zero and greater than 9999.  ISO 8601 allows for a fair degree of ambiguity, so honing down the allowable forms would make implementers’ lives much easier.

There are also a wealth of other aspects of ISO8601 that would need to be excluded, such as recurring time intervals.

In the final analysis, the venerable Leap Year bug, now, somewhat strangely, elevated to accepted behaviour, is far less dangerous than the silent data loss problem that not allowing serial dates in spreadsheet cells could be.

Further reading

Rob Weir (CoChair – OASIS ODF TC, Member – OASIS ODF Adoption TC, Member -OASIS ODF Interoperability and Conformance TC, Member – INCITS V1, Chief ODF Architect, IBM)

A leap back

This is an interesting post, but there are a few issues that I need to address here:

“If you guessed “Microsoft”, you may advance to the head of the class.”

Alas Rob, it was Lotus that thrust this onto the world when they were the dominant spreadsheet and the minnow Excel had to play ball!

“The “legacy reasons” argument is entirely bogus. Microsoft could have easily have defined the XML format to require correct dates and managed the compatibility issues when loading/saving files in Excel. A file format is not required to be identical to an application’s internal representation.”

That may well be true, but I would imagine that would cause a large technical burden when managing backward compatibility with fixes such as the Compatibility Pack, as well as for the tens of thousands of developers reading and writing BIFF8 (the older Excel native binary format) who likely consumed, processed and exported serial dates. 

Spreadsheets historically did not have date engines that could deal natively with ISO8601 dates and I doubt any do now.  They could, of course parse them in and out, but it is not a trivial amount of work to put in the plumbing and why take the performance hit.  Serial dates are great for date diffing and grouping, which is one of the most common operations – i.e how old is this debt, what transactions are in this quarter etc.

In addition, this argument cuts both ways, applications could convert serial dates into ISO 8601 dates if they so wished.  Anyway, as of today, we have to clean up the mess as best we can.

Allowing serial dates in OOXML also makes it easier to interoperate with the forthcoming OpenFormula specification, which reasonably eschews ISO8601 dates in favour of serial dates and datetimes as input.  BTW OpenFormula looks excellent and I must commend the work of Dave Wheeler and the rest of the OpenFormula SC.

As per the latest OpenFormula draft of May 9, 2009:

“A Date is a subtype of number; the number is the number of days from a particular date called the epoch. Thus, a date when presented as a general-purpose number is also called a serial number.” …

“A DateTime is also a subtype of number, and for purposes of formulas it is simply the date plus the time of day.”

I do hope Mr Bollow is pursuing the OpenFormula SC with the same vigour for their anti-ISO8601 activities, maybe we can convince him together!

Joel Spolsky (former Excel Program Manager) 

My first BillG review 

This explains the infamous leap year issue that Lotus created and Excel had to stomach.

The problem is that the horse has bolted, we now have to figure out to do the best with what we have.

Jesper Lund Stocholm (SC34/WG4 Member, Danish Standards)


Discussion of ISO 8601 dates in Spreadsheets

Alex Brown (SC34/WG1 Convenor, SC34/WG4 Member, British Standards)

ISO 8601 date discussion at Copenhagen WG4 meeting.

Apologies to my Business Intelligence readers, this post is pretty esoteric and refers to some strange goings on in the document standards world.

Apologies also to Rick Jelliffe, any resemblance to Schematron is entirely unintended.

After the drama of the initial Office 2007 SP2 ODF support was initiated by Rob Weir, related arguments spilled out all over the place.  I got involved in a few places, but then left it alone whilst I got on with some productive work.  There’s only so many ways you can say “it’s does not exist in the standard – admit it, fix it and move on”.

Needing something to accompany a coffee yesterday, I found that the argument was still raging on Alex Brown’s blog, so I settled down for some light entertainment.

Once again, Rob Weir was arguing with Alex about some interpretation of the ODF specification and calling Alex names.  Then ‘Marbux’  weighed in with possibly the two longest comments in internet history.

This highly esoteric, intellectual argument between Dr. Alex Brown (the Convenor of ISO/IEC JTC1 SC34 Working Group 1), Mr. Robert Weir (the Chair of the ODF Technical Committee at OASIS) and Mr. Paul E. Merrell J.D. AKA ‘Marbux’ (a Juris Doctor) essentially (and I simplify enormously) about whether something specified in the schema as required for a document instance to be valid/conformant, was not actually required, because Rob said it wasn’t and Alex and Marbux said it was.  Rob had his reasons for this, but they were completely lost on me.  I mostly understood Alex’s reasoning, but all this came at the cost of a Red Bull chaser after the coffee.

Note: I was always under the impression that it was good practice for something that was invalid against the schema to be deemed non-conformant.  Rob shows just what a absolute noob I am to assume that.

Here’s the selected highlights (I know it looks unexpurgated, but take my word for it)


“Alex, where do you read that validity of manifest.xml is required for conformance? That is news to me. Section 1.5 defines document conformance and says that conformance requires validity with respect to the OpenDocument schema. Section 1.4 defines that schema to be that described in chapters 1-16. This is confirmed in Appendix A. The optional packing format, including manifest.xml, is described in chapter 17, which the astute reader will observe is not between 1 and 16. Therefor it is not part of the OpenDocument schema to which validity is required for conformance.”


“Err, you’re reading the wrong version of the spec. The manifest invalidity problem only occurs for the two apps (OOo/Sun plugin) which claim to be using so-called "ODF 1.2"; so for the results here, the conformance section 1.5 of ODF 1.1, that you quote, is not relevant.”


“You misread the standard. But rather than admit and accept that, you are now trying to redeem your post by a back-up argument, which tries to apply your interpretation and prediction of what Part 3 of ODF 1.2 will say when it is eventually approved. But this text has not even reached Committee Draft stage in OASIS. It is merely an Editor’s Draft at this point. Are you really going to persist in making bold claims like this based on an Editor’s Draft, which has not been approved, or in fact even reviewed by the ODF TC, especially when contradicted by the actually approved ODF 1.0 (in ISO and OASIS versions) and ODF 1.1?”


“No, Rob – you are the one misrepresenting ODF.
The ODF 1.1 standard states: "[t]he normative XML Schema for OpenDocument Manifest files is embedded within this specification." (s17.7.1)
How is it anything other than non-conformant, for an XML document to be invalid to a normative schema?”


“Alex, as you know, normative clauses include those that state recommendations as well as requirements. So ‘shall’ is normative, but so is ‘should’ and so is ‘may’. Normative refers to all provisions, not merely requirements. Please refer to ISO Directives Part 2, definitions 3.8 and 3.12. So normative does not imply "required for conformance". The conformance clause defines conformance and that clause clearly defines it in terms of the schema excluding chapter 17.”


“I’m sorry, but you have veered off into the surreal now.
If you’re maintaining that "the normative XML Schema for OpenDocument Manifest files" is in fact NOT REALLY "the normative XML Schema for OpenDocument Manifest files", then we’re going to have to disagree.”


“Alex, read more carefully. I never said that schema was not normative. What I said is that "normative" is not the same as "required for conformance", as you had been asserting. But now I think you may be confused on this as well.”

Joe Sixpack Developer Trying To Implement ODF:

WTF!!! This is completely crazy – it would be easier and quicker to send someone round to every user’s desk and type it out in the app of their choice instead”

This reveals a real practical problem, should I wish to implement ODF.  I would need to consult the Oracle of Westford (Rob Weir) about every detail of the entire implementation, in order to be on fully safe ground.

Now if Alex Brown and various other highly qualified commenters can misread the ODF specification so heinously, needing the expert advice from the ODF Technical Committee Chair himself to put them right, what chance do lowly developers have?

It appears from this there is no chance that any developer will be able to interpret the specification properly, since only Rob Weir (and perhaps the folks working on OpenOffice) has the intellectual capacity to navigate this ball of semantic string. 

Having to cross-reference this file format equivalent of the newest, most advanced physics paper on the planet every time you write a line of code is going to lead to madness.

This leads to a huge scalability problem, with developers worldwide having to get an opinion from Rob Weir on every implementation detail – although he could save a few hours a day by giving up the blog posts and comments, it would not be anywhere near enough to cope with the deluge of requests.

So, the solution to this is clear – we need to implement Rob Weir as a web service, a Weirotron if you like. That way, everyone can query the Weirotron and get back the definitive answer to any ODF question, without having to deal with the obviously labyrinthine spec that has bamboozled so many leading XML experts.

In addition, the Weirotron could help solve those pesky interoperability issues that stem from some areas that ODF relies on the OpenOffice source code for, like Formulas, and areas where the spec is a bit light, so to speak, like Change Tracking etc.  I’m sure that this would really assist Microsoft and many other struggling developers in implementing support for ODF (or rather the Weir-approved cod-ODF) correctly, with the inherent blessing of the ODF TC Chair.

Update: The articles are once again behind the IBM paywall.  Going to assume that is the policy from now on until something official from IBM says otherwise.  Lame.

I hate the way that when newspapers have to publish an apology, they cram them in to a tiny space somewhere on the latter pages.  So, a new blog post, rather than a footnote to the old one is deserved.  Although not really an apology, the spirit of redress is the same

Most (if not all!) the credit should go to @SethGrimes, who was the first to blog about this, unbeknownst to me and who also approached IBM directly.

It’s an excellent decision and made with some alacrity, given IBM’s size and doubtless spools of internal red tape.

So now, those interested in the Godfather of Business Intelligence (Hans Peter Luhn) and the (often unsung) pioneers of Data Warehousing (Barry Devlin & Paul Murphy) can read their seminal articles without let or hindrance from IBM.

Yesterday Jos Van Dongen (@JosVanDongen) discovered that H.P. Luhn’s seminal paper on Business Intelligence, dating from 1958 was no longer accessible from IBM.  (Edit: See also the ur-post from Seth Grimes on this – not the first time I’ve been a johnny-come-lately to a topic!) Not only that, but any attempt to read Barry Devlin’s work on Data Warehousing was also thwarted by the ominous-sounding “IBM Journal of R & D | IP Filtering Page”.

“The IBM Journals are now only available online for a fee.” Barked the page.

Instead of the prescient words of Hans Peter, one is now greeted by the announcement that you now have to pay to read the words of wisdom of the godfather father of BI, who happened to work at IBM.

I know these are tough economic times, and IBM need to extract every last cent from their assets too, but the benefits of associating IBM with BI giants such as Luhn and Devlin far outweighs the meagre revenue they will gain from those who are forced to subscribe just for the few BI-related IBM articles.

They should be shouting about their BI bona fides, not locking them up in a subscription to a journal that most people have never even heard of and are unlikely to spring $1000 for.

Maybe the best way is to have some kind of ‘Heritage’ collection, featuring the superstars of the IBM back catalogue which are made available for free.  These might even be promoted to improve IBM’s image as an innovator and not a staid old behemoth, associated with mainframe monopoly and expensive services engagements.

The other issue is the multitude of links out there from a wide variety of people including analysts, business intelligence practitioners, academics, students, even Wikipedia.  The Wikipedia definition of the term ‘Business Intelligence’ even includes a link to the paper. Over time, these links will either get removed, leaving Luhn’s work unread, just a name in a history of BI, or just serve to annoy those who come across them whilst researching and reading about BI, wondering why IBM is nickel and diming them.

Just in the small Twitter business intelligence community, there are quite a few people who have linked to Luhn’s paper:





Even an IDC report hosted by IBM and a history of BI on the Cognos site  by the French Museum of Informatics.

There are thousands more links back to this paper, after all, he is the godfather father of Business Intelligence, not just any old IBM researcher.

Edited April 28, 2009 5:44:29 pm GMT – preferred Mark’s suggestion of ‘godfather’.

Edited May 11, 2009 5:06:30 GMT – Link to Seth Grimes’ earlier post on this topic.

With thanks to Barney Finucane (Twitter:bfinucane) for the inspiration.

A tweet from Barney led me to daydream about a fantasy scenario with Larry Ellison and Richard Stallman on Ellison’s yacht.

Larry summons Stallman, after being informed that RMS is the guru of Open Source software, a boatload of which Larry has just acquired.

“So Dick, they tell me you are the go-to guy for this Open Source stuff.  I’ve got the goddamn stuff coming out of my ears now.  I need a 20% growth rate next fiscal on licenses, lay out your business plan for me.”

“Larry, I don’t think you have quite grasped the concept of Open Source, it is about freedom and letting everyone have choice”

“Yeah Dick, that’s good spin, go on, where’s the main growth potential”

“Larry, the point of Open Source is that it is free, you don’t pay for it”

“Dick, you’re not making any sense, or do you mean that you don’t pay for it up front, kind of a loss leader sort of thing, then we come in with the maintenance and support hammer and grind the customer to a pulp.  A sort of market share grab, is that the deal?”

“No Larry, you develop software and give it away, including the source code”

“Dick, now you’re really starting to worry me, you look like a bit of a hippy-have you dropped acid or something?”

“Larry, you should read some of my writing, about how software has no owners, it is free, the documentation is free, it is more reliable than proprietory softw…”

Gunshot rings out.

“Kenny, (gestures with smoking pistol to robust-looking bodyguard) throw this crazy-ass hippy in the ocean will you”

Anything-As-A-Service Paranoia

February 11, 2009

There is a lot of talk about how <insert letter(s) here>AAS, especially in BI, is going to dominate 2009, mainly due to low startup costs and the hope of expert analysis of any organization’s complex business model by outsiders.

This is all well and good, but as a cynic and a slightly paranoid one at that, I can see certain risks that others with a more sunny disposition may not entertain.

I’m not alone though and in good company at that.  For example Larry Ellison (“It’s insane”), Richard Stallman (“It’s worse than stupidity”), Bill McDermott (“It just won’t work). Admittedly they have their own agendas, but they give good quote.

5 nines?

The top tier providers do have a pretty good record here, but there is still the odd outage or two, even for Google Apps and Salesforce.  I know that it is fairly rare for internal IT to be more reliable, but you can be more granular.  For example, if you have a critical campaign or similar event, then you can step up the level of investment in disaster recovery with more hardware/software/staffing etc for the critical event and then ramp down again.  In addition, some of these stats don’t take into account an internal IT’s PLANNED downtime, which when done correctly should have very minimal impact on the business.  With SaaS, you’re in the pool with everyone else, no special treatment, no DEFCON 1 SLA on demand.  Same as disaster recovery – no 80/20 option of just getting something up and running or a small amount of data to be going on with while the whole thing is fixed, it’s all or nothing.

And what happens if you do suffer problems with business continuity? In most cases you can get your money back for a specific period (or a portion of it).  Some of the stories I have heard regarding downtime have ended up with much larger business impact costs than a month of SaaS payments, that’s for sure.

Who can you trust?

I started drafting this post even before the Satyam business (Yes, I know that’s a long time ago, but I’ve been busy).  The answer is you can’t really trust anyone, but you just have to make an informed decision and live with the compromise.

If you are in the UK, then Sage would certainly be a name you could trust, but their recent security faux-pas with their Sage Live beta would likely make any consumers of a future service from them think twice. 

A third party can certainly lose your data.

This is not so much about losing the data forever, in some kind of data disaster, where it cannot be retrieved by backups, it’s losing it outside the realms of who should be allowed to see it.  This happens all the time, as shown by the British Government’s suppliers, unknown small outfits like PA Consulting, EDS, Atos Origin, etc etc.  I could go on and on, but you can read about countless others here.

This can lead to it falling into the hands of those you don’t want to have the data, but in a passive way.  As we know, august organizations like SAP have allegedly filched data in a less passive way as well.

Another very recent one where they did actually lose it completely was magnolia.com, not really a business critical service, but certainly affected those users that had invested their IP for up to 3 years.

Your data can be easily converted into cash. For someone else.

For data that has been lost or stolen, there is almost certainly a ready market for that data if it is in the hands of a less ethical organization.  Of course, it requires an unethical organization to purchase and use the data, but I don’t think they are in short supply either, especially if the data can severely hurt a competitor or dramatically help the business.  In these lean times, it may be the case that the moral high bar is lowered even more.

This may be the unethical company itself, or far more likely, some disgruntled employee that wants to make a quick buck.

New territory in the Sarbox / Gramm-Leach-Bliley world.

Data bureaux are nothing new, industry has been outsourcing data processing for years, but this has been mainly in administrative areas such as payroll, or transactional such as SWIFT.  This stuff is pretty tedious and not easy to get any kind of edge on your competitors with.

Salesforce.com are the SAAS darlings, but they have already have had their data loss moment.  And that’s only the one that was public. One might say that the information held on Salesforce.com is not that critical, but it certainly might be very useful to your competitors.  However, you’re not likely to get hauled over the coals in the court of Sarbox for a competitor poaching your deals.

Once you start handing over key financial data to a third party, then the CEO and CFO are signing off on their deeds too, since you are responsible for the data, not the third party.

You probably need to think about buying insurance for this eventuality.

Another consideration is where in the world your data is stored, in the nebulous cloud, as not all geographic locations are equal, as regards privacy.

Under new management.

To use Salesforce as an example, they have Cognos as a customer. I don’t know if that’s still true, but let’s say it is.  Now, our old friends SAP decide to buy Salesforce.com.  Allegedly no strangers to a bit of data voyeurism, it would not be beyond the realm of the imagination (hypothetically, of course) that they may let the Business Objects folks (sorry, SAP Business Objects) take a sly peek.

On the more mundane side, should a more high quality vendor divest a SAAS business to a smaller, less blue-chip organization, you have a review and possible migration on your hands.  See the Satyam debacle for the sort of ructions switching an outsourcer creates, especially in the context of a disastrous event.

Who pays the integration costs?

The fly in the ointment in the nirvana of throwing the problem over the side and getting the low capital outlay, useful BI within weeks etc etc is the dirty old job of integration.  It’s generally one of the most painful aspects of the BI stack even working within the organization, but then dealing with the issues of feeding an external provider makes it even hairier. 

In the case of Salesforce or other outsourced data, it’s far less of a problem, since theoretically, the outsourcer can just easily suck that data using clean, documented APIs.  However, there are costs involved in moving the data to two sites, the usual operational use of the customer and the BI use of the outsourcer. That could be bandwidth or other charges for data exporting etc, or when the SAAS fraternity wake up and start creating a new license and premium for providing your data to external entities.  Kind of like the oil companies keeping the price of diesel high (in the UK anyway), so those folks trying to save money by buying a car with better economy end up paying roughly the same anyway.

So what’s the mood?

I observed a very interesting straw poll at the 2009 Gartner BI Conference in the Hague.  At a large session, Donald Feinberg of Gartner asked the audience how many were considering SaaS BI.  The show of hands was either non-existent or maybe just one.  The reason, trust.  I imagine the attendees at this type of conference are more at the larger end of the enterprise spectrum, so there may be more interest in the lower leagues.