Microsoft just barely beat the clock today, responding to the European Commission's allegations it overcharges rivals for licensing its Work Group Server technology. The EC had given Microsoft until this evening to answer the complaints, threatening fines as high as $4m a day. Microsoft responded by waiving its right to a …
"We had to look up 'reasonable' on Wikipedia, but we're always willing to haggle."
Preferably for months and years, until the whole issue becomes moot. Anything to keep FOSS from becoming fully compatible with Windows directory services, because they know that would spell the end for their shitty software.
Microsoft already defined 'reasonable'
Reasonable is free of cost with no precontract requirement. Just like the documentation for all their other APIs:
They *Microsoft* defined what is reasonable when they decided how they would document and distribute the document for all the other APIs. To do anything different for these particular API Microsoft has to show how come these APIs related to its anti-competitive behaviour should be treated differently.
Reasoning on reasonable
Reasonable costs, surely, means "no more than what it NEEDS to cost".
For a paper document, that means the cost of the paper, the cost of the toner, the exact amount paid to the post office and perhaps even the cost of 30 seconds of time by a person paid the national minimum labour rate for putting it in the envelope. Nothing more, and most definitely no element of profit for microsoft or third party fulfillers.
But the sensible answer is not to supply the document on paper, but to put it on the web and let those who want it download it themselves. The cost, then, is a most definite ZERO. The demand isn't going to stretch microsoft's existing server capacity, so no reason to make a charge at all.
But it begs the question, why didn't the EU have the sense to say "you must make the information available in the form of a free PDF download" instead of mentioning the unnecessary loophole of a reasonable (or unreasonable) charge.
Protocols not APIs
MSDN just provides you with their APIs, even these are incomplete in some areas.
This is about protocols and what messages are sent to achieve various tasks like authentication, printing, file sharing etc...
An API just tells you how to write software to use the functionality that uses the protocols.
Take MSN Messenger as an example, the protocol for this has had to be reverse engineered. You think that is on MSDN?
Protocol = API
"This is about protocols and what messages are sent to achieve various tasks like authentication, printing, file sharing etc..."
Changing the name doesn't change the substance, and they certainly do document 'protocols':
They set the price at zero, no precontract. They defined reasonable, they should live with their decision.
protocol != api
Have a look at the MSINet component API for use in VC++, VB etc... especially the FTP parts.
Then look up RFC 959 (FTP Protocol).
An API (Application Programming Interface) allows you to hide the nuts and bolts of a process from the programmer through a defined entry point. A protocol *is* the nuts and bolts hidden behind that API.
Just because you have access to the API, does not mean that you know what is really happening behind the scenes, and what is more, there are times when that API is not (or badly) explained, or (as in the case of the good old Wininet api) only a very basic rendering of the underlying protocol is effectivly encapsulated.
Ok, wininet is just an api wrapper for basic HTTP and FTP programming, and these are open protocols defined by open, community developed internet drafts and RFC's, but how about all the rest? Windows shares with SMB? Windows login authentication? MSN Messenger? Nope, you just get an api which (watered down explanation follows) allows you to enter a machine name and a password and returns true or false. From an API viewpoint, it's perfect, but from a protocol point of view, how does a Mac/linux/favorite non-MS connected hardware do the same thing? How is data sent? encrypted, plaintext, BCD? That is all defined in the protocol. No protocol? Then you have to break out Ethereal and reverse engineer it. Oh, sorry, you are in the US, and the DCMA seems to forbid that... and even if it does not, can you personally stand up to a large corporation's legal department?