<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Continuations by Albert Wenger</description><title>Continuations</title><generator>Tumblr (3.0; @continuations)</generator><link>http://continuations.com/</link><item><title>Off the Grid (China Edition)</title><description>&lt;p&gt;We are about to go on a trip to China and I couldn&amp;#8217;t be more excited.  I have never been to Asia before and am looking forward to the experience.  China in particular has held my fascination since taking &lt;a href="http://www.gov.harvard.edu/people/faculty/roderick-macfarquhar"&gt;Roderick MacFarquhar&lt;/a&gt;&amp;#8217;s amazing course on the Cultural Revolution in college.  And now of course China has been seeing dramatic economic growth with a domestic Internet population that is approaching 500 million users.  For a variety of reasons that include language and culture but of course also politics and &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Great_Firewall_of_China" rel="wikipedia" title="Great Firewall of China" target="_blank"&gt;the great firewall&lt;/a&gt; the Chinese Internet market is completely dominated by local companies.  While this is mostly a family trip, I am hoping to spend some time learning more about that as well.  In any case though, I will be (mostly) off the grid for the duration of this trip including a break from blogging and Continuations will be continued upon our return. In the meantime, a big thanks to all the people who contributed ideas and connections for this journey.&lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/?px" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=8454e44b-49cf-4374-bab6-83f2f00abd8f"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/23163834087</link><guid>http://continuations.com/post/23163834087</guid><pubDate>Wed, 16 May 2012 09:31:51 -0400</pubDate><category>vacation</category><category>China</category></item><item><title>Tech Tuesday: Literals, Constants and Variables</title><description>&lt;p&gt;I may have lost a bunch of &lt;a href="http://continuations.com/tagged/tech_tuesday"&gt;Tech Tuesday&lt;/a&gt; readers with that &lt;a href="http://continuations.com/post/22650194817/tech-tuesday-semantics"&gt;post on semantics&lt;/a&gt; last week, so today I am hoping to gain some back with a much easier topic!  We are continuing the &lt;a href="http://continuations.com/post/21265111368/tech-tuesday-programming-overview"&gt;cycle on programming&lt;/a&gt; by looking at how programs refer to things.  Again let&amp;#8217;s start by looking at human language.  If I say &amp;#8220;William Henry Gates III&amp;#8221; then I am referring to the co-founder of Microsoft by his &lt;a href="http://en.wikipedia.org/wiki/Bill_Gates"&gt;full given name&lt;/a&gt;.  In the right context I could simply say &amp;#8220;Bill&amp;#8221; and everyone would know who it was.  Alternatively, I could say &amp;#8220;co-founder of Microsoft&amp;#8221; and that could mean either Bill Gates or &lt;a href="http://en.wikipedia.org/wiki/Paul_Allen"&gt;Paul Allen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In programming there are concepts that correspond to each of these three different expressions.  The first are so-called &amp;#8220;literals&amp;#8221; &amp;#8212; they are values that appear directly in the program.  A value could be a number or it could be a piece of text.  For instance, the following piece of Javascript code when run in a &lt;a href="http://continuations.com/post/20005228110/tech-tuesday-web-browser-part-2"&gt;browser&lt;/a&gt; will pop-up an alert box that says &amp;#8220;William Henry Gates III&amp;#8221;&lt;/p&gt;
&lt;pre&gt;alert("William Henry Gates III");
&lt;/pre&gt;
&lt;p&gt;Now you might find it takes you too long to type that everywhere in the program that you want to do this.  So you could instead write&lt;/p&gt;
&lt;pre&gt;const BILL = "William Henry Gates III";
alert(BILL);
&lt;/pre&gt;
&lt;p&gt;at every later time you want to do the same thing you now just need an alert(BILL).  The first line defines what is known as a constant (this is Javascript, but not supported by all browsers).  You can think of a constant as a way of referring to a value that does not change.  In this program BILL will always be replaced with &amp;#8220;William Henry Gates III&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Why might you want to have a constant instead of a literal?  We already saw one reason - to be able to use a shorter name to refer to something longer (not much longer in the example, but could be much much longer).  Another and stronger reason is if you have a number that has a meaning. Compare the following two pieces of code&lt;/p&gt;
&lt;pre&gt;alert(42);
&lt;/pre&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;pre&gt;const MEANING_OF_LIFE = 42;
alert(MEANING_OF_LIFE);
&lt;/pre&gt;
&lt;p&gt;Now instead of having the literal number 42 throughout, you can refer to it as &lt;a href="https://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy"&gt;MEANING_OF_LIFE&lt;/a&gt;.  That&amp;#8217;s not only clearer for someone reading the code but also lets you subsequently make a change to the code should you realize that the value should really have been 13.  The change now needs to be made only in one location where the constant is defined, i.e. const MEANING_OF_LIFE = 13 &amp;#8212; all the rest of the code can stay the same.  That&amp;#8217;s much preferred over a global search and replace, because what if you have a 42 somewhere else in the program that is supposed to stay 42 because it refers to something else?&lt;/p&gt;
&lt;p&gt;That brings us to variables.  Like a constant, a variable is a name that we can use to refer to a value, but unlike a constant that value can change over time.  So we might have code as follows:&lt;/p&gt;
&lt;pre&gt;var coFounderOfMicrosoft = "Bill Gates";
alert(coFounderOfMicrosoft);
coFounderOfMicrosoft = "Paul Allen";
alert(coFounderOfMicrosoft);
&lt;/pre&gt;
&lt;p&gt;The &amp;#8220;coFounderOfMicrosoft&amp;#8221; is the name of the variable and &amp;#8220;Bill Gates&amp;#8221; or &amp;#8220;Paul Allen&amp;#8221; are the values that it refers to in the example above.  The first line of this code snippet uses &amp;#8220;var&amp;#8221; to declare that what follows is a variable.  In Javascript this declaration is optional and you can just assign a value to a name without it but it is considered bad form to just introduce names without declaring them first.  The third line assigns a new value to the variable.  Here we omit the &amp;#8220;var&amp;#8221; because we have already declared the name above and only want to change its value.&lt;/p&gt;
&lt;p&gt;The ability to have names to refer to different values is essential to programming.  Programs based only on literals would be quite boring.  You would not be able to keep track of intermediate results and it would be quite difficult to write programs that take inputs from the user (where would you keep those?) as part of their processing.  So the concept of a variable seems obvious and straightforward and yet as we will see when we look a bit deeper in a future Tech Tuesday there is a lot more to it and you can get a glimpse of that by looking at the following code:&lt;/p&gt;
&lt;pre&gt;var coFounderOfMicrosoft = "Bill Gates";
var myName = coFounderOfMicrosoft;
coFounderOfMicrosoft = "Paul Allen";
&lt;/pre&gt;
&lt;p&gt;In the second line we are declaring a new variable and assigning an existing variable to it.  What does that do? The answer is far from obvious and is something that gives rise to a lot of issues which we will look at in subsequent posts.  For now, just think about what you expect myName to refer to once the third line of code has also been executed. Is it &amp;#8220;Bill Gates&amp;#8221; or &amp;#8220;Paul Allen&amp;#8221;?&lt;/p&gt;
&lt;p&gt;One important thing to note is that just because you give a variable a name that is meaningful to a human it doesn&amp;#8217;t mean anything to the computer (remember that discussion of &lt;a href="http://continuations.com/post/22650194817/tech-tuesday-semantics"&gt;semantics&lt;/a&gt;?).  For instance, the following is a perfectly legit bit of code that won&amp;#8217;t produce a &lt;a href="http://continuations.com/post/22191274437/tech-tuesday-syntax"&gt;syntax&lt;/a&gt; error since it is syntactically correct and won&amp;#8217;t produce a complaint about semantics (because the computer has no external knowledge):&lt;/p&gt;
&lt;pre&gt;var coFounderOfMicrosoft = "Napoleon Bonaparte";
&lt;/pre&gt;
&lt;p&gt;This is the first example of something I call &amp;#8220;The Program Is All There Is&amp;#8221; or TPIATI. For you as the human reader of the code there is a lot of knowledge that tells you this is wrong.  For the computer it just says make a variable named &amp;#8220;coFounderOfMicrosoft&amp;#8221; and give it the value &amp;#8220;Napoleon Bonaparte&amp;#8221; &amp;#8212; and it will happily do just that.&lt;/p&gt;
&lt;p&gt;As an aside, you may have noticed that I used ALL CAPS for the name of the constant, but so-called camel case for the name of the variable.  In Javascript, those choices are based on &lt;a href="http://en.wikipedia.org/wiki/Naming_convention_(programming)"&gt;convention&lt;/a&gt; &amp;#8212; they are not a requirement of the syntax of the language.  In Javascript &amp;#8220;mIX1ng_CAS3&amp;#8221; would be perfectly allowed as either a variable or constant name.  The convention of using ALL CAPS for constants is relatively common across most programming languages.&lt;/p&gt;
&lt;p&gt;Tech Tuesday will be taking a break for the next two weeks as we will be going to China on a family vacation and I am not planning to take a laptop along.  We will resume in the first week of June.&lt;/p&gt;</description><link>http://continuations.com/post/23099284456</link><guid>http://continuations.com/post/23099284456</guid><pubDate>Tue, 15 May 2012 07:39:28 -0400</pubDate><category>tech tuesday</category><category>variables</category><category>literals</category><category>constants</category></item><item><title>Behance</title><description>&lt;p&gt;Today&amp;#8217;s post is over at USV, where we &lt;a href="http://www.usv.com/2012/05/behance.php"&gt;announced our investment&lt;/a&gt; in &lt;a href="http://behance.net"&gt;Behance&lt;/a&gt;.&lt;/p&gt;</description><link>http://continuations.com/post/23051098283</link><guid>http://continuations.com/post/23051098283</guid><pubDate>Mon, 14 May 2012 15:32:18 -0400</pubDate><category>USV</category><category>Behance</category></item><item><title>What's $2B Among Friends?</title><description>&lt;p&gt;During the 2008 crisis, I argued that we should take over the big banks and restructure them.  Instead, we bailed out the banks with tax payer money and with an unprecedented increase in the Fed&amp;#8217;s balance sheet.  We did nothing to get rid of banks that are &amp;#8220;too big to fail&amp;#8221; or to severely restrict their activities (which might lead them to break themselves up).&lt;/p&gt;
&lt;p&gt;So yesterday, JP Morgan Chase had to &lt;a href="http://www.huffingtonpost.com/2012/05/10/jpmorgan-chase-london-whale_n_1507662.html"&gt;announce a $2 Billion trading loss&lt;/a&gt; from what they claim was a hedge gone wrong in Credit Derivatives but looks awfully like rogue trading activity.  This particular error may be one the bank can absorb but I don&amp;#8217;t understand why we would let this go on until we are at another crisis that can only be resolved by a government bailout.&lt;/p&gt;
&lt;p&gt;It will be interesting to see how this issue makes its way into the upcoming presidential election campaign here in the US. While I have been disappointed with many aspects of President Obama&amp;#8217;s first time I hope he makes this a part of his agenda going forward and in a second term would actually do something about it.  His &lt;a href="http://www.huffingtonpost.com/2012/05/09/obama-gay-marriage_n_1503245.html"&gt;support for gay marriage&lt;/a&gt; is a welcome sign of what might be a more principled stand (hope springs eternal). &lt;/p&gt;</description><link>http://continuations.com/post/22835855145</link><guid>http://continuations.com/post/22835855145</guid><pubDate>Fri, 11 May 2012 07:08:15 -0400</pubDate><category>banks</category><category>jp morgan chase</category><category>trading</category><category>politics</category><category>obama</category></item><item><title>Etsy Becomes a Certified B Corporation</title><description>&lt;p&gt;Today&amp;#8217;s blog post is over at the USV blog on &lt;a href="http://www.usv.com/2012/05/b-corporation.php"&gt;Etsy becoming a certified B Corp&lt;/a&gt;.  It all started with &lt;a href="http://continuations.com/post/11693431237/the-b-corporation"&gt;this&lt;/a&gt;.  Congrats to &lt;a href="https://twitter.com/#!/chaddickerson"&gt;Chad&lt;/a&gt; and the team at &lt;a href="http://etsy.com"&gt;Etsy&lt;/a&gt; on taking transparency and responsibility to the community and making it not just a commitment but also something that is measured.&lt;/p&gt;</description><link>http://continuations.com/post/22779429939</link><guid>http://continuations.com/post/22779429939</guid><pubDate>Thu, 10 May 2012 10:24:17 -0400</pubDate><category>Etsy</category><category>b corporation</category></item><item><title>Wag.com #thistimeitsdifferent</title><description>&lt;p&gt;Yesterday, I tweeted that &lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;
&lt;p&gt;&lt;a href="http://t.co/krc1LGzs" title="http://Pets.com"&gt;Pets.com&lt;/a&gt; is back! &lt;a href="https://twitter.com/search/%2523fullcircle"&gt;#fullcircle&lt;/a&gt; &lt;a href="http://t.co/93aaq9Ep" title="http://twitter.com/albertwenger/status/199861215365824512/photo/1"&gt;twitter.com/albertwenger/s…&lt;/a&gt;&lt;/p&gt;
— Albert Wenger (@albertwenger) &lt;a href="https://twitter.com/albertwenger/status/199861215365824512" data-datetime="2012-05-08T14:00:03+00:00"&gt;May 8, 2012&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;with the following picture&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m3ryf1c1JA1qz8dvz.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;and got quite a few replies and retweets.  Some people saw it as a sign of a potential new bubble (or even the imminent collapse of the same) while others said they were happy users of the service.&lt;/p&gt;
&lt;p&gt;Those different reactions reflect the importance of approaching a recurrence with an open mind:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Just because something has been tried before and failed (even failed spectacularly) doesn&amp;#8217;t mean it won&amp;#8217;t succeed at a later point.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;If you are doing something that has been tried before and failed, you need to have a point of view about how what you are doing is different.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;There are at least four possible sources of difference: different strategy, different execution, different design, different environment.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;In the case of Wag.com there is a ton that&amp;#8217;s different compared to Pets.com along all four of these categories.  For instance, the site is part of Quidsi (diapers.com, etc) which in turn is part of Amazon!  The total amount of ecommerce has skyrocketed since the days of pets.com.&lt;/p&gt;
&lt;p&gt;With those differences there is a very good chance that Wag.com will work.  So #fullcircle as my choice of hashtag was wrong as it implied that it is the same as before.  I am &amp;#8220;amending&amp;#8221; my tweet to #thistimeitsdifferent. &lt;/p&gt;</description><link>http://continuations.com/post/22737269904</link><guid>http://continuations.com/post/22737269904</guid><pubDate>Wed, 09 May 2012 17:52:42 -0400</pubDate></item><item><title>Tech Tuesday: Semantics</title><description>&lt;p&gt;During the last &lt;a href="http://continuations.com/tagged/tech_tuesday"&gt;Tech Tuesday&lt;/a&gt; we talked about the &lt;a href="http://continuations.com/post/22191274437/tech-tuesday-syntax"&gt;syntax&lt;/a&gt; of programming languages as part of the &lt;a href="http://continuations.com/post/21265111368/tech-tuesday-programming-overview"&gt;cycle on programming&lt;/a&gt;.  That&amp;#8217;s a term you will hear frequently in no small part because when you get it wrong the computer will complain about it with a &amp;#8220;syntax error.&amp;#8221; Today&amp;#8217;s topic is much more elusive and less talked about: &lt;a href="http://en.wikipedia.org/wiki/Semantics"&gt;semantics&lt;/a&gt; or what a program &amp;#8220;means.&amp;#8221; The &amp;#8220;means&amp;#8221; is in quotation marks because &lt;a href="http://www.slate.com/articles/news_and_politics/chatterbox/1998/09/bill_clinton_and_the_meaning_of_is.html"&gt;paraphrasing Bill Clinton&lt;/a&gt;, the answer depends on what the meaning of the word &amp;#8220;means&amp;#8221; is. Yes, semantics is an area that can make your &lt;a href="http://en.wikipedia.org/wiki/Scanners"&gt;head explode&lt;/a&gt; if you think about it too hard.&lt;/p&gt;
&lt;p&gt;Before we dive in a bit, why should you even care about semantics?  Tons of code gets written every day without heads exploding as people think about what that code &amp;#8220;means&amp;#8221; for the computer.  Still, I am convinced that spending some time learning and thinking about semantics will ultimately make you a better programmer. While the field is full of very theoretical ideas that you could get lost in (which is fun in and of itself), exposure to it will help you appreciate why some code is better than other code (for some meaning of &amp;#8220;better&amp;#8221; :) that will hopefully become clearer during this series of posts).&lt;/p&gt;
&lt;p&gt;To prevent heads from exploding, here is a simple crack at understanding semantics. Think of it as a formal description of the steps that a hypothetical computer will perform when it executes a program.  This approach is known as &lt;a href="http://en.wikipedia.org/wiki/Operational_semantics"&gt;operational semantics&lt;/a&gt; and is the only one we will cover here (see &lt;a href="http://en.wikipedia.org/wiki/Semantics_(computer_science)"&gt;here&lt;/a&gt; for others).  Lets unpack this a bit.  The &amp;#8220;hypothetical&amp;#8221; is there because semantics doesn&amp;#8217;t operate at the level of a hardware configuration by tracing the steps inside specific &lt;a href="http://continuations.com/post/11905023100/tech-tuesday-a-first-look-at-the-central-processing"&gt;CPU&lt;/a&gt; but concerns itself with a higher level of computation (and that&amp;#8217;s OK because those execution details don&amp;#8217;t matter for the meaning of the code).&lt;/p&gt;
&lt;p&gt;The &amp;#8220;formal&amp;#8221; bit is there because semantics is not some vague description of meaning in say English but rather a precise set of rules.  At this point some alarm bells should start to go off.  What language exactly are we using to describe those rules?  Ah, welcome to the rabbit hole. There are several possible, closely related and equally intriguing answers. One answer is to use formal logic, such as the &lt;a href="http://en.wikipedia.org/wiki/Lambda_calculus"&gt;lambda calculus&lt;/a&gt;. The other answer is to use the programming language itself.  Come again? Yes - as it turns out for a whole bunch of programming languages you can describe the rules for what the language means in the language itself.  That results in what is known as a &lt;a href="http://en.wikipedia.org/wiki/Meta-circular_evaluator"&gt;meta-circular evaluator&lt;/a&gt; and is not half as crazy as it sounds.&lt;/p&gt;
&lt;p&gt;Most of this was first figured out in the creation of &lt;a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)"&gt;LISP&lt;/a&gt;, which in various incarnations still remains the most intriguing programming language.  &lt;a href="http://continuations.com/post/11948018055/john-mccarthy"&gt;John McCarthy&lt;/a&gt; wrote a &lt;a href="http://www-formal.stanford.edu/jmc/recursive/recursive.html"&gt;seminal paper&lt;/a&gt; titled &amp;#8220;Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I&amp;#8221; in 1960 (aside: there never was a Part II).  The opening paragraph of the &lt;a href="http://www-formal.stanford.edu/jmc/recursive/node3.html"&gt;most important section&lt;/a&gt; is:&lt;/p&gt;
&lt;blockquote&gt;We shall first define a class of symbolic expressions in terms of ordered pairs and lists. Then we shall define five elementary functions and predicates, and build from them by composition, conditional expressions, and recursive definitions an extensive class of functions of which we shall give a number of examples. We shall then show how these functions themselves can be expressed as symbolic expressions, and we shall define a universal function  that allows us to compute from the expression for a given function its value for given arguments.&lt;/blockquote&gt;
&lt;p class="p1"&gt;The basic idea is that McCarthy is formally defining the meaning of the LISP language using only the elements of the language itself (which also happen to draw closely on the lambda calculus).&lt;/p&gt;
&lt;p class="p1"&gt;Even if you don&amp;#8217;t immediately see the benefits of doing this, there is something wonderfully appealing about having a language describe itself (and of course that is usually what we do when we explain the meaning of an English word to someone else &amp;#8212; we use other English words!).  As it turns out this is a very powerful idea and as we go through more of the concepts behind programming in upcoming posts we will come back to it repeatedly, for instance in looking at what an interpreter does or learning about data types.&lt;/p&gt;</description><link>http://continuations.com/post/22650194817</link><guid>http://continuations.com/post/22650194817</guid><pubDate>Tue, 08 May 2012 09:12:42 -0400</pubDate><category>tech tuesday</category><category>programming</category><category>semantics</category></item><item><title>Europe at Risk and What it Means for US Startups</title><description>&lt;p&gt;Europe had three elections on the weekend: presidential in France, parliamentary in Greece and regional in Germany.  The results are strongly anti-incumbent across he board.  In France, &lt;a href="http://www.bloomberg.com/news/2012-05-06/merkel-s-cdu-has-worst-result-since-1950-in-schleswig-holstein.html"&gt;Sarkozy is out&lt;/a&gt; and Hollande is in.  In Greece, the &lt;a href="http://www.huffingtonpost.com/2012/05/06/greece-elections-2012-evangelos-venizelos_n_1490822.html"&gt;PASOK party went from 160 to 41 seats&lt;/a&gt; and no longer has a majority together with New Democracy the other incumbent&lt;em&gt;. &lt;/em&gt;And in Germany in the regional elections in Schleswig Holstein, Angela Merkel&amp;#8217;s CDU had the &lt;a href="http://www.bloomberg.com/news/2012-05-06/merkel-s-cdu-has-worst-result-since-1950-in-schleswig-holstein.html"&gt;worst results since 1950&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;The results are also strongly anti-austerity because that was the policy pursued by the incumbents.  The &lt;a href="http://www.bloomberg.com/news/2012-05-06/euro-falls-to-three-week-low-after-hollande-wins-french-election.html"&gt;Euro is now at a 3 month low&lt;/a&gt;, European stocks are down with the &lt;a href="http://www.bloomberg.com/news/2012-05-07/european-stock-futures-sink-as-voters-punish-austerity.html"&gt;Greek market down 6%&lt;/a&gt; and &lt;a href="http://www.reuters.com/article/2012/05/07/us-markets-stocks-idUSBRE83T09920120507"&gt;Nasdaq Futures are down also&lt;/a&gt;.  This comes on the heels of a 2.25% decline in Nasdaq this past Friday based on weak US jobs data. The risk that Europe will come apart with nations exiting the Euro and significant political and social upheaval to follow is now bigger than ever.&lt;/p&gt;
&lt;p&gt;I had written &lt;a href="http://continuations.com/post/8473244140/if-you-need-to-raise-money-get-your-financing-done"&gt;last August that startups should raise money ASAP&lt;/a&gt; and I was wrong then. Europe managed to kick the can down the curb, the markets rallied and venture funding remained reasonably strong. I may well be wrong again now because we are dealing with probabilities but it should be pretty clear that the probability of Europe coming apart has gone up meaningfully with these elections.&lt;/p&gt;
&lt;p&gt;What does that mean if you are a startup?  Again, I believe if you know you have to raise money soon, you should do it even sooner than you thought you would.  And if you have an existing strong syndicate you need to control your burn so that syndicate can finance you should new financing dry up.  The music can stop at any moment and when it does the change is dramatic.&lt;/p&gt;</description><link>http://continuations.com/post/22581922367</link><guid>http://continuations.com/post/22581922367</guid><pubDate>Mon, 07 May 2012 07:06:21 -0400</pubDate><category>Europe</category><category>elections</category><category>finance</category><category>startups</category></item><item><title>Feature Friday: Feed of the Future (Shapeways)</title><description>&lt;p&gt;I have not been writing nearly enough about many of the cool things that our portfolio companies are doing. To correct that I will start doing Feature Friday posts.  The opener is the feed introduced earlier this week by &lt;a class="zem_slink" href="http://www.shapeways.com" rel="homepage" title="Shapeways" target="_blank"&gt;Shapeways&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;I love activity feeds.  They are a fun way to see what&amp;#8217;s happening on a site.  But more than that, I have come use them in board meetings as way to think about what a company does (even if they don&amp;#8217;t yet have a feed).  It&amp;#8217;s a powerful way to organize one&amp;#8217;s thinking about existing and future features.  And I guess we really have to thank Facebook for popularizing the &lt;a class="zem_slink" href="http://developers.facebook.com/docs/reference/plugins/activity" rel="homepage" title="Activity Feed" target="_blank"&gt;activity feed&lt;/a&gt; concept (someone please correct me here if there is an earlier equally well known one).&lt;/p&gt;
&lt;p&gt;Please go and checkout the &lt;a href="http://www.shapeways.com/feed"&gt;Shapeways feed&lt;/a&gt;, which they cheekily call the &amp;#8220;Feed of the Future&amp;#8221; (as in: &amp;#8220;the future of stuff&amp;#8221;) &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.shapeways.com/feed"&gt;&lt;img src="http://media.tumblr.com/tumblr_m3ibrh5QpA1qz8dvz.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=6ba1771e-abc9-4e94-ba2d-2871ee857c1b"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/22387565745</link><guid>http://continuations.com/post/22387565745</guid><pubDate>Fri, 04 May 2012 12:43:58 -0400</pubDate><category>feature friday</category><category>shapeways</category><category>feed</category></item><item><title>Excited about edX</title><description>&lt;p&gt;For a couple of years now I have been complaining to folks in the Harvard administration that the school is woefully behind when it comes to embracing the Internet. So I was thrilled to see the &lt;a href="http://www.edxonline.org/"&gt;announcement of the edX initiative&lt;/a&gt; with MIT yesterday. The two combined with a $60 million commitment will make a formidable force in higher education on the Internet. For people everywhere who want to learn there is an exciting competition starting between some formidable institutions with &lt;a href="https://www.coursera.org/"&gt;Coursera&lt;/a&gt; (Princeton, Stanford, Michigan, Penn) and &lt;a href="http://udacity.com"&gt;Udacity&lt;/a&gt; (unaffliated) also in the running.&lt;/p&gt;
&lt;p&gt;And now for the real challenge for both MIT and Harvard (other than actually launching): how to integrate edX back into the schools themselves.  That will make all the difference not just for the success of edX but also for the experience of attending one of the schools.  If students on campus are connected to the world through edX and vice versa, then the two can serve to enhance each other.  Part of what this means in my view is (eventually) abandoning the idea of four years on campus.  By that I don&amp;#8217;t mean junior year abroad, but something more radical.  Maybe as far as spending one year at a time or even less on campus.&lt;/p&gt;
&lt;p&gt;The opportunities here are enormous.  I am excited to see where it goes!&lt;/p&gt;</description><link>http://continuations.com/post/22321629359</link><guid>http://continuations.com/post/22321629359</guid><pubDate>Thu, 03 May 2012 10:59:26 -0400</pubDate><category>education</category><category>online</category><category>Harvard</category><category>MIT</category></item><item><title>Seattle, We Have a (Kindle Screen) Problem</title><description>&lt;p&gt;I love reading books on my traditional Kindle.  I find the &lt;a class="zem_slink" href="http://www.eink.com/" rel="homepage" title="E Ink" target="_blank"&gt;eInk&lt;/a&gt; display to be easy on my eyes and make extensive use of highlighting.  It&amp;#8217;s great not to feel tempted to fire up an app or check email while reading which lets me make good progress even on hefty books. But across our family we now have three Kindles with broken screens.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m3e7e1dqH21qz8dvz.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;At first I suspected that the kids were mistreating the Kindles when they were reading on them.  But they insisted that they had done nothing of the sort.  Of course twice in a row when we got a broken screen it was literally the night before a vacation and so I rushed out and bought another one at BestBuy (which means as far as I can tell I can&amp;#8217;t return them to Amazon).&lt;/p&gt;
&lt;p&gt;Last night, I plugged in one of our Kindles that had run out of battery (the one on the right).  My son tried to turn it on while it was still charging and the screen froze in a fashion similar to the previous ones.  So now we are up to three of these and I really want to figure out what to do rather than just have them sit around.  Has anyone had any luck returning these to Amazon?  Is there a place that will fix this problem?  Any and all suggestions welcome.&lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=e8522980-43e8-47d9-b318-d1963fa03e6c"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/22250808866</link><guid>http://continuations.com/post/22250808866</guid><pubDate>Wed, 02 May 2012 07:25:43 -0400</pubDate><category>kindle</category><category>screen</category><category>Amazon</category></item><item><title>Tech Tuesday: Syntax</title><description>&lt;p&gt;Last &lt;a href="http://continuations.com/tagged/tech_tuesday"&gt;Tech Tuesday&lt;/a&gt;, I &lt;a href="http://continuations.com/post/21711478677/tech-tuesday-programming-languages"&gt;introduced programming languages&lt;/a&gt; by making a series of analogies to human languages.  We will continue the &lt;a href="http://continuations.com/post/21265111368/tech-tuesday-programming-overview"&gt;programming cycle&lt;/a&gt; today by deepening that analogy with regard to syntax. Syntax is the set of rules that describe how you can put together the words of a language to form a sentence.  For instance, part of the syntax of English is that we separate words with a space insteadofputtingthemrightnextoeachother. Another part of the syntax of English is that we end sentences with a period, exclamation mark or question mark instead of say a comma, We then start the next sentence with a capital letter.  Some of these syntax rules are fairly obvious others are a bit more difficult such as &lt;a href="https://en.wikipedia.org/wiki/Subject,_Predicate,_Object"&gt;word order&lt;/a&gt;.  In English we generally use subject, verb, object in that order instead of putting us the verb first.&lt;/p&gt;
&lt;p&gt;Why do languages have syntax?  As the examples above illustrate you were able to read even those parts where I purposefully violated the very syntax rule I was describing.  But those parts were more difficult to read &amp;#8212; you had to make more effort to find the meaning.  In fact, consider the following example: &amp;#8220;&lt;a href="http://www.amazon.com/Eats-Shoots-Leaves-Tolerance-Punctuation/dp/1592402038"&gt;Eats shoots and leaves&lt;/a&gt;&amp;#8221; and compare it to &amp;#8220;Eats, shoots and leaves.&amp;#8221; The former is likely about a panda the latter about a cowboy.  Now with a bit of context you can figure that out independent of the placement of the comma, but the comma makes finding the meaning easier and more precise.&lt;/p&gt;
&lt;p&gt;Conversely, correct syntax by itself doesn&amp;#8217;t in any way guarantee meaning.  That too can easily be seen in human languages.  &amp;#8221;The lazy car swam slowly over an obtuse rainbow&amp;#8221; is a sentence with correct syntax but without any obvious meaning.  That&amp;#8217;s not to say that this sentence could not be have meaning in the context of a larger story that redefines how we commonly use some of the words but just by itself it has no meaning. We see this when we contrast it with another sentence with the same syntactical structure, as in &amp;#8220;The old car drove quickly around a sharp corner.&amp;#8221;&lt;/p&gt;
&lt;p&gt;The same is true for programming languages. Syntax helps the computer establish the likely intended meaning but it doesn&amp;#8217;t guarantee meaning by itself.  Computers and programming languages tend to be much less forgiving about syntax though than humans.  For instance, in most programming languages &amp;#8220;5 + 3&amp;#8221; is a calculation that results in the value 8.  If you write &amp;#8220;5&amp;#160;3 +&amp;#8221;  instead, in most programming languages that will result in a Syntax Error.  The program will either stop running or not even start and the computer will complain about a syntax error.&lt;/p&gt;
&lt;p&gt;There are two important reasons why computers tend to be stricter about syntax.  First, they tend to know a lot less than humans (I will come back to that next Tuesday), so inferring meaning when the syntax is wrong is more difficult.  Second, syntax errors may indicate situations where the programmer actually meant to write something different altogether, say in the example above maybe &amp;#8220;53 + 7&amp;#8221; where the extra space between the 5 and the 3 and the missing 7 were oversights.  Would you rather have the computer assume you meant &amp;#8220;5 + 3&amp;#8221; or flag this as an error?&lt;/p&gt;
&lt;p&gt;Syntax can become quite the hot button issue at times.  For instance, in Javascript, the syntax rule is for lines of code to end with a semicolon.  But it is a rule that Javascript isn&amp;#8217;t strict about. Most of the time if you end a line without a semicolon, Javascript will insert that semicolon for you as it figures out the meaning of the code.  As it turns out though in certain edge cases (and when used in conjunction with other tools) this can break in somewhat unpredictable ways.  Here is an &lt;a href="https://github.com/twitter/bootstrap/issues/3057"&gt;epic debate&lt;/a&gt; between various programmers about just such a situation.&lt;/p&gt;
&lt;p&gt;Whatever programming language(s) you learn, it&amp;#8217;s essential to understand the syntax in order to write working code.  And it is worth keeping in mind that the computer may not be the only one needing to read your code.  Other programmers working with you are after you might need to as well.  So even if an expression is syntactically correct sometimes it is worth picking a different one that is easier to read.  That is also the reason why most programming languages have formatting conventions.  In some language, most notably &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, formatting (which lines are indented) are in fact part of the formal syntax of the language.&lt;/p&gt;
&lt;p&gt;Just to show the potential diversity of syntax among computer languages here is a &lt;a href="http://en.wikipedia.org/wiki/Recursion_(computer_science)"&gt;recursive&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Factorial"&gt;factorial&lt;/a&gt; function in three different programming languages.  The point here is not necessarily for you to understand what is going on but rather appreciate that code can look quite different.&lt;/p&gt;
&lt;p&gt;Lisp&lt;/p&gt;
&lt;pre&gt;(DEFINE (FACTORIAL (LAMBDA (N)
  (COND
    ((EQUAL N 0) 1)
    (T (MULT N (FACTORIAL (SUB N 1))))
   )
)))
&lt;/pre&gt;
&lt;p&gt;Javascript&lt;/p&gt;
&lt;pre&gt;function factorial (n)
{ 
    if (n==0) return(1);
    return (n * factorial(n-1));
}
&lt;/pre&gt;
&lt;p&gt;Python&lt;/p&gt;
&lt;pre&gt;def factorial(n):
    if n == 0:
        return 1
    else:
        return n*factorial(n-1)&lt;/pre&gt;
