>>We're currently having a debate around capitalization in usernames (not
>I think the best policy is the one originally prescribed for browsers
>in dealing with HTML: Be generous in what you accept; be strict in
>what you emit.
Although Berners-Lee did include this notion in his [Axioms of Web
architecture], the Robustness Principle is a lot older than HTML.
It's commonly credited to [Jon Postel's] 1980 RFC on the
Transmission Control Protocol: [RFC 761]. Section 2.10 of that RFC
is as follows:
2.10. Robustness Principle
TCP implementations should follow a general principle of
robustness: be conservative in what you do, be liberal in
what you accept from others.
This form of words appears to be the most widely quoted.
That said, Nick Gall's article of 2005/05/25, ['My history of the
(Internet) Robustness Principle'] cites another Postel RFC -- RFC
760 DOD Standard Internet Protocol -- which uses a wordier and more
The implementation of a protocol must be robust. Each
implementation must expect to interoperate with others created by
different individuals. While the goal of this specification is to
be explicit about the protocol there is the possibility of
differing interpretations. In general, an implementation should
be conservative in its sending behavior, and liberal in its
receiving behavior. That is, it should be careful to send
well-formed datagrams, but should accept any datagram that it can
interpret (e.g., not object to technical errors where the meaning
is still clear).
Gall also mentions two older Internet Experiment Note (IEN) specs,
dating to August and December 1979 respectively, that used the same
wording as RFC 760 above.
In an earlier article, ['Loosely Coupled Consistency'], 2004/05/17
Gall makes the point that the Robustness Principle is essentially a
re-statement of the difference between Signal Processing and
Signal Processing differs from Information Processing in that it
expects information to be noisy, imperfect, inconsistent, etc,
whereas Information Processing is based on an expectation of
perfect "digital" information.
Finally, Theo Honohan, the first to add a comment to Gall's history,
makes the (to my mind, pertinent) connection between Postel's words
and [Rudolf Carnap's] famous 'plea for tolerance':
Let us be cautious in making assertions and critical in
examining them, but tolerant in permitting linguistic forms.
-- 'Empiricism, Semantics, and Ontology'
Revue International de Philosophie (1950)
(This plea was equally famously [taken strong objection to] by W
V Quine, BTW.)
>That is, the site should consistently capitalize (or not) names, but
>allow people to enter them in a case-insensitive manner.
I believe Carnap's thinking is at least as useful with regards this
question as Berners-Lee's or Postel's.
Don't impose unhelpful restrictions on the user (be cautious in
making assertions). At the same time, examine user input with all due
care (be... critical in examining [such input]) while being as open
as is possible when parsing said input (be... tolerant in permitting