<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>0x0000</title>
      <link>http://0x0000.org/</link>
      <description></description>
      <language>en</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Sat, 26 Jul 2008 21:30:54 +0000</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Cloud storage unreliable?</title>
         <description><![CDATA[There is <a href="http://arstechnica.com/news.ars/post/20080726-week-in-storage-cloud-storage-fumbles-tape-sets-records.html">some</a> <a href="http://www.informationweek.com/news/services/storage/showArticle.jhtml?articleID=209400122&cid=RSSfeed_IWK_All">press</a> about a <a href="http://status.aws.amazon.com/s3-20080720.html">outage</a> of <a href="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_c_0_15763381_8?ie=UTF8&node=16427261&no=15763381&me=A36L942TSJ2AJA">Amazon's S3</a> cloud storage service. <a href="http://arstechnica.com">ars technica</a>  raises the point: 
<blockquote>Fundamentally, cloud storage that centralizes functionality can also centralize failures in functionality, making cloud services vulnerable to widespread outages.</blockquote>
But centralization and failure are not unique to cloud storage. CDNs, colo facilities, and hosting providers, all can be single points of failure.  I can recall a outage at <a href="http://365main.com/">365 main</a> in SF that bought down most of the "web 2.0". Economies of scale  dictate that we will have large central resources. It is up to good application designers to build with the expectation that services will fail.]]></description>
         <link>http://0x0000.org/2008/07/cloud_storage_unreliable.html</link>
         <guid>http://0x0000.org/2008/07/cloud_storage_unreliable.html</guid>
        
        
         <pubDate>Sat, 26 Jul 2008 21:30:54 +0000</pubDate>
      </item>
            <item>
         <title>Powers of 10</title>
         <description><![CDATA[<center>
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/BBsOeLcUARw&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/BBsOeLcUARw&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>
</center>

Classic science short about the scale of the universe. ]]></description>
         <link>http://0x0000.org/2008/05/powers_of_10.html</link>
         <guid>http://0x0000.org/2008/05/powers_of_10.html</guid>
        
        
         <pubDate>Sun, 25 May 2008 02:15:32 +0000</pubDate>
      </item>
            <item>
         <title>Context for the surveillance debate</title>
         <description><![CDATA[The current debate about surveillance turns out not to be a feature of September 11th,  instead being born of the move to mobile telephony and digital switching that started in the 1980's. <a href="http://govexec.com">govexec.com</a> has a thorough article that gives the history of the debate <a href="http://www.govexec.com/dailyfed/0408/042208nj1.htm">here</a>. It is well worth a read if you have the time.]]></description>
         <link>http://0x0000.org/2008/05/context_for_the_servalince_deb.html</link>
         <guid>http://0x0000.org/2008/05/context_for_the_servalince_deb.html</guid>
        
        
         <pubDate>Sat, 17 May 2008 18:38:03 +0000</pubDate>
      </item>
            <item>
         <title>Waiting at the door</title>
         <description><![CDATA[<a href="http://www.flickr.com/photos/0x0000org/2429979487/" title="IMG_1798 by wikiwikimoore, on Flickr"><img src="http://farm4.static.flickr.com/3145/2429979487_af8bef6fb2.jpg" width="500" height="375" alt="IMG_1798" /></a>

When running in the underground portions of the muni metro system, the trains are controlled by computer and because of this, they stop at the same place along the platform every time. Unlike bart, which is similarly controlled by computer, the spots where the doors will open are not marked out. Even without these markings it is still possible to tell where one will need to board. As people enter and leave the trains, their feet wipe clean the dirt form the very edge of the train platform leaving clean marks at each door opening. By observing and counting off the marks in sets of four it is possible to tell where to stand to enter at a particular door on a particular train.]]></description>
         <link>http://0x0000.org/2008/05/waiting_at_the_door.html</link>
         <guid>http://0x0000.org/2008/05/waiting_at_the_door.html</guid>
        
        
         <pubDate>Mon, 05 May 2008 08:48:05 +0000</pubDate>
      </item>
            <item>
         <title>Changing the world by treating people as humans</title>
         <description><![CDATA[In this <a href="http://www.ted.com/index.php/">TED</a> video <a href="http://www.bill-strickland.org/">Bill Strickland</a> talks about how he is changing the world though education and compassion. I quote the description of the video below but I don't think it does it justice. I strongly recommend you watch the video.

<blockquote>With subtle accompaniment by longtime friend Herbie Hancock, and a slide show that has opened the minds (and pocketbooks) of CEOs across the country, Bill Strickland tells a quiet and astonishing tale of redemption through arts, music and unlikely partnerships. </blockquote>
<center>
<!--cut and paste--><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="432" height="285" id="VE_Player" align="middle"><param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf"><PARAM NAME="FlashVars" VALUE="bgColor=FFFFFF&file=http://static.videoegg.com/ted/movies/BILLSTRICKLAND-2002_high.flv&autoPlay=false&fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&forcePlay=false&logo=&allowFullscreen=true"><param name="quality" value="high"><param name="allowScriptAccess" value="always"><param name="bgcolor" value="#FFFFFF"><param name="scale" value="noscale"><param name="wmode" value="window"><embed src="http://static.videoegg.com/ted/flash/loader.swf" FlashVars="bgColor=FFFFFF&file=http://static.videoegg.com/ted/movies/BILLSTRICKLAND-2002_high.flv&autoPlay=false&fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&forcePlay=false&logo=&allowFullscreen=true" quality="high" allowScriptAccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" width="432" height="285" name="VE_Player" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></object>
</center>]]></description>
         <link>http://0x0000.org/2008/01/changing_the_world_by_treating.html</link>
         <guid>http://0x0000.org/2008/01/changing_the_world_by_treating.html</guid>
        
        
         <pubDate>Thu, 24 Jan 2008 06:21:04 +0000</pubDate>
      </item>
            <item>
         <title>The 5 minute rule</title>
         <description><![CDATA[There is a great paper every computer engineer should read, <a href="http://www.hpl.hp.com/techreports/tandem/TR-86.1.pdf"><em>The 5 minute rule for trading memory for disc accesses and the 10 byte rule for trading memory for CPU time</em></a>:

<div style="margin-left: 40px;">
<strong>Abstract</strong>

 If an item is accessed frequently enough, it should be main memory resident. For current technology, "frequently enough" means about every five minutes. Along a similar vein, one can frequently trade memory space for CPU time. For example, bits can be packed in a byte at the expense of extra instructions to extract the bits. It makes economic sense to spend ten bytes of main memory to save one instruction per second. These results depend on current price ratios of processors, memory and disc accesses. These ratios are changing and hence the constants in the rules are changing.  
</div>

Published by Tandem in 1986 it is still relevant today. Quick and fun, the paper provides a  analytical tool that is powerful beyond it's original scope. It has been updated twice, <a href="http://www.sigmod.org/sigmod/record/issues/9712/gray.ps">ten years later</a> (1997), and <a href="http://www.cs.cmu.edu/~damon2007/pdf/graefe07fiveminrule.pdf">twenty years later</a> (2007). The ten year paper show how the rule still stood at that time. The twenty year later paper provides new  insights in to the topic, has lots of good analytical work, and should be read if you are trying to apply the 5 minute rule to modern systems. 

If I was teaching computer science The 5 Minute Rule would be required reading.
]]></description>
         <link>http://0x0000.org/2007/12/the_5_minute_rule.html</link>
         <guid>http://0x0000.org/2007/12/the_5_minute_rule.html</guid>
        
        
         <pubDate>Thu, 27 Dec 2007 18:36:56 +0000</pubDate>
      </item>
            <item>
         <title>CSS Side Channel Attack</title>
         <description><![CDATA[So there is this older, known hack where you can walk the DOM and discover if a link on a page has been visited:

   <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=147777">https://bugzilla.mozilla.org/show_bug.cgi?id=147777</a>

This has all sorts of uses as a vector for phishing sites and XSS attacks. But what I just realized is that sites can conspire to use the visited attribute for a communication back channel.

If one site wants to communicate a 32bit number, say a user id, with another site covertly it can use the visited attribute. The method is as follows:

The transmitting site will create 32 URLs with names like foo.com/bit_1.html  throu foo.com/bit_2.html. Then in some page the sender takes the number they want to transmit and for each bit that is true, they embed a hidden frame with the URL of that bit. After this page has been viewed by the subject of the attack, any other page on the internet which knows the bit URLs can test to see if those URLs have been visited and reconstruct the number that was set.

There are two main shortcomings of this approach that are clear. First, the stored value only persists as long as the visited link info lasts in the browser, which I think is nine days by default in FF as far as I can tell. Secondly, there is no way to unset bits. To deal with this, one could add a sequence to the bit urls:

    foo.com/sequence_1.html
    foo.com/bit_1_1.html

    foo.com/sequence_2.html
    foo.com/bit_1_2.html

Now before you want to set a number you walk up the sequence URLs 'till you find one that is not set then you set the bits assorted with that sequence.

This would basically allow one to have cookies that can be read from any page on the internet with the added feature that there is no network IO required to read the data; once someone has had the value set it can even be read even offline.]]></description>
         <link>http://0x0000.org/2007/12/css_side_channel_attack.html</link>
         <guid>http://0x0000.org/2007/12/css_side_channel_attack.html</guid>
        
        
         <pubDate>Tue, 25 Dec 2007 18:46:47 +0000</pubDate>
      </item>
            <item>
         <title>Corporate Police and Due Process</title>
         <description><![CDATA[We are entering a time when it is becoming clear that corporations are a means to sidestep the judicial process. Today, and to a lesser extent in the past, companies are put into the position of adjudicating decisions of legal concern regarding peoples' actions within their domain of control. This post will use Flickr and issues around its Safe Search for our examples; but the symptoms described are common.
<br><br>
Safe Search is a feature meant to partition the photos uploaded to Flickr into three groups which they <a href="http://www.flickr.com/help/filters/#258">describe</a> as follows:
<p/>
<div style="margin-left: 40px;"><span style="font-weight: bold;">1. Safety Leve</span>l</div><ul style="margin-left: 40px;"><li><span style="font-weight: bold;">Safe</span> - Content suitable for a global, public audience</li><li><span style="font-weight: bold;">Moderate</span> - If you're not sure whether your content is suitable for a global, public audience but you think that it doesn't need to be restricted per se, this category is for you</li><li><span style="font-weight: bold;">Restricted</span> - This is content you probably wouldn't show to your mum, and definitely shouldn't be seen by kids
</li></ul>Where there are many reasons for the rating system the one we will concern ourselves with is that of compliance with the laws of Singapore, Hong Kong, Korea, and Germany. In these countries people's ability to view content is limited:
<br><br>
<div style="margin-left: 40px;"><b>Note:</b> <span class="Highlight">If your Yahoo! ID is based in Singapore, Hong Kong or Korea</span> you will only be able to view safe content based on your local Terms of Service so won't be able to turn SafeSearch off. <span class="Highlight">If your Yahoo! ID is based in Germany</span> you are not able to view restricted content due to your local Terms of Service. 
</div>  
<br>
The Register <a href="http://www.theregister.co.uk/2007/06/18/outcry_against_flickr_censorship/">reports</a> that the restrictions in Germany are due to "stricter legislation and penalties in that country". Here we see Safety Level being used to enforce law, or at least Yahoo's interpretation of German law. Moreover, to facilitate enforcement of the law, Flickr is compelled to enforce a policy that all users, not just those in restricted countries, accurately label photos. Flickr's policy enforcement is where things become problematic.  
<br><br>
If we take that we can decompose governance it to Legislative, Judicial, and Executive components, Flickr is acting in both Judicial, and Executive roles with only the Legislative role left to the government of the German people. The result being that Germans are denied the procedures and laws of their country meant to ensure that law is applied justly. ( If this were not bad enough, these rules are applied to all Flickr users not just German ones. )
<br><br>
The process that befalls a user that mislabels a photo under the watch of Flickr is as follows:
<br><br>
<div style="margin-left: 40px;">
<span style="font-weight: bold;">1.</span> An anonymous person <a href="http://www.flickr.com/help/filters/#253">flags</a> a photo as under-moderated:
<br><br>
<div style="margin-left: 40px;">Staff hear about this sort of thing because your fellow members can flag photos around the site if they feel that you have categorized things incorrectly, or they may even send a report to us that some of your content is offensive.</div>
<br>
<span style="font-weight: bold;">2.</span> An anonymous Flickr employee makes a judgment about the flagged photo.
<br><br>
<span style="font-weight: bold;">3.</span> If the employee finds the photo to be under-moderated, the entire account hosting the photo is forcibly moderated to a level of the employee's choosing. A second offense can end in account <a href="http://www.flickr.com/guidelines.gne">deletion</a>.
</div>
<br>
In this process the user under judgment is subject to a secret trial with secret evidence initiated by a nameless accuser. The accused does not even know they have been tried unless they are found guilty. They are not informed which act of uploading was their crime; and punished though a ghettoization from which they have very little ability to appeal. ( One can request a re-review but they don't tell users which photos were offensive so it can be hard to correct one's actions. )
<br><br>
Some would argue that this issue will be temporary as the <a href="http://en.wikipedia.org/wiki/Invisible_hand">market will correct</a>; but I think that is naive given that social applications exhibit <a href="http://en.wikipedia.org/wiki/Network_effect">network effect</a> making it hard for people to leave. We need to have a discussion about how we should address this as a culture. What are the boundaries how lawmakers can ask companies to act as enforcers of the law? How will due processes evolve? ]]></description>
         <link>http://0x0000.org/2007/12/corporate_police_flickr_judge.html</link>
         <guid>http://0x0000.org/2007/12/corporate_police_flickr_judge.html</guid>
        
        
         <pubDate>Tue, 25 Dec 2007 09:57:36 +0000</pubDate>
      </item>
            <item>
         <title>Why Lame?</title>
         <description><![CDATA[Why is it that every <a href="http://www.f-secure.com/weblog/archives/00001342.html">worm</a> for social networks is lame; written so that it has to link back to some site to get its content for infection? Would it be so hard for the author to just write it as a <a href="http://en.wikipedia.org/wiki/Quine_(computing)">quine</a>, it's not like there isn't <a href="http://web-graphics.com/pages/quine.php">lots</a> of <a href="http://www.nyx.net/~gthompso/self_javas.txt">examples</a> <a href="http://xn--kllberg-5wa.net/quine/quinegen.html">code</a>. ( I know I should not wish that attackers did a better job but I really don't like to see work half done. )]]></description>
         <link>http://0x0000.org/2007/12/why_lame.html</link>
         <guid>http://0x0000.org/2007/12/why_lame.html</guid>
        
        
         <pubDate>Tue, 25 Dec 2007 08:18:12 +0000</pubDate>
      </item>
            <item>
         <title>Vectorized Classic Video Games</title>
         <description><![CDATA[<a href="http://blogoscoped.com/blownup/">
  <img alt="mario.png" src="http://0x0000.org/mario.png" width="467" height="629" />
</a>
<br>
<a href="http://blogoscoped.com">Google Blogoscoped</a> has a great gallery of graphics that are the result of taking old 8-bit and 16-bit game graphics vectorizing them with <a href="http://vectormagic.stanford.edu">VectorMagic</a> and scaling them up. They range from creative to abstract and they are all fun.

<a href="http://blogoscoped.com/archive/2007-12-19.html">link</a>]]></description>
         <link>http://0x0000.org/2007/12/vectorized_clasic_video_games.html</link>
         <guid>http://0x0000.org/2007/12/vectorized_clasic_video_games.html</guid>
        
        
         <pubDate>Mon, 24 Dec 2007 23:41:53 +0000</pubDate>
      </item>
            <item>
         <title>Simple Consistency</title>
         <description><![CDATA[For this discussion we are interested in a database system which can provide a availability guarantee for data reads and writing such that a reader must be able obtain the information supplied by the last successful write with some probability <span style="font-family: Courier;">n</span> and a writer must be able to record its data to the database with some other probability <span style="font-family: Courier;">n</span>. To achieve this we must guarantee that the probability of critical component failure is less then <span style="font-family: Courier;">n</span> for either reads or writes. This can be done either by acquiring components which have a failure rate less then <span style="font-family: Courier;">n <span style="font-family: Arial;">or by by combining components in a redundant configuration such that the probability of all redundant components failing is less then&nbsp; <span style="font-family: Courier;">n</span>. This article concerns it self with the second approach and the issues that arise from a system where one redundantly stores data on more then one distinct node in a cluster with to goal of achieving a low probability of failure.<span style="font-family: Arial;"></span></span></span>
<br><br>
With a data replication approach to availability  we are bought the the primary concern of this work, detecting and handling error states which cause data to  become inconsistent across nodes replicating data. Inconsistencies in replication create ambiguity in the definition of a successful wright and obfuscate the value of the last wright. 
<br><br>
There are three different errors which can endanger consistency of writes:
<ol><li><span style="font-weight: bold;">Partial write:</span> The write fails on one or more nodes.</li><li><span style="font-weight: bold;">Corrupt write :</span> The data becomes corrupt on one or more nodes.</li><li><span style="font-weight: bold;">Out of order write:</span> Two or more writes are applied to the same datum but in a inconsistent order across two or more nodes.</li></ol>Similarly there are a related but distinct set of errors that can occur during reads:
<ol><li><span style="font-weight: bold;">Corrupt read :</span> The data becomes corrupt on transmission to the reader.</li><li><span style="font-weight: bold;">Write read race:</span> A reader performs a read while a write is occurring.</li></ol> All these errors are indifferentiable to the reader and all present the error state where the values read are inconsistent. In the case that any of these errors occur if one were to perform two reads of the same datum but from different replicants it is possible to get different results. Similarly, if one were to perform a read for a single datum across all replicants one would get back a inconsistent set of answers. In response we can either attempt to avoid these error states or we can define write and read success so that it is consistent under all these cases. In this article we chose the later approach and introduce idea of voting which will allow us to correct inconsistencies up to a configurable limit.
<br><br>
When voting is used to decide on a consistent version of a datum the client must query replants until a majority of the total number of replicants agree on the value of datum. This value will then be considered the value for the query.&nbsp; This method can correct <span style="font-family: Courier;">n/2 - 1</span> inconsistencies where <span style="font-family: Courier;">n </span>is the number of replicas of the data. If more errors have occurred then a consistent read is impossible.
<br><br>
Write failures can largely be ignored in this approach, as they will merely cause one out of <span style="font-family: Courier;">n</span> reads to fail which is acceptable as long as it is still possible for <span style="font-family: Courier;">n/2 - 1 <span style="font-family: Arial;">reads to succeed.</span> </span>
<br><br>
This outlines the minimal requirements for the consistency model. This article will be followed by more with some enhancements to this scheme which improve on it by providing methods for reducing the number of states where data can be inconsistent ( useful for high concurrency datums ), providing&nbsp; methods for repairing datums where state has become inconsistent, and describing&nbsp; optimizations the the performance of a database using this method of replication consistency.&nbsp;  
<font size="2"><span style="font-weight: bold;"></span></font>]]></description>
         <link>http://0x0000.org/2007/12/simple_consistensty.html</link>
         <guid>http://0x0000.org/2007/12/simple_consistensty.html</guid>
        
        
         <pubDate>Mon, 24 Dec 2007 18:13:34 +0000</pubDate>
      </item>
            <item>
         <title>SAFE Act considered harmful</title>
         <description><![CDATA[Ug. At it again with <a href="http://www.engadget.com/2007/12/06/house-overwhelming-passes-safe-act-on-obscene-images-ron-paul/">making</a> companies acting as police and helping create the dystopia corporate states we all love to hate. This stuff is a really bad idea. I have been meaning to blog about it for a bit. Will try to get to it later today.]]></description>
         <link>http://0x0000.org/2007/12/safe_act_considered_harm_full.html</link>
         <guid>http://0x0000.org/2007/12/safe_act_considered_harm_full.html</guid>
        
        
         <pubDate>Thu, 06 Dec 2007 17:19:18 +0000</pubDate>
      </item>
            <item>
         <title>Scaling Reads: Replication vs Partitioning</title>
         <description><![CDATA[<p>
The common method of read scaling is to copy read heavy data to more nodes.
This increases the available read throughput of a datum by increasing
the total amount of resources dedicated to serving it. This will always be
necessary when the read load for a single datum surpasses the resources
of a single node (IO, CPU, Network, etc). This method scales well but
has the down side that it is often not efficient with respect to
storage space. This is not so often a issue for data on disk but is a often issue for data cached in memory. The following
example demonstrates the difference:
</p>
<p style="margin-left: 40px;">Let us posit that there two nodes { node1, node2 } and a data set having four datums, { A, B, C, D } with the load distribution &lt;A:40%, B:40%, C:10%, D:10%&gt;. To scale reads one could fully replicate the datums across both nodes, node1:{ A, B, C, D }, node2:{
A, B, C, D }. We would then distribute the query load evenly between the two nodes so they were each handling one half of the total load for the
data. A second option would be to share the load
between the two nodes by partitioning the data across the nodes. One such repartitioning is node1:{ A, C },
node2:{ B, D } resulting in the load distribution of&nbsp; node1:&lt;A:40%, C:10%&gt;, node2:&lt;B:40%, D:10%&gt;.&nbsp; With this partitioning the read load is still evenly distributed across the nodes but only half as much data is stored at each node. 
</p><p>Even though this example appears to assumes that reliable load data is available for each datum it is possible to achieve a even distribution of load by methods such as repartitioning with only node level knowledge.&nbsp; One such method would periodically randomly select a datum from node a with above average load and move it to a node with a below average load. Such a scheme should lead to a balanced cluster over time. ( This scheme will likely be discussed in more detail in a later post. )
</p>The cost of using partitioning as a read scaling method is the added complexity of creating the partitions on the data and maintaining the routing information required to deliver queries to the appropriate node.
<p></p><!-- technorati tags begin --><p style="font-size:10px;text-align:right;">Tags: <a href="http://technorati.com/tag/Databases" rel="tag">Databases</a></p><!-- technorati tags end -->]]></description>
         <link>http://0x0000.org/2007/11/scaling_reads_replication_vs_p.html</link>
         <guid>http://0x0000.org/2007/11/scaling_reads_replication_vs_p.html</guid>
        
        
         <pubDate>Wed, 28 Nov 2007 18:45:51 +0000</pubDate>
      </item>
            <item>
         <title>Flashless</title>
         <description><![CDATA[<img style="margin: 0px auto 10px; display: block; text-align: center;" title="" src="http://farm3.static.flickr.com/2166/2071029144_608f29f657.jpg?v=0" alt="" onload="show_notes_initially();" class="reflect" height="375" width="500" />
So I have been long frustrated with the fact that my camera's flash kind of sucks but that unassisted in low light it is nigh impossible (at least if your subject is breathing). So I had this idea that I could solve the problem and create some fun shots at the same time by using a flashlight to illuminate my subject. Here are the results of my first <a href="http://www.flickr.com/photos/0x0000org/sets/72157603316283762/">experiment</a> with the idea.]]></description>
         <link>http://0x0000.org/2007/11/flashless.html</link>
         <guid>http://0x0000.org/2007/11/flashless.html</guid>
        
        
         <pubDate>Wed, 28 Nov 2007 08:00:21 +0000</pubDate>
      </item>
            <item>
         <title>Party like it&apos;s 1989</title>
         <description><![CDATA[In an article on <a href="http://nymag.com">New York Magazine</a> we learn that the music industry was so tech phobic that they did not even try to deal with digital music music on the internet.
<p>
"""<br>
Even though we shouldn't be, we're actually a little shocked. We'd always assumed the labels had met with a team of technology experts in the late nineties and <em>ignored</em> their advice, but it turns out they never even got that far -- they didn't even <em>try!</em> Understanding the Internet certainly isn't easy -- especially for an industry run by a bunch of technology-averse sexagenarians -- but it's definitely not impossible. The original Napster hit its peak in 1999 -- kids born since then have hacked into CIA computers. Surely it wouldn't have taken someone at Universal more than a month or two to learn enough about the Internet to know <em>who to call</em> to answer a few questions. They didn't even have any geeky interns? We give this industry six months to live.<br>
"""
<p>
<a href="http://nymag.com/daily/entertainment/2007/11/universal_music_ceo_doug_morris.html">link</a>]]></description>
         <link>http://0x0000.org/2007/11/party_like_its_1989.html</link>
         <guid>http://0x0000.org/2007/11/party_like_its_1989.html</guid>
        
        
         <pubDate>Wed, 28 Nov 2007 03:03:39 +0000</pubDate>
      </item>
      
   </channel>
</rss>
