Fully Disagree. Metaphors are perfectly good thing to have, in a P.T. Barnum sense. And, it is working. Go with it.
The tipping point was Google Maps. The tip of the iceberg was AJAX, and that’s the bandwagon that a number of people have jumped on. And on balance that’s a good thing as people who previously had clung unto the idea of a fat client are starting to let go.
Of course, the rest of the iceberg was that Google had simply tiled the Earth. In so doing, they converted a single web service (call me with a bunch of information, and I will provide you with a custom result) into a large number of individually addressable, cacheable, and scalable web resources.
What we need is more elevator pitches, not less. When I see somebody who wants to demo for me their latest “REST based” web service, the first thing I ask is; “do you support ETags?”
And when people are trying to grasp what the web is if it isn’t a bunch of web services, remind them that the web isn’t a service (i.e., a verb) at all, it fundamentally is a space (i.e., a noun).
I agree entirely — all language is inherently metaphoric and relational. (But maybe that’s just the old lit crit in me rearing its ugly head.) In any event, Sam, you’ve unearthed a great new meta-punny construct yourself: The Tipping Point of the Iceberg. It’s gonna take a wikifull of 2.0 deconstructors to tease that one out...
Tim Bray: "The Web isn’t a platform or a database or an API or an OS a cloud or a clickstream or any other of those things. In fact, the Web isn’t even a thing, it’s a mesh of agreements with a nice straightforward engineering rulebook. Play by the...
Tim Bray doesn’t like Web metaphors: "The Web isn’t a platform or a database or an API or an OS a cloud or a clickstream or any other of those things. In fact, the Web isn’t even a thing, it’s......
[more]
Tim Bray doesn’t like Web metaphors: "The Web isn’t a platform or a database or an API or an OS a cloud or a clickstream or any other of those things. In fact, the Web isn’t even a thing, it’s a mesh of agreements with a nice...
Did you notice Sam Ruby’s new preoccupation with ETags? When he’s talking with founders about their new web services, “the first thing I ask is; 'do you support ETags?'” I’m so glad that he’s doing that, and talking about it publicly. I’ve been a...
Jon Udell: Only if you consider the Google maps interface of today and the MapQuest interface that existed at the time Google maps was introduced as being “roughly the same”. I don’t. The abstractions and patterns...
[more]
Sam, at the risk of sounding incredibly stupid, I’d like to ask a simple question:
Granted that one publishes a web-resource (as opposed to a full-blown web-service API) that is guaranteed never to change more than once per second, will serving it only with a “Last-Modified-Date” header and no “Etag” header have any adverse effects for either the publisher, or the consumer of the resource - or anyone in between?
I guess I always assumed that Etags were just considered more “1337” than those old-skool timestamps, or something. ;-)
Granted that one publishes a web-resource (as opposed to a full-blown web-service API) that is guaranteed never to change more than once per second, will serving it only with a “Last-Modified-Date” header and no “Etag” header have any adverse effects for either the publisher, or the consumer of the resource - or anyone in between?
No.
While it is theoretically possible to find a consumer that only supports one or the other, it is unlikely. And caching is “just” an optimization — meaning that you only need to worry about the common cases.
But should you still be concerned about it (I wouldn’t be), the Etag could have exactly the same value as the Last-Modified date, just in double-quotes.
I’m assuming you’re talking about web browsers? It’s not uncommon for RSS readers to support only the one or the other. Last I checked (which would have been last year some time) I found 6 supporting both, 6 supporting just one (evenly split between ET and LM), and 3 supporting neither.
In a recent project I started out also serving Etags that were just the modification timestamp in (milli)seconds (allows easy comparison), but I then decided against it as it seemd redundant, both in terms of bandwidth and processing time... (It had to be highly optimized).
I never considered the possibility that some clients might only support Etags. It seems awfully weird to write a HTTP client and only support Etags/If-None-Match ... But that’s how it is, so I’ll probably have to deal with that one day.
So .. it took a while to get through my full head of hair and really thick skull, but I’ve finally seen the light with regards to the power and coolness of REST over WS-*. After lots of careful thinking, ably assisted by the many conversations with...
The Twitter Maintenance Cat The performance of Twitter as of late has been abysmal. I’m getting tired of seeing tweets like “Wondering what happened to my last 5 tweets” and “2/3 of the updates from Twitterrific never post for me. Is this normal?”...
Link: Sam Ruby on Google Maps Of course, the rest of the iceberg was that Google had simply tiled the Earth. In so doing, they converted a single web service (call me with a bunch of information, and I will provide you with a custom result) into a...
Etags cure cancer! Etags let REST replace WS.* Etags help blind children understand colour. Etags are magical lightning bolts of clarity in a world of confusion. Etags can be just like date stamps but with double quotes around em . (note to self --...
Tim Bray : " The Web isn’t a platform or a database or an API or an OS a cloud or a clickstream or any other of those things. In fact, the Web isn’t even a thing , it’s a mesh of agreements with a nice straightforward engineering rulebook . Play by...
Tim Bray : " The Web isn’t a platform or a database or an API or an OS a cloud or a clickstream or any other of those things. In fact, the Web isn’t even a thing , it’s a mesh of agreements with a nice straightforward engineering rulebook . Play by...
Regarding my “RESTful Services with Erlang and Yaws” article on InfoQ.com, Sam Ruby said: This otherwise excellent article fails my ETag test. When Sam speaks, I listen, so I’ve given his feedback a lot of thought. As I wrote in a comment on Sam’s...
For many moons, the WS-* crowd, and the RESTafarians have argued. But what are the real differences in the two approaches? Although the argument is old, I still get asked for my opinion on this quite regularly - so here it is: If you control the...
I liked, really liked, Jim’s Notes from the Aussie Architectural Astronaut Assembly but do have a small 409 Conflict with the assertion “REST isn’t simple”. It is true you have to be a protocol weenie or an unconscious idiot before you can...
As requested, the Atom PubSub bridge This module offersr an AtomPub interface to ejabberd PubSub data. Currently in two unfinished flavors, one for use with yaws embedded. One for use with ejabberd_http server Howto You need to have Yaws available....
Tim Bray: While I agree with that, I claim that the potential benefits are much more than that. Much more. Furthermore, the upcoming Simpler Conditional Get Support is not the only arrow in Rail’s quiver, and not always...
[more]
I’ve had a good teacher . Just noting some of the things I’ve come across. Default Apache httpd configuration in a cluster with multiple filesystems By default , Apache httpd generates an ETag of the format inode-filesize-timestamp . A symptom of...
When I see somebody who wants to demo for me their latest “REST based” web service, the first thing I ask is; “do you support ETags?” — Sam Ruby, 2006 This is the second part in a series on implementing fine-grained HTTP controls and developing...
So I spent the last two days trying to figure out why Firefox insists on reloading flash content whenever I flip around in my tasty javascript-y tabbed interface. You haven’t seen this? I’m not surprised, it really only occurs if you’re embedding...