'Just' use HTTP
Writing about web page http://intertwingly.net/slides/2005/etcon/
Sam's slides are all online so I don't need to annotate everything. Everyone who develops web apps should read them
- understand unicode: it is an attractive nuisance . Inexperienced developers will screw it up. c.f. the recent (p)unicode domain name hijacking bugs in mozilla
- The default encoding for HTML is iso-8859–1, for XML it's utf-8. This is why you can't put HTML directly into RSS, win-1282 (the default enctype on windows) isn't compatible with either (27 differences, mostly around quotes and the euro symbol)
- URIs: Encoding is not defined – it's up to you to document yours clearly to your clients. Equality of URIs is not well-defined; the CLR uri.equal method is broken.
- layering is problematic e.g. the rules for encoding a URI don't apply in an XML document (can't encode a ~ as %7e )
- RSS/Atom: Lots of unanswered questions / ill-defined points in the spec
- Layering is the problem, not the solution. Layered designs inherit the bugs from all layers.
Q: If everything is broken, how come it still works? A: because people are very fault-tolerant. The more machine-machine communication you have the more problematic it becomes.
Q: Are web services genuinely better than HTTP, or just newer? A: because the client stacks have (sometimes) been written with the spec to hand, they're generally more reliable.
Q: How do you avoid the attractive nuisance problem e.g. when writing the atom spec? A: make the spec force people to think about the problems e.g. by specifying the content-encoding for specific element types.