<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Google Web Accelerator Considered Harmful</title>
	<atom:link href="http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful/feed" rel="self" type="application/rss+xml" />
	<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful</link>
	<description>"Act reasonable in your own time."</description>
	<pubDate>Mon, 06 Oct 2008 20:09:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Mark IJbema</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3902</link>
		<dc:creator>Mark IJbema</dc:creator>
		<pubDate>Mon, 09 May 2005 11:36:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3902</guid>
		<description>@cgriego: you should really read this:

http://philringnalda.com/blog/2005/05/i_wonder_why_buttons_look_like_that.php

Actually, not being able to use links to do harmfull stuff isn't that bad</description>
		<content:encoded><![CDATA[<p>@cgriego: you should really read this:</p>
<p><a href="http://philringnalda.com/blog/2005/05/i_wonder_why_buttons_look_like_that.php" rel="nofollow">http://philringnalda.com/blog/2005/05/i_wonder_why_buttons_look_like_that.php</a></p>
<p>Actually, not being able to use links to do harmfull stuff isn&#8217;t that bad</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Koranteng Ofosu-Amaah</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3896</link>
		<dc:creator>Koranteng Ofosu-Amaah</dc:creator>
		<pubDate>Sun, 08 May 2005 19:44:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3896</guid>
		<description>You're right. I was engaged in my tradition of metaphorical excess ;-).

What that sentiment betrayed was a sense that those who have been quietly evangelizing the web style were talking about the wrong thing and to the wrong people. We should have been like the web standards project and should have had a litany of examples of best current practices that everyone could have seen and understood. There is no reason that you should only now be aware of the importance of idempotency... Your first encounter with a web application or web site should have this lesson hardwired in it. The recipes that you did view source on to learn the about the web (like the thousands of sites that have lifted the stylesheets from the CSS Zen garden) should have been had such practices encoded in them so that it would be second nature... 

All this to say that the things one thinks are obvious are often not... 

By the way, on a different topic, I hope you carry on with Zoo, there is nothing like an itch to scratch and what little you've posted on the idea is making me ponder downloading and installing the .Net framework.</description>
		<content:encoded><![CDATA[<p>You&#8217;re right. I was engaged in my tradition of metaphorical excess ;-).</p>
<p>What that sentiment betrayed was a sense that those who have been quietly evangelizing the web style were talking about the wrong thing and to the wrong people. We should have been like the web standards project and should have had a litany of examples of best current practices that everyone could have seen and understood. There is no reason that you should only now be aware of the importance of idempotency&#8230; Your first encounter with a web application or web site should have this lesson hardwired in it. The recipes that you did view source on to learn the about the web (like the thousands of sites that have lifted the stylesheets from the CSS Zen garden) should have been had such practices encoded in them so that it would be second nature&#8230; </p>
<p>All this to say that the things one thinks are obvious are often not&#8230; </p>
<p>By the way, on a different topic, I hope you carry on with Zoo, there is nothing like an itch to scratch and what little you&#8217;ve posted on the idea is making me ponder downloading and installing the .Net framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zef Hemel</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3895</link>
		<dc:creator>Zef Hemel</dc:creator>
		<pubDate>Sun, 08 May 2005 10:56:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3895</guid>
		<description>Provocation? I do a lot of provication, but is this one of them? It's really simple. I posted this from a user's standpoint. Fact is that many web applications are written using GETs to manipulate data. To be honest, I've done that myself as well. Given this fact it is not safe to use GWA right now. Agree?

Or do you feel that users should install GWA to let put massive presure on the shoulders of developers, to fix their software.

Personally, my strategy would be this: 1) Warn, get your data safe. 2) Fix it.

Edit: I just read the BitWorking.org post and I get your point better now. Still don't see how this is provocation, though. Partial look at the whole picture, sure. But to be honest, I wasn't so aware of the badness of using GETs for this purpose until yesterday.</description>
		<content:encoded><![CDATA[<p>Provocation? I do a lot of provication, but is this one of them? It&#8217;s really simple. I posted this from a user&#8217;s standpoint. Fact is that many web applications are written using GETs to manipulate data. To be honest, I&#8217;ve done that myself as well. Given this fact it is not safe to use GWA right now. Agree?</p>
<p>Or do you feel that users should install GWA to let put massive presure on the shoulders of developers, to fix their software.</p>
<p>Personally, my strategy would be this: 1) Warn, get your data safe. 2) Fix it.</p>
<p>Edit: I just read the BitWorking.org post and I get your point better now. Still don&#8217;t see how this is provocation, though. Partial look at the whole picture, sure. But to be honest, I wasn&#8217;t so aware of the badness of using GETs for this purpose until yesterday.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Koranteng Ofosu-Amaah</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3894</link>
		<dc:creator>Koranteng Ofosu-Amaah</dc:creator>
		<pubDate>Sun, 08 May 2005 10:44:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3894</guid>
		<description>Zef,

You're forcing me to decloak and delurk after 10 months. Was this your intention? I've noticed a little more provocation in your writing of late.

Come on here, tell me that one isn't going to need to have &lt;a href="http://koranteng.blogspot.com/2005/03/rest-intervention.html"&gt;a REST intervention&lt;/a&gt; or &lt;a href="http://lists.xml.org/archives/xml-dev/200504/msg00244.html"&gt;Inquisition&lt;/a&gt; as the case may be.

There is an &lt;a href="http://www.w3.org/TR/webarch/"&gt;architecture to the World Wide Web&lt;/a&gt;. 

Truly.

Really.

I kid you not, there is an &lt;span style="font-weight: bold;"&gt;architecture&lt;/span&gt; to this messy thing that we live on. This architecture was worked out in blood, sweat and tears (and a lot of fun during the dot com boom) over the past 14 years in countless mailing lists, with countless dear lessons learned.&lt;br&gt; &lt;br&gt; Think about the HTTP spec, I know that nobody reads RFCs these days but people have been warned about this. Constantly and repeatedly.

HTTP GET should be &lt;span style="font-weight: bold;"&gt;safe and not have side-effects&lt;/span&gt;. &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html"&gt;Idempotency of GET&lt;/a&gt; is highlighted upfront as a Best Current Practice.

If you follow the web style, if you internalize its lessons,&#160; You would know that you should use the right verbs and when. You will know instinctively that you should give visibility to intermediaries. You would that you that your application is broken and your users will suffer because for short term expediency.

Read Joel Spolsky on &lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;Leaky Abstractions&lt;/a&gt;. Let's not fight against the underlying architecture; let's understand what we're building on. The tradeoffs that were made in the complex system that is the web were not made without care.

A caching intermediary like Google's Web accelerator should be fair game. Caches are used everywhere in the internet and there were a lot of tradeoffs that were made in the architecture to accomodate them. 

Almost all the differences betweeen HTTP 1.0 and HTTP 1.1 relate to this issue of giving visibilty to intermediaries. Berners-Lee prototype was turned into the "product" we know by repeated contact with the real world. 

The Apache project, the Roy Fieldings of the world were deep in that mix making sure that the right thing was done.

&lt;a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/top.htm"&gt;Architectural Styles and the Design of Network-based Software Architectures&lt;/a&gt; is a big thing to digest but every software developer should read it and take away even the elevator pitch version.

Obviously best practices have have to be evangelized but I can't say that wasn't done. Some simply thought that this was obvious.

Placing a cache closer to the user which is what GWA is in effect is simply doing what Akamai have done. And it makes sense, caches should be as close to the user as possible, the benefits to the user in terms of the interaction experience are obvious.&lt;br&gt; &lt;br&gt; I know that down at the ground level, one might be a designing a web site and the client might want prettified links instead of those unloved html buttons. The core of web user interfaces are not sexy yet they work and users understand it. The visual cues about what may or may not be safe are well known. 

As application developers we should ask for better forms, we should be demanding of browser makers things like XForms or Web Forms 2.0 to make sure that we can go beyond the kind of stilted usability that we currently have. Our users would appreciate it our efforts in that vein but for now, they know what to expect. Until then application developers should push back when we are told to "do the wrong thing".

Joe Gregario thinks of it as a parable of parenting lessons writ large on the web &lt;br&gt; &lt;br&gt; &lt;a href="http://bitworking.org/news/I_m_sorry__I_can_t_kiss_it_and_make_it_better_"&gt;I'm sorry, I can't kiss it and make it better.&lt;/a&gt;

Read him and ponder.

I think he's right.

&lt;a href="http://www.bloglines.com/blog/amaah?id=28"&gt;Cross-posted&lt;/a&gt; on my scratch-pad.</description>
		<content:encoded><![CDATA[<p>Zef,</p>
<p>You&#8217;re forcing me to decloak and delurk after 10 months. Was this your intention? I&#8217;ve noticed a little more provocation in your writing of late.</p>
<p>Come on here, tell me that one isn&#8217;t going to need to have <a href="http://koranteng.blogspot.com/2005/03/rest-intervention.html">a REST intervention</a> or <a href="http://lists.xml.org/archives/xml-dev/200504/msg00244.html">Inquisition</a> as the case may be.</p>
<p>There is an <a href="http://www.w3.org/TR/webarch/">architecture to the World Wide Web</a>. </p>
<p>Truly.</p>
<p>Really.</p>
<p>I kid you not, there is an <span style="font-weight: bold;">architecture</span> to this messy thing that we live on. This architecture was worked out in blood, sweat and tears (and a lot of fun during the dot com boom) over the past 14 years in countless mailing lists, with countless dear lessons learned.</p>
<p> Think about the HTTP spec, I know that nobody reads RFCs these days but people have been warned about this. Constantly and repeatedly.</p>
<p>HTTP GET should be <span style="font-weight: bold;">safe and not have side-effects</span>. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">Idempotency of GET</a> is highlighted upfront as a Best Current Practice.</p>
<p>If you follow the web style, if you internalize its lessons,&nbsp; You would know that you should use the right verbs and when. You will know instinctively that you should give visibility to intermediaries. You would that you that your application is broken and your users will suffer because for short term expediency.</p>
<p>Read Joel Spolsky on <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">Leaky Abstractions</a>. Let&#8217;s not fight against the underlying architecture; let&#8217;s understand what we&#8217;re building on. The tradeoffs that were made in the complex system that is the web were not made without care.</p>
<p>A caching intermediary like Google&#8217;s Web accelerator should be fair game. Caches are used everywhere in the internet and there were a lot of tradeoffs that were made in the architecture to accomodate them. </p>
<p>Almost all the differences betweeen HTTP 1.0 and HTTP 1.1 relate to this issue of giving visibilty to intermediaries. Berners-Lee prototype was turned into the &#8220;product&#8221; we know by repeated contact with the real world. </p>
<p>The Apache project, the Roy Fieldings of the world were deep in that mix making sure that the right thing was done.</p>
<p><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/top.htm">Architectural Styles and the Design of Network-based Software Architectures</a> is a big thing to digest but every software developer should read it and take away even the elevator pitch version.</p>
<p>Obviously best practices have have to be evangelized but I can&#8217;t say that wasn&#8217;t done. Some simply thought that this was obvious.</p>
<p>Placing a cache closer to the user which is what GWA is in effect is simply doing what Akamai have done. And it makes sense, caches should be as close to the user as possible, the benefits to the user in terms of the interaction experience are obvious.</p>
<p> I know that down at the ground level, one might be a designing a web site and the client might want prettified links instead of those unloved html buttons. The core of web user interfaces are not sexy yet they work and users understand it. The visual cues about what may or may not be safe are well known. </p>
<p>As application developers we should ask for better forms, we should be demanding of browser makers things like XForms or Web Forms 2.0 to make sure that we can go beyond the kind of stilted usability that we currently have. Our users would appreciate it our efforts in that vein but for now, they know what to expect. Until then application developers should push back when we are told to &#8220;do the wrong thing&#8221;.</p>
<p>Joe Gregario thinks of it as a parable of parenting lessons writ large on the web </p>
<p> <a href="http://bitworking.org/news/I_m_sorry__I_can_t_kiss_it_and_make_it_better_">I&#8217;m sorry, I can&#8217;t kiss it and make it better.</a></p>
<p>Read him and ponder.</p>
<p>I think he&#8217;s right.</p>
<p><a href="http://www.bloglines.com/blog/amaah?id=28">Cross-posted</a> on my scratch-pad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Duursma</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3893</link>
		<dc:creator>Jacob Duursma</dc:creator>
		<pubDate>Sun, 08 May 2005 07:56:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3893</guid>
		<description>I can't see the problem. Read operations are no problem. Create operations are no problem as this always (well unless you are mad) via forms, the same for Updates. The only thing that might be destructive and not use forms is delete. But since any sane application uses a confirmation of deletion this should n't be a problem. Unless offcourse you decide that Javascript is the solution to all your problems. In that case you were already mad anyway and your application would either not ask for confirmation or it wouldn't delete when Javascript is turned off.

Javascript is there to complement the server side validation, not to replace it.</description>
		<content:encoded><![CDATA[<p>I can&#8217;t see the problem. Read operations are no problem. Create operations are no problem as this always (well unless you are mad) via forms, the same for Updates. The only thing that might be destructive and not use forms is delete. But since any sane application uses a confirmation of deletion this should n&#8217;t be a problem. Unless offcourse you decide that Javascript is the solution to all your problems. In that case you were already mad anyway and your application would either not ask for confirmation or it wouldn&#8217;t delete when Javascript is turned off.</p>
<p>Javascript is there to complement the server side validation, not to replace it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cgriego</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3892</link>
		<dc:creator>cgriego</dc:creator>
		<pubDate>Sun, 08 May 2005 06:37:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3892</guid>
		<description>I appreciate the idea of non-destructive GETs, but it really isn't viable until text links can be used for POSTs. One idea is to have the link point to a confirmation screen, but use javascript with confirm() and if yes, then load the URL with a &#038;jsconfirm=1 so GWA and prefetching won't load that URL.</description>
		<content:encoded><![CDATA[<p>I appreciate the idea of non-destructive GETs, but it really isn&#8217;t viable until text links can be used for POSTs. One idea is to have the link point to a confirmation screen, but use javascript with confirm() and if yes, then load the URL with a &#038;jsconfirm=1 so GWA and prefetching won&#8217;t load that URL.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jake</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3891</link>
		<dc:creator>Jake</dc:creator>
		<pubDate>Sun, 08 May 2005 06:31:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3891</guid>
		<description>I agree with Mark. It's never smart to leave confirmation of actions such as deleting things to javascript alone. Link to a delete script which confirms via a form. That way, people who've disabled Javascript or run GWA won't be left out in the cold.</description>
		<content:encoded><![CDATA[<p>I agree with Mark. It&#8217;s never smart to leave confirmation of actions such as deleting things to javascript alone. Link to a delete script which confirms via a form. That way, people who&#8217;ve disabled Javascript or run GWA won&#8217;t be left out in the cold.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Wolf</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3890</link>
		<dc:creator>The Wolf</dc:creator>
		<pubDate>Sun, 08 May 2005 02:49:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3890</guid>
		<description>Mark, you have a point but I feel that forms are a very ugly solution.</description>
		<content:encoded><![CDATA[<p>Mark, you have a point but I feel that forms are a very ugly solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark IJbema</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3889</link>
		<dc:creator>Mark IJbema</dc:creator>
		<pubDate>Sun, 08 May 2005 02:20:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3889</guid>
		<description>@The Wolf: yes, no i don't. I know 99% of the sites has xss holes, 50% has sql injection holes. So i guess they won't fix this either. Every sane web developer would though.</description>
		<content:encoded><![CDATA[<p>@The Wolf: yes, no i don&#8217;t. I know 99% of the sites has xss holes, 50% has sql injection holes. So i guess they won&#8217;t fix this either. Every sane web developer would though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marten Veldthuis</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3888</link>
		<dc:creator>Marten Veldthuis</dc:creator>
		<pubDate>Sat, 07 May 2005 15:01:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3888</guid>
		<description>Yes, that's exactly what should happen. Not only does that solve this, it's also a usability improvement, where the user can differentiate between common links which will show him new information, and forms which change stuff.</description>
		<content:encoded><![CDATA[<p>Yes, that&#8217;s exactly what should happen. Not only does that solve this, it&#8217;s also a usability improvement, where the user can differentiate between common links which will show him new information, and forms which change stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Wolf</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3887</link>
		<dc:creator>The Wolf</dc:creator>
		<pubDate>Sat, 07 May 2005 14:43:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3887</guid>
		<description>Mark, so you expect everyone to use a form to post an action to the server instead of linking to it? No thank you.</description>
		<content:encoded><![CDATA[<p>Mark, so you expect everyone to use a form to post an action to the server instead of linking to it? No thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark IJbema</title>
		<link>http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3886</link>
		<dc:creator>Mark IJbema</dc:creator>
		<pubDate>Sat, 07 May 2005 11:41:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.zefhemel.com/archives/2005/05/07/google-web-accelerator-considered-harmful#comment-3886</guid>
		<description>Though i agree with your advise i must comment that it's the fault of the webapplications in question and not of GWA, since GET shouldn't be used for actions that change the state of the application. I'm quite glad this happened, now people start thinking about it. Why am i glad? Because it's also a great security hole. If GWA can change something i can also send you an aim message to your iChat which does the same...

Seriously, post for well ... posting stuff, and get for getting stuff. It's not that hard, is it?</description>
		<content:encoded><![CDATA[<p>Though i agree with your advise i must comment that it&#8217;s the fault of the webapplications in question and not of GWA, since GET shouldn&#8217;t be used for actions that change the state of the application. I&#8217;m quite glad this happened, now people start thinking about it. Why am i glad? Because it&#8217;s also a great security hole. If GWA can change something i can also send you an aim message to your iChat which does the same&#8230;</p>
<p>Seriously, post for well &#8230; posting stuff, and get for getting stuff. It&#8217;s not that hard, is it?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
