<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Wishful Coding</title>
	<atom:link href="http://pepijndevos.nl/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://pepijndevos.nl</link>
	<description>Didn&#039;t you ever wish your computer understood you?</description>
	<lastBuildDate>Mon, 08 Mar 2010 11:17:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on How to install Python/web.py on a shared host by Ward</title>
		<link>http://pepijndevos.nl/2010/03/install-python-on-shared-host/comment-page-1/#comment-66</link>
		<dc:creator>Ward</dc:creator>
		<pubDate>Mon, 08 Mar 2010 11:17:12 +0000</pubDate>
		<guid isPermaLink="false">http://pepijndevos.nl/?p=268#comment-66</guid>
		<description>You can always take a look at ramhost.us VPS-servers, they are $3 / month and you can install whatever you like.
If you take a look at most shared hosting a VPS is cheaper there, and it&#039;s great quality.</description>
		<content:encoded><![CDATA[<p>You can always take a look at ramhost.us VPS-servers, they are $3 / month and you can install whatever you like.<br />
If you take a look at most shared hosting a VPS is cheaper there, and it&#8217;s great quality.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Cross-domain caching by Pepijn de Vos</title>
		<link>http://pepijndevos.nl/2010/02/cross-domain-caching/comment-page-1/#comment-58</link>
		<dc:creator>Pepijn de Vos</dc:creator>
		<pubDate>Wed, 24 Feb 2010 19:59:12 +0000</pubDate>
		<guid isPermaLink="false">http://pepijndevos.nl/?p=210#comment-58</guid>
		<description>Dit bericht gaat over het opslaan van data van websites, zodat je ze niet elke keer opnieuw hoeft te laden, dat noem je caching.

De bedoeling is dat ik dingen schrijf over computers wat ik tegen kom, en dat mensen die dat interessant vinden dat dan kunnen lezen en er op reageren.</description>
		<content:encoded><![CDATA[<p>Dit bericht gaat over het opslaan van data van websites, zodat je ze niet elke keer opnieuw hoeft te laden, dat noem je caching.</p>
<p>De bedoeling is dat ik dingen schrijf over computers wat ik tegen kom, en dat mensen die dat interessant vinden dat dan kunnen lezen en er op reageren.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Cross-domain caching by Jean-Pierre de Vos</title>
		<link>http://pepijndevos.nl/2010/02/cross-domain-caching/comment-page-1/#comment-57</link>
		<dc:creator>Jean-Pierre de Vos</dc:creator>
		<pubDate>Wed, 24 Feb 2010 17:59:19 +0000</pubDate>
		<guid isPermaLink="false">http://pepijndevos.nl/?p=210#comment-57</guid>
		<description>Hoi Pepijn,
Kun je aan een domme oom die digibeet is uitleggen waar dit over gaat want hoewel ik de engelse taal toch redelijk kan volgen geld dat absoluut niet voor het bezoek aan deze grappig uitziende maar voor mij onbegrijpelijke site.Wat is de bedoeling.Jean-Pierre</description>
		<content:encoded><![CDATA[<p>Hoi Pepijn,<br />
Kun je aan een domme oom die digibeet is uitleggen waar dit over gaat want hoewel ik de engelse taal toch redelijk kan volgen geld dat absoluut niet voor het bezoek aan deze grappig uitziende maar voor mij onbegrijpelijke site.Wat is de bedoeling.Jean-Pierre</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Cross-domain caching by Peter Robinett</title>
		<link>http://pepijndevos.nl/2010/02/cross-domain-caching/comment-page-1/#comment-53</link>
		<dc:creator>Peter Robinett</dc:creator>
		<pubDate>Sun, 21 Feb 2010 01:43:48 +0000</pubDate>
		<guid isPermaLink="false">http://pepijndevos.nl/?p=210#comment-53</guid>
		<description>There is no set-in-stone standard on what seed an ETag should be generated from. You are correct that it is often encouraged to use the modified date but I actually like using the entire file instead as the seed (many languages have functions that will do this for you), as we already have If-Modified-Since for time-based caching tests. And since the whole point of hashing algorithms such as MD5 and, better yet, SHA1 is that they give you the same output for the same input, I think ETag basically does what you want. God knows that people are good enough at messing up existing HTTP headers, so I think it&#039;s more a matter of implementors putting their feet down and building good systems rather than defining a new standard header.

So, you could start to implement this today. Just have your HTTP client (web browser or what have you) associated ETags not only to entire URLs but also to just the final, file portion. When visiting a new site first send check ETags for cached files based upon the site&#039;s file&#039;s full URL, then try an ETag for another site&#039;s URL whose file name matches, and finally only download the file if the first two options have failed.

However, I wouldn&#039;t recommend doing this, as this is rife for abuse and is essentially a cross site scripting attack. Just think about malicious sites sending out malicious files associated with known good hashes (e.g. malicious code backed by the ETag of a known jQuery release), only for users to execute the cached, bad code when visiting a banking website. Of course, if you know how the ETag is generated the client can recalculate the hash against the file you&#039;ve received and throw out the file if they don&#039;t match...

All in all, it&#039;s an interesting though and might be really interesting to see in action.</description>
		<content:encoded><![CDATA[<p>There is no set-in-stone standard on what seed an ETag should be generated from. You are correct that it is often encouraged to use the modified date but I actually like using the entire file instead as the seed (many languages have functions that will do this for you), as we already have If-Modified-Since for time-based caching tests. And since the whole point of hashing algorithms such as MD5 and, better yet, SHA1 is that they give you the same output for the same input, I think ETag basically does what you want. God knows that people are good enough at messing up existing HTTP headers, so I think it&#8217;s more a matter of implementors putting their feet down and building good systems rather than defining a new standard header.</p>
<p>So, you could start to implement this today. Just have your HTTP client (web browser or what have you) associated ETags not only to entire URLs but also to just the final, file portion. When visiting a new site first send check ETags for cached files based upon the site&#8217;s file&#8217;s full URL, then try an ETag for another site&#8217;s URL whose file name matches, and finally only download the file if the first two options have failed.</p>
<p>However, I wouldn&#8217;t recommend doing this, as this is rife for abuse and is essentially a cross site scripting attack. Just think about malicious sites sending out malicious files associated with known good hashes (e.g. malicious code backed by the ETag of a known jQuery release), only for users to execute the cached, bad code when visiting a banking website. Of course, if you know how the ETag is generated the client can recalculate the hash against the file you&#8217;ve received and throw out the file if they don&#8217;t match&#8230;</p>
<p>All in all, it&#8217;s an interesting though and might be really interesting to see in action.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Cross-domain caching by Pepijn de Vos</title>
		<link>http://pepijndevos.nl/2010/02/cross-domain-caching/comment-page-1/#comment-52</link>
		<dc:creator>Pepijn de Vos</dc:creator>
		<pubDate>Sat, 20 Feb 2010 18:56:54 +0000</pubDate>
		<guid isPermaLink="false">http://pepijndevos.nl/?p=210#comment-52</guid>
		<description>ETags are based on modified date and other local stuff, as per the wiki link you included.

I do not know anything about hashing algorithms, but if Ubuntu can provide a MD5 sum on their website to verify the download, I&#039;d think MD5 sums can be generated in a persistent manner.</description>
		<content:encoded><![CDATA[<p>ETags are based on modified date and other local stuff, as per the wiki link you included.</p>
<p>I do not know anything about hashing algorithms, but if Ubuntu can provide a MD5 sum on their website to verify the download, I&#8217;d think MD5 sums can be generated in a persistent manner.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Cross-domain caching by Peter Robinett</title>
		<link>http://pepijndevos.nl/2010/02/cross-domain-caching/comment-page-1/#comment-51</link>
		<dc:creator>Peter Robinett</dc:creator>
		<pubDate>Sat, 20 Feb 2010 17:12:38 +0000</pubDate>
		<guid isPermaLink="false">http://pepijndevos.nl/?p=210#comment-51</guid>
		<description>Pepijn, ETags are basically what you&#039;re talking about, a hash that the HTTP client can pass to the server to see if they&#039;ve changed: http://en.wikipedia.org/wiki/HTTP_ETag. However, there is no guarantee that ETags are calculated the same from one server to another, meaning that using them across domains would be very risky. In general, even if you had a standard to require people to all use the same hashing algorithm, there would be too many opportunities for errors, whether accidental or deliberate.</description>
		<content:encoded><![CDATA[<p>Pepijn, ETags are basically what you&#8217;re talking about, a hash that the HTTP client can pass to the server to see if they&#8217;ve changed: <a href="http://en.wikipedia.org/wiki/HTTP_ETag" rel="nofollow">http://en.wikipedia.org/wiki/HTTP_ETag</a>. However, there is no guarantee that ETags are calculated the same from one server to another, meaning that using them across domains would be very risky. In general, even if you had a standard to require people to all use the same hashing algorithm, there would be too many opportunities for errors, whether accidental or deliberate.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
