<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5647152679066847028</id><updated>2012-01-29T23:58:19.023-05:00</updated><category term='ruby'/><category term='xml'/><category term='oil'/><category term='bundler'/><category term='math'/><category term='marshaling'/><category term='platform'/><category term='java'/><category term='web'/><category term='rails 3'/><category term='programming'/><category term='github'/><category term='serialization'/><category term='ruby metaprogramming protovis'/><category term='diff'/><category term='philosophy'/><category term='gems'/><category term='I'/><category term='green'/><category term='economics'/><category term='energy'/><category term='webos'/><category term='open'/><category term='tdd'/><category term='physics'/><category term='ria'/><category term='bdd'/><category term='freeze'/><category term='patch'/><title type='text'>quiet light falling</title><subtitle type='html'>a blog for interesting thoughts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6653956000134673729</id><published>2011-07-17T19:53:00.003-04:00</published><updated>2011-07-17T20:48:54.108-04:00</updated><title type='text'>Trial and Error and the God Complex...</title><content type='html'>I just saw Tim Harford's TED talk: &lt;a href="http://www.youtube.com/watch?v=K5wCfYujRdE"&gt;Trial and Error and the God Complex&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Harford makes some good arguments for evolutionary, "trial and error" approaches to solving complex problems.  There are also significant risks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Harford's examples are very carefully chosen not to present the limitations of evolutionary approaches to solve problems.  For example, a human baby is a product of evolution, but without a specific design -- a product of natural environmental constraint and common decent.  Harford's "nozzle" story is different, there is a desired design, which is found through a genetic algorithm... in this case, the principle of evolution is applied in an artificial environment where the constraint is a metric on a fitness function (e.g. how well does the nozzle make detergent?)  This allows the genetic algorithm to incrementally improve the design without actually knowing how the design works, by passing traits that contribute to passing the fitness function.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is helpful to realize that top-down design and genetic algorithm design are simply different ways of finding solutions (&lt;i&gt;optima&lt;/i&gt;).  One isn't better than the other, any more than analytic solutions to functions are better than numerical solutions, nor are they always equivalently &lt;a href="http://en.wikipedia.org/wiki/Numerical_integration#Reasons_for_numerical_integration"&gt;easy or possible to find&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Genetic algorithms only work for designs when a fitness metric can be established (e.g. how well the nozzle makes detergent) -- it is not useful or appropriate as a technique when a fitness function is unknown.  Hence, you already have to have expended considerable thought to define a fitness function that correctly specifies the question in order to solve problems the way Harford suggests.  This isn't trivial in the general case, it can be harder than solving the problem using top-down design methods.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Harford's example of the stock market is not completely unrealistic -- it is entirely likely that "something" is evolving faster than humans -- but since we have only very vague ideas about what effects a fitness function like "fiduciary trust" has, we don't know exactly what corporations will evolve to claim us as pets.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This brings us to the second shortcoming of evolutionary techniques.... while they are excellent at homing in on optima using a fitness function, the only thing you can say about them is the probability that they are good enough to pass the fitness function and nothing more.  If your fitness function forgets to include exceptions, there is no guarantee that your solution will remain stable for such conditions.  Even more fundamentally, you have no idea &lt;b&gt;&lt;i&gt;how &lt;/i&gt;&lt;/b&gt;the solution actually works.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Genetic algorithms can lead scientists to breakthroughs, however in order to understand how they work, the solutions must be reverse-engineered back into an analytic understanding.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Harford focuses so closely on the amazing ability of these systems to find answers that he has forgotten that those answers need rigorous testing.  It turns out that humans are even worse at defining correct testing scenarios than we are at building systems top-down.  So while his approach may be compelling, it is not without significant danger.  It substitutes one evil (i.e. what he calls the "God complex") with another: the hubris to think that we know what we want (i.e. understand the fitness function) sufficiently to know when we get it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Asimov warned us of this hubris in stories featuring the notorious well-meaning "Laws of Robotics" that led robots to very different conclusions than expected.  And Crichton warned us of trying to control such systems as they rapidly change and exceed our ability to control them. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Real evolution is raw, untamed, and unpredictable -- it doesn't play by rules we fully comprehend.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6653956000134673729?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6653956000134673729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6653956000134673729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6653956000134673729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6653956000134673729'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2011/07/trial-and-error-and-god-complex.html' title='Trial and Error and the God Complex...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-7953269339094267258</id><published>2011-07-11T15:58:00.002-04:00</published><updated>2011-07-11T16:12:49.321-04:00</updated><title type='text'>Good Lesson, but not universal...</title><content type='html'>Aaron Iba &lt;a href="http://blog.aaroniba.net/2011/07/06/a-lesson-from-my-ios-users-they-dont-teach-at-mit/"&gt;explains in his blog&lt;/a&gt; that his iPhone game led him to a new way of thinking about development that he thinks makes him a better programmer and startup founder.&lt;br /&gt;&lt;br /&gt;"Iterate-and-Repair" is a good optimization strategy where opportunity costs are low (i.e. trying out different solutions in a puzzle game), but they aren't so great where opportunity costs are high (i.e. trying to send a man to the moon).  In that case, the best strategy is still to engineer an optimal solution using mathematics.&lt;br /&gt;&lt;br /&gt;The key distinction is not learning styles, nor even an MIT background, but rather asking the question: "what is the opportunity cost for my solution?"&lt;br /&gt;&lt;br /&gt;The late 90's saw a wave of "good enough" engineering that was based on a similar idea of iterate-and-repair, but notoriously did not factor opportunity cost in the analysis. Who needs all those edge-cases and testing when you can follow the 80-20 pareto rule and get to market quickly?  Well, if you've ignored the opportunity costs and your solution  fries a thousand people in an aircraft, or tanks a billion dollars in stocks overnight, you better believe that an 80/20 approach is not "good enough" after all.&lt;br /&gt;&lt;br /&gt;Of course you should use the right tool for the job, but there is still a need for engineered solutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-7953269339094267258?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/7953269339094267258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=7953269339094267258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/7953269339094267258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/7953269339094267258'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2011/07/good-lesson-but-not-universal.html' title='Good Lesson, but not universal...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-247140770167931256</id><published>2011-02-17T14:19:00.006-05:00</published><updated>2011-02-17T15:01:39.364-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='marshaling'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='serialization'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><title type='text'>ruby and json vs xml marshalling</title><content type='html'>&lt;div&gt;I've been watching a silent war rage between the ruby community with its preference for JSON and RESTful services and the Java community with its preference for XML and SOAP.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The rdoc for Nokogiri snarks at the Java community with a simple quote:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;&lt;b&gt;"XML is like violence - if it doesn’t solve your problems, you are not using enough of it."&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Like many devs caught in the middle of this war (namely having to integrate Rails apps with Java SOA backends) I'm never quite satisfied with the state of Ruby XML marshaling. Sure there are a dozen gems to address this -- they always vary between giant thousand-object DOMs that leak memory like a sieve, arcane forced DSL syntaxes, or simple to use, but incomplete APIs. So I started to think about hand rolling "yet another XML marshaller" for Ruby.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My first idea was to simplify the XML DOM, so that everything is unmarshaled as an element. Then I can use a simple hierarchal accessor, the "dot" operator on the Ruby object side:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/832527.js?file=gistfile1.xml"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the face of it, I thought that looked pretty sweet. But then I considered remarshaling this object as XML. Doh! There's no way to tell whether "mike" is an element or an attribute... well I could stick a little metadata on there to remind me later, but it's starting to look like I stumbled into the same path that so many other Ruby gems had trying to solve this problem. And it's not for lack of trying -- Ruby devs have tried many ways to resolve this ambiguity with various results, but not a lot of clear wins -- there's always a "gotcha" in there that makes you wince when you have to handle it. (it's the same wince that Java devs have when they switch axis jars on one server but not another.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I sat back in disgust and thought to myself,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;&lt;b&gt;"wow, this would be so much easier if it was just JSON..."&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then it hit me... JSON is easy because round-trip marshaling doesn't introduce any ambiguity about elements vs attributes! Everything is an element!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No wonder JSON is so easy!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-247140770167931256?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/247140770167931256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=247140770167931256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/247140770167931256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/247140770167931256'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2011/02/ruby-and-json-vs-xml-marshalling.html' title='ruby and json vs xml marshalling'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-2007852861640925101</id><published>2011-02-05T19:23:00.003-05:00</published><updated>2011-02-05T19:48:11.993-05:00</updated><title type='text'>How to get Surface 1.0 SP1 running on Win7 x64 and VS2010</title><content type='html'>I'm posting this "brain dump" from my research journal because it was a royal PITA.  Maybe it can help someone else.  The articles referenced in here hopscotch around in quite a tangled fashion.  I empathize with the people who wrote these up... we all have the tendency to document the things we know about at the time we know them and then quickly go stale or have quirks.  This post will be no different, but at least as of 2/5/2011, this tells devs new to Microsoft Surface 1.0 SP1 development how to proceed.  I hope it can save some grief.&lt;br /&gt;&lt;br /&gt;Twitter thanks to @GrumpyDev, @eNeRGy164, @surface, @sevensteps, @brianpeek, my friend @gaganrajpal, and Prof Holly Yango for her quickstart (&lt;a href="http://www.cs.uml.edu/~holly/"&gt;http://www.cs.uml.edu/~holly/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;back to work. going to try to install the SDK again and get it working.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;previously I had used Brian Peek’s instructions at &lt;/span&gt;&lt;a href="http://www.brianpeek.com/blog/archive/2009/03/10/install-the-surface-sdk-on-windows-7-and-or-x64.aspx"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.brianpeek.com/blog/archive/2009/03/10/install-the-surface-sdk-on-windows-7-and-or-x64.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;  but there are some slight variations here.  @sevensteps advised that grumpydev was worked.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;BULLETS mark steps I did.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;from my 1/27 post:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;GrumpyDev was identified as should work if I follow it to the letter, will try this weekend again: &lt;/span&gt;&lt;a href="http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: rgb(255, 255, 0); font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;download MSI: &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3db8987b-47c8-46ca-aafb-9c3b36f43bcc&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3db8987b-47c8-46ca-aafb-9c3b36f43bcc&amp;amp;displaylang=en&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;use ORCA to remove the following keys from the MSI.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select “&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;LaunchCondition&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;” in the left hand list, then select “&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Install OR NOT VersionNT64&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;″. delete&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;select “&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;InstallExecuteSequence&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;” in the list on the left and remove &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SetCreateSqmMachineGuid &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;and &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;CreateSqmMachineGuid. &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;delete&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Followed this to the right after it says save and close ORCA part, but before installing flip over to these instructions to get orca edits for VS2010 as well:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select “LaunchCondition” and:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select the row with "&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Installed OR (VS2008SPLEVEL AND VS2008CSPROJSUPPORT) OR VCSEXP2008SPLEVEL&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;" and choose "Drop row"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select the row with "&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Installed OR    &lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;(VS2008SPLEVEL AND VS2008SPLEVEL &gt;= "#0") OR    &lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;(VCSEXP2008SPLEVEL AND VCSEXP2008SPLEVEL &gt;= "#0")&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;" and choose "Drop row"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select the row with "&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Installed OR DEXPLORE&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;" and choose "Drop row"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select the row with "&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Installed OR VS90DEVENV OR NOT VS2008SPLEVEL&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;" and choose "Drop row"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Select the row with "&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Installed OR VCSHARP90EXPRESS OR NOT VCSEXP2008SPLEVEL&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;" and choose "Drop row"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Now, continue from [&lt;/span&gt;&lt;a href="http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;] and:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Now you can quit Orca and run the msi, which should install just fine. Make sure you also switch off automatic updates and error reporting as follows...&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;done&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="background-color: transparent;"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, the SDK is installed.  Now, following the instructions it says to go to the original post and follow steps 2 &amp;amp; 3 (&lt;/span&gt;&lt;a href="http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;):&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent;"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;me:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;changed step 1 to “open command prompt with Run as Admin”&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="list-style-type: circle; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;cd “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC”&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: circle; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;vcvarsall.bat &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;then:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Change to "&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Tools\Simulator&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;".&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Enter "&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;corflags SurfaceSimulator.exe /32bit+ /force&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;" (without the quotes). We need to use /force because the assemblies are strong named signed, and altering them this way will invalidate that signature. This is unfortunately unavoidable, but I haven’t found any problems from doing so. You will receive a &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;CF011 &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;warning informing you of this &lt;/span&gt;&lt;img src="https://lh5.googleusercontent.com/MYCZXW-8IfHgCGDv03ahAWZ9TgGzbrOnA_l9vQ1WVAQaMtq8PL6P4kQDP_bC947J_EpSa9RFEaoLz_HsiFebuyoI7pGSQLsiukFn1MXJEwds1DNQcdhKi5FkAusayXf5" width="15px;" height="15px;" /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Change to "&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;C:\Program Files (x86)\Microsoft Surface\v1.0&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;".&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Use the same &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;corflags&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; syntax from step 3 on the following files, one by one:&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Attract.exe&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;, &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;AttractConfig.exe&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;, &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SurfaceInput.exe&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;, &lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SurfaceOutOfOrder.exe&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;,&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SurfaceShell.exe&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Close the command prompt and launch the simulator! &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;finished step 2.  simulator appears to run.  however closing it doesn’t shut it down.  I had to go to the task explorer and kill the process tree for the simulator.  still, this is a step in the right direction.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent;"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Now, on to step 3.  but wait, I don’t have any projects yet.  Ok, we’ll come back to this.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent;"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Going back to &lt;/span&gt;&lt;a href="http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; he explains in an update how to install the samples.&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: transparent;"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent;"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;I had to do this:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;goto C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Samples and unzip “Surface Code Samples.zip” into the same dir.&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="list-style-type: circle; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;had to expand this to a different folder.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;now follow his update:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(204, 204, 204); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Edit the configuration properties for the sample solution and create an x86 platform for all projects. (this is step3, haven’t done it yet)&lt;/span&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;- Edit InstallSamples.bat&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;- Comment out the lines on either side of the set as follows:&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;::FOR /F “eol=H tokens=2*” %%A IN (‘REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Surface\v1.0 /v IsLogicalSurfaceUnit’) DO SET LogicalTableValue=%%B&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SET InstallingOnTable=false&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;::IF %LogicalTableValue%==0×1 SET InstallingOnTable=true&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;- Change the MSBuildParameters to reference the x86 PlatformName as follows:&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SET MSBuildParameters=/p:Configuration=Release;PlatformName=x86 /noconsolelogger /fl /fileLoggerParameters:LogFile=%LogFile%;Append /nologo&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;ok, now I did:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;run cmd as admin&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="list-style-type: circle; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;cd “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC”&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: circle; color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(81, 85, 92); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;vcvarsall.bat &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;cd  (where I unzipped the files)&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;InstallSamples.bat&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;“Successfully installed...”&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;“Please run the Surface Simulator to browse sample applications from the Surface Shell Application launcher”&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Hmmm, wonder what that is?  oh!! just running the simulator now has a bunch of apps in it.  Ok, there must be a directory or database where the samples got “installed” to in order to run in the simulator...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Hmm however none of the samples actually run when I open them -- timeout.  Hmmm.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Wait, maybe the XNA stuff isn’t installed?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Reading this: &lt;/span&gt;&lt;a href="http://blog.hompus.nl/2010/03/03/installing-the-microsoft-surface-sdk-on-windows-7-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://blog.hompus.nl/2010/03/03/installing-the-microsoft-surface-sdk-on-windows-7-x64/&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;download and install XNA 2.0 redist: &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=15FB9169-4A25-4DCA-BF40-9C497568F102&amp;amp;displaylang=en"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.microsoft.com/downloads/en/details.aspx?familyid=15FB9169-4A25-4DCA-BF40-9C497568F102&amp;amp;displaylang=en&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Nope, I had already done this, tried uninstalling and reinstalling.  no dice.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, what about this?  I noticed that grumpydev &lt;/span&gt;&lt;a href="http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; step 2, substep 5 was missing this file:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;setupcustomaction.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;this is mentioned at &lt;/span&gt;&lt;a href="http://blog.hompus.nl/2010/03/03/installing-the-microsoft-surface-sdk-on-windows-7-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://blog.hompus.nl/2010/03/03/installing-the-microsoft-surface-sdk-on-windows-7-x64/&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;so I’m doing this from that dir:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;CorFlags setupcustomaction.exe /32BIT+ /Force /nologo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Still no dice... everytime I launch a sample, it starts up, I click something and get “ControlsBox has stopped working” -- or similar depending on the sample.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, forget the samples.  Let’s go back to the instructions for installing the solution templates:&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;COPYING THE TEMPLATES FROM THE SDK:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: line-through; vertical-align: baseline; white-space: pre-wrap; "&gt;xcopy /s "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Surface\v1.0" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Surface\1033\"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: line-through; vertical-align: baseline; white-space: pre-wrap; "&gt;xcopy /s "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Surface\v1.0" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Surface\1033\"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: line-through; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;ok, that was bunk&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;.  those dirs don’t exist on my system.  I think he meant:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="margin-left: 36pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCSExpress\ItemTemplates\CSharp\Surface\v1.0&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;WpfSurfaceCustomControl.zip&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;WpfSurfaceUserControl.zip&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;WpfSurfaceWindow.zip&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;WpfTagVisualization.zip&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;which did exist... but hmmm, there is also... &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="margin-left: 36pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Project Templates&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; WpfSurfaceApplication.zip&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; XnaGS3SurfaceApplication.zip&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; XnaSurfaceApplication.zip&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;SO CONFUSING!!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Wait, hold on, the target directory already exists too!!:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="margin-left: 36pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Surface\1033&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;WpfSurfaceApplication.zip    &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt; text-indent: 36pt; margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;XnaSurfaceApplication.zip    &lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;each of these dirs has different files. GOOD GRIEF!!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, let’s just try running the last two commands and see if VS2010 recognizes the two templates installed in VS 10.0 dir above.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: line-through; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;cd "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(102, 102, 102); background-color: transparent; font-weight: bold; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;devenv /setup&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, after it completed it picked up the two installed templates in the VS2010.  Good!  To see this:&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Open VS2010 and go to “New Project” &lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;expand “Other Languages/Visual C#/Surface”. See:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="list-style-type: circle; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;“Surface Application (WPF)”&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: circle; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;“Surface Application (XNA)”&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;NOTE: &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee804897(v=surface.10).aspx"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://msdn.microsoft.com/en-us/library/ee804897(v=surface.10).aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; says:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;The Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5 is not required. However, if you want to develop Microsoft Surface applications by using Windows APIs, you must install the &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=119653"&gt;&lt;span style="color: rgb(19, 100, 196); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Windows SDK for Windows Server 2008 and .NET Framework 3.5&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;(I already had installed Windows SDK (not server 2008) and .NET 3.5 previously).&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Windows SDK: &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/windows/bb980924.aspx"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://msdn.microsoft.com/en-us/windows/bb980924.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Net 3.5: &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyId=333325fd-ae52-4e35-b531-508d977d32a6&amp;amp;displaylang=en"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=333325fd-ae52-4e35-b531-508d977d32a6&amp;amp;displaylang=en&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;ALSO NOTE from the same loc:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;The Microsoft Surface SDK does include project templates for XNA 3.0, but it does not include XNA 3.0 components. If you want to develop Microsoft Surface applications by using XNA 3.0, install &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=144864"&gt;&lt;span style="color: rgb(19, 100, 196); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Microsoft XNA Game Studio 3.0&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;. When you want to deploy a Microsoft Surface application that uses XNA 3.0, install &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=144865"&gt;&lt;span style="color: rgb(19, 100, 196); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Microsoft XNA Framework Redistributable 3.0&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; on all Microsoft Surface units that will run the application.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;(I had installed the XNA Game Studio 3.0 previously).&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&amp;amp;displaylang=en"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&amp;amp;displaylang=en&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Note that &lt;/span&gt;&lt;a href="http://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; also states you MUST select .NET 3.5 when creating the project from the template.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;make sure .NET Framework 3.5 is selected at the top &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;I want the XNA template, so I click that, fillin the name, location and OK. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; Horray, now I have a solution template filled in.  now I can go back to step 3 of &lt;/span&gt;&lt;a href="http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;I had to adapt these directions...&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;right click the solution and select “Configuration Manager...”&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;set “Active Solution configuration” to Debug&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="list-style-type: circle; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;from “Active solution platform” select “New...”&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: circle; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;select “x86” and OK.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;make sure that “Platform” in the list below is set to x86.&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;set “Active Solution configuration” to Release&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;select x86.&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;make sure that “Platform” in the list below is set to x86.&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;close.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Now, I wonder if we can get this to run in the surface simulator?&lt;/span&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee804880(v=surface.10).aspx"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://msdn.microsoft.com/en-us/library/ee804880(v=surface.10).aspx&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;run the surfacesimulator first&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;then hit debug in the project.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, that seemed to launch the blank XNA template in the simulator... so far, so good.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Let’s see if something works... found this quick start:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.cs.uml.edu/~holly/teaching/91550/fall2009/handouts/lab2/XNA%20Quick%20Start.pdf"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; "&gt;http://www.cs.uml.edu/~holly/teaching/91550/fall2009/handouts/lab2/XNA%20Quick%20Start.pdf&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;changing the sprite to “Resources\icon.png” (which already existed in the template) worked... I get the icon in the middle of the display.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;WOOT!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: transparent; "&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Ok, next up, time to dig into XNA and see about graphics, and shaders, etc.  I may start with simple particle sims.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-2007852861640925101?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/2007852861640925101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=2007852861640925101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2007852861640925101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2007852861640925101'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2011/02/how-to-get-surface-10-sp1-running-on.html' title='How to get Surface 1.0 SP1 running on Win7 x64 and VS2010'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-1010483060206399141</id><published>2011-01-05T11:09:00.004-05:00</published><updated>2011-01-05T11:15:10.040-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='diff'/><title type='text'>patch straight from github!</title><content type='html'>Wow, this is a cool trick...&lt;br /&gt;&lt;br /&gt;1) go to any code on github&lt;br /&gt;2) click on the "commit" link for any changeset&lt;br /&gt;3) add ".diff" to the url&lt;br /&gt;4) now copy the url and voila:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;curl [url] | patch -d [dir]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;e.g. &lt;br /&gt;&lt;br /&gt;&lt;code&gt;curl http://github.com/rails/rails/commit/268c9040d5c3c7ed30f3923eee71a78eeece8a8a.diff | sudo patch -d /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So easy!&lt;br /&gt;&lt;br /&gt;(courtesy of &lt;a href="http://www.mattvsworld.com/blog/2010/03/version_requirements-deprecated-warning-in-rails/"&gt;http://www.mattvsworld.com/blog/2010/03/version_requirements-deprecated-warning-in-rails/&lt;/a&gt; and &lt;a href="http://www.kartar.net/2009/09/output-github-commits-as-unified-diffs/"&gt;http://www.kartar.net/2009/09/output-github-commits-as-unified-diffs/&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-1010483060206399141?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/1010483060206399141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=1010483060206399141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1010483060206399141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1010483060206399141'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2011/01/patch-straight-from-github.html' title='patch straight from github!'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-3516557520136845987</id><published>2010-12-23T16:02:00.006-05:00</published><updated>2010-12-23T17:31:56.407-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bundler'/><category scheme='http://www.blogger.com/atom/ns#' term='gems'/><category scheme='http://www.blogger.com/atom/ns#' term='freeze'/><category scheme='http://www.blogger.com/atom/ns#' term='rails 3'/><title type='text'>how do you "freeze" individual gems in Rails 3?</title><content type='html'>&lt;div&gt;Ok, this wasn't documented anywhere, (the best I could find was the &lt;a href="http://edgeguides.rubyonrails.org/3_0_release_notes.html#vendoring-gems"&gt;Rails 3.0 announcement&lt;/a&gt; and the &lt;a href="http://gembundler.com/rationale.html"&gt;Bundler rationale&lt;/a&gt;) so after reading the Rails guide I hacked around with it on my own.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the old days (Rails 2) you could do something like this:&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"&gt;rake gems:unpack&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;and it would take the required gems and copy them into &lt;span class="Apple-style-span"&gt;vendor/gems&lt;/span&gt;.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But Rails 3.0 gets rid of this handy feature in favor of Bundler's approach.  Bundler's basic approach assumes that you'll always run bundle install in every deployment environment and that it can go to the internet to get the gems.  Neither of these assumptions are valid in my case.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is one way of doing this:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: courier new;"&gt;&lt;span class="Apple-style-span"&gt;bundle install --deployment&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;but that copies &lt;i&gt;everything&lt;/i&gt;, rails, ruby, 10,000 gems I've never heard of (well ya, I've heard of 'em, but sheesh) and nicely bloats the target environment.  So it seems it is all or nothing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyone else figure this out?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-3516557520136845987?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/3516557520136845987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=3516557520136845987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3516557520136845987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3516557520136845987'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/12/how-do-you-freeze-individual-gems-in.html' title='how do you &quot;freeze&quot; individual gems in Rails 3?'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-3517735517929310007</id><published>2010-12-16T07:51:00.016-05:00</published><updated>2010-12-16T08:49:00.136-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='bdd'/><title type='text'>the single most important unstated rule about BDD...</title><content type='html'>I've been co-leading a book club at work studying &lt;a href="http://www.pragprog.com/titles/achbd/the-rspec-book"&gt;the RSpec Book&lt;/a&gt;. One thing that was difficult for me and other people new to &lt;a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development"&gt;Behavior-Driven Development&lt;/a&gt; (BDD) is that it often seems like the authors modify code in the BDD part of the cycle instead of waiting until the &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test-Driven Development&lt;/a&gt; (TDD) part of the cycle.&lt;br /&gt;&lt;br /&gt;For example, the first chapters dealing with BDD seem to make a lot of changes in actual code files and only at the end of Chapter 4 do they drop the inscrutable phrase, "now we have our first &lt;span style="font-style: italic;"&gt;logical &lt;/span&gt;error." I know they mean "our first error that requires going into TDD" (because that's the next chapter), but how does this differ from all the code mucking they've already done? At first glance it looks like you can just skip around writing whatever code you want.&lt;br /&gt;&lt;br /&gt;But I've found that the authors of the RSpec Book follow a really important rule that they don't come out and say:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;When in the BDD cycle you can define new classes or methods (and even arguments to methods) BUT you are not allowed under any circumstances to change or define the implementation of those classes and methods.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;This is super important because it explains why the authors sometimes write code while they're still in the BDD phase-- they aren't skipping around after all!&lt;br /&gt;&lt;br /&gt;It makes sense when you think about it because BDD is all about the &lt;span style="font-style: italic;"&gt;behavior and interaction&lt;/span&gt; between classes (outside), whereas TDD is all about the &lt;span style="font-style: italic;"&gt;functionality and implementation&lt;/span&gt; of classes (inside).  So, of course, in BDD you'd want the flexibility to define an interface on the outside as much as possible before being driven down into TDD.&lt;br /&gt;&lt;br /&gt;Many programmers are confused at first about the difference between BDD and TDD and as a consequence, many more have blogged about the philosophical differences (google it!) but I haven't seen any clear rules before.  This rule really helps solidify the differences in practical terms so you know exactly when you are in BDD and when you aren't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-3517735517929310007?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/3517735517929310007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=3517735517929310007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3517735517929310007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3517735517929310007'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/12/single-most-important-unstated-rule.html' title='the single most important unstated rule about BDD...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-1205409077510809636</id><published>2010-11-22T07:47:00.006-05:00</published><updated>2011-03-01T11:46:13.953-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>are entropy and risk related?</title><content type='html'>A friend of mine who is a plasma physicist posted a personal version of &lt;a href="http://meetings.aps.org/Meeting/DPP10/Event/130236"&gt;his presentation&lt;/a&gt; on the nature of the instability generated by a Maxwell's Demon wire-array.  Well who doesn't like &lt;a href="http://en.wikipedia.org/wiki/Maxwell%27s_demon"&gt;Maxwell's Demon&lt;/a&gt;, the little imp who goes around subverting Newton's Second Law of Thermodynamics by decreasing entropy?&lt;br /&gt;&lt;br /&gt;Well since my friend's version had a lot more physics humor in it, I said he had invented a new field: "stand-up physicist" (although some may claim Feynman has first dibs on that)... my friend went on to say that next time he should relate the demon size collapse to our financial cycles.  Heh heh...&lt;br /&gt;&lt;br /&gt;But wait... I think that implies a really interesting question: &lt;span style="font-style: italic; font-weight: bold;"&gt;is the concept of risk (including financial risk) somehow related to entropy?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a time when our markets are being determined more and more by the math of physics and information theory, the idea that lowering financial risk is somehow akin to lowering entropy would be a very deep insight into the limits of a financial system.&lt;br /&gt;&lt;br /&gt;Think about it.  So far, Maxwell's demon hasn't beaten the 2nd law on the large... you may lower local entropy, but in the large, things always bounce back to a net entropy increase.  Sound familiar?  Markets and quants may be able to locally lower risk through use of financial derivatives, but ultimately, in the large, the markets always bounce back.&lt;br /&gt;&lt;br /&gt;Wow.  I just googled for "&lt;a href="http://www.google.com/search?client=ubuntu&amp;amp;channel=fs&amp;amp;q=risk+and+entropy&amp;amp;ie=utf-8&amp;amp;oe=utf-8#hl=en&amp;amp;expIds=17259,25907,26473,27642,27692,27698&amp;amp;sugexp=ldymls&amp;amp;xhr=t&amp;amp;q=risk+entropy&amp;amp;cp=6&amp;amp;qe=cmlzayBlbnRyb3B5&amp;amp;qesig=xuTsDS1_phQ8g6Y8ZxlhGQ&amp;amp;pkc=AFgZ2tn336LI3SR2nBcV35lsSQN7eV3hmQ-H8JQ7JCxlIwLSFgd86y0H9wcaa22ESGSqPP1c_1OAwEzqU-xQ8SqEqfBGT61UIA&amp;amp;pf=p&amp;amp;sclient=psy&amp;amp;source=hp&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&amp;amp;pbx=1&amp;amp;fp=269988b335e72e7d"&gt;risk entropy&lt;/a&gt;" and apparently people in the field are already well aware of the connection.  Well, even if it's not original, it's still a fascinating relationship.&lt;br /&gt;&lt;br /&gt;Actually, &lt;a href="http://ezinearticles.com/?Entropy-and-Risk-Management&amp;amp;id=1322103"&gt;this source&lt;/a&gt; summed it up great (duh!):&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Any project, large or small is associated with expected and unexpected  problems. The analogy mentioned above could be derived from the Second  Law of Thermodynamics. The Second law of thermodynamics deals with a  concept : Entropy. Entropy, in short, is the amount of disorderliness of  the system. Entropy is also a measure on the information contained in  an system. In information technology, entropy is considered as the  amount of uncertainty in an given system. This has a defined relation,  "As the amount of information increases, the disorderliness of a system  (entropy) decreases".&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-1205409077510809636?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/1205409077510809636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=1205409077510809636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1205409077510809636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1205409077510809636'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/11/are-entropy-and-risk-related.html' title='are entropy and risk related?'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-751724871355193099</id><published>2010-08-26T23:40:00.012-04:00</published><updated>2010-09-01T01:14:14.992-04:00</updated><title type='text'>compiling opengl-redbook examples on Lucid guest</title><content type='html'>[UPDATE]&lt;br /&gt;&lt;br /&gt;Rats! Turns out that any video setting or reboot gets  confused with the nvidia driver present -- even though it isn't set, it  doesn't play nice with the virtualbox driver... convinces it there is no  3D present and runs it in software (dirt slow).  I eventually  uninstalled it... maybe it's freeglut, but not sure.  Needs more  research.  Later.&lt;br /&gt;&lt;br /&gt;------------&lt;br /&gt;&lt;br /&gt;I'm starting a class this fall in computer graphics and I thought I'd experiment with trying to compile some of the &lt;a href="http://opengl-redbook.com/"&gt;examples in the redbook&lt;/a&gt;. I have to wait for our class copies of VisualStudio (our course is taught targeting Windows), but I wanted to try some things, so I decided to use my Lucid Lynx &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu &lt;/a&gt;10.04 instance to compile examples.&lt;br /&gt;&lt;br /&gt;First off, &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox &lt;/a&gt;&lt;span style="font-style: italic;"&gt;rocks&lt;/span&gt;. You have to hand it to the team because their 3D acceleration  is strictly &lt;span style="font-weight: bold;"&gt;super-awesome&lt;/span&gt;... it lets me run full compiz settings while running on a i7 920 GTX 260 equipped Windows 7 host.  It's fast!  Like pretty close to &lt;span style="font-style: italic;"&gt;native &lt;/span&gt;fast.  So fast that I simply use ubuntu in VM mode instead of dual-booting.&lt;span style="font-size:85%;"&gt;  (Actually, I pretty much like everything about Windows 7 too, except maybe the filesystem changes, but there are more tools available for Linux, so it helps to have the best of both worlds.)&lt;/span&gt; Make sure 3D acceleration is enabled in your vm before you start; I also used the max setting of 128 MB VRAM.  Anyway, back to the story...&lt;br /&gt;&lt;br /&gt;Once in the guest OS, I downloaded the samples via apt-get, installed the usual libs... in this case &lt;a href="http://stackoverflow.com/questions/859501/learning-opengl-in-ubuntu"&gt;the ones suggested here&lt;/a&gt;.  Like the poster I tried the shipped makefile at first and got:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="font-family:courier new;"&gt;$ make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make: *** No rule to make target `$@.o', needed by `hello'.  Stop.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ug. I suspect some dialect of gnu make doesn't like that variable name or syntax, but gave up trying to understand it too much (yeah, lazy) and switched to the suggested longhand:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;$ g++ hello.c -lGL -lGLU -lglut -o hello&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Success!  Then I ran it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;$ ./hello&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;OpenGL Warning: XGetVisualInfo returned 0 visuals for 0x24c10a0&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Segmentation fault&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ug.  Not what I wanted.  Did some &lt;a href="http://newsgroups.derkeiler.com/Archive/Comp/comp.graphics.api.opengl/2007-07/msg00129.html"&gt;poking around&lt;/a&gt; and found that "nVidia and ATI "driver" installs on linux *replace* -lGL and -lGLU default Mesa installations with their own."  So on a lark I tried&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;$ sudo apt-get install nvidia-glx-185-dev&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And it worked like a charm!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qiL6CXJqEus/THc4W_PlQgI/AAAAAAAABkE/9nFnw-Klw2M/s1600/hello.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 188px; height: 200px;" src="http://2.bp.blogspot.com/_qiL6CXJqEus/THc4W_PlQgI/AAAAAAAABkE/9nFnw-Klw2M/s200/hello.png" alt="" id="BLOGGER_PHOTO_ID_5509934636696158722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That's kind of obvious (because the VirtualBox 3D is supposed to be as clean a passthru as possible) but also kind of amazing (because the ubuntu guest is setup to use the virtualbox driver, not the nvidia 185 driver for ubuntu) -- it just worked... at least for this sample!  :)&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-751724871355193099?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/751724871355193099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=751724871355193099' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/751724871355193099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/751724871355193099'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/08/compiling-opengl-redbook-examples-on.html' title='compiling opengl-redbook examples on Lucid guest'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qiL6CXJqEus/THc4W_PlQgI/AAAAAAAABkE/9nFnw-Klw2M/s72-c/hello.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4227415345095371217</id><published>2010-08-07T14:31:00.002-04:00</published><updated>2010-08-07T14:58:32.224-04:00</updated><title type='text'>DRM should live in the document, not the device</title><content type='html'>I started taking a closer look at Kindle. A new semester is starting up and I noticed that several of the optional textbooks for the course are available on Amazon in Kindle format, so I was interested in seeing what the format could do.&lt;br /&gt;&lt;br /&gt;Here's what I found:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you are writing academic papers you can't cite Kindle versions very well.  My suggestion to the Kindle development team is to expose "Locations" as standard URIs instead of the current proprietary bookmarks that only work on Kindle.  URIs would be sharable and documentable and thus fit better with existing citation standards for electronic sources.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you are using Kindle for PC, and you have a programming book with source code samples, you can't copy/paste the samples from the app to your editor.  It's very ironic that you have to retype in code snippets when you're reading an ebook on your pc.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you have a book and a friend asks you about it, a very common social case is to say "oh, here, you can borrow it, I'm not reading it right now" -- you can't do this with the Kindle because the DRM is in the device, not the document.  I have to loan my entire library (and the Kindle too) in order to satisfy this use case.  For this reason, I'm beginning to think that DRM (document rights management) should live in the doc, and merely enforce uniqueness and have nothing to do with "rights" or licenses per se.&lt;/li&gt;&lt;/ul&gt;I know the suits will be shocked at this idea: "but but, we were going to get all this money from individual sales forced on the customers!" -- no, I don't think you would.  I think people will simply shrug and say "sorry, can't loan you the book, but you can buy your own" and then people will either say "ok", or "never mind".&lt;br /&gt;&lt;br /&gt;However as books move to this new medium, I realize that the concept of a "library" simply doesn't work with DRM in the device.  You can't loan licenses in the current model.  Of course, the publishers again want to water at the trough of infinite profits -- but I think the reality will be far worse -- libraries will simply dry up and there will be little in electronic initiative to replace them.&lt;br /&gt;&lt;br /&gt;Open formats may fill a little of the gap, but right now this is limited to academic papers and a handful of independent authors... it's hardly enough to keep libraries working... furthermore, open formats don't really encourage a library (except maybe digitally speaking) because you can just make copies of them.&lt;br /&gt;&lt;br /&gt;If DRM lived in the doc, I could buy it, I could share it, but I couldn't copy it.  If my friend had it, I wouldn't have it.  This satisfies the "scarcity" requirement of the publishing industry (without scarcity, there is no value for books or any media). &lt;br /&gt;&lt;br /&gt;But somewhere along the way, DRM became about "licenses" tied to devices.  So I can't share, I can't own, but everyone can buy their own copies.  Of course, the consumer market says "hey, well in that case, I don't use that book all the time, it's not worth the same price" -- and publishers are again shocked that consumers don't want to pay for ebooks at only 20% off.  &lt;br /&gt;&lt;br /&gt;Even the OReilly subscription model is hard to stomach at $300-400/yr for access to their entire library.  I've paid a huge amount, but at the end of the year, I own nothing.  It's really hard to see any value in that arrangement unless I'm constantly using 10 books every day, and even then... I can't share them with any colleagues.  Then again, at $50-$100 per computer graphics book and factoring that such technology books are obsolete within a couple years on average -- after a certain point, subscriptions do look "cheaper"... but it's still pretty expensive from my perspective.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I ended up buying physical copies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4227415345095371217?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4227415345095371217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4227415345095371217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4227415345095371217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4227415345095371217'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/08/drm-should-live-in-document-not-device.html' title='DRM should live in the document, not the device'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-7923534873483185988</id><published>2010-07-28T16:10:00.002-04:00</published><updated>2010-07-28T16:24:05.532-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby metaprogramming protovis'/><title type='text'>how to call lambdas without call()</title><content type='html'>One thing that is rather nifty in javascript is the ability to assign anonymous functions to variables and then simply call them. For example, &lt;a href="http://vis.stanford.edu/protovis/"&gt;Protovis&lt;/a&gt; has this &lt;a href="http://vis.stanford.edu/protovis/jsdoc/symbols/pv.Scale.html"&gt;nifty method&lt;/a&gt; for creating a mapping function from the specified domain to the specified range:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;var y = pv.Scale.linear(0, 100).range(0, 640);&lt;br /&gt;y(100);  // 640&lt;br /&gt;y(0);    // 0&lt;br /&gt;y(50);   // 320&lt;/code&gt;&lt;/pre&gt;Neat!!  Well, how about Ruby?&lt;br /&gt;&lt;br /&gt;W&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://assets0.pragprog.com/images/covers/75x90/ppmetr.jpg?1262056869"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 75px; height: 90px;" src="http://assets0.pragprog.com/images/covers/75x90/ppmetr.jpg?1262056869" alt="" border="0" /&gt;&lt;/a&gt;ell, I've been reading &lt;a href="http://www.pragprog.com/titles/ppmetr/metaprogramming-ruby"&gt;Metaprogramming Ruby&lt;/a&gt; (which is a really fun book so far) and we have lambdas.  However, with a lambda, you usually have assign the lambda and then call() the lambda.&lt;br /&gt;&lt;br /&gt;It looks like this:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;f = lambda {|x| x}&lt;br /&gt;f.call(10)  # 10&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;But I wanted this to be more like javascript's syntax, so I did some tinkering. Here's what I came up with:&lt;br /&gt;&lt;script src="http://gist.github.com/496081.js?file=lambda_no_call.rb"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-7923534873483185988?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/7923534873483185988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=7923534873483185988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/7923534873483185988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/7923534873483185988'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/07/how-to-call-lambdas-without-call.html' title='how to call lambdas without call()'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4078580801726741088</id><published>2010-05-19T11:23:00.007-04:00</published><updated>2010-05-19T11:40:26.151-04:00</updated><title type='text'>the privacy of feedly feeds</title><content type='html'>A while ago I confronted Feedly about an apparent hole in their firefox plugin on Twitter:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qiL6CXJqEus/S_QDWXoNs_I/AAAAAAAABio/Zbd_SmCdOHk/s1600/feedly-tweets.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 222px;" src="http://1.bp.blogspot.com/_qiL6CXJqEus/S_QDWXoNs_I/AAAAAAAABio/Zbd_SmCdOHk/s320/feedly-tweets.jpg" alt="" id="BLOGGER_PHOTO_ID_5473003129996686322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;They claimed they don't store credentials per-se and after further investigation I believe them, but there's still something not quite right.&lt;br /&gt;&lt;br /&gt;See, if you install the plugin, everything appears normal:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qiL6CXJqEus/S_QEGUtlqFI/AAAAAAAABi4/099aDK3p8vE/s1600/normal-mode.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 315px;" src="http://1.bp.blogspot.com/_qiL6CXJqEus/S_QEGUtlqFI/AAAAAAAABi4/099aDK3p8vE/s400/normal-mode.jpg" alt="" id="BLOGGER_PHOTO_ID_5473003953847642194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But when you turn on Firefox's "Private Browsing" mode and click the Feedly button, you &lt;span style="font-style: italic; font-weight: bold;"&gt;still see&lt;/span&gt; your feeds!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qiL6CXJqEus/S_QEaeQtR9I/AAAAAAAABjA/Bbb3iMWpdDA/s1600/cached-content.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 314px;" src="http://1.bp.blogspot.com/_qiL6CXJqEus/S_QEaeQtR9I/AAAAAAAABjA/Bbb3iMWpdDA/s400/cached-content.jpg" alt="" id="BLOGGER_PHOTO_ID_5473004300008245202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fortunately, after a while, Feedly attempts to update your feed and displays the login screen:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qiL6CXJqEus/S_QEvGL8OTI/AAAAAAAABjI/l4oy3SKvc3k/s1600/after-timeout.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 313px;" src="http://3.bp.blogspot.com/_qiL6CXJqEus/S_QEvGL8OTI/AAAAAAAABjI/l4oy3SKvc3k/s400/after-timeout.jpg" alt="" id="BLOGGER_PHOTO_ID_5473004654323054898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So this tells me that what feedly says is probably true, they don't cache your credentials in the plugin.  However, they still apparently cache content from your feeds for a little while until the next refresh period.  By itself, this content cache isn't a bad thing (it's a performance optimization and saves network bandwidth) -- but the fact that their local content cache doesn't respect privacy modes in the browser is somewhat disturbing... does that mean that they cache outside the browser's model? or does that mean that firefox doesn't secure local data?  Either conclusion would be troubling.&lt;br /&gt;&lt;br /&gt;Does this actually expose private information in practice?  I can't guess how you'd exploit it, but it certainly doesn't give me a warm fuzzy feeling either.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4078580801726741088?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4078580801726741088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4078580801726741088' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4078580801726741088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4078580801726741088'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/05/privacy-of-feedly-feeds.html' title='the privacy of feedly feeds'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qiL6CXJqEus/S_QDWXoNs_I/AAAAAAAABio/Zbd_SmCdOHk/s72-c/feedly-tweets.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-3195836132312303459</id><published>2010-05-17T14:54:00.013-04:00</published><updated>2010-05-17T16:31:30.847-04:00</updated><title type='text'>SEO's "killer app"</title><content type='html'>I was stymied when I saw &lt;a href="http://personalmoneystore.com/moneyblog/2010/05/17/pesticides-adhd-kids/"&gt;this article&lt;/a&gt; about the recent connection between pesticides and ADHD.  It wasn't the subject that I found interesting, but the hyperlinks... in particular as I was reading the article something stood out as bizarre:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;"Chemical influences like pesticides used to protect produce from insects  are believed to contribute heavily to this upward trend. Some  scientists believe it may have an even greater impact than other  environmental factors like video games, television and &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;u&gt;online  personal loan&lt;/u&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; advertisements&lt;/span&gt;&lt;span style="font-style: italic;"&gt; that may have been linked previously  to ADHD behavior."&lt;/span&gt; [emphasis mine and original link to http://personalmoneystore.com removed.]&lt;/blockquote&gt;Really? Online personal loan advertisements have been linked to inducing ADHD behavior? Of course, I was curious and clicked the link... but it only went back to a rather obnoxious personal loan advertisement on the host site.  I looked at other links in the story and realized they all pointed to the ad in interesting ways.  Like the text about US and Canadian children... "Canadian" links to "ontario-payday-loans" on the site.  Oh... oh that's dirty.&lt;br /&gt;&lt;br /&gt;I traced the whois for the site to adworkz.com, an online marketing company specializing in SEO (or Search Engine Optimization).  My first thought was that they had simply scraped the original article off the Net and then inserted links -- but I couldn't find any exact matches for this story.  However, &lt;a href="http://personalmoneystore.com/moneyblog/2010/04/02/energy-star-department-of-energy-epa-fraud/"&gt;another story&lt;/a&gt; on their site yielded &lt;a href="http://www.google.com/search?client=ubuntu&amp;amp;channel=fs&amp;amp;q=Energy+Star+%7C+Department+of+Energy+says+EPA+labels+may+be+bunk&amp;amp;ie=utf-8&amp;amp;oe=utf-8"&gt;a bunch of exact matches&lt;/a&gt; on other sites.&lt;br /&gt;&lt;br /&gt;So maybe they are doing something especially innovative for SEO... they are paraphrasing articles, which seem to be legit news stories (I mean they are unless they are scraped) - and then overlay the article with links to their ads.  Hey, I give them some credit, the links weren't completely random.&lt;br /&gt;&lt;br /&gt;However, this is still a relatively "hard" way to get the numbers required for SEO campaigns -- rewriting pieces and hand-linking them isn't the most scalable business model.  And because it takes "human-time" to do, Google can conceivably keep up with the Joneses.  But what if there was an &lt;span style="font-style: italic;"&gt;automatic way&lt;/span&gt; to paraphrase?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; SEO's Killer App&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, automated paraphrasing is exactly what is around the corner. &lt;span style="font-size:100%;"&gt;Anne Eisenberg's article "&lt;/span&gt;&lt;a href="http://www.nytimes.com/2003/12/25/technology/circuits/25next.html"&gt;&lt;span style="font-size:100%;"&gt;’Get Me Rewrite!’ ’Hold On, I’ll Pass You to  the Computer,’&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;" describes how researchers at MIT and Cornell have come up with probabilistic methods of generating paraphrased content automatically.  The &lt;a href="http://www.cs.cornell.edu/home/llee/papers/textstruct.home.html"&gt;code&lt;/a&gt; has been out there for a long time already and there are several interesting projects along similar lines such as Sujit Pal's &lt;a href="http://sujitpal.blogspot.com/2009/02/summarization-with-lucene.html"&gt;Lucene-summarizer&lt;/a&gt;, &lt;a href="http://classifier4j.sourceforge.net/"&gt;Classifier4J&lt;/a&gt;, &lt;a href="http://libots.sourceforge.net/"&gt;Open Text Summarizer&lt;/a&gt; and &lt;a href="http://www.summarization.com/mead/"&gt;MEAD&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Imagine you are an SEO marketer... you suddenly have the ability to automatically paraphrase content from other sources (even the New York Times!), but because there are no identical phrases, Google can't detect (and therefore can't block) your ranking.  In fact, it's difficult for humans to tell which is the paraphrase and which is the original... and unlike most scraped content feeds, it looks completely legit to readers who stumble across it via search engines.&lt;br /&gt;&lt;br /&gt;Mix this with other SEO techniques, such as dynamic domain generation, and sell into several different TLDs and search engines would not be able to detect or defeat the flood of seemingly legitimate links.&lt;br /&gt;&lt;br /&gt;So why am I helping the "evil" SEO marketers out there by foretelling this unstoppable weakness and possibly bringing about the demise* of search engines?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;*Yes, this is what unrestrained SEO might do.  Search engines are only used by people when they yield useful results -- when every link goes to an ad, a trick, a deception, people will stop using the service.  Notice the chilling effect that telemarketing has had on land-line phones (many people have cell-phones only now), or door-to-door salemen had on a previous era).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Counter Move&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fortunately, search engines have &lt;a href="http://portal.acm.org/citation.cfm?id=1164166"&gt;some awesome counter moves&lt;/a&gt; at their disposal.  It's the same thing that identifies spam email so readily: the target url.  SEO marketers have many many tricks, but the one thing they can't disguise is the link they want you to go to.  &lt;a href="http://www.surbl.org/"&gt;So this is how you identify them&lt;/a&gt;:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:Veranda,Verdana,Geneva,sans-serif;" &gt;"SURBLs are lists of &lt;cite&gt;web  sites&lt;/cite&gt;  that have appeared in unsolicited messages. Unlike most lists,  SURBLs are &lt;strong&gt;not&lt;/strong&gt; lists of  message senders&lt;span style="font-weight: bold;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:georgia;" &gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:Veranda,Verdana,Geneva,sans-serif;" &gt; Web sites seen in  unsolicited messages tend to be more stable  than the rapidly changing botnet IP addresses  used to send the vast majority of them... &lt;/span&gt;&lt;span style="font-style: italic;font-family:Veranda,Verdana,Geneva,sans-serif;" &gt;Many applications  support SURBLs, including SpamAssassin and filters for most major MTAs including sendmail, postfix, qmail, exim, Exchange,  qpsmtpd and others." &lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:Veranda,Verdana,Geneva,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-3195836132312303459?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/3195836132312303459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=3195836132312303459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3195836132312303459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3195836132312303459'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/05/seos-killer-app-watch-out-google.html' title='SEO&apos;s &quot;killer app&quot;'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-2673247729513700196</id><published>2010-05-12T23:39:00.004-04:00</published><updated>2010-05-14T00:31:53.453-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oil'/><category scheme='http://www.blogger.com/atom/ns#' term='energy'/><category scheme='http://www.blogger.com/atom/ns#' term='green'/><title type='text'>consumers hooked on oil? please.</title><content type='html'>I don't agree with Peter Maass' &lt;a href="http://www.democracynow.org/2010/5/10/peter_maass_on_crude_world_the"&gt;assessment&lt;/a&gt; that&lt;br /&gt;&lt;blockquote&gt;"because when you kind of get down to it, American consumers do want to  have their gasoline."&lt;/blockquote&gt;As a consumer, I'd love to spend less on gas.  One practical example of how I could do this is to telecommute to work (not every job can do this, but some can), but most corporations don't believe this is an option. How about WebEx meetings instead of business travel? Many don't believe this is as good as face time and are willing to pay for air travel.  There are many other alternatives I could list that either require unacceptable tradeoffs or drastically reduced standards of living or drastically higher expenses to support alternative energy.  The infrastructure for what he wants simply doesn't exist yet.&lt;br /&gt;&lt;br /&gt;So what are consumers going to do?  Of course they're going to want their gasoline because there is no way to make a living without it.  Give us an alternative before accusing us of inaction!  Personally, I think rising gas prices will ultimately motivate alternative energy.  As alternative energy becomes cheaper than oil, consumers will be happy to switch, as will the corporations and markets that connect them.&lt;br /&gt;&lt;br /&gt;But Maass' premise is insulting.  He thinks we can afford it and we're just being petulant. Instead, he should be focusing his energy on the existing economic system that was built on oil.  Of course we want to get off oil dependency as soon as possible and move towards sustainable energy, but Maass wants the consumer to single-handedly bear the cost of switching without any help from the structure of corporations or governments.&lt;br /&gt;&lt;br /&gt;Most of us can't afford that and Maass is forgetting where the consumer's power to spend money comes from in the first place: the ability to earn money and spend responsibly within that structure, not apart from it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-2673247729513700196?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/2673247729513700196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=2673247729513700196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2673247729513700196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2673247729513700196'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/05/consumers-hooked-on-oil-please.html' title='consumers hooked on oil? please.'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6460205088950567554</id><published>2010-05-04T11:23:00.031-04:00</published><updated>2010-05-04T17:38:53.881-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webos'/><category scheme='http://www.blogger.com/atom/ns#' term='ria'/><category scheme='http://www.blogger.com/atom/ns#' term='platform'/><category scheme='http://www.blogger.com/atom/ns#' term='open'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Ben Ward says "Link to it!!"</title><content type='html'>&lt;a href="http://benward.me/blog/understand-the-web"&gt;Ben Ward's post&lt;/a&gt; about the difference between &lt;span style="font-style: italic;"&gt;web-like&lt;/span&gt; rich applications and real web content is awesome.&lt;br /&gt;&lt;br /&gt;I think it pins down some distinctions that have been brewing for a while, and solidifies several of my own thoughts about it.&lt;br /&gt;&lt;br /&gt;For example, his statement:&lt;br /&gt;&lt;blockquote style="font-family: trebuchet ms; font-style: italic;"&gt;"If you want to build the most amazing user interface, you will &lt;strong&gt;need&lt;/strong&gt;  to use native platforms."&lt;/blockquote&gt;This is the fuel behind java applets, Flash, SVG, VRML and every other extension to the web developed so far.  It's about &lt;span style="font-style: italic;"&gt;presentation&lt;/span&gt;. It's something the W3C does exceptionally poorly, and I think they shouldn't attempt to do it at all.  It's also something that every tools company has struggled with: the only way to extend kick-ass native platforms into the browser is to create a new plugin.  The only way to get a new plugin recognized is ubiquity among the user-base.  Flash arguably won that battle, but it's a losing war in the long run because now it's Flash or nothing.  The other "open" alternatives are attempts that are valid in their own right, but have never been quite ubiquitous enough. And HTML5 simply shuffles a bunch of capabilities from plugins to the browser, which certainly makes those capabilities ubiquitous, but doesn't necessarily make them better, or even more open (as Ben points out about H.264).&lt;br /&gt;&lt;br /&gt;But Ben also makes a brilliant case for content:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;"Want to know if your ‘HTML application’ is part of the web? Link me into  it. Not just link me &lt;/span&gt;&lt;em style="font-family: trebuchet ms; font-style: italic;"&gt;to&lt;/em&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt; it; link me &lt;/span&gt;&lt;em style="font-family: trebuchet ms; font-style: italic;"&gt;into&lt;/em&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt; it. Not just  to the black-box frontpage. Link me to a piece of content. Show me that  it can be crawled, show me that we can draw strands of silk between the  resources presented in your app. &lt;/span&gt;&lt;strong style="font-family: trebuchet ms; font-style: italic;"&gt;That&lt;/strong&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt; is the web: The  beautiful interconnection of navigable content. If your website locks  content away in a container, outside the reach of hyperlinks, you’re not  building any kind of ‘web’ app. You’re doing something else.&lt;/span&gt;"&lt;br /&gt;&lt;/blockquote&gt;This idea, the linking of content, is exactly what the W3C has always excelled at.  It's awesome, the idea that I can simply link and connect pieces of content from all over the world and make my own connections and conclusions and in turn become a piece of content for someone else.  This was &lt;a href="http://en.wikipedia.org/wiki/Tim_Berners-Lee"&gt;Tim-Berners Lee's&lt;/a&gt; original vision of the web and I agree with Ben, it shouldn't be lost.  We should fight for it.  Maybe the real problem is that &lt;span style="font-style: italic;"&gt;presentation&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;content&lt;/span&gt; have gotten so tangled and confused that we've forgotten the difference?&lt;br /&gt;&lt;br /&gt;This galvanizes me to talk about some experiments I've been doing recently to make simple websites that make the distinction VERY VERY clear.  Let me show you an example:&lt;br /&gt;&lt;br /&gt;This semester, I had to produce "mini-sites" for class homework assignments.  These mini sites had to basically run as static html because they had to be viewed from the local filesystem of a TF after being zipped up and submitted.  They had to be viewable on the wide range of platforms used by the TFs, which effectively meant vanilla HTML/CSS, but I didn't want to have to code a TOC by hand either.  What I came up with was an xml file tuned exactly to my content.&lt;br /&gt;&lt;br /&gt;Take a look at the finished html page: &lt;a href="http://www.people.fas.harvard.edu/%7Elkyrala/csci-e64/kyrala_l_hw5/writeup.html"&gt;writeup.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was generated from a handcrafted xml file: &lt;a href="http://www.people.fas.harvard.edu/%7Elkyrala/csci-e64/kyrala_l_hw5/homework.xml"&gt;homework.xml&lt;/a&gt;. (You'll have to "View Source" to see the xml if you're in a XSLT capable browser like FireFox because it will automatically render the HTML for you).   There are very few presentation aspects in this xml file, and quite a few "new" custom elements I created that are specific to the structure of my assignments. It's small and ad-hoc, which is fine. It's basically a micro-format without all of the &lt;a href="http://en.wikipedia.org/wiki/Microformat#Example"&gt;extraneous &lt;span style="font-style: italic;"&gt;div&lt;/span&gt;s&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I render it with xslt using this file for the presentation layer: &lt;a href="http://www.people.fas.harvard.edu/%7Elkyrala/csci-e64/kyrala_l_hw5/homework.xsi"&gt;homwork.xsi&lt;/a&gt;. This file contains all the rejiggering and mucking about that presentation layers require.  Even so, I tried to make it as clean as possible by utilizing CSS where I could and getting creative with XSLT.  It can even provide &lt;a href="http://microformats.org/wiki/hcard-examples"&gt;microformats-compatible&lt;/a&gt; semantic markup in the generated div elements -- &lt;span style="font-style: italic;"&gt;the best of both worlds!&lt;/span&gt; Finally, I generated the static html file using a very simple ruby script: &lt;a href="http://www.people.fas.harvard.edu/%7Elkyrala/csci-e64/kyrala_l_hw5/genhtml.rb"&gt;genhtml.rb&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sure it's rough and simple (I didn't have a lot of time), but it highlights what I want to show: we don't need fancy web platforms or standards to separate content from presentation.  We can do it right now, today, with the tools we have, it just requires the right mind-set.&lt;br /&gt;&lt;br /&gt;I'd love to see WebGL, Processing and Flash sites that have &lt;span style="font-style: italic; font-weight: bold;"&gt;separate RESTful urls&lt;/span&gt; that flay out all their internal content in browseable xml or JSON microformats, &lt;span style="font-weight: bold; font-style: italic;"&gt;easy to link to, easy to transform and include in other pages&lt;/span&gt; or references. &lt;span style="font-style: italic;"&gt;(btw, Processing already does this somewhat by putting links to the source code in the applet page --  brilliant!)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'd also love to see brilliant new presentation layer technologies form, like WebGL, &lt;a href="https://wiki.mozilla.org/Education/Projects/ProcessingForTheWeb"&gt;Processing for the web&lt;/a&gt;, javascript, Flash, webkit, etc. &lt;span style="font-style: italic; font-weight: bold;"&gt;because I want to innovate and create that new killer interface and interaction&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; model&lt;/span&gt; for my content that no one has thought of before and no one else has implemented before!&lt;br /&gt;&lt;br /&gt;I think Ben's post and my experiments show a way that we can have both of these things at the same time as long as we don't get confused and tangled up in the standards war or the RIA platform war and forget the difference between content and presentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6460205088950567554?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6460205088950567554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6460205088950567554' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6460205088950567554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6460205088950567554'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/05/ben-ward-says-link-to-it.html' title='Ben Ward says &quot;Link to it!!&quot;'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-5913441782084244861</id><published>2010-05-03T21:01:00.003-04:00</published><updated>2010-05-03T21:07:08.682-04:00</updated><title type='text'>OReily's Internet Operating System FTW!!</title><content type='html'>I'm glad OReily wrote his post &lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://radar.oreilly.com/2010/03/state-of-internet-operating-system.html" target="_self" class="title"&gt;The State of the Internet Operating System&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt;." I agree with it a lot.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;I said this years ago.  In fact, I'll repeat the idea here: just like early video devs went through hell writing to non-standard graphic card memory models, early web devs have had to struggle with non-standard serialization and presentation formats. &lt;br /&gt;&lt;br /&gt;And just like back then, a crop of "device drivers" slowly formed (first from DOS systems like Miles Sound System, etc. then later via the OS) -- well it's happening now: people fed up with the conflicting standards of the w3c and webdev-hell have had it and are starting to create "web-standard" independent "drivers" -- like webkit, like jquery -- that don't care what version of HTML browser or CSS you really have, that degrade gracefully by offering "hardware abstractions" (or in this case browser and w3c standards abstractions!) And javascript is rapidly becoming the language of the new platform because no-one else is moving fast enough. &lt;br /&gt;&lt;br /&gt;In my mind it's time to put the W3C to bed where they belong -- leave them as keepers of a data standard to the semantic web, but for crying out loud, give the presentation devs a standard platform we can actually code to with the solidity and flexibility of postscript or renderman!&lt;br /&gt;&lt;br /&gt;IMHO, the next steps (great leaps forward) are standard serialization formats.  Who gives a flying &amp;amp;#&amp;amp;#@ if you are doing a GET or a POST or a JSON or an xml, or java-to-javascript, or what the hell have you -- SERIOUSLY, it's as insane as memory management was before contiguous memory controllers (does anyone remember those days?) -- it's all state serialization, it should have a freakin standard way of writing and reading no matter where it comes from or where it goes to -- I'm not talking implementation details, I'm talking raw syntax.&lt;br /&gt;&lt;br /&gt;ActiveRecord and JSON begins to get close to this, but we've got a LONG way to go before I can just say "give me an address from the database and post it to that RESTful service and write it to a memory cache over there -- and it's all the same damn syntax!  Why reinvent the wheel 80 bazillion times?&lt;br /&gt;&lt;br /&gt;/rant off&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-5913441782084244861?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/5913441782084244861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=5913441782084244861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/5913441782084244861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/5913441782084244861'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/05/oreilys-internet-operating-system-ftw.html' title='OReily&apos;s Internet Operating System FTW!!'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6698705863061379243</id><published>2010-01-08T07:02:00.004-05:00</published><updated>2010-01-08T07:54:53.154-05:00</updated><title type='text'>risk management implies socialism not capitalism...</title><content type='html'>I've been hearing several stories on NPR recently that question the ideas of an unregulated free-market economy given the recent financial meltdown.  The argument is that laissez-faire markets have been shown "not to work," there are now new doubts about whether markets are the most efficient system for managing resources.&lt;br /&gt;&lt;br /&gt;Ok, so why is this disturbing?  Because I think a critical distinction is being lost in the debate between free-markets and controlled economies. The critical distinction is a concept of &lt;span style="font-style: italic;"&gt;risk&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Unregulated free markets work.  They work well. They are extremely efficient.  Nothing I've seen disproves that.  However, they can be extraordinarily brutal -- usually when speculative bubbles pop.  The free-market theory has been that less regulation will allow these bubbles to pop sooner and smaller -- but as recent experience has shown, that's not necessarily the case.  A free-market's ideal is in information that represents actual value, but it's entirely possible for prolonged periods of speculation to exist and even grow, fueling such bubbles.  When large bubbles pop, huge sections of the economy may be at risk.  If this were allowed to happen, the results would be catastrophic, but they would ensure a quick demise to everyone who touched (and fueled) such speculation.  This doesn't mean the concept of free-market is broken, or it's not efficient.  It is cruelly efficient, but what we are really talking about is &lt;span style="font-style: italic;"&gt;risk&lt;/span&gt;, not the free-market!&lt;br /&gt;&lt;br /&gt;In fact, let me make a bold thesis: &lt;span style="font-weight: bold; font-style: italic;"&gt;all forms of risk management move away from free-market capitalism towards socialism.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm not necessarily against socialism, but let's look closely at this new distinction that is absent from the current dialogue: if you embrace risk management, it means ultimately that you are diffusing risk to other areas, you are in effect damping all the wild fluctuations of the market into a smooth, level field. Hedge funds did this by intricately linking and amplifying thousands of previously unrelated investments.  The bailout did this by spreading the losses over all American taxpayers.  The extreme end of this arrow is zero-risk: zero development, zero capital, zero life.  The extreme end of the free-market arrow is maximum-risk, which could be heaven or hell, or likely both over time.&lt;br /&gt;&lt;br /&gt;The math of hedge funds and derivatives is fundamentally unstable - in &lt;span style="font-style: italic;"&gt;every&lt;/span&gt; place it has been used, the results have been unpredictable and disastrous from the beginning of the &lt;a href="http://en.wikipedia.org/wiki/Long-Term_Capital_Management"&gt;very first hedge fund to use "zero-risk" maths&lt;/a&gt;, which lost billions of dollars in a few months.  I believe this is because people are missing the connection between risk-management and socialist-economics.  One implies the other automatically.  This becomes painfully obvious if you look at the basic premise of hedge funds: to create zero-risk investment instruments... how is such a thing possible in a capitalist system which is built on risk?  It would be like trying to build a casino where there is zero-risk... would you call it gambling?&lt;br /&gt;&lt;br /&gt;Realistically, we will always have a mixed economy in some respects. The question is not whether one socio-economic system is better than another, it's how much do you want of one or the other.  Or put simply, how much risk can we afford?  I don't think zero-risk is necessarily a good place to aim, because we've seen exactly how that turns out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6698705863061379243?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6698705863061379243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6698705863061379243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6698705863061379243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6698705863061379243'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2010/01/risk-management-implies-socialism-not.html' title='risk management implies socialism not capitalism...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-9173018422409309189</id><published>2009-12-30T11:18:00.002-05:00</published><updated>2009-12-30T11:22:45.037-05:00</updated><title type='text'>Avatar is Awesome!</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.avatarmovie.com/images/wallpaper_06_800x600.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 226px; height: 168px;" src="http://www.avatarmovie.com/images/wallpaper_06_800x600.jpg" alt="" border="0" /&gt;&lt;/a&gt;With all the awesome effects I was worried that the story might have floated off like one of the mountains in the movie -- however Cameron knocks it out of the park by providing a solid and emotionally compelling story that touches on humanity and forgiveness over greed and destruction.&lt;br /&gt;&lt;br /&gt;The technology allowing the actors to transfer their performance to their synthetic counterparts is amazing. In that respect, this movie reminded me of Jurassic Park -- on one level you're talking about genetically engineering dinosaurs -- but on another, they really created compelling animated dinosaurs!&lt;br /&gt;&lt;br /&gt;Well, in the same way, Avatar shows people transferring consciousness to synthetic alien/human hybrids, but on another level, Cameron really developed the technology to transfer the actor's "consciousness" -- their performance to the CGI models. Like Jurassic Park, that's nothing short of amazing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-9173018422409309189?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/9173018422409309189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=9173018422409309189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/9173018422409309189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/9173018422409309189'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/12/avatar-is-awesome.html' title='Avatar is Awesome!'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4590369983656108913</id><published>2009-12-01T14:57:00.003-05:00</published><updated>2009-12-01T16:01:02.931-05:00</updated><title type='text'>ontological paradox...</title><content type='html'>Noticing today's &lt;a href="http://www.rocketboom.com/ontological-paradox/"&gt;RocketBoom&lt;/a&gt; on the &lt;a href="http://en.wikipedia.org/wiki/Ontological_paradox"&gt;Ontological Paradox&lt;/a&gt; made me start musing about one of the &lt;a href="http://en.wikipedia.org/wiki/Ontological_paradox#Examples"&gt;examples&lt;/a&gt;, specifically:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;On his 30th birthday, a man who wishes to build a &lt;a href="http://en.wikipedia.org/wiki/Time_travel" title="Time travel"&gt;time machine&lt;/a&gt; is visited by a future version of himself. This future self explains to him that he should not worry about designing the time machine, as he has done it in the future. The man receives the schematics from his future self and starts building the time machine. Time passes until he finally completes the time machine. He then uses it to travel back in time to his 30th birthday, where he gives the schematics to his past self, closing the loop. Of course, the schematics must have come from somewhere.&lt;/blockquote&gt;There might be a simple way around the problem of where the information comes from if you accept the &lt;a href="http://en.wikipedia.org/wiki/Everett_many-worlds_interpretation"&gt;"many-worlds" interpretation&lt;/a&gt; of quantum mechanics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Let &lt;span style="font-style: italic;"&gt;M&lt;/span&gt; be the multiverse, or the set of all universes.&lt;/li&gt;&lt;li&gt;Let &lt;span style="font-style: italic;"&gt;u&lt;/span&gt; be a universe in &lt;span style="font-style: italic;"&gt;M&lt;/span&gt; where the man successfully develops the time machine on his own.&lt;/li&gt;&lt;li&gt;All he has to do is find any other universe &lt;span style="font-style: italic;"&gt;u&lt;/span&gt;' in &lt;span style="font-style: italic;"&gt;M&lt;/span&gt; such that the current time in &lt;span style="font-style: italic;"&gt;u'&lt;/span&gt; is equal to a previous time in &lt;span style="font-style: italic;"&gt;u&lt;/span&gt; (i.e. 30 years ago).&lt;/li&gt;&lt;li&gt;If, technically, he travels across universes from &lt;span style="font-style: italic;"&gt;u&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;u'&lt;/span&gt; (as opposed to really traveling in time in his own universe) then the information (the plans) really come from &lt;span style="font-style: italic;"&gt;u&lt;/span&gt;, not &lt;span style="font-style: italic;"&gt;u&lt;/span&gt;', so there is no spontaneous generation of information.&lt;/li&gt;&lt;li&gt;The fact that the plans generate a "time" machine which allows the loop to "close" is completely accidental since "time" travel would in reality continually travel to another universe (e.g. once in u', he would need to find a u'', etc.)&lt;/li&gt;&lt;li&gt;Also, because he is traveling between different universes (as opposed to traveling backwards in time) he doesn't break any known laws of physics.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;There are some problems with this way of thinking about things though...&lt;br /&gt;&lt;br /&gt;If there are universes "in the past" and there are no limits to how far we can go "back", it implies that there is always at least one universe right now that is undergoing the very first instant of the big bang. I don't think "many worlds" allows such a juxtaposition. It's probably not a given that a universe &lt;span style="font-style: italic;"&gt;u'&lt;/span&gt; can always be found.&lt;br /&gt;&lt;br /&gt;You might say that this doesn't matter, because he's only going back 30 years... however, once the loop is "closed", it might easily execute more than n = (the age of the universe/30) times... if you imagine it takes n universes (&lt;span style="font-style: italic;"&gt;u&lt;sub&gt;1&lt;/sub&gt;...u&lt;sub&gt;n&lt;/sub&gt;&lt;/span&gt;) to perpetuate this cycle, then the last universe &lt;span style="font-style: italic;"&gt;u&lt;sub&gt;n&lt;/sub&gt;&lt;/span&gt; in the chain must have been undergoing the first instant of the big-bang when he left his original universe &lt;span style="font-style: italic;"&gt;u&lt;/span&gt;.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-style: italic;"&gt;"why do we seem to only know about one universe"&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;There has always been another weird problem with the multiverse interpretation... supposedly, different event probabilities create different universes in which each probability actually happened.  If that's true, then &lt;span style="font-style: italic;"&gt;why do we seem to only know about one universe&lt;/span&gt; -- i.e. why does our consciousness seem always to travel with this particular branching path and not one of the others?&lt;br /&gt;&lt;br /&gt;Then I realized this isn't such a problem after all: we might only remember this universe because at any given moment our memories are the sum total of our experience along only the path we are in.  Our other "selves" would likely have different memories, but all similarly self-constrained to their paths.&lt;br /&gt;&lt;br /&gt;There's no way to "peek around the quantum veil" as it were.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4590369983656108913?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4590369983656108913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4590369983656108913' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4590369983656108913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4590369983656108913'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/12/ontological-paradox.html' title='ontological paradox...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4478947160591556051</id><published>2009-09-20T17:56:00.012-04:00</published><updated>2009-09-20T20:05:09.554-04:00</updated><title type='text'>journalism in crisis...</title><content type='html'>A while ago I had heard Bill Moyers speech regarding "&lt;a href="http://www.alternet.org/media/87376"&gt;Journalism in Profound Crisis&lt;/a&gt;".  I knew the dangers, but today the full weight of his speech hit me while reading a very tame and completely unrelated "news" article linked from a friend's facebook account.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.msnbc.msn.com/id/32884378/ns/business-reinventing_america/"&gt;story&lt;/a&gt;, which appeared on the headline Business section of MSNBC.com on Sept 20th, outlines how a family recovered from $100,000 debt in 5 years to be debt free and happier and more responsible than they had been.  At first, I thought it was just an uplifting story... but then I started to notice some odd things about the story: for one, it was copyright by CreditCards.com.  Second, the story disclosed that the family had won a PACE award which was judged by one of CreditCards.com's senior reporters.&lt;br /&gt;&lt;br /&gt;Since when do private credit card companies hire reporters?&lt;span style="font-style: italic;font-size:130%;" &gt;&lt;br /&gt;&lt;blockquote&gt;"How many other news stories are really embedded corporate press releases?"&lt;/blockquote&gt;&lt;/span&gt;The story explains that the family was holding even until "credit card companies [began] raising their interest rates" even though the family had been current on all their bills.  Credit card companies proactively raising their rates &lt;a href="http://www.philly.com/philly/business/personal_finance/090109_credit_card_reforms.html"&gt;has been described&lt;/a&gt; elsewhere as a response to the Card Accountability and Disclosure Act (CARD) and the state of the economy in general.&lt;br /&gt;&lt;br /&gt;CreditCards.com identifies itself as a broker between consumers and credit card companies. So it has a vested interest in protecting the interests of credit card companies who are it's customers.&lt;br /&gt;&lt;br /&gt;While &lt;a href="http://abclocal.go.com/wtvd/story?section=news/consumer&amp;amp;id=5951797"&gt;other stories have focused&lt;/a&gt; on the unfairness of raising rates for consumers who have always paid their bills on time, the CreditCard.com story quietly bypasses whether the rate increases were fair or just, and just commends the family for paying their debts without raising a fuss.&lt;br /&gt;&lt;br /&gt;This is brilliant &lt;span style="font-style: italic;"&gt;marketing&lt;/span&gt;, but is it &lt;span style="font-style: italic;"&gt;news&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;What's shocking isn't the story they wrote, or that they are one of MSNBC's advertising sponsors, it is that their "story" appeared as headline business news on MSNBC.com, a company that &lt;a href="http://www.msnbc.msn.com/id/21697053/welcome/"&gt;touts itself&lt;/a&gt; as "one of the most honored news organizations." Ordinarily this kind of PR story appears (or is credited) exactly where it belongs, on PR Newswire.  The fact that it was published as a story subject to the same journalistic integrity that MSNBC.com is so proud of is deeply disturbing.&lt;br /&gt;&lt;br /&gt;How many other news stories are really &lt;span style="font-style: italic;"&gt;embedded corporate press releases&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;Bill Moyers wasn't kidding about the threat to journalism.  The internet gives us a lot of power to write and read stories almost as they happen.  But it also gives  corporations the power to &lt;span style="font-style: italic;"&gt;pretend to be journalists&lt;/span&gt; without fully disclosing their motives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4478947160591556051?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4478947160591556051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4478947160591556051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4478947160591556051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4478947160591556051'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/09/journalism-in-crisis.html' title='journalism in crisis...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-8828720889356331535</id><published>2009-08-28T12:00:00.008-04:00</published><updated>2009-08-28T14:40:34.703-04:00</updated><title type='text'>a question about the "holographic principle"</title><content type='html'>I've been reading Leonard Susskind's book "&lt;a href="http://www.amazon.com/Black-Hole-War-Stephen-Mechanics/dp/0316016403"&gt;The Black Hole War&lt;/a&gt;" and trying to wrap my head around this mind-bending concept he presents called the &lt;a href="http://en.wikipedia.org/wiki/Holographic_principle"&gt;Holographic Principle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Roughly, the idea is built from the properties of entropy and temperature surrounding black hole physics.  There is a curious result that a black hole's entropy is proportional to the area of its event horizon rather than the enclosed volume.  Susskind goes on to explain that this is effectively as though all the possible information about the inside of the black hole were written on it's surface in Planck area sized quanta.  So this is a little surprising, but you expect that with black holes.  What's really weird is that this ends up letting you describe any volume of space with a 2D encoding of the surface.  Is the 3D universe just a projection of this 2D encoded surface?  Weird!&lt;br /&gt;&lt;br /&gt;Ok, not so weird... I mean, I'm a programmer, I'm very comfortable with transformations between 2D and 3D.  Most of the ones we use in computer graphics are called "information losing" transformations, because once we've rendered a scene, you can't "walk around" it from the back or sides.  However there are "information preserving" transforms that tell you how to encode exactly the same amount of information in a lower dimension, so this isn't too strange for me to grasp.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-style: italic;"&gt;Another paradox?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All this has physicists wondering if the underlying nature of reality is really a 2D surface off at the edge of the universe.  While I could see that transform springing out of the math involved (not that I've &lt;span style="font-style: italic;"&gt;done&lt;/span&gt; any of it, mind you), I have a problem with literally believing this is the structure of things.&lt;br /&gt;&lt;br /&gt;What is hard for me to grasp is that a literal interpretation would seem to imply that &lt;span style="font-style: italic;"&gt;information can propagate faster than light&lt;/span&gt; in some cases, which is another paradox!  Think of the following thought experiment: say I'm playing billiards with Susskind and I sink 5 balls in one shot.  Apart from having to be an amazing billiard player (I'm not), all these balls would have physical interactions.  According to Susskind, these interactions are really happening at the bounding surface of the universe in a sophisticated 2D "holographic" encoding and we just might think it was happening in 3D here.  Fine.&lt;br /&gt;&lt;br /&gt;But wait, how do you know that the interactions are all happening &lt;span style="font-style: italic;"&gt;locally&lt;/span&gt; on that distant surface?  If one billiard ball is represented by bits on one part of the sphere and another billiard ball is represented by bits on the opposite side of the sphere... how do they interact in a short amount of time?  You might be talking about interaction effects on the surface that might be vast numbers of parsecs apart.&lt;br /&gt;&lt;br /&gt;The interactions in our notion of space are also very fast... fractions of a sec.  How can interactions happen so quickly if the underlying "real" medium was so extended?  Does the underlying information travel faster than light when it interacts?  (i.e. "&lt;a href="http://en.wikipedia.org/wiki/Quantum_entanglement"&gt;Spooky&lt;/a&gt;" action at a distance?)&lt;br /&gt;&lt;br /&gt;This is potential paradox.  The only ways out seem to be 1) saying that the speed of light doesn't apply to propagation (interactions) in the underlying 2D surface, or 2) all information is encoded such that it's spread is somehow constrained &lt;span style="font-style: italic;"&gt;locally&lt;/span&gt; with respect to the surface.&lt;br /&gt;&lt;br /&gt;This tends to make me think that the Holographic Principle is a mathematical relationship more than representing any underlying nature of reality.  But then again I'm basing that off of naive assumptions of how optical holograms work and simple 2D and 3D projections -- perhaps there is nothing so simple about the nature of the projections Susskind is talking about?&lt;br /&gt;&lt;br /&gt;What do physicists think of this?  Is it a real problem?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-8828720889356331535?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/8828720889356331535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=8828720889356331535' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/8828720889356331535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/8828720889356331535'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/08/question-about-holographic-principle.html' title='a question about the &quot;holographic principle&quot;'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-2379115922825941228</id><published>2009-08-13T08:18:00.050-04:00</published><updated>2009-08-13T23:02:52.968-04:00</updated><title type='text'>Is health care "infrastructure"?</title><content type='html'>One of the more hotly contested issues in the current debate over the health care reform is the amount of government control over health care. Obama's plan has been labeled &lt;span style="font-style: italic;"&gt;Marxist&lt;/span&gt; by his opponents, implying that it is nothing more than an attempt to &lt;a href="http://en.wikipedia.org/wiki/Nationalization"&gt;&lt;span style="font-style: italic;"&gt;nationalize&lt;/span&gt;&lt;/a&gt; health care, a term which conjures images of evil Socialist countries greedily dividing up someone else's profits.&lt;br /&gt;&lt;br /&gt;But the government occasionally has legitimate reasons to provide common &lt;span style="font-style: italic;"&gt;infrastructure&lt;/span&gt;.  One example is the US Postal Service.  Ben Franklin saw a good communications infrastructure as vital to the growth of the nation, and he was arguably correct.  Most people don't think of the US Postal Service  as being a "nationalized" institution because there are still ways to compete (FedEx or Mail Boxes Etc.).  Competing with a government-run option is entirely possible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Who said anything about "government run"?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obama proposed the "public option" as a government-run non-profit option that will encourage competition with private insurers.  He didn't say anything about the government taking over all of the health-care industry (a truly Marxist "nationalization"), but the conservative Right has interpreted his plan to mean exactly that.&lt;br /&gt;&lt;br /&gt;The Right isn't completely "wrong" either -- it is a reasonable guess based on the history of competition in the insurance industry, which tends to take the form of acquisitions and mergers, leading to a few large fish and no small fish.  It is ultimately a numbers game: the biggest numbers win, plain and simple.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Insurance"&gt;Insurance&lt;/a&gt;  from the individual's viewpoint is simply a way to pay a &lt;span style="font-style: italic;"&gt;"guaranteed and known small loss to prevent [the possibility of] a large and possibly devastating loss."&lt;/span&gt;  The individual doesn't really know when or if something bad will happen to them specifically, but it always pays to be prepared.&lt;br /&gt;&lt;br /&gt;From the insurer's viewpoint, this looks a little different.  If I were a brand new insurance company and I had only one customer, offering him insurance at competitive rates would be a huge risk on my part.  There's only one way I can make this work, and that is to get lots and lots of customers.&lt;br /&gt;&lt;br /&gt;Now, lets say I have a lot of customers, but I'm a publicly held company.  My shareholders expect profitable quarters.  I have only a few ways of making a profit:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;increase the number of low-risk customers&lt;/li&gt;&lt;li&gt;increase premiums&lt;/li&gt;&lt;li&gt;decrease coverage (or increase coverage exceptions/pre-existing conditions)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;put a greater portion of holdings into higher-risk investments (higher risk!)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;By removing profit as a motive, Obama's "public option" would not face many of these pressures, so presumably it could provide more service for less money.  The downside is that the private for-profit health care industry would be hard pressed to compete without becoming non-profit themselves -- so it is likely that the health care system becomes nationalized gradually over time as people move over to the "public option" even though that wasn't the original intent.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Is this a bad thing?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Getting back to the idea of &lt;span style="font-style: italic;"&gt;infrastructure&lt;/span&gt;, this is where I'm torn.  I hear things like Palin's quip about "&lt;a style="font-style: italic;" href="http://www.washingtonpost.com/wp-dyn/content/article/2009/08/11/AR2009081102935.html?hpid=opinionsbox1"&gt;death panels&lt;/a&gt;" lamenting the idea that the government may be deciding who is fit to live or die -- she raises a completely valid concern but does not mention &lt;a href="http://andrewsullivan.theatlantic.com/the_daily_dish/2009/08/palinapproved-death-panels.html"&gt;&lt;/a&gt; that private insurers &lt;a href="http://www.salon.com/news/feature/2009/08/11/denial_of_care/"&gt;already have such panels&lt;/a&gt; and that they are &lt;span style="font-style: italic;"&gt;answerable to no one&lt;/span&gt;, least of all the customers they serve.  The fact is that  inevitably &lt;span style="font-weight: bold; font-style: italic;"&gt;any organization&lt;/span&gt; involved in managing insurance has to make life and death decisions about providing care coverage.  Where is the outrage against existing "death panels" in private companies like those  exposed by Michael Moore's documentary &lt;a href="http://en.wikipedia.org/wiki/Sicko"&gt;Sicko&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style="font-size:130%;"&gt;"...inevitably &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;any organization &lt;/span&gt;&lt;span style="font-size:130%;"&gt;involved in managing insurance has to make life and death decisions about providing care coverage."&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;One major difference between private companies and a national health care system is that the private company gives you no recourse, no voting power, no voice and no choice*.  A national health care infrastructure might &lt;span style="font-style: italic;"&gt;at least&lt;/span&gt; be influenced by &lt;span style="font-weight: bold;"&gt;voters&lt;/span&gt; instead of shareholders.  Assuming, of course, you don't mind a little Socialism in your health care.  But that's really scary to a lot of Americans...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;*Capitalism says you do have a choice, you vote with your dollars -- however, there is a defacto &lt;a href="http://en.wikipedia.org/wiki/Cartel"&gt;cartel&lt;/a&gt; in the insurance industry because once you have a condition you are unable to shop for competitors due to the exclusion of "pre-existing conditions" -- hence, there is little free-market competition to begin with and none when you really need it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Insurance is &lt;span style="font-style: italic;"&gt;already&lt;/span&gt; a Socialist construct!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Think about it.  Insurance basically takes a fixed amount from everyone who buys into it and tries to allocate it to where people have the most need.  This is the essence of a Marxist dynamic and just like its political counterpart, is a reaction to the harsh unregulated realities of real life.  Even the most ardent Capitalist has some kind of risk management in the form of insurance -- to not protect your investments is just plain stupid.&lt;br /&gt;&lt;br /&gt;The reason that most people don't rebel against the idea of insurance is that (unlike Marxism) it is (or was) completely optional.  You don't want to pay, fine... take your chances, or manage your risk some other way.  This sounds fine in theory, however, for most people that didn't have insurance, that simply meant taking a free ride on all the rest of us... hospitals still gave them care, those costs were still passed on to insurers and those of us who pay for insurance get the bill in the end.&lt;br /&gt;&lt;br /&gt;The only way to make insurance rationally opt-in is to &lt;span style="font-style: italic;"&gt;always deny care if you can't pay&lt;/span&gt;, even in an emergency... a stance that is so controversial that most health care organizations refuse to consider it.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;In the face of all these things, I just don't know what the right answer is.  I tend to think that health care could reasonably be considered infrastructure by the government which has a vested interest in keeping its population healthy just as it has an undeniable interest in national security.&lt;br /&gt;&lt;br /&gt;It seems unbelievably cruel to say "&lt;span style="font-style: italic;"&gt;if you can't pay, you die&lt;/span&gt;" -- yet that is the only way a truly capitalist system would work.  And I think the insurance industry has far too much invested in the profits of the existing system to turn it over to the government without a fight.&lt;br /&gt;&lt;br /&gt;Perhaps this means that the matter is moot, but I like to believe that this debate will at least get people thinking about the costs involved and what kind of system they really want.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-2379115922825941228?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/2379115922825941228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=2379115922825941228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2379115922825941228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2379115922825941228'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/08/is-health-care-infrastructure.html' title='Is health care &quot;infrastructure&quot;?'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-1868395458033275330</id><published>2009-05-03T08:53:00.020-04:00</published><updated>2009-05-03T23:53:31.947-04:00</updated><title type='text'>The Dalai Lama in Boston!</title><content type='html'>Yesterday I went to hear His Holiness The Dalai Lama speak at Gillette Stadium in Foxboro.  He is one of the most down-to-earth spiritual leaders I have ever heard.  There is no arrogance or appeals to incomprehensible mystical forces-- just plain simple concepts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Before the Afternoon Session&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I arrived for the afternoon session around 12pm during the lunch break.  The crowd was pretty diverse... Tibetans, a few Buddhist monks, some yoga and tai chi people out on the grass, New Agers, hippies, yuppies, families... people.  I wandered around the level behind the seating where all the food vendors were-- they had set up some Tibetan cultural displays and shops. (It was a little odd seeing these nestled among the pretzel vendor and the McDonalds.)&lt;br /&gt;&lt;br /&gt;The event was sponsored by the &lt;a href="http://www.bostontibet.org/"&gt;Tibetan Association of Boston&lt;/a&gt; and funds raised are going towards the construction of a new Tibetan Cultural Center in Boston. I went out and found my seating and listened to a concert of Tibetan culture being performed on the stage.  Here's a sampling:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/62y_FmSLMzs&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/62y_FmSLMzs&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The video clip shows some dancing and the Tibetan musician &lt;a href="http://www.myspace.com/penpatsering"&gt;Penpa Tsering&lt;/a&gt;.  Some of the flute music reminds me of Native American music I grew up with in Arizona.  Indeed, another one of the musicians at the event &lt;a href="http://www.last.fm/music/Nawang+Khechog"&gt;Nawang Khechog&lt;/a&gt; collaborated with Navajo flutist &lt;a href="http://www.last.fm/music/R.+Carlos+Nakai"&gt;R. Carlos Nakai&lt;/a&gt;. Nawang performed an song dedicated to the Dalai Lama.&lt;br /&gt;&lt;br /&gt;Penpa Tsering's piece with the stringed instrument really fascinated me... it reminded me of &lt;a href="http://www.youtube.com/watch?v=oJYe4g_kUj4&amp;amp;fmt=18"&gt;an oud&lt;/a&gt;, both in the intonation and in the rythmic style.  It got me thinking about the connections in a paper on Russian music history I'm writing -- Arab influences traveled up through the &lt;a href="http://en.wikipedia.org/wiki/Crimea"&gt;Crimea&lt;/a&gt; from Persia and along the Silk Road later inspired composers like Rimsky-Korsakov in music like Scheherazade -- did they also make their way into the musical traditions of Tibet?  Certainly the historical &lt;a href="http://www.silkroadproject.org/tabid/177/default.aspx"&gt;trade routes&lt;/a&gt; suggest that.&lt;br /&gt;&lt;br /&gt;Immersed in these thoughts, I realized that the concert portion was over and The Dalai Lama's talk was about to begin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;"The Path to Peace and Happiness"&lt;/span&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;The following is my recollection of parts of his talk, so I may paraphrase or interpret or quote parts out of order -- this is not a transcript.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;He walked out onto the stage and sat in his chair.  His movements were calm and unrushed, without any tightness of formality.  He drew his legs up into a crossed position in the chair, wrapped in his robes and searched around for something in the cloth bag he brought with him... then he found it and let out a chuckle to himself and everyone joined in when they saw that he had put on a New England Patriots cap to keep the sun out of his eyes.  He gave a big thumbs up and a smile.&lt;br /&gt;&lt;br /&gt;He started very simple. "We are all human beings." He pointed out that if he said "religious" it would exclude all the "non-religious", or "Tibetan" might exclude all the non-Tibetan or anti-Tibetan... so our commonality first and foremost is human.  We all want to be happy.  Our happiness must not be at the expense of others, for they too want to be happy.&lt;br /&gt;&lt;br /&gt;He said that some people have attributed magical healing powers to his blessings, but he explained "if that were so, I wouldn't have needed &lt;a href="http://news.bbc.co.uk/2/hi/south_asia/7662729.stm"&gt;surgery&lt;/a&gt;," and chuckled.  However he offered another interpretation -- he noted that his doctor remarked how young his organs looked relative to his age -- this perhaps can be attributed to long practice in calm thought and compassion. He noted that scientists have studied the effects of stress on people and the positive health effects of happiness, so this is not too hard to believe.&lt;br /&gt;&lt;br /&gt;The Dalai Lama is different than most spiritual leaders in that he embraces and &lt;a href="http://www.amazon.com/Dalai-Lama-at-MIT/dp/0674023196"&gt;supports science&lt;/a&gt;. He enjoys connecting scientific and Buddhist insights, and it seems for him to be a way to more deeply understand the nature of things.  This is very refreshing in a world where the choices seem increasingly between &lt;a href="http://www.gallup.com/poll/114544/Darwin-Birthday-Believe-Evolution.aspx"&gt;spirituality devoid of reason&lt;/a&gt; and &lt;a href="http://www.wired.com/techbiz/it/magazine/17-03/wp_quant?currentPage=all"&gt;reason devoid of spirituality&lt;/a&gt;.  (&lt;span style="font-style: italic;"&gt;This effort goes beyond such narrow confines as "religion" -- for example, he is helping to launch a &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.boston.com/news/education/higher/articles/2009/03/11/dalai_lama_to_help_launch_mits_spiritual_center/"&gt;spirtual center at MIT&lt;/a&gt;&lt;span style="font-style: italic;"&gt; focusing on ethics in business and science.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Tying into his focus on essential humanity, he notes that ethics, compassion.. these things are more basic than institution, religion, etc.  We need them as &lt;span style="font-style: italic;"&gt;human beings&lt;/span&gt;.  In this way, the Dalai Lama is trying to broaden his message beyond Tibet, beyond Buddhism... beyond religion... to something that applies to all of us in the world.&lt;br /&gt;&lt;br /&gt;Then he gave some advice for how to attain happiness.  For one, if you can widen your focus from yourself to the larger context, this can reduce your stress.  He gave some examples, but I thought of the most striking example I know, the famous picture "&lt;a href="http://en.wikipedia.org/wiki/Earthrise"&gt;Earthrise&lt;/a&gt;".  When you realize your troubles next to all the other thousands of human beings who are going through similar things... it helps to calm your stress.&lt;br /&gt;&lt;br /&gt;He noted that sometimes scientists and politicians tend to use the words "I" and "me" a lot.  These words narrow one's focus, making small problems seem much more stressful.&lt;br /&gt;&lt;br /&gt;Another thought he offered was that even when there is very bad news, there are also positive effects.  For example, although being exiled from his homeland was bad, it has given him the opportunity to talk to many different people and spread awareness in the world.  So, every time he hears or experiences something bad, he tries immediately to shift his perspective to notice something good that will come out of it... this also calms stress.&lt;br /&gt;&lt;br /&gt;He did touch on the question of "freeing Tibet"-- he said that Tibet would even be willing to be part of the PRC if they were allowed to keep their culture and their language.  Of course, this opens up a much larger and more complex set of issues that he didn't get into.  He did invite observers from all nations into Tibet -- "if you see that conditions are as the Chinese say, then my information was wrong and I humbly apologize."  I assume he is speaking here of the spiral of violence between rebel and PRC forces.&lt;br /&gt;&lt;br /&gt;Perhaps it is impossible at this point to separate The Dalai Lama's message from the conflict in Tibet, however he says he wants to keep the dialogue open, searching for a non-violent  "win-win" solution that benefits both sides.  There is much I don't know or understand in this conflict.  The U.S. and China are interested in this area strategically for different ends... for China, it serves a similar strategic interest to our historical "&lt;a href="http://en.wikipedia.org/wiki/Manifest_Destiny"&gt;Manifest Destiny&lt;/a&gt;," which places us in a difficult position to claim moral superiority or defense of an indigenous culture.  Yet, we have a greater recognition and respect for these cultures now... to lose them would be a incredible loss to the world.  I think many people agree that we should do all we can to preserve these traditions for historical reasons if nothing else.&lt;br /&gt;&lt;br /&gt;But, at least in The Dalai Lama's case, these traditions are surprisingly modern in their application. Regardless of our technology, the principles of how we relate to each other and form meaningful relationships have not changed in thousands of years. The Dalai Lama is remarkably clear in applying Buddhist principles to everyday modern life.&lt;br /&gt;&lt;br /&gt;We need his voice in this world, now more than ever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-1868395458033275330?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/1868395458033275330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=1868395458033275330' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1868395458033275330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1868395458033275330'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/05/dalai-lama-in-boston.html' title='The Dalai Lama in Boston!'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4246163524226211790</id><published>2009-03-15T12:52:00.007-04:00</published><updated>2009-03-15T14:31:03.367-04:00</updated><title type='text'>web 3.0 needs a javascript package manager</title><content type='html'>Javascript has gotten huge with Web 2.0 techniques.  Libraries like &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt;, &lt;a href="http://script.aculo.us/"&gt;Scriptaculous&lt;/a&gt;, etc. etc. have helped redefine the role of Javascript from being a rag-tag script-kiddie language to becoming a viable platform for the web, competing with the likes of Flex and Silverlight.  Javascript is getting serious attention from Google (ala &lt;a href="http://code.google.com/apis/v8/design.html"&gt;V8&lt;/a&gt;) as a serious language with serious compiler design.  In short, it's a glorious time to be using Javascript on the web.&lt;br /&gt;&lt;br /&gt;So while the iron of Javascript infrastructure is hot, I have an idea for the next generation of the web:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;the time has come for a javascript package manager.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;No, I'm not talking about javascript loaders like &lt;a href="http://jspkg.sourceforge.net/"&gt;jspkg&lt;/a&gt; or &lt;a href="http://getsprockets.org/"&gt;sprockets&lt;/a&gt; (although those are awesome efforts).  I'm talking about a real package manager like Debian.  Let me describe the growing problem and why I think a package manager might be a good solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Problem:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Different sites require certain versions of scripts to run.  Right now, site maintainers do this by downloading a copy of the library to serve from their site.  This is fine if the site is simple and self-contained, but if you add several portlets to your site (a couple ad-rotators, some captchas, social site scripts), pretty soon you run the risk of accidentally including several copies of the same library in your page, all from different domains.&lt;br /&gt;&lt;br /&gt;This sops up an enormous amount of bandwidth. Rich pages routinely download 1-2 Mb per page load... this is only going to get worse.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Solution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What we need is a package manager for Javascript like Debian's &lt;a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool"&gt;APT&lt;/a&gt; or Ruby's &lt;a href="http://rubygems.org/read/book/1"&gt;rubygems&lt;/a&gt;.  Some way that the page can say "I need so-and-so version of this Javascript library in order to run."  Then the browser can manage these javascripts in a secure cache -- if you have already retreived the version required, good. If not, then the browser will get a copy for you.  The browser only gets new javascript if the page contains an updated version dependency. Furthermore, if a library depends on another library, the version dependency tree can be managed and sub-libraries can be &lt;span style="font-style: italic;"&gt;automatically loaded once and only once&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Because the browser would be taking a more active role in managing scripts for separate domains in the same store, some work along the lines of Chrome needs to be done to make sure that script execution across multiple site clients remains secure and robust.  Chrome is already leading the way on this, so I think it's doable.&lt;br /&gt;&lt;br /&gt;A robust, integrated package management system for browsers would reduce bandwidth costs and at least double or triple the loading speed of AJAX web applications.  That's something everyone would like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4246163524226211790?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4246163524226211790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4246163524226211790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4246163524226211790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4246163524226211790'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/03/web-30-needs-javascript-package-manager.html' title='web 3.0 needs a javascript package manager'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4276640683190945423</id><published>2009-03-13T11:56:00.010-04:00</published><updated>2009-04-08T00:54:57.642-04:00</updated><title type='text'>Communism 2.0?  More like 0.2 alpha.</title><content type='html'>Bruce Sterling's post, "&lt;a href="http://blog.wired.com/sterling/2009/03/communism-20-on.html"&gt;Communism 2.0&lt;/a&gt;" over at WIRED caught my eye today.  He talks about a new resurgence of communist ideas thanks to the global market meltdown -- Marxist philosophers are meeting in London this week with the thesis "from Plato onwards, communism is the only political idea worthy of a philosopher."&lt;br /&gt;&lt;br /&gt;When the Soviet Union "fell" down many people thought this meant that Communism utterly failed (&lt;span style="font-style: italic;"&gt;according to our vastly simplified propaganda&lt;/span&gt;).  Well, now that the global market meltdown is laying waste to the economy, many people are saying that Capitalism has utterly failed (&lt;span style="font-style: italic;"&gt;according to their vastly simplified propaganda&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;This is dangerous talk, and not simply because of "our side" vs. "their side"... it's dangerous because irrational debate of utopia/dystopia is still volatile enough to end millions of lives in this century just like it did in the last century. Capitalism is just as loaded a word as Communism thanks to the Cold War, but if you strip away all the rhetoric and attached meanings, there is a simple fact at the core of Capitalism that is testable and proven:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Capitalism has a means for generating income, not simply dividing it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Communist theory is oddly silent on the subject of generating income.  The idea is that everyone will simply do the right thing. Marx neglected to say anything specific about how his Communist ideal would be attained... the underlying mechanism is left for the reader to "feel" as would a 19th century Romantic.  Marx says that in the perfect Communist society, resources are distributed exactly where they need to go and people do exactly the work they need to do since they work for each other.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;But how?&lt;/span&gt;  How does a resource distribution system just magically know how to work? The 20th century answer to this was that an "appointed" leader makes the decisions for you.  However the whole period from the 18th to the 20th centuries was about showing the flaw and futility of top-down aristocratic rule.  Even when the ruler is kind and "works for the people", it doesn't work.  Things change faster than a central authority can react -- if you can't react, you don't adapt -- you die.&lt;br /&gt;&lt;br /&gt;Some would argue that matches the evidence of what happened in the USSR and nearly happened in China before Deng Xiaoping's reforms.  Or what is still happening in Cuba.  There should be little doubt at this point that top-down communism (like any aristocracy) simply does not work.  It's not because we didn't try hard enough, or weren't selfless enough.&lt;br /&gt;&lt;br /&gt;So, is there another way that Communism might work without being top-down?  Something closer to Marx's ideal, rather than some of the transition states he described?  Well, think seriously about &lt;span style="font-weight: bold; font-style: italic;"&gt;how&lt;/span&gt; that ideal would work... it's a difficult problem to solve.&lt;br /&gt;&lt;br /&gt;The only underlying mechanism I can think of is a distributed network of technology and humans that can make their own decisions and adapt locally to changing situations.  But this sounds an awful lot like a democracy... there's no one to "enforce" that you do things for someone you don't interact with.  And if you follow that idea further, you ask how will resources be optimally distributed in such a network and you come straight back to something that sounds an awful lot like a market driven economy.&lt;br /&gt;&lt;br /&gt;But the Communist philosophers haven't gotten unstuck from the 19th century to answer these difficult questions. They are still arguing that you should believe them because of their passions.  Until they can describe an underlying mechanism of Communism they are simply promoting unfounded speculation as a socio-economic theory and playing a very dangerous and foolish game with our lives in the process.&lt;br /&gt;&lt;br /&gt;This crisis is real.  The millions who died in the name of 19th century utopian ideologies were real.  It's time to "set aside our childish things" and face these problems rationally or embrace utter destruction as a species.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4276640683190945423?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4276640683190945423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4276640683190945423' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4276640683190945423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4276640683190945423'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/03/communism-20-more-like-02-alpha.html' title='Communism 2.0?  More like 0.2 alpha.'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-5789473645174352220</id><published>2009-02-23T17:15:00.003-05:00</published><updated>2009-02-23T17:42:30.367-05:00</updated><title type='text'>the bigger picture...</title><content type='html'>The previous post about the importance of technical managers is just a small example of what I think is the importance of mathematics and science education in general.&lt;br /&gt;&lt;br /&gt;At first people don't pay much conscious attention to design principles.  They simply do whatever works.  For a time this is sufficient.  But soon people begin to think about efficiency.  Maybe it's their competition or scarce resources, or their customers can't pay as much as they once did.  Whatever the motivation, when people first start considering the constraints of a problem and how to solve those problems esthetically, designers are born.&lt;br /&gt;&lt;br /&gt;But there is another layer beyond this.  When economies drive down the costs of design and organizations must no longer consider the merits of a few designs, but rather must select against an endless sea of millions of designs and practices, the question becomes "&lt;span style="font-style: italic;"&gt;what is the optimal design?&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;This is the point where mathematics gets involved.  Math is the language for describing systems and calculating their optima.&lt;br /&gt;&lt;br /&gt;This pattern should not be surprising to anyone, but sometimes the conclusions are surprising.  For one, it seems that any sufficiently advanced and refined problem domain comes to mathematics.  Whether it's how to ship a million packages a day, or how the basic building blocks of life are sequenced in various creatures -- large scale almost begs for mathematical solutions.  For another, it implies that no matter what your particular artistry entails, if you follow it long enough, you will end up having a mathematical interest of some sort.&lt;br /&gt;&lt;br /&gt;This isn't that remarkable if you look at the trends of modern science: biologists are talking with computer scientists are talking with physicists... and all of these are talking with mathematicians.  Even linguists, who started with a love and study of languages and etymology have branched into computational linguists who study language origins using statistical methods in mathematics. Some of the fields developed their own systems and specializations in the infancy of their fields that are only now being realized as special cases of more generalized fields in mathematics.  Core topics like Set Theory and Ring Theory are now prerequisites for dozens of studies in the arts and sciences from biology to finance.&lt;br /&gt;&lt;br /&gt;The lesson is clear: if you want to be the best at what you do, science and math education are the prerequisites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-5789473645174352220?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/5789473645174352220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=5789473645174352220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/5789473645174352220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/5789473645174352220'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/02/bigger-picture.html' title='the bigger picture...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-7235220807376718796</id><published>2009-02-23T10:51:00.006-05:00</published><updated>2009-02-23T23:01:36.666-05:00</updated><title type='text'>non-technical managers...</title><content type='html'>I recently read Sid Savara's &lt;a href="http://sidsavara.com/personal-development/a-software-engineers-guide-to-speaking-with-non-technical-managers"&gt;article&lt;/a&gt; about how engineers can more effectively communicate with non-technical managers. I think Sid does a great job on the engineer's side with some really good insights as to how engineers think of communication.  It's a great article that brings an honest (if somewhat naive) assumption that people simply want to communicate.&lt;br /&gt;&lt;br /&gt;But it takes two to tango, and I'd like to challenge the assumption that a non-technical* manager can be an effective manager of a technology group with the right communication.&lt;br /&gt;&lt;br /&gt;Let's use some simple logic first: Say it is possible to manage a technical group without being "technical".  Then you are implying that management decisions essentially have nothing to do with technology; management is management - maybe it's about people, maybe it's about process, but it has nothing to do with technology in any fundamental way.&lt;br /&gt;&lt;br /&gt;This leads to two supporting fallacious assumptions (which are very common in business):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ideally all management decisions in a technology group can be translated into non-technical terms. Any failures in this communication are ultimately the responsibility of your technical team to address (otherwise you'd have to learn something about technology, which you've already decided is essentially irrelevant to management concerns).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;management issues are essentially simple and easy to act upon unless someone is making them needlessly complex and/or resisting doing any real work (i.e. your technical team).&lt;/li&gt;&lt;/ol&gt;Let's put it another way:  Would you say that a non-sailor Captain could be an effective manager of a ship?  Would you say that a non-diplomat could be an effective manager of an embassy?  Would you trust a non-mechanic crew chief as an effective manager of a NASCAR race car team? Would you say that an untrained civilian could be an effective manager of a military unit?&lt;br /&gt;&lt;br /&gt;Would you say that you can be an effective owner of a sports team without knowing anything about sports or the sports business?&lt;br /&gt;&lt;br /&gt;No, because in each of these areas a knowledge of the specific problems and solutions is a &lt;span style="font-style: italic;"&gt;requirement of the role of leader&lt;/span&gt;.  Yet popular business philosophy has started with the assumption that all manager positions are essentially identical in their demands and execution.&lt;br /&gt;&lt;br /&gt;It's time to start recognizing that technology isn't always simple and that effective technology managers have to be at least somewhat technical -- it's a requirement of the job.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;* I'd like to point out that some managers consider themselves "non-technical" because they lack the domain-specific jargon or experience in a technology group.  Maybe they were a biologist, instead of a computer scientist or at least they have some appreciation or experience with science issues.  I consider these managers "technically capable" -- they are capable of understanding the arguments with some effort in learning or developing common terminology.  This is a more amenable situation because these kind of managers don't make the fallacious assumptions noted above.  They are eager to think through problems and find solutions even if they don't have the specific vocabulary. Given Sid's points of effective communication, they will rise to the very technical challenge of running a technology group.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-7235220807376718796?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/7235220807376718796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=7235220807376718796' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/7235220807376718796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/7235220807376718796'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/02/non-technical-managers.html' title='non-technical managers...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-8343713719199937605</id><published>2009-01-22T09:26:00.004-05:00</published><updated>2009-01-22T09:49:52.563-05:00</updated><title type='text'>iTunes is bad at eclectic collections</title><content type='html'>My music collection is kind of eclectic (genre-wise).  You never really know what you'll find in there... it might be Bach performed by Emile Autumn (Electronic?) or Angry Skies (Dance Pop?!)... ok so I noticed that the genres on a lot of the music are completely out of sync with reality.  They seem to assign the genre label based on the &lt;span style="font-style: italic;"&gt;artist &lt;/span&gt;rather than the individual song.&lt;br /&gt;&lt;br /&gt;So I tried "TuneUp Companion," but this just made it worse.  Now I have 57 very specific subgenres ("Electronica Mainstream", "Post-Modern Electronic Pop").. yikes!  It made everything more specific, but now my music collection is fragmented along 57 branches in a completely alien non-intuitive way.  The "Genius" feature isn't much of a help because it unfortunately ties into the same organization system to help construct it's playlists - "garbage in, garbage out" as they say.&lt;br /&gt;&lt;br /&gt;So what's wrong with this? I know iTunes is just trying to leverage existing ways of cataloging music, but the traditional ways of cataloging were born of record companies and promoters, not listeners.  Other contemporary software allows multiple tags so that you can capture all the different terms that apply to an item (such as a blog post). &lt;br /&gt;&lt;br /&gt;iTunes needs to realize that there's more than one way to organize things in the world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-8343713719199937605?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/8343713719199937605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=8343713719199937605' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/8343713719199937605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/8343713719199937605'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2009/01/itunes-is-bad-at-eclectic-collections.html' title='iTunes is bad at eclectic collections'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-3318815573644618960</id><published>2008-12-15T12:48:00.002-05:00</published><updated>2008-12-15T13:12:37.298-05:00</updated><title type='text'>KillerNIC: trend or OS "epic fail"?</title><content type='html'>I was following a friend's twitter the other day that turned me on to a &lt;a href="http://www.killernic.com/products/killerm1.aspx"&gt;product called KillerNIC&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a high-end gaming network card that advertises superior network performance in games.  At first glance, I think there's nothing to this, after all, network interfaces have become commodity items for years now -- hardly anyone buys a dedicated NIC card that isn't part of a motherboard or laptop these days.&lt;br /&gt;&lt;br /&gt;But then I come across the striking claim:  "Completely bypasses the Windows Network Stack"&lt;br /&gt;&lt;br /&gt;Wha-what?!  Ok, part of me thinks this is really cool.  Maybe its the beginning of hardware optimization of parts of the stack that were previously tightly integrated with a particular OS.  DMA and asynchronous bus access is the future!  Building-block integration stacks maybe?&lt;br /&gt;&lt;br /&gt;But another part of me says "wow, windows has really &lt;span style="font-style: italic;"&gt;epic failed&lt;/span&gt; to get to this point."  Let's see, it was cheaper and more effective to create separate hardware and completely bypass Windows Network stack than it was to deal with the cruft of 10 years and bad plug and play interrupt models?  Having been a Win32 developer... yeah, actually I can totally believe that.&lt;br /&gt;&lt;br /&gt;Apparently this card also reigns in the "&lt;a href="http://quietlightfalling.blogspot.com/2008/09/lrn2patch-open-letter-to-apple-and.html"&gt;&lt;span style="font-style: italic;"&gt;spoiled child&lt;/span&gt;&lt;/a&gt;" model of modern application behavior.  Now when McAfee or Windows Update "calls home" for updates in the middle of your game, you won't be disconnected.  The card can be configured to give maximum priority to your current focus application and idle-priority other background apps.&lt;br /&gt;&lt;br /&gt;This points to another &lt;span style="font-weight: bold;"&gt;epic failure&lt;/span&gt; of application developers.  It's gotten so bad that we simply can't trust you any more to do the right thing, so we're taking away your network privileges at the &lt;span style="font-style: italic;"&gt;hardware level&lt;/span&gt;.  Ouch!  Once again, I can totally believe that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-3318815573644618960?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/3318815573644618960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=3318815573644618960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3318815573644618960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/3318815573644618960'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/12/killernic-trend-or-os-epic-fail.html' title='KillerNIC: trend or OS &quot;epic fail&quot;?'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-118656528217969463</id><published>2008-11-02T11:07:00.004-05:00</published><updated>2008-11-18T08:11:41.109-05:00</updated><title type='text'>Magpie: monetize your friends and family...</title><content type='html'>Just ran across &lt;a href="http://mashable.com/2008/10/31/magpie/"&gt;an article about Magpie&lt;/a&gt; on Mashable today.  Magpie is basically a way to sell your friends down the river -- or in more marketing speak: "a way to monetize the popularity of your social network."&lt;br /&gt;&lt;br /&gt;Maybe this sounds like a good idea to some bright people in marketing -- after all, it's viral, it has presence and it's easy.  But why is a social network so popular to begin with?&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;What makes a social network work?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's start with the most basic social network of all: your family.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now imagine that you show up to Thanksgiving dinner, but instead of hugging your mom, you tell her that she really should check out [brandname clothing]&lt;brandname&gt;, and that [brandname gravy] &lt;brandname&gt;is much better than her homemade, and everyone should use [brandname toiletpaper] &lt;brandname&gt;after the game, (brought to you by [brandname]&lt;brandname&gt;, of course).&lt;/brandname&gt;&lt;/brandname&gt;&lt;/brandname&gt;&lt;/brandname&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, after you tell your family all this, you mention sheepishly that you weren't saying these things because you really cared about them, but because you're getting $0.12 per &lt;span class="Apple-style-span" style="font-style: italic;"&gt;impression&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Of course, your family (I hope) loves you, so maybe they'll put up with this, like so many families put up with Amway, candy-bar sales, etc.  They'll think "oh boy, I hope this is just a fad"... if it continues for a while, you might find yourself getting fewer invitations to Turkey day each year.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;What's the lesson? &lt;br /&gt;&lt;br /&gt;If you take a shared resource like a popular social network and exploit it, you may end up weakening it or destroying it (i.e. &lt;a href="http://en.wikipedia.org/wiki/Tragedy_of_the_commons"&gt;Tragedy of the Commons&lt;/a&gt;).    This kind of exploitation has already had a chilling effect on e-mail, instant-messaging, and blogging channels.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But there's a better way, if you really understand the value of social networks...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Corporations are already treated by the law as virtual people.  Why don't you simply &lt;span class="Apple-style-span" style="font-style: italic;"&gt;act like virtual people&lt;/span&gt; and start your own social networks instead of co-opting ours?  If you are really cool/hip/interesting "people", then we will follow you!  We'll tell our friends about you and they'll follow you too.  You'll have your own community to say anything you want!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And you won't be pretending, faking, or buying your friends.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-118656528217969463?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/118656528217969463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=118656528217969463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/118656528217969463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/118656528217969463'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/11/magpie-why-marketing-is-evil-part-2.html' title='Magpie: monetize your friends and family...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4089843183394651720</id><published>2008-11-01T13:24:00.005-04:00</published><updated>2008-11-18T07:58:04.954-05:00</updated><title type='text'>The dark side of subscriptions...</title><content type='html'>&lt;div&gt;I decided to do a little financial house-cleaning today and cancel any services that I don't really use anymore.  It's not that they were bad services, or even malware scams, they are legitimate services from Fortune 500 providers... I just don't need them right now. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I signed up for them originally, because it was easy, I could do it online, it was fast, and I wanted that service.  But as I found out today, sometimes they are virtually impossible to cancel once you've signed up for them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Obstacle #1: How do I cancel my service?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although the subscription buttons are easily accessible, it's hard to find a "Cancel Service" button anywhere on the account pages or in the company support pages.  I found a cryptic blurb giving a phone number or an address to send a written request to.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I noticed that the cryptic phone number was different from the main service number.  It had  different restricted service hours (for example, only 10-4 M-TH, PST only) than the "purchase" side of the business which had 24 hour sales support.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Obstacle #2: Automated Call Centers&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many companies &lt;span class="Apple-style-span" style="font-style: italic;"&gt;claim &lt;/span&gt;to have wonderful customer service records.  However,  "cancellation" was buried in the voice mail of this company, making it very difficult to navigate to the correct option. I was disconnected repeatedly while trying to cancel their service.  Each time, I navigated painstakingly through a slightly different path in the system, was put on hold for 5-10 minutes, sometimes contacted by a service rep who told me I'd be forwarded to the "correct department" and then simply disconnected.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What kind of customer service is this?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Obstacle #3: Customer Service&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally I got through to someone, who kept me in call no less than 30 minutes.  &lt;span class="Apple-style-span" style="font-style: italic;"&gt;30 MINUTES&lt;/span&gt;!  We went through all the options they offered, all my reasons for not continuing the service.  I had to repeatedly defend my reasons for wanting to cancel the subscription.  Why?  Why should they even ask as a condition of "granting" my request? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the 90's we saw the rise of the corporate-slave worker.  Are we now seeing the rise of the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;corporate-slave customer&lt;/span&gt;?  Do you have no rights to stop paying for a service you don't use!?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is ridiculous and it has to stop.  So here's my challenge to the industry:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="color: rgb(204, 0, 0);"&gt;If you make a subscription service easy to join, make it equally easy to cancel.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Otherwise you aren't being honest about your business model, you're not really keeping customers by offering a wonderful service that they use, you're merely keeping them by way of a corporate-protection racket.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Going forward, I refuse to sign up for any more subscription services unless they meet this simple criteria.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4089843183394651720?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4089843183394651720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4089843183394651720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4089843183394651720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4089843183394651720'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/11/subscriptions-why-marketing-and-sales.html' title='The dark side of subscriptions...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6162644134717506294</id><published>2008-10-13T19:24:00.003-04:00</published><updated>2008-10-18T12:40:48.641-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='I'/><title type='text'>no-risk investments...</title><content type='html'>I woke up this morning to an NPR segment featuring a UK professor calling for no less than a revocation of the 1997 Nobel prize in economics regarding option pricing formulae.  At first I thought he was a bit extreme... now I'm not so sure.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://en.wikipedia.org/wiki/Black-Scholes"&gt;Black-Scholes method&lt;/a&gt; states a formula for certain strict assumptions that describes how to build a "risk-free" portfolio.  Since this formula has been adopted by the Financial Accounting Services Board and widely used throughout the industry for predictions of options pricing it has garnered a fair amount of negative attention with the recent world economic crisis in the news.  But is this unfair attention?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This news woke me up.  I feel as though I must be missing something, like I've slept through the past decade of hedge funds, etc. never really understanding the mechanism... but I understand enough math now to at least comment on the apparently disasterous use of these ideas.  Maybe I'm missing something, and a specialist can clarify why it's not really as bad as it sounds...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, as I understand it, the basic mechanism is a clever way of observing the derivative of the valuation such that a hedge is perfectly placed so that either way the stock goes, the option will compensate and result in a magically "risk-free" portfolio.  Obviously, this is huge news for anyone in Wall Street, since there is always substantial risk associated with every transaction.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, there are some known shortcomings with this model that economists were well aware of.  For one, it makes certain strict assumptions about drift and volatility, namely that they are constant.  Volatility is the more important concept here, because while it couldn't be known directly, there was a clever way of flipping the Black-Scholes around so that you could solve for the actual volatility given historical data.  So quickly economists found that this value was anything but constant in the real world.  In fact, they talk of volatility-spaces as a case of solution spaces that can have many shapes depending on the type of investment.  But these are simple statistical generalizations -- there is no underlying theory of the shape of these spaces!! (at least not yet)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, what we have is a system that allows us to concretely know the shape of the space AFTER it has happened, but has zero-predictive power to tell us what &lt;span class="Apple-style-span" style="font-style: italic;"&gt;will &lt;/span&gt;happen.  Now, economists apparently desparately wanted this space to have at least local-linearity, but keep in mind the essence of the space is unknown and is at least indirectly related to a geometric brownian factor (i.e. random!) -- so it's extremely unlikely that any linearity exists in the first place... but it's safer to say that we simply &lt;span class="Apple-style-span" style="font-style: italic;"&gt;don't know what it is&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now what mathematician in their right mind would suggest that this was anything more than simply shuffling one unknown into another variable and then claim that at least it is "&lt;a href="http://en.wikipedia.org/wiki/Black-Scholes#Black.E2.80.93Scholes_in_practice"&gt;somewhat useful as a first order approximation which can be adjusted&lt;/a&gt;"?  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Are you kidding me?  Based on what?  Based on local linearity assumptions and cooperative historical data of the first few years?!?  The space is unknown man!  What made them think they could "adjust" it in any way predictively that made sense?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it didn't even work that well when it was first introduced.  Look at Merton's first board position at a hedge company that &lt;a href="http://en.wikipedia.org/wiki/Robert_C._Merton"&gt;failed so spectacularly in 1998&lt;/a&gt; that again the Fed was concerned about bailing out the industry.  How did I miss that towards the end of the dot com bubble?!  4.6 billion dollars in four months!!  (of course back then I'd never even heard of a hedge fund).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet the Financial Accounting Services Board adopted this method of calculating options value and now it's widespread use is implicated in the worldwide economic crisis you see before you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Can someone please explain how this made any sense whatsoever?  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[update 10/18]: Paul Wilmott's &lt;a href="http://www.wilmott.com/blogs/paul/index.cfm/2008/4/29/Science-in-Finance-IX-In-defence-of-Black-Scholes-and-Merton"&gt;blog article in defense of Black-Scholes&lt;/a&gt; is an interesting read -- he's someone who does this for a living and so he has a much deeper view on it than I do certainly -- (it's a reference backing the wikipedia article and also provides additional references to check out)  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He points out that Black-Scholes is very robust &lt;span class="Apple-style-span" style="font-style: italic;"&gt;on the averages&lt;/span&gt; in spite of the obviously poor assumptions of the model, and therefore is a relatively simple model to use in practice (i.e. an industry workhorse even though it's not perfect).  There are more complicated models but not a lot of evidence that they work any better.  He asks why use more complicated models when the fat-tail isn't that important all the time?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Well, what about when it is?  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Such as when the risk suddenly becomes very high market wide and the correction deltas are huge?  Now you have a function that you assume is locally-linear (because of it's physics origins) -- but you don't.  I think Black-Scholes might only be a proper "industry workhorse" when volatility is &lt;span class="Apple-style-span" style="font-style: italic;"&gt;relatively constant&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It failed massively in 1998, and it failed massively now.  Is it coincidence that the market was experiencing wide economic volatility at both those points in time?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I still have a big question about how worst-case scenarios were investigated on this model?  If a handful of investments with high-volatility were considered in the context of stable market data, Black-Scholes might behave acceptably well on the averages.  But was a "total market meltdown" considered closely?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6162644134717506294?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6162644134717506294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6162644134717506294' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6162644134717506294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6162644134717506294'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/10/no-risk-investments.html' title='no-risk investments...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6806055614486447278</id><published>2008-09-25T22:10:00.003-04:00</published><updated>2008-09-25T22:55:57.662-04:00</updated><title type='text'>a scary-deep idea...</title><content type='html'>I stumbled across this very strange idea the other day while talking to a friend about science and religion... it's related to &lt;a href="http://quietlightfalling.blogspot.com/2008/05/philosophical-take-on-quantum-realism.html"&gt;the post I made earlier&lt;/a&gt; about quantum observers and straightening out what it actually means to be an &lt;span class="Apple-style-span" style="font-style: italic;"&gt;"observer"&lt;/span&gt; creating reality.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Assuming that &lt;span class="Apple-style-span" style="font-style: italic;"&gt;"observers"&lt;/span&gt; can create reality (and this is what the SEED article suggests has been shown experimentally over and over again) -- I raised one of my biggest conceptual problems with the idea: given multiple observers, how do we all "agree" to create the same reality?  If we don't create the same (or at least similar) reality, then how can we communicate about it at all?  More to the point, how come the observers seem unable to shape reality by their will?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;She took up this last point by referring to a modern theologist's view that we also can't walk on water because every cell in our body would have to believe it was true in order to succeed...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At first I thought how silly, but then maybe there's something to that... what if it wasn't just every cell in your body, but every cell, every rock, everything?  I thought specifically of something I read of Feynman's talking about another aspect of quantum physics: that there is really no separation, no distinction at that level between particles, rocks, plants, people... stars... it's all part of the same &lt;span class="Apple-style-span" style="font-style: italic;"&gt;oneness&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then I thought of something really strange... wouldn't it be funny if all the experiments and the maths weren't wrong, just our narrow interpretations of the meaning?  What if everything in quantum physics was pointing to the idea that there was and had only ever been One Observer infinitely observing Himself unfold?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;...I paused and thought of the imagery of Buddhism, lotus petals and Mandlebrots infinitely shimmering in space and time...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Science can only take you so far, then you must dream...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6806055614486447278?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6806055614486447278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6806055614486447278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6806055614486447278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6806055614486447278'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/09/scary-deep-idea.html' title='a scary-deep idea...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-2130123029639767277</id><published>2008-09-24T21:38:00.002-04:00</published><updated>2008-09-24T21:43:09.241-04:00</updated><title type='text'>history, math and misery...</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; "&gt;&lt;div&gt;Oh, so let me tell you about my history class.. I had a weird revelation today.  As we were going through all these philosophers and statisticians views on the industrial revolution, I began to think, "wow, all these horrible living conditions, etc. were the result of really poor models of business."  The curious thing is that many of them were (and still are) mathematical models!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, with tons of surplus labor, the early industrial businessman seemed able to approximate labor as (people x hours) = value.  As each person cost money in wages, they desired to keep that side low, while simply scaling the hours to 12 or 14 per day (children too).  As time went on, they slowly realized that worker efficiency diminished past a point the more hours worked... so "counter-intuitive" to the earlier model, they had to factor in shorter work days with more breaks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another camp believed that you should only pay workers subsistence wages -- because if given more, they would spend it on "recreation" or "procreation" (ha!).  Population was viewed as a fundamental problem because food was determined to rise arithmetically, while unconstrained population grew geometrically (the simple models of the time) -- hence the ideal was to keep the population low by keeping the poor working so hard they had no time for anything else!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unbelievable!  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But something about all this suddenly struck me as a set of problems that has been undergoing successive refinement over the generations.  For example, Nash's equilibrium is a drastic improvement on Adam Smith that more closely approximates investor behavior... and in so doing, determined the behavior of a whole new generation of economists.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Business always looks so random at the low level, but high-up there is a definite pattern of improvement after horrible costs and destruction -- I hate to think it, but historically speaking, perhaps pain is the best teacher after all?  It's startling to think of this like some big genetic algorithm that is slowly crawling through the optimal ways to run business and increase production.  Still, it's also very exciting, because it means the better the mathematical models, perhaps the less suffering we need before we learn...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Through better math, perhaps we can save the world.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-2130123029639767277?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/2130123029639767277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=2130123029639767277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2130123029639767277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2130123029639767277'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/09/history-math-and-misery.html' title='history, math and misery...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-1785518114518112014</id><published>2008-09-18T20:46:00.013-04:00</published><updated>2008-09-25T23:08:06.981-04:00</updated><title type='text'>daydreams on a strange loop...</title><content type='html'>I came up with these fanciful meanderings after reading &lt;a href="http://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach"&gt;Godel, Escher, Bach&lt;/a&gt; by Hofstadter a few years ago... I was thinking about it again today so I dug it out of some old linear algebra class notes.  It's fairly crazy in the details, but the "dance" of it is fun... don't take it too seriously, unless you take it as a warning of the dangers of sleep deprevation mixed with studies in linear algebra...  &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-lk&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The fundemental problem that &lt;a href="http://en.wikipedia.org/wiki/G%C3%B6del's_incompleteness_theorem"&gt;Godel's Incompleteness Theorem&lt;/a&gt; describes is that any untrivial formal system is either incomplete or inconsistent.  However, a super-system may be built around the first system that &lt;span class="Apple-style-span" style="font-style: italic;"&gt;does&lt;/span&gt; completely and consistently describe it!  The trick is, you have to go "outside" the system you want to describe in order to fully describe it (Hofstatder calls this a "strange loop").&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The reason this isn't a terribly useful solution is that the super-system itself can be shown to be incomplete or inconsistent.  In fact, no matter how many systems you layer on top of each other to fix things, there is always one outermost layer that suffers from this problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, combining two other things I read about (&lt;a href="http://en.wikipedia.org/wiki/G%C3%B6del_number"&gt;Godel numbering&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Hilbert_space"&gt;Hilbert spaces&lt;/a&gt;) :&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;What if it were possible to somehow compose an infinite number of formal systems such that they converge on a finite system?  Could the outer "error" (required to describe inner systems completely) diminish wrt the total in a manner analogous to a limit?  &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Could the limit then approach a system that is both complete and consistent in spite of Godel's incompleteness theorem?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;(ED: this suddenly reminded me of a recent article I read about &lt;/span&gt;&lt;a href="http://cs.unm.edu/~forrest/projects/ndb/"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Negative Databases&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; for some reason...)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Godel numbering allows any theory or formal system to be represented in mathematical form. So, it follows that there must exist a set of Godel numbers that correspond to math in Hilbert spaces.  &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hilbert spaces are very interesting, because even though points in such spaces have an infinite number of coordinates, angles and distances measured between any such points are finite!  Weird huh?  (common applications are quantum physics, signal processing, fourier transforms, etc.)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;(ED: heh, imagining extra dimensions reminds me of that great short story &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;a href="http://www.yankeeclassic.com/miskatonic/library/stacks/literature/lovecraft/novellas/dreamswitc.htm"&gt;"Dreams in the Witch House"&lt;/a&gt; by H.P. Lovecraft... creepy!)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since points in these spaces are vectors with an infinite number of coordinates, it seems reasonable that each point vector in this space could be interpreted as a Godel numbering representing a potential formal system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since there are an infinite number of points, there must be an infinite number of formal systems being represented... yet, it's possible to define a line of finite measure from the origin of this space to any coordinate point given an angle and a distance (using polar coordinates).  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A line represents an infinite set of points... does this imply that a finite Godel numbering can somehow represent an infinite set of formal systems?  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;(ED: woah woah woah Tex, this is quite a leap...)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This raises even more questions:&lt;/div&gt;&lt;div&gt;What's the the representation of the differential term used in the limit?  &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;Does the differential actually converge towards a finite value?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;(ED: it just kind of ends here... I probably wised up by this point.  Sorry, no breakthroughs!)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-1785518114518112014?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/1785518114518112014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=1785518114518112014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1785518114518112014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/1785518114518112014'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/09/daydreams-on-strange-loop.html' title='daydreams on a strange loop...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-4535680731871034574</id><published>2008-09-13T05:10:00.050-04:00</published><updated>2008-09-20T13:37:33.490-04:00</updated><title type='text'>No REST for Web Apps...</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;[update 9/20/08: actually, the O'Reily book "&lt;/span&gt;&lt;a href="http://oreilly.com/catalog/9780596529260/"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;RESTful Web Services&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;" does a great job of distinguishing 3 categories of services: REST-ful resource-oriented, RPC and REST-RPC hybrids.  The last category is very carefully considered.  The other thing that I really like about this book is the author's "whale-fish" simile when talking about superficial details like technologies used vs. architectural underpinnings.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;My initial frame of mind when I started this post was based on several sites that I've seen promoting REST-ful apps that in my mind are clearly making "whale-fish" mistakes he talks about.  They simply haven't grasped the underlying architecture of REST enough to distinguish the difference.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;At the time I was worried that this was a general trend.  However the O'Reily book shows that the leaders of this movement know the limitations and are applying them only to the places that make sense.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;I highly recommend getting this book.]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Yesterday I stumbled into what became a vigorous debate through a simple assertion with my friend who is a Ruby programmer:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;It is impossible to write a web application without using a stateful connection of some sort.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;It's an interesting debate.  I think there's probably a difference between what he is calling "applications" and what I'm calling applications, but let's tackle it by looking at a quick history of the web and why &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST &lt;/a&gt;was so successful for web 1.0.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Pre-REST&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Before REST, users had to connect to remote systems through a terminal session or a special client.  This was ok, except remote systems could only support a (relatively) small number of connections before they reached capacity.  Even worse, the connections were idle most of the time since users are generally slower than computers.&lt;br /&gt;&lt;br /&gt;So an interesting idea was to make the systems "stateless" (i.e. sessionless), by allowing servers to handle only one request per connection instead of multiple requests.  This solved the problem of idle connections and allowed a single server to handle thousands of requests from separate users.  For static[1] web documents this was a brilliant optimization and thus the World Wide Web was born.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Cookies&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of course, almost as quickly as the Web became popular, people at Netscape wanted to build dynamic web documents -- documents that could change their content depending on who was viewing them.  Their first web application was an online "shopping cart" that could support:&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;browsing a catalog&lt;br /&gt;&lt;/li&gt;&lt;li&gt;adding an item to a virtual shopping cart&lt;br /&gt;&lt;/li&gt;&lt;li&gt;checking out and paying for the item&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;But they had one small problem: REST.&lt;br /&gt;&lt;br /&gt;With REST the user only gets to make one request and each request is completely independent of any other requests the user has made.  It's like going to a market where they have magical shopping carts: every time you put something in the cart or try to pay for it, it instantly disappears! Clearly this was unacceptable, so RFC 2109 was born: &lt;span class="Apple-style-span" style="font-style: italic;"&gt;a method of creating a stateful session &lt;/span&gt;using &lt;span class="Apple-style-span" style="font-style: italic;"&gt;cookies&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, with cookie-based sessions came performance and scalability issues.  Web applications and infrastructure unavoidably became slower and more complicated than the static web had been.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Secure Sessions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Almost as soon as the first shopping cart web-applications were deployed people also started becoming concerned about the security of their transactions.  The next logical step was proposed in RFC 2818.  This time the security concerns required a new protocol (SSL/TLS) that was layered underneath HTTP (i.e. HTTP/SSL, or HTTPS for short).&lt;br /&gt;&lt;br /&gt;However, this didn't save web developers from the complexity of managing session state, it only exacerbated it.  Now we had a stateful application (using cookies) on top of a stateless protocol (HTTP) on top of a completely separate stateful session protocol (SSL).  This added so much complexity to web applications that only the most demanding and wealthy clients (i.e. banking and commerce) can afford to develop and maintain such applications.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most web architects avoid SSL intentionally, citing poor performance and scalability and complexity of management and deployment as key problems.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;The Search for Simplicity&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the 1990's (the golden age of the early web) we didn't care about such problems, because the technology was new and exciting, the code was small, the problems were mere annoyances... and basically everything worked.  However, by the end of the 90's, systems had become complex enough that developers started to rebel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Web-fundementalism?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:18px;"&gt;&lt;br /&gt;&lt;/span&gt;One of the directions we rebelled in is a kind of web-fundementalism (a return to basics): all this "state-management" was a bad idea in the first place, we should return to REST-ful principles that worked so well the first time.  But what principles are we talking about?  URL-spaces?  Do people really understand which aspects of REST made the web 1.0 succesful?  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As I asked these questions, I realized that most of the alternative[2] proposals were simply managing session state with different technologies-- instead of using cookies they'd use GET params, GET url-spaces or POST fields; instead of webserver memory, they'd use databases.  They hadn't really changed anything.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Session management by any other name is still &lt;span class="Apple-style-span" style="font-style: italic;"&gt;session management&lt;/span&gt; and is fundementally incompatible with &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer#Claimed_benefits"&gt;the claims and assumptions of REST&lt;/a&gt;, chief among them the idea that such applications are still scalable and can support caching.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Let's explore this idea a little more since there is such resistance to it.  Say I have a web application that allows me to rent videos... you might expect such an application to have a REST-ful design with the following types of urls:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; http://videostore/signup&lt;br /&gt;http://videostore/customers/larry/rented&lt;br /&gt;http://videostore/customers/larry/cart/pay&lt;br /&gt;http://videostore/customers/larry/cancel_membership&lt;br /&gt;http://videostore/customers/larry/bill/09-17-2008&lt;br /&gt;http://videostore/customers/larry/overdue/Big_Trouble_in_Little_China&lt;br /&gt;http://videostore/videos/Harry_Potter/add_to_cart&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;On the surface, this looks beautiful... it looks REST-ful.  But let's dig into some of those assumptions:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;Below the pretty urls, is state-management.&lt;/span&gt;&lt;/span&gt; Suppose the urls are all being served by dynamically from a database. That means the web site has to read my information from the database and display it to me (but no one else) when I access a url below "/customers/larry".  One article I read said the REST-ful answer to this is basic web authentication.  But that isn't REST-ful since it's implemented with cookies!  surprise! your session's back!&lt;br /&gt;&lt;br /&gt;2) &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;None of this is even remotely cacheable.&lt;/span&gt;&lt;/span&gt; When customers cancel or sign-up, the url space changes structure. But how can I cache a url-space that is constantly changing? The simple answer is I can't/shouldn't. The "horribly-complicated-billions-of-wasted-dollars" answer is: sure, you can invest in configurable (or worse yet, "adaptive") caching at multiple levels and spend the rest of your earthly days debugging it. I can hear the sound of a thousand web developers slitting their wrists even thinking about this... gee thanks.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;3) &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;One thing I read is that REST-ful web services are easier than XML services to deploy.&lt;/span&gt;&lt;/span&gt;  It sure looks that way from the service author's point of view initially, but then some critical questions came to mind: how do you know the difference between the verbs and the nouns?  I don't want the user to accidentally cancel their membership by just browsing the site.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some people say that we should use the other two verbs in HTTP instead (PUT and DELETE). But how do you know that the client has PUT the correct format when you don't have any structural &lt;span class="Apple-style-span" style="font-style: italic;"&gt;form &lt;/span&gt;that can be validated? Does the client just have to guess until they get it right?&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I suppose the way out of that problem is to use some fancy AJAX and maybe some JSON object definitions, but now we're headed back into custom serialization territory. Haven't we been here before?  Isn't this why people stopped using SOAP in favor of simple XML and why people stopped using XML in favor of simple JSON?  Sooner or later features get added and simple isn't so simple.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;Einstein had an opinion about simplicity, he said "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;make things as simple as they need to be, but no simpler&lt;/span&gt;".  Do we really need to learn this lesson the hard way by repeatedly wasting billions of dollars in new technology cycles that have essentially been resolving similar problems?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anyway, because #1 and #2 basically break all the claims that REST makes about scalability and performance and #3 points out that it's not easier, I think that the perceived gains from simply applying a REST-like architecture to web applications is mostly falacious.  Certain kinds of web services, maybe, but never applications.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fortunately, a handful of &lt;a href="http://www.findinglisp.com/blog/2004/11/web-application-design-rest-of-story.html"&gt;other people&lt;/a&gt; were already &lt;a href="http://common-lisp.net/project/ucw/docs/html/rest/rest.html"&gt;realizing this&lt;/a&gt; back in 2004. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;State-management&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" font-style: italic;font-size:18px;"&gt;&lt;br /&gt;&lt;/span&gt;The other direction we can go--we should go, is to finally accept "stateful" web applications as a given.  Google Chrome, Adobe Flex and Microsoft Silverlight are all moving in this direction.  REST has it's place, but so do stateful applications.  It's time to recognize the architectural pros and cons of each and &lt;span class="Apple-style-span" style="font-style: italic;"&gt;use the right tool for the right job&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In some sense, this is all obvious -- it's just hard to see it because the layers of technology have always clouded the argument considerably.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;[1] It's interesting to note that Fielding, the author of REST originally thought in the context of information and media access-- he did not think of contrasting REST with &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Remote_procedure_call"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;RPC&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; - a stateful technique. (from &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer#Claimed_benefits"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://en.wikipedia.org/wiki/Representational_State_Transfer#Claimed_benefits&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;br /&gt;&lt;br /&gt;[2] There is &lt;/span&gt;&lt;a href="http://www.xfront.com/REST-Web-Services.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;one notable approach&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; that covers a certain subset of web services in a purely REST way.  However, this is not an "application" in a traditional sense, it's limited to "lookup"-style services.&lt;br /&gt;&lt;br /&gt;There is a very simple litmus test to see if your service is in this subset: Could you also implement the service less efficiently using ONLY static HTML pages?  If the answer is yes, then it qualifes.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-4535680731871034574?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/4535680731871034574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=4535680731871034574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4535680731871034574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/4535680731871034574'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/09/no-rest-for-web-apps.html' title='No REST for Web Apps...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-392040869577210153</id><published>2008-09-11T06:14:00.003-04:00</published><updated>2008-09-25T23:10:18.651-04:00</updated><title type='text'>lrn2patch: an open letter to Apple and updaters everwhere......</title><content type='html'>Look guys, I know you're probably busy creating the "next big thing" over there in Cupertino, but can you have one or two guys research the art of deploying software via patch files instead of downloading an entirely new 80MB image every time you deploy?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In fact, let's make this a global rant against the "Check Updates..." installers out there: &lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;please realize that you are using OUR computers when you design and architect these systems. &lt;span class="Apple-style-span" style="font-style: italic;"&gt;(i.e. the rude neighbor: "oh I'm sorry, were you using that?")&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;please realize that other pieces of software may be trying to update at or near the same time. &lt;span class="Apple-style-span" style="font-style: italic;"&gt;(i.e. the flood: "Me me me..." "Me too.")&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;please realize that liberal use of "restart" semantics to complete installations may be magnified by the above. &lt;span class="Apple-style-span" style="font-style: italic;"&gt;(i.e. the tantrum: "stop everything and do what I want... NOW!")&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;[added 9/25] Please. Please make your updaters run at IDLE priority... there's no reason that a system update should interrupt the user or lock up the system while the update is occuring.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;I realize that Windows forces #3 more than most devs can avoid. (mac less so, and linux is almost impervious to restarts from installs).  But aside from those exceptions, you should be treating our computers with respect.  You don't own them or the networks that connect them.  You barely own the licenses of the software on them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please take some time to respect your users.  Thanks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-392040869577210153?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/392040869577210153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=392040869577210153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/392040869577210153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/392040869577210153'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/09/lrn2patch-open-letter-to-apple-and.html' title='lrn2patch: an open letter to Apple and updaters everwhere......'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-868310668674862404</id><published>2008-09-03T01:59:00.003-04:00</published><updated>2008-09-03T02:52:16.513-04:00</updated><title type='text'>google's chrome is hot</title><content type='html'>This is my first blog posting from &lt;a href="http://www.google.com/chrome"&gt;google's chrome&lt;/a&gt;.  There's been a lot of chatter about whether this is a good idea, so here is my two cents:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Q: Firefox is already a great browser AND it's open source.  Why didn't Google just invest changes into this browser?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A: Chrome isn't simply another Mozilla-fork, it has new low-level system features and architecture.  Firefox is a great browser, and it's pushed Web 2.0 far enough to expose some serious problems in the underlying design of Web 2.0 and the browsers that support it.  Changing Firefox just isn't practical when there are this many changes... it's better to start over.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Q: "Separate Processes" per tab?  Why is that necessary?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A: The browser and web based applications are hostile territory.  You can't trust that applications developers are going to write friendly, clean, compatible code, so don't trust them.  This sounds counter-intuitive until you realize that all the rock-solid architectures do this: IP works because it fundementally assumes that communication failure is NORMAL.  Likewise, modern operating systems believe in process isolation.  It's a "good thing"(tm) that Google is now doing the same for the browser.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Q: Do we really need another browser?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A: Yes.  Application developers demand more of the web.  We should have a fully integrated debugging stack.  We should have protection against rogue or errant processes.  We should give the user visibility into what happens on their machine.  The current browser architectures address none of this.  The closest extension out there is FireBug (and FireCookie)... but this is only a start.  There are limits to what you can do within a poor javascript environment -- Google knows this because they are also web developers -- our pain has been their pain as well.  So yes, it's absolutely necessary that someone with the resources step up and help solve this mess.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, people have said the same thing about Opera for a long time, but the truth is that Opera pushed both IE and Firefox towards better CSS 2.0 compliance when it beat them badly on the ACID2 tests.   Likewise, there are serious problems with current browser architectures that have not been addressed that Google is now addressing.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More competition is never a bad thing because it motivates exactly these kinds of changes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Q: So great, now I have to design for another browser as well?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A: Unfortunately that particular problem will never go away anyway anytime soon-- we already have at least 3 major browsers (IE, Firefox and Safari).  The truth is that a certain segment will always push the latest browsers and gradually the rest will either move towards compatibility or lose market share as those sites become popular.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Q: So why use it before it becomes popular?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A: Stability.  With blogs, online banking, web mail, intranet portals -- it becomes very important that the browser not crash in the middle of edits.   If browsers were stable this wouldn't be nearly as compelling.  We rely on a nightmare of javascript to run our sites now -- shouldn't that be based on a stable VM and multiprocess model in-line with modern operating systems, not 1980's technology?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-868310668674862404?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/868310668674862404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=868310668674862404' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/868310668674862404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/868310668674862404'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/09/googles-chrome-is-hot.html' title='google&apos;s chrome is hot'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-2951703606864735465</id><published>2008-08-20T12:56:00.005-04:00</published><updated>2008-09-06T13:09:34.739-04:00</updated><title type='text'>hostile metrics...</title><content type='html'>While &lt;a href="http://scienceblogs.com/thusspakezuska/2008/08/women_with_their_sexy_hawt_bod.php"&gt;countering a blog post (#25)&lt;/a&gt; about men's involuntary glances at women, I raised an equally involuntary tendency of women to "test" men.   &lt;br /&gt;&lt;br /&gt;The primary goal of such tests seems to be to present a problem that appears to have a simple logical answer, but in fact has no correct logical answer (i.e. a trap).  A simple example would be the notorious question "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Does this make me look fat&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;?&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;I started thinking about evolutionary advantages and motivations for such behavior...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Assume that reproductive resources are scarce and they have high cost and intrinsic value for both sexes.  Anytime there are scare resources worth having, there are at least a few general success-strategies: fight, lie or wait.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's focus on "lying" as a strategy.  Imagine a selection environment rich with liars who are trying to misrepresent their true value.  Women who can't detect the liars from the nonliars are selected against evolutionarily speaking.   So the goal is to find a metric that can distinguish liars from non-liars.  But how could we do this?&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We can't test with simple logic, because they'll lie &lt;span class="Apple-style-span" style="font-style: italic;"&gt;("Are you a liar?" "No. Of course not.")&lt;/span&gt;.   But what about attacking the premise of a lie instead?   The general premise of a lie in this context would be to please the prospective mate. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here's an interesting idea... frame the concept of a "test" so that any logical answer or pleasing answer by definition fails.  Now, apply the "test" to prospective mates and watch the reaction according to the following:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) If the male responds with logic, there is always a negative answer that will assert he is wrong, i.e. this allows the test to be chained -- continue testing until he doesn't.  &lt;br /&gt;&lt;br /&gt;2) If the male ignores the test, he's not interested or not attentive enough.  This lowers confidence -- test again.&lt;br /&gt;&lt;br /&gt;3) However, if the male doesn't ignore the test, but responds without logic (non-sequitor, humorous response) in an unexpected but interesting way, this is interesting.  He's potentially demonstrated that he is attentive, but is not saying things simply to please his mate.   This raises confidence -- test again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What's interesting about this idea is that it doesn't define an end.  This is a continual testing process that merely raises or lowers confidence.  It can adapt over time.  Of course, I don't know that women really use this process, but it is an interesting hypothesis.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-2951703606864735465?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/2951703606864735465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=2951703606864735465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2951703606864735465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/2951703606864735465'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/08/hostile-metrics.html' title='hostile metrics...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6993942703252554560</id><published>2008-08-12T08:05:00.000-04:00</published><updated>2008-08-12T08:06:24.792-04:00</updated><title type='text'>entropy...</title><content type='html'>The &lt;a href="http://en.wikipedia.org/wiki/Second_law_of_thermodynamics"&gt;Second Law of Thermodynamics&lt;/a&gt; says that entropy always increases.  Ordered systems are typically lower entropy (like a clean desk) and classically, they are said to have more available energy... so the 2nd law has always been a little sad.&lt;br /&gt;&lt;br /&gt;However, what if there is a loophole?  What if we:&lt;br /&gt;1) look at increasingly complex systems of order. initially, these appear random to us, but understanding order in chaotic systems gives us more leverage to&lt;br /&gt;2) do more with less. so we need less energy, thus creating more "headroom" -- does this (relatively speaking) reduce our apparent entropy?&lt;br /&gt;&lt;br /&gt;Of course, it still seems like there is a trend of diminishing returns, (this just lengthens the tail in some sense) but now instead of implying a simple "heat death" of the universe, the 2nd law implies the rise of greater and more subtle organization as well.&lt;br /&gt;&lt;br /&gt;Interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6993942703252554560?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6993942703252554560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6993942703252554560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6993942703252554560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6993942703252554560'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/08/entropy.html' title='entropy...'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-6021775596953857022</id><published>2008-08-04T08:04:00.000-04:00</published><updated>2008-08-12T19:58:19.093-04:00</updated><title type='text'>the return of intrinsic computer languages!</title><content type='html'>I recently found out about &lt;a href="http://processing.org/"&gt;Processing&lt;/a&gt;.  It's &lt;a href="http://processing.org/exhibition/"&gt;amazing&lt;/a&gt;. It's &lt;a href="http://processing.org/learning/3d/primitives3d.html"&gt;simple&lt;/a&gt;. It's &lt;a href="http://ejohn.org/blog/processingjs/"&gt;portable&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is the first &lt;span style="font-style: italic;"&gt;intrinsic&lt;/span&gt; computer language in almost two decades.  Languages for some reason have become cumbersome &lt;span style="font-weight: bold;"&gt;extrinsic&lt;/span&gt; behemoths... what do I mean by intrinsic and extrinsic?&lt;br /&gt;&lt;br /&gt;Let's say you want to print to the console:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;print "hello world";&lt;/code&gt;&lt;/blockquote&gt;This is a function that is intrinsic to almost every language in history.  It's intrinsic because you didn't have to specify any concept of bindings to an IO channel, unicode character string loading into memory, etc. etc... you just &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; it.&lt;br /&gt;&lt;br /&gt;In contrast, here's &lt;a href="http://csis.pace.edu/%7Emarchese/CG/Lect5/fonts.htm"&gt;an extrinsic example&lt;/a&gt; of how to print text to an OpenGL surface.  Notice how much boilerplate you have to weed through to finally implement basically two steps.&lt;br /&gt;&lt;br /&gt;Now let's look at &lt;a href="http://processing.org/reference/text_.html"&gt;a similar example&lt;/a&gt; done in Processing.  Wow.  It's so much easier.  The code focuses exactly on what you wanted to do... all the other setup and infrastructure has become &lt;span style="font-style: italic;"&gt;intrinsic&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Back in the old days, most computer languages were &lt;span style="font-style: italic;"&gt;intrinsic&lt;/span&gt;.  You simply couldn't afford to write millions of lines of code to get something done.  Fortran, BASIC, Pascal, Smalltalk...  somewhere along the way this viewpoint shifted.&lt;br /&gt;&lt;br /&gt;C, C++, and now Java have led an ever increasing charge towards extrinsic declarations.  It happened for the best of intentions: we wanted flexibility.  C wanted to keep the kernel of intrinsic functions small so that it was portable and powerful.  For a time this approach was also simple.&lt;br /&gt;&lt;br /&gt;There is &lt;a href="http://java.sun.com/javase/6/docs/"&gt;nothing&lt;/a&gt; &lt;a href="http://dotnetf1.blogspot.com/2007/12/net-framework-35-block-diagram.html"&gt;simple&lt;/a&gt; today.&lt;br /&gt;&lt;br /&gt;In the current age we are deluged with extrinsic code.  We are drowning in the most convoluted syntax man has ever created.  &lt;a href="http://www.javaworld.com/javaworld/jw-10-2004/jw-1018-hibernate.html"&gt;Hibernate&lt;/a&gt;, &lt;a href="http://www.adobe.com/devnet/flex/quickstart/handling_events/"&gt;Flex&lt;/a&gt;... the list of modern application environments and their dozens of sub-languages requiring explicit coordination has grown out of control.&lt;br /&gt;&lt;br /&gt;And none of it is &lt;span style="font-style: italic;"&gt;what we really wanted to do&lt;/span&gt; in the first place.&lt;br /&gt;&lt;br /&gt;It's time to return to intrinsic languages.  I'm not advocating a return to simpler non-portable environments that C and it's ilk freed us from.  I'm saying the infrastructure has to get smarter -- it has to let us be portable, flexible, free from deployment tyranny, but it also has to be more intrinsic, transparent when we need it to be, opaque when we don't, subtle -- NOT obfuscated!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Processing&lt;/span&gt; is the most refreshing step in that direction since LOGO.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-6021775596953857022?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/6021775596953857022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=6021775596953857022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6021775596953857022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/6021775596953857022'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/08/return-of-intrinsic-computer-languages.html' title='the return of intrinsic computer languages!'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-5195959271991400740</id><published>2008-05-16T18:57:00.000-04:00</published><updated>2008-08-12T08:09:46.487-04:00</updated><title type='text'>web design still sucks: an open letter to the W3C</title><content type='html'>For many years I've followed the public line of the W3C: you should &lt;a href="http://www.w3.org/html/wg/html5/principles/#separation-of-concerns"&gt;separate concerns&lt;/a&gt;, keep the html close to the data and use CSS for the presentation.  Like other web developers, I've struggled between the &lt;a style="font-style: italic;" href="http://www.w3.org/"&gt;right way&lt;/a&gt; to do things and the way that works (&lt;span style="font-style: italic;"&gt;even when the experts don't agree what the right way is-- google &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.google.com/search?q=css+3+column+layout"&gt;CSS 3-column layouts&lt;/a&gt;&lt;span style="font-style: italic;"&gt; for example&lt;/span&gt;).  I've cursed browser makers for the seemingly arbitrary rules they use to render margins, box-models and standard controls.  And I've struggled to understand the vaguest &lt;a href="http://www.w3.org/TR/REC-CSS2/syndata.html#length-units"&gt;definitions of resolution&lt;/a&gt; and &lt;a href="http://www.w3.org/TR/CSS21/cascade.html#cascade"&gt;weighting models&lt;/a&gt; ever written.&lt;br /&gt;&lt;br /&gt;But then I realized the other day, that the W3C simply lacks expertise in presentation-side implementation.  At first this might seem like an outrageous claim but consider that there are two other standards that are at least as old as web standards that get this right: OpenGL and Postscript.&lt;br /&gt;&lt;br /&gt;Both of these standards have a predictive presentation model -- if you say draw something at a given coordinate, you get something at a given coordinate, on &lt;a href="http://www.opengl.org/resources/faq/technical/gettingstarted.htm#gett0160"&gt;any opengl hardware&lt;/a&gt; in existence, on any postscript printer in existence.  There's no crying about "relative" units either -- OpenGL units are completely relative, but they are superior to W3C notions of length because they are &lt;span style="font-style: italic;"&gt;consistent&lt;/span&gt;!  It's a far cry from an industry that can't even &lt;a href="http://www.webstandards.org/action/acid2/"&gt;render their own standards correctly or consistently&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So why can't web standards give us the same predictability?  I think it's because the W3C is fundamentally &lt;span style="font-style: italic;"&gt;confused &lt;/span&gt;about it's purpose and goals.  On the one hand they wish to promote the idea of the &lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;semantic web&lt;/a&gt; (which is primarily a data-centric view), and on the other they want to begrudgingly hand some presentation layer scraps to visual designers who do &lt;a href="http://css-discuss.incutio.com/?page=CssHack"&gt;the most heinous things&lt;/a&gt;&lt;a href="http://css-discuss.incutio.com/?page=CssHack"&gt; imaginable&lt;/a&gt; to get their work done.  I say "begrudgingly" because CSS was only proposed when table-layout threatened to blot out the semantic web forever.  I still get the impression that the W3C views presentation concerns as an annoyance that interferes with their data-centric preferences.&lt;br /&gt;&lt;br /&gt;I know there is some good work being done in CSS3 and HTML5 that we have yet to feel in the mainstream site design (and even when we do, we'll have to consider the mishmash of currently deployed browsers to make it work correctly), but it's too little, too late.&lt;br /&gt;&lt;br /&gt;The W3C's biggest nightmare is already happening, people who care about consistent, quality presentation are turning to rich internet application frameworks such as &lt;a href="http://flex.org/showcase/"&gt;Flex&lt;/a&gt; and &lt;a href="http://silverlight.net/Showcase/"&gt;Silverlight&lt;/a&gt; because it's just &lt;span style="font-style: italic;"&gt;so much easier to use&lt;/span&gt;.  These platforms solve the browser problem by completely bypassing it -- the plug-in suddenly becomes the&lt;span style="font-style: italic;"&gt; new browser&lt;/span&gt;!  They can even back their presentation with xml datasources as well, so other clients can choose to view the pure xml (which is even better than XHTML for semantic purposes since it doesn't need to be cluttered with presentation cruft).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-5195959271991400740?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/5195959271991400740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=5195959271991400740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/5195959271991400740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/5195959271991400740'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/05/web-design-still-sucks-open-letter-to.html' title='web design still sucks: an open letter to the W3C'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5647152679066847028.post-304247026912374875</id><published>2008-05-08T11:28:00.000-04:00</published><updated>2008-05-08T19:27:02.853-04:00</updated><title type='text'>a philosophical take on quantum realism</title><content type='html'>I got the latest issue of &lt;a href="http://seedmagazine.com/"&gt;SEED &lt;/a&gt;(#16) and was instantly captivated by the article on p.50 "The Reality Tests".  The article goes into one of the more controversial questions of quantum mechanics, the idea that particles might not really exist until they are observed.  Many  physicists (including Einstein) have disagreed with this idea because it is so alien when compared with our everyday experience (i.e. the moon doesn't cease to exist because we stop looking at it, right?).&lt;br /&gt;&lt;br /&gt;But the article explains that new experiments disagree with the idea of "realism", (i.e. that particles have an independent existence before measurement) by more than &lt;span style="font-style: italic;"&gt;80 orders of magnitude&lt;/span&gt;.  So are we left with the unavoidable conclusion that we can create reality simply by observing it?&lt;br /&gt;&lt;br /&gt;I'm not a physicist, but even without physics there are some philosophical problems with such a question.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;First, in its most basic form, the explanation that reality is created by observation isn't an explanation.&lt;/span&gt;  It simply pushes the problem into a different space: "observation" and what it means to be "observed".  &lt;br /&gt;&lt;br /&gt;I'm not aware of any accepted rigorous definitions of those terms, however the ideas of an observer "creating" reality seem to unavoidably involve free will.  After all, it's commonly implied that the observer gets to choose what to observe, right?  Except we don't really seem to have conscious control over what gets created "in the large".  (For example, I would like to observe a million dollars in my living room right now... nope.  didn't work.)&lt;br /&gt;&lt;br /&gt;Maybe we don't have conscious control over our observations... but then we have to explain why  observers create the same (or even a similar) classical reality that we perceive as coherent when theory says there could be an infinite number of alternate classical realities that are equally possible.  Why this particular one?  Collective unconscious?&lt;br /&gt;&lt;br /&gt;If we disregard a "collective unconscious" of some sort, we are left with something even more dramatic: for some reason, the science of observations collapse on the same reality regardless of all the possibilities -- i.e. you are drawn back to a system of fate without any free will.  &lt;br /&gt;&lt;br /&gt;But a deterministic system by any other name is still a deterministic system.  We started out wanting to say that the particle had no particular existence before observation and instead ended up with a system where observations are as deterministic as the previous definitions of the particles they tried to explain.&lt;br /&gt;&lt;br /&gt;So, really, when we're talking about &lt;span style="font-style: italic;"&gt;"observer"&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;"create"&lt;/span&gt;, we are talking about something very special that doesn't match our everyday meanings.  We should figure out what those terms mean before using them in quantum theory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;p.s. there is another wrinkle with "observer" -- quantum physics says you can't observe things without affecting them, so at the simplest level it sounds like observers are just participants in interactions.  But interactions affect all matter and energy, so does this mean that everything is an "observer"?   If not, what is special about "observers" then?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5647152679066847028-304247026912374875?l=quietlightfalling.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://quietlightfalling.blogspot.com/feeds/304247026912374875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5647152679066847028&amp;postID=304247026912374875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/304247026912374875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5647152679066847028/posts/default/304247026912374875'/><link rel='alternate' type='text/html' href='http://quietlightfalling.blogspot.com/2008/05/philosophical-take-on-quantum-realism.html' title='a philosophical take on quantum realism'/><author><name>Larry Kyrala</name><uri>http://www.blogger.com/profile/14610145189818875357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_qiL6CXJqEus/SShLRfrC-QI/AAAAAAAABew/reIUavQjAck/s1600-R/0ccefcbbfa6dc0f17b2a456220b538a0.jpeg'/></author><thr:total>0</thr:total></entry></feed>