&lt;p&gt;Next Tuesday will be about the semantics of programming languages which is how the code has meaning for the computer (and also what it means for the code to have meaning).&lt;/p&gt;</description><link>http://continuations.com/post/22191274437</link><guid>http://continuations.com/post/22191274437</guid><pubDate>Tue, 01 May 2012 09:40:11 -0400</pubDate><category>tech tuesday</category><category>programming</category><category>syntax</category></item><item><title>Identity: A Huge Business Opportunity</title><description>&lt;p&gt;Companies across our portfolio are spending a lot of resources on suppressing various types of undesirable behavior ranging from comment spam to outright financial fraud.  Much of this could be avoided through a probabilistic identity system.  I have written about &lt;a href="http://continuations.com/post/7761658287/probabilistic-identity-and-catfish"&gt;this idea before&lt;/a&gt;, but nobody has cracked the nut on it and the problem has only grown since. The solution to identity on the Internet is not to try for certainty and systems aiming for certainty will fail because they need to impose too many restrictions on users (would be the same effect that DRM has had on the user experience created by &lt;a href="http://continuations.com/post/21024321491/publishers-have-only-themselves-and-drm-to-blame"&gt;publishers&lt;/a&gt; and the music industry).  &lt;/p&gt;
&lt;p&gt;Instead, what is needed is a service that takes many signals as inputs, including Facebook, Twitter, Disqus, general web presence, and so on.  That may be enough for a new social media service to establish whether someone is a real user or just a rapidly created fake account.  For services such as banking that need higher degrees of certainty, it should be possible given these inputs to dynamically generate a few questions for the user to answer.  Questions might be like &amp;#8220;which of these three pictures did you publish to Twitter?&amp;#8221; or &amp;#8220;which of these three bands do you like best?&amp;#8221;&lt;/p&gt;
&lt;p&gt;The best product in this direction seems to be &lt;a href="http://www.lexisnexis.com/risk/identity-verification-authentication.aspx"&gt;Lexis Nexis InstantID&lt;/a&gt; which draws mostly on public records about where people have lived.  Adding that and additional offline data into a web service could be used to further improve it&amp;#8217;s accuracy.  If this kind of service were reasonably priced, I am convinced that it would find massive adoption.&lt;/p&gt;</description><link>http://continuations.com/post/22155767154</link><guid>http://continuations.com/post/22155767154</guid><pubDate>Mon, 30 Apr 2012 19:56:33 -0400</pubDate><category>identity</category></item><item><title>CISPA: Asking for a Fight </title><description>&lt;p&gt;I don&amp;#8217;t know whether to be upset or happy about the machinations that went on yesterday and resulted in the House passing &lt;a href="http://continuations.com/post/20960526787/cispa"&gt;CISPA&lt;/a&gt; with a 248-168 vote.  There were critical last minute changes to the bill that vastly enhance the government&amp;#8217;s ability to use the data for things other than national security.  Three more incredibly broad areas of use were added to the bill literally last minute: investigation and prosecution of cybersecurity crime, protection of individuals, and protection of children.  The best coverage of the changes can be &lt;a href="http://www.techdirt.com/articles/20120426/14505718671/insanity-cispa-just-got-way-worse-then-passed-rushed-vote.shtml"&gt;found at Techdirt&lt;/a&gt;.  The reason I am saying I might be happy about it is that this kind of massive last minute broadening of a bill&amp;#8217;s reach might wind up being its downfall.  And I certainly hope that&amp;#8217;s the case here! The EFF is already &lt;a href="https://www.eff.org/deeplinks/2012/04/eff-condemns-cispa-vows-take-fight-senate"&gt;focused on the senate&lt;/a&gt; now.&lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=8493a277-6c4d-406a-bfb8-41377910b7c9"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/21910121753</link><guid>http://continuations.com/post/21910121753</guid><pubDate>Fri, 27 Apr 2012 09:06:05 -0400</pubDate><category>CISPA</category><category>cyber security</category><category>National security</category></item><item><title>Hacking Society Follow-up</title><description>&lt;p&gt;On Tuesday we held a wonderful one day event at the USV offices with the title: &lt;a href="http://hackingsociety.us/"&gt;Hacking Society&lt;/a&gt;.  The &lt;a href="http://www.usv.com/2012/04/hacking-society.php"&gt;basic premise&lt;/a&gt; was relatively simple. Networks are a emerging on the Internet that are disrupting existing hierarchical institutions.  Starting from that premise there were lots of angles to explore, such as what the defining characteristics of these networks are and whether they in turn are new institutions. The actual discussion brought together an amazing set of people and even though I took copious notes, I am really looking forward to the audio and video archive.&lt;/p&gt;
&lt;p&gt;I came away from the event with a much clearer focus on a single core principle that I believe we need to defend.  The Internet itself was designed with some clear &amp;#8220;open architecture&amp;#8221; principles as the starting point (see the &lt;a href="http://continuations.com/tagged/tech+tuesday"&gt;Tech Tuesday&lt;/a&gt; on &lt;a href="http://continuations.com/post/12834145139/tech-tuesday-no-computer-is-an-island-networking"&gt;networking&lt;/a&gt;).  The upshot is that the Internet allows new networks of devices to form and connect with the existing networks (hence the &amp;#8220;inter&amp;#8221;) without the need for any central intervention and without any central control.  That same principle I believe needs to be the core principle at the &amp;#8220;people layer.&amp;#8221;  So the way of looking at the impact of regulation and laws would be on the basis of the following single core principle: &amp;#8220;Enable new networks of people to form and connect to the existing networks of people without the need any central intervention and without any central control.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Put differently, we want an &amp;#8220;open architecture&amp;#8221; for people networking as well.  And that has a great many implications.  For instance, walled gardens such as Facebook impose a high degree of central control on new people networks forming.  Similarly, proprietary mobile app market places become a central point of intervention that makes it harder for new people networks to form. &lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=61b26fb3-5879-4347-a627-6b0ba93c2d3d"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/21843877529</link><guid>http://continuations.com/post/21843877529</guid><pubDate>Thu, 26 Apr 2012 07:38:52 -0400</pubDate><category>Hacking Society</category></item><item><title>Tech Tuesday: Programming Languages</title><description>&lt;p&gt;&lt;p class="p1"&gt;This is the first post in the &lt;a href="http://continuations.com/tagged/tech_tuesday"&gt;Tech Tuesday&lt;/a&gt; &lt;a href="http://continuations.com/post/21265111368/tech-tuesday-programming-overview"&gt;cycle on programming&lt;/a&gt;. &lt;/p&gt;
&lt;p class="p1"&gt;Let&amp;#8217;s begin with a simple observation: even though various human languages are quite different from each other they cover much of the same territory &amp;#8212; the human experience.  We have words for food and activities and threats and so on.  There are different words in different languages and sometimes even the symbol set is entirely different (I am struggling to remember Mandarin for our upcoming China trip).  But despite those differences there aren&amp;#8217;t any things fundamental to the human condition that you can express in one language but not at all in a different language (note: fans of the &lt;a href="https://en.wikipedia.org/wiki/Sapir-Whorf_Hypothesis"&gt;Sapir Whorf hypothesis&lt;/a&gt; may object to this characterization and that&amp;#8217;s worth reading when you have time).&lt;/p&gt;
&lt;p class="p1"&gt;Now in computer languages there is a precise and formal meaning to the idea that all languages can say roughly the same thing.  This is known as &lt;a href="https://en.wikipedia.org/wiki/Turing_completeness"&gt;Turing completeness&lt;/a&gt; after &lt;a href="https://en.wikipedia.org/wiki/Alan_turing"&gt;Alan Turing&lt;/a&gt; who discovered it.  Turing came up with the simplest form of a general purpose computer in the form of a so-called &lt;a href="https://en.wikipedia.org/wiki/Turing_machine"&gt;Turing machine&lt;/a&gt;.  You can think of the Turing machine as a kind of universal computer.  Anything that could be computed by a Turing machine could be computed by a modern computer and vice versa.  And any computation you can express in a modern computer language could also be expressed as program for a Turing machine.  I said computation here on purpose because obviously this does not say anything about input/output devices (the Turing machine only has a tape).  The upshot is that there is nothing that you can compute in &lt;a href="https://en.wikipedia.org/wiki/Python_(programming_language)"&gt;Python&lt;/a&gt; or &lt;a href="https://en.wikipedia.org/wiki/Lisp_(programming_language)"&gt;Lisp&lt;/a&gt; that you cannot compute in &lt;a href="https://en.wikipedia.org/wiki/PHP"&gt;PHP&lt;/a&gt; or &lt;a href="https://en.wikipedia.org/wiki/C_(programming_language)"&gt;C&lt;/a&gt;.&lt;/p&gt;
&lt;p class="p1"&gt;That is not at all the same as saying all programming languages are the same though, just as saying that you can describe the human experience in pretty much any language doesn&amp;#8217;t imply that the languages are the same.  It just means that the limits of their expressive power are the same.  So how do programming languages differ then?  Here too looking at the human language is instructive.  For instance, if I tell another sailor to &amp;#8220;&lt;a href="https://en.wikipedia.org/wiki/Halyard"&gt;jump the main halyard&lt;/a&gt;&amp;#8221; they will know exactly what to do because this is an expression with a precise meaning.  I could of course also have given a lengthy description using general purpose instead of nautical English by saying something like &amp;#8220;find the rope that runs from the top of the big sail to the top of the mast and then back down and then pull on it by jumping up and letting your weight help you.&amp;#8221;  The former is much shorter and more precise but you need to know what it means.  The latter is verbose but any English speaker can understand it.&lt;/p&gt;
&lt;p class="p1"&gt;A related difference exists in programming languages although it is more complicated.  There are lower level languages such as &lt;a href="http://en.wikipedia.org/wiki/Assembly_language"&gt;Assembly&lt;/a&gt; and C and higher level languages such as Python and &lt;a href="http://en.wikipedia.org/wiki/Ruby_(programming_language)"&gt;Ruby&lt;/a&gt;.  Generally it takes fewer words in the higher level language to express the same thing than in the lower level language.  But unlike the general versus nautical English example, code in lower level languages is actually *harder* not easier to understand for a human.  The opposite is true for the computer though.  The ultimate low level language is &lt;a href="http://en.wikipedia.org/wiki/Machine_code"&gt;machine code&lt;/a&gt; which the &lt;a href="http://continuations.com/post/11905023100/tech-tuesday-a-first-look-at-the-central-processing"&gt;CPU&lt;/a&gt; understand essentially directly but is completely incomprehensible for a human reader without a reference book.  Conversely, a lot of higher level languages are quite readable for humans and many are designed specifically for human readability. We have automated tools for translating the higher level language into the machine language that the computer understands (more on these in a later post).&lt;/p&gt;
&lt;p class="p1"&gt;So why would anyone ever want to use a lower level language? It used to be that lower level languages resulted in much, much faster programs.  Why? Because the computer understood them more directly and didn&amp;#8217;t have to translate from a higher level language.  As computers have gotten &lt;a href="http://continuations.com/post/11905023100/tech-tuesday-a-first-look-at-the-central-processing"&gt;much much faster&lt;/a&gt; and the tools for translating higher level to lower level code have improved, that speed advantage of lower level languages has gone away for all but the most extremely time sensitive applications (e.g. realtime 3D graphics rendering).&lt;/p&gt;
&lt;p class="p1"&gt;There are more differences between programming languages that we will get to know over the next set of posts as we learn about such things as syntax, semantics and data types.  In the meantime, let&amp;#8217;s return briefly to the sailing example from above.  As we saw, the sailing terms such as &amp;#8220;halyard&amp;#8221; have a corresponding definition using simpler English terms.  Much the same is true in programming languages &amp;#8212; they all have ways of using the &amp;#8220;&lt;a href="http://en.wikipedia.org/wiki/Keyword_(computer_programming)"&gt;keywords&lt;/a&gt;&amp;#8221; that come with the language to define new words that are more powerful.  As we will see this is really the essence of programming: creating ever more powerful words.  The most powerful word in the end is the name of the program itself.  When you &amp;#8220;invoke&amp;#8221; that word (that too will have a precise meaning) it&amp;#8217;s like a powerful spell the computer runs the entire program.&lt;/p&gt;&lt;/p&gt;</description><link>http://continuations.com/post/21711478677</link><guid>http://continuations.com/post/21711478677</guid><pubDate>Tue, 24 Apr 2012 08:27:20 -0400</pubDate><category>tech tuesday</category><category>programming</category><category>languages</category><category>Turing</category></item><item><title>The Bubble and (Misunderstood) Network Effects</title><description>&lt;p&gt;Dave Winer last Thursday had a post called &amp;#8220;&lt;a href="http://scripting.com/stories/2012/04/19/itsDefinitelyABubble.html"&gt;It&amp;#8217;s definitely a bubble&lt;/a&gt;.&amp;#8221;  OK, so it was more of a rant than a post but I share the sentiment of his title.  The biggest issue that I see in the venture market right now is the assumption by both entrepreneurs and investors that winner-take-all economics apply in pretty much every market and for pretty much every company.  With several billion people on the Internet and much of commerce shifting online that assumption will let you justify ridiculous future (and hence current) valuations.&lt;/p&gt;
&lt;p&gt;The problem with this assumption is that very few businesses actually have the kind of strong network effects which can result in a winner-takes-(nearly)-all outcome.  As a reminder, the definition of a network effect is where a service becomes more valuable to everyone already using as more people (or companies, or both) use it. Network effects are obvious and strong in social networks and in marketplaces.  &lt;/p&gt;
&lt;p&gt;But many more businesses these days claim network effects on what I consider a considerably weaker basis: data.  The argument goes something like this: as we get more users we will have more data on (what they like, how they behave, etc) which will let us improve the service for all users.  We can observe this type of network effect in search where the choices made by other users based on a particular query can be used to improve that query for other users. And in long-tail searches this effect can be quite pronounced, which has been part of Google&amp;#8217;s continued success.&lt;/p&gt;
&lt;p&gt;For many businesses though, the data effect as I will call it unlikely to result in winner-take-all-economics.  The reason: other considerations will far outweigh it. For instance, in e-commerce factors such as price, convenience and trust will be much more important.  Yes, product recommendations on Amazon are good and are an example of a data effect, but wouldn&amp;#8217;t matter if Amazon had high prices or unreliable shipping.  Just to be clear with it&amp;#8217;s marketplace Amazon has strong network effects, I am only talking about the strict e-commerce portion.&lt;/p&gt;
&lt;p&gt;So I am quite skeptical of the claim by many businesses that they will dominate their market because their early start will give them more information than others who enter later.  The net result is that in many markets we will see more than one company build significant scale and the competition between these will result in valuations far below those from a winner-take-all outcome.&lt;/p&gt;
&lt;p&gt;Addendum: After thinking about this more today here is another formulation:  For some businesses (Facebook, Twitter), the network effect is the first oder of importance and everything else comes afterwards.  For most businesses the other stuff is the first order of importance and data effects come afterwards.&lt;/p&gt;
&lt;p&gt;PS. It doesn&amp;#8217;t help that we don&amp;#8217;t (yet) understand how long-term sustainable network effects truly are much as we love them. That will be the topic of an upcoming post. &lt;/p&gt;
&lt;div&gt;&lt;/div&gt;</description><link>http://continuations.com/post/21645352388</link><guid>http://continuations.com/post/21645352388</guid><pubDate>Mon, 23 Apr 2012 09:40:00 -0400</pubDate><category>valuations</category><category>network effect</category></item><item><title>The Learning Revolution Will Not Be Televised</title><description>&lt;p&gt;I was on a panel for the wonderful &lt;a href="http://www.imentor.org/"&gt;iMentor&lt;/a&gt; organization earlier this week talking about the future of education.  Every time I do that these days I emphasize that instead of talking about education we should focus on learning.  Because the Internet is revolutionizing where, when and from whom we can learn.  Secondary education in particular is where we are beginning to see the first signs of the dramatic shifts to come.&lt;/p&gt;
&lt;p&gt;Here are just a few examples of the amazing things that are happening.  MIT, which has been leading the charge on &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/MIT_OpenCourseWare" rel="wikipedia" title="MIT OpenCourseWare" target="_blank"&gt;Open Courseware&lt;/a&gt; is working on &lt;a href="http://mitx.mit.edu/"&gt;MITx&lt;/a&gt; which will be a learning system on top of the existing great and free materials.  &lt;a href="http://udacity.com"&gt;Udacity&lt;/a&gt; and &lt;a href="https://www.coursera.org/"&gt;Coursera&lt;/a&gt; are for-profit startups working on similar offerings.  Through &lt;a href="http://www.codecademy.com/courses/type/all/lang/all"&gt;Codecademy&lt;/a&gt; (USV portfolio company) many thousands of people are learning for the first time how to program in a highly interactive and engaging fashion. And through &lt;a href="http://skillshare.com"&gt;Skillshare&lt;/a&gt; (another USV portfolio company), people like Fred &amp;#8212; experts in a domain &amp;#8212; are &lt;a href="http://www.avc.com/a_vc/2012/04/mba-mondays-live-employee-equity-archive-and-feedback.html"&gt;beginning to teach&lt;/a&gt; without needing to become adjuncts or instructors at existing universities.&lt;/p&gt;
&lt;p&gt;The increasing availability of these free or incredibly affordable learning opportunities will put tremendous pressure on traditional colleges and universities, especially at a time when students are finding it harder and harder to pay back their loans.  All of this is very much at the early adopter stage, but these Internet based systems are hugely scalable unlike the incumbents.  So when the shift picks up momentum it can happen quite rapidly.&lt;/p&gt;
&lt;p&gt;I am excited about this revolution in learning and am looking forward to hearing from people on the forefront at &lt;a href="http://www.skillshare.com/penny#/about"&gt;Skillshare&amp;#8217;s Penny Conference&lt;/a&gt; tomorrow.  If you can&amp;#8217;t attend in person, there &lt;a href="http://new.livestream.com/Skillsharelive/PennyConference"&gt;will also be a livestream&lt;/a&gt;.  I will be starting the day with a &lt;a href="http://www.skillshare.com/How-to-Look-at-Contemporary-Art-Without-Getting-Freaked-Out/925821517/1268883287"&gt;class on modern art&lt;/a&gt; &amp;#8212; now that we have moved to Chelsea that seems particularly relevant!&lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=06304520-c38b-4cdc-9f42-465a3f97025e"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/21383492860</link><guid>http://continuations.com/post/21383492860</guid><pubDate>Thu, 19 Apr 2012 11:56:33 -0400</pubDate><category>learning</category><category>Skillshare</category></item><item><title>Twitter's Patent Hack</title><description>&lt;p&gt;Years ago I worked with the team at Tacoda on the technology for audience based targeting.  Some of my work there wound up in a &lt;a href="http://1.usa.gov/HPncKP"&gt;patent&lt;/a&gt; that was sold along with Tacoda to AOL.  I don&amp;#8217;t know if this patent is part of the patents recently sold by AOL to Microsoft but I wouldn&amp;#8217;t be surprised if it were.  I also worked closely with Joshua on a number of patents filed for by del.icio.us and sold along with the company to Yahoo.  Yahoo of course has recently started a massive patent lawsuit against Facebook (fortunately none of the del.icio.us patents feature in it).&lt;/p&gt;
&lt;p&gt;In both cases my work on the patents was done to help protect a startup company.  But once that company exited the patents were in someone else&amp;#8217;s hands who could use them any which way they would want to, including offensively.  The bulk of the patents used by trolls (er, non-practicing entities) in lawsuits against USV portfolio companies are patents that were acquired from startups that had failed. The original innovators &amp;#8212; the engineers who did the work &amp;#8212; lose complete control over their work which has resulted in a number of high profile posts of people distancing themselves from the use of their patents.&lt;/p&gt;
&lt;p&gt;I am therefore thrilled that our portfolio company Twitter has come up with a terrific hack of the system: &lt;a href="http://blog.twitter.com/2012/04/introducing-innovators-patent-agreement.html"&gt;a patent assignment agreement that gives the company only defensive use of the patent&lt;/a&gt;.  The innovator retains control for any offensive use.  What I love about this hack is that companies can adopt it one at a time and that it doesn&amp;#8217;t require any change in the legal system (that&amp;#8217;s why it is a &amp;#8220;hack&amp;#8221;).  I also love that the company has &lt;a href="https://github.com/twitter/innovators-patent-agreement/blob/master/innovators-patent-agreement.md"&gt;put the agreement up on github&lt;/a&gt; where it can spread virally among engineers.  I already know that we have several other portfolio companies that are interested in adopting the same agreement.&lt;/p&gt;
&lt;p&gt;So if you are an engineer and care about the drag of software patents, go lobby your company to adopt this agreement.  And if they don&amp;#8217;t, go work for one that has! At USV we are &lt;a href="http://www.usv.com/2012/04/the-twitter-patent-hack.php"&gt;supporting this new agreement&lt;/a&gt; and are actively encouraging our portfolio companies to adopt it.&lt;/p&gt;
&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=718d1fb6-6375-4dc3-8f65-c8835a36ffb6"/&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://continuations.com/post/21320636873</link><guid>http://continuations.com/post/21320636873</guid><pubDate>Wed, 18 Apr 2012 07:46:00 -0400</pubDate><category>Twitter</category><category>Patent</category><category>software</category><category>hack</category></item><item><title>Tech Tuesday: Programming (Overview)</title><description>&lt;p&gt;The purpose of &lt;a href="http://continuations.com/tagged/tech_tuesday"&gt;Tech Tuesdays&lt;/a&gt; is to provide non-technical employees or founders of startups with background on how technology works so that they can better communicate with engineers and also better understand technological constraints and opportunities.  With that in mind I will take a fairly different approach to programming from say &lt;a href="http://codecademy.com"&gt;Codecademy&lt;/a&gt; or &lt;a href="http://www.udacity.com/"&gt;Udacity&lt;/a&gt; which tackle hands on code writing.  I will instead try to provide a lot of context and explain terminology.  You should be able to get a fair bit of insight from that and maybe the motivation for one of the hands on courses.&lt;/p&gt;
&lt;p&gt;I wrote a previous Tech Tuesday post giving a &lt;a href="http://continuations.com/post/13823734190/tech-tuesday-programming-a-start"&gt;brief overview of programming&lt;/a&gt; and defined programming as &amp;#8220;telling a computer what to do.&amp;#8221;  While seemingly trivial it offers a good way of thinking about many of the issues involved.  For a moment substitute &amp;#8220;person&amp;#8221; for &amp;#8220;computer&amp;#8221; and think about &amp;#8220;telling a person what to do.&amp;#8221;&lt;/p&gt;
&lt;p&gt;1. Which language should you speak? Speaking English to someone who only understands Mandarin won&amp;#8217;t get you very far unless you have a translator.  But even within English there are vastly different sets of vocabularies &amp;#8212; I remember my English teacher exhorting us to go beyond &amp;#8220;go, get, give&amp;#8221; &amp;#8230;  &lt;/p&gt;
&lt;p&gt;2. How do you form a correct sentence?  This is known as syntax and includes such things as word order and punctuation.  In German, for instance,  we put the verb at the end of sentences.&lt;/p&gt;
&lt;p&gt;3. What do the words and sentences mean to the other person? Even if you put words in the correct order it is easy to say things that don&amp;#8217;t make any sense.  Or you may be using words that mean something different to you than to the person.&lt;/p&gt;
&lt;p&gt;4. How do you refer to concepts as opposed to just concrete things? If I am in Dim Sum restaurant I can point at a specific dish. But how would I tell someone else to go there and do that?&lt;/p&gt;
&lt;p&gt;5. How do you break down what you want the person to do into smaller steps?  For instance what if you want the person &lt;a href="http://www.buzzfeed.com/mathieus/how-to-draw-an-owl-8q4"&gt;to draw an owl&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;6. How do you avoid repeating yourself?  What if you need to tell another person to do the same thing?  What if it is not exactly the same thing but slightly different?&lt;/p&gt;
&lt;p&gt;7. Does what you told the person make sense?  How would you know if it didn&amp;#8217;t? Do they have everything they need to carry out what you asked them to do?&lt;/p&gt;
&lt;p&gt;8. How do you know if the person is actually doing what you told them to do? Maybe they are stuck and don&amp;#8217;t know what to do next or maybe they are off doings something else altogether.&lt;/p&gt;
&lt;p&gt;9. What if there is someone else also telling this person what to do?  How do you coordinate that?&lt;/p&gt;
&lt;p&gt;Each of these questions has analogs when it comes to programming, i.e. telling a computer what to do.  Over the course of the upcoming Tech Tuesdays we will dig into these one by one, starting next Tuesday with a closer look at different programming languages.&lt;/p&gt;</description><link>http://continuations.com/post/21265111368</link><guid>http://continuations.com/post/21265111368</guid><pubDate>Tue, 17 Apr 2012 08:27:24 -0400</pubDate><category>tech tuesday</category><category>programming</category><category>overview</category></item></channel></rss>

