<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arcane Domain &#187; Web, Internet, Computing</title>
	<atom:link href="http://blog.arcanedomain.com/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.arcanedomain.com</link>
	<description>Noah Mendelsohn's Blog</description>
	<lastBuildDate>Sat, 28 Jan 2012 23:13:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Does the New York Times paywall misuse HTTP?</title>
		<link>http://blog.arcanedomain.com/2011/12/does-the-new-york-times-paywall-misuse-http/</link>
		<comments>http://blog.arcanedomain.com/2011/12/does-the-new-york-times-paywall-misuse-http/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 20:31:49 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=672</guid>
		<description><![CDATA[Many people have commented on the pros and cons of the New York Times paywall. Most of these comments debate the effectiveness of the paywall in meeting the Times&#8217; financial goals, discuss ways in which users will circumvent the paywall, etc. Here I&#8217;d like to explore a different issue: it seems to me that the [...]]]></description>
			<content:encoded><![CDATA[<p>Many people have commented on the pros and cons of the <a title="Letter announcing NYT paywall" href="http://www.nytimes.com/2011/03/28/opinion/l28times.html?_r=1">New York Times paywall</a>. Most of these comments debate the effectiveness of the paywall in meeting the Times&#8217; financial goals, discuss ways in which users will circumvent the paywall, etc. Here I&#8217;d like to explore a different issue: it seems to me that the paywall, as currently implemented, violates the specifications for the Web&#8217;s HTTP protocol. Interestingly, my concern is not with the part of the system that charges readers, it&#8217;s with the part the tries to count the <a title="Times FAQ on 20 free pages/month" href="http://www.nytimes.com/content/help/account/purchases/subscriptions-and-purchases.html#digital-sub-counted-content">20 free pages allowed per month</a>.</p>
<p><span id="more-672"></span>One of the important features of the <a title="RFC 2616" href="http://www.w3.org/Protocols/rfc2616/rfc2616.html">HTTP specification</a> is that <a title="RFC 2616 GET specification" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3">GET</a>, the operation that is used for almost all attempts to retrieve a Web page, has some very carefully crafted semantics. In particular, GET is inappropriate for any request that, directly or as a side effect, updates the state of a server. What&#8217;s an update? Well, taking money out of your bank account, confirming a plane reservation, or, in my opinion anyway, using up one of your 20 free New York Times page accesses. The way the HTTP specification puts this is:</p>
<blockquote><p>In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered &#8220;safe&#8221;. This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.</p></blockquote>
<p>Exactly. I really want to be warned before I access a page that&#8217;s coming out of my monthly quota, and that doesn&#8217;t happen today. Furthermore, it&#8217;s perfectly legitimate for software to follow links for me without me even asking. Consider an e-mail reader that might offer to download for me local copies of any page linked from any e-mails I might have received, perhaps so that I can read my correspondence while I&#8217;m traveling. Such an agent is unlikely to be aware that such accesses can quickly deplete my NYT allowance, and perhaps for pages I never intended to read anyway.</p>
<p>Does this actually bother anyone in practice? Yes. In fact, I think this is the technical explanation for one of the most frustrating aspects of the paywall. There are all sorts of situations in which one winds up unintentionally clicking on a link to an NYT article, only to discover after the fact that yet another &#8220;free&#8221; access has been accounted. This happens when links are sent using URL shorteners, when the link text or image does not show the URL, or when the user neglects to read the target URI carefully before following a link.</p>
<p>So, what should the NYT do if they want to continue to offer free articles, and also follow Web architecture? One acceptable answer would be: the response to a GET request for an article that counts against the &#8220;free&#8221; limit should redirect to a simple Web form that says:</p>
<blockquote><p>&#8220;You are about to use one of your 20 free accesses to the New York Times for this month. If you wish to go ahead, click the button below&#8221;.</p></blockquote>
<p>The button would, of course, do an HTTP POST,  to properly account the access before returning the article.</p>
<p>To minimize the need to go through such prompts repeatedly, links <em>from</em> NYT pages to other &#8220;free&#8221; NYT content could use Javascript onClick tricks to directly retrieve using POST, without first going through the prompt page. Ideally, some less disruptive indication, such as a popup tooltip, could warn in advance if an access would count further against a user&#8217;s quota. With suitable use of cookies, it would also be possible for users to set preferences to disable such warnings.</p>
<p>As it stands, the paywall misuses HTTP, and the consequences are indeed frustrating to users. Furthermore, if too many sites start misusing GET, then it will become more difficult for us all to explore the Web without worrying about the consequences for each link we follow, and it may also be more difficult for engines like the Google crawler to retrieve Web content.</p>
<p>By the way, the <a title="TAG Home Page" href="http://www.w3.org/2001/tag/">W3C Technical Architecture Group</a>, which I chair, has written about safe use of HTTP in its finding:  <a title="TAG Finding on proper use of GET and POST" href="http://www.w3.org/2001/tag/doc/whenToUseGet.html">URIs, Addressability, and the use of HTTP GET and POST</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2011/12/does-the-new-york-times-paywall-misuse-http/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Detecting ISPs that violate network neutrality</title>
		<link>http://blog.arcanedomain.com/2011/08/you-can-detect-isps-that-violate-network-neutrality/</link>
		<comments>http://blog.arcanedomain.com/2011/08/you-can-detect-isps-that-violate-network-neutrality/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 16:47:58 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=661</guid>
		<description><![CDATA[Dan Kaminsky has a really interesting talk at Chaos Communication Camp 2011 showing how to quite reliably detect ISPs that artificially delay traffic to particular sites (video of Dan&#8217;s talk). Note that the first 2/3 of the talk is a very interesting exploration of the security characteristics of Bitcoin, also showing how the Bitcoin database [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Dan Kaminsky's blog" href="http://dankaminsky.com/">Dan Kaminsky</a> has a really interesting talk at <a title="Chaos Commuincation Camp" href="http://media.ccc.de/">Chaos Communication Camp 2011</a> showing how to quite reliably detect ISPs that artificially delay traffic to particular sites (<a title="Video of Dan Kaminsky Talk" href="http://media.ccc.de/browse/conferences/camp2011/cccamp11-4555-black_ops_of_tcpip_2011-en.html" target="_blank">video of Dan&#8217;s talk</a>).</p>
<p>Note that the first 2/3 of the talk is a very interesting exploration of the security characteristics of Bitcoin, also showing how the Bitcoin database can be used as a peristent shared store. The latter third of the talk introduces Dan&#8217;s tools for detecting artificial delays introduced by ISPs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2011/08/you-can-detect-isps-that-violate-network-neutrality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documents in applications</title>
		<link>http://blog.arcanedomain.com/2011/03/identifying-documents-in-web-applications/</link>
		<comments>http://blog.arcanedomain.com/2011/03/identifying-documents-in-web-applications/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 23:45:03 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=570</guid>
		<description><![CDATA[It has become fashionable to divide Web resources into two broad categories: each resource is either a document, rendered primarily in HTML, or an AJAX-style  Web application that uses Javascript to facilitate very dynamic interaction, navigation and information retrieval.  My purpose here is to argue that we need to be more careful, that many AJAX [...]]]></description>
			<content:encoded><![CDATA[<p>It has become fashionable to divide Web resources into two broad categories: each resource is either a document, rendered primarily in HTML, or an AJAX-style  Web application that uses Javascript to facilitate very dynamic interaction, navigation and information retrieval.  My purpose here is to argue that we need to be more careful, that many AJAX applications in fact provide access to documents after all, and that the Web would be much more robust if we took some care to identify and access those documents using the same sorts of URIs that we use for other Web documents.</p>
<p><span id="more-570"></span></p>
<p><strong><em>Background: the #! fuss</em></strong></p>
<p>I&#8217;ve been thinking about all this for quite some time, but the recent fuss over so-called &#8220;hash-bang&#8221; (#!) URIs raises the stakes considerably. As <a title="Arcane domain posting endorsing Jeni's #! post" href="http://blog.arcanedomain.com/2011/03/jenis-terrific-post-on/" target="_self">previously noted</a>, Jeni Tennison has posted <a title="Jeni's post on #!" href="http://www.jenitennison.com/blog/node/154" target="_self">a terrific overview</a>, with links to contributions from many others. If you&#8217;re not up on all that, please read those postings first.</p>
<p><strong><em>Three examples </em></strong></p>
<p>Consider three Web applications, each of which makes extensive use of Javascript.</p>
<ol>
<li>The simulator is an interactive environment that simulates, we&#8217;ll say, driving a race car. You launch the application by navigating to its URI, and then Javascript takes over, providing an interactive simulation of the car driving around a race course, while giving you control over the car&#8217;s acceleration and direction. Just to make the example more clearly Ajax, we can assume that the application periodically goes out to various Web sites to retrieve data to be integrated into the simulation (weather information, etc.)</li>
<li>The résumé browser is similar in style to AJAX implementations of GMail or Yahoo mail, but its purpose is to let the user browse through collections of job application résumés. The initial screen provides a list with one line per applicant, but the user can request to see individual résumés as well.  Under the covers, all the usual Ajax tricks are being used to pre-cache résumés, to provide fluid interactivity for the user, etc. Users require the ability to email and post links to the individual résumés.</li>
<li>The final example is the full (as opposed to mobile) implementation of <a title="Google Maps" href="http://maps.google.com" target="_blank">Google Maps</a>. Like the others, this is an Ajax application. Users can retrieve maps for most any part of the world, zoom, pan, and annotate the maps with points of interest or driving directions. Crucially, an interface is provided that gives a URI (with no # in the syntax!) for the current location, zoom level, annotations, etc. As with the résumé application, these URIs can be emailed, linked from other Web pages, etc., and indeed this is a very valuable capability that is often exploited by users.</li>
</ol>
<p><strong><em>Resource identification</em></strong></p>
<p>With respect to URIs and resource identification, the résumé and simulator applications are quite different in character. Indeed, if we ignore implementation concerns, the résumé browser closely resembles a traditional, non-Ajax, document-based Web site. Users have every reason to want each résumé to be integrated into the Web as a first class resource with its own stable URI, per the <a title="Web Arch. Document" href="http://www.w3.org/TR/webarch/" target="_blank">Architecture of the World Wide Web</a>&#8216;s mandate to <a title="Identify with URIs." href="http://www.w3.org/TR/webarch/#pr-use-uris" target="_self">Identify with URIs</a>. It&#8217;s very important that people be able to email links to these résumés, put links to them on other Web pages, etc. Ideally, non-Javascript user agents should show the same résumés as Javascript-enabled browsers (albeit with less fluid navigation). Furthermore, it&#8217;s very useful if crawlers and other server-side agents can find and retrieve the documents, and for the FWD/BACK buttons in the browser to work as they would in a non-Ajax implementation.</p>
<p>Even though the implementation is very similar in its use of Javascript, the simulator is very different in character. There is no sense in which the user is navigating through a succession of pages.  Maybe or maybe not the application would find some use for FWD/BACK, or could provide links to intermediate simulation states that might usefully be emailed, but in any case there seems little need that such links be crawlable, or that non-Javascript user agents do much with them.</p>
<p><em>My main concern here is that too few Ajax applications take the  trouble to meet the goals set out for the résumé browser, even when they  could.</em> With some hand waving about how the Web has moved past its old  static past, and making some quite valid points regarding what happens  when you update the address bar in typical browsers (you tend to kick  off a page retrieval if anything other than the fragment identifier is  touched), the designers of these applications often punt on providing  useful URIs for the individual documents managed by their applications.  Furthermore, if such identifiers are provided, they are often  distinguished only in the fragment identifier, resulting in all the  disadvantages noted by Jeni, Tim Bray, and others. For example, the  resources tend not to be accessible from non-Javascript  agents, rather  ugly kludges are required if crawling is to be enabled at all, etc.</p>
<p>There are two main points I&#8217;m trying to make in this note. The first is:</p>
<p style="padding-left: 30px;"><span style="color: #3366ff;"><strong>Use  of AJAX implementation technology is not a sufficient excuse for  failing to provide first class URI identification for documents on the  Web</strong></span></p>
<p>If you&#8217;re building a simulator, this advice may not apply; if you&#8217;re building the résumé browser, then provide URIs for each  résumé, and probably for each sorted collection of résumés, etc. Ensure that those URIs work, at least to display the referenced document, when accessed with non-Javascript enabled user agents.</p>
<p><strong><em>Documents when possible</em></strong></p>
<p>Now let&#8217;s consider the <a title="Google Maps" href="http://maps.google.com" target="_blank">Google Maps</a> example. What&#8217;s interesting about it is that the Google engineers could have easily made the claim that the maps application was like the simulator, provided a single URI for the entire application, and stopped there. They might, to go a bit further, have done some local kludging to enable FWD/BACK to work, while still not exposing URIs for the different views of the map (or if you prefer, for the different maps.)</p>
<p>In fact, <em>Google Maps is valuable in part because Google did take the trouble to model their application as a collection of document-like Web resources</em>, and in fact to create URIs that work equally well in Javascript- and non-Javascript enabled user agents. To do this, they created URIs with no fragments (I.e. no #) for each view of the map; the compromise, at least for now, is that these URIs do not show up automatically in the address bar, but are available from a separate link button supported by the Javascript.  These URIs have some interesting characteristics:</p>
<ul>
<li>They are understood by both server and client: when a request is received from a non-Javascript enabled user agent (often from a mobile device), the server interprets the entire URI and sends a relatively static image of the map as a response; when the <em>same</em> URI is received from a Javascript agent, the Ajax implementation is used. Interpretation of query parameters is (potentially) distributed between the server and the client, and that division of labor can change without affecting the URIs.</li>
<li>Because the same URI is used in all cases, a link can be created on a Javascript-enabled client, emailed to a non-Javascript client, and the right thing happens. Contrast that with <a title="Twitter !# URI" href="http://twitter.com/#!/noahmendelsohn" target="_self">http://twitter.com/#!/noahmendelsohn</a> vs <a title="Non #! URI for Noah" href="http://twitter.com/noahmendelsohn" target="_self">http://twitter.com/noahmendelsohn</a>,  which are provided by Twitter for Javascript and non-Javascript clients respectively. The former does nothing useful if emailed to a non-Javascript client.  Pointing again to the advice given in Web Arch  <a title="Web arch on URI aliases" href="http://www.w3.org/TR/webarch/#avoid-uri-aliases" target="_self">Avoid URI aliases</a>: <em>&#8220;The problem with aliases is that if half of the neighborhood points to one URI for a given resource, and the other half points to a second, different URI for that same resource, the neighborhood is divided&#8221;</em> The #! forms also break the <a title="Tag finding on Self-describing Web" href="http://www.w3.org/2001/tag/doc/selfDescribingDocuments.html" target="_self">Self-describing Web</a>.</li>
</ul>
<p>Google Maps shows the great value of using the document abstraction when you reasonably can. It wasn&#8217;t the easiest choice for that application, but the benefits are very significant. In spite of being very fluid and interactive, each state of the Google Map is modeled as a document with its own URI. You can email links to particular maps, to driving directions for your house, or to maps annotated with places of interest. Each such document is available, <em>using the same URI</em>, from the non-Javascript implementations, and in principle, server agents can crawl links to the different maps (e.g. to find maps that are popular).</p>
<p>So, using Google Maps as my poster child:</p>
<p style="padding-left: 30px;"><strong><span style="color: #3366ff;">Where practical, model your application as a collection of documents, each with its own URI</span></strong></p>
<p><em><strong>Syntax: # or ? or neither<br />
</strong></em></p>
<p style="padding-left: 30px;"><em>Note: this section was updated on 10 March 2010 based on the important observation from Jeni that <a title="Jeni's note to www-tag pointing out that there's too much emphasis on ? in my original formulation" href="http://lists.w3.org/Archives/Public/www-tag/2011Mar/0071.html" target="_self">the query component isn&#8217;t necessarily more important than the hierarchical path as an alternative to # fragment syntax</a>.</em></p>
<p>I continue to have a general feeling that fragment syntax (#) has been over-emphasized in all this, and that identification using other parts of the URI, such as the path for hierarchical identification and/or the query string (with ?) for non-hierarchical may be preferable. Yes, for that to happen, we&#8217;ll have to get changes like <a href="http://www.w3.org/TR/html5/history.html#the-history-interface"><code>pushState()</code> and <code>changeState()</code></a> widely deployed, or maybe we&#8217;ll need other changes too. Still, from an architectural perspective, # seems somehow more fragile: until we ran unto address-bar update problems, fragments were used with documents to identify, well, fragments. Yes, with new media types we can do what we want, but in this case we don&#8217;t have a new media type, and the normative specifications make clear that <a title="Fragments in HTML 4" href="http://www.w3.org/TR/html401/intro/intro.html#h-2.1.2" target="_self">for text/html, fragments refer to anchors within the document</a>.</p>
<p>To be clear, I don&#8217;t think there&#8217;s any outright architectural barrier to server-side interpretation of fragment ids in cases where agents like crawlers happen to get hold of them, but of course, typical clients don&#8217;t send them to the server at all. Maybe we can find a way to use # that meets all the goals, and update the normative specs to support going that way. My guess is that, in the long term, avoiding fragments by using path and/or query is a better solution. Either way, we need to align the specs. with common practice.</p>
<p>Anyway, my main point is to  model things as documents where possible, and to give each document a unique, crawlable URI that works consistently at client and server.</p>
<p>Finally, I hope it&#8217;s clear that I am in no way discouraging Ajax implementations, whether for résumés, simulators, or maps. I don&#8217;t want to let Ajax be an excuse for building a Web full of documents that can&#8217;t be properly linked.</p>
<hr /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img style="border-width: 0;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" alt="Creative Commons License" /></a></p>
<p><span style="color: #993300;"><a rel="cc:attributionURL" href="http://blog.arcanedomain.com/2011/03/identifying-documents-in-web-applications"><em>Documents in applications</em></a> by Noah Mendelsohn is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2011/03/identifying-documents-in-web-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeni Tennison appointed to the TAG</title>
		<link>http://blog.arcanedomain.com/2011/03/jeni-tennison-appointed-to-the-tag/</link>
		<comments>http://blog.arcanedomain.com/2011/03/jeni-tennison-appointed-to-the-tag/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 01:25:50 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=582</guid>
		<description><![CDATA[When I said all those nice things about Jeni Tennison yesterday I was not yet aware that she had been appointed to join our W3C Technical Architecture Group. Well, now she has been. Terrific news for us and for the Web!]]></description>
			<content:encoded><![CDATA[<p>When I <a title="Jeni Tenison #! Arcane Domain post" href="http://blog.arcanedomain.com/2011/03/jenis-terrific-post-on/" target="_self">said all those nice things about Jeni Tennison</a> yesterday I was not yet aware that she had been appointed to join our <a title="TAG public page" href="http://www.w3.org/2001/tag/" target="_self">W3C Technical Architecture Group</a>. Well, <a title="Jeni Tennison announcement email" href="http://lists.w3.org/Archives/Public/www-tag/2011Mar/0039.html" target="_self">now she has been</a>. Terrific news for us and for the Web!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2011/03/jeni-tennison-appointed-to-the-tag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeni&#8217;s terrific post on #!</title>
		<link>http://blog.arcanedomain.com/2011/03/jenis-terrific-post-on/</link>
		<comments>http://blog.arcanedomain.com/2011/03/jenis-terrific-post-on/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 17:14:33 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=577</guid>
		<description><![CDATA[There are excellent introductions to the !# controversy available from Tim Bray (Broken links) and Mike Davies (Breaking the Web with hasb-bangs), but Jeni Tennison last night posted a truly remarkable, detailed and insightful analysis. Very, very highly recommended. I confess that I&#8217;m not entirely comfortable with her conclusion that &#8220;hash-bang URIs are an important [...]]]></description>
			<content:encoded><![CDATA[<p>There are excellent introductions to the !# controversy available from Tim Bray (<a title="Tim Bray on #!" href="http://www.tbray.org/ongoing/When/201x/2011/02/09/Hash-Blecch" target="_self">Broken links</a>) and Mike Davies (<a title="Mike Davies on Hash-bang" href="http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs" target="_self">Breaking the Web with hasb-bangs</a>), but <a title="Jeni Tennison Web site" href="http://www.jenitennison.com/consulting/index.html" target="_self">Jeni Tennison</a> last night posted <a title="Jeni T's article on !#" href="http://www.jenitennison.com/blog/node/154" target="_self">a truly remarkable, detailed and insightful analysis</a>. Very, very highly recommended. I confess that I&#8217;m not entirely comfortable with her conclusion that <em>&#8220;hash-bang URIs are an important pattern that will be around  for several years because they offer many benefits compared to their  alternatives&#8221;</em>. My own opinion is closer to: avoid these wherever possible, particularly for document-oriented content. Still, Jeni&#8217;s analysis is terrific, and she&#8217;s got good links to many other postings.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2011/03/jenis-terrific-post-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some interesting readings in Computer Science</title>
		<link>http://blog.arcanedomain.com/2011/01/some-interesting-readings-in-computer-science/</link>
		<comments>http://blog.arcanedomain.com/2011/01/some-interesting-readings-in-computer-science/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 15:20:55 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[History of computing]]></category>
		<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=551</guid>
		<description><![CDATA[I&#8217;ve just posted on the  main Arcane Domain Web site a short bibliography of Computer Science papers that I have found to be particularly worthwhile.  There&#8217;s no attempt here to be comprehensive or balanced. Rather, it&#8217;s a list of papers that I think are interesting, well written, of unusual historical significance, or just under-appreciated. A [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just posted on the  main Arcane Domain Web site a short <a title="Recommended CS Papers" href="http://www.arcanedomain.com/CSReadings.html" target="_self">bibliography</a> of Computer Science papers that I have found to be particularly worthwhile.  There&#8217;s no attempt here to be comprehensive or balanced. Rather, it&#8217;s a list of papers that I think are interesting, well written, of unusual historical significance, or just  under-appreciated.  A few are quite obvious or well known, but I&#8217;ve  tried to emphasize some that may be less familiar, especially to those who started their work in CS more recently.</p>
<p>By the way, <a title="Alan Kay bio" href="http://www.viewpointsresearch.org/html/people/founders.htm" target="_self">Alan Kay</a> used to have some wonderful online lists of recommended readings, and I haven&#8217;t been able to find them lately.  Anyone know whether they&#8217;re still posted?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2011/01/some-interesting-readings-in-computer-science/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Web is 20 Years Old Today</title>
		<link>http://blog.arcanedomain.com/2010/12/the-web-is-20-years-old-today/</link>
		<comments>http://blog.arcanedomain.com/2010/12/the-web-is-20-years-old-today/#comments</comments>
		<pubDate>Sat, 25 Dec 2010 22:46:17 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[History of computing]]></category>
		<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=536</guid>
		<description><![CDATA[Twenty years ago today, on December 25th, 1990, Tim Berners-Lee and Robert Cailliau first successfully connected a browser to a Web server — the Web as an operational system is 20 years old today.]]></description>
			<content:encoded><![CDATA[<p>Twenty years ago today, on December 25th, 1990, Tim Berners-Lee and Robert Cailliau first <a href="http://www.newsahead.com/preview/2010/12/25/switzerland-25-dec-2010-internet-world-marks-20th-anniversary-of-the-web/index.php" target="_self">successfully connected a browser to a Web server</a> — the Web as an operational system is 20 years old today.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/12/the-web-is-20-years-old-today/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Norm Walsh on XML and JSON</title>
		<link>http://blog.arcanedomain.com/2010/11/norm-walsh-on-xml-and-json/</link>
		<comments>http://blog.arcanedomain.com/2010/11/norm-walsh-on-xml-and-json/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 22:00:22 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=529</guid>
		<description><![CDATA[There&#8217;s been a lot of fuss lately about the widespread adoption of JSON for Web APIs, and a sense in some quarters that this represents a failure for XML.  Norm Walsh has a new post summarizing the pros and cons of JSON vs. XML,  and as usual, Norm has it exactly right: (somewhat rearranging Norm&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a lot of fuss lately about the widespread adoption of JSON for Web APIs, and a sense in some quarters that this represents a failure for XML.  Norm Walsh has a new post summarizing the <a title="Norm Walsh post on XML vs. JSON" href="http://norman.walsh.name/2010/11/17/deprecatingXML" target="_self">pros and cons of JSON vs. XML</a>,  and as usual, Norm has it exactly right:</p>
<blockquote><p>(somewhat rearranging Norm&#8217;s text):</p>
<p>In short, if all you need are bundles of atomic values and especially if you expect to exchange data with JavaScript, JSON is the obvious choice. I don&#8217;t lose any sleep over that.  [...] XML wasn&#8217;t designed to solve the problem of transmitting structured bundles of atomic values. XML was designed to solve the problem of unstructured data. In a word or two: <a href="http://seanmcgrath.blogspot.com/2007/01/mixed-content-trying-to-understand-json.html">mixed content</a>. [...]   I&#8217;ve seen attempts to represent mixed content in JSON and simple they aren&#8217;t. <a href="http://norman.walsh.name/2010/11/17/deprecatingXML#p7"> </a></p>
<p id="p9">XML deals remarkably well with the full richness of unstructured data. I&#8217;m not worried about the future of XML at all even if its death is gleefully celebrated by a cadre of web API designers. [...] I look forward to seeing what the JSON folks do when they are asked to develop richer APIs. When they want to exchange less well strucured [sic] data, will they shoehorn it into JSON?</p>
</blockquote>
<p>That is indeed the tradeoff.  If you want to send along a list of job applicants and their recent salaries, JSON does fine;  if you want to send their resumes, well JSON isn&#8217;t quite as helpful.   A surprising amount of the world&#8217;s important information is in just such semi-structured documents.  Think insurance policies, shop manuals, and even Web pages themselves.  XML is designed to provide a standard means for encoding and interchanging such information, with good enough pure data facilities that if you then want a unified framework to also handle the applicant list, you can.  When you prefer a simpler, more Javascript-compatible means of exchanging simple data, by all means use JSON.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/11/norm-walsh-on-xml-and-json/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Doug Crockford: Go slow on HTML5 until security concerns are addressed</title>
		<link>http://blog.arcanedomain.com/2010/09/doug-crockford-go-slow-on-html5-until-security-concerns-are-addressed/</link>
		<comments>http://blog.arcanedomain.com/2010/09/doug-crockford-go-slow-on-html5-until-security-concerns-are-addressed/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 20:50:21 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=471</guid>
		<description><![CDATA[There&#8217;s a very interesting article in the Web Security Journal quoting Javascript expert Doug Crockford on HTML 5 and security.  Doug&#8217;s point is basically:  we had bad security problems with HTML and the Web before HTML5 was proposed.  What should have been done was to focus on getting a good, clean, secure architecture for core [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a very interesting article in the Web Security Journal quoting Javascript expert <a href="http://security.sys-con.com/node/1544072" target="_self">Doug Crockford on HTML 5 and security</a>.  Doug&#8217;s point is basically:  we had bad security problems with HTML and the Web before HTML5 was proposed.  What should have been done was to focus on getting a  good, clean, secure architecture for core features of the next release,  and only <em>then</em> add new features.<span id="more-471"></span>Doug worries especially about what are billed as Cross-site Scripting vulnerabilities (XSS).  Not only does the focus on new stuff distract from fixing old problems, the new features greatly increase HTML&#8217;s attackable &#8220;surface area&#8221;.  For example, there are many ways in which client-side storage could contribute to security flaws.  Furthermore, the great complexity of the HTML5 specification makes it much harder to rigorously reason about its security implications.</p>
<p>Little of this is new.  Doug has said these things before, and he does acknowledge that, security aside, the new HTML5 features will be valuable.  Nonetheless, his conclusion is:</p>
<blockquote><p>HTML5 has a lot of momentum and appears to be doomed to succeed. I think  the wiser course is to get it right first. We have learned the hard way  that once an error gets into a web standard, it is really hard to get  it out.</p></blockquote>
<p>Striking the right balance will be very difficult in practice.  There&#8217;s a huge investment in HTML5 at this point, and slowing down to revisit security will be difficult.  I think Doug&#8217;s right that it&#8217;s an option that deserves very serious and sober consideration.</p>
<p>By the way, I picked up on this article from a <a title="Dan Connolly posting" href="http://www.madmode.com/2010/09/putting-html5-genie-back-in-bottle-in.html" target="_self">posting by Dan Connolly</a>, who adds some interesting musings and a bit of history.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/09/doug-crockford-go-slow-on-html5-until-security-concerns-are-addressed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>James Gosling Interview</title>
		<link>http://blog.arcanedomain.com/2010/09/james-gosling-interview/</link>
		<comments>http://blog.arcanedomain.com/2010/09/james-gosling-interview/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 22:39:19 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[History of computing]]></category>
		<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=469</guid>
		<description><![CDATA[There&#8217;s a transcript of a terrific interview with James Gosling available at http://www.basementcoders.com/transcripts/James_Gosling_Transcript.html.  Lots of irreverent, insightful comments on Java, Oracle, open source, Google and the Android suit, etc.]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a transcript of a terrific interview with James Gosling available at <a href="http://www.basementcoders.com/transcripts/James_Gosling_Transcript.html" target="_self">http://www.basementcoders.com/transcripts/James_Gosling_Transcript.html</a>.  Lots of irreverent, insightful comments on Java, Oracle, open source, Google and the Android suit, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/09/james-gosling-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Type too fast, melt your processor?</title>
		<link>http://blog.arcanedomain.com/2010/09/type-too-fast-melt-your-processor/</link>
		<comments>http://blog.arcanedomain.com/2010/09/type-too-fast-melt-your-processor/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 13:04:10 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Science]]></category>
		<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=463</guid>
		<description><![CDATA[Not really, of course, but there&#8217;s a nice ASPLOS XV paper from Mesa-Martínez et. al. titled Characterizing Processor Thermal Behavior which explains, among other things: &#8220;&#8230;each [Emacs] keystroke generates around 1◦ C thermal spike&#8230;&#8221; Who knew?  In their tests, the startup phase of Emacs raised the processor temperature in the area being measured (simulated) by [...]]]></description>
			<content:encoded><![CDATA[<p>Not really, of course, but there&#8217;s a nice <a title="ASPLOS XV site" href="http://www.ece.cmu.edu/CALCM/asplos10/doku.php" target="_self">ASPLOS XV</a> paper from Mesa-Martínez et. al. titled <a title="Characterizing Processor Thermal Behavior" href="http://masc.soe.ucsc.edu/docs/asplos10.pdf" target="_blank">Characterizing Processor Thermal Behavior</a> which explains, among other things:</p>
<blockquote><p>&#8220;&#8230;each [Emacs] keystroke generates around 1◦ C thermal spike&#8230;&#8221;</p></blockquote>
<p>Who knew?  In their tests, the startup phase of Emacs raised the processor temperature in the area being measured (simulated) by 15◦ C.  Most of what&#8217;s driving modern trends toward multicore architectures is the tendency for higher speed single core machines to run too hot.  Indeed, I saw one presentation at IBM pointing out that heat densities were passing those found on the surface of a clothes iron!  Anyway, this is an interesting paper if you&#8217;re interest in modern processor design.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/09/type-too-fast-melt-your-processor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interesting History of Java &amp; thoughts on the Oracle/Google Android lawsuit</title>
		<link>http://blog.arcanedomain.com/2010/08/interesting-history-of-java-thoughts-on-the-oraclegoogle-android-lawsuit/</link>
		<comments>http://blog.arcanedomain.com/2010/08/interesting-history-of-java-thoughts-on-the-oraclegoogle-android-lawsuit/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 18:00:48 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=436</guid>
		<description><![CDATA[Charles Nutter has an interesting post titled  My Thoughts on Oracle v. Google.  It gives a quite detailed history of the Java platform, and some thoughts on the recent lawsuit by Oracle against Google.   I&#8217;m not in a position to comment on the accuracy of all the details, but I found it to be thought-provoking, [...]]]></description>
			<content:encoded><![CDATA[<p>Charles Nutter has an interesting post titled  <a title="Charles Nutter post on Java history" href="http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html" target="_self">My Thoughts on Oracle v. Google</a>.  It gives a quite detailed history of the Java platform, and some thoughts on the recent lawsuit by Oracle against Google.   I&#8217;m not in a position to comment on the accuracy of all the details, but I found it to be thought-provoking, and well written.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/08/interesting-history-of-java-thoughts-on-the-oraclegoogle-android-lawsuit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excellent &#8220;What&#8217;s new in HTML5?&#8221; cheat sheet</title>
		<link>http://blog.arcanedomain.com/2010/08/excellent-whats-new-in-html5-cheat-sheet/</link>
		<comments>http://blog.arcanedomain.com/2010/08/excellent-whats-new-in-html5-cheat-sheet/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 14:33:56 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=434</guid>
		<description><![CDATA[From Mark Pilgrim by way of DaveO:   HTML5 Peeks, Pokes and Pointers, an excellent quick guide to new syntax and Javascript APIs in HTML5.  See also Mark&#8217;s Dive into HTML5.]]></description>
			<content:encoded><![CDATA[<p>From <a title="Mark Pilgrim's blog" href="http://diveintomark.org/" target="_self">Mark Pilgrim</a> by way of <a title="Dave Orchard's twitter feed" href="http://twitter.com/DaveO" target="_self">DaveO</a>:   <em><a title="HTML5 cheat sheet" href="http://diveintohtml5.org/peeks-pokes-and-pointers.html" target="_blank">HTML5 Peeks, Pokes and Pointers</a></em>, an excellent quick guide to new syntax and Javascript APIs in HTML5.  See also Mark&#8217;s <a href="http://diveintohtml5.org/" target="_blank">Dive into HTML5</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/08/excellent-whats-new-in-html5-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Worldwide celebration of Dan Connolly&#8217;s contributions to the Web</title>
		<link>http://blog.arcanedomain.com/2010/07/worldwide-celebration-of-dan-connollys-contributions-to-the-web/</link>
		<comments>http://blog.arcanedomain.com/2010/07/worldwide-celebration-of-dan-connollys-contributions-to-the-web/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 20:18:27 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=421</guid>
		<description><![CDATA[Few people have contributed more to the development of the World Wide Web than my good friend Dan Connolly. After many years at the W3C, Dan is moving on the University of Kansas Medical Center.  To thank Dan for his unique contributions to the Web, Tim Berners-Lee has organized a worldwide celebration for this Wed, [...]]]></description>
			<content:encoded><![CDATA[<p>Few people have contributed more to the development of the World Wide Web than my good friend Dan Connolly. After many years at the W3C, Dan is moving on the University of Kansas Medical Center.  To thank Dan for his unique contributions to the Web, Tim Berners-Lee has organized <a title="Tim Berners-Lee announcement of DanFest" href="http://lists.w3.org/Archives/Public/semantic-web/2010Jul/0300.html" target="_self">a worldwide celebration</a> for this Wed, July 14th, at 8PM Eastern time.  In whatever town they are, people will gather for meals in Dan&#8217;s honor, and 1/2 hour later (8:30 PM EDT) to make toasts.  So that everyone can share the moment, a Twitter feed at <a title="Twitter feed for Dan Connolly online festival" href="http://twitter.com/search?q=%23danfest" target="_self">#danfest</a> will capture good wishes and links to other contributions.   Dan loves to play guitar and sing, so those who can will play a bit of music in Dan&#8217;s honor too.</p>
<p>Dan is a good friend, and he has contributed more deeply and more selflessly to the success of the Web than most of the public will ever understand.  Unfortunately, I will not be able to join the dinner group in Cambridge, but with luck I might manage<a title="Rock City Payson Park announcement" href="http://blog.arcanedomain.com/2010/07/gig-alert-payson-park-music-festival-this-wed-in-belmont-ma/" target="_self"> a little musical acknowledgement on Wed evening.</a></p>
<p><strong>UPDATE: </strong><a title="Pictures from the Cambridge #danfest gathering" href="http://www.arcanedomain.com/Danfest/" target="_self">pictures</a> from Cambridge #danfest</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/07/worldwide-celebration-of-dan-connollys-contributions-to-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sanjiva on 10 Years of SOAP</title>
		<link>http://blog.arcanedomain.com/2010/06/sanjiva-on-10-years-of-soap/</link>
		<comments>http://blog.arcanedomain.com/2010/06/sanjiva-on-10-years-of-soap/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 13:01:22 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[History of computing]]></category>
		<category><![CDATA[Web, Internet, Computing]]></category>

		<guid isPermaLink="false">http://blog.arcanedomain.com/?p=416</guid>
		<description><![CDATA[I just noticed that in April, Sanjiva Weerawarana posted his own thoughts on 10 years of SOAP, with a somewhat more positive perspective than mine.  I also see that his posting predates mine, so it seems we each noted the anniversary independently.  For those who don&#8217;t know, Sanjiva has been one of the most important [...]]]></description>
			<content:encoded><![CDATA[<p>I just noticed that in April, Sanjiva Weerawarana posted his own <a title="Sanjiva's SOAP Post" href="http://sanjiva.weerawarana.org/2010/04/10-years-of-soap.html" target="_self">thoughts on 10 years of SOAP</a>, with a somewhat more positive perspective than <a title="Noah's SOAP Post" href="../2010/05/ten-years-of-soap/" target="_self">mine</a>.  I also see that his posting predates mine, so it seems we each noted the anniversary independently.  For those who don&#8217;t know, Sanjiva has been one of the most important contributors to SOAP and Web Services, starting with the 1999 IBM prototype work described in his posting.  Worth reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arcanedomain.com/2010/06/sanjiva-on-10-years-of-soap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

